Introduction  

Dhcp Manager Support has been brought in completely for both ipv4 and ipv6 in Bannapi R4.This page shares information about code changes and test results done for the integration of dhcp manager in BPI R4.

RdkDHCPManager is a component in RDK-B OS responsible for configuration and command control of DHCP client and server for both IPv4 and IPv6.



Code Changes : 

We need to do the following code changes to integrate Dhcp Manager in the Bananapi R4 platform


 2.1.Enable both the dhcp manager and configurable wan interface distro features in our configuration file for this feature to work seamlessly,


DISTRO_FEATURES_append = " dhcp_manager "
DISTRO_FEATURES_append = " rdkb_configurable_wan_interface"


   

2.2.Register dhcp manager in CR 

     <component>
      <name>eRT.com.cisco.spvtg.ccsp.dhcpmgr</name> <version>1</version>
    </component>    
    </components>


     2.3 Enable the Cflags for both the distros in the ccsp_common.inc file


  CFLAGS_append  += " ${@bb.utils.contains('DISTRO_FEATURES', 'dhcp_manager', '-DFEATURE_RDKB_DHCP_MANAGER', '', d)}"
 CFLAGS_append  += " ${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_configurable_wan_interface', '-DFEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE', '', d)}"


      2.4 Updating the psm data base


    <Record name="dmsb.wanmanager.if.1.VirtualInterface.1.IP.DHCPV6Interface" type="astr">Device.DHCPv6.Client.1</Record>
    <Record name="dmsb.wanmanager.if.2.VirtualInterface.1.IP.DHCPV4Interface" type="astr">Device.DHCPv4.Client.1</Record>
    <Record name="dmsb.wanmanager.if.2.VirtualInterface.1.IP.DHCPV6Interface" type="astr">Device.DHCPv6.Client.1</Record>
   <Record name="dmsb.dhcpmanager.ClientNoOfEntries" type="astr">1</Record>
   <Record name="dmsb.dhcpmanager.Client.1.Alias" type="astr" >WANOE</Record>
   <Record name="dmsb.dhcpmanager.Client.1.ReqOptionNoOfEntries" type="astr">4</Record>
   <Record name="dmsb.dhcpmanager.Client.1.ReqOption.1.Tag" type="astr">125</Record>
   <Record name="dmsb.dhcpmanager.Client.1.ReqOption.1.Order" type="astr">1</Record>
   <Record name="dmsb.dhcpmanager.Client.1.ReqOption.2.Tag" type="astr">42</Record>
  <Record name="dmsb.dhcpmanager.Client.1.ReqOption.2.Order" type="astr">2</Record>
  <Record name="dmsb.dhcpmanager.Client.1.ReqOption.3.Tag" type="astr">2</Record>
  <Record name="dmsb.dhcpmanager.Client.1.ReqOption.3.Order" type="astr">3</Record>
  <Record name="dmsb.dhcpmanager.Client.1.ReqOption.4.Tag" type="astr">122</Record>
  <Record name="dmsb.dhcpmanager.Client.1.ReqOption.4.Order" type="astr">4</Record>

  <Record name="dmsb.dhcpmanager.Client.1.SendOptionNoOfEntries" type="astr">3</Record>
  <Record name="dmsb.dhcpmanager.Client.1.SendOption.1.Tag" type="astr">43</Record>

  <Record name="dmsb.dhcpmanager.Client.1.SendOption.1.Value" type="astr">020745524f55544552030c45524f555445523a45445641</Record>
  <Record name="dmsb.dhcpmanager.Client.1.SendOption.2.Tag" type="astr">60</Record>
  <Record name="dmsb.dhcpmanager.Client.1.SendOption.2.Value" type="astr">65526F75746572312E30</Record>
  <Record name="dmsb.dhcpmanager.Client.1.SendOption.3.Tag" type="astr">125</Record>
  <Record name="dmsb.dhcpmanager.Client.1.SendOption.3.Value" type="astr">0000118b0701027B7C7c0107</Record>  <Record name="dmsb.dhcpmanager.dhcpv6.ClientNoOfEntries" type="astr">1</Record>

  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.Alias" type="astr">WANOE</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.RequestedOptions" type="astr"> 23 , 24 </Record> <!-- domain, dns-server -->
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.ReqAddr" type="astr">TRUE</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.ReqPrefix" type="astr">FALSE</Record>

  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOptNoOfEntries" type="astr">3</Record>

  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.1.Alias" type="astr">class-id</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.1.Tag" type="astr">16</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.1.Value" type="astr">0000118b000a65526f75746572312e30</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.2.Alias" type="astr">vendor-specific-info</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.2.Tag" type="astr">17</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.2.Value" type="astr">0000118b0001000800260027087A087B0002000745524F555445520003000B45524F555445523A4544560027000107</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.3.Alias" type="astr">pd</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.3.Tag" type="astr" >25</Record>
  <Record name="dmsb.dhcpmanager.dhcpv6.Client.1.SentOption.3.Value" type="astr">{ prefix ::/56 }</Record>    



