2.1. bfd module¶
BFD protocol implementation
- class bfd.BFD(*args: Any, **kwargs: Any)¶
Bases:
scapy.packet.scapy.packet.Packet._nameBFD protocol layer for scapy
- bfd_pkt_len = 24¶
- fields_desc = [scapy.fields.BitField, scapy.fields.BitEnumField, scapy.fields.BitEnumField, scapy.fields.FlagsField, scapy.fields.XByteField, scapy.fields.BitField, scapy.fields.BitField, scapy.fields.BitField, scapy.fields.BitField, scapy.fields.BitField, scapy.fields.BitField, scapy.fields.ConditionalField, scapy.fields.ConditionalField, scapy.fields.ConditionalField, scapy.fields.ConditionalField, scapy.fields.ConditionalField, scapy.fields.ConditionalField, scapy.fields.ConditionalField]¶
- mysummary()¶
- name = 'BFD'¶
- sha1_auth_len = 28¶
- udp_dport = 3784¶
BFD destination port per RFC 5881
- udp_dport_echo = 3785¶
- udp_sport_max = 65535¶
BFD source port max value per RFC 5881
- udp_sport_min = 49152¶
BFD source port min value per RFC 5881
- class bfd.BFDAuthType(value)¶
Bases:
util.NumericConstantBFD Authentication Type
- desc_dict = {0: 'No authentication', 1: 'Simple Password', 2: 'Keyed MD5', 3: 'Meticulous Keyed MD5', 4: 'Keyed SHA1', 5: 'Meticulous Keyed SHA1'}¶
- keyed_md5 = 2¶
- keyed_sha1 = 4¶
- meticulous_keyed_md5 = 3¶
- meticulous_keyed_sha1 = 5¶
- no_auth = 0¶
- simple_pwd = 1¶
- class bfd.BFDDiagCode(value)¶
Bases:
util.NumericConstantBFD Diagnostic Code
- administratively_down = 7¶
- concatenated_path_down = 6¶
- control_detection_time_expired = 1¶
- desc_dict = {0: 'No diagnostic', 1: 'Control Detection Time Expired', 2: 'Echo Function Failed', 3: 'Neighbor Signaled Session Down', 4: 'Forwarding Plane Reset', 5: 'Path Down', 6: 'Concatenated Path Down', 7: 'Administratively Down', 8: 'Reverse Concatenated Path Down'}¶
- echo_function_failed = 2¶
- forwarding_plane_reset = 4¶
- neighbor_signaled_session_down = 3¶
- no_diagnostic = 0¶
- path_down = 5¶
- reverse_concatenated_path_down = 8¶
- class bfd.BFDState(value)¶
Bases:
util.NumericConstantBFD State
- admin_down = 0¶
- desc_dict = {0: 'AdminDown', 1: 'Down', 2: 'Init', 3: 'Up'}¶
- down = 1¶
- init = 2¶
- up = 3¶
- class bfd.BFD_vpp_echo(*args: Any, **kwargs: Any)¶
Bases:
scapy.packet.scapy.packet.Packet._nameBFD echo packet as used by VPP (non-rfc, as rfc doesn’t define one)
- fields_desc = [scapy.fields.BitField, scapy.fields.BitField, scapy.fields.BitField]¶
- mysummary()¶
- name = 'BFD_VPP_ECHO'¶
- udp_dport = 3785¶
BFD echo destination port per RFC 5881
- class bfd.VppBFDAuthKey(test, conf_key_id, auth_type, key)¶
Bases:
vpp_object.VppObjectRepresents BFD authentication key in VPP
- add_vpp_config()¶
Add the configuration for this object to vpp.
- property auth_type¶
Authentication type for this key
- property conf_key_id¶
configuration key ID
- get_bfd_auth_keys_dump_entry()¶
get the entry in the auth keys dump corresponding to this key
- property key¶
key data
- object_id()¶
Return a unique string representing this object.
- query_vpp_config()¶
Query the vpp configuration.
- Returns
True if the object is configured
- remove_vpp_config()¶
Remove the configuration for this object from vpp.
- property test¶
Test which created this key
- class bfd.VppBFDUDPSession(test, interface, peer_addr, local_addr=None, af=AddressFamily.AF_INET, desired_min_tx=300000, required_min_rx=300000, detect_mult=3, sha1_key=None, bfd_key_id=None, is_tunnel=False)¶
Bases:
vpp_object.VppObjectRepresents BFD UDP session in VPP
- activate_auth(key, bfd_key_id=None, delayed=False)¶
activate authentication for this session
- add_vpp_config()¶
Add the configuration for this object to vpp.
- admin_down()¶
set bfd session admin-down
- admin_up()¶
set bfd session admin-up
- property af¶
Address family - AF_INET or AF_INET6
- property bfd_key_id¶
bfd key id in use
- deactivate_auth(delayed=False)¶
deactivate authentication
- property desired_min_tx¶
desired minimum tx interval
- property detect_mult¶
detect multiplier
- get_bfd_udp_session_dump_entry()¶
get the namedtuple entry from bfd udp session dump
- property interface¶
Interface on which this session lives
- property is_tunnel¶
- property local_addr¶
BFD session local address (VPP address)
- modify_parameters(detect_mult=None, desired_min_tx=None, required_min_rx=None)¶
modify session parameters
- object_id()¶
Return a unique string representing this object.
- property peer_addr¶
BFD session peer address
- query_vpp_config()¶
Query the vpp configuration.
- Returns
True if the object is configured
- remove_vpp_config()¶
Remove the configuration for this object from vpp.
- property required_min_rx¶
required minimum rx interval
- property sha1_key¶
sha1 key
- property state¶
BFD session state
- property test¶
Test which created this session
- bfd.bfd_is_auth_used(pkt)¶
is packet authenticated?
- bfd.bfd_is_md5_or_sha1_used(pkt)¶
is md5 or sha1 used?
- bfd.bfd_is_md5_used(pkt)¶
is md5 authentication used?
- bfd.bfd_is_sha1_used(pkt)¶
is sha1 authentication used?
- bfd.bfd_is_simple_pwd_used(pkt)¶
is simple password authentication used?