Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 53

...

Table of Contents
Introduction

          The scope of this document is to capture the details for This page describes  the  bring-up the of RdkWanManager on Raspberry-pi platform using  rdk-next branch. This
document also captures Also, we captured  list of the issues that are faced during bring up and resolution for the same. 

RPI Build Steps 

Please refer the below link for host environment set-up & flashing procedure for yocto build ,

Dunfell :

RPI 3B/3B+ Model Reference Platform

Morty:

RDK-B Raspberrypi - Host SetUp and Build Instructions#BRaspberrypi-HostSetUpandBuildInstructions-YoctoBuildSteps

Repo Steps

To build, follow below instructions

Components

The following components are newly introduced for Porting of  RdkWanManager in RPI Target Platform ,

The following  are the dependent components & meta-layers which are modified, 

RPI Build Steps 

Please refer the below link for host environment set-up & flashing procedure for yocto build ,

Dunfell :

RPI 3B/3B+ Model Reference Platform

Morty:

RDK-B Raspberrypi - Host SetUp and Build Instructions#BRaspberrypi-HostSetUpandBuildInstructions-YoctoBuildSteps

Repo Steps

To  build, follow below instructions

Deck of Cards
startHiddenfalse
idRepo Steps
loopCardstrue


Card
idRepo Steps
labelDunfell Build


Code Block
languagebash
themeDJango
titleDunfell Build - Repo Steps
$ mkdir <workspace dir>
Code Block
languagebash
themeDJango
titleRepo Steps
$ mkdir <workspace dir>

$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml 
$ repo sync -j`nproc` --no-clone-bundle

...



Card
idRepo Steps
labelMorty Build


Code Block
languagebash
themeDJango
title
WanManager Fixes
Morty Build - Repo Steps
$ mkdir <workspace dir>
$ cd 
~/rdkb/components/opensource/ccsp/CcspEthAgent
<workspace dir>
$ repo 
git
init 
fetch
-u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml
$ repo sync -j`nproc` --no-clone-bundle




WanManager Bug Fixes


Code Block
languagebash
themeDJango
titleWanManager Fixes
$ rdkb/components/opensource/ccsp/CcspEthAgent refs/changes/98/58898/2 && git cherry-pick FETCH_HEAD

$ cd ~/rdkb/components/generic/json-rpcopensource/ccsp/CcspEthAgent
$ git fetch https://code.rdkcentral.com/r/rdkb/components/opensource/genericccsp/json-rpcCcspEthAgent refs/changes/9198/5889158898/12 && git cherry-pick FETCH_HEAD

$ cd ~/rdkrdkb/components/generic/rdk_loggerjson-rpc
$ git fetch https://code.rdkcentral.com/r/rdkrdkb/components/generic/rdk_logger json-rpc refs/changes/91/58891/1 && git cherry-pick FETCH_HEAD

$ cd ~/rdk/components/generic/rdk_logger
$ git fetch https://code.rdkcentral.com/r/rdk/components/generic/rdk_logger refs/changes/85/58885/1 && git cherry-pick FETCH_HEAD

$ cd ~/rdkb/components/opensource/ccsp/CcspPandM
$ git fetch https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/CcspPandM refs/changes/51/58951/1 && git cherry-pick FETCH_HEAD

$ cd ~/meta-cmf-broadband
$ git fetch https://code.rdkcentral.com/r/rdk/components/generic/rdk-oe/meta-cmf-broadband refs/changes/65/58865/2 && git cherry-pick FETCH_HEAD

$ cd ~/meta-cmf-raspberrypi
$ git fetch https://code.rdkcentral.com/r/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi refs/changes/26/59026/2 && git cherry-pick FETCH_HEAD


Note :Note : The above bug fixes changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

Distro Features

We are using the following distro features to enable rdkb wanmanager . Please add the following distro features into OEM machine configuration file,

  • rdkb_wan_manager : Used to enable RDK WanManager and json hal

Please open the below rpi machine configuration file and add the following line in that file .

...

 $ vi ~/meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-broadband.conf

DISTRO_FEATURES_append = "  rdkb_wan_manager"

Build steps


Code Block
languagebash
themeDJango
titleBuild Steps
$ MACHINE=raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-broadband-image