Test Results   
 

1. All ccsp process Status
root@Filogic-GW:~# ps | grep eRT.
 3732 non-root  307m S    /usr/bin/CcspCrSsp -subsys eRT.
 3930 root      470m S    /usr/bin/telcovoice_manager -subsys eRT.
 4315 non-root  244m S    /usr/bin/PsmSsp -subsys eRT.
 4437 root      689m S    /usr/bin/CcspDHCPMgr -subsys eRT.
 4533 root      170m S    /usr/bin/VlanManager -subsys eRT.
 5576 root     1188m S    /usr/bin/CcspPandMSsp -subsys eRT.
 5580 non-root  908m S    /usr/rdk/wanmanager/wanmanager -subsys eRT.
 5605 non-root  550m S    /usr/bin/CcspEthAgent -subsys eRT.
 5664 root      684m S    /usr/bin/cellularmanager -subsys eRT.
 5667 non-root  106m S    /usr/bin/fwupgrademanager -subsys eRT.
 6493 root      343m S    /usr/bin/CcspTandDSsp -subsys eRT.
 6512 non-root  561m S    /usr/bin/CcspLMLite -subsys eRT.
 6563 non-root  479m S    /usr/bin/CcspTr069PaSsp -subsys eRT.
 6603 non-root  397m S    /usr/bin/CcspXdnsSsp -subsys eRT.
 9124 non-root  612m S    /usr/bin/webpa -subsys eRT.
 9731 root      754m S    /usr/bin/OneWifi -subsys eRT.
10745 root      458m S    /usr/bin/CcspAdvSecuritySsp -subsys eRT.
43546 root      2248 S    grep eRT.

2. Status on CcspDHCPMgr
root@Filogic-GW:~# 
root@Filogic-GW:~# systemctl status CcspDHCPMgr
* CcspDHCPMgr.service - CcspDHCPMgr service
     Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/CcspDHCPMgr.service/lib/systemd/system/CcspDHCPMgr.service8;;; enabled; vendor p)
     Active: active (running) since Thu 2022-04-28 17:44:03 UTC; 3 years 11 months ago
