Releases: Lora-net/LoRaMac-node
Releases · Lora-net/LoRaMac-node
v4.7.0
General
- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN specification 1.1.0 + FCntDwn ERRATA" with "LoRaWAN Regional Parameters 2-1.0.3"
- GitHub reported issues corrections.
Known limitations
- SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
No work on this subject is forseen by the maintainers. Implementation proposals are welcome.
Added
- Trigger NVM update on
MacGroup2.DutyCycleOn
change - Configure radio sync word upon state restoration from NVM
- Added missing return status initialization for Class A
- Added a check for
GroupId
in order to avoid out of bounds access - Make LBT RSSI free channel threshold and carrier sense time (CST) parameters configurable
- Signal NVM data change in
LoRaMacMc*
functions - Teach
LoRaMacIsBusy
return false if the MAC is stopped - Added support for new release of ARIB STD-T108 Ver1.4 under AS923 region
- Support LoRaWAN 1.1 with ATECC608A/B secure element
- Added a function to reset the stack internal state machine
- Added an option for MAC commands to verify against an explicit confirmation
- Added a check to verify that
SystemMaxRxError
provided value is in the range 0..500 ms
Changed
- Updated regions implementation to regional parameters RP2-1.0.3
- Move AdrAckLimit and AdrAckDelay to NVM
MacGroup2
- Refactored and improved the way the duty-cycle is managed
Fixed
- Fixed class B multicast handling in
LoRaMacClassBProcessMulticastSlot()
- Restore
RegionGroup2
inRestoreNvmData
- Fix a duty cycle related deadlock in
ScheduleTx
- Fixed where
LastDownFCnt
update takes place for LoRaWAN 1.1.x - Fixes for class C activation and deactivation
- Don't
memset
the TX/RX buffer when radio is set to receive mode - Fixed usage of wrong API for general purpose keys
- Fixed and refactored JoinReq,
ReJoinType0Req
,ReJoinType1Req
,ReJoinType2Req
handling - Fixed Rx windows timer handling
- Fixed FUOTA fragmentation implementation
- Fixed time credits check as proposed
- Fixed potential buffer overflow in
ProcessRadioRxDone
- Security - Applied the proposed fix for the CRC check of empty
struct
- Fixed inconsistent handling of undefined callbacks
- Fixed
HardFault_Handler
for Cortex-M0 targets - Fixed ABP join handling to be similar to OTAA join handling
- Fixed issue with RX2 data rate in case of 0x0F for
RxParamSetupReq
andJoinAccept
Removed
- Removed useless
FOptsLen
filed check - Removed unused
ACTIVE_REGION
pre-processing check
Security
- Security breach found by Simon Wörner(@SWW13) please refer to security advisory - security advisory - CVE-2022-39274
v4.6.0
General
- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN specification 1.1.0 + FCntDwn ERRATA" with "LoRaWAN Regional Parameters 2-1.0.1"
- GitHub reported issues corrections.
Known limitations
- SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
No work on this subject is forseen by the maintainers. Implementation proposals are welcome.
Added
- Added NbTrans default value reset under JoinAccept processing
- Added missing Class B certification commands
- Added missing
classBParams.NetworkActivation
variable initialization - Added Class B remote multicast setup support
- Added data rate validation to the join accept message handling
- Added channel id limits verification to DlChannelReq handling
Changed
- Changed
LmHandlerDeviceTimeReq
API to be publicly accessible - Changed improved the way
USE_LRWAN_1_1_X_CRYPTO
pre-processing directive is used - Changed improved the way
JoinNonce
is checked
Fixed
- Fixed first beacon acquisition after receiving a
DeviceTimeAns
. - Fixed
LmHandlerParams_t
PingSlotPeriodicity
field type frombool
touint8_t
- Fixed i2c.h to include "utilities.h".
- Fixed VSCode
periodic-uplink-lpp
project default LoRaWAN class selection - Fixed SX127x FSK transmission when radio current operating mode is RX.
Removed
- Removed no more needed
MLME_SCHEDULE_UPLINK
notification
v4.5.2
General
- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
- GitHub reported issues corrections.
Known limitations
- SAMR34 platform does not support NVM storage. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
No work on this subject is forseen by the maintainers. Implementation proposals are welcome.
Added
- Added possibility to override periodic-uplink-lpp example
LORAWAN_DEFAULT_CLASS
- Added I2C driver support for B-L072Z-LRWAN1 and Nucleo platforms to the build system
- Added battery voltage and MCU temperature reading functions implementation for Nucleo platforms
- Added a default value for
Request->ReqReturn.DutyCycleWaitTime
to ensure that a valid value is always returned - Added SX126x
REG_RX_GAIN
andREG_TX_MODULATION
to the radio registers retention list - Added SX126x missing registers definitions
- Added radio image calibration enforcement after radio initialization and radio sleep cold start.
- Added possibility to query minimal Tx data rate
Changed
- Updated ADC driver based on en.en-st-stm32cubeide examples
- Changed improved the way
LmHandler
handles the packages transmissions - Changed certification
OnTxPeriodicityChanged
callback implementation in order to directly apply the requested change - Changed the
LmHandler
initialization to apply user default data rate - Changed SX1272 and SX1276 FSK FIFO threshold from 15 to 31 in order to give more time for the MCU to make other processing tasks
- Changed the way
IrqFired
global variable is handled byRadioIrqProcess
- Changed the place of call to
TimerStop( &RxTimeoutTimer )
onRadioIrqProcess
implementation - Changed utilities.h
SUCCESS
/FAIL
definition by an enumerationLMN_STATUS_OK
/LMN_STATUS_ERROR
Fixed
- Fixed Null pointer exception when CN470 region was selected
- Fixed
src/system/gps.c
HasFix variable type fromdouble
tobool
- Fixed Class C downlink handling
- Fixed I2C driver for L476
- Fixed re-transmissions handling when ClassB or ClassC downlink is received
- Fixed certification
FPort224DisableReq
command NVM handling - Fixed Class B & C confirmed downlink acknowledge management when
CLASS_B_C_RESP_TIMEOUT
expires - Fixed an issue when receiving downlinks in class C window during a class A procedure
- Fixed SX126x and LR1110 driver IrqFired variable management
- Fixed
LmhpCompliance.c
periodicity
array size computation - Fixed join back-off by not storing band usage on the NVM memory.
- Fixed
LoRaMacMibGetRequestConfirm
MIB_SE_PIN
handling - Fixed ping-slot frequency to take in account the
AS923_FREQ_OFFSET_HZ
parameter - Fixed fragmentation loop variable type in order to allow more than 255 fragments
- Fixed
RtcMs2Tick
conversion on SAMR34 - Fixed compiling issue when RU864 region is selected
- Fixed
MLME_SCHEDULE_UPLINK
handling.
Removed
- Removed STM32 platforms system wake up time calibration
v4.5.1
v4.4.7
Changelog
General
- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
- Release 4.4.7 is an hotfix of 4.4.6 and is the last one supporting "LoRaWAN specification 1.0.3"
Changed
- Changed examples GitHub version to 4.4.7
Fixed
- Fixed compiling issues when KR920 or RU864 regions are selected
- Fixed compiling issues for
fuota-test-01
example
v4.5.0
Changelog
General
- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
- GitHub reported issues corrections. Please refer to Release Version 4.5.0
Added
- Added implementation of LoRaWAN 1.0.4 changes
- Added implementation for new Certification protocol specification
- Added GitHub repository and firmware examples version definitions
v4.4.6
Changelog
General
- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
- GitHub reported issues corrections. Please refer to Release Version 4.4.6
- Release 4.4.6 is the last one supporting "LoRaWAN specification 1.0.3"
Changed
- Refactored MAC layer and examples Non Volatile Memory data handling
- Changed
NewChannelReq
amdDlChannelReq
handling to ignore command forAU915
,CN470
andUS915
regions - Updated behavior of
SX126xSetLoRaSymbNumTimeout
to round up the timeout to the nearest possible number of symbol. - Changed radio drivers floating point to integer computations
- Improved
GetNextLowerTxDr
function implementation. - Changed SX1272 and SX1276 FSK FIFO handling by using
FifoLevel
IRQ instead ofFifoEmpty
IRQ
WARNING DIO1 IRQ MCU pin detection has changed fromRISING
toRISING_FALLING
edge. - Changed IMST boards default power source to
USB_POWER
Fixed
- Fixed certification test application handling
- Fixed
ping-pong
andrx-sensi
examples to use the rightFSK_BANDWIDTH
andFSK_AFC_BANDWIDTH
parameters - Fixed one byte transmissions over I2C
- Fixed
RegionIN865RxParamSetupReq
DrOffset
verification - Fixed STM platforms IRQ handlers when using a C++ compiler
- Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF
- Fixed
AU915_MAX_RX1_DR_OFFSET
value to 5 instead of 6
Removed
- Removed ClassA, ClassB and ClassC examples.
v4.5.0-rc.1
Changelog
General
- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
- GitHub reported issues corrections. Please refer to Release Version 4.5.0
Added
- Added implementation of LoRaWAN 1.0.4 changes
- Added implementation for new Certification protocol specification
- Added GitHub repository and firmware examples version definitions
Changed
- Changed IMST boards default power source to USB_POWER
Fixed
- Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF.
- Fixed
AU915_MAX_RX1_DR_OFFSET
value to 5 instead of 6
Removed
- Removed NvmCtxCallback calls as they should only be done when a modification happens.
- Removed ClassA, ClassB and ClassC examples.
v4.4.5
Changelog
General
- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
- GitHub reported issues corrections. Please refer to Release Version 4.4.5
Added
- Added to
FRAGMENTATION_FRAG_SESSION_SETUP_REQ
checks which verifyFragNb
andFragSize
validity. - Added missing call to
SX126xSetOperatingMode
onSX126xSetTxContinuousWave
andSX126xSetTxInfinitePreamble
functions - Added new specific board API to initialize the RF switch (
SX126xIoRfSwitchInit
) - Add to AS923 and KR920 regions a definition for the Rx bandwidth to be used while executing the LBT algorithm
- Added support for other AS923 channel sub plan groups.
- Added FPort filtering to loramac handler packages.
- Added missing NVM update notifications
Changed
- Refactored function
RegionXXInitDefaults
. Fixes an issue on US based bands where the channels mask was not being reset. - Changed hard coded
JoinAccept
max payload size (33) byLORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE
definition. - Moved radio operating mode management to specific board implementation
- Changed radio
IsChannelFree API
in order to provide reception bandwidth - Back port 1.0.4 region implementation improvements
- Changed
RegionCommonComputeSymbolTimeLoRa
,RegionCommonComputeSymbolTimeFsk
andRegionCommonComputeRxWindowParameters
API implementations to use integer divisions instead of double division. - Changed DeriveSessionKey10x and DeriveSessionKey11x functions API (Removed pointer based variable usage)
Fixed
- Fixed
SX126xSetLoRaSymbNumTimeout
to call the workaround only if the number of symbols is equal to or higher than 64. - Fixed IAR C++ compiler warnings
- Fixed missing
{
afterextern "C"
incmac.h
file - Fixed
FragSessionStatusAns
message construction forReceived&index
field - Fixed
LoRaMacCryptoHandleJoinAccept
functionDevNonce
,RJCount0
andRJCount1
handling. - Fixed nonce variable declaration
- Fixed
LoRaMacCrypto.c
conditional pre-processing. - Fixed missing
Rx1Frequency
reset for dynamic channel plans - Applied Japan ARIB restrictions to the
AS923_1_JP
sub plan - Applied Regional Parameters 1.0.3.revA ERRATA note concerning the ClassB beacon format
- Fixed SAMR34 compiling issue when
USE_RADIO_DEBUG
directive is defined - Fixed
SX126xClearIrqStatus
call to only clear read flags - Fixed GFSK bandwidth handling for SX126x and LR1110 radios.
- Fixed version handling for MC root keys derivation
- Fixed Class B initialization.
- Fixed duty-cycle implementation
v4.4.4
Changelog
General
- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
- GitHub reported issues corrections. Please refer to Release Version 4.4.4
Added
- Added the possibility to setup multicast channels locally
- Added new
SecureElementProcessJoinAccept
API to thesecure-element.h
- Added possibility to select the secure-element to be used as well as to select if it is pre-provisioned or not
- Added support for LR1110 radio
- Added support for LR1110 crypto-engine to be used as secure-element
- Added support for ATECC608A-TNGLORA secure-element
- Added
LoRaMacDeInitialization
API to ease dynamic region change - Added possibility to query implemented versions of the LoRaWAN MAC layer and Regional Parameters specifications
- Added
MOTE_MAC_TX_PARAM_SETUP_ANS
as sticky MAC command - Added a filter to handle multicast downlinks exceptions
- Added
CHANGELOG.md
file
Changed
- Updated examples to use OTAA activation method by default
- Updated
LmhpFragmentation
implementation - Updated Radio APIs to handle 32-bit register addresses
- Changed SX126x driver to only process a received packet when there is no CRC error
- Moved
Commissioning.h
files to a single one located undersrc/apps/LoRaMac/common
directory - Updated
Radio.TimeOnAir
API in order to be independent of the current hardware settings - Moved keys definition and management to the secure-element implementation
- Moved device identity to secure-element
se-identity.h
file - Changed support of SAML21 platform by SAMR34 platform
- Changed the
MlmeRequest
andMcpsRequest
APIs to report back when the next transmission is possible - Changed
ResetMacParameters
to perform a complete re-initialization of the regional layer after processing the join accept - Updated the implementation to verify the MAC commands size
- Changed the way the duty-cycle management is handled
Removed
- Removed the LoRaWAN keys display on serial terminal
- Removed
GEN_APP_KEY
support as it is equivalent to LoRaWAN 1.1.xAPP_KEY
- Removed tables definition for repeater support. LoRa-Alliance will provide details on these tables usage in future versions
- Removed Changelog chapter from
readme.md
file
Fixed
- Fixed
SX126xGetRandom
API implementation - Fixed SX126x driver missing call to
RadioStandby
in LoRa modem case insideRadioSetRxConfig
API - Fixed SX126x driver
LoRaSymbNumTimeout
handling - Fixed soft-se/cmac for misaligned 32-bit access
- Fixed ping-pong and rx-sensi projects for packets with sizes bigger than 64 bytes handling
- Fixed missing switch case
PHY_BEACON_CHANNEL_FREQ
for AU915 region - Fixed default data rates for Class B beacon and ping-slots for AU915 region
- Fixed join request limitation due to duty cycle restrictions
- Fixed
SRV_MAC_DEVICE_TIME_ANS
,SRV_MAC_PING_SLOT_INFO_ANS
andSRV_MAC_BEACON_TIMING_ANS
processing to be executed only if corresponding MLME request is queued - Fixed issue where the stack could get stuck in MCPS busy state after MLME Device Time Request
- Fixed duty-cycle enforcement by disabling it for IN865 region
- Fixed potential issue where the
FCntUp
counter could sometimes be incremented by 2 instead of 1 - Fixed wrong beacon time-on-air calculation
Security
- Security breach found by Tencent Blade Team please refer to security advisory - CVE-2020-11068