scapy.contrib.rpl

RPL

RFC 6550 - Routing Protocol for Low-Power and Lossy Networks (RPL) draft-ietf-roll-efficient-npdao-17 - Efficient Route Invalidation

RPL Options : Pad1 PadN TIO RIO PIO Tgt TgtDesc DODAGConfig DAGMC …

RPL Msgs : DIS DIO DAO DAOACK DCO DCOACK

ICMPv6 : type 155 RPL

class scapy.contrib.rpl.RPLDAO(_pkt, /, *, RPLInstanceID=50, K=0, D=0, flags=0, reserved=0, daoseq=1, dodagid=None)[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: Destination Advertisement Object (DAO)

aliastypes = [<class 'scapy.contrib.rpl.RPLDAO'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDAO).RPLInstanceID>, <BitField (RPLDAO).K>, <BitField (RPLDAO).D>, <BitField (RPLDAO).flags>, <ByteField (RPLDAO).reserved>, <ByteField (RPLDAO).daoseq>, <scapy.fields.ConditionalField object>]
class scapy.contrib.rpl.RPLDAOACK(_pkt, /, *, RPLInstanceID=50, D=0, reserved=0, daoseq=1, status=0, dodagid=None)[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: Destination Advertisement Object Acknowledgement (DAOACK)

aliastypes = [<class 'scapy.contrib.rpl.RPLDAOACK'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDAOACK).RPLInstanceID>, <BitField (RPLDAOACK).D>, <BitField (RPLDAOACK).reserved>, <ByteField (RPLDAOACK).daoseq>, <ByteField (RPLDAOACK).status>, <scapy.fields.ConditionalField object>]
class scapy.contrib.rpl.RPLDCO(_pkt, /, *, RPLInstanceID=50, K=0, D=0, flags=0, status=0, dcoseq=1, dodagid=None)[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: Destination Cleanup Object (DCO)

aliastypes = [<class 'scapy.contrib.rpl.RPLDCO'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDCO).RPLInstanceID>, <BitField (RPLDCO).K>, <BitField (RPLDCO).D>, <BitField (RPLDCO).flags>, <ByteField (RPLDCO).status>, <ByteField (RPLDCO).dcoseq>, <scapy.fields.ConditionalField object>]
class scapy.contrib.rpl.RPLDCOACK(_pkt, /, *, RPLInstanceID=50, D=0, flags=0, dcoseq=1, status=0, dodagid=None)[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: Destination Cleanup Object Acknowledgement (DCOACK)

aliastypes = [<class 'scapy.contrib.rpl.RPLDCOACK'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDCOACK).RPLInstanceID>, <BitField (RPLDCOACK).D>, <BitField (RPLDCOACK).flags>, <ByteField (RPLDCOACK).dcoseq>, <ByteField (RPLDCOACK).status>, <scapy.fields.ConditionalField object>]
class scapy.contrib.rpl.RPLDIO(_pkt, /, *, RPLInstanceID=50, ver=0, rank=1, G=1, unused1=0, mop=1, prf=0, dtsn=240, flags=0, reserved=0, dodagid='::1')[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: DODAG Information Object (DIO)

aliastypes = [<class 'scapy.contrib.rpl.RPLDIO'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDIO).RPLInstanceID>, <ByteField (RPLDIO).ver>, <ShortField (RPLDIO).rank>, <BitField (RPLDIO).G>, <BitField (RPLDIO).unused1>, <BitEnumField (RPLDIO).mop>, <BitField (RPLDIO).prf>, <ByteField (RPLDIO).dtsn>, <ByteField (RPLDIO).flags>, <ByteField (RPLDIO).reserved>, <IP6Field (RPLDIO).dodagid>]
class scapy.contrib.rpl.RPLDIS(_pkt, /, *, flags=0, reserved=0)[source]

Bases: _RPLGuessMsgType, _RPLGuessOption

Control Message: DODAG Information Solicitation (DIS)

aliastypes = [<class 'scapy.contrib.rpl.RPLDIS'>, <class 'scapy.contrib.rpl._RPLGuessMsgType'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (RPLDIS).flags>, <ByteField (RPLDIS).reserved>]
class scapy.contrib.rpl.RPLOptDODAGConfig(_pkt, /, *, otype=4, len=14, flags=0, A=0, PCS=0, DIOIntDoubl=20, DIOIntMin=3, DIORedun=10, MaxRankIncrease=0, MinRankIncrease=256, OCP=1, reserved=0, DefLifetime=255, LifetimeUnit=65535)[source]

Bases: _RPLGuessOption

Control Option: DODAG Configuration

aliastypes = [<class 'scapy.contrib.rpl.RPLOptDODAGConfig'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptDODAGConfig).otype>, <ByteField (RPLOptDODAGConfig).len>, <BitField (RPLOptDODAGConfig).flags>, <BitField (RPLOptDODAGConfig).A>, <BitField (RPLOptDODAGConfig).PCS>, <ByteField (RPLOptDODAGConfig).DIOIntDoubl>, <ByteField (RPLOptDODAGConfig).DIOIntMin>, <ByteField (RPLOptDODAGConfig).DIORedun>, <ShortField (RPLOptDODAGConfig).MaxRankIncrease>, <ShortField (RPLOptDODAGConfig).MinRankIncrease>, <ShortField (RPLOptDODAGConfig).OCP>, <ByteField (RPLOptDODAGConfig).reserved>, <ByteField (RPLOptDODAGConfig).DefLifetime>, <ShortField (RPLOptDODAGConfig).LifetimeUnit>]
class scapy.contrib.rpl.RPLOptPIO(_pkt, /, *, otype=8, len=30, plen=64, L=0, A=0, R=0, reserved1=0, validlifetime=4294967295, preflifetime=4294967295, reserved2=0, prefix='::1')[source]