We will get the following rdk-wanmanager compilation errors While bitbaking the target image,


Code Block
languagebash
themeDJango
titlerdk-wanmanager Compilation Errors
collapsetrue
../../../git/source/WanManager/wanmgr_interface_sm.c:720:62: error: macro "LOG_CONSOLE" passed 3 arguments, but takes just 0
         LOG_CONSOLE("%s Wan_init_complete:%d\n",buffer,uptime);
                                                              ^
../../../git/source/WanManager/wanmgr_interface_sm.c:720:9: error: 'LOG_CONSOLE' undeclared (first use in this function)
         LOG_CONSOLE("%s Wan_init_complete:%d\n",buffer,uptime);
         ^~~~~~~~~~~

Also , we need to disable the GwProvapp-EthWan component in ccsp packagegroup . For that, please open the below file and add the following line in that file ,

...

$ vi ~/meta-cmf-raspberrypi/recipes-core/packagegroups/packagegroup-rdk-ccsp-broadband.bbappend

GWPROVAPP = ""

Note :  The above distro changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

...


Code Block
languagebash
themeDJango
titleBuild Stepsrdk-wanmanager compilation Fix
$ MACHINE= cd ~/build-raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-broadband-image

We will get the following rdk-wanmanager compilation errors While bitbaking the target image,

Code Block
languagebash
themeDJango
titlerdk-wanmanager Compilation Errors
collapsetrue
../../../git/source/WanManager/wanmgr_interface_sm.c:720:62: error: macro "LOG_CONSOLE" passed 3 arguments, but takes just 0
         LOG_CONSOLE("%s Wan_init_complete:%d\n",buffer,uptime);
                                                              ^
../../../git/source/WanManager/wanmgr_interface_sm.c:720:9: error: 'LOG_CONSOLE' undeclared (first use in this function)
         LOG_CONSOLE("%s Wan_init_complete:%d\n",buffer,uptime);
         ^~~~~~~~~~~
/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/rdk-wanmanager/1.99+gitAUTOINC+b6db33d891-r0/git/source
$ git fetch https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/RdkWanManager refs/changes/00/58500/2 && git cherry-pick FETCH_HEAD

$ bitbake rdk-wanmanager -c compile -f
$ bitbake  rdk-generic-broadband-image

Note: The above bug fixes changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

Control Flow

Following diagram depicts the flow of control among the components,

                       

Gliffy Diagram
macroId6ee914ea-15ba-4e1d-8dbe-f172eeb517e0
nameRdkWanManager
pagePin1
 

  • 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.
  • CcspEthAgent will pass the link change event to Wan Manager,
                       It will set the value for Wan Manger DM ‘Device.X_RDK_WanManager.CPEInterface.1.Wan.LinkStatus’  

Approach

Integration Approach

Manifest Changes


Code Block
languagebash
titleManifest File
<project name="
Code Block
languagebash
themeDJango
titlerdk-wanmanager compilation Fix
$ cd ~/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/rdk-wanmanager/1.99+gitAUTOINC+b6db33d891-r0/git/source
$ git fetch https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/RdkWanManager refs/changes/00/58500/2 && git cherry-pick FETCH_HEAD

$ bitbake rdk-wanmanager -c compile -f
$ bitbake  rdk-generic-broadband-image

Note: The above bug fixes changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

Components

The following components 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,

                       

Gliffy Diagram
macroId6ee914ea-15ba-4e1d-8dbe-f172eeb517e0
nameRdkWanManager
pagePin1
 

  • 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.
  • CcspEthAgent will pass the link change event to Wan Manager,
                       It will set the value for Wan Manger DM ‘Device.X_RDK_WanManager.CPEInterface.1.Wan.LinkStatus’  

Approach

Integration Approach

Manifest Changes

Code Block
languagebash
titleManifest File
<project name="rdkb/components/opensource/ccsp/RdkWanManager" revision="rdk-next"/>
<project name="rdkb/components/generic/json-rpc" revision="rdk-next"/>

