scapy.contrib.rpl_metrics

RFC 6551 - Routing Metrics Used for Path Calculation in LLNs

Metrics & Constraint Types

DAGMC Option

RPL-DIO

class scapy.contrib.rpl_metrics.DAGMCObj(*args, **kargs)

Bases: scapy.packet.Packet

Set the length field in DAG Metric Constraint Control Option

aliastypes
post_build(pkt, pay)
class scapy.contrib.rpl_metrics.DAGMCObjUnknown(*args, **kargs)

Bases: scapy.packet.Packet

Dummy unknown metric/constraint

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

Dispatch hook for DAGMC sub-fields

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     |      OLEN     |             ODATA             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DAGMCObjUnknown                       
DAGMCObjUnknown fields

otype

ByteEnumField

3

olen

FieldLenField

None

odata

StrLenField

b''

class scapy.contrib.rpl_metrics.RPLDAGMCHopCount(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Hop Count

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RES  | FLAGS |    HOPCOUNT   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. RPLDAGMCHopCount                       
RPLDAGMCHopCount fields

otype

ByteEnumField

3

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

res

BitField (4 bits)

0

flags

BitField (4 bits)

0

HopCount

ByteField

1

class scapy.contrib.rpl_metrics.RPLDAGMCLinkColor(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Link Color

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      RES      |       COLOR       |  COUNTER  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. RPLDAGMCLinkColor                      
RPLDAGMCLinkColor fields

otype

ByteEnumField

8

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

res

ByteField

0

color

BitField (10 bits)

1

counter

BitField (6 bits)

1

class scapy.contrib.rpl_metrics.RPLDAGMCLinkETX(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Link ETX

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              ETX              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. RPLDAGMCLinkETX                       
RPLDAGMCLinkETX fields

otype

ByteEnumField

7

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

ETX

ShortField

1

class scapy.contrib.rpl_metrics.RPLDAGMCLinkLatency(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Link Latency

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            LATENCY                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. RPLDAGMCLinkLatency                     
RPLDAGMCLinkLatency fields

otype

ByteEnumField

5

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

Latency

IntField

1

class scapy.contrib.rpl_metrics.RPLDAGMCLinkQualityLevel(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Link Quality Level (LQL)

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      RES      | VAL | COUNTER |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. RPLDAGMCLinkQualityLevel                   
RPLDAGMCLinkQualityLevel fields

otype

ByteEnumField

6

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

res

ByteField

0

val

BitField (3 bits)

0

counter

BitField (5 bits)

0

class scapy.contrib.rpl_metrics.RPLDAGMCLinkThroughput(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Link Throughput

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           THROUGHPUT                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. RPLDAGMCLinkThroughput                    
RPLDAGMCLinkThroughput fields

otype

ByteEnumField

4

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

Throughput

IntField

1

class scapy.contrib.rpl_metrics.RPLDAGMCNSA(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Node State and Attributes

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      RES      |   FLAGS   |A|O|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. RPLDAGMCNSA                         
RPLDAGMCNSA fields

otype

ByteEnumField

1

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

res

ByteField

0

flags

BitField (6 bits)

0

A

BitField (1 bit)

0

O

BitField (1 bit)

0

class scapy.contrib.rpl_metrics.RPLDAGMCNodeEnergy(*args, **kargs)

Bases: scapy.contrib.rpl_metrics.DAGMCObj

DAG Metric: Node Energy

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     | RESFLAGS|P|C|O|R|  A  |  PREC |      LEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FLAGS |I| T |E|      E E      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. RPLDAGMCNodeEnergy                      
RPLDAGMCNodeEnergy fields

otype

ByteEnumField

2

resflags

BitField (5 bits)

0

P

BitField (1 bit)

0

C

BitField (1 bit)

0

O

BitField (1 bit)

0

R

BitField (1 bit)

0

A

BitEnumField (3 bits)

0

prec

BitField (4 bits)

0

len

ByteField

None

flags

BitField (4 bits)

0

I

BitField (1 bit)

0

T

BitField (2 bits)

0

E

BitField (1 bit)

0

E_E

ByteField

0

class scapy.contrib.rpl_metrics.RPLOptDAGMC(*args, **kargs)

Bases: scapy.contrib.rpl_metrics._DAGMetricContainer

Control Option: DAG Metric Container

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     OTYPE     |      LEN      |    AUTOPAD    |    OPTIONS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                         Fig. RPLOptDAGMC                         
RPLOptDAGMC fields

otype

ByteEnumField

2

len

ByteField

None

autopad

_PhantomAutoPadField

0

options

_OptionsField

[]