scapy.contrib.bgp

BGP (Border Gateway Protocol).

class scapy.contrib.bgp.ASPathSegmentPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

PacketListField handling AS_PATH segments.

getfield(pkt, s)[source]
class scapy.contrib.bgp.BGP(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Every BGP message inherits from this class.

KEEPALIVE_TYPE = 4
NOTIFICATION_TYPE = 3
OPEN_TYPE = 1
ROUTEREFRESH_TYPE = 5
UPDATE_TYPE = 2
aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]

Returns the right class for the given data.

guess_payload_class(p)[source]
class scapy.contrib.bgp.BGPAuthenticationInformation(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteField

0

authentication_data

StrField

None

class scapy.contrib.bgp.BGPCapFourBytesASN(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteEnumField

65

length

ByteField

4

asn

IntField

0

match_subclass = True
class scapy.contrib.bgp.BGPCapGeneric(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteEnumField

0

length

FieldLenField

None

cap_data

StrLenField

b''

match_subclass = True
class scapy.contrib.bgp.BGPCapGracefulRestart(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

This class provides an implementation of the Graceful Restart capability. References: RFC 4724

class GRTuple(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortEnumField

0

safi

ByteEnumField

0

flags

ByteEnumField

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

ByteEnumField

64

length

ByteField

None

restart_flags

BitField (4 bits)

0

restart_time

BitField (12 bits)

0

entries

PacketListField

[]

match_subclass = True
class scapy.contrib.bgp.BGPCapMultiprotocol(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteEnumField

1

length

ByteField

4

afi

ShortEnumField

0

reserved

ByteField

0

safi

ByteEnumField

0

match_subclass = True
class scapy.contrib.bgp.BGPCapORF(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteEnumField

3

length

ByteField

None

orf

BGPCapORFBlockPacketListField

[]

match_subclass = True
class scapy.contrib.bgp.BGPCapORFBlock(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

The “ORFBlock” is made of <AFI, rsvd, SAFI, Number of ORFs, and <ORF Type, Send/Receive> entries.

class ORFTuple(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling <ORF Types, Send/Receive> tuples.

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    ORF TYPE   |  SEND RECEIVE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. ORFTuple                           
ORFTuple fields

orf_type

ByteEnumField

0

send_receive

ByteEnumField

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              AFI              |    RESERVED   |      SAFI     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   ORF NUMBER  |            ENTRIES            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. BGPCapORFBlock                        
BGPCapORFBlock fields

afi

ShortEnumField

0

reserved

ByteField

0

safi

ByteEnumField

0

orf_number

FieldLenField

None

entries

PacketListField

[]

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPCapORFBlockPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

Handles lists of BGPCapORFBlocks.

getfield(pkt, s)[source]
class scapy.contrib.bgp.BGPCapability(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Generic BGP capability.

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]

Returns the right class for the given data.

post_build(p, pay)[source]
pre_dissect(s)[source]

Check that the payload is long enough (at least 2 bytes).

class scapy.contrib.bgp.BGPConf[source]

Bases: scapy.config.ConfClass

BGP module configuration.

use_2_bytes_asn = True
class scapy.contrib.bgp.BGPFieldIPv4(name, default, fmt='H')[source]

Bases: Generic[scapy.fields.I, scapy.fields.M]

IPv4 Field (CIDR)

addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
h2i(pkt, h)[source]

x.x.x.x/y to “internal” representation.

i2h(pkt, i)[source]

“Internal” representation to “human” representation (x.x.x.x/y).

i2len(pkt, i)[source]
i2m(pkt, i)[source]

“Internal” (IP as bytes, mask as int) to “machine” representation.

i2repr(pkt, i)[source]
m2i(pkt, m)[source]
mask2iplen(mask)[source]

Get the IP field mask length (in bytes).

class scapy.contrib.bgp.BGPFieldIPv6(name, default, fmt='H')[source]

Bases: Generic[scapy.fields.I, scapy.fields.M]

IPv6 Field (CIDR)

addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
h2i(pkt, h)[source]

x.x.x.x/y to internal representation.

i2h(pkt, i)[source]

“Internal” representation to “human” representation.

i2len(pkt, i)[source]
i2m(pkt, i)[source]

“Internal” (IP as bytes, mask as int) to “machine” representation.

i2repr(pkt, i)[source]
m2i(pkt, m)[source]
mask2iplen(mask)[source]

Get the IP field mask length (in bytes).

class scapy.contrib.bgp.BGPHeader(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortField

None

type

ByteEnumField

4

guess_payload_class(payload)[source]
payload_guess

Possible sublayers: BGPKeepAlive, BGPNotification, BGPOpen, BGPRouteRefresh, BGPUpdate

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPKeepAlive(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

KEEPALIVE message.

aliastypes
class scapy.contrib.bgp.BGPNLRIPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

PacketListField handling NLRI fields.

getfield(pkt, s)[source]
class scapy.contrib.bgp.BGPNLRI_IPv4(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling IPv4 NLRI fields.

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             PREFIX            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. BGPNLRI_IPv4                         
BGPNLRI_IPv4 fields

prefix

BGPFieldIPv4

(0, '0.0.0.0')

class scapy.contrib.bgp.BGPNLRI_IPv6(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling IPv6 NLRI fields.

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             PREFIX            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. BGPNLRI_IPv6                         
BGPNLRI_IPv6 fields

prefix

BGPFieldIPv6

(0, '::')

class scapy.contrib.bgp.BGPNotification(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteEnumField

0

error_subcode

MultiEnumField (Depends on 0)

0

data

StrField

None

class scapy.contrib.bgp.BGPORF(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

0

orf_type

ByteEnumField

0

orf_len

FieldLenField

None

entries

BGPORFEntryPacketListField

[]

class scapy.contrib.bgp.BGPORFAddressPrefix(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

BitEnumField

0

match

BitEnumField

0

reserved

BitField (5 bits)

0

sequence

IntField

0

min_len

ByteField

0

max_len

ByteField

0

prefix

_ORFNLRIPacketField

b''

class scapy.contrib.bgp.BGPORFCoveringPrefix(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

BitEnumField

0

match

BitEnumField

0

reserved

BitField (5 bits)

0

sequence

IntField

0

min_len

ByteField

0

max_len

ByteField

0

rt

LongField

0

import_rt

LongField

0

route_type

ByteField

0

host_addr

PacketField

None

class scapy.contrib.bgp.BGPORFEntry(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

BitEnumField

0

match

BitEnumField

0

reserved

BitField (5 bits)

0

value

StrField

b''

safi
class scapy.contrib.bgp.BGPORFEntryPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

PacketListField handling the ORF entries.

getfield(pkt, s)[source]
m2i(pkt, m)[source]
class scapy.contrib.bgp.BGPOpen(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ByteField

4

my_as

ShortField

0

hold_time

ShortField

0

bgp_id

IPField

'0.0.0.0'

opt_param_len

FieldLenField

None

opt_params

BGPOptParamPacketListField

[]

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPOptParam(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

2

param_length

ByteField

None

param_value

PacketField (Cond)

None

authentication_data

PacketField (Cond)

None

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPOptParamPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

PacketListField handling the optional parameters (OPEN message).

getfield(pkt, s)[source]
class scapy.contrib.bgp.BGPPAAS4Aggregator(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

speaker_address

IPField

'0.0.0.0'

class scapy.contrib.bgp.BGPPAAS4BytesPath(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling the AS_PATH attribute value (4 bytes ASNs, for new speakers -> ASNs are encoded as IntFields). References: RFC 4893

class ASPathSegment(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

2

segment_length

ByteField

None

segment_value

FieldListField

[]

post_build(p, pay)[source]
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SEGMENTS           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. BGPPAAS4BytesPath                      
BGPPAAS4BytesPath fields

segments

ASPathSegmentPacketListField

[]

class scapy.contrib.bgp.BGPPAAS4Path(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

2

segment_length

ByteField

None

segment_value

FieldListField

[]

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPPAASPath(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling the AS_PATH attribute value (2 bytes ASNs, for old speakers). References: RFC 4271, RFC 5065

class ASPathSegment(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

2

segment_length

ByteField

None

segment_value

FieldListField

[]

post_build(p, pay)[source]
AS_TRANS = 23456
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SEGMENTS           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. BGPPAASPath                         
BGPPAASPath fields

segments

ASPathSegmentPacketListField

[]

class scapy.contrib.bgp.BGPPAAggregator(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortField

0

speaker_address

IPField

'0.0.0.0'

class scapy.contrib.bgp.BGPPAAtomicAggregate(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling the ATOMIC_AGGREGATE attribute value. References: RFC 4271

aliastypes
class scapy.contrib.bgp.BGPPAClusterList(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling the CLUSTER_LIST 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CLUSTER LIST         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. BGPPAClusterList                       
BGPPAClusterList fields

cluster_list

FieldListField

[]

class scapy.contrib.bgp.BGPPACommunity(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntEnumField

0

class scapy.contrib.bgp.BGPPAExtCommFourOctetASSpecific(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

local_administrator

ShortField

0

class scapy.contrib.bgp.BGPPAExtCommIPv4AddressSpecific(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

local_administrator

ShortField

0

class scapy.contrib.bgp.BGPPAExtCommOpaque(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

StrFixedLenField

b''

class scapy.contrib.bgp.BGPPAExtCommRedirectAS2Byte(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortField

0

value

IntField

0

class scapy.contrib.bgp.BGPPAExtCommRedirectAS4Byte(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

value

ShortField

0

class scapy.contrib.bgp.BGPPAExtCommRedirectIPv4(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

value

ShortField

0

class scapy.contrib.bgp.BGPPAExtCommTrafficAction(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

BitEnumField

48

class scapy.contrib.bgp.BGPPAExtCommTrafficRate(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortField

0

rate

IEEEFloatField

0

class scapy.contrib.bgp.BGPPAExtCommTwoOctetASSpecific(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortField

0

local_administrator

IntField

0

class scapy.contrib.bgp.BGPPAExtComms(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ByteEnumField

0

type_low

_TypeLowField

None

value

_ExtCommValuePacketField

None

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPPAIPv6AddressSpecificExtComm(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IP6Field

'::'

local_administrator

ShortField

0

class scapy.contrib.bgp.BGPPALocalPref(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

class scapy.contrib.bgp.BGPPAMPReachNLRI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortEnumField

0

safi

ByteEnumField

0

nh_addr_len

ByteField

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

ByteField

0

nlri

MPReachNLRIPacketListField

[]

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPPAMPUnreachNLRI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

ShortEnumField

0

safi

ByteEnumField

0

afi_safi_specific

MPUnreachNLRIPacketField

None

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPPAMPUnreachNLRI_IPv6(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

BGPNLRIPacketListField

[]

class scapy.contrib.bgp.BGPPAMultiExitDisc(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IntField

0

class scapy.contrib.bgp.BGPPANextHop(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IPField

'0.0.0.0'

class scapy.contrib.bgp.BGPPAOrigin(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

Packet handling the ORIGIN 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ORIGIN    |
+-+-+-+-+-+-+-+-+

                         Fig. BGPPAOrigin                         
BGPPAOrigin fields

origin

ByteEnumField

0

class scapy.contrib.bgp.BGPPAOriginatorID(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

IPField

'0.0.0.0'

class scapy.contrib.bgp.BGPPathAttr(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.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

FlagsField

<Flag 128 (Optional)>

type_code

ByteEnumField

0

attr_ext_len

ShortField (Cond)

None

attr_len

ByteField (Cond)

None

attribute

_PathAttrPacketField

None

post_build(p, pay)[source]
class scapy.contrib.bgp.BGPPathAttrPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

PacketListField handling the path attributes (UPDATE message).

getfield(pkt, s)[source]
class scapy.contrib.bgp.BGPRouteRefresh(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

ShortEnumField

1

subtype

ByteEnumField

0

safi

ByteEnumField

1

orf_data

PacketField

b''

class scapy.contrib.bgp.BGPUpdate(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

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

FieldLenField

None

withdrawn_routes

BGPNLRIPacketListField

[]

path_attr_len

FieldLenField

None

path_attr

BGPPathAttrPacketListField

[]

nlri

BGPNLRIPacketListField

[]

post_build(p, pay)[source]
class scapy.contrib.bgp.MPReachNLRIPacketListField(name, default, pkt_cls=None, count_from=None, length_from=None, next_cls_cb=None)[source]

Bases: scapy.fields._PacketField[List[scapy.base_classes.BasePacket]]

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.

getfield(pkt, s)[source]
class scapy.contrib.bgp.MPUnreachNLRIPacketField(name, default, pkt_cls)[source]

Bases: scapy.fields._PacketField[scapy.base_classes.BasePacket]

PacketField handling the AFI specific part of the MP_UNREACH_NLRI attribute.

m2i(pkt, m)[source]
scapy.contrib.bgp.has_extended_length(flags)[source]

Used in BGPPathAttr to check if the extended-length flag is set.