TriggeredBy: * CcspDHCPMgr.path
    Process: 4379 ExecStart=/usr/bin/CcspDHCPMgr -subsys $Subsys (code=exited, status=0/SUCCESS)
   Main PID: 4437 (CcspDHCPMgr)
      Tasks: 13 (limit: 4708)
     Memory: 9.8M
     CGroup: /system.slice/CcspDHCPMgr.service
             |- 4437 /usr/bin/CcspDHCPMgr -subsys eRT.
             |- 7666 udhcpc -O 122 -O timezone -O ntpsrv -O 125 -x 0x7D:0000118b0701027B7C7c0107 -V eRouter1.0 -x 0x2B:020745524f55544552030cR
             `- 7926 dibbler-client start -w /etc/dibbler/erouter0

2022 Apr 28 17:44:02 Filogic-GW systemd[1]: Starting CcspDHCPMgr service...
2022 Apr 28 17:44:03 Filogic-GW CcspDHCPMgr[4379]: rdk_dyn_log_initg_dl_socket = 3 __progname = CcspDHCPMgr
2022 Apr 28 17:44:03 Filogic-GW systemd[1]: Started CcspDHCPMgr service.
2026 Apr 03 11:15:56 Filogic-GW CcspDHCPMgr[4437]: ioctl(SIOCSIFMTU): Invalid argument

3. ipv4 test & Network Status
root@Filogic-GW:~# ifconfig erouter0
erouter0  Link encap:Ethernet  HWaddr 02:01:00:7B:5E:88  
          inet addr:192.168.20.178  Bcast:192.168.23.255  Mask:255.255.252.0
          inet6 addr: fe80::1:ff:fe7b:5e88/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:55450 errors:0 dropped:2535 overruns:0 frame:0
          TX packets:1283 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5307918 (5.0 MiB)  TX bytes:163917 (160.0 KiB)

root@Filogic-GW:~# ping www.google.com
PING www.google.com (142.251.151.119): 56 data bytes
64 bytes from 142.251.151.119: seq=0 ttl=119 time=10.354 ms
64 bytes from 142.251.151.119: seq=1 ttl=119 time=10.287 ms
64 bytes from 142.251.151.119: seq=2 ttl=119 time=10.293 ms
64 bytes from 142.251.151.119: seq=3 ttl=119 time=10.301 ms
64 bytes from 142.251.151.119: seq=4 ttl=119 time=10.298 ms
^C
--- www.google.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
          
4 CPU & Memore Utilization
Tasks: 211 total,   1 running, 210 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.4 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.1 hi,  0.1 si,  0.0 st
MiB Mem :   3924.8 total,   3542.3 free,    251.1 used,    131.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3623.8 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                               
   3218 root      20   0   13228   9776   6204 S   0.6   0.2   0:01.71 snmpd                                                                 
  10109 root      20   0  772396  36844  12576 S   0.6   0.9   0:01.90 OneWifi                                                               
  12485 root      20   0    5284   2656   1968 R   0.6   0.1   0:00.07 top                                                                   
     37 root      20   0       0      0      0 I   0.3   0.0   0:00.35 kworker/u8:1-phy0                                                     
     44 root      20   0       0      0      0 I   0.3   0.0   0:00.15 kworker/u8:2-events_power_efficient                                   
   1851 root      20   0 2153580  31332  15828 S   0.3   0.8   0:00.88 asterisk                                                              
   4460 root      20   0  705956   7316   5080 S   0.3   0.2   0:00.12 CcspDHCPMgr  
      
5. ipv6 test & Network Status

erouter0  Link encap:Ethernet  HWaddr 02:01:00:9C:9D:E6  
          inet addr:10.42.0.69  Bcast:10.42.0.255  Mask:255.255.255.0
          inet6 addr: fe80::1:ff:fe9c:9de6/64 Scope:Link
          inet6 addr: 2001:db8:1111:0:7053:9f81:75e0:b70/128 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27441 (26.7 KiB)  TX bytes:37496 (36.6 KiB)

brlan0    Link encap:Ethernet  HWaddr 02:03:00:9C:9D:ED  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: 2601:9c0:d00:1170:3:ff:fe9c:9ded/64 Scope:Global
          inet6 addr: fe80::3:ff:fe9c:9ded/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:32028 (31.2 KiB)  TX bytes:29230 (28.5 KiB)
                    
root@Filogic-GW:~# ping6 www.google.com
PING www.google.com (2001:4860:4828:7700::): 56 data bytes
64 bytes from 2001:4860:4828:7700::: seq=0 ttl=115 time=849.442 ms
64 bytes from 2001:4860:4828:7700::: seq=1 ttl=115 time=888.983 ms
64 bytes from 2001:4860:4828:7700::: seq=2 ttl=115 time=1007.157 ms
64 bytes from 2001:4860:4828:7700::: seq=3 ttl=115 time=1091.083 ms
^C
--- www.google.com ping statistics ---
5 packets transmitted, 4 packets received, 20% packet loss
round-trip min/avg/max/mdev = 849.442/959.166/1091.083/24.043 ms



References.

BPIR4 Jira reference wrt Dhcp Manager.
RDKBACCL-1484 - Getting issue details... STATUS

  • No labels