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.DutyCycleOnchange - Configure radio sync word upon state restoration from NVM
- Added missing return status initialization for Class A
- Added a check for
GroupIdin 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
LoRaMacIsBusyreturn 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
SystemMaxRxErrorprovided 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
RegionGroup2inRestoreNvmData - Fix a duty cycle related deadlock in
ScheduleTx - Fixed where
LastDownFCntupdate takes place for LoRaWAN 1.1.x - Fixes for class C activation and deactivation
- Don't
memsetthe 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,ReJoinType2Reqhandling - 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_Handlerfor 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
RxParamSetupReqandJoinAccept
Removed
- Removed useless
FOptsLenfiled check - Removed unused
ACTIVE_REGIONpre-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.NetworkActivationvariable 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
LmHandlerDeviceTimeReqAPI to be publicly accessible - Changed improved the way
USE_LRWAN_1_1_X_CRYPTOpre-processing directive is used - Changed improved the way
JoinNonceis checked
Fixed
- Fixed first beacon acquisition after receiving a
DeviceTimeAns. - Fixed
LmHandlerParams_tPingSlotPeriodicityfield type frombooltouint8_t - Fixed i2c.h to include "utilities.h".
- Fixed VSCode
periodic-uplink-lppproject default LoRaWAN class selection - Fixed SX127x FSK transmission when radio current operating mode is RX.
Removed
- Removed no more needed
MLME_SCHEDULE_UPLINKnotification
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.DutyCycleWaitTimeto ensure that a valid value is always returned - Added SX126x
REG_RX_GAINandREG_TX_MODULATIONto 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
LmHandlerhandles the packages transmissions - Changed certification
OnTxPeriodicityChangedcallback implementation in order to directly apply the requested change - Changed the
LmHandlerinitialization 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
IrqFiredglobal variable is handled byRadioIrqProcess - Changed the place of call to
TimerStop( &RxTimeoutTimer )onRadioIrqProcessimplementation - Changed utilities.h
SUCCESS/FAILdefinition by an enumerationLMN_STATUS_OK/LMN_STATUS_ERROR
Fixed
- Fixed Null pointer exception when CN470 region was selected
- Fixed
src/system/gps.cHasFix variable type fromdoubletobool - Fixed Class C downlink handling
- Fixed I2C driver for L476
- Fixed re-transmissions handling when ClassB or ClassC downlink is received
- Fixed certification
FPort224DisableReqcommand NVM handling - Fixed Class B & C confirmed downlink acknowledge management when
CLASS_B_C_RESP_TIMEOUTexpires - 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.cperiodicityarray size computation - Fixed join back-off by not storing band usage on the NVM memory.
- Fixed
LoRaMacMibGetRequestConfirmMIB_SE_PINhandling - Fixed ping-slot frequency to take in account the
AS923_FREQ_OFFSET_HZparameter - Fixed fragmentation loop variable type in order to allow more than 255 fragments
- Fixed
RtcMs2Tickconversion on SAMR34 - Fixed compiling issue when RU864 region is selected
- Fixed
MLME_SCHEDULE_UPLINKhandling.
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-01example
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
NewChannelReqamdDlChannelReqhandling to ignore command forAU915,CN470andUS915regions - Updated behavior of
SX126xSetLoRaSymbNumTimeoutto round up the timeout to the nearest possible number of symbol. - Changed radio drivers floating point to integer computations
- Improved
GetNextLowerTxDrfunction implementation. - Changed SX1272 and SX1276 FSK FIFO handling by using
FifoLevelIRQ instead ofFifoEmptyIRQ
WARNING DIO1 IRQ MCU pin detection has changed fromRISINGtoRISING_FALLINGedge. - Changed IMST boards default power source to
USB_POWER
Fixed
- Fixed certification test application handling
- Fixed
ping-pongandrx-sensiexamples to use the rightFSK_BANDWIDTHandFSK_AFC_BANDWIDTHparameters - Fixed one byte transmissions over I2C
- Fixed
RegionIN865RxParamSetupReqDrOffsetverification - 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_OFFSETvalue 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_OFFSETvalue 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_REQchecks which verifyFragNbandFragSizevalidity. - Added missing call to
SX126xSetOperatingModeonSX126xSetTxContinuousWaveandSX126xSetTxInfinitePreamblefunctions - 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
JoinAcceptmax payload size (33) byLORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZEdefinition. - Moved radio operating mode management to specific board implementation
- Changed radio
IsChannelFree APIin order to provide reception bandwidth - Back port 1.0.4 region implementation improvements
- Changed
RegionCommonComputeSymbolTimeLoRa,RegionCommonComputeSymbolTimeFskandRegionCommonComputeRxWindowParameters
API implementations to use integer divisions instead of double division. - Changed DeriveSessionKey10x and DeriveSessionKey11x functions API (Removed pointer based variable usage)
Fixed
- Fixed
SX126xSetLoRaSymbNumTimeoutto 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.hfile - Fixed
FragSessionStatusAnsmessage construction forReceived&indexfield - Fixed
LoRaMacCryptoHandleJoinAcceptfunctionDevNonce,RJCount0andRJCount1handling. - Fixed nonce variable declaration
- Fixed
LoRaMacCrypto.cconditional pre-processing. - Fixed missing
Rx1Frequencyreset for dynamic channel plans - Applied Japan ARIB restrictions to the
AS923_1_JPsub plan - Applied Regional Parameters 1.0.3.revA ERRATA note concerning the ClassB beacon format
- Fixed SAMR34 compiling issue when
USE_RADIO_DEBUGdirective is defined - Fixed
SX126xClearIrqStatuscall 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
SecureElementProcessJoinAcceptAPI 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
LoRaMacDeInitializationAPI 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_ANSas sticky MAC command - Added a filter to handle multicast downlinks exceptions
- Added
CHANGELOG.mdfile
Changed
- Updated examples to use OTAA activation method by default
- Updated
LmhpFragmentationimplementation - 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.hfiles to a single one located undersrc/apps/LoRaMac/commondirectory - Updated
Radio.TimeOnAirAPI 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.hfile - Changed support of SAML21 platform by SAMR34 platform
- Changed the
MlmeRequestandMcpsRequestAPIs to report back when the next transmission is possible - Changed
ResetMacParametersto 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_KEYsupport 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.mdfile
Fixed
- Fixed
SX126xGetRandomAPI implementation - Fixed SX126x driver missing call to
RadioStandbyin LoRa modem case insideRadioSetRxConfigAPI - Fixed SX126x driver
LoRaSymbNumTimeouthandling - 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_FREQfor 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_ANSandSRV_MAC_BEACON_TIMING_ANSprocessing 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
FCntUpcounter 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