scapy.layers.dot15d4

符合IEEE 802.15.4的无线MAC.

class scapy.layers.dot15d4.Dot15d4(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
answers(other)
fields_desc
显示类似RFC的架构
 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字段

fcf_reserved_1

BitField (1位)

0

fcf_panidcompress

BitEnumField (1位)

0

fcf_ackreq

BitEnumField (1位)

0

fcf_pending

BitEnumField (1位)

0

fcf_security

BitEnumField (1位)

0

fcf_frametype

BitEnumField (3位)

0

fcf_srcaddrmode

BitEnumField (2位)

0

fcf_framever

BitField (2位)

0

fcf_destaddrmode

BitEnumField (2位)

2

fcf_reserved_2

BitField (2位)

0

seqnum

ByteField

1

guess_payload_class(payload)
mysummary()
payload_guess

可能的子层: Dot15d4AckDot15d4BeaconDot15d4CmdDot15d4Data

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
显示类似RFC的架构
 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字段

sec_sc_reserved

BitField (3位)

0

sec_sc_keyidmode

BitEnumField (2位)

0

sec_sc_seclevel

BitEnumField (3位)

0

sec_framecounter

XLEIntField

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
显示类似RFC的架构
 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字段

src_panid

XLEShortField

0

src_addr

dot15d4AddressField

None

aux_sec_header

PacketField (Cond)

<Dot15d4AuxSecurityHeader  |>

sf_sforder

BitField (4位)

15

sf_beaconorder

BitField (4位)

15

sf_assocpermit

BitEnumField (1位)

0

sf_pancoord

BitEnumField (1位)

0

sf_reserved

BitField (1位)

0

sf_battlifeextend

BitEnumField (1位)

0

sf_finalcapslot

BitField (4位)

15

gts_spec_permit

BitEnumField (1位)

1

gts_spec_reserved

BitField (4位)

0

gts_spec_desccount

BitField (3位)

0

gts_dir_reserved

BitField (条件)(1位)

0

gts_dir_mask

BitField (条件)(7位)

0

pa_reserved_1

BitField (1位)

0

pa_num_long

BitField (3位)

0

pa_reserved_2

BitField (1位)

0

pa_num_short

BitField (3位)

0

pa_short_addresses

FieldListField

[]

pa_long_addresses

FieldListField

[]

mysummary()
payload_guess

可能的子层: ZigBeeBeacon

class scapy.layers.dot15d4.Dot15d4Cmd(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

dest_panid

XLEShortField

65535

dest_addr

dot15d4AddressField

0

src_panid

XLEShortField (Cond)

0

src_addr

dot15d4AddressField (Cond)

None

aux_sec_header

PacketField (Cond)

<Dot15d4AuxSecurityHeader  |>

cmd_id

ByteEnumField

0

guess_payload_class(payload)
mysummary()
class scapy.layers.dot15d4.Dot15d4CmdAssocReq(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

allocate_address

BitField (1位)

0

security_capability

BitField (1位)

0

reserved2

BitField (1位)

0

reserved1

BitField (1位)

0

receiver_on_when_idle

BitField (1位)

0

power_source

BitField (1位)

0

device_type

BitField (1位)

0

alternate_pan_coordinator

BitField (1位)

0

mysummary()
class scapy.layers.dot15d4.Dot15d4CmdAssocResp(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

short_address

XLEShortField

65535

association_status

ByteEnumField

0

mysummary()
class scapy.layers.dot15d4.Dot15d4CmdCoordRealign(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

panid

XLEShortField

65535

coord_address

XLEShortField

0

channel

ByteField

0

dev_address

XLEShortField

65535

guess_payload_class(payload)
mysummary()
class scapy.layers.dot15d4.Dot15d4CmdCoordRealignPage(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  CHANNEL PAGE |
+-+-+-+-+-+-+-+-+

                 Fig. Dot15d4CmdCoordRealignPage                  
Dot15d4CmdCoordRealignPage字段

channel_page

ByteField

0

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字段

disassociation_reason

ByteEnumField

2

mysummary()
class scapy.layers.dot15d4.Dot15d4CmdGTSReq(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

reserved

BitField (2位)

0

charact_type

BitField (1位)

0

gts_dir

BitField (1位)

0

gts_len

BitField (4位)

0

mysummary()
class scapy.layers.dot15d4.Dot15d4Data(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
显示类似RFC的架构
 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字段

dest_panid

XLEShortField

65535

dest_addr

dot15d4AddressField

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

该类是上述Dot15d4类的直接替代,但它期望输入中有FCS /校验和,并在输出中产生1. 这为用户提供了灵活性,因为许多802.15.4接口将具有AUTO_CRC设置#noqa:E501,它将验证固件中的FCS / CRC,并在传输时自动添加它. #noqa:E501

aliastypes
compute_fcs(data)
fields_desc
显示类似RFC的架构
 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字段

fcf_reserved_1

BitField (1位)

0

fcf_panidcompress

BitEnumField (1位)

0

fcf_ackreq

BitEnumField (1位)

0

fcf_pending

BitEnumField (1位)

0

fcf_security

BitEnumField (1位)

0

fcf_frametype

BitEnumField (3位)

0

fcf_srcaddrmode

BitEnumField (2位)

0

fcf_framever

BitField (2位)

0

fcf_destaddrmode

BitEnumField (2 bits)

2

fcf_reserved_2

BitField (2位)

0

seqnum

ByteField

1

fcs

FCSField

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)

将内部值添加到字符串

adjust
getfield(pkt, s)
i2repr(pkt, x)

将内部值转换为漂亮的表示形式

lengthFromAddrMode(pkt, x)
length_of
scapy.layers.dot15d4.util_srcpanid_present(pkt)

当且仅当src addr模式!= 0并且FCF中的PAN ID压缩== 0时,才包括源PAN ID.