scapy.contrib.rtr

RTR

Based on RTR RFC 6810 https://tools.ietf.org/html/rfc6810 for version 0 Based on RTR RFC 8210 https://tools.ietf.org/html/rfc8210 for version 1

class scapy.contrib.rtr.RTR(_pkt, /)[source]

Bases: Packet

Dummy RPKI to Router generic packet for pre-sorting the packet type eg. https://tools.ietf.org/html/rfc6810#section-5.2

aliastypes = [<class 'scapy.contrib.rtr.RTR'>, <class 'scapy.packet.Packet'>]
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]

Attribution of correct type depending on version and pdu_type

class scapy.contrib.rtr.RTRCacheReset(_pkt, /, *, rtr_version=0, pdu_type=8, reserved=0, length=8)[source]

Bases: Packet

Cache Reset packet from section 5.9 https://tools.ietf.org/html/rfc6810#section-5.9

aliastypes = [<class 'scapy.contrib.rtr.RTRCacheReset'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRCacheReset).rtr_version>, <ByteEnumField (RTRCacheReset).pdu_type>, <ShortField (RTRCacheReset).reserved>, <IntField (RTRCacheReset).length>]
class scapy.contrib.rtr.RTRCacheResponse(_pkt, /, *, rtr_version=0, pdu_type=3, session_id=0, length=8)[source]

Bases: Packet

Cache Response packet from section 5.5 https://tools.ietf.org/html/rfc6810#section-5.5

aliastypes = [<class 'scapy.contrib.rtr.RTRCacheResponse'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRCacheResponse).rtr_version>, <ByteEnumField (RTRCacheResponse).pdu_type>, <ShortField (RTRCacheResponse).session_id>, <IntField (RTRCacheResponse).length>]
guess_payload_class(payload)[source]
class scapy.contrib.rtr.RTREndofDatav0(_pkt, /, *, rtr_version=0, pdu_type=7, session_id=0, length=12, serial_number=0)[source]

Bases: Packet

End of Data packet from version 0 standard section 5.8 https://tools.ietf.org/html/rfc6810#section-5.8

aliastypes = [<class 'scapy.contrib.rtr.RTREndofDatav0'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTREndofDatav0).rtr_version>, <ByteEnumField (RTREndofDatav0).pdu_type>, <ShortField (RTREndofDatav0).session_id>, <IntField (RTREndofDatav0).length>, <IntField (RTREndofDatav0).serial_number>]
class scapy.contrib.rtr.RTREndofDatav1(_pkt, /, *, rtr_version=1, pdu_type=7, session_id=0, length=24, serial_number=0, refresh_interval=0, retry_interval=0, expire_interval=0)[source]

Bases: Packet

End of Data packet from version 1 standard section 5.8 https://tools.ietf.org/html/rfc8210#section-5.8

aliastypes = [<class 'scapy.contrib.rtr.RTREndofDatav1'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTREndofDatav1).rtr_version>, <ByteEnumField (RTREndofDatav1).pdu_type>, <ShortField (RTREndofDatav1).session_id>, <IntField (RTREndofDatav1).length>, <IntField (RTREndofDatav1).serial_number>, <IntField (RTREndofDatav1).refresh_interval>, <IntField (RTREndofDatav1).retry_interval>, <IntField (RTREndofDatav1).expire_interval>]
class scapy.contrib.rtr.RTRErrorReport(_pkt, /, *, rtr_version=0, pdu_type=10, error_code=0, length=None, length_of_encaps_PDU=None, erroneous_PDU=b'', length_of_error_text=None, error_text=b'')[source]

Bases: Packet

Error Report packet from section 5.10 https://tools.ietf.org/html/rfc6810#section-5.10

aliastypes = [<class 'scapy.contrib.rtr.RTRErrorReport'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRErrorReport).rtr_version>, <ByteEnumField (RTRErrorReport).pdu_type>, <ShortEnumField (RTRErrorReport).error_code>, <IntField (RTRErrorReport).length>, <FieldLenField (RTRErrorReport).length_of_encaps_PDU>, <StrLenField (RTRErrorReport).erroneous_PDU>, <FieldLenField (RTRErrorReport).length_of_error_text>, <StrLenField (RTRErrorReport).error_text>]
post_build(pkt, pay)[source]
class scapy.contrib.rtr.RTRIPv4Prefix(_pkt, /, *, rtr_version=0, pdu_type=4, reserved=0, length=20, flags=0, shortest_length=0, longest_length=0, zeros=0, prefix='0.0.0.0', asn=0)[source]

Bases: Packet

