Wi-SUN Limited Function Nodes (LFN)#
Introduction#
The Wi-SUN FAN stack supports Limited Function Node (LFN) functionalities specified in the Wi-SUN FAN Technical Profile Specification version 1.1v06. The Limited Function Nodes as described in the specification must support low power operations:
The MAC must allow for LFN battery life of 20 years.
The MAC must support a less than 2 minute response for LFNs.
Multicast operations must minimize LFN power consumption.
Architecture#
LFNs provide minimum capabilities like discovering/joining a PAN and sending/receiving IPv6 packets. LFNs also implement the same communication stack as a Full Function Node (FFN) with a limited listening schedule to conserve power. But it can only operate within a PAN rooted at a FAN 1.1 Border Router (LFN is not part of the FAN 1.0 specification) as a child of a FAN 1.1 Router and not a parent to any other node. See the following figure.
LFN Characteristics#
An LFN employs different mechanisms than those used by an FFN to communicate, do routing, and secure the association with the border router.
An LFN operates as an RPL Unaware Leaf (RUL) node, which differs from an FFN in that an LFN does not implement RPL routing and relies on a parent RPL Router to provide routing capability.
LFNs employ a sampled listening technique rather than the continuous listening performed by an FFN.
LFN’s security associations with the Border Router are substantially longer lived than those of an FFN because FFNs and LFNs use separate sets of group keys (GTK / LGTK, respectively), with longer lifetimes for the LFN group keys.
Those characteristics help an LFN meet the required low power capabilities described in the Wi-SUN FAN Specification.
Supported Hardware#
LFN feature is supported on all the Wi-SUN capable devices listed at Wi-SUN Wireless SoCs. However, the power optimization capabilities are only supported on the EFR32FG28 (BRD4401C) and EFR32ZG28 (BRD4400C) as the other Wi-SUN Wireless SoCs have low energy consumption limitations in EM2 DeepSleep energy mode.
LFN in Silicon Labs Wi-SUN Stack#
The Wi-SUN Stack implements all the necessary mechanisms for an LFN to be able to join a Wi-SUN Network. Also, it supports Multicast and the power optimization capabilities.
On the latest GSDK, LFNs are supported on the following sample apps by default:
Wi-SUN – LFN CLI example
Wi-SUN – CLI example
Wi-SUN – SoC Meter
Wi-SUN – SoC Coap Meter
Wi-SUN – SoC Network Measurement
Wi-SUN – SoC Ping
Wi-SUN – SoC TCP Server
Wi-SUN – SoC UDP Server
Wi-SUN – SoC Empty
LFN Power Management#
The Wi-SUN stack supports LFN power management capabilities in GSDK 4.3.1 and later. This feature allow the LFNs to go into sleep in EM2 mode, with an average consumption of 5.23 µA with the EFR32FG28 (BRD4401C) and EFR32ZG28 (BRD4400C).
Note: The EFR32FG28 version BRD4401B and the EFR32ZG28 version BRD4400B have hardware limitations that keep them from entering sleep mode EM2.
This power optimization level comes with some challenges, especially the CLI UART clock that we use in our sample applications. For the Wi-SUN – LFN CLI example, the project configures the CLI UART to use the Low-Frequency clock to be able to use the CLI in a low speed of 9600 Bauds without preventing the LFN from entering the sleep mode EM2.
For the rest of the examples, this configuration has to be done manually on the software component perspective after creating the project. Follow the next steps to disable the UART high frequency clock and enable the power management capabilities:
Open the slcp file and click the SOFTWARE COMPONENTS. Then use the search bar to look for the Power Manager component and click Install.
Use the search bar to look for IO Stream: EUSART and click the on the configuration icon in front of vcom:
Switch off Enable High Frequency mode.
Set the Baud rate to 9600.
Switch off Restrict the energy mode to allow the reception if enabled.
Search for the Micrium OS Kernel component and click the configuration icon:
Switch off Enable Round-Robin scheduling.
Switch off Enable statistics gathering task.
Switch off Enable task profiling instrumentation.
After configuring the project to enter the sleep mode EM2, configure the WPK to use 9600 vcom baud rate speed following the next steps:
On the Debug Adapter perspective, right-click on your board and click Launch Console.
Click the Admin tab of the Console panel.
Enter the command
serial vcom config speed 9600
.
Note: This is a persistent configuration and it might be necessary to restore the previous value if the same WPK is used with any other CLI application. To do that, enter the command
serial vcom config speed 115200
.
LFN Configuration Using the CLI#
The Wi-SUN - SoC CLI example supports changing the device type and the device profile using the command line interface. By default, the device type is configured as FFN. To change the device type, use the following command that allows setting the device type to either LFN or FFN:
wisun set wisun.device_type LFN
Note: For this command to take effect after a join either as an FFN or an LFN, a board reset is mandatory.
The device profile can also be set through the command line, using the following command that allows choosing between three profiles:
Test: Used for testing the LFNs performance.
Balanced: Balance between LFNs performance and battery life.
Eco: Profile for high battery life performance.
wisun set wisun.device_profile balanced
Note: The profiles defined above focus on defining different time slots and intervals for the LFN parameters to optimize performance and battery life. These three predefined modes are just for reference, and it is up to the customer to fine tune the parameters to adapt the LFN behavior to the application use case. The three profiles are defined under protocol/wisun/stack/inc/sl_wisun_lfn_params_api.h.
Enabling LFN Using Wi-SUN Configurator#
Except for the Wi-SUN - LFN CLI example and Wi-SUN - SoC CLI example, the other sample applications supporting LFN, by default, use Wi-SUN Configurator to enable LFN device type.
Once the project is created, the device type is set by default to FFN. To change the device type to LFN, go to the Application panel on the Wi-SUN Configurator and, under the Device information section, change the Device Type of the node to LFN.
LFN Device Profiles#
When LFN is selected in the Device Type dropdown, a dropdown named Device Profile is exposed on the Wi-SUN Configurator Application's panel to allow choosing from three device profiles: Test, Balanced, and Eco.
LFN Parenting#
An LFN operates as an RPL Unaware Leaf (RUL) node, which means that an LFN does not implement RPL routing and relies on its parent Border Router or FFN to provide routing capability. In other words, LFNs won't be able to join the Network in the following cases:
If the Border router doesn't support LFN parenting.
If the Border router supports LFN parenting and the LFN parent does not support LFN parenting.
If the Border router doesn't support LFN direct parenting and there is no router that supports LFN parenting which the LFN can join.
Routers LFN Parenting#
On the GSDK 4.3 and later, LFN parenting is supported by the sample apps listed above by default.
The number of supported LFNs by each FFN is 10 by default on all the applications supporting LFN parenting. On Wi-SUN - CLI example, this number can be changed using the following command:
wisun set_lfn_support [Max number of LFNs]
The maximum number of LFN nodes that can be supported by an FFN is 10.
Enabling LFN Parenting#
On the sample applications listed below, LFN is not supported by default.
Wi-SUN – SoC CoAP Collector
Wi-SUN – SoC Collector
Wi-SUN – SoC TCP Client
Wi-SUN – SoC UDP Client
To allow the LFNs to join the devices running those applications as FFNs, it is mandatory to enable LFN parenting.
LFN parenting can be enabled on those applications by installing the component Stack LFN Support Plugin. Make sure to check the Evaluation box on the quality filter before searching for the component.
Border Routers LFN Parenting#
Wi-SUN - SoC Border Router#
LFN parenting is supported by default on Wi-SUN - SoC Border router, and it is disabled along side the LFN support on the PAN by setting lfn_support_pan to 0 using the following command:
wisun set_lfn_support [lfn_limit] [lfn_support_pan]
The lfn_limit argument sets the number of locally supported LFNs by the Border Router SoC. By default, it is set to 10 and the maximum number of LFNs that the Border Router can support is 10.
For a better LFN device battery performance and synchronization with the Border Router SoC, the LFN device profiles have to be set also on the Border Router side using the following command:
wisun set wisun.lfn_profile [device profile]
Wi-SUN Border Router Linux#
The wisun-br-linux version 1.6 and later supports LFN direct parenting by default. And it has no option to set a maximum number of LFN devices that can connect directly to the border router.
LFN Support in The PAN Network
In version 1.7, a new configuration option was added to the configuration file wsbrd.conf named enable_lfn
to allow enabling or disabling LFN devices support in the PAN Network, hence disabling the LFN parenting.
LFN Device Profiles
Unlike the Wi-SUN - SoC Border Router that has predefined LFN device profiles, the Wi-SUN Border Router Linux introduces two configuration options, lfn_broadcast_interval
and lfn_broadcast_sync_period
in wsbrd.conf to allow synchronizing the LFN broadcast listening windows and the number of LFN broadcast intervals to optimize the power consumption by the LFN devices.
Note: The wisun-br-linux supports LFN parenting by default with a limitation of not supporting direct parenting of LFNs on the wisun-br-linux versions 1.5 to 1.5.4. To connect an LFN to wisun-br-linux using one of those versions, an FFN connected to the network and supporting LFN parenting is mandatory.