Bases: _RPLGuessOption

Control Option: Prefix Information Option (PIO)

aliastypes = [<class 'scapy.contrib.rpl.RPLOptPIO'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptPIO).otype>, <ByteField (RPLOptPIO).len>, <ByteField (RPLOptPIO).plen>, <BitField (RPLOptPIO).L>, <BitField (RPLOptPIO).A>, <BitField (RPLOptPIO).R>, <BitField (RPLOptPIO).reserved1>, <IntField (RPLOptPIO).validlifetime>, <IntField (RPLOptPIO).preflifetime>, <IntField (RPLOptPIO).reserved2>, <IP6Field (RPLOptPIO).prefix>]
class scapy.contrib.rpl.RPLOptPad1(_pkt, /, *, otype=0)[source]

Bases: _RPLGuessOption

Control Option: Pad 1 byte

aliastypes = [<class 'scapy.contrib.rpl.RPLOptPad1'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptPad1).otype>]
class scapy.contrib.rpl.RPLOptPadN(_pkt, /, *, otype=1, optlen=None, optdata=b'')[source]

Bases: _RPLGuessOption

Control Option: Pad N bytes

aliastypes = [<class 'scapy.contrib.rpl.RPLOptPadN'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptPadN).otype>, <FieldLenField (RPLOptPadN).optlen>, <StrLenField (RPLOptPadN).optdata>]
class scapy.contrib.rpl.RPLOptRIO(_pkt, /, *, otype=3, len=None, plen=None, res1=0, prf=0, res2=0, rtlifetime=4294967295, prefix=None)[source]

Bases: _RPLGuessOption

Control Option: Routing Information Option (RIO)

aliastypes = [<class 'scapy.contrib.rpl.RPLOptRIO'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptRIO).otype>, <FieldLenField (RPLOptRIO).len>, <ByteField (RPLOptRIO).plen>, <BitField (RPLOptRIO).res1>, <BitEnumField (RPLOptRIO).prf>, <BitField (RPLOptRIO).res2>, <IntField (RPLOptRIO).rtlifetime>, <_IP6PrefixField (RPLOptRIO).prefix>]
class scapy.contrib.rpl.RPLOptSolInfo(_pkt, /, *, otype=7, len=19, RPLInstanceID=0, V=0, I=0, D=0, flags=0, dodagid='::1', ver=0)[source]

Bases: _RPLGuessOption

Control Option: Solicited Information

aliastypes = [<class 'scapy.contrib.rpl.RPLOptSolInfo'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptSolInfo).otype>, <ByteField (RPLOptSolInfo).len>, <ByteField (RPLOptSolInfo).RPLInstanceID>, <BitField (RPLOptSolInfo).V>, <BitField (RPLOptSolInfo).I>, <BitField (RPLOptSolInfo).D>, <BitField (RPLOptSolInfo).flags>, <IP6Field (RPLOptSolInfo).dodagid>, <ByteField (RPLOptSolInfo).ver>]
class scapy.contrib.rpl.RPLOptTIO(_pkt, /, *, otype=6, len=None, E=0, flags=0, pathcontrol=0, pathseq=0, pathlifetime=255, parentaddr=None)[source]

Bases: _RPLGuessOption

Control Option: Transit Information Option (TIO)

aliastypes = [<class 'scapy.contrib.rpl.RPLOptTIO'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptTIO).otype>, <FieldLenField (RPLOptTIO).len>, <BitField (RPLOptTIO).E>, <BitField (RPLOptTIO).flags>, <ByteField (RPLOptTIO).pathcontrol>, <ByteField (RPLOptTIO).pathseq>, <ByteField (RPLOptTIO).pathlifetime>, <_IP6PrefixField (RPLOptTIO).parentaddr>]
class scapy.contrib.rpl.RPLOptTgt(_pkt, /, *, otype=5, len=None, flags=0, plen=0, prefix=None)[source]

Bases: _RPLGuessOption

Control Option: RPL Target

aliastypes = [<class 'scapy.contrib.rpl.RPLOptTgt'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptTgt).otype>, <FieldLenField (RPLOptTgt).len>, <ByteField (RPLOptTgt).flags>, <ByteField (RPLOptTgt).plen>, <_IP6PrefixField (RPLOptTgt).prefix>]
class scapy.contrib.rpl.RPLOptTgtDesc(_pkt, /, *, otype=9, len=4, descriptor=0)[source]

Bases: _RPLGuessOption

Control Option: RPL Target Descriptor

aliastypes = [<class 'scapy.contrib.rpl.RPLOptTgtDesc'>, <class 'scapy.contrib.rpl._RPLGuessOption'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (RPLOptTgtDesc).otype>, <ByteField (RPLOptTgtDesc).len>, <IntField (RPLOptTgtDesc).descriptor>]