...
Introduction
This page describes the list of build errors while integrating the RdkWanManager component in yocto build environment The scope of this document is to capture the details for bring-up the RdkWanManager on Raspberry-pi platform using rdk-next branch. This
document also captures the issues that are faced during bring up and resolution for the same.
Yocto Build Steps
Please refer the below link for host environment set-up & flashing procedure for yocto build ,
...
Components
The following components & meta-layers are used are newly introduced for Porting of RdkWanManager in RPI Target Platform ,
The following are the existing components which are modified,
...
Control Flow
Following diagram depicts the flow of control among the components,
Approach
Integration Approach
Manifest Changes
Code Block |
---|
language | bash |
---|
title | Manifest File |
---|
|
<project name="rdkb/components/opensource/ccsp/RdkWanManager" revision="rdk-next"/>
<project name="rdkb/components/generic/json-rpc" revision="rdk-next"/> |
...
- FEATURE_RDKB_WANMANAGER is the global CFLAG used in other components to use with WANMANAGER feature.
- All the changes are enclosed inside FEATURE_RDKB_WAN_MANAGER compilation flag, this CFLAG can be used to control whether or not to
compile the WanManager code changes.
We enabled WanManager CFLAGS in below file in rpi(meta-cmf-raspberrypi) layer,
Code Block |
---|
language | bash |
---|
title | ccsp_common_rpi.inc |
---|
|
CFLAGS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' -DFEATURE_RDKB_WAN_MANAGER ', '', d)}" |
Package Group
To enable the RDKB Wanmanager components, added those components into the final build target. So, We have added those components into the ccsp packagegroup(58865),
Code Block |
---|
language | bash |
---|
title | packagegroup-rdk-ccsp-broadband.bbappend |
---|
|
RDEPENDS_packagegroup-rdk-ccsp-broadband_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' rdk-wanmanager json-hal-lib hal-json-ethsw', '', d)} " |
Persistent (PSM) configuration changes
For wanmanager, the default configurations are stored in PSM. As of now, we have 1 interfaces defined for WAN in wanmanager modules (i,e) wanoe.
For WANOE, by default we are using `eth0 `port for WAN connection.
...
<Record name=
""
dmsb.wanmanager.
if
.
2
.Name
""
type=
""
astr
""
>eth0</Record>
hal-json-ethsw(Eth Hal)
- Eth Hal will configure interface and monitor the link. CcspEthAgent will subscribe for ‘EthInterfaceStatus’ event so that it can receive the notification form Vendor Software (i.e. Eth Hal)whenever physical link event change.
- JSON HAL server library can be used by the vendor application to receive actions from RDK WanManager application and do necessary action. The vendor application that has HAL server library integrated will receive the JSON rpc request from the RDK WanManager, process the request and sends the JSON based response back to the RDK WanManager. The HAL server also helps to dispatch asynchronous events to the RDK WanManager based on the event subscription.
Recipe-path for JSON HAL server
Persistent (PSM) configuration changes
For wanmanager, the default configurations are stored in PSM. As of now, we have 1 interfaces defined for WAN in wanmanager modules (i,e) wanoe.
For WANOE, by default we are using `eth0 `port for WAN connection.
<Record name= "" dmsb.wanmanager. if . 2 .Name "" type= "" astr "" >eth0</Record>
|
Example PSM Configurations
<!-- rdk-wanmanager records --> |
---|
Example PSM Configurations
<!-- rdk-wanmanager records --> <Record name="dmsb.wanmanager.wanenable" type="astr">1</Record> <Record name="dmsb.wanmanager.wanifcount" type="astr">1</Record> <Record name="dmsb.wanmanager.wanpolicy" type="astr">2</Record> <Record name="dmsb.wanmanager.wanidletimeout" type="astr">0</Record> <!-- X_RDK_WanManager.CPEInterface. 1 . -wanmanager --> <Record name="dmsb.selfheal.rebootstatus" type="astr">0</Record> <Record name="dmsb.wanmanager.if.1.Name" type="astr">eth0</Record> <Record name="dmsb.wanmanager.if.1.DisplayName" type="astr">WanOE</Record> <Record name="dmsb.wanmanager.if.1.Enable" type="astr">TRUE</Record>
<Record name="dmsb.wanmanager.if.1.Typewanenable" type="astr">2<>1</Record> <Record name="dmsb.wanmanager.if.1.Prioritywanifcount" type="astr">0<>1</Record> <Record name="dmsb.wanmanager.if.1.SelectionTimeoutwanpolicy" type="astr">0<>2</Record> <Record name="dmsb.wanmanager.if.1.DynTriggerEnablewanidletimeout" type="astr">FALSE<>0</Record> <!-- X_RDK_WanManager.CPEInterface. 1 . -wanmanager --> <Record name="dmsb.wanmanager.if.1.DynTriggerDelay" typeselfheal.rebootstatus" type="astr">0</Record> <Record name="dmsb.wanmanager.if.1.Marking.ListName" type="astr">DATA<>eth0</Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.AliasDisplayName" type="astr">DATA<>WanOE</Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBPortEnable" type="astr">1<>TRUE</Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBMarkType" type="astr"> <>2</Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.EthernetPriorityMarkPriority" type="astr">0</Record> <Record name="dmsb.wanmanager.if.1.SelectionTimeout" type="astr"><>0</Record> <Record name="dmsb.wanmanager.if.1.PPPEnableDynTriggerEnable" type="astr">FALSE</Record> <Record name="dmsb.wanmanager.if.1.PPPLinkTypeDynTriggerDelay" type="astr">PPPoE<>0</Record> <Record name="dmsb.wanmanager.if.1.Marking.PPPIPCPEnableList" type="astr">TRUE<>DATA</Record> <Record name="dmsb.wanmanager.if.1.PPPIPV6CPEnableMarking.DATA.Alias" type="astr">TRUE<>DATA</Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.PPPIPCPEnableSKBPort" type="astr">TRUE<>1</Record> |
---|
Errors and Challenges in yocto
Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBMark" type="astr"> </Record> <Record name="dmsb.wanmanager.if.1.Marking.DATA.EthernetPriorityMark" type="astr"></Record> <Record name="dmsb.wanmanager.if.1.PPPEnable" type="astr">FALSE</Record> <Record name="dmsb.wanmanager.if.1.PPPLinkType" type="astr">PPPoE</Record> <Record name="dmsb.wanmanager.if.1.PPPIPCPEnable" type="astr">TRUE</Record> <Record name="dmsb.wanmanager.if.1.PPPIPV6CPEnable" type="astr">TRUE</Record> <Record name="dmsb.wanmanager.if.1.PPPIPCPEnable" type="astr">TRUE</Record> |
---|
Errors and Challenges in yocto
S.No | Recipe / Component Names | Layer | Error/Warning/challenges | Root Cause | Action |
---|
1 | ccsp-cr.bbappend | meta-cmf-raspberrypi | CcspEthAgent will start once it gets the signal status from CR but CR is taking long time to send the Signal status . | CR is waiting to get the MTA System_Ready Signal but MTA is not supported for RPI. | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-cr.bbappend
|
2 | ccsp-psm.bbappend | meta-cmf-raspberrypi | Need to add wanmanager default DM values in PSM database
| WanManager DM parameters are not getting the default values from PSM DB | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-psm.bbappend |
3 | utopia.bbappend | meta-cmf-raspberrypi | Below gaps needs to be filled in rpi, - Below initialization activities were done by GWP
1. /var/run/firewall directory creation. 2. copying files that are needed by CCSP modules -ccsp_msg.cfg and cp_subsys_ert. 3. crontab related changes(soft link) 4.ipv6/conf/all/forwarding proc entry - LAN_start() in ccsp-gwprovapp-ethwan will set
- sysevents viz. "lan-start", "bridge_mode" and "dhcp_server-resync".
- Multiple sysevents were set in ccsp-gwprovappethwan: lan-status, wan-status, ethwan-initialized,eth_wan_enabled, wan_service-status, eth_wan_mac,current_ipv4_link_state, current_wan_state,wan_start_time, bridge_mode
| - LAN_start() in ccsp-gwprovapp-ethwan will set
- sysevents viz. "lan-start", "bridge_mode" and "dhcp_server-resync".
- Multiple sysevents were set in ccsp-gwprovappethwan: lan-status, wan-status, ethwan-initialized,eth_wan_enabled, wan_service-status, eth_
|
S.No | Recipe | Layer | Error/Warning | Root Cause | Action |
---|
1 | ccsp-cr.bbappend | meta-cmf-raspberrypi | CcspEthAgent will start once it gets the signal status from CR but CR is taking long time to send the Signal status . | CR is waiting to get the MTA System_Ready Signal but MTA is not supported for RPI. | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-cr.bbappend
2 | ccsp-psm.bbappend | meta-cmf-raspberrypi | Need to add wanmanager default DM values in PSM database
WanManager DM parameters are not getting the default values from PSM DB | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-psm.bbappend | 3 | utopia.bbappend | meta-cmf-raspberrypi | Below gaps needs to be filled in rpi, - Below initialization activities were done by GWP
1. /var/run/firewall directory creation. 2. copying files that are needed by CCSP modules -ccsp_msg.cfg and cp_subsys_ert. 3. crontab related changes(soft link) 4.ipv6/conf/all/forwarding proc entry - LAN_start() in ccsp-gwprovapp-ethwan will set
- sysevents viz. "lan-start", "bridge_mode" and "dhcp_server-resync".
- Multiple sysevents were set in ccsp-gwprovappethwan: lan-status, wan-status, ethwan-initialized,eth_wan_enabled, wan_service-status, eth_wan_mac,current_ipv4_link_state, current_wan_state,wan_start_time, bridge_mode.
| - LAN_start() in ccsp-gwprovapp-ethwan will set
- sysevents viz. "lan-start", "bridge_mode" and "dhcp_server-resync".
- Multiple sysevents were set in ccsp-gwprovappethwan: lan-status, wan-status, ethwan-initialized,eth_wan_enabled, wan_service-status, eth_wan_mac,current_ipv4_link_state, current_wan_state,wan_start_time, bridge_mode.
- In service_wan, execute_dir /etc/utopia/post.d/ restart is being done once the address is set to the WAN interface.
| - In service_wan, execute_dir /etc/utopia/post.d/ restart is being done once the address is set to the WAN interface.
| https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58554/1/recipes-ccsp/util/utopia.bbappend |
4 | system_defaults (utopia recipe) | meta-cmf-raspberrypi | Added WanManager default values to syscfg.db | These default values are used by PAM | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58554/1/recipes-ccsp/util/utopia.bbappend |
4 | system_defaults (utopia recipe) | meta-cmf-raspberrypi | Added WanManager default values to syscfg.db | These default values are used by PAM | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58567/1/recipes-ccsp/util/utopia/system_defaults |
/generic/rdk-oe/meta-cmf-raspberrypi/+/58567/1/recipes-ccsp/util/utopia/system_defaults |
5 | ccsp-p-and-m.bbappend | meta-cmf-raspberrypi | 210629-12:11:47.500509 [mod=PAM, lvl=WARN] [tid=8164] Found an unresolved api: Client_GetEntryCount 210629-12:11:47.500664 [mod=PAM, lvl=WARN] [tid=8164] Found an unresolved api: SentOption_GetEntryCount 210629-12:11:47.500810 [mod=PAM, lvl=WARN] [tid=8164] Found an unresolved api: Client3_GetEntryCount 210629-12:11:47.500950 [mod=PAM, lvl=WARN] [tid=8164] Found an unresolved api: Server2_GetEntryCount 210629-12:11:47.501602 [mod=PAM, lvl=WARN] [tid=8164] resolving APIs in xml file failed! 210629-12:11:47.501708 [mod=PAM, lvl=WARN] [tid=8164] DslhDmagntLoadDataModelXML -- failed, error = -1! | 5 | ccsp-p-and-m.bbappend | meta-cmf-raspberrypi | PandM DM was not loading after the WanManager Integration Device.DHCPv6.Client.{i} and Device.DHCPv4.Client.{i}. was moved to the WanManager . But the DMs was not removed Removed the Device.DHCPv6.Client.{i} and Device.DHCPv4. Client.{i}. from the PandM from PAM XML file. | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58681/2/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend |
6 | RdkWanManagerrdkb/components/opensource/ccsp/RdkWanManager | RdkWanManager | RdkWanManager fails to build with the folloiwing errors: | ../../../git/source/WanManager/wanmgr_interface_sm.c:720:62: error: macro LOG_CONSOLE passed 3 arguments, but takes just 0 | 720 | LOG_CONSOLE(%s Wan_init_complete:%d\n,buffer,uptime); | | ^ | In file included from ../../../git/source/WanManager/wanmgr_interface_sm.c:31: | ../../../git/source/WanManager/wanmgr_platform_events.h:48: note: macro LOG_CONSOLE defined here | 48 | #define LOG_CONSOLE() | | | ../../../git/source/WanManager/wanmgr_interface_sm.c:720:9: error: LOG_CONSOLE undeclared (first use in this function) | 720 | LOG_CONSOLE(%s Wan_init_complete:%d\n,buffer,uptime); | | | LOG_CONSOLE () api is not defined | https://code.rdkcentral.com/r/c/rdkb/components/opensource/ccsp/RdkWanManager/+/58500 |
7 | ccsp-common-library.bbappend | meta-cmf-raspberrypi | ccsp-gwprov-app starts initialization scripts utopia_init.shAdded the below line in RdkWanManager.sh | Added utopia.service to call serviceExecStartPre=/bin/sh /etc/utopia/ utopia_init.shsh utopia_init.sh needs to be started before starting of the RdkWanManager executable | https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/ 58732/258899
https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58899/5/recipes-ccsp/ccsp/ccsp-common-library .bbappend/utopia.service |
8 | hal | hal |
|
|
|
References