scapy.contrib.bgp

BGP (Border Gateway Protocol).

class scapy.contrib.bgp.ASPathSegmentPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

PacketListField handling AS_PATH segments.

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

Bases: 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)

Returns the right class for the given data.

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

Bases: 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)

Bases: scapy.contrib.bgp.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

ByteEnumField

'65'

length

ByteField

'4'

asn

IntField

'0'

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

Bases: scapy.contrib.bgp.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

ByteEnumField

'0'

length

FieldLenField

'None'

cap_data

StrLenField

"b''"

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

Bases: scapy.contrib.bgp.BGPCapability

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

class GRTuple(*args, **kargs)

Bases: 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)

Bases: scapy.contrib.bgp.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

ByteEnumField

'1'

length

ByteField

'4'

afi

ShortEnumField

'0'

reserved

ByteField

'0'

safi

ByteEnumField

'0'

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

Bases: scapy.contrib.bgp.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

ByteEnumField

'3'

length

ByteField

'None'

orf

BGPCapORFBlockPacketListField

'[]'

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

Bases: scapy.packet.Packet

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

class ORFTuple(*args, **kargs)

Bases: 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)
class scapy.contrib.bgp.BGPCapORFBlockPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

Handles lists of BGPCapORFBlocks.

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

Bases: scapy.packet.Packet

Generic BGP capability.

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

Returns the right class for the given data.

post_build(p, pay)
pre_dissect(s)

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

class scapy.contrib.bgp.BGPConf

Bases: scapy.config.ConfClass

BGP module configuration.

use_2_bytes_asn = True
class scapy.contrib.bgp.BGPFieldIPv4(*args, **kwds)

Bases: scapy.fields.Field

IPv4 Field (CIDR)

addfield(pkt, s, val)
getfield(pkt, s)
h2i(pkt, h)

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

i2h(pkt, i)

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

i2len(pkt, i)
i2m(pkt, i)

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

i2repr(pkt, i)
m2i(pkt, m)
mask2iplen(mask)

Get the IP field mask length (in bytes).

class scapy.contrib.bgp.BGPFieldIPv6(*args, **kwds)

Bases: scapy.fields.Field

IPv6 Field (CIDR)

addfield(pkt, s, val)
getfield(pkt, s)
h2i(pkt, h)

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

i2h(pkt, i)

“Internal” representation to “human” representation.

i2len(pkt, i)
i2m(pkt, i)

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

i2repr(pkt, i)
m2i(pkt, m)
mask2iplen(mask)

Get the IP field mask length (in bytes).

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

Bases: scapy.packet.Packet

The header of any BGP message. References: RFC 4271

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

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)
payload_guess

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

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

Bases: scapy.contrib.bgp.BGP, scapy.contrib.bgp.BGPHeader

KEEPALIVE message.

aliastypes
class scapy.contrib.bgp.BGPNLRIPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

PacketListField handling NLRI fields.

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

Bases: 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)

Bases: 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)

Bases: scapy.contrib.bgp.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

ByteEnumField

'0'

error_subcode

MultiEnumField (Depends on <Field (BGPNotification).error_code>)

'0'

data

StrField

'None'

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

Bases: 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)

Bases: scapy.contrib.bgp.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

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)

Bases: 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)

Bases: scapy.packet.Packet

Provides an implementation of an ORF entry. 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ACT|M| RESERVED|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. BGPORFEntry                         
BGPORFEntry fields

action

BitEnumField

'0'

match

BitEnumField

'0'

reserved

BitField (5 bits)

'0'

value

StrField

"b''"

class scapy.contrib.bgp.BGPORFEntryPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

PacketListField handling the ORF entries.

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

Bases: scapy.contrib.bgp.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

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)
class scapy.contrib.bgp.BGPOptParam(*args, **kargs)

Bases: 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)
class scapy.contrib.bgp.BGPOptParamPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

PacketListField handling the optional parameters (OPEN message).

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

Bases: 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)

Bases: 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)

Bases: 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)
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)

Bases: 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)
class scapy.contrib.bgp.BGPPAASPath(*args, **kargs)

Bases: 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)

Bases: 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)
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)

Bases: 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)

Bases: scapy.packet.Packet

Packet handling the ATOMIC_AGGREGATE attribute value. References: RFC 4271

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

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)
class scapy.contrib.bgp.BGPPAIPv6AddressSpecificExtComm(*args, **kargs)

Bases: 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)

Bases: 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)

Bases: 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)
class scapy.contrib.bgp.BGPPAMPUnreachNLRI(*args, **kargs)

Bases: 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)
class scapy.contrib.bgp.BGPPAMPUnreachNLRI_IPv6(*args, **kargs)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)
class scapy.contrib.bgp.BGPPathAttrPacketListField(*args, **kwds)

Bases: scapy.fields.PacketListField

PacketListField handling the path attributes (UPDATE message).

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

Bases: scapy.contrib.bgp.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

ShortEnumField

'1'

subtype

ByteEnumField

'0'

safi

ByteEnumField

'1'

orf_data

PacketField

"b''"

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

Bases: scapy.contrib.bgp.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

FieldLenField

'None'

withdrawn_routes

BGPNLRIPacketListField

'[]'

path_attr_len

FieldLenField

'None'

path_attr

BGPPathAttrPacketListField

'[]'

nlri

BGPNLRIPacketListField

'[]'

post_build(p, pay)
class scapy.contrib.bgp.MPReachNLRIPacketListField(*args, **kwds)

Bases: scapy.fields.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.

getfield(pkt, s)
class scapy.contrib.bgp.MPUnreachNLRIPacketField(*args, **kwds)

Bases: scapy.fields.PacketField

PacketField handling the AFI specific part of the MP_UNREACH_NLRI attribute.

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

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