Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Enabling FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE flag in RPI build to update Wan name and also to follow the common approach as sky follows.

Need to Enable the

...

Distr


Code Block
languagec#
themeDJango
titleDistro Enabling
collapsetrue
diff --git a/conf/distro/include/rdk-rpi.inc b/conf/distro/include/rdk-rpi.inc
index 29e387e..4978f8e 100644
--- a/conf/distro/include/rdk-rpi.inc
+++ b/conf/distro/include/rdk-rpi.inc
@@ -223,3 +223,4 @@ DISTRO_FEATURES_remove_raspberrypi3 = " ripple2.0"
 #REFPLTB-2784 : easymesh controller arch only supports with wifiagent
 MACHINEOVERRIDES_append =. "${@bb.utils.contains('DISTRO_FEATURES', 'OneWifi', ':onewifi', '' ,d)}"
 DISTRO_FEATURES_remove_onewifi = " easymesh-controller"
+DISTRO_FEATURES_append_broadband = " rdkb_configurable_wan_interface"
jhdcki4r

Build Issues and Fixes

Faced compilation issues in Utopia and RdkWanmanager while triggering the broadband image build(still some errors are there in utopia, need to update in this).

Code Block
languagec#
themeDJango
titleIssues in Utopia
collapsetrue
Error-1:
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c: In function 'gen_zebra_conf':
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:764:25: error: implicit declaration of function 'PSM_VALUE_GET_STRING' [-Werror=implicit-function-declaration]
|   764 |     int return_status = PSM_VALUE_GET_STRING(PSM_MESH_WAN_IFNAME,pStr);
|       |                         ^~~~~~~~~~~~~~~~~~~~
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:765:25: error: 'CCSP_SUCCESS' undeclared (first use in this function); did you mean 'EXIT_SUCCESS'?
|   765 |     if(return_status == CCSP_SUCCESS && pStr != NULL){
|       |                         ^~~~~~~~~~~~
|       |                         EXIT_SUCCESS
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:765:25: note: each undeclared identifier is reported only once for each function it appears in
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:767:9: error: implicit declaration of function 'Ansc_FreeMemory_Callback' [-Werror=implicit-function-declaration]
|   767 |         Ansc_FreeMemory_Callback(pStr);
|       |         ^~~~~~~~~~~~~~~~~~~~~~~~
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:1035:27: error: 'current_wan_ifname' undeclared (first use in this function); did you mean 'mesh_wan_ifname'?
|  1035 |                 if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
|       |                           ^~~~~~~~~~~~~~~~~~
|       |                           mesh_wan_ifname
| cc1: all warnings being treated as errors

Error-2:

| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:1036:27: note: each undeclared identifier is reported only once for each function it appears in
| At top level:
| ../../../../../../../../../rdkb/components/opensource/ccsp/Utopia/source/service_routed/service_routed.c:74:26: error: 'service_routed_component_id' defined but not used [-Werror=unused-const-variable=]
|    74 | static const char* const service_routed_component_id = "ccsp.routed";
|       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| cc1: all warnings being treated as errors

...

Code Block
languagec#
themeDJango
titleIssues in Wanmanager
collapsetrue
| ../../../git/source/WanManager/wanmgr_dhcpv6_apis.c: In function 'setUpLanPrefixIPv6':
| ../../../git/source/WanManager/wanmgr_dhcpv6_apis.c:2001:75: error: 'v6pref' undeclared (first use in this function)
|  2001 |         snprintf(cmdLine, sizeof(cmdLine), "sysevent set ipv6_prefix %s ",v6pref);
|       |                                                                           ^~~~~~ 

Fixes

Platform flag has been added to not compile that mesh related code here.

Code Block
languagec#
themeDJango
titleFix for Utopia
collapsetrue
diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c
index 5edb420c..4b69b33b 100644
--- a/source/firewall/firewall.c
+++ b/source/firewall/firewall.c
@@ -1055,7 +1055,7 @@ static BOOL isServiceNeeded()
         }
         else
         {
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && !defined(_PLATFORM_RASPBERRYPI_)
         if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
 #else
         if(strcmp(current_wan_ifname,default_wan_ifname ) != 0)
@@ -14825,8 +14825,8 @@ int prepare_ipv6_firewall(const char *fw_file)
    #endif
 
    #ifdef WAN_FAILOVER_SUPPORTED
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
-        if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && !defined(_PLATFORM_RASPBERRYPI_)
+         if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
 #else
          if ( strcmp(current_wan_ifname,default_wan_ifname) != 0 )
 #endif
diff --git a/source/service_routed/service_routed.c b/source/service_routed/service_routed.c
index 5928e3ac..18208099 100644
--- a/source/service_routed/service_routed.c
+++ b/source/service_routed/service_routed.c
@@ -62,7 +62,7 @@
 #include "util.h"
 #include <telemetry_busmessage_sender.h>
 #include "syscfg/syscfg.h"
-#if defined (_HUB4_PRODUCT_REQ_) || defined (RDKB_EXTENDER_ENABLED)
+#if defined (_HUB4_PRODUCT_REQ_) || defined (RDKB_EXTENDER_ENABLED) || defined (_PLATFORM_RASPBERRYPI_)
 #include "utapi.h"
 #include "utapi_util.h"
 #include "ccsp_dm_api.h"
@@ -70,8 +70,10 @@
 #include "ccsp_psm_helper.h"
 #include <ccsp_base_api.h>
 #include "ccsp_memory.h"
+#if !defined(_PLATFORM_RASPBERRYPI_)
 static const char* const service_routed_component_id = "ccsp.routed";
 #endif
+#endif
 #include "secure_wrapper.h"
 #define PROG_NAME       "SERVICE-ROUTED"
 
@@ -86,11 +88,13 @@ static const char* const service_routed_component_id = "ccsp.routed";
 #endif
 
 #define RA_INTERVAL 60
-#if defined (_HUB4_PRODUCT_REQ_) || defined (RDKB_EXTENDER_ENABLED)
+#if defined (_HUB4_PRODUCT_REQ_) || defined (RDKB_EXTENDER_ENABLED) || defined (_PLATFORM_RASPBERRYPI_)
 #define CCSP_SUBSYS  "eRT."
 #define PSM_VALUE_GET_STRING(name, str) PSM_Get_Record_Value2(bus_handle, CCSP_SUBSYS, name, NULL, &(str))
+#if !defined(_PLATFORM_RASPBERRYPI_)
 static void* bus_handle = NULL;
 #endif
+#endif
 
 #if defined (_HUB4_PRODUCT_REQ_) && (!defined (_WNXL11BWL_PRODUCT_REQ_))
 #define LAN_BRIDGE "brlan0"
@@ -756,7 +760,7 @@ static int gen_zebra_conf(int sefd, token_t setok)
 #ifdef WAN_FAILOVER_SUPPORTED
     char default_wan_interface[64] = {0};
     char wan_interface[64] = {0};
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && (!defined(_PLATFORM_RASPBERRYPI_))
 #define PSM_MESH_WAN_IFNAME "dmsb.Mesh.WAN.Interface.Name"
     char mesh_wan_ifname[32];
     char *pStr = NULL;
@@ -1030,7 +1034,7 @@ static int gen_zebra_conf(int sefd, token_t setok)
             if (strlen(prefix))
             {
 #ifdef WAN_FAILOVER_SUPPORTED
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && (!defined(_PLATFORM_RASPBERRYPI_))
                 if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
 #else
                 if (strcmp(default_wan_interface, wan_interface) != 0)
@@ -1102,7 +1106,7 @@ static int gen_zebra_conf(int sefd, token_t setok)
 
 #if !defined (_HUB4_PRODUCT_REQ_) || defined (_WNXL11BWL_PRODUCT_REQ_)
 #ifdef WAN_FAILOVER_SUPPORTED
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && (!defined(_PLATFORM_RASPBERRYPI_))
                 if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
 #else
             if (strcmp(default_wan_interface, wan_interface) != 0)
diff --git a/source/utapi/lib/utapi.c b/source/utapi/lib/utapi.c
index e94c64e0..ba5d1086 100644
--- a/source/utapi/lib/utapi.c
+++ b/source/utapi/lib/utapi.c
@@ -376,7 +376,7 @@ int Utopia_SetDeviceSettings (UtopiaContext *ctx, deviceSetting_t *device)
 #ifdef WAN_FAILOVER_SUPPORTED
 static BOOL isServiceNeeded()
 {
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && !defined(_PLATFORM_RASPBERRYPI_)
   if(strcmp(current_wan_ifname, mesh_wan_ifname ) == 0)
 #else
   if(strcmp(current_wan_ifname,default_wan_ifname ) != 0)
@@ -7435,7 +7435,7 @@ int Utopia_IPRule_ephemeral_port_forwarding( portMapDyn_t *pmap, boolean_t isCal
         sysevent_get(sysevent_fd, sysevent_token, "wan_ifname", default_wan_ifname, sizeof(default_wan_ifname));
         sysevent_get(sysevent_fd, sysevent_token, "current_wan_ifname", current_wan_ifname, sizeof(current_wan_ifname));
 
-#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE
+#if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE) && !defined(_PLATFORM_RASPBERRYPI_)
     strncpy(mesh_wan_ifname, MESH_WAN_IFNAME, sizeof(mesh_wan_ifname));
 #endif
         #endif

...

Code Block
languagec#
themeDJango
titleFix for Wanmanager
collapsetrue
--- wanmgr_dhcpv6_apis.c    2024-08-21 15:05:48.396027493 +0100
+++ wanmgr_dhcpv6_apis.c    2024-08-21 15:05:31.183900110 +0100
@@ -1998,7 +1998,8 @@
          */
         memset(cmdLine, 0, sizeof(cmdLine));
 #ifndef _HUB4_PRODUCT_REQ_
-        snprintf(cmdLine, sizeof(cmdLine), "sysevent set ipv6_prefix %s ",v6pref);
+        ia_pd_t ia_info;
+        snprintf(cmdLine, sizeof(cmdLine), "sysevent set ipv6_prefix %s ",ia_info.value.v6pref);
 #else
 #ifdef LAN_MGR_SUPPORT
         snprintf(cmdLine, sizeof(cmdLine), "sysevent set dhcpv6_raserver-restart "); 

...

Code Block
languagec#
themeDJango
titleFor getting Global IP in brlan0 interface in CcspPandM
collapsetrue
diff --git a/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c b/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c
index 3cc5f3f9..a21547f6 100644
--- a/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c
+++ b/source-arm/TR-181/board_sbapi/cosa_dhcpv6_apis.c
@@ -8978,6 +8978,14 @@ dhcpv6c_dbg_thrd(void * in)
 #endif
 #else // FEATURE_MAPT
 #if defined(FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE)
+            commonSyseventGet("current_wan_ifname", IfaceName, sizeof(IfaceName));
+            p = (char *)malloc(1024);  // Allocating 1024 bytes for the buffer
+            if (p == NULL) {
+            printf("Memory allocation failed\n");
+            return NULL;  // Return if memory allocation fails
+            }
+            snprintf(p, 1024, "add %s '2001:db8:1111:0:2fdc:cfb2:e3a4:639c' '1' '\\0' '\\0' '3600' '7200' '2601:9c0:d00:1170::' '60' '1' '\\0' '\\0' '3600' '7200'", IfaceName);
+            CcspTraceWarning(("%s %d IfaceName:%s\n", __FUNCTION__, __LINE__, IfaceName));
             dataLen = sscanf(p, "%63s %63s %63s %31s %31s %31s %31s %31s %63s %11s %31s %31s %31s %31s %31s",
                        action, IfaceName, v6addr,    iana_iaid, iana_t1, iana_t2, iana_pretm, iana_vldtm,
                        v6pref, preflen, iapd_iaid, iapd_t1, iapd_t2, iapd_pretm, iapd_vldtm);

...

Code Block
languagec#
themeDJango
titleFor updating the device status as online in ACS server
collapsetrue
diff --git a/meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-psm/bbhm_def_cfg_rpi.xml b/meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-psm/bbhm_def_cfg_rpi.xml
index c5a755c..75f7aa3 100644
--- a/meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-psm/bbhm_def_cfg_rpi.xml
+++ b/meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-psm/bbhm_def_cfg_rpi.xml
@@ -1185,7 +1185,7 @@
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.IP.Mode" type="astr">3</Record>
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.IP.IPv4Source" type="astr">2</Record>
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.IP.IPv6Source" type="astr">2</Record>
-  <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.VlanInUse" type="astr"></Record>
+  <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.VlanInUse" type="astr">Device.X_RDK_Ethernet.VLANTermination</Record>
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.Timeout" type="astr">20</Record>
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.VlanCount" type="astr">0</Record>
   <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.VLAN.1.Interface" type="astr"></Record>
 

...

Code Block
languagec#
themeDJango
titleUpdating status as bound and server address
collapsetrue
diff --git a/source/WanManager/wanmgr_dhcpv4_apis.c b/source/WanManager/wanmgr_dhcpv4_apis.c
index 3f2a12b..8314a27 100644
--- a/source/WanManager/wanmgr_dhcpv4_apis.c
+++ b/source/WanManager/wanmgr_dhcpv4_apis.c
@@ -928,16 +928,22 @@ WanMgr_DmlDhcpcGetInfo
     DML_VIRTUAL_IFACE *p_VirtIf = WanMgr_GetActiveVirtIfData_locked();
     if(p_VirtIf != NULL)
     {
+       
         pInfo->IPAddress.Value     = inet_addr(p_VirtIf->IP.Ipv4Data.ip);
         pInfo->SubnetMask.Value    = inet_addr(p_VirtIf->IP.Ipv4Data.mask);
         pInfo->IPRouters[0].Value  = inet_addr(p_VirtIf->IP.Ipv4Data.gateway);
         pInfo->DNSServers[0].Value = inet_addr(p_VirtIf->IP.Ipv4Data.dnsServer);
         pInfo->DNSServers[1].Value = inet_addr(p_VirtIf->IP.Ipv4Data.dnsServer1);
-        pInfo->DHCPStatus          = (strcmp(p_VirtIf->IP.Ipv4Data.dhcpState, DHCP_STATE_UP) == 0) ? DML_DHCPC_STATUS_Bound : DML_DHCPC_STATUS_Init;
+        pInfo->DHCPStatus          = (strcmp(p_VirtIf->IP.Ipv4Data.dhcpState, "bound") == 0) ? DML_DHCPC_STATUS_Bound : DML_DHCPC_STATUS_Init;
+        pInfo->DHCPServer.Value = inet_addr(p_VirtIf->IP.Ipv4Data.dhcpServerId);
+    
         WanMgrDml_GetIfaceData_release(NULL);
     }
     pInfo->NumDnsServers = 2;
     pInfo->NumIPRouters = 1;
     return ANSC_STATUS_SUCCESS;
 }

...