scapy.layers.dot15d4¶
Wireless MAC according to IEEE 802.15.4.
-
class
scapy.layers.dot15d4.Dot15d4(*args, **kargs)¶ Bases:
scapy.packet.Packet-
aliastypes¶
-
answers(other)¶
-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|F|F|F|F|FCF F|FCF|FCF|FCF|FCF| SEQNUM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4Dot15d4 fields¶ fcf_reserved_1
BitField(1 bit)0fcf_panidcompress
BitEnumField(1 bit)0fcf_ackreq
BitEnumField(1 bit)0fcf_pending
BitEnumField(1 bit)0fcf_security
BitEnumField(1 bit)0fcf_frametype
BitEnumField(3 bits)0fcf_srcaddrmode
BitEnumField(2 bits)0fcf_framever
BitField(2 bits)0fcf_destaddrmode
BitEnumField(2 bits)2fcf_reserved_2
BitField(2 bits)0seqnum
1
-
guess_payload_class(payload)¶
-
mysummary()¶
-
payload_guess¶ Possible sublayers:
Dot15d4Ack,Dot15d4Beacon,Dot15d4Cmd,Dot15d4Data
-
post_build(p, pay)¶
-
-
class
scapy.layers.dot15d4.Dot15d4Ack(*args, **kargs)¶ Bases:
scapy.packet.Packet-
aliastypes¶
-
fields_desc¶
-
-
class
scapy.layers.dot15d4.Dot15d4AuxSecurityHeader(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SEC S|SEC|SEC S| SEC FRAMECOUNTER | +-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SEC KEYID KEYSOURCE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SEC KEYID KEYSOURCE | +-+-+-+-+-+-+-+-+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |SEC KEYID KEYIN| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4AuxSecurityHeaderDot15d4AuxSecurityHeader fields¶ sec_sc_reserved
BitField(3 bits)0sec_sc_keyidmode
BitEnumField(2 bits)0sec_sc_seclevel
BitEnumField(3 bits)0sec_framecounter
0sec_keyid_keysource
XLEIntField(Cond)0sec_keyid_keysource
LELongField(Cond)0sec_keyid_keyindex
XByteField(Cond)255
-
-
class
scapy.layers.dot15d4.Dot15d4Beacon(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRC PANID | SRC ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AUX SEC HEADER |SF SFOR|SF BEAC|S|S|S|S|SF FINA| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G|GTS SPE|GTS S|G| GTS DIR MASK|P|PA NU|P|PA NU|PA SHORT ADDRES| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | PA LONG ADDRESSES | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4BeaconDot15d4Beacon fields¶ src_panid
0src_addr
Noneaux_sec_header
PacketField(Cond)<Dot15d4AuxSecurityHeader |>sf_sforder
BitField(4 bits)15sf_beaconorder
BitField(4 bits)15sf_assocpermit
BitEnumField(1 bit)0sf_pancoord
BitEnumField(1 bit)0sf_reserved
BitField(1 bit)0sf_battlifeextend
BitEnumField(1 bit)0sf_finalcapslot
BitField(4 bits)15gts_spec_permit
BitEnumField(1 bit)1gts_spec_reserved
BitField(4 bits)0gts_spec_desccount
BitField(3 bits)0gts_dir_reserved
BitField(Cond) (1 bit)0gts_dir_mask
BitField(Cond) (7 bits)0pa_reserved_1
BitField(1 bit)0pa_num_long
BitField(3 bits)0pa_reserved_2
BitField(1 bit)0pa_num_short
BitField(3 bits)0pa_short_addresses
[]pa_long_addresses
[]
-
mysummary()¶
-
payload_guess¶ Possible sublayers:
ZigBeeBeacon
-
-
class
scapy.layers.dot15d4.Dot15d4Cmd(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DEST PANID | DEST ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRC PANID | SRC ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AUX SEC HEADER | CMD ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdDot15d4Cmd fields¶ dest_panid
65535dest_addr
0src_panid
XLEShortField(Cond)0src_addr
dot15d4AddressField(Cond)Noneaux_sec_header
PacketField(Cond)<Dot15d4AuxSecurityHeader |>cmd_id
0
-
guess_payload_class(payload)¶
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdAssocReq(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A|S|R|R|R|P|D|A| +-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdAssocReqDot15d4CmdAssocReq fields¶ allocate_address
BitField(1 bit)0security_capability
BitField(1 bit)0reserved2
BitField(1 bit)0reserved1
BitField(1 bit)0receiver_on_when_idle
BitField(1 bit)0power_source
BitField(1 bit)0device_type
BitField(1 bit)0alternate_pan_coordinator
BitField(1 bit)0
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdAssocResp(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SHORT ADDRESS |ASSOCIATION STA| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdAssocRespDot15d4CmdAssocResp fields¶ short_address
65535association_status
0
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdCoordRealign(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PANID | COORD ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CHANNEL | DEV ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdCoordRealignDot15d4CmdCoordRealign fields¶ panid
65535coord_address
0channel
0dev_address
65535
-
guess_payload_class(payload)¶
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdCoordRealignPage(*args, **kargs)¶ Bases:
scapy.packet.Packet-
aliastypes¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdDisassociation(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DISASSOCIATION | +-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdDisassociationDot15d4CmdDisassociation fields¶ disassociation_reason
2
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4CmdGTSReq(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RES|C|G|GTS LEN| +-+-+-+-+-+-+-+-+ Fig. Dot15d4CmdGTSReqDot15d4CmdGTSReq fields¶ reserved
BitField(2 bits)0charact_type
BitField(1 bit)0gts_dir
BitField(1 bit)0gts_len
BitField(4 bits)0
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4Data(*args, **kargs)¶ Bases:
scapy.packet.Packet-
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DEST PANID | DEST ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRC PANID | SRC ADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AUX SEC HEADER | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Dot15d4DataDot15d4Data fields¶ dest_panid
65535dest_addr
65535src_panid
XLEShortField(Cond)0src_addr
dot15d4AddressField(Cond)Noneaux_sec_header
PacketField(Cond)<Dot15d4AuxSecurityHeader |>
-
guess_payload_class(payload)¶
-
mysummary()¶
-
-
class
scapy.layers.dot15d4.Dot15d4FCS(*args, **kargs)¶ Bases:
scapy.layers.dot15d4.Dot15d4This class is a drop-in replacement for the Dot15d4 class above, except it expects a FCS/checksum in the input, and produces one in the output. This provides the user flexibility, as many 802.15.4 interfaces will have an AUTO_CRC setting # noqa: E501 that will validate the FCS/CRC in firmware, and add it automatically when transmitting. # noqa: E501
-
aliastypes¶
-
compute_fcs(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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |F|F|F|F|F|FCF F|FCF|FCF|FCF|FCF| SEQNUM | FCS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. Dot15d4FCSDot15d4FCS fields¶ fcf_reserved_1
BitField(1 bit)0fcf_panidcompress
BitEnumField(1 bit)0fcf_ackreq
BitEnumField(1 bit)0fcf_pending
BitEnumField(1 bit)0fcf_security
BitEnumField(1 bit)0fcf_frametype
BitEnumField(3 bits)0fcf_srcaddrmode
BitEnumField(2 bits)0fcf_framever
BitField(2 bits)0fcf_destaddrmode
BitEnumField(2 bits)2fcf_reserved_2
BitField(2 bits)0seqnum
1fcs
None
-
match_subclass= True¶
-
post_build(p, pay)¶
-
-
class
scapy.layers.dot15d4.dot15d4AddressField(name, default, length_of=None, fmt='<H', adjust=None)¶ Bases:
scapy.fields.Field-
addfield(pkt, s, val)¶ Add an internal value to a string
-
adjust¶
-
getfield(pkt, s)¶
-
i2repr(pkt, x)¶ Convert internal value to a nice representation
-
lengthFromAddrMode(pkt, x)¶
-
length_of¶
-
-
scapy.layers.dot15d4.util_srcpanid_present(pkt)¶ A source PAN ID is included if and only if both src addr mode != 0 and PAN ID Compression in FCF == 0