scapy.contrib.loraphy2wan

LoRa PHY to WAN Layer

Initially developed @PentHertz and improved at @Trend Micro

Spec: lorawantm_specification v1.1

class scapy.contrib.loraphy2wan.ADRParamSetupAns(_pkt, /)[source]

Bases: Packet

aliastypes
fields_desc
class scapy.contrib.loraphy2wan.ADRParamSetupReq(_pkt, /, *, Limit_exp=0, Delay_exp=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LIMIT E|DELAY E|
+-+-+-+-+-+-+-+-+

                      Fig. ADRParamSetupReq                       
ADRParamSetupReq fields

Limit_exp

BitField (4 bits)

0

Delay_exp

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.ADRparam(_pkt, /, *, Limit_exp=0, Delay_exp=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LIMIT E|DELAY E|
+-+-+-+-+-+-+-+-+

                          Fig. ADRparam                           
ADRparam fields

Limit_exp

BitField (4 bits)

0

Delay_exp

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.DLsettings(_pkt, /, *, OptNeg=0, RX1DRoffset=0, RX2_Data_rate=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|O|RX1DR|RX2 DAT|
+-+-+-+-+-+-+-+-+

                         Fig. DLsettings                          
DLsettings fields

OptNeg

BitField (1 bit)

0

RX1DRoffset

XBitField (3 bits)

0

RX2_Data_rate

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.DataRate_TXPower(_pkt, /, *, DataRate=0, TXPower=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|DATARAT|TXPOWER|
+-+-+-+-+-+-+-+-+

                      Fig. DataRate_TXPower                       
DataRate_TXPower fields

DataRate

XBitField (4 bits)

0

TXPower

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.DevAddrElem(_pkt, /, *, NwkID=0, NwkAddr=b'\x00\x00\x00')[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NWKID     |                    NWKADDR                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                         Fig. DevAddrElem                         
DevAddrElem fields

NwkID

XByteField

0

NwkAddr

XLE3BytesField

b'\x00\x00\x00'

class scapy.contrib.loraphy2wan.DevLoraWANversion(_pkt, /, *, RFU=0, Minor=1)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RFU  | MINOR |
+-+-+-+-+-+-+-+-+

                      Fig. DevLoraWANversion                      
DevLoraWANversion fields

RFU

BitField (4 bits)

0

Minor

BitField (4 bits)

1

class scapy.contrib.loraphy2wan.DevStatusAns(_pkt, /, *, RFU=0, Margin=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RFU|   MARGIN  |
+-+-+-+-+-+-+-+-+

                        Fig. DevStatusAns                         
DevStatusAns fields

RFU

XBitField (2 bits)

0

Margin

XBitField (6 bits)

0

class scapy.contrib.loraphy2wan.DevStatusAns_Status(_pkt, /, *, RFU=0, Margin=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RFU|   MARGIN  |
+-+-+-+-+-+-+-+-+

                     Fig. DevStatusAns_Status                     
DevStatusAns_Status fields

RFU

XBitField (2 bits)

0

Margin

XBitField (6 bits)

0

class scapy.contrib.loraphy2wan.DevStatusReq(_pkt, /, *, Battery=0, Margin=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    BATTERY    |     MARGIN    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DevStatusReq                         
DevStatusReq fields

Battery

ByteEnumField

0

Margin

ByteField

0

class scapy.contrib.loraphy2wan.DeviceTimeAns(_pkt, /, *, SecondsSinceEpoch=0, FracSecond=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       SECONDSSINCEEPOCH                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   FRACSECOND  |
+-+-+-+-+-+-+-+-+

                        Fig. DeviceTimeAns                        
DeviceTimeAns fields

SecondsSinceEpoch

IntField

0

FracSecond

ByteField

0

class scapy.contrib.loraphy2wan.DeviceTimeReq(_pkt, /)[source]

Bases: Packet

aliastypes
fields_desc
class scapy.contrib.loraphy2wan.DlChannelAns(_pkt, /, *, Status=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     STATUS    |
+-+-+-+-+-+-+-+-+

                        Fig. DlChannelAns                         
DlChannelAns fields

Status

ByteField

0

class scapy.contrib.loraphy2wan.DlChannelReq(_pkt, /, *, ChIndex=0, Freq=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    CHINDEX    |                      FREQ                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                        Fig. DlChannelReq                         
DlChannelReq fields

ChIndex

ByteField

0

Freq

X3BytesField

0

class scapy.contrib.loraphy2wan.DrRange(_pkt, /, *, MaxDR=0, MinDR=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAXDR | MINDR |
+-+-+-+-+-+-+-+-+

                           Fig. DrRange                           
DrRange fields

MaxDR

XBitField (4 bits)

0

MinDR

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.DutyCycleAns(_pkt, /)[source]

Bases: Packet

aliastypes
fields_desc
class scapy.contrib.loraphy2wan.DutyCyclePL(_pkt, /, *, MaxDCycle=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MAXDCYC|
+-+-+-+-+

                         Fig. DutyCyclePL                         
DutyCyclePL fields

MaxDCycle

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.DutyCycleReq(_pkt, /, *, MaxDCycle=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MAXDCYC|
+-+-+-+-+

                        Fig. DutyCycleReq                         
DutyCycleReq fields

MaxDCycle

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.EIRP_DwellTime(_pkt, /, *, RFU=0, DownlinkDwellTime=0, UplinkDwellTime=0, MaxEIRP=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RFU|D|U|MAXEIRP|
+-+-+-+-+-+-+-+-+

                       Fig. EIRP_DwellTime                        
EIRP_DwellTime fields

RFU

BitField (2 bits)

0

DownlinkDwellTime

BitEnumField

0

UplinkDwellTime

BitEnumField

0

MaxEIRP

BitEnumField

0

Bases: Packet

aliastypes
extract_padding(p)[source]
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|A|A|F|FOPTSLE|
+-+-+-+-+-+-+-+-+

                       Fig. FCtrl_DownLink                        
FCtrl_DownLink fields

ADR

BitField (1 bit)

0

ADRACKReq

BitField (1 bit)

0

ACK

BitField (1 bit)

0

FPending

BitField (1 bit)

0

FOptsLen

BitFieldLenField (4 bits)

0

Bases: Packet

aliastypes
extract_padding(p)[source]
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|A|A|U|FOPTSLE|
+-+-+-+-+-+-+-+-+

                         Fig. FCtrl_Link                          
FCtrl_Link fields

ADR

BitField (1 bit)

0

ADRACKReq

BitField (1 bit)

0

ACK

BitField (1 bit)

0

UpClassB_DownFPending

BitField (1 bit)

0

FOptsLen

BitFieldLenField (4 bits)

0

Bases: Packet

aliastypes
extract_padding(p)[source]
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|A|A|C|FOPTSLE|
+-+-+-+-+-+-+-+-+

                        Fig. FCtrl_UpLink                         
FCtrl_UpLink fields

ADR

BitField (1 bit)

0

ADRACKReq

BitField (1 bit)

0

ACK

BitField (1 bit)

0

ClassB

BitField (1 bit)

0

FOptsLen

BitFieldLenField (4 bits)

0

class scapy.contrib.loraphy2wan.FHDR(_pkt, /, *, DevAddr=[b''], FCtrl=[b''], FCnt=0, FOpts_up=[b''], FOpts_down=[b''])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DEVADDR            |             FCTRL             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              FCNT             |            FOPTS UP           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           FOPTS DOWN          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. FHDR                             
FHDR fields

DevAddr

PacketListField (Cond)

[b'']

FCtrl

PacketListField (Cond)

[b'']

FCnt

LEShortField (Cond)

0

FOpts_up

PacketListField (Cond)

[b'']

FOpts_down

PacketListField (Cond)

[b'']

class scapy.contrib.loraphy2wan.FOpts(_pkt, /, *, FOpts_up=[b''], FOpts_down=[b''])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            FOPTS UP           |           FOPTS DOWN          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. FOpts                            
FOpts fields

FOpts_up

PacketListField (Cond)

[b'']

FOpts_down

PacketListField (Cond)

[b'']

scapy.contrib.loraphy2wan.FOptsDownShow(pkt)[source]
scapy.contrib.loraphy2wan.FOptsUpShow(pkt)[source]
class scapy.contrib.loraphy2wan.FRMPayload(_pkt, /, *, DataPayload=None, Join_Request_Field=[b''], Join_Accept_Field=[b''], Join_Accept_Encrypted=0, ReJoin_Request_Field=[b''])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          DATAPAYLOAD          |       JOIN REQUEST FIELD      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       JOIN ACCEPT FIELD       |     JOIN ACCEPT ENCRYPTED     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      REJOIN REQUEST FIELD     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. FRMPayload                          
FRMPayload fields

DataPayload

MultipleTypeField (Cond, StrField, StrField, StrField)

b''

Join_Request_Field

PacketListField (Cond)

[b'']

Join_Accept_Field

PacketListField (Cond)

[b'']

Join_Accept_Encrypted

StrField (Cond)

0

ReJoin_Request_Field

PacketListField (Cond)

[b'']

class scapy.contrib.loraphy2wan.ForceRejoinReq(_pkt, /, *, RFU=0, Period=0, Max_Retries=0, RFU2=0, RejoinType=0, DR=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RFU|PERIO|MAX R|R|REJOI|   DR  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. ForceRejoinReq                        
ForceRejoinReq fields

RFU

BitField (2 bits)

0

Period

BitField (3 bits)

0

Max_Retries

BitField (3 bits)

0

RFU2

BitField (1 bit)

0

RejoinType

BitField (3 bits)

0

DR

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.Join_Accept(_pkt, /, *, JoinAppNonce=0, NetID=0, DevAddr=0, OptNeg=0, RX1DRoffset=0, RX2_Data_rate=0, RxDelay=0, CFList=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')[source]

Bases: Packet

aliastypes
dcflist = False
extract_padding(p)[source]
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          JOINAPPNONCE                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             NETID                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            DEVADDR                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|O|RX1DR|RX2 DAT|    RXDELAY    |             CFLIST            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. Join_Accept                         
Join_Accept fields

JoinAppNonce

XLE3BytesField

0

NetID

XLE3BytesField

0

DevAddr

XLEIntField

0

OptNeg

BitField (1 bit)

0

RX1DRoffset

XBitField (3 bits)

0

RX2_Data_rate

XBitField (4 bits)

0

RxDelay

XByteField

0

CFList

StrFixedLenField (Cond)

b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

class scapy.contrib.loraphy2wan.Join_Request(_pkt, /, *, AppEUI=b'\x00\x00\x00\x00\x00\x00\x00\x00', DevEUI=b'\x00\x00\x00\x00\x00\x00\x00\x00', DevNonce=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             APPEUI                            |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             DEVEUI                            |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DEVNONCE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. Join_Request                         
Join_Request fields

AppEUI

StrFixedLenField

b'\x00\x00\x00\x00\x00\x00\x00\x00'

DevEUI

StrFixedLenField

b'\x00\x00\x00\x00\x00\x00\x00\x00'

DevNonce

LEShortField

0

class scapy.contrib.loraphy2wan.LinkADRAns(_pkt, /, *, status=<LinkADRAns_Status  |>)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             STATUS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LinkADRAns                          
LinkADRAns fields

status

PacketField

<LinkADRAns_Status  |>

class scapy.contrib.loraphy2wan.LinkADRAns_Status(_pkt, /, *, RFU=0, PowerACK=0, DataRate=0, ChannelMaskACK=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   RFU   |P|D|C|
+-+-+-+-+-+-+-+-+

                      Fig. LinkADRAns_Status                      
LinkADRAns_Status fields

RFU

BitField (5 bits)

0

PowerACK

BitField (1 bit)

0

DataRate

BitField (1 bit)

0

ChannelMaskACK

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.LinkADRReq(_pkt, /, *, DataRate=0, TXPower=0, ChMask=0, RFU=0, ChMaskCntl=0, NbTrans=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|DATARAT|TXPOWER|             CHMASK            |R|CHMAS|NBTRANS|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LinkADRReq                          
LinkADRReq fields

DataRate

XBitField (4 bits)

0

TXPower

XBitField (4 bits)

0

ChMask

XShortField

0

RFU

XBitField (1 bit)

0

ChMaskCntl

XBitField (3 bits)

0

NbTrans

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.LinkCheckAns(_pkt, /, *, Margin=0, GwCnt=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     MARGIN    |     GWCNT     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. LinkCheckAns                         
LinkCheckAns fields

Margin

ByteField

0

GwCnt

ByteField

0

class scapy.contrib.loraphy2wan.LinkCheckReq(_pkt, /)[source]

Bases: Packet

aliastypes
class scapy.contrib.loraphy2wan.LoRa(_pkt, /, *, Preamble=0, PHDR=0, PHDR_CRC=0, MType=0, RFU=0, Major=0, DevAddr=[b''], FCtrl=[b''], FCnt=0, FOpts_up=[b''], FOpts_down=[b''], FPort=0, DataPayload=None, Join_Request_Field=[b''], Join_Accept_Field=[b''], Join_Accept_Encrypted=0, ReJoin_Request_Field=[b''], MIC=0, CRC=0)[source]

Bases: Packet

aliastypes
encrypted = True
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PREAMBL|              PHDR             |PHDR CR|MTYPE| RFU |MAJ|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DEVADDR            |             FCTRL             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              FCNT             |            FOPTS UP           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           FOPTS DOWN          |     FPORT     |  DATAPAYLOAD  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |       JOIN REQUEST FIELD      |JOIN ACCEPT FIE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |     JOIN ACCEPT ENCRYPTED     |REJOIN REQUEST |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                      MIC                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |              CRC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. LoRa                             
LoRa fields

Preamble

XBitField (4 bits)

0

PHDR

XBitField (16 bits)

0

PHDR_CRC

XBitField (4 bits)

0

MType

BitEnumField

0

RFU

BitField (3 bits)

0

Major

BitField (2 bits)

0

DevAddr

PacketListField (Cond)

[b'']

FCtrl

PacketListField (Cond)

[b'']

FCnt

LEShortField (Cond)

0

FOpts_up

PacketListField (Cond)

[b'']

FOpts_down

PacketListField (Cond)

[b'']

FPort

ByteEnumField (Cond)

0

DataPayload

MultipleTypeField (Cond, StrField, StrField, StrField)

b''

Join_Request_Field

PacketListField (Cond)

[b'']

Join_Accept_Field

PacketListField (Cond)

[b'']

Join_Accept_Encrypted

StrField (Cond)

0

ReJoin_Request_Field

PacketListField (Cond)

[b'']

MIC

MayEnd

0

CRC

XShortField (Cond)

0

version = '1.1'
class scapy.contrib.loraphy2wan.MACCommand_down(_pkt, /, *, CID=0, Reset=[b''], LinkCheck=[b''], LinkADR=[b''], DutyCycle=[b''], RXParamSetup=[b''], DevStatusAns=[b''], NewChannel=[b''], RXTimingSetup=[b''], TxParamSetup=[b''], DlChannel=[b''], Rekey=[b''], ADRParamSetup=[b''], DeviceTime=[b''], RejoinParamSetup=[b''])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CID      |             RESET             |   LINKCHECK   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            LINKADR            |   DUTYCYCLE   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RXPARAMSETUP         |  DEVSTATUSANS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           NEWCHANNEL          | RXTIMINGSETUP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          TXPARAMSETUP         |   DLCHANNEL   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             REKEY             | ADRPARAMSETUP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           DEVICETIME          |REJOINPARAMSETU|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. MACCommand_down                       
MACCommand_down fields

CID

ByteEnumField

0

Reset

PacketListField (Cond)

[b'']

LinkCheck

PacketListField (Cond)

[b'']

LinkADR

PacketListField (Cond)

[b'']

DutyCycle

PacketListField (Cond)

[b'']

RXParamSetup

PacketListField (Cond)

[b'']

DevStatusAns

PacketListField (Cond)

[b'']

NewChannel

PacketListField (Cond)

[b'']

RXTimingSetup

PacketListField (Cond)

[b'']

TxParamSetup

PacketListField (Cond)

[b'']

DlChannel

PacketListField (Cond)

[b'']

Rekey

PacketListField (Cond)

[b'']

ADRParamSetup

PacketListField (Cond)

[b'']

DeviceTime

PacketListField (Cond)

[b'']

RejoinParamSetup

PacketListField (Cond)

[b'']

class scapy.contrib.loraphy2wan.MACCommand_up(_pkt, /, *, CID=0, Reset=[b''], LinkCheck=[b''], LinkADR=[b''], DutyCycle=[b''], RXParamSetup=[b''], DevStatus=[b''], NewChannel=[b''], RXTimingSetup=[b''], TxParamSetup=[b''], DlChannel=[b''], Rekey=[b''], ADRParamSetup=[b''], DeviceTime=[b''], ForceRejoin=[b''], RejoinParamSetup=[b''])[source]

Bases: Packet

aliastypes
extract_padding(p)[source]
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CID      |             RESET             |   LINKCHECK   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            LINKADR            |   DUTYCYCLE   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          RXPARAMSETUP         |   DEVSTATUS   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           NEWCHANNEL          | RXTIMINGSETUP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |          TXPARAMSETUP         |   DLCHANNEL   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             REKEY             | ADRPARAMSETUP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           DEVICETIME          |  FORCEREJOIN  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |        REJOINPARAMSETUP       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. MACCommand_up                        
MACCommand_up fields

CID

ByteEnumField

0

Reset

PacketListField (Cond)

[b'']

LinkCheck

PacketListField (Cond)

[b'']

LinkADR

PacketListField (Cond)

[b'']

DutyCycle

PacketListField (Cond)

[b'']

RXParamSetup

PacketListField (Cond)

[b'']

DevStatus

PacketListField (Cond)

[b'']

NewChannel

PacketListField (Cond)

[b'']

RXTimingSetup

PacketListField (Cond)

[b'']

TxParamSetup

PacketListField (Cond)

[b'']

DlChannel

PacketListField (Cond)

[b'']

Rekey

PacketListField (Cond)

[b'']

ADRParamSetup

PacketListField (Cond)

[b'']

DeviceTime

PacketListField (Cond)

[b'']

ForceRejoin

PacketListField (Cond)

[b'']

RejoinParamSetup

PacketListField (Cond)

[b'']

class scapy.contrib.loraphy2wan.MACPayload(_pkt, /, *, DevAddr=[b''], FCtrl=[b''], FCnt=0, FOpts_up=[b''], FOpts_down=[b''], FPort=0, DataPayload=None, Join_Request_Field=[b''], Join_Accept_Field=[b''], Join_Accept_Encrypted=0, ReJoin_Request_Field=[b''])[source]

Bases: Packet

aliastypes
eFPort = False
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            DEVADDR            |             FCTRL             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              FCNT             |            FOPTS UP           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           FOPTS DOWN          |     FPORT     |  DATAPAYLOAD  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |       JOIN REQUEST FIELD      |JOIN ACCEPT FIE|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |     JOIN ACCEPT ENCRYPTED     |REJOIN REQUEST |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                         Fig. MACPayload                          
MACPayload fields

DevAddr

PacketListField (Cond)

[b'']

FCtrl

PacketListField (Cond)

[b'']

FCnt

LEShortField (Cond)

0

FOpts_up

PacketListField (Cond)

[b'']

FOpts_down

PacketListField (Cond)

[b'']

FPort

ByteEnumField (Cond)

0

DataPayload

MultipleTypeField (Cond, StrField, StrField, StrField)

b''

Join_Request_Field

PacketListField (Cond)

[b'']

Join_Accept_Field

PacketListField (Cond)

[b'']

Join_Accept_Encrypted

StrField (Cond)

0

ReJoin_Request_Field

PacketListField (Cond)

[b'']

class scapy.contrib.loraphy2wan.MHDR(_pkt, /, *, MType=0, RFU=0, Major=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MTYPE| RFU |MAJ|
+-+-+-+-+-+-+-+-+

                            Fig. MHDR                             
MHDR fields

MType

BitEnumField

0

RFU

BitField (3 bits)

0

Major

BitField (2 bits)

0

class scapy.contrib.loraphy2wan.NewChannelAns(_pkt, /, *, RFU=0, Dataraterangeok=0, Channelfrequencyok=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RFU    |D|C|
+-+-+-+-+-+-+-+-+

                        Fig. NewChannelAns                        
NewChannelAns fields

RFU

XBitField (6 bits)

0

Dataraterangeok

BitField (1 bit)

0

Channelfrequencyok

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.NewChannelAns_Status(_pkt, /, *, RFU=0, Dataraterangeok=0, Channelfrequencyok=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RFU    |D|C|
+-+-+-+-+-+-+-+-+

                    Fig. NewChannelAns_Status                     
NewChannelAns_Status fields

RFU

XBitField (6 bits)

0

Dataraterangeok

BitField (1 bit)

0

Channelfrequencyok

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.NewChannelReq(_pkt, /, *, ChIndex=0, Freq=0, MaxDR=0, MinDR=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    CHINDEX    |                      FREQ                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               | MAXDR | MINDR |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. NewChannelReq                        
NewChannelReq fields

ChIndex

ByteField

0

Freq

X3BytesField

0

MaxDR

XBitField (4 bits)

0

MinDR

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.PHYPayload(_pkt, /, *, MType=0, RFU=0, Major=0, DevAddr=[b''], FCtrl=[b''], FCnt=0, FOpts_up=[b''], FOpts_down=[b''], FPort=0, DataPayload=None, Join_Request_Field=[b''], Join_Accept_Field=[b''], Join_Accept_Encrypted=0, ReJoin_Request_Field=[b''], MIC=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MTYPE| RFU |MAJ|            DEVADDR            |     FCTRL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |              FCNT             |    FOPTS UP   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           FOPTS DOWN          |     FPORT     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          DATAPAYLOAD          |       JOIN REQUEST FIELD      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       JOIN ACCEPT FIELD       |     JOIN ACCEPT ENCRYPTED     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      REJOIN REQUEST FIELD     |              MIC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. PHYPayload                          
PHYPayload fields

MType

BitEnumField

0

RFU

BitField (3 bits)

0

Major

BitField (2 bits)

0

DevAddr

PacketListField (Cond)

[b'']

FCtrl

PacketListField (Cond)

[b'']

FCnt

LEShortField (Cond)

0

FOpts_up

PacketListField (Cond)

[b'']

FOpts_down

PacketListField (Cond)

[b'']

FPort

ByteEnumField (Cond)

0

DataPayload

MultipleTypeField (Cond, StrField, StrField, StrField)

b''

Join_Request_Field

PacketListField (Cond)

[b'']

Join_Accept_Field

PacketListField (Cond)

[b'']

Join_Accept_Encrypted

StrField (Cond)

0

ReJoin_Request_Field

PacketListField (Cond)

[b'']

MIC

MayEnd

0

class scapy.contrib.loraphy2wan.RXParamSetupAns(_pkt, /, *, RFU=0, RX1DRoffsetACK=0, RX2DatarateACK=0, ChannelACK=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   RFU   |R|R|C|
+-+-+-+-+-+-+-+-+

                       Fig. RXParamSetupAns                       
RXParamSetupAns fields

RFU

XBitField (5 bits)

0

RX1DRoffsetACK

BitField (1 bit)

0

RX2DatarateACK

BitField (1 bit)

0

ChannelACK

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.RXParamSetupAns_Status(_pkt, /, *, RFU=0, RX1DRoffsetACK=0, RX2DatarateACK=0, ChannelACK=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   RFU   |R|R|C|
+-+-+-+-+-+-+-+-+

                   Fig. RXParamSetupAns_Status                    
RXParamSetupAns_Status fields

RFU

XBitField (5 bits)

0

RX1DRoffsetACK

BitField (1 bit)

0

RX2DatarateACK

BitField (1 bit)

0

ChannelACK

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.RXParamSetupReq(_pkt, /, *, OptNeg=0, RX1DRoffset=0, RX2_Data_rate=0, Frequency=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|O|RX1DR|RX2 DAT|                   FREQUENCY                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. RXParamSetupReq                       
RXParamSetupReq fields

OptNeg

BitField (1 bit)

0

RX1DRoffset

XBitField (3 bits)

0

RX2_Data_rate

XBitField (4 bits)

0

Frequency

X3BytesField

0

class scapy.contrib.loraphy2wan.RXTimingSetupAns(_pkt, /)[source]

Bases: Packet

aliastypes
fields_desc
class scapy.contrib.loraphy2wan.RXTimingSetupReq(_pkt, /, *, RFU=0, Del=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RFU  |  DEL  |
+-+-+-+-+-+-+-+-+

                      Fig. RXTimingSetupReq                       
RXTimingSetupReq fields

RFU

XBitField (4 bits)

0

Del

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.RXTimingSetupReq_Settings(_pkt, /, *, RFU=0, Del=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RFU  |  DEL  |
+-+-+-+-+-+-+-+-+

                  Fig. RXTimingSetupReq_Settings                  
RXTimingSetupReq_Settings fields

RFU

XBitField (4 bits)

0

Del

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.Redundancy(_pkt, /, *, RFU=0, ChMaskCntl=0, NbTrans=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|CHMAS|NBTRANS|
+-+-+-+-+-+-+-+-+

                         Fig. Redundancy                          
Redundancy fields

RFU

XBitField (1 bit)

0

ChMaskCntl

XBitField (3 bits)

0

NbTrans

XBitField (4 bits)

0

class scapy.contrib.loraphy2wan.RejoinParamSetupAns(_pkt, /, *, RFU=0, TimeOK=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     RFU     |T|
+-+-+-+-+-+-+-+-+

                     Fig. RejoinParamSetupAns                     
RejoinParamSetupAns fields

RFU

BitField (7 bits)

0

TimeOK

BitField (1 bit)

0

class scapy.contrib.loraphy2wan.RejoinParamSetupReq(_pkt, /, *, MaxTimeN=0, MaxCountN=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MAXTIME|MAXCOUN|
+-+-+-+-+-+-+-+-+

                     Fig. RejoinParamSetupReq                     
RejoinParamSetupReq fields

MaxTimeN

BitField (4 bits)

0

MaxCountN

BitField (4 bits)

0

class scapy.contrib.loraphy2wan.RejoinReq(_pkt, /, *, Type=0, NetID=0, DevEUI=b'\x00\x00\x00\x00\x00\x00\x00\x00', RJcount0=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      TYPE     |                     NETID                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             DEVEUI            |    RJCOUNT0   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                          Fig. RejoinReq                          
RejoinReq fields

Type

ByteField

0

NetID

X3BytesField

0

DevEUI

StrFixedLenField

b'\x00\x00\x00\x00\x00\x00\x00\x00'

RJcount0

XShortField

0

class scapy.contrib.loraphy2wan.RekeyConf(_pkt, /, *, ServerVersion=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SERVERVERSION |
+-+-+-+-+-+-+-+-+

                          Fig. RekeyConf                          
RekeyConf fields

ServerVersion

ByteField

0

class scapy.contrib.loraphy2wan.RekeyInd(_pkt, /, *, LoRaWANversion=[b''])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         LORAWANVERSION        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. RekeyInd                           
RekeyInd fields

LoRaWANversion

PacketListField

[b'']

class scapy.contrib.loraphy2wan.ResetConf(_pkt, /, *, Serv_version=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SERV VERSION |
+-+-+-+-+-+-+-+-+

                          Fig. ResetConf                          
ResetConf fields

Serv_version

ByteField

0

class scapy.contrib.loraphy2wan.ResetInd(_pkt, /, *, Dev_version=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DEV VERSION  |
+-+-+-+-+-+-+-+-+

                          Fig. ResetInd                           
ResetInd fields

Dev_version

ByteField

0

class scapy.contrib.loraphy2wan.TxParamSetupAns(_pkt, /)[source]

Bases: Packet

aliastypes
fields_desc
class scapy.contrib.loraphy2wan.TxParamSetupReq(_pkt, /, *, RFU=0, DownlinkDwellTime=0, UplinkDwellTime=0, MaxEIRP=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|RFU|D|U|MAXEIRP|
+-+-+-+-+-+-+-+-+

                       Fig. TxParamSetupReq                       
TxParamSetupReq fields

RFU

BitField (2 bits)

0

DownlinkDwellTime

BitEnumField

0

UplinkDwellTime

BitEnumField

0

MaxEIRP

BitEnumField

0

scapy.contrib.loraphy2wan.dpload_type(pkt)[source]