scapy.contrib.eigrp

EIGRP Scapy Extension

version:

2009-08-13

e-mail:

lobo@c3a.de / jochen.bartl@gmail.com

:TODO

Thanks:

  • TLV code derived from the CDP implementation of scapy. (Thanks to Nicolas Bareil and Arnaud Ebalard)

    http://trac.secdev.org/scapy/ticket/18

  • IOS / EIGRP Version Representation FIX by Dirk Loss

class scapy.contrib.eigrp.EIGRP(_pkt, /, *, ver=2, opcode=5, chksum=None, flags=<Flag 0 ()>, seq=0, ack=0, asn=100, tlvlist=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.eigrp.EIGRP'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (EIGRP).ver>, <ByteEnumField (EIGRP).opcode>, <XShortField (EIGRP).chksum>, <FlagsField (EIGRP).flags>, <IntField (EIGRP).seq>, <IntField (EIGRP).ack>, <IntField (EIGRP).asn>, <PacketListField (EIGRP).tlvlist>]
mysummary()[source]
post_build(p, pay)[source]
class scapy.contrib.eigrp.EIGRPAuthData(_pkt, /, *, type=2, len=None, authtype=2, keysize=None, keyid=1, nullpad=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', authdata=<RandString>)[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPAuthData'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPAuthData).type>, <FieldLenField (EIGRPAuthData).len>, <ShortEnumField (EIGRPAuthData).authtype>, <ShortField (EIGRPAuthData).keysize>, <IntField (EIGRPAuthData).keyid>, <StrFixedLenField (EIGRPAuthData).nullpad>, <StrLenField (EIGRPAuthData).authdata>]
post_build(p, pay)[source]
class scapy.contrib.eigrp.EIGRPExtRoute(_pkt, /, *, type=259, len=None, nexthop='192.168.0.0', originrouter='192.168.0.1', originasn=0, tag=0, externalmetric=0, reserved=0, extprotocolid=3, flags=<Flag 0 ()>, delay=0, bandwidth=256, mtu=1500, hopcount=0, reliability=255, load=0, reserved2=0, prefixlen=24, dst='192.168.1.0')[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPExtRoute'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPExtRoute).type>, <FieldLenField (EIGRPExtRoute).len>, <IPField (EIGRPExtRoute).nexthop>, <IPField (EIGRPExtRoute).originrouter>, <IntField (EIGRPExtRoute).originasn>, <IntField (EIGRPExtRoute).tag>, <IntField (EIGRPExtRoute).externalmetric>, <ShortField (EIGRPExtRoute).reserved>, <ByteEnumField (EIGRPExtRoute).extprotocolid>, <FlagsField (EIGRPExtRoute).flags>, <IntField (EIGRPExtRoute).delay>, <IntField (EIGRPExtRoute).bandwidth>, <ThreeBytesField (EIGRPExtRoute).mtu>, <ByteField (EIGRPExtRoute).hopcount>, <ByteField (EIGRPExtRoute).reliability>, <ByteField (EIGRPExtRoute).load>, <XShortField (EIGRPExtRoute).reserved2>, <ByteField (EIGRPExtRoute).prefixlen>, <EigrpIPField (EIGRPExtRoute).dst>]
class scapy.contrib.eigrp.EIGRPGeneric(_pkt, /, *, type=0, len=None, value=b'\x00')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPGeneric).type>, <FieldLenField (EIGRPGeneric).len>, <StrLenField (EIGRPGeneric).value>]
guess_payload_class(p)[source]
class scapy.contrib.eigrp.EIGRPIntRoute(_pkt, /, *, type=258, len=None, nexthop='192.168.0.0', delay=128000, bandwidth=256, mtu=1500, hopcount=0, reliability=255, load=0, reserved=0, prefixlen=24, dst='192.168.1.0')[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPIntRoute'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPIntRoute).type>, <FieldLenField (EIGRPIntRoute).len>, <IPField (EIGRPIntRoute).nexthop>, <IntField (EIGRPIntRoute).delay>, <IntField (EIGRPIntRoute).bandwidth>, <ThreeBytesField (EIGRPIntRoute).mtu>, <ByteField (EIGRPIntRoute).hopcount>, <ByteField (EIGRPIntRoute).reliability>, <ByteField (EIGRPIntRoute).load>, <XShortField (EIGRPIntRoute).reserved>, <ByteField (EIGRPIntRoute).prefixlen>, <EigrpIPField (EIGRPIntRoute).dst>]
class scapy.contrib.eigrp.EIGRPNms(_pkt, /, *, type=5, len=8, nms=2)[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPNms'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPNms).type>, <ShortField (EIGRPNms).len>, <IntField (EIGRPNms).nms>]
class scapy.contrib.eigrp.EIGRPParam(_pkt, /, *, type=1, len=12, k1=1, k2=0, k3=1, k4=0, k5=0, reserved=0, holdtime=15)[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPParam'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPParam).type>, <ShortField (EIGRPParam).len>, <ByteField (EIGRPParam).k1>, <ByteField (EIGRPParam).k2>, <ByteField (EIGRPParam).k3>, <ByteField (EIGRPParam).k4>, <ByteField (EIGRPParam).k5>, <ByteField (EIGRPParam).reserved>, <ShortField (EIGRPParam).holdtime>]
class scapy.contrib.eigrp.EIGRPSeq(_pkt, /, *, type=3, len=None, addrlen=4, ipaddr='192.168.0.1', ip6addr='2001::')[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPSeq'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPSeq).type>, <ShortField (EIGRPSeq).len>, <ByteField (EIGRPSeq).addrlen>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
post_build(p, pay)[source]
class scapy.contrib.eigrp.EIGRPStub(_pkt, /, *, type=6, len=6, flags=<Flag 13 (connected+summary+receive-only)>)[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPStub'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPStub).type>, <ShortField (EIGRPStub).len>, <FlagsField (EIGRPStub).flags>]
class scapy.contrib.eigrp.EIGRPSwVer(_pkt, /, *, type=4, len=8, ios=3072, eigrp=258)[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPSwVer'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPSwVer).type>, <ShortField (EIGRPSwVer).len>, <ShortVersionField (EIGRPSwVer).ios>, <ShortVersionField (EIGRPSwVer).eigrp>]
class scapy.contrib.eigrp.EIGRPv6ExtRoute(_pkt, /, *, type=1027, len=None, nexthop='::', originrouter='192.168.0.1', originasn=0, tag=0, externalmetric=0, reserved=0, extprotocolid=3, flags=<Flag 0 ()>, delay=0, bandwidth=256000, mtu=1500, hopcount=1, reliability=0, load=1, reserved2=0, prefixlen=8, dst='::')[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPv6ExtRoute'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPv6ExtRoute).type>, <FieldLenField (EIGRPv6ExtRoute).len>, <IP6Field (EIGRPv6ExtRoute).nexthop>, <IPField (EIGRPv6ExtRoute).originrouter>, <IntField (EIGRPv6ExtRoute).originasn>, <IntField (EIGRPv6ExtRoute).tag>, <IntField (EIGRPv6ExtRoute).externalmetric>, <ShortField (EIGRPv6ExtRoute).reserved>, <ByteEnumField (EIGRPv6ExtRoute).extprotocolid>, <FlagsField (EIGRPv6ExtRoute).flags>, <IntField (EIGRPv6ExtRoute).delay>, <IntField (EIGRPv6ExtRoute).bandwidth>, <ThreeBytesField (EIGRPv6ExtRoute).mtu>, <ByteField (EIGRPv6ExtRoute).hopcount>, <ByteField (EIGRPv6ExtRoute).reliability>, <ByteField (EIGRPv6ExtRoute).load>, <XShortField (EIGRPv6ExtRoute).reserved2>, <ByteField (EIGRPv6ExtRoute).prefixlen>, <EigrpIP6Field (EIGRPv6ExtRoute).dst>]
class scapy.contrib.eigrp.EIGRPv6IntRoute(_pkt, /, *, type=1026, len=None, nexthop='::', delay=128000, bandwidth=256000, mtu=1500, hopcount=1, reliability=255, load=0, reserved=0, prefixlen=16, dst='2001::')[source]

Bases: EIGRPGeneric

aliastypes = [<class 'scapy.contrib.eigrp.EIGRPv6IntRoute'>, <class 'scapy.contrib.eigrp.EIGRPGeneric'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XShortField (EIGRPv6IntRoute).type>, <FieldLenField (EIGRPv6IntRoute).len>, <IP6Field (EIGRPv6IntRoute).nexthop>, <IntField (EIGRPv6IntRoute).delay>, <IntField (EIGRPv6IntRoute).bandwidth>, <ThreeBytesField (EIGRPv6IntRoute).mtu>, <ByteField (EIGRPv6IntRoute).hopcount>, <ByteField (EIGRPv6IntRoute).reliability>, <ByteField (EIGRPv6IntRoute).load>, <XShortField (EIGRPv6IntRoute).reserved>, <ByteField (EIGRPv6IntRoute).prefixlen>, <EigrpIP6Field (EIGRPv6IntRoute).dst>]
class scapy.contrib.eigrp.EigrpIP6Field(name, default, length=None, length_from=None)[source]

Bases: StrField, IP6Field

This is a special field type for handling ip addresses of destination networks in internal and external route updates.

any2i(pkt, x)[source]
getfield(pkt, s)[source]
h2i(pkt, x)[source]
i2len(pkt, x)[source]
i2m(pkt, x)[source]
i2repr(pkt, x)[source]
length_from
m2i(pkt, x)[source]
prefixlen_to_bytelen(plen)[source]
randval()[source]
class scapy.contrib.eigrp.EigrpIPField(name, default, length=None, length_from=None)[source]

Bases: StrField, IPField

This is a special field type for handling ip addresses of destination networks in internal and external route updates.

EIGRP removes zeros from the host portion of the ip address if the netmask is 8, 16 or 24 bits.

getfield(pkt, s)[source]
h2i(pkt, x)[source]
i2len(pkt, x)[source]
i2m(pkt, x)[source]
length_from
m2i(pkt, x)[source]
prefixlen_to_bytelen(tmp_len)[source]
randval()[source]
class scapy.contrib.eigrp.ShortVersionField(name: str, default: int | None)[source]

Bases: ShortField

h2i(pkt, x)[source]

The field accepts string values like v12.1, v1.1 or integer values. String values have to start with a “v” followed by a floating point number. Valid numbers are between 0 and 255.

i2repr(pkt, x)[source]
randval()[source]