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. Dot15d4
Dot15d4 fields fcf_reserved_1
BitField
(1 bit)0
fcf_panidcompress
BitEnumField
(1 bit)0
fcf_ackreq
BitEnumField
(1 bit)0
fcf_pending
BitEnumField
(1 bit)0
fcf_security
BitEnumField
(1 bit)0
fcf_frametype
BitEnumField
(3 bits)0
fcf_srcaddrmode
BitEnumField
(2 bits)0
fcf_framever
BitField
(2 bits)0
fcf_destaddrmode
BitEnumField
(2 bits)2
fcf_reserved_2
BitField
(2 bits)0
seqnum
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. Dot15d4AuxSecurityHeader
Dot15d4AuxSecurityHeader fields sec_sc_reserved
BitField
(3 bits)0
sec_sc_keyidmode
BitEnumField
(2 bits)0
sec_sc_seclevel
BitEnumField
(3 bits)0
sec_framecounter
0
sec_keyid_keysource
XLEIntField
(Cond)0
sec_keyid_keysource
LELongField
(Cond)0
sec_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. Dot15d4Beacon
Dot15d4Beacon fields src_panid
0
src_addr
None
aux_sec_header
PacketField
(Cond)<Dot15d4AuxSecurityHeader |>
sf_sforder
BitField
(4 bits)15
sf_beaconorder
BitField
(4 bits)15
sf_assocpermit
BitEnumField
(1 bit)0
sf_pancoord
BitEnumField
(1 bit)0
sf_reserved
BitField
(1 bit)0
sf_battlifeextend
BitEnumField
(1 bit)0
sf_finalcapslot
BitField
(4 bits)15
gts_spec_permit
BitEnumField
(1 bit)1
gts_spec_reserved
BitField
(4 bits)0
gts_spec_desccount
BitField
(3 bits)0
gts_dir_reserved
BitField
(Cond) (1 bit)0
gts_dir_mask
BitField
(Cond) (7 bits)0
pa_reserved_1
BitField
(1 bit)0
pa_num_long
BitField
(3 bits)0
pa_reserved_2
BitField
(1 bit)0
pa_num_short
BitField
(3 bits)0
pa_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. Dot15d4Cmd
Dot15d4Cmd fields dest_panid
65535
dest_addr
0
src_panid
XLEShortField
(Cond)0
src_addr
dot15d4AddressField
(Cond)None
aux_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. Dot15d4CmdAssocReq
Dot15d4CmdAssocReq fields allocate_address
BitField
(1 bit)0
security_capability
BitField
(1 bit)0
reserved2
BitField
(1 bit)0
reserved1
BitField
(1 bit)0
receiver_on_when_idle
BitField
(1 bit)0
power_source
BitField
(1 bit)0
device_type
BitField
(1 bit)0
alternate_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. Dot15d4CmdAssocResp
Dot15d4CmdAssocResp fields short_address
65535
association_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. Dot15d4CmdCoordRealign
Dot15d4CmdCoordRealign fields panid
65535
coord_address
0
channel
0
dev_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. Dot15d4CmdDisassociation
Dot15d4CmdDisassociation 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. Dot15d4CmdGTSReq
Dot15d4CmdGTSReq fields reserved
BitField
(2 bits)0
charact_type
BitField
(1 bit)0
gts_dir
BitField
(1 bit)0
gts_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. Dot15d4Data
Dot15d4Data fields dest_panid
65535
dest_addr
65535
src_panid
XLEShortField
(Cond)0
src_addr
dot15d4AddressField
(Cond)None
aux_sec_header
PacketField
(Cond)<Dot15d4AuxSecurityHeader |>
- guess_payload_class(payload)
- mysummary()
- class scapy.layers.dot15d4.Dot15d4FCS(*args, **kargs)
Bases:
scapy.layers.dot15d4.Dot15d4
This 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. Dot15d4FCS
Dot15d4FCS fields fcf_reserved_1
BitField
(1 bit)0
fcf_panidcompress
BitEnumField
(1 bit)0
fcf_ackreq
BitEnumField
(1 bit)0
fcf_pending
BitEnumField
(1 bit)0
fcf_security
BitEnumField
(1 bit)0
fcf_frametype
BitEnumField
(3 bits)0
fcf_srcaddrmode
BitEnumField
(2 bits)0
fcf_framever
BitField
(2 bits)0
fcf_destaddrmode
BitEnumField
(2 bits)2
fcf_reserved_2
BitField
(2 bits)0
seqnum
1
fcs
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