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.ADRParamSetupReq(_pkt, /, *, Limit_exp=0, Delay_exp=0)[源代码]
基类:
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. ADRParamSetupReqADRParamSetupReq fields Limit_exp
BitField(4 bits)0Delay_exp
BitField(4 bits)0
- class scapy.contrib.loraphy2wan.ADRparam(_pkt, /, *, Limit_exp=0, Delay_exp=0)[源代码]
基类:
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. ADRparamADRparam fields Limit_exp
BitField(4 bits)0Delay_exp
BitField(4 bits)0
- class scapy.contrib.loraphy2wan.DLsettings(_pkt, /, *, OptNeg=0, RX1DRoffset=0, RX2_Data_rate=0)[源代码]
基类:
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. DLsettingsDLsettings fields OptNeg
BitField(1 bit)0RX1DRoffset
XBitField(3 bits)0RX2_Data_rate
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.DataRate_TXPower(_pkt, /, *, DataRate=0, TXPower=0)[源代码]
基类:
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_TXPowerDataRate_TXPower fields DataRate
XBitField(4 bits)0TXPower
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.DevAddrElem(_pkt, /, *, NwkID=0, NwkAddr=b'\x00\x00\x00')[源代码]
基类:
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. DevAddrElemDevAddrElem fields NwkID
0NwkAddr
b'\x00\x00\x00'
- class scapy.contrib.loraphy2wan.DevLoraWANversion(_pkt, /, *, RFU=0, Minor=1)[源代码]
基类:
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. DevLoraWANversionDevLoraWANversion fields RFU
BitField(4 bits)0Minor
BitField(4 bits)1
- class scapy.contrib.loraphy2wan.DevStatusAns(_pkt, /, *, RFU=0, Margin=0)[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.loraphy2wan.DevStatusAns_Status(_pkt, /, *, RFU=0, Margin=0)[源代码]
基类:
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_StatusDevStatusAns_Status fields RFU
XBitField(2 bits)0Margin
XBitField(6 bits)0
- class scapy.contrib.loraphy2wan.DevStatusReq(_pkt, /, *, Battery=0, Margin=0)[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.loraphy2wan.DeviceTimeAns(_pkt, /, *, SecondsSinceEpoch=0, FracSecond=0)[源代码]
基类:
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. DeviceTimeAnsDeviceTimeAns fields SecondsSinceEpoch
0FracSecond
0
- class scapy.contrib.loraphy2wan.DlChannelReq(_pkt, /, *, ChIndex=0, Freq=0)[源代码]
基类:
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. DlChannelReqDlChannelReq fields ChIndex
0Freq
0
- class scapy.contrib.loraphy2wan.EIRP_DwellTime(_pkt, /, *, RFU=0, DownlinkDwellTime=0, UplinkDwellTime=0, MaxEIRP=0)[源代码]
基类:
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_DwellTimeEIRP_DwellTime fields RFU
BitField(2 bits)0DownlinkDwellTime
0UplinkDwellTime
0MaxEIRP
0
- class scapy.contrib.loraphy2wan.FCtrl_DownLink(_pkt, /, *, ADR=0, ADRACKReq=0, ACK=0, FPending=0, FOptsLen=0)[源代码]
基类:
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|A|A|F|FOPTSLE| +-+-+-+-+-+-+-+-+ Fig. FCtrl_DownLinkFCtrl_DownLink fields ADR
BitField(1 bit)0ADRACKReq
BitField(1 bit)0ACK
BitField(1 bit)0FPending
BitField(1 bit)0FOptsLen
BitFieldLenField(4 bits)0
- class scapy.contrib.loraphy2wan.FCtrl_Link(_pkt, /, *, ADR=0, ADRACKReq=0, ACK=0, UpClassB_DownFPending=0, FOptsLen=0)[源代码]
基类:
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|A|A|U|FOPTSLE| +-+-+-+-+-+-+-+-+ Fig. FCtrl_LinkFCtrl_Link fields ADR
BitField(1 bit)0ADRACKReq
BitField(1 bit)0ACK
BitField(1 bit)0UpClassB_DownFPending
BitField(1 bit)0FOptsLen
BitFieldLenField(4 bits)0
- class scapy.contrib.loraphy2wan.FCtrl_UpLink(_pkt, /, *, ADR=0, ADRACKReq=0, ACK=0, ClassB=0, FOptsLen=0)[源代码]
基类:
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|A|A|C|FOPTSLE| +-+-+-+-+-+-+-+-+ Fig. FCtrl_UpLinkFCtrl_UpLink fields ADR
BitField(1 bit)0ADRACKReq
BitField(1 bit)0ACK
BitField(1 bit)0ClassB
BitField(1 bit)0FOptsLen
BitFieldLenField(4 bits)0
- class scapy.contrib.loraphy2wan.FHDR(_pkt, /, *, DevAddr=[b''], FCtrl=[b''], FCnt=0, FOpts_up=[b''], FOpts_down=[b''])[源代码]
基类:
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. FHDRFHDR fields DevAddr
PacketListField(Cond)[b'']FCtrl
PacketListField(Cond)[b'']FCnt
LEShortField(Cond)0FOpts_up
PacketListField(Cond)[b'']FOpts_down
PacketListField(Cond)[b'']
- class scapy.contrib.loraphy2wan.FOpts(_pkt, /, *, FOpts_up=[b''], FOpts_down=[b''])[源代码]
基类:
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. FOptsFOpts fields FOpts_up
PacketListField(Cond)[b'']FOpts_down
PacketListField(Cond)[b'']
- class scapy.contrib.loraphy2wan.FRMPayload(_pkt, /, *, DataPayload=None, Join_Request_Field=[b''], Join_Accept_Field=[b''], Join_Accept_Encrypted=0, ReJoin_Request_Field=[b''])[源代码]
基类:
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. FRMPayloadFRMPayload 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)0ReJoin_Request_Field
PacketListField(Cond)[b'']
- class scapy.contrib.loraphy2wan.ForceRejoinReq(_pkt, /, *, RFU=0, Period=0, Max_Retries=0, RFU2=0, RejoinType=0, DR=0)[源代码]
基类:
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. ForceRejoinReqForceRejoinReq fields RFU
BitField(2 bits)0Period
BitField(3 bits)0Max_Retries
BitField(3 bits)0RFU2
BitField(1 bit)0RejoinType
BitField(3 bits)0DR
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')[源代码]
基类:
Packet- aliastypes
- dcflist = 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | JOINAPPNONCE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NETID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DEVADDR | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |O|RX1DR|RX2 DAT| RXDELAY | CFLIST | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + | | + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. Join_AcceptJoin_Accept fields JoinAppNonce
0NetID
0DevAddr
0OptNeg
BitField(1 bit)0RX1DRoffset
XBitField(3 bits)0RX2_Data_rate
XBitField(4 bits)0RxDelay
0CFList
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)[源代码]
基类:
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_RequestJoin_Request fields AppEUI
b'\x00\x00\x00\x00\x00\x00\x00\x00'DevEUI
b'\x00\x00\x00\x00\x00\x00\x00\x00'DevNonce
0
- class scapy.contrib.loraphy2wan.LinkADRAns(_pkt, /, *, status=<LinkADRAns_Status |>)[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.loraphy2wan.LinkADRAns_Status(_pkt, /, *, RFU=0, PowerACK=0, DataRate=0, ChannelMaskACK=0)[源代码]
基类:
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_StatusLinkADRAns_Status fields RFU
BitField(5 bits)0PowerACK
BitField(1 bit)0DataRate
BitField(1 bit)0ChannelMaskACK
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.LinkADRReq(_pkt, /, *, DataRate=0, TXPower=0, ChMask=0, RFU=0, ChMaskCntl=0, NbTrans=0)[源代码]
基类:
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. LinkADRReqLinkADRReq fields DataRate
XBitField(4 bits)0TXPower
XBitField(4 bits)0ChMask
0RFU
XBitField(1 bit)0ChMaskCntl
XBitField(3 bits)0NbTrans
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.LinkCheckAns(_pkt, /, *, Margin=0, GwCnt=0)[源代码]
基类:
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)[源代码]
基类:
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. LoRaLoRa fields Preamble
XBitField(4 bits)0PHDR
XBitField(16 bits)0PHDR_CRC
XBitField(4 bits)0MType
0RFU
BitField(3 bits)0Major
BitField(2 bits)0DevAddr
PacketListField(Cond)[b'']FCtrl
PacketListField(Cond)[b'']FCnt
LEShortField(Cond)0FOpts_up
PacketListField(Cond)[b'']FOpts_down
PacketListField(Cond)[b'']FPort
ByteEnumField(Cond)0DataPayload
MultipleTypeField(Cond, StrField, StrField, StrField)b''Join_Request_Field
PacketListField(Cond)[b'']Join_Accept_Field
PacketListField(Cond)[b'']Join_Accept_Encrypted
StrField(Cond)0ReJoin_Request_Field
PacketListField(Cond)[b'']MIC
0CRC
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''])[源代码]
基类:
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_downMACCommand_down fields CID
0Reset
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''])[源代码]
基类:
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 | DEVSTATUS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | NEWCHANNEL | RXTIMINGSETUP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | TXPARAMSETUP | DLCHANNEL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | REKEY | ADRPARAMSETUP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | DEVICETIME | FORCEREJOIN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | REJOINPARAMSETUP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. MACCommand_upMACCommand_up fields CID
0Reset
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''])[源代码]
基类:
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. MACPayloadMACPayload fields DevAddr
PacketListField(Cond)[b'']FCtrl
PacketListField(Cond)[b'']FCnt
LEShortField(Cond)0FOpts_up
PacketListField(Cond)[b'']FOpts_down
PacketListField(Cond)[b'']FPort
ByteEnumField(Cond)0DataPayload
MultipleTypeField(Cond, StrField, StrField, StrField)b''Join_Request_Field
PacketListField(Cond)[b'']Join_Accept_Field
PacketListField(Cond)[b'']Join_Accept_Encrypted
StrField(Cond)0ReJoin_Request_Field
PacketListField(Cond)[b'']
- class scapy.contrib.loraphy2wan.MHDR(_pkt, /, *, MType=0, RFU=0, Major=0)[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.loraphy2wan.NewChannelAns(_pkt, /, *, RFU=0, Dataraterangeok=0, Channelfrequencyok=0)[源代码]
基类:
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. NewChannelAnsNewChannelAns fields RFU
XBitField(6 bits)0Dataraterangeok
BitField(1 bit)0Channelfrequencyok
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.NewChannelAns_Status(_pkt, /, *, RFU=0, Dataraterangeok=0, Channelfrequencyok=0)[源代码]
基类:
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_StatusNewChannelAns_Status fields RFU
XBitField(6 bits)0Dataraterangeok
BitField(1 bit)0Channelfrequencyok
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.NewChannelReq(_pkt, /, *, ChIndex=0, Freq=0, MaxDR=0, MinDR=0)[源代码]
基类:
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. NewChannelReqNewChannelReq fields ChIndex
0Freq
0MaxDR
XBitField(4 bits)0MinDR
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)[源代码]
基类:
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. PHYPayloadPHYPayload fields MType
0RFU
BitField(3 bits)0Major
BitField(2 bits)0DevAddr
PacketListField(Cond)[b'']FCtrl
PacketListField(Cond)[b'']FCnt
LEShortField(Cond)0FOpts_up
PacketListField(Cond)[b'']FOpts_down
PacketListField(Cond)[b'']FPort
ByteEnumField(Cond)0DataPayload
MultipleTypeField(Cond, StrField, StrField, StrField)b''Join_Request_Field
PacketListField(Cond)[b'']Join_Accept_Field
PacketListField(Cond)[b'']Join_Accept_Encrypted
StrField(Cond)0ReJoin_Request_Field
PacketListField(Cond)[b'']MIC
0
- class scapy.contrib.loraphy2wan.RXParamSetupAns(_pkt, /, *, RFU=0, RX1DRoffsetACK=0, RX2DatarateACK=0, ChannelACK=0)[源代码]
基类:
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. RXParamSetupAnsRXParamSetupAns fields RFU
XBitField(5 bits)0RX1DRoffsetACK
BitField(1 bit)0RX2DatarateACK
BitField(1 bit)0ChannelACK
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.RXParamSetupAns_Status(_pkt, /, *, RFU=0, RX1DRoffsetACK=0, RX2DatarateACK=0, ChannelACK=0)[源代码]
基类:
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_StatusRXParamSetupAns_Status fields RFU
XBitField(5 bits)0RX1DRoffsetACK
BitField(1 bit)0RX2DatarateACK
BitField(1 bit)0ChannelACK
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.RXParamSetupReq(_pkt, /, *, OptNeg=0, RX1DRoffset=0, RX2_Data_rate=0, Frequency=0)[源代码]
基类:
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. RXParamSetupReqRXParamSetupReq fields OptNeg
BitField(1 bit)0RX1DRoffset
XBitField(3 bits)0RX2_Data_rate
XBitField(4 bits)0Frequency
0
- class scapy.contrib.loraphy2wan.RXTimingSetupReq(_pkt, /, *, RFU=0, Del=0)[源代码]
基类:
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. RXTimingSetupReqRXTimingSetupReq fields RFU
XBitField(4 bits)0Del
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.RXTimingSetupReq_Settings(_pkt, /, *, RFU=0, Del=0)[源代码]
基类:
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_SettingsRXTimingSetupReq_Settings fields RFU
XBitField(4 bits)0Del
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.Redundancy(_pkt, /, *, RFU=0, ChMaskCntl=0, NbTrans=0)[源代码]
基类:
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. RedundancyRedundancy fields RFU
XBitField(1 bit)0ChMaskCntl
XBitField(3 bits)0NbTrans
XBitField(4 bits)0
- class scapy.contrib.loraphy2wan.RejoinParamSetupAns(_pkt, /, *, RFU=0, TimeOK=0)[源代码]
基类:
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. RejoinParamSetupAnsRejoinParamSetupAns fields RFU
BitField(7 bits)0TimeOK
BitField(1 bit)0
- class scapy.contrib.loraphy2wan.RejoinParamSetupReq(_pkt, /, *, MaxTimeN=0, MaxCountN=0)[源代码]
基类:
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. RejoinParamSetupReqRejoinParamSetupReq fields MaxTimeN
BitField(4 bits)0MaxCountN
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)[源代码]
基类:
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. RejoinReqRejoinReq fields Type
0NetID
0DevEUI
b'\x00\x00\x00\x00\x00\x00\x00\x00'RJcount0
0
- class scapy.contrib.loraphy2wan.RekeyInd(_pkt, /, *, LoRaWANversion=[b''])[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.loraphy2wan.TxParamSetupReq(_pkt, /, *, RFU=0, DownlinkDwellTime=0, UplinkDwellTime=0, MaxEIRP=0)[源代码]
基类:
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. TxParamSetupReqTxParamSetupReq fields RFU
BitField(2 bits)0DownlinkDwellTime
0UplinkDwellTime
0MaxEIRP
0