scapy.contrib.bgp
BGP (Border Gateway Protocol).
- class scapy.contrib.bgp.ASPathSegmentPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
PacketListField handling AS_PATH segments.
- class scapy.contrib.bgp.BGP(_pkt, /)[source]
Bases:
Packet
Every BGP message inherits from this class.
- KEEPALIVE_TYPE = 4
- NOTIFICATION_TYPE = 3
- OPEN_TYPE = 1
- ROUTEREFRESH_TYPE = 5
- UPDATE_TYPE = 2
- aliastypes
- class scapy.contrib.bgp.BGPAuthenticationInformation(_pkt, /, *, authentication_code=0, authentication_data=None)[source]
Bases:
Packet
Provides an implementation of the Authentication Information optional parameter, which is now obsolete. References: RFC 1771, RFC 1654, RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |AUTHENTICATION | AUTHENTICATION DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPAuthenticationInformation
BGPAuthenticationInformation fields authentication_code
0
authentication_data
None
- class scapy.contrib.bgp.BGPCapFourBytesASN(_pkt, /, *, code=65, length=4, asn=0)[source]
Bases:
BGPCapability
This class provides an implementation of the 4-octet AS number capability. References: RFC 4893
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CODE | LENGTH | ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapFourBytesASN
BGPCapFourBytesASN fields code
65
length
4
asn
0
- match_subclass = True
- class scapy.contrib.bgp.BGPCapGeneric(_pkt, /, *, code=0, length=None, cap_data=b'')[source]
Bases:
BGPCapability
This class provides an implementation of a generic capability.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CODE | LENGTH | CAP DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapGeneric
BGPCapGeneric fields code
0
length
None
cap_data
b''
- match_subclass = True
- class scapy.contrib.bgp.BGPCapGracefulRestart(_pkt, /, *, code=64, length=None, restart_flags=0, restart_time=0, entries=[])[source]
Bases:
BGPCapability
This class provides an implementation of the Graceful Restart capability. References: RFC 4724
- class GRTuple(_pkt, /, *, afi=0, safi=0, flags=0)[source]
Bases:
Packet
Tuple <AFI, SAFI, Flags for address family>
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI | SAFI | FLAGS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. GRTuple
GRTuple fields afi
0
safi
0
flags
0
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CODE | LENGTH |RESTART| RESTART TIME | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ENTRIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapGracefulRestart
BGPCapGracefulRestart fields code
64
length
None
restart_flags
BitField
(4 bits)0
restart_time
BitField
(12 bits)0
entries
[]
- match_subclass = True
- class scapy.contrib.bgp.BGPCapMultiprotocol(_pkt, /, *, code=1, length=4, afi=0, reserved=0, safi=0)[source]
Bases:
BGPCapability
This class provides an implementation of the Multiprotocol capability. References: RFC 4760
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CODE | LENGTH | AFI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESERVED | SAFI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapMultiprotocol
BGPCapMultiprotocol fields code
1
length
4
afi
0
reserved
0
safi
0
- match_subclass = True
- class scapy.contrib.bgp.BGPCapORF(_pkt, /, *, code=3, length=None, orf=[])[source]
Bases:
BGPCapability
This class provides an implementation of the Outbound Route Filtering capability. References: RFC 5291
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CODE | LENGTH | ORF | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapORF
BGPCapORF fields code
3
length
None
orf
[]
- match_subclass = True
- class scapy.contrib.bgp.BGPCapORFBlock(_pkt, /, *, afi=0, reserved=0, safi=0, orf_number=None, entries=[])[source]
Bases:
Packet
The “ORFBlock” is made of <AFI, rsvd, SAFI, Number of ORFs, and <ORF Type, Send/Receive> entries.
- class ORFTuple(_pkt, /, *, orf_type=0, send_receive=0)[source]
Bases:
Packet
Packet handling <ORF Types, Send/Receive> tuples.
- aliastypes
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI | RESERVED | SAFI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ORF NUMBER | ENTRIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPCapORFBlock
BGPCapORFBlock fields afi
0
reserved
0
safi
0
orf_number
None
entries
[]
- class scapy.contrib.bgp.BGPCapORFBlockPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
Handles lists of BGPCapORFBlocks.
- class scapy.contrib.bgp.BGPCapability(_pkt, /)[source]
Bases:
Packet
Generic BGP capability.
- aliastypes
- class scapy.contrib.bgp.BGPConf[source]
Bases:
ConfClass
BGP module configuration.
- use_2_bytes_asn = True
- class scapy.contrib.bgp.BGPFieldIPv4(name: str, default: Any, fmt: str = 'H')[source]
Bases:
Field
IPv4 Field (CIDR)
- class scapy.contrib.bgp.BGPFieldIPv6(name: str, default: Any, fmt: str = 'H')[source]
Bases:
Field
IPv6 Field (CIDR)
- class scapy.contrib.bgp.BGPHeader(_pkt, /, *, marker=340282366920938463463374607431768211455, len=None, type=4)[source]
Bases:
Packet
The header of any BGP message. References: RFC 4271
- aliastypes
- classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]
Returns the right class for the given data.
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MARKER | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LEN | TYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPHeader
BGPHeader fields marker
XBitField
(128 bits)340282366920938463463374607431768211455
len
None
type
4
- payload_guess
Possible sublayers:
BGPKeepAlive
,BGPNotification
,BGPOpen
,BGPRouteRefresh
,BGPUpdate
- class scapy.contrib.bgp.BGPKeepAlive(_pkt, /, *, marker=340282366920938463463374607431768211455, len=None, type=4)[source]
-
KEEPALIVE message.
- aliastypes
- class scapy.contrib.bgp.BGPLargeCommunitySegment(_pkt, /, *, global_administrator=None, local_data_part1=None, local_data_part2=None)[source]
Bases:
Packet
Provides an implementation for LARGE_COMMUNITY segments which holds 3*4 bytes integers.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GLOBAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL DATA PART1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL DATA PART2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPLargeCommunitySegment
BGPLargeCommunitySegment fields global_administrator
None
local_data_part1
None
local_data_part2
None
- class scapy.contrib.bgp.BGPNLRIPacketListField(name, default, ip_mode, **kwargs)[source]
Bases:
PacketListField
PacketListField handling NLRI fields.
- cls_group
- max_bit_length
- no_length
- class scapy.contrib.bgp.BGPNLRI_IPv4(_pkt, /, *, prefix=(0, '0.0.0.0'))[source]
Bases:
Packet
Packet handling IPv4 NLRI fields.
- aliastypes
- class scapy.contrib.bgp.BGPNLRI_IPv4_AP(_pkt, /, *, nlri_path_id=0, prefix=(0, '0.0.0.0'))[source]
Bases:
BGPNLRI_IPv4
Packet handling IPv4 NLRI fields WITH BGP ADDITIONAL PATH
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLRI PATH ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PREFIX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPNLRI_IPv4_AP
BGPNLRI_IPv4_AP fields nlri_path_id
0
prefix
(0, '0.0.0.0')
- class scapy.contrib.bgp.BGPNLRI_IPv6(_pkt, /, *, prefix=(0, '::'))[source]
Bases:
Packet
Packet handling IPv6 NLRI fields.
- aliastypes
- class scapy.contrib.bgp.BGPNLRI_IPv6_AP(_pkt, /, *, nlri_path_id=0, prefix=(0, '::'))[source]
Bases:
BGPNLRI_IPv6
Packet handling IPv6 NLRI fields WITH BGP ADDITIONAL PATH
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLRI PATH ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PREFIX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPNLRI_IPv6_AP
BGPNLRI_IPv6_AP fields nlri_path_id
0
prefix
(0, '::')
- class scapy.contrib.bgp.BGPNotification(_pkt, /, *, error_code=0, error_subcode=0, data=None)[source]
Bases:
BGP
NOTIFICATION messages end a BGP session. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ERROR CODE | ERROR SUBCODE | DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPNotification
BGPNotification fields error_code
0
error_subcode
MultiEnumField
(Depends on 0)0
data
None
- class scapy.contrib.bgp.BGPORF(_pkt, /, *, when_to_refresh=0, orf_type=0, orf_len=None, entries=[])[source]
Bases:
Packet
Provides an implementation of ORFs carried in the RR message. References: RFC 5291
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |WHEN TO REFRESH| ORF TYPE | ORF LEN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ENTRIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPORF
BGPORF fields when_to_refresh
0
orf_type
0
orf_len
None
entries
[]
- class scapy.contrib.bgp.BGPORFAddressPrefix(_pkt, /, *, action=0, match=0, reserved=0, sequence=0, min_len=0, max_len=0, prefix=b'')[source]
Bases:
BGPORFEntry
Provides an implementation of the Address Prefix ORF (RFC 5292).
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ACT|M| RESERVED| SEQUENCE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | MIN LEN | MAX LEN | PREFIX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. BGPORFAddressPrefix
BGPORFAddressPrefix fields action
0
match
0
reserved
BitField
(5 bits)0
sequence
0
min_len
0
max_len
0
prefix
_ORFNLRIPacketField
b''
- class scapy.contrib.bgp.BGPORFCoveringPrefix(_pkt, /, *, action=0, match=0, reserved=0, sequence=0, min_len=0, max_len=0, rt=0, import_rt=0, route_type=0, host_addr=None)[source]
Bases:
BGPORFEntry
Provides an implementation of the CP-ORF (RFC 7543).
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ACT|M| RESERVED| SEQUENCE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | MIN LEN | MAX LEN | RT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +-+-+-+-+-+-+-+-+ | | IMPORT RT | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +-+-+-+-+-+-+-+-+ | | ROUTE TYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HOST ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPORFCoveringPrefix
BGPORFCoveringPrefix fields action
0
match
0
reserved
BitField
(5 bits)0
sequence
0
min_len
0
max_len
0
rt
0
import_rt
0
route_type
0
host_addr
None
- class scapy.contrib.bgp.BGPORFEntry(_pkt, /, *, action=0, match=0, reserved=0, value=b'')[source]
Bases:
Packet
Provides an implementation of an ORF entry. References: RFC 5291
- afi
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ACT|M| RESERVED| VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPORFEntry
BGPORFEntry fields action
0
match
0
reserved
BitField
(5 bits)0
value
b''
- safi
- class scapy.contrib.bgp.BGPORFEntryPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
PacketListField handling the ORF entries.
- class scapy.contrib.bgp.BGPOpen(_pkt, /, *, version=4, my_as=0, hold_time=0, bgp_id='0.0.0.0', opt_param_len=None, opt_params=[])[source]
Bases:
BGP
OPEN messages are exchanged in order to open a new BGP session. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VERSION | MY AS | HOLD TIME | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | BGP ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | OPT PARAM LEN | OPT PARAMS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPOpen
BGPOpen fields version
4
my_as
0
hold_time
0
bgp_id
'0.0.0.0'
opt_param_len
None
opt_params
[]
- class scapy.contrib.bgp.BGPOptParam(_pkt, /, *, param_type=2, param_length=None, param_value=None, authentication_data=None)[source]
Bases:
Packet
Provides an implementation the OPEN message optional parameters. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PARAM TYPE | PARAM LENGTH | PARAM VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AUTHENTICATION DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPOptParam
BGPOptParam fields param_type
2
param_length
None
param_value
PacketField
(Cond)None
authentication_data
PacketField
(Cond)None
- class scapy.contrib.bgp.BGPOptParamPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
PacketListField handling the optional parameters (OPEN message).
- class scapy.contrib.bgp.BGPPAAS4Aggregator(_pkt, /, *, aggregator_asn=0, speaker_address='0.0.0.0')[source]
Bases:
Packet
Provides an implementation of the AS4_AGGREGATOR attribute “value part”. References: RFC 4893
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AGGREGATOR ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPEAKER ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAAS4Aggregator
BGPPAAS4Aggregator fields aggregator_asn
0
speaker_address
'0.0.0.0'
- class scapy.contrib.bgp.BGPPAAS4BytesPath(_pkt, /, *, segments=[])[source]
Bases:
Packet
Packet handling the AS_PATH attribute value (4 bytes ASNs, for new speakers -> ASNs are encoded as IntFields). References: RFC 4893
- class ASPathSegment(_pkt, /, *, segment_type=2, segment_length=None, segment_value=[])[source]
Bases:
Packet
Provides an implementation for AS_PATH segments with 4 bytes ASNs.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SEGMENT TYPE | SEGMENT LENGTH| SEGMENT VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ASPathSegment
ASPathSegment fields segment_type
2
segment_length
None
segment_value
[]
- aliastypes
- class scapy.contrib.bgp.BGPPAAS4Path(_pkt, /, *, segment_type=2, segment_length=None, segment_value=[])[source]
Bases:
Packet
Provides an implementation of the AS4_PATH attribute “value part”. References: RFC 4893
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SEGMENT TYPE | SEGMENT LENGTH| SEGMENT VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAAS4Path
BGPPAAS4Path fields segment_type
2
segment_length
None
segment_value
[]
- class scapy.contrib.bgp.BGPPAASPath(_pkt, /, *, segments=[])[source]
Bases:
Packet
Packet handling the AS_PATH attribute value (2 bytes ASNs, for old speakers). References: RFC 4271, RFC 5065
- class ASPathSegment(_pkt, /, *, segment_type=2, segment_length=None, segment_value=[])[source]
Bases:
Packet
Provides an implementation for AS_PATH segments with 2 bytes ASNs.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SEGMENT TYPE | SEGMENT LENGTH| SEGMENT VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ASPathSegment
ASPathSegment fields segment_type
2
segment_length
None
segment_value
[]
- AS_TRANS = 23456
- aliastypes
- class scapy.contrib.bgp.BGPPAAggregator(_pkt, /, *, aggregator_asn=0, speaker_address='0.0.0.0')[source]
Bases:
Packet
Packet handling the AGGREGATOR attribute value. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AGGREGATOR ASN | SPEAKER ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAAggregator
BGPPAAggregator fields aggregator_asn
0
speaker_address
'0.0.0.0'
- class scapy.contrib.bgp.BGPPAAtomicAggregate(_pkt, /)[source]
Bases:
Packet
Packet handling the ATOMIC_AGGREGATE attribute value. References: RFC 4271
- aliastypes
- class scapy.contrib.bgp.BGPPAClusterList(_pkt, /, *, cluster_list=[])[source]
Bases:
Packet
Packet handling the CLUSTER_LIST attribute value. References: RFC 4456
- aliastypes
- class scapy.contrib.bgp.BGPPACommunity(_pkt, /, *, community=0)[source]
Bases:
Packet
Packet handling the COMMUNITIES attribute value. References: RFC 1997
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | COMMUNITY | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPACommunity
BGPPACommunity fields community
0
- class scapy.contrib.bgp.BGPPAExtCommFourOctetASSpecific(_pkt, /, *, global_administrator=0, local_administrator=0)[source]
Bases:
Packet
Packet handling the Four-Octet AS Specific Extended Community attribute value. References: RFC 5668
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GLOBAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommFourOctetASSpecific
BGPPAExtCommFourOctetASSpecific fields global_administrator
0
local_administrator
0
- class scapy.contrib.bgp.BGPPAExtCommIPv4AddressSpecific(_pkt, /, *, global_administrator=0, local_administrator=0)[source]
Bases:
Packet
Packet handling the IPv4 Address Specific Extended Community attribute value. References: RFC 4360
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GLOBAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommIPv4AddressSpecific
BGPPAExtCommIPv4AddressSpecific fields global_administrator
0
local_administrator
0
- class scapy.contrib.bgp.BGPPAExtCommOpaque(_pkt, /, *, value=b'')[source]
Bases:
Packet
Packet handling the Opaque Extended Community attribute value. References: RFC 4360
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALUE | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommOpaque
BGPPAExtCommOpaque fields value
b''
- class scapy.contrib.bgp.BGPPAExtCommRedirectAS2Byte(_pkt, /, *, asn=0, value=0)[source]
Bases:
Packet
Packet handling the (FlowSpec) “redirect AS-2byte” extended community (RFC 7674). References: RFC 7674
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ASN | VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommRedirectAS2Byte
BGPPAExtCommRedirectAS2Byte fields asn
0
value
0
- class scapy.contrib.bgp.BGPPAExtCommRedirectAS4Byte(_pkt, /, *, asn=0, value=0)[source]
Bases:
Packet
Packet handling the (FlowSpec) “redirect AS-4byte” extended community. (RFC 7674). References: RFC 7674
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommRedirectAS4Byte
BGPPAExtCommRedirectAS4Byte fields asn
0
value
0
- class scapy.contrib.bgp.BGPPAExtCommRedirectIPv4(_pkt, /, *, ip_addr=0, value=0)[source]
Bases:
Packet
Packet handling the (FlowSpec) “redirect IPv4” extended community. (RFC 7674). References: RFC 7674
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommRedirectIPv4
BGPPAExtCommRedirectIPv4 fields ip_addr
0
value
0
- class scapy.contrib.bgp.BGPPAExtCommTrafficAction(_pkt, /, *, reserved=0, sample=0, terminal_action=0)[source]
Bases:
Packet
Packet handling the (FlowSpec) “traffic-action” extended community. References: RFC 5575
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESERVED | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |S|T| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommTrafficAction
BGPPAExtCommTrafficAction fields reserved
BitField
(46 bits)0
sample
BitField
(1 bit)0
terminal_action
BitField
(1 bit)0
- class scapy.contrib.bgp.BGPPAExtCommTrafficMarking(_pkt, /, *, dscp=48)[source]
Bases:
Packet
Packet handling the (FlowSpec) “traffic-marking” extended community. References: RFC 5575
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DSCP | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommTrafficMarking
BGPPAExtCommTrafficMarking fields dscp
48
- class scapy.contrib.bgp.BGPPAExtCommTrafficRate(_pkt, /, *, id=0, rate=0)[source]
Bases:
Packet
Packet handling the (FlowSpec) “traffic-rate” extended community. References: RFC 5575
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | RATE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommTrafficRate
BGPPAExtCommTrafficRate fields id
0
rate
0
- class scapy.contrib.bgp.BGPPAExtCommTwoOctetASSpecific(_pkt, /, *, global_administrator=0, local_administrator=0)[source]
Bases:
Packet
Packet handling the Two-Octet AS Specific Extended Community attribute value. References: RFC 4360
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GLOBAL ADMINISTRATOR | LOCAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommTwoOctetASSpecific
BGPPAExtCommTwoOctetASSpecific fields global_administrator
0
local_administrator
0
- class scapy.contrib.bgp.BGPPAExtComms(_pkt, /, *, extended_communities=[])[source]
Bases:
Packet
Packet handling the multiple extended communities.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | EXTENDED COMMUNITIES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtComms
BGPPAExtComms fields extended_communities
_ExtCommsPacketListField
[]
- class scapy.contrib.bgp.BGPPAExtCommunity(_pkt, /, *, type_high=0, type_low=None, value=None)[source]
Bases:
Packet
Provides an implementation of the Extended Communities attribute. References: RFC 4360
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE HIGH | TYPE LOW | VALUE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAExtCommunity
BGPPAExtCommunity fields type_high
0
type_low
_TypeLowField
None
value
_ExtCommValuePacketField
None
- class scapy.contrib.bgp.BGPPAIPv6AddressSpecificExtComm(_pkt, /, *, global_administrator='::', local_administrator=0)[source]
Bases:
Packet
Provides an implementation of the IPv6 Address Specific Extended Community attribute. This attribute is not defined using the existing BGP Extended Community attribute (see the RFC 5701 excerpt below). References: RFC 5701
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GLOBAL ADMINISTRATOR | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL ADMINISTRATOR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAIPv6AddressSpecificExtComm
BGPPAIPv6AddressSpecificExtComm fields global_administrator
'::'
local_administrator
0
- class scapy.contrib.bgp.BGPPALargeCommunity(_pkt, /, *, segments=[])[source]
Bases:
Packet
Provides an implementation of the LARGE_COMMUNITY attribute. References: RFC 8092, RFC 8195
- aliastypes
- class scapy.contrib.bgp.BGPPALocalPref(_pkt, /, *, local_pref=0)[source]
Bases:
Packet
Packet handling the LOCAL_PREF attribute value. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOCAL PREF | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPALocalPref
BGPPALocalPref fields local_pref
0
- class scapy.contrib.bgp.BGPPAMPReachNLRI(_pkt, /, *, afi=0, safi=0, nh_addr_len=0, nh_v4_addr='0.0.0.0', nh_v6_addr='::', nh_v6_global='::', nh_v6_link_local='::', reserved=0, nlri=[])[source]
Bases:
Packet
Packet handling the MP_REACH_NLRI attribute value, for non IPv6 AFI. References: RFC 4760
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI | SAFI | NH ADDR LEN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NH V4 ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NH V6 ADDR | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NH V6 GLOBAL | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NH V6 LINK LOCAL | + + | | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESERVED | NLRI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAMPReachNLRI
BGPPAMPReachNLRI fields afi
0
safi
0
nh_addr_len
0
nh_v4_addr
IPField
(Cond)'0.0.0.0'
nh_v6_addr
IP6Field
(Cond)'::'
nh_v6_global
IP6Field
(Cond)'::'
nh_v6_link_local
IP6Field
(Cond)'::'
reserved
0
nlri
[]
- class scapy.contrib.bgp.BGPPAMPUnreachNLRI(_pkt, /, *, afi=0, safi=0, afi_safi_specific=None)[source]
Bases:
Packet
Packet handling the MP_UNREACH_NLRI attribute value, for non IPv6 AFI. References: RFC 4760
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI | SAFI |AFI SAFI SPECIF| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. BGPPAMPUnreachNLRI
BGPPAMPUnreachNLRI fields afi
0
safi
0
afi_safi_specific
None
- class scapy.contrib.bgp.BGPPAMPUnreachNLRI_IPv6(_pkt, /, *, withdrawn_routes=[])[source]
Bases:
Packet
Packet handling the MP_UNREACH_NLRI attribute value, for IPv6 AFI.
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WITHDRAWN ROUTES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAMPUnreachNLRI_IPv6
BGPPAMPUnreachNLRI_IPv6 fields withdrawn_routes
[]
- class scapy.contrib.bgp.BGPPAMultiExitDisc(_pkt, /, *, med=0)[source]
Bases:
Packet
Packet handling the MULTI_EXIT_DISC attribute value. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAMultiExitDisc
BGPPAMultiExitDisc fields med
0
- class scapy.contrib.bgp.BGPPANextHop(_pkt, /, *, next_hop='0.0.0.0')[source]
Bases:
Packet
Packet handling the NEXT_HOP attribute value. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NEXT HOP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPANextHop
BGPPANextHop fields next_hop
'0.0.0.0'
- class scapy.contrib.bgp.BGPPAOrigin(_pkt, /, *, origin=0)[source]
Bases:
Packet
Packet handling the ORIGIN attribute value. References: RFC 4271
- aliastypes
- class scapy.contrib.bgp.BGPPAOriginatorID(_pkt, /, *, originator_id='0.0.0.0')[source]
Bases:
Packet
Packet handling the ORIGINATOR_ID attribute value. References: RFC 4456
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ORIGINATOR ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPAOriginatorID
BGPPAOriginatorID fields originator_id
'0.0.0.0'
- class scapy.contrib.bgp.BGPPathAttr(_pkt, /, *, type_flags=<Flag 128 (Optional)>, type_code=0, attr_ext_len=None, attr_len=None, attribute=None)[source]
Bases:
Packet
Provides an implementation of the path attributes. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPE FLAGS | TYPE CODE | ATTR EXT LEN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ATTR LEN | ATTRIBUTE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPPathAttr
BGPPathAttr fields type_flags
<Flag 128 (Optional)>
type_code
0
attr_ext_len
ShortField
(Cond)None
attr_len
ByteField
(Cond)None
attribute
_PathAttrPacketField
None
- class scapy.contrib.bgp.BGPPathAttrPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
PacketListField handling the path attributes (UPDATE message).
- class scapy.contrib.bgp.BGPRouteRefresh(_pkt, /, *, afi=1, subtype=0, safi=1, orf_data=b'')[source]
Bases:
BGP
Provides an implementation of the ROUTE-REFRESH message. References: RFC 2918, RFC 7313
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AFI | SUBTYPE | SAFI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ORF DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPRouteRefresh
BGPRouteRefresh fields afi
1
subtype
0
safi
1
orf_data
PacketField
(Cond)b''
- class scapy.contrib.bgp.BGPUpdate(_pkt, /, *, withdrawn_routes_len=None, withdrawn_routes=[], path_attr_len=None, path_attr=[], nlri=[])[source]
Bases:
BGP
UPDATE messages allow peers to exchange routes. References: RFC 4271
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WITHDRAWN ROUTES LEN | WITHDRAWN ROUTES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PATH ATTR LEN | PATH ATTR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLRI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BGPUpdate
BGPUpdate fields withdrawn_routes_len
None
withdrawn_routes
[]
path_attr_len
None
path_attr
[]
nlri
[]
- class scapy.contrib.bgp.MPReachNLRIPacketListField(name: str, default: Optional[List[BasePacket]], pkt_cls: Optional[Union[Callable[[bytes], Packet], Type[Packet]]] # noqa: E501 = None, count_from: Optional[Callable[[Packet], int]] = None, length_from: Optional[Callable[[Packet], int]] = None, next_cls_cb: Optional[Callable[[Packet, List[BasePacket], Optional[Packet], bytes], Type[Packet]]] # noqa: E501 = None, max_count: Optional[int] = None)[source]
Bases:
PacketListField
PacketListField handling the AFI specific part (except for the length of Next Hop Network Address field, which is not AFI specific) of the MP_REACH_NLRI attribute.
- class scapy.contrib.bgp.MPUnreachNLRIPacketField(name: str, default: Optional[K], pkt_cls: Union[Callable[[bytes], Packet], Type[Packet]] # noqa: E501)[source]
Bases:
PacketField
PacketField handling the AFI specific part of the MP_UNREACH_NLRI attribute.
- scapy.contrib.bgp.detect_add_path_prefix46(s, max_bit_length)[source]
Detect IPv4/IPv6 prefixes conform to BGP Additional Path but NOT conform to standard BGP..
This is an adapted version of wireshark’s detect_add_path_prefix46 https://github.com/wireshark/wireshark/blob/ed9e958a2ed506220fdab320738f1f96a3c2ffbb/epan/dissectors/packet-bgp.c#L2905 Kudos to them !