IPv4 Prefix packet from section 5.6 https://tools.ietf.org/html/rfc6810#section-5.6

aliastypes = [<class 'scapy.contrib.rtr.RTRIPv4Prefix'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRIPv4Prefix).rtr_version>, <ByteEnumField (RTRIPv4Prefix).pdu_type>, <ShortField (RTRIPv4Prefix).reserved>, <IntField (RTRIPv4Prefix).length>, <ByteField (RTRIPv4Prefix).flags>, <ByteField (RTRIPv4Prefix).shortest_length>, <ByteField (RTRIPv4Prefix).longest_length>, <ByteField (RTRIPv4Prefix).zeros>, <IPField (RTRIPv4Prefix).prefix>, <IntField (RTRIPv4Prefix).asn>]
guess_payload_class(payload)[source]
class scapy.contrib.rtr.RTRIPv6Prefix(_pkt, /, *, rtr_version=0, pdu_type=6, reserved=0, length=32, flags=0, shortest_length=0, longest_length=0, zeros=0, prefix='::', asn=0)[source]

Bases: Packet

IPv6 Prefix packet from section 5.7 https://tools.ietf.org/html/rfc6810#section-5.7

aliastypes = [<class 'scapy.contrib.rtr.RTRIPv6Prefix'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRIPv6Prefix).rtr_version>, <ByteEnumField (RTRIPv6Prefix).pdu_type>, <ShortField (RTRIPv6Prefix).reserved>, <IntField (RTRIPv6Prefix).length>, <ByteField (RTRIPv6Prefix).flags>, <ByteField (RTRIPv6Prefix).shortest_length>, <ByteField (RTRIPv6Prefix).longest_length>, <ByteField (RTRIPv6Prefix).zeros>, <IP6Field (RTRIPv6Prefix).prefix>, <IntField (RTRIPv6Prefix).asn>]
guess_payload_class(payload)[source]
class scapy.contrib.rtr.RTRResetQuery(_pkt, /, *, rtr_version=0, pdu_type=2, reserved=0, length=8)[source]

Bases: Packet

Reset Query packet from section 5.4 https://tools.ietf.org/html/rfc6810#section-5.4

aliastypes = [<class 'scapy.contrib.rtr.RTRResetQuery'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRResetQuery).rtr_version>, <ByteEnumField (RTRResetQuery).pdu_type>, <ShortField (RTRResetQuery).reserved>, <IntField (RTRResetQuery).length>]
class scapy.contrib.rtr.RTRRouterKey(_pkt, /, *, rtr_version=1, pdu_type=9, flags=0, zeros=0, length=None, subject_key_identifier=b'', asn=0, subject_PKI=b'')[source]

Bases: Packet

Router Key packet from version 1 standard section 5.10 https://tools.ietf.org/html/rfc8210#section-5.10

aliastypes = [<class 'scapy.contrib.rtr.RTRRouterKey'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRRouterKey).rtr_version>, <ByteEnumField (RTRRouterKey).pdu_type>, <ByteField (RTRRouterKey).flags>, <ByteField (RTRRouterKey).zeros>, <IntField (RTRRouterKey).length>, <StrFixedLenField (RTRRouterKey).subject_key_identifier>, <IntField (RTRRouterKey).asn>, <StrLenField (RTRRouterKey).subject_PKI>]
post_build(pkt, pay)[source]
class scapy.contrib.rtr.RTRSerialNotify(_pkt, /, *, rtr_version=0, pdu_type=0, session_id=0, length=12, serial_number=0)[source]

Bases: Packet

Serial Notify packet from section 5.2 https://tools.ietf.org/html/rfc6810#section-5.2

aliastypes = [<class 'scapy.contrib.rtr.RTRSerialNotify'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRSerialNotify).rtr_version>, <ByteEnumField (RTRSerialNotify).pdu_type>, <ShortField (RTRSerialNotify).session_id>, <IntField (RTRSerialNotify).length>, <IntField (RTRSerialNotify).serial_number>]
class scapy.contrib.rtr.RTRSerialQuery(_pkt, /, *, rtr_version=0, pdu_type=1, session_id=0, length=12, serial_number=0)[source]

Bases: Packet

Serial Query packet from section 5.3 https://tools.ietf.org/html/rfc6810#section-5.3

aliastypes = [<class 'scapy.contrib.rtr.RTRSerialQuery'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RTRSerialQuery).rtr_version>, <ByteEnumField (RTRSerialQuery).pdu_type>, <ShortField (RTRSerialQuery).session_id>, <IntField (RTRSerialQuery).length>, <IntField (RTRSerialQuery).serial_number>]