Note :  RdkWanManager Project will be added in RPI Manifest , Once the RdkWanManager Compilation error changes are merged in rdk-next(58500

Global CFLAGS

  • 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,

...

languagebash
titleccsp_common_rpi.inc

...

" revision="rdk-next"/>
<project name="rdkb/components/generic/json-rpc" revision="rdk-next"/>

Note :  RdkWanManager Project will be added in RPI Manifest , Once the RdkWanManager Compilation error changes are merged in rdk-next(58500

Global CFLAGS

  • 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
languagebash
titleccsp_common_rpi.inc
CFLAGS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' -DFEATURE_RDKB_WAN_MANAGER ', '', d)}"

Distro Features

We are using the following distro features to enable rdkb wanmanager in RPI machine configuration file,

  • rdkb_wan_manager : Used to enable RDK WanManager and json hal
Code Block
languagebash
titleraspberrypi-rdk-broadband.conf
DISTRO_FEATURES_append = "  rdkb_wan_manager"

Also , we need to disable the GwProvapp-EthWan component in ccsp packagegroup . 

Code Block
languagebash
titlepackagegroup-ccsp-rdk-broadband.bbappend
GWPROVAPP = ""


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
languagebash
titlepackagegroup-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)} "

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(58865)


Utopia CFLAG

  • To disable the utopia service_wan execution , we need to enable the utopia _WAN_MANAGER_ENABLED_ flag would mean that the RdkWanManager controls the Wan Management.   


    Code Block
    languagebash
    titleutopia.bbappend
    CFLAGS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' -

...

  • D_

...

  • WAN_MANAGER

...

  • _ENABLED_', '', 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
languagebash
titlepackagegroup-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)} "

hal-json-ethsw(Eth Hal)

...

  •                      

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

Recipe-path for JSON HAL server

...

Utopia CFLAG

  • To disable the utopia service_wan execution , we need to enable the utopia _WAN_MANAGER_ENABLED_ flag would mean that the RdkWanManager controls the Wan Management.                         

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 -->

 <!-- 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.Type" type="astr">2</Record> 
   <Record name="dmsb.wanmanager.if.1.Priority" type="astr">0</Record> 
   <Record name="dmsb.wanmanager.if.1.SelectionTimeout" type="astr">0</Record> 
   <Record name="dmsb.wanmanager.if.1.DynTriggerEnable" type="astr">FALSE</Record> 
   <Record name="dmsb.wanmanager.if.1.DynTriggerDelay" type="astr">0</Record> 


   <Record name="dmsb.wanmanager

.wanenable

.if.1.Marking.List" type="astr"

>1<

>DATA</Record> 
   <Record name="dmsb.wanmanager.

wanifcount

if.1.Marking.DATA.Alias" type="astr"

>1<

>DATA</Record> 
   <Record name="dmsb.wanmanager.

wanpolicy

if.1.Marking.DATA.SKBPort" type="astr"

>2<

>1</Record> 
   <Record name="dmsb.wanmanager

.wanidletimeout

.if.1.Marking.DATA.SKBMark" 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

Marking.DATA.EthernetPriorityMark" type="astr"

>eth0<

></Record> 
   <Record name="dmsb.wanmanager.if.1.

DisplayName

PPPEnable" type="astr"

>WanOE<

>FALSE</Record> 
   <Record name="dmsb.wanmanager.if.1.

Enable

PPPLinkType" type="astr"

>TRUE<

>PPPoE</Record> 
   <Record name="dmsb.wanmanager.if.1.

Type

PPPIPCPEnable" type="astr"

>2<

>TRUE</Record> 
   <Record name="dmsb.wanmanager.if.1.

Priority

PPPIPV6CPEnable" type="astr"

>0<

>TRUE</Record> 
   <Record name="dmsb.wanmanager.if.1.

SelectionTimeout

PPPIPCPEnable" type="astr"

>0<

>TRUE</

Record> 
   <Record name="dmsb.wanmanager.if.1.DynTriggerEnable" type="astr">FALSE</Record> 
   <Record name="dmsb.wanmanager.if.1.DynTriggerDelay" type="astr">0</Record> 
   <Record name="dmsb.wanmanager.if.1.Marking.List" type="astr">DATA</Record> 
   <Record name="dmsb.wanmanager.if.1.Marking.DATA.Alias" type="astr">DATA</Record> 
   <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBPort" type="astr">1</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

Record>

Major Errors and Challenges 

https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-cr.bbappend

