scapy.layers.dot15d4

Wireless MAC according to IEEE 802.15.4.

class scapy.layers.dot15d4.Dot15d4(_pkt, /, *, fcf_reserved_1=0, fcf_panidcompress=0, fcf_ackreq=0, fcf_pending=0, fcf_security=0, fcf_frametype=0, fcf_srcaddrmode=0, fcf_framever=0, fcf_destaddrmode=2, fcf_reserved_2=0, seqnum=1)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4'>, <class 'scapy.packet.Packet'>]
answers(other)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (Dot15d4,Dot15d4FCS).fcf_reserved_1>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_panidcompress>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_ackreq>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_pending>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_security>, <scapy.fields.Emph object>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_srcaddrmode>, <BitField (Dot15d4,Dot15d4FCS).fcf_framever>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_destaddrmode>, <BitField (Dot15d4,Dot15d4FCS).fcf_reserved_2>, <scapy.fields.Emph object>]
guess_payload_class(payload)[source]
mysummary()[source]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'fcf_frametype': 0}, <class 'scapy.layers.dot15d4.Dot15d4Beacon'>), ({'fcf_frametype': 1}, <class 'scapy.layers.dot15d4.Dot15d4Data'>), ({'fcf_frametype': 2}, <class 'scapy.layers.dot15d4.Dot15d4Ack'>), ({'fcf_frametype': 3}, <class 'scapy.layers.dot15d4.Dot15d4Cmd'>)]
post_build(p, pay)[source]
class scapy.layers.dot15d4.Dot15d4Ack(_pkt, /)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4Ack'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = []
class scapy.layers.dot15d4.Dot15d4AuxSecurityHeader(_pkt, /, *, sec_sc_reserved=0, sec_sc_keyidmode=0, sec_sc_seclevel=0, sec_framecounter=0, sec_keyid_keysource=None, sec_keyid_keyindex=255)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4AuxSecurityHeader'>, <class 'scapy.packet.Packet'>]
extract_padding(s)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (Dot15d4AuxSecurityHeader).sec_sc_reserved>, <BitEnumField (Dot15d4AuxSecurityHeader).sec_sc_keyidmode>, <BitEnumField (Dot15d4AuxSecurityHeader).sec_sc_seclevel>, <XLEIntField (Dot15d4AuxSecurityHeader).sec_framecounter>, <scapy.fields.MultipleTypeField object>, <scapy.fields.ConditionalField object>]
class scapy.layers.dot15d4.Dot15d4Beacon(_pkt, /, *, src_panid=0, src_addr=None, aux_sec_header=<Dot15d4AuxSecurityHeader  |>, sf_sforder=15, sf_beaconorder=15, sf_assocpermit=0, sf_pancoord=0, sf_reserved=0, sf_battlifeextend=0, sf_finalcapslot=15, gts_spec_permit=1, gts_spec_reserved=0, gts_spec_desccount=0, gts_dir_reserved=0, gts_dir_mask=0, pa_reserved_1=0, pa_num_long=0, pa_reserved_2=0, pa_num_short=0, pa_short_addresses=[], pa_long_addresses=[])[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4Beacon'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XLEShortField (Dot15d4Beacon).src_panid>, <dot15d4AddressField (Dot15d4Beacon).src_addr>, <scapy.fields.ConditionalField object>, <BitField (Dot15d4Beacon).sf_sforder>, <BitField (Dot15d4Beacon).sf_beaconorder>, <BitEnumField (Dot15d4Beacon).sf_assocpermit>, <BitEnumField (Dot15d4Beacon).sf_pancoord>, <BitField (Dot15d4Beacon).sf_reserved>, <BitEnumField (Dot15d4Beacon).sf_battlifeextend>, <BitField (Dot15d4Beacon).sf_finalcapslot>, <BitEnumField (Dot15d4Beacon).gts_spec_permit>, <BitField (Dot15d4Beacon).gts_spec_reserved>, <BitField (Dot15d4Beacon).gts_spec_desccount>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <BitField (Dot15d4Beacon).pa_reserved_1>, <BitField (Dot15d4Beacon).pa_num_long>, <BitField (Dot15d4Beacon).pa_reserved_2>, <BitField (Dot15d4Beacon).pa_num_short>, <FieldListField (Dot15d4Beacon).pa_short_addresses>, <FieldListField (Dot15d4Beacon).pa_long_addresses>]
guess_payload_class(payload)[source]
mysummary()[source]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.layers.zigbee.ZigBeeBeacon'>)]
class scapy.layers.dot15d4.Dot15d4Cmd(_pkt, /, *, dest_panid=65535, dest_addr=0, src_panid=0, src_addr=None, aux_sec_header=<Dot15d4AuxSecurityHeader  |>, cmd_id=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4Cmd'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XLEShortField (Dot15d4Cmd).dest_panid>, <dot15d4AddressField (Dot15d4Cmd).dest_addr>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <ByteEnumField (Dot15d4Cmd).cmd_id>]
guess_payload_class(payload)[source]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4CmdAssocReq(_pkt, /, *, allocate_address=0, security_capability=0, reserved2=0, reserved1=0, receiver_on_when_idle=0, power_source=0, device_type=0, alternate_pan_coordinator=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdAssocReq'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (Dot15d4CmdAssocReq).allocate_address>, <BitField (Dot15d4CmdAssocReq).security_capability>, <BitField (Dot15d4CmdAssocReq).reserved2>, <BitField (Dot15d4CmdAssocReq).reserved1>, <BitField (Dot15d4CmdAssocReq).receiver_on_when_idle>, <BitField (Dot15d4CmdAssocReq).power_source>, <BitField (Dot15d4CmdAssocReq).device_type>, <BitField (Dot15d4CmdAssocReq).alternate_pan_coordinator>]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4CmdAssocResp(_pkt, /, *, short_address=65535, association_status=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdAssocResp'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XLEShortField (Dot15d4CmdAssocResp).short_address>, <ByteEnumField (Dot15d4CmdAssocResp).association_status>]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4CmdCoordRealign(_pkt, /, *, panid=65535, coord_address=0, channel=0, dev_address=65535)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdCoordRealign'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XLEShortField (Dot15d4CmdCoordRealign).panid>, <XLEShortField (Dot15d4CmdCoordRealign).coord_address>, <ByteField (Dot15d4CmdCoordRealign).channel>, <XLEShortField (Dot15d4CmdCoordRealign).dev_address>]
guess_payload_class(payload)[source]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4CmdCoordRealignPage(_pkt, /, *, channel_page=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdCoordRealignPage'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (Dot15d4CmdCoordRealignPage).channel_page>]
class scapy.layers.dot15d4.Dot15d4CmdDisassociation(_pkt, /, *, disassociation_reason=2)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdDisassociation'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (Dot15d4CmdDisassociation).disassociation_reason>]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4CmdGTSReq(_pkt, /, *, reserved=0, charact_type=0, gts_dir=0, gts_len=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4CmdGTSReq'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (Dot15d4CmdGTSReq).reserved>, <BitField (Dot15d4CmdGTSReq).charact_type>, <BitField (Dot15d4CmdGTSReq).gts_dir>, <BitField (Dot15d4CmdGTSReq).gts_len>]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4Data(_pkt, /, *, dest_panid=65535, dest_addr=65535, src_panid=0, src_addr=None, aux_sec_header=<Dot15d4AuxSecurityHeader  |>)[source]

Bases: Packet

aliastypes = [<class 'scapy.layers.dot15d4.Dot15d4Data'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XLEShortField (Dot15d4Data).dest_panid>, <dot15d4AddressField (Dot15d4Data).dest_addr>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
guess_payload_class(payload)[source]
mysummary()[source]
class scapy.layers.dot15d4.Dot15d4FCS(_pkt, /, *, fcf_reserved_1=0, fcf_panidcompress=0, fcf_ackreq=0, fcf_pending=0, fcf_security=0, fcf_frametype=0, fcf_srcaddrmode=0, fcf_framever=0, fcf_destaddrmode=2, fcf_reserved_2=0, seqnum=1, fcs=None)[source]

Bases: 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 = [<class 'scapy.layers.dot15d4.Dot15d4FCS'>, <class 'scapy.layers.dot15d4.Dot15d4'>, <class 'scapy.packet.Packet'>]
compute_fcs(data)[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (Dot15d4,Dot15d4FCS).fcf_reserved_1>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_panidcompress>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_ackreq>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_pending>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_security>, <scapy.fields.Emph object>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_srcaddrmode>, <BitField (Dot15d4,Dot15d4FCS).fcf_framever>, <BitEnumField (Dot15d4,Dot15d4FCS).fcf_destaddrmode>, <BitField (Dot15d4,Dot15d4FCS).fcf_reserved_2>, <scapy.fields.Emph object>, <scapy.fields.FCSField object>]
match_subclass = True
post_build(p, pay)[source]
class scapy.layers.dot15d4.dot15d4AddressField(name, default, length_of=None, fmt='<H', adjust=None)[source]

Bases: Field

addfield(pkt, s, val)[source]

Add an internal value to a string

adjust
getfield(pkt, s)[source]
i2repr(pkt, x)[source]

Convert internal value to a nice representation

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

A source PAN ID is included if and only if both src addr mode != 0 and PAN ID Compression in FCF == 0