RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Papers & Presentations Archive
Preferred Network Interface(PNI) is a feature introduced in RDK to avoid the confusion related to network connectivity and switch seamlessly between different interfaces. Currently it is meant for WiFi and ethernet interfaces.
For RDK client profiles, the network connectivity options are usually two, ethernet and WiFi.Ethernet is the preferred interface over WiFi, but the option to choose interface is exposed to user. PNI logic is encoded in /lib/rdk/pni_controller.sh
By default if ethernet interface is active and connected, WiFi interface will be disabled. This behavior can be altered using environmental settings.
This service is managed by systemd.This is mostly used to load the persisted data from previous runs.
This services is controlled by netsrvmgr service. This is invoked every time a network interface status is changed. Possible scenarios include, but not limited to
If ethernet cable is out, nlmon service will trigger the link change event, which results in restarting the pni_controller.service. This result in wifi being configured:
Similarly when ethernet cable is connected, netsrvmgr is notified, pni_controller.service is restarted. All wifi related components, including wpa_supplicant service is deactivated.
The following variables can be used to alter the functionality of PNI. These are defined in pni_controller.service
The following RFC variables can be used to alter the network selection logic of PNI.
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PreferredNetworkInterface
- Use this RFC to set WiFi as default interface. By default Ethernet is the default interface.
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Network.AllowDisableDefaultNetwork
- Use this to disable interface irrespective of whether the interface is the active interface or not.
If this RFC is not enabled, you can only disable passive interfaces.
After establishing network connectivity , PNI can verify the connectivity status of the network. It does by reaching out to endpoints specified in /opt/persistent/connectivity_test_endpoints if available, otherwise defaulting to "google.com espn.com speedtest.net" websites.
RDK-14208 (1.0)
RDK-29489 (2.0)
DISCLAIMER: Please note that the use of the RDK Wiki is subject to its Privacy Policy & Terms of Use. In addition, this Wiki may be accessed by all RDK licensees and their contractors.
Powered by a free Atlassian Confluence Open Source Project License granted to RDKCentral. Evaluate Confluence today.