Need to add wanmanager default DM values in PSM database

S.NoRecipe / Component NamesLayer Error/Warning/challengesRoot CauseAction 
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


2ccsp-psm.bbappendmeta-cmf-raspberrypi

WanManager DM  parameters are not getting the default values from PSM DB


Need to add wanmanager default DM values in PSM databasehttps://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-psm.bbappend
  3utopia.bbappendmeta-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.
https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58554/1/recipes-ccsp/util/utopia.bbappend
  4system_defaults (utopia recipe)meta-cmf-raspberrypiAdded WanManager default values to syscfg.dbThese default values are used by PAMhttps://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58567/1/recipes-ccsp/util/utopia/system_defaults
  5ccsp-p-and-m.bbappendmeta-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!

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 from PAM XML file

S.NoRecipe / Component NamesLayer Error/Warning/challengesRoot CauseAction 
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. 2ccsp-psm.bbappendmeta-cmf-raspberrypiWanManager DM  parameters are not getting the default values from PSM DBhttps://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58559/1/recipes-ccsp/ccsp/ccsp-psm.bbappend  3utopia.bbappendmeta-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

    .

    https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/5855458681/12/recipes-ccsp/util/utopiaccsp/ccsp-p-and-m.bbappend
     6RdkWanManager

    RdkWanManager 

    4

    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 definedhttps://code.rdkcentral.com/r/c/rdkb/components/opensource/ccsp/RdkWanManager/+/58500
     7ccsp-common-library.bbappendmeta-cmf-raspberrypiccsp-gwprov-app starts initialization scripts utopia_init.sh

    Added utopia.service to call utopia_init.sh 

    utopia_init.sh needs to be started before starting of the RdkWanManager executable

    system_defaults (utopia recipe)meta-cmf-raspberrypiAdded WanManager default values to syscfg.dbThese default values are used by PAMhttps://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58567/1/recipes-ccsp/util/utopia/system_defaults  5ccsp-p-and-m.bbappendmeta-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!

    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 from PAM XML file.

    https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58899


    https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/

    58681

    58899/

    2

    5/recipes-ccsp/ccsp/ccsp-

    p-and-m.bbappend

    common-library/utopia.service

    halhal

    Device.X_RDK_WanManager.CPEInterface.1.Wan.LinkStatus is getting Incorrect value .

    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.

    https://code.rdkcentral.com/r/c/rdkb/devices/raspberrypi/hal/+/58846/1/source/json-ethsw/hal-json-ethsw.c

    https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-broadband/+/58865/2/recipes-ccsp/hal/hal-json-ethsw.bb

    9halhal../../../../../../../../../.. 6RdkWanManager

    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 definedhttps://code.rdkcentral.com/r/c/rdkb/components/opensource/ccsp/RdkWanManagerCcspEthAgent/+/58500 7ccsp-common-library.bbappendmeta-cmf-raspberrypiccsp-gwprov-app starts initialization scripts utopia_init.sh

    Added utopia.service to call utopia_init.sh 

    utopia_init.sh needs to be started before starting of the RdkWanManager executable

    source/TR-181/board_sbapi/cosa_ethernet_apis.c:651: error: undefined reference to 'GWP_GetEthWanLinkStatus'
    collect2: error: ld returned 1 exit status
    Makefile:423: recipe for target 'CcspEthAgent' failed
    GWP_GetEthWanLinkStatus() is not defined in eth hal. Earlier, it was defined in GWP-EthWanhttps:https://code.rdkcentral.com/r/c/rdkrdkb/componentsdevices/generic/rdk-oe/meta-cmf-raspberrypiraspberrypi/hal/+/58899https:58785/1/code.rdkcentral.com/r/c/source/hal-ethsw/ccsp_hal_ethsw.c
    10rdk-loggerrdk_loggerWANMANAGERLog.txt is not created in /rdklogs/logs folderrdkb_debug.ini and rdkb_log4crc files needs to be updated https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/58899/5/recipes-ccsp/ccsp/ccsp-common-library/utopia.service
    halhal

    Device.X_RDK_WanManager.CPEInterface.1.Wan.LinkStatus is getting Incorrect value .

    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.

    https://code.rdkcentral.com/r/c/rdkb/devices/raspberrypi/hal/+/58846/1/source/json-ethsw/hal-json-ethsw.c

    https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-broadband/+/58865/2/recipes-ccsp/hal/hal-json-ethsw.bb

    ...

    _logger/+/58885
    11json-rpcJson-rpc../git/source/json-ethsw/hal-json-ethsw.c:31:10: fatal error: json_rpc_common.h: No such file or directory
    31 #include "json_rpc_common.h"
    compilation terminated.
    json_rpc_common.h required for hal-json-ethsw recipe compilationhttps://code.rdkcentral.com/r/c/rdkb/components/generic/json-rpc/+/58891
    12CcspEthAgentCcspEthAgentDevice.X_RDK_WanManager.CPEInterface.1.Wan.LinkStatus  , Device.X_RDK_WanManager.CPEInterface.1.Phy.Path & Device.X_RDK_WanManager.CPEInterface.1.Phy.Status is getting Incorrect values .

    1.Fix for erouter0 interface bring up

    2.Notifying EthAgent for the link event based on wan_physical_ifname

    3.Fix to avoid CR ready check which is causing 1min delay in the ip-assignment flow for ETH.

    4.Parameter instance correction for subscribeEvent

    https://code.rdkcentral.com/r/c/rdkb/components/opensource/ccsp/CcspEthAgent/+/58898
    13CcspPandMCcspPandM../../../../../../../../../../rdkb/components/opensource/ccsp/CcspPandM/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c:8411:56: error: 'hub4_preferred_lft' undeclared (first use in this function)
    8411 dhcpv6_data.prefixPltime = hub4_preferred_lft;
    ^~~~~~~~~~~~~~~~~~
    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspPandM/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c:8411:56: note: each undeclared identifier is reported only once for each function it appears in
    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspPandM/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c:8412:56: error: 'hub4_valid_lft' undeclared (first use in this function)
    8412 dhcpv6_data.prefixVltime = hub4_valid_lft;
    ^~~~~~~~~~~~~~
    hub4_preferred_lft , hub4_valid_lft are not declared properly in pamhttps://code.rdkcentral.com/r/c/rdkb/components/opensource/ccsp/CcspPandM/+/58951

    Validation Test Results

    • Flash the latest generated build
    • Goto RG console

    erouter0 IPv4 address

                        erouter0 should have valid IP based on the wan configuration (Eg 192.168.0.11/24)


    Image Added

    brlan0 IPv4 Address

                             brlan0 IPv4 should be 10.0.0.1 ( i,e Default IP Address )


    Image Added

    Able to take SSH from WAN IP

                         ssh from WAN to eRouter IP should be successful

    Image Added

    Image Added

    Internet Testing on RPI

    •  erouter0 Interface should have Ipv4 Address
    • verify the ping www.google.com on RPI
    • RPI shouldn't lose the Internet

    Image Added

    LAN client IPv4 and Internet 

                       Lan clients should get IPv4 address in the range of 10 series(i,e default DHCP server pool range) and captive portal page should be loaded.

    Image Added

    Image Added


    CCSP Process Status

                    All ccsp process should be Up and corresponding DataModel parameters should be loaded properly.

    Image Added


    RdkWanManager systemd Status

    •   RdkWanManager process should be up . We can verify the status by using the below screenshot command,

    Image Added

    • RdkWanManager  DataModel Parameters should be loaded properly, we can use the below command to verify the status, 

    Image Added 

    WanManager Logs

                     WanManager logs will be generated in /rdklogs/logs folder in RPI

    Image Added

    Systemd Status

              Following systemd service file's status needs to be verfiy,

    1.  hal-json-ethsw
    2.  utopia
    3.  CcspEthAgent
    4. CcspPandMSsp

    Image Added

    Image Added

    Image Added


    Image Added


    Image Added

    Using dmcli commands to verify the LinkStatus(CcspEthAgent will pass the LinkStatus to WanManager )

    Image Added


    Image Added

    WebUI Test on RPI

                     WebUI should be loaded in Webbrowser by using erouter0 IPv4 Address(i,e erouter0ip:8080) and login should be successful


    Image Added

    Internet check should be successful,


    Image Added


    Known Issues

                  Sometimes , erouter0 interface is not getting the WAN IP .