Webconfig is a configuration management server from which RDK devices download configurations during bootup or when updates are available. The project is written in Go and has been open-sourced to the RDK community. You can find it here: https://github.com/rdkcentral/webconfig/blob/develop/README.md. The objective is to set up the Webconfig server using the open-sourced repository, so that it can be used by the RDK reference platform."

**Note :

  • All tests mentioned in this page are done on RDK-B reference device Rpi4.
  • Last verified in below kirkstone release  
    root@RaspberryPi-Gateway:~# cat /version.txt
    imagename:rdkb-generic-broadband-image_rdkb-2024q1-kirkstone_20240417053101
    BRANCH=rdkb-2024q1-kirkstone
    YOCTO_VERSION=kirkstone
    VERSION=rdkb-2024q1-kirkstone.04.17.24
    SPIN=0
    BUILD_TIME="2024-04-17 05:31:01"
    Generated on Wed Apr 17  05:31:01 UTC 2024


  • Webconfig supports 2 types of transport between cloud and devices ( http/webpa and mqtt ).  The RDKM reference server support only http/webpa

How To Bring up Webconfig Server:

  • GO version 1.17 and above 
  • Cassandra should be running
  • Java ( openjdk > 11.0 ) 
~$ sudo wget https://golang.org/dl/go1.20.3.linux-amd64.tar.gz
~$ sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
~$ ls /usr/local/go/bin/
go  gofmt
~# go version
go version go1.20.3 linux/amd64  

~# java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
~#
~# echo "deb https://debian.cassandra.apache.org 41x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
deb https://debian.cassandra.apache.org 41x main
~#
~# curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
100  274k  100  274k    0     0   193k      0  0:00:01  0:00:01 --:--:--  193k
OK
~# sudo apt-get update
~# sudo apt-get install cassandra
~# ls /usr/sbin/cassandra
~# cassandra -v
4.1.1

:~# ps -ef | grep cassa
cassand+  222987       1  0 May04 ?        02:01:43 /usr/bin/java

Build And Run Application


$ export WEBCONFIG_KEY=`head -c 32 /dev/random | base64`
$ mkdir -p /app/logs/webconfig
$ cd /go/src/github.com/rdkcentral/webconfig
$ make
$ bin/webconfig-linux-amd64 -f config/sample_webconfig.conf

** Note:  

After build, modify "config/sample_webconfig.conf" based on the server ip and port detail


Set Data to DB 


  • To write data to DB, follow section  WriteDataToDB . The section provide REST API and also Web UI to write config to server DB
  • If you already have binary data, can push directly to server using below REST API


curl -s -i "http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/document/privatessid" -H 'Content-type: application/msgpack' --data-binary @privatessid.msgpack -X POST

curl -s -i "http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/document/lan" -H 'Content-type: application/msgpack' --data-binary @lan.msgpack -X POST


Verify data in DB

cqlsh:webconfig>  select * from xpc_group_config where cpe_mac='<cpe_mac>';

 cpe_mac      | group_id    | error_code | error_details | expiry | params | payload                                                                                                                            | state | updated_time                    | version
--------------+-------------+------------+---------------+--------+--------+------------------------------------------------------------------------------------------------------------------------------------+-------+---------------------------------+-----------
 XXXXXXXXXXXX |        moca |       null |          null |   null |   null |                                                                                                       0x81a6456e61626c65a474727565 |     2 | 2023-05-16 23:48:41.941000+0000 | 683076856
  XXXXXXXXXXXX  | privatessid |          0 |               |   null |   null | 0x8c105971de71bd30ae8a6d0fb10973174a97a0da0bd372b87f2342c132c554421de36916a06721d18cc1226d2a830b4af4297aa91611af89de4bf78b59859707 |     2 | 2023-05-16 23:48:24.845000+0000 | 563331257

(2 rows)
cqlsh:webconfig>


RDK Device downloads data

~# curl -s "http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config"                                                                
--2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI
Content-type: application/msgpack
Etag: 683076856
Namespace: moca

▒▒Enable▒true
--2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI
Content-type: application/msgpack
Etag: 563331257
Namespace: privatessid

▒▒2.4▒rdkm_2.4▒5▒rdkm_5
--2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI--

RDK-B Device ForceSync

  • Make sure Webconfig service is running, otherwise restart service -  systemctl restart webconfig
  • Verify data is in DB by following "Set Data to DB" section.

For lan subdoc

  • Below results are pulled for "lan" subdoc with below values

"lan": {
        "DhcpServerEnable": True,
        "LanIPAddress": "10.0.0.1",
        "LanSubnetMask": "255.255.255.0",
        "DhcpStartIPAddress": "10.0.0.7",
        "DhcpEndIPAddress": "10.0.0.249",
        "LeaseTime": 3600
    }
  • Set below tr181 params for Webconfig server setting 

NOTE - The Webconfig URL used below is a reference setup, change it to respective webconfig URL and change the MAC to DUT CM MAC 

root@Docsis-Gateway:~# dmcli eRT getv Device.X_RDK_WebConfig.
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(webconfig): Device.X_RDK_WebConfig.
Execution succeed.
Parameter    1 name: Device.X_RDK_WebConfig.RfcEnable
               type:       bool,    value: true
Parameter    2 name: Device.X_RDK_WebConfig.URL
               type:     string,    value: http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config
  • Trigger Force Sync for root subdoc
root@RaspberryPi-Gateway:~# dmcli eRT setv Device.X_RDK_WebConfig.ForceSync string root
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(webconfig): Device.X_RDK_WebConfig.ForceSync
Execution succeed.
  • Webconfig client will receive the response from server and parse the data and send to corresponding component
240424-13:27:44.330309 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: curl Ip resolve option set as default mode
240424-13:27:44.963139 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: g_ETAG updated for primary sync is 4185550430
240424-13:27:44.963377 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: webConfig curl response 0 http_code 200
240424-13:27:44.963465 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: curl response Time: 0.6 seconds
240424-13:27:44.963547 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: ct is multipart/mixed; boundary=2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI, content_res is 0
240424-13:27:44.963614 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Content-Type is multipart/mixed. Valid
240424-13:27:44.964065 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Size of the docs is :1
240424-13:27:44.964174 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Primary sync , update global root version to tmp list
240424-13:27:44.964249 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Added 2 mp entries To tmp List
240424-13:27:44.964318 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: node is pointing to temp->name root temp->version 4185550430 temp->status pending temp->error_details none
240424-13:27:44.964384 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: node is pointing to temp->name lan temp->version 3259977430 temp->status pending_apply temp->error_details none
240424-13:27:44.964459 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: doc lan is updated to version 3259977430 status pending error_details none error_code 0 trans_id 0 temp->retry_count 0
240424-13:27:44.964741 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: subdoc_name: lan, version: 3259977430, transaction_id: 54363
240424-13:27:44.964874 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: doc lan is updated to version 3259977430 status pending error_details none error_code 0 trans_id 54363 temp->retry_count 0
240424-13:27:44.964944 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Request:> param[0].name = Device.DHCPv4.Server.Lan, type = 5
240424-13:27:44.969342 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received msg lan,54363,3259977430,ACK,13 from topic webconfigSignal
240424-13:27:44.969469 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received webconfig event signal Info lan,54363,3259977430,ACK,13
  • At this point Ccsp component will receive data from webconfig client and apply the settings in subdoc
240424-13:27:44.967384 [mod=PAM, lvl=WARN] [tid=1450] MSGPACK_UNPACK_SUCCESS :2
240424-13:27:44.967475 [mod=PAM, lvl=WARN] [tid=1450] pLanInfo->entries_count is 1
240424-13:27:44.967541 [mod=PAM, lvl=WARN] [tid=1450] pLanInfo->subdoc_name is lan
240424-13:27:44.967608 [mod=PAM, lvl=WARN] [tid=1450] pLanInfo->version is 3259977430
240424-13:27:44.967673 [mod=PAM, lvl=WARN] [tid=1450] pLanInfo->transaction_id is 54363
240424-13:27:44.967736 [mod=PAM, lvl=WARN] [tid=1450] Lan configuration received
240424-13:27:44.967808 [mod=PAM, lvl=INFO] [tid=1450] PushBlobRequest : subdoc_name lan , txid 54363, version 3259977430 , entries 1
240424-13:27:44.967880 [mod=PAM, lvl=INFO] [tid=1450] Inside FUNC checkNewVersionUpdateRequired LINE 1244
240424-13:27:44.967954 [mod=PAM, lvl=INFO] [tid=1450] checkIfVersionExecInQueue : Queue Empty
240424-13:27:44.968020 [mod=PAM, lvl=INFO] [tid=1450] New version available , prcessing new Blob request
240424-13:27:44.968118 [mod=PAM, lvl=INFO] [tid=1450] calculateTimeout is NULL , using default timeout routine
240424-13:27:44.968187 [mod=PAM, lvl=INFO] [tid=1450] PushBlobRequest timeout received from calcTimeout is 13
240424-13:27:44.968256 [mod=PAM, lvl=INFO] [tid=1450] getPendingQueueTimeout : Queue Empty
240424-13:27:44.968328 [mod=PAM, lvl=INFO] [tid=1450] PushBlobRequest : Send received request ACK , timeout is 13
240424-13:27:44.968401 [mod=PAM, lvl=INFO] [tid=1450] send_ACK : doc name lan , doc version 3259977430, txid is 54363  timeout is 13
240424-13:27:44.968475 [mod=PAM, lvl=INFO] [tid=1450] isWebCfgRbusEnabled: rbus enabled is 1
240424-13:27:44.968541 [mod=PAM, lvl=INFO] [tid=1450] sendWebConfigSignal : rbus_set :: event_name : webconfigSignal ::
240424-13:27:44.970653 [mod=PAM, lvl=INFO] [tid=1817] Received event
240424-13:27:44.971039 [mod=PAM, lvl=INFO] [tid=13977] Inside FUNC execute_request LINE 854
240424-13:27:44.971057 [mod=PAM, lvl=WARN] [tid=1450] PushBlobRequest complete
240424-13:27:44.971258 [mod=PAM, lvl=WARN] [tid=1450] Before committing:Device.DHCPv4.Server.
240424-13:27:44.971332 [mod=PAM, lvl=WARN] [tid=1450] After committing:Device.DHCPv4.Server.:0
240424-13:27:44.972710 [mod=PAM, lvl=WARN] [tid=13977]  Dhcpv4_Reset_Cache done
240424-13:27:44.972794 [mod=PAM, lvl=WARN] [tid=13977] CheckIpIsValid:IpAddressReceivedIs:10.0.0.1
240424-13:27:44.972859 [mod=PAM, lvl=WARN] [tid=13977] CheckIpIsValid:IpAddressReceivedIs:10.0.0.20
240424-13:27:44.972919 [mod=PAM, lvl=WARN] [tid=13977] CheckIpIsValid:IpAddressReceivedIs:10.0.0.50
240424-13:27:44.972986 [mod=PAM, lvl=WARN] [tid=13977] Dhcpv4_Lan_Ip_IsInPrivate_Blocked_AddrRange:addr:a000001
240424-13:27:44.973102 [mod=PAM, lvl=WARN] [tid=13977]  Entering Dhcpv4_Lan_BackupFromDb
240424-13:27:44.977168 [mod=PAM, lvl=WARN] [tid=13977]  Dhcpv4_Cache_ApplyAllToDb line.no 328 numOfParam 6
240424-13:27:44.981057 [mod=PAM, lvl=WARN] [tid=13977]  Dhcpv4_Cache_ApplyAllToDb line.no 344 Success
  • Verify subdoc settings are applied to tr181 data model by doing regular dmcli get command
root@RaspberryPi-Gateway:~# dmcli eRT getv Device.DHCPv4.Server.Pool.1.
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.pam): Device.DHCPv4.Server.Pool.1.
Execution succeed.
Parameter    1 name: Device.DHCPv4.Server.Pool.1.Enable
               type:       bool,    value: false
Parameter    2 name: Device.DHCPv4.Server.Pool.1.X_CISCO_COM_TimeOffset
               type:        int,    value: 0
Parameter    3 name: Device.DHCPv4.Server.Pool.1.Status
               type:     string,    value: Disabled
Parameter    4 name: Device.DHCPv4.Server.Pool.1.Alias
               type:     string,    value: ServerPool-1
Parameter    5 name: Device.DHCPv4.Server.Pool.1.Order
               type:       uint,    value: 1
Parameter    6 name: Device.DHCPv4.Server.Pool.1.Interface
               type:     string,    value: Device.IP.Interface.4.
Parameter    7 name: Device.DHCPv4.Server.Pool.1.VendorClassID
               type:     string,    value:
Parameter    8 name: Device.DHCPv4.Server.Pool.1.VendorClassIDExclude
               type:       bool,    value: false
Parameter    9 name: Device.DHCPv4.Server.Pool.1.VendorClassIDMode
               type:     string,    value:
Parameter   10 name: Device.DHCPv4.Server.Pool.1.ClientID
               type:     string,    value:
Parameter   11 name: Device.DHCPv4.Server.Pool.1.ClientIDExclude
               type:       bool,    value: false
Parameter   12 name: Device.DHCPv4.Server.Pool.1.UserClassID
               type:     string,    value:
Parameter   13 name: Device.DHCPv4.Server.Pool.1.UserClassIDExclude
               type:       bool,    value: false
Parameter   14 name: Device.DHCPv4.Server.Pool.1.Chaddr
               type:     string,    value:
Parameter   15 name: Device.DHCPv4.Server.Pool.1.ChaddrMask
               type:     string,    value:
Parameter   16 name: Device.DHCPv4.Server.Pool.1.ChaddrExclude
               type:       bool,    value: false
Parameter   17 name: Device.DHCPv4.Server.Pool.1.MinAddress
               type:     string,    value: 10.0.0.20
Parameter   18 name: Device.DHCPv4.Server.Pool.1.MaxAddress
               type:     string,    value: 10.0.0.50
Parameter   19 name: Device.DHCPv4.Server.Pool.1.ReservedAddresses
               type:     string,    value:
Parameter   20 name: Device.DHCPv4.Server.Pool.1.SubnetMask
               type:     string,    value: 255.255.255.0
Parameter   21 name: Device.DHCPv4.Server.Pool.1.DNSServers
               type:     string,    value:
Parameter   22 name: Device.DHCPv4.Server.Pool.1.DNSServersEnabled
               type:       bool,    value: false
Parameter   23 name: Device.DHCPv4.Server.Pool.1.DomainName
               type:     string,    value: utopia.net
Parameter   24 name: Device.DHCPv4.Server.Pool.1.IPRouters
               type:     string,    value: 10.0.0.1
Parameter   25 name: Device.DHCPv4.Server.Pool.1.LeaseTime
               type:        int,    value: 3600
Parameter   26 name: Device.DHCPv4.Server.Pool.1.StaticAddressNumberOfEntries
               type:       uint,    value: 0
Parameter   27 name: Device.DHCPv4.Server.Pool.1.OptionNumberOfEntries
               type:       uint,    value: 1
Parameter   28 name: Device.DHCPv4.Server.Pool.1.ClientNumberOfEntries
               type:       uint,    value: 0
Parameter   29 name: Device.DHCPv4.Server.Pool.1.Option.1.Enable
               type:       bool,    value: true
Parameter   30 name: Device.DHCPv4.Server.Pool.1.Option.1.Alias
               type:     string,    value: Option1
Parameter   31 name: Device.DHCPv4.Server.Pool.1.Option.1.Tag
               type:       uint,    value: 6
Parameter   32 name: Device.DHCPv4.Server.Pool.1.Option.1.Value
               type:     string,    value: Value2


For Onewifi subdoc

  • Below results are pulled for "privatessid" subdoc with below values.
{
    "private_ssid_2g": {
        "SSID": "rdkm-ssid",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_ssid_5g": {
        "SSID": "rdkm-ssid-5",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_2g": {
        "Passphrase": "*****",
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal"
    },
    "private_security_5g": {
        "Passphrase": "*****",
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal"
    }
}


  • Set Webconfig settings as above  in Device.X_RDK_WebConfig.URL data model
  • Trigger Force Sync for root subdoc
  • Webconfig client will receive the response from server and parse the data and send to corresponding component
root@RaspberryPi-Gateway:~# dmcli eRT setv Device.X_RDK_WebConfig.ForceSync string root
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(webconfig): Device.X_RDK_WebConfig.ForceSync
Execution succeed.

root@RaspberryPi-Gateway:~# 240424-13:41:43.604510 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received poke request, proceed to parseForceSyncJson
240424-13:41:43.604651 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Force sync json parsed: [root]
240424-13:41:43.604700 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Trigger force sync
240424-13:41:43.604840 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: ForceSyncDoc root ForceSyncTransID.
240424-13:41:43.604913 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Proceed to execute_token_script function
240424-13:41:43.604995 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is initiated
240424-13:41:43.607217 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is executed
240424-13:41:43.619330 WEBCONFIG: read file script is called
240424-13:41:43.623620 WEBCONFIG: CURL_RESPONSE path is /tmp/.cURLresponse
240424-13:41:43.625621 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is success
240424-13:41:43.625722 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script is done
240424-13:41:43.625777 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Failed to read token from /etc/parodus/parodus_read_file.sh. Proceeding to create new token.
240424-13:41:43.625861 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is initiated
240424-13:41:43.626927 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is executed
240424-13:41:43.647493 WEBCONFIG: No /nvram/certs/devicecert_1.pk12 using static cert
240424-13:41:43.651592 WEBCONFIG: No /usr/bin/GetConfigFile to fetch /tmp/.cfgStaticxpki
240424-13:41:43.655631 WEBCONFIG: Failure configuration file missing
240424-13:41:43.657306 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: execute_token_script command is success
240424-13:41:43.657404 [mod=WEBCONFIG, lvl=ERROR] [tid=6167] WEBCONFIG: Failed to create new token
240424-13:41:43.657465 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: reboot reason is unknown
240424-13:41:43.657827 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: versionsList is NONE-REBOOT
240424-13:41:43.657890 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: version_header formed IF-NONE-MATCH:NONE-REBOOT,3259977430,2433379681
240424-13:41:43.657941 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: docList fetched root,lan,privatessid
240424-13:41:43.657991 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: schema_header formed Schema-Version: v1.0
240424-13:41:43.658039 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: supportedVersion fetched is NULL
240424-13:41:43.658087 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: supportedDocs_header formed X-System-Supported-Docs: 16777247,33554435,50331649,67108865,83886081,100663297,117440513,134217729,201326594,218103809
240424-13:41:43.658138 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: bootTime_header formed X-System-Boot-Time: 1713964800
240424-13:41:43.658189 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: FwVersion_header formed X-System-Firmware-Version: rdkb-generic-broadband-image_rdkb-2024q1-kirkstone_202404170531
240424-13:41:43.658239 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: status_header formed X-System-Status: Operational
240424-13:41:43.658291 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: currentTime_header formed X-System-Current-Time: 1713966103
240424-13:41:43.658340 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: systemReadyTime_header formed X-System-Ready-Time: 1713964909
240424-13:41:43.658449 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: uuid_header formed Transaction-ID: 76e243ed-f1a5-4c28-a0cb-24a9606aae12
240424-13:41:43.658500 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: productClass_header formed X-System-Product-Class: XB3
240424-13:41:43.658550 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: ModelName_header formed X-System-Model-Name: RPI
240424-13:41:43.658610 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: The get_global_supplementarySync() is 0
240424-13:41:43.662347 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Global set Webconfig URL:http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config
240424-13:41:43.662435 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Webconfig root ConfigURL is http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config?group_id=root,lan,privatessid
240424-13:41:43.662497 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: g_interface fetched is erouter0
240424-13:41:43.662557 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: curl Ip resolve option set as default mode
240424-13:41:44.770105 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: g_ETAG updated for primary sync is 3526226773
240424-13:41:44.770348 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: webConfig curl response 0 http_code 200
240424-13:41:44.770432 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: curl response Time: 1.1 seconds
240424-13:41:44.770514 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: ct is multipart/mixed; boundary=2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI, content_res is 0
240424-13:41:44.770580 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Content-Type is multipart/mixed. Valid
240424-13:41:44.771041 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Size of the docs is :1
240424-13:41:44.771153 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Primary sync , update global root version to tmp list
240424-13:41:44.771226 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Added 2 mp entries To tmp List
240424-13:41:44.771295 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: node is pointing to temp->name root temp->version 3526226773 temp->status pending temp->error_details none
240424-13:41:44.771361 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: node is pointing to temp->name privatessid temp->version 4155806053 temp->status pending_apply temp->error_details none
240424-13:41:44.771492 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: doc privatessid is updated to version 4155806053 status pending error_details none error_code 0 trans_id 0 temp->retry_count 0
240424-13:41:44.771777 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: subdoc_name: privatessid, version: 4155806053, transaction_id: 59566
240424-13:41:44.771915 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: doc privatessid is updated to version 4155806053 status pending error_details none error_code 0 trans_id 59566 temp->retry_count 0
240424-13:41:44.771985 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Request:> param[0].name = Device.WiFi.Private, type = 5
240424-13:41:44.776836 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received msg privatessid,59566,4155806053,ACK,90 from topic webconfigSignal
240424-13:41:44.776940 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received webconfig event signal Info privatessid,59566,4155806053,ACK,90
240424-13:41:44.777137 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: TIMEOUT EVENT: privatessid,59566,4155806053,ACK,90 (doc apply need time)
240424-13:41:44.777211 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: doc apply need time, start timer.
240424-13:41:44.777278 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: Timer list is empty
240424-13:41:44.777347 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: new_node->subdoc_name privatessid new_node->txid 59566 new_node->timeout 90 status 1 added to list
240424-13:41:44.777410 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: startWebcfgTimer success
240424-13:41:44.777631 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: dest is event:subdoc-report/privatessid/mac:<cpe_mac>/ack
240424-13:41:44.777720 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: stringifiedNotifyPayload is {"device_id":"mac:e45f01fb134b","namespace":"privatessid","application_status":"pending","timeout":90,"transaction_uuid":"76e243ed-f1a5-4c28-a0cb-24a9606aae12","version":"4155806053"}
240424-13:41:44.777975 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: Notification successfully sent to Webconfig.Upstream
240424-13:41:44.779256 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: The ret status for rbus_setMulti is 0
240424-13:41:44.779355 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: ccspRetStatus is 100
240424-13:41:44.779480 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: setValues success. ccspStatus : 100
240424-13:41:44.784885 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: The offset obtained from getTimeOffset is 0
240424-13:41:44.790344 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: The Maintenance Sync triggers at Thu 240425 00:30:21 in LTime
240424-13:41:44.790468 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: Maintenance sync start time in UTC is Thu 240425 00:30:21
240424-13:41:44.790520 [mod=WEBCONFIG, lvl=INFO] [tid=6167] WEBCONFIG: reset maintenanceSync to false
240424-13:41:44.794818 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received msg privatessid,59566,4155806053,ACK,0 from topic webconfigSignal
240424-13:41:44.794915 [mod=WEBCONFIG, lvl=INFO] [tid=5745] WEBCONFIG: Received webconfig event signal Info privatessid,59566,4155806053,ACK,0
240424-13:41:44.795129 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: ACK EVENT: privatessid,59566,4155806053,ACK,0 (doc apply success)
240424-13:41:44.795199 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: doc apply success, proceed to add to DB
240424-13:41:44.795257 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: doc privatessid is updated to version 4155806053 status success error_details none error_code 0 trans_id 59566 temp->retry_count 0
240424-13:41:44.795347 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: doc root is updated to version 3526226773 status success error_details none error_code 0 trans_id 0 temp->retry_count 0
240424-13:41:44.795575 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: dest is event:subdoc-report/privatessid/mac:<cpe_mac>/status
240424-13:41:44.795677 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: stringifiedNotifyPayload is {"device_id":"mac:e45f01fb134b","namespace":"privatessid","application_status":"success","transaction_uuid":"76e243ed-f1a5-4c28-a0cb-24a9606aae12","version":"4155806053"}
240424-13:41:44.795888 [mod=WEBCONFIG, lvl=INFO] [tid=6168] WEBCONFIG: Notification successfully sent to Webconfig.Upstream
240424-13:41:44.795938 [mod=WEBCONFIG, lvl=INFO] [tid=6172] WEBCONFIG: Tmp list root doc delete is required


  • Check Onewifi debug logs to verify subdoc data parsing, below log is captured from /tmp/wifiCtrl log file
[OneWifi] 240424-13:41:44.774300<D>  get_private_vap Rbus property=Device.WiFi.Private
[OneWifi] 240424-13:41:44.774457<D>  get_private_vap Rbus set string len=496, str:
h69wcml2YXRlX3NzaWRfMmeDpFNTSUSrcmRrbS1zc2lkLTSmRW5hYmxlw7hTU0lEQWR2ZXJ0aXNlbWVudEVuYWJsZWTDr3ByaXZhdGVfc3NpZF81Z4OkU1NJRKtyZGttLXNzaWQtNaZFbmFibGXDuFNTSURBZHZlcnRpc2VtZW50RW5hYmxlZMOzcHJpdmF0ZV9zZWN1cml0eV8yZ4OqUGFzc3BocmFzZalyZGttQDEyMzSwRW5jcnlwdGlvbk1ldGhvZKNBRVOrTW9kZUVuYWJsZWStV1BBMi1QZXJzb25hbLNwcml2YXRlX3NlY3VyaXR5XzVng6pQYXNzcGhyYXNlqXJka21AMTIzNLBFbmNyeXB0aW9uTWV0aG9ko0FFU6tNb2RlRW5hYmxlZK1XUEEyLVBlcnNvbmFsq3N1YmRvY19uYW1lq3ByaXZhdGVzc2lkp3ZlcnNpb27O97SRZa50cmFuc2FjdGlvbl9pZM3orn==
[OneWifi] 240424-13:41:44.775118<D>  webconf_ver_txn, ver: 4155806053, txn: 59566
[OneWifi] 240424-13:41:44.777870<I>  webconf_process_private_vap:3604: PushBlobRequest Complete
[OneWifi] 240424-13:41:44.788504<D>  update_vap_info: parsing private_ssid_2g and private_security_2g blob
[OneWifi] 240424-13:41:44.788673<I>  SSID blob:
[OneWifi] 240424-13:41:44.788772<I>     "SSID": rdkm-ssid-4
[OneWifi] 240424-13:41:44.788864<I>  Enter validate_private_home_ssid_param and ssid_name=rdkm-ssid-4
[OneWifi] 240424-13:41:44.788968<I>  validate_private_home_ssid_param: ssidparam validation passed
[OneWifi] 240424-13:41:44.789070<I>     "Enable": true
[OneWifi] 240424-13:41:44.789164<I>     "SSIDAdvertisementEnabled": true
[OneWifi] 240424-13:41:44.789263<I>  Security blob:
[OneWifi] 240424-13:41:44.789355<I>     "Passphrase": <Masked>
[OneWifi] 240424-13:41:44.789453<I>     "EncryptionMethod": AES
[OneWifi] 240424-13:41:44.789548<I>     "ModeEnabled": WPA2-Personal
[OneWifi] 240424-13:41:44.789664<I>  Enter validate_private_home_security_param mode_enabled=WPA2-Personal,encryption_method=AES
[OneWifi] 240424-13:41:44.789761<I>  validate_private_home_security_param: securityparam validation passed
[OneWifi] 240424-13:41:44.789899<D>  update_vap_info: parsing private_ssid_5g and private_security_5g blob
[OneWifi] 240424-13:41:44.790009<I>  SSID blob:
[OneWifi] 240424-13:41:44.790107<I>     "SSID": rdkm-ssid-5
[OneWifi] 240424-13:41:44.790198<I>  Enter validate_private_home_ssid_param and ssid_name=rdkm-ssid-5
[OneWifi] 240424-13:41:44.790288<I>  validate_private_home_ssid_param: ssidparam validation passed
[OneWifi] 240424-13:41:44.790386<I>     "Enable": true
[OneWifi] 240424-13:41:44.790476<I>     "SSIDAdvertisementEnabled": true
[OneWifi] 240424-13:41:44.790554<I>  Security blob:
[OneWifi] 240424-13:41:44.790639<I>     "Passphrase": <Masked>
[OneWifi] 240424-13:41:44.790717<I>     "EncryptionMethod": AES
[OneWifi] 240424-13:41:44.790797<I>     "ModeEnabled": WPA2-Personal
[OneWifi] 240424-13:41:44.790879<I>  Enter validate_private_home_security_param mode_enabled=WPA2-Personal,encryption_method=AES
[OneWifi] 240424-13:41:44.790957<I>  validate_private_home_security_param: securityparam validation passed
[OneWifi] 240424-13:41:44.793120<I>  CONFIG_WIFI=0 is_factory_reset_done=-1 fun captive_portal_check
[OneWifi] 240424-13:41:44.793228<I>  FactoryReset is not done and captive portal customization already done fun captive_portal_check return
[OneWifi] 240424-13:41:44.793418<D>  push_blob_data:3345: Encoded blob:


  • Verify subdoc settings are applied to tr181 data model by doing regular dmcli get command
root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.SSID.1.SSID
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.SSID.1.SSID
Execution succeed.
Parameter    1 name: Device.WiFi.SSID.1.SSID
               type:     string,    value: rdkm-ssid-4

root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.SSID.2.SSID
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.SSID.2.SSID
Execution succeed.
Parameter    1 name: Device.WiFi.SSID.2.SSID
               type:     string,    value: rdkm-ssid-5

root@RaspberryPi-Gateway:~#
root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.AccessPoint.1.Security.KeyPassphrase
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.AccessPoint.1.Security.KeyPassphrase
Execution succeed.
Parameter    1 name: Device.WiFi.AccessPoint.1.Security.KeyPassphrase
               type:     string,    value: *****

root@RaspberryPi-Gateway:~#
root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.AccessPoint.2.Security.KeyPassphrase
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.AccessPoint.2.Security.KeyPassphrase
Execution succeed.
Parameter    1 name: Device.WiFi.AccessPoint.2.Security.KeyPassphrase
               type:     string,    value: *****

root@RaspberryPi-Gateway:~#
root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.AccessPoint.1.Security.ModeEnabled
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.AccessPoint.1.Security.ModeEnabled
Execution succeed.
Parameter    1 name: Device.WiFi.AccessPoint.1.Security.ModeEnabled
               type:     string,    value: WPA2-Personal

root@RaspberryPi-Gateway:~# dmcli eRT getv Device.WiFi.AccessPoint.2.Security.ModeEnabled
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.wifi): Device.WiFi.AccessPoint.2.Security.ModeEnabled
Execution succeed.
Parameter    1 name: Device.WiFi.AccessPoint.2.Security.ModeEnabled
               type:     string,    value: WPA2-Personal

root@RaspberryPi-Gateway:~#


RDK-B Device Reboot Sync


root@RaspberryPi-Gateway:~# cat /rdklogs/logs/WEBCONFIGlog.txt.0 CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(webconfig): Device.X_RDK_WebConfig.ForceSync
Execution succeed.

root@RaspberryPi-Gateway:~# 230518-19:59:56.595249 [mod=WEBCONFIG, lvl=INFO] [tid=5737] WEBCONFIG: Received poke request, proceed to parseForceSyncJson
230518-19:59:56.595416 [mod=WEBCONFIG, lvl=INFO] [tid=5737] WEBCONFIG: Force sync json parsed: [privatessid]
230518-19:59:56.595493 [mod=WEBCONFIG, lvl=INFO] [tid=5737] WEBCONFIG: Trigger force sync
230518-19:59:56.595644 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: ForceSyncDoc privatessid ForceSyncTransID.
230518-19:59:56.622941 WEBCONFIG: read file script is called
230518-19:59:56.631238 WEBCONFIG: CURL_RESPONSE path is /tmp/.cURLresponse
230518-19:59:56.634573 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: Failed to read token from /etc/parodus/parodus_read_file.sh. Proceeding to create new token.
230518-19:59:56.670815 WEBCONFIG: No /nvram/certs/devicecert_1.pk12 using static cert
230518-19:59:56.680418 WEBCONFIG: No /usr/bin/GetConfigFile to fetch /tmp/.cfgStaticxpki
230518-19:59:56.689169 WEBCONFIG: Failure configuration file missing
230518-19:59:56.691845 [mod=WEBCONFIG, lvl=ERROR] [tid=5878] WEBCONFIG: Failed to create new token
230518-19:59:56.691963 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: reboot reason is unknown
230518-19:59:56.692087 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: versionsList is NONE-REBOOT
230518-19:59:56.692158 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: version_header formed IF-NONE-MATCH:NONE-REBOOT
230518-19:59:56.692225 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: schema_header formed Schema-Version: v1.0
230518-19:59:56.692289 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: supportedVersion fetched is NULL
230518-19:59:56.692352 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: supportedDocs_header formed X-System-Supported-Docs: 16777247,33554435,50331649,67108865,83886081,100663297,117440513,134217729,201326594,218103809,251658241
230518-19:59:56.692427 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: bootTime_header formed X-System-Boot-Time: 1684439782
230518-19:59:56.692494 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: FwVersion_header formed X-System-Firmware-Version: rdkb-generic-broadband-image_rdk-next_20230511162210
230518-19:59:56.692560 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: status_header formed X-System-Status: Operational
230518-19:59:56.692631 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: currentTime_header formed X-System-Current-Time: 1684439996
230518-19:59:56.692697 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: systemReadyTime_header formed X-System-Ready-Time: 1684439892
230518-19:59:56.692827 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: uuid_header formed Transaction-ID: 825e8635-2f91-4bcf-88d7-97c92b588e40
230518-19:59:56.692894 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: productClass_header formed X-System-Product-Class: XB3
230518-19:59:56.692963 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: ModelName_header formed X-System-Model-Name: RPI
230518-19:59:56.693028 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: The get_global_supplementarySync() is 0
230518-19:59:56.697086 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: docList is root
230518-19:59:56.697189 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: Webconfig root ConfigURL is http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config?group_id=root
230518-19:59:56.697265 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: g_interface fetched is erouter0
230518-19:59:56.697343 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: curl Ip resolve option set as default mode
230518-19:59:57.023404 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: g_ETAG updated for primary sync is 1883965250
230518-19:59:57.023608 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: webConfig curl response 0 http_code 200
230518-19:59:57.023767 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: curl response Time: 0.3 seconds
230518-19:59:57.023847 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: ct is multipart/mixed; boundary=2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI, content_res is 0
230518-19:59:57.023912 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: Content-Type is multipart/mixed. Valid
230518-19:59:57.024303 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: Size of the docs is :1
230518-19:59:57.024415 [mod=WEBCONFIG, lvl=ERROR] [tid=5878] WEBCONFIG: Multipart list is empty
230518-19:59:57.024518 [mod=WEBCONFIG, lvl=INFO] [tid=5879] WEBCONFIG: dest is event:subdoc-report/privatessid/mac:<cpe_mac>/status
230518-19:59:57.024638 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: The Maintenance Sync triggers at Fri 230519 02:01:29
230518-19:59:57.024728 [mod=WEBCONFIG, lvl=INFO] [tid=5879] WEBCONFIG: stringifiedNotifyPayload is {"device_id":"mac:e45f0156ff0e","namespace":"privatessid","application_status":"failed","error_code":311,"error_details":"multipart_cache_NULL","transaction_uuid":"unknown","version":"0"}
230518-19:59:57.024792 [mod=WEBCONFIG, lvl=INFO] [tid=5878] WEBCONFIG: reset maintenanceSync to false
230518-19:59:57.025021 [mod=WEBCONFIG, lvl=INFO] [tid=5879] WEBCONFIG: Notification successfully sent to Webconfig.Upstream
[  216.048167] sh[9497]: device wlan0 is already a member of a bridge; can't enslave it to bridge brlan0.
[  216.074517] sh[9498]: interface wlan1 does not exist!
[  226.262396] sh[10157]: device wlan0 is already a member of a bridge; can't enslave it to bridge brlan0.
[  226.289465] sh[10158]: interface wlan1 does not exist!
[  236.478289] sh[10362]: device wlan0 is already a member of a bridge; can't enslave it to bridge brlan0.
[  236.503898] sh[10363]: interface wlan1 does not exist!
[  239.775543] audit: type=1701 audit(1684440023.027:82): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=10420 comm="irq0" exe="/home/root/irq0" sig=11 res=1
[  239.807159] audit: type=1701 audit(1684440023.057

RDK-B Supplementary Sync

  • Add a multi profile for CPE in RDKM Xconf server
  • Make sure telemetry service is running in device
  • Set the Webconfig Spplementary URL same as X_RDK_WebConfig.URL
    Parameter    8 name: Device.X_RDK_WebConfig.SupplementaryServiceUrls.Telemetry
                   type:     string,    value: http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config
  • Telemetry Profile Sync - Run below dmcli command

    root@RaspberryPi-Gateway:~# dmcli eRT setv Device.X_RDK_WebConfig.ForceSync string telemetry
    CR component name is: eRT.com.cisco.spvtg.ccsp.CR
    subsystem_prefix eRT.
    setv from/to component(webconfig): Device.X_RDK_WebConfig.ForceSync
    Execution succeed.
    
    root@RaspberryPi-Gateway:~# 240425-11:57:36.471110 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Received poke request, proceed to parseForceSyncJson
    240425-11:57:36.471251 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Force sync json parsed: [telemetry]
    240425-11:57:36.471301 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Trigger force sync
    240425-11:57:36.471459 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: ForceSyncDoc telemetry ForceSyncTransID.
    240425-11:57:36.471512 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Received supplementary poke request for telemetry
    240425-11:57:36.471580 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Proceed to execute_token_script function
    240425-11:57:36.471658 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is initiated
    240425-11:57:36.472778 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is executed
    240425-11:57:36.484814 WEBCONFIG: read file script is called
    240425-11:57:36.488454 WEBCONFIG: CURL_RESPONSE path is /tmp/.cURLresponse
    240425-11:57:36.490083 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is success
    240425-11:57:36.490180 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script is done
    240425-11:57:36.490233 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Failed to read token from /etc/parodus/parodus_read_file.sh. Proceeding to create new token.
    240425-11:57:36.490321 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is initiated
    240425-11:57:36.491420 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is executed
    240425-11:57:36.511044 WEBCONFIG: No /nvram/certs/devicecert_1.pk12 using static cert
    240425-11:57:36.514614 WEBCONFIG: No /usr/bin/GetConfigFile to fetch /tmp/.cfgStaticxpki
    240425-11:57:36.518288 WEBCONFIG: Failure configuration file missing
    240425-11:57:36.519809 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: execute_token_script command is success
    240425-11:57:36.519897 [mod=WEBCONFIG, lvl=ERROR] [tid=12963] WEBCONFIG: Failed to create new token
    240425-11:57:36.519950 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: schema_header formed Schema-Version: v1.0
    240425-11:57:36.519995 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: supportedVersion fetched is NULL
    240425-11:57:36.520038 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: supportedDocs_header formed X-System-Supported-Docs: 16777247,33554435,50331649,67108865,83886081,100663297,117440513,134217729,201326594,218103809
    240425-11:57:36.520081 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: supplementaryDocs_header formed X-System-SupplementaryService-Sync: telemetry
    240425-11:57:36.520125 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: bootTime_header formed X-System-Boot-Time: 1714045766
    240425-11:57:36.520179 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: FwVersion_header formed X-System-Firmware-Version: rdkb-generic-broadband-image_rdkb-2024q1-kirkstone_202404170531
    240425-11:57:36.520236 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: status_header formed X-System-Status: Operational
    240425-11:57:36.520296 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: currentTime_header formed X-System-Current-Time: 1714046256
    240425-11:57:36.520370 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: systemReadyTime_header formed X-System-Ready-Time: 1714046050
    240425-11:57:36.520501 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: uuid_header formed Transaction-ID: 09730dea-a17a-44f0-8672-60c522543080
    240425-11:57:36.520560 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: productClass_header formed X-System-Product-Class: XB3
    240425-11:57:36.520616 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: ModelName_header formed X-System-Model-Name: RPI
    240425-11:57:36.520672 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: telemetryVersion_header formed X-System-Telemetry-Profile-Version: 2.0
    240425-11:57:36.520728 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: PartnerID_header formed X-System-PartnerID: RDKM
    240425-11:57:36.523292 [mod=WEBCONFIG, lvl=ERROR] [tid=12963] WEBCONFIG: Failed to get AccountID
    240425-11:57:36.523382 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: DeviceWanMac_header formed X-System-Wan-Mac: e45f01fb134b
    240425-11:57:36.523445 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: The get_global_supplementarySync() is 1
    240425-11:57:36.526942 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Global set Supplementary URL:http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config
    240425-11:57:36.527026 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Webconfig root ConfigURL is http://webconfig.rdkcentral.com:9007/api/v1/device/<cpe_mac>/config
    240425-11:57:36.527088 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: g_interface fetched is erouter0
    240425-11:57:36.527147 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: curl Ip resolve option set as default mode
    240425-11:57:37.279998 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: webConfig curl response 0 http_code 200
    240425-11:57:37.280156 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: curl response Time: 0.8 seconds
    240425-11:57:37.280243 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: ct is multipart/mixed; boundary=2xKIxjfJuErFW+hmNCwEoMoY8I+ECM9efrV6EI4efSSW9QjI, content_res is 0
    240425-11:57:37.280309 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Content-Type is multipart/mixed. Valid
    240425-11:57:37.280734 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Size of the docs is :1
    240425-11:57:37.280844 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Added 2 mp entries To tmp List
    240425-11:57:37.280914 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: node is pointing to temp->name root temp->version 0 temp->status pending temp->error_details none
    240425-11:57:37.280980 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: node is pointing to temp->name telemetry temp->version 1755879973 temp->status pending_apply temp->error_details none
    240425-11:57:37.281053 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: doc telemetry is updated to version 1755879973 status pending error_details none error_code 0 trans_id 0 temp->retry_count 0
    240425-11:57:37.281338 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: subdoc_name: telemetry, version: 1755879973, transaction_id: 18072
    240425-11:57:37.281530 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: doc telemetry is updated to version 1755879973 status pending error_details none error_code 0 trans_id 18072 temp->retry_count 0
    240425-11:57:37.281600 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Request:> param[0].name = Device.X_RDKCENTRAL-COM_T2.ReportProfilesMsgPack, type = 5
    240425-11:57:37.285333 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: The ret status for rbus_setMulti is 0
    240425-11:57:37.285560 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: ccspRetStatus is 100
    240425-11:57:37.285649 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: setValues success. ccspStatus : 100
    240425-11:57:37.285765 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Received msg telemetry,18072,1755879973,ACK,13 from topic webconfigSignal
    240425-11:57:37.286570 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Received webconfig event signal Info telemetry,18072,1755879973,ACK,13
    240425-11:57:37.289442 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: TIMEOUT EVENT: telemetry,18072,1755879973,ACK,13 (doc apply need time)
    240425-11:57:37.289554 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: doc apply need time, start timer.
    240425-11:57:37.289623 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: Timer list is empty
    240425-11:57:37.289691 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: new_node->subdoc_name telemetry new_node->txid 18072 new_node->timeout 13 status 1 added to list
    240425-11:57:37.289754 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: startWebcfgTimer success
    240425-11:57:37.289991 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: dest is event:subdoc-report/telemetry/mac:e45f01fb134b/ack
    240425-11:57:37.290085 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: stringifiedNotifyPayload is {"device_id":"mac:e45f01fb134b","namespace":"telemetry","application_status":"pending","timeout":13,"transaction_uuid":"09730dea-a17a-44f0-8672-60c522543080","version":"1755879973"}
    240425-11:57:37.291339 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: Notification successfully sent to Webconfig.Upstream
    240425-11:57:37.292186 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: The offset obtained from getTimeOffset is 0
    240425-11:57:37.296886 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: The Maintenance Sync triggers at Fri 240426 01:37:22 in LTime
    240425-11:57:37.297004 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: Maintenance sync start time in UTC is Fri 240426 01:37:22
    240425-11:57:37.297064 [mod=WEBCONFIG, lvl=INFO] [tid=12963] WEBCONFIG: reset maintenanceSync to false
    240425-11:57:37.315740 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Received msg telemetry,18072,1755879973,ACK,0 from topic webconfigSignal
    240425-11:57:37.315855 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Received webconfig event signal Info telemetry,18072,1755879973,ACK,0
    240425-11:57:37.315964 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: ACK EVENT: telemetry,18072,1755879973,ACK,0 (doc apply success)
    240425-11:57:37.316020 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: doc apply success, proceed to add to DB
    240425-11:57:37.316072 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: doc telemetry is updated to version 1755879973 status success error_details none error_code 0 trans_id 18072 temp->retry_count 0
    240425-11:57:37.316133 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: No DB update for supplementary sync as version is not required to be stored.
    240425-11:57:37.316178 [mod=WEBCONFIG, lvl=INFO] [tid=12968] WEBCONFIG: Tmp list root doc delete is required
    240425-11:57:37.316186 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: dest is event:subdoc-report/telemetry/mac:<cpe_mac>/status
    240425-11:57:37.316313 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: stringifiedNotifyPayload is {"device_id":"mac:<cpe_mac>","namespace":"telemetry","application_status":"success","transaction_uuid":"09730dea-a17a-44f0-8672-60c522543080","version":"1755879973"}
    240425-11:57:37.316483 [mod=WEBCONFIG, lvl=INFO] [tid=12964] WEBCONFIG: Notification successfully sent to Webconfig.Upstream
    240425-11:57:57.625014 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: psm_get success ret 0 for parameter Device.X_RDK_WebConfig.RfcEnable and value true
    240425-11:57:57.625140 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: base64 decoded data containing 160 bytes
    240425-11:57:57.625221 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Blob bd->entries[0].name root, version: 3526226773, status: success, error_details: none, error_code: 0
    240425-11:57:57.625268 [mod=WEBCONFIG, lvl=INFO] [tid=11897] WEBCONFIG: Blob bd->entries[1].name privatessid, version: 4155806053, status: success, error_details: none, error_code: 0


  • Check profile download detail in telemetry log
    240425-11:57:37.291203 [mod=T2, lvl=INFO] [tid=15671] Number of report profiles in current configuration is 1
    240425-11:57:37.291340 [mod=T2, lvl=INFO] [tid=15671] rbuscore.c:2326 RBus Enabled
    
    240425-11:57:37.291515 [mod=T2, lvl=INFO] [tid=15671] rbuscore.c:2326 RBus Enabled
    
    240425-11:57:37.291633 [mod=T2, lvl=INFO] [tid=15671] No data elements present to unregister240425-11:57:37.294903 [mod=T2, lvl=INFO] [tid=15671] Starting TimeoutThread for profile : RDKM_webconfig
    240425-11:57:37.296052 [mod=T2, lvl=INFO] [tid=15671] Successfully enabled profile : RDKM_webconfig
    240425-11:57:37.296193 [mod=T2, lvl=INFO] [tid=15671] T2ER isn't initialized or dispatch thread is already running
    240425-11:57:37.296270 [mod=T2, lvl=INFO] [tid=15672] Waiting for 1800 sec for next TIMEOUT for profile as reporting interval is taken - RDKM_webconfig
    240425-11:57:37.296394 [mod=T2, lvl=INFO] [tid=15672] Waiting for timeref or reporting interval for the profile - RDKM_webconfig is started
    240425-11:57:37.305400 [mod=T2, lvl=INFO] [tid=15671] rbuscore.c:2326 RBus Enabled
    
    



Write Data To DB

Test Application

Running a flash based web application - http://webconfig.rdkcentral.com:9008/

User can enter device and subdoc detail to push the change to the webconfig server.

Sample subdoc and corresponding tr181


subdoc Id

TR181 Param
lanDevice.DHCPv4.Server.Lan
privatessidDevice.WiFi.Private
portforwardingDevice.NAT.X_RDK_PortMapping.Data



REST API

Http REST API to push config to Webconfig server 

curl -s -i "http://webconfig.rdkcentral.com:9008/api/v1/device/<MAC Address>/document/<subdoc_id>?param_name=<TR181 DM>" -H 'Content-type: application/json' --data '<subdoc json data> -X POST 

Example:

curl -s -i "http://webconfig.rdkcentral.com:9008/api/v1/device/E45F0156FF0E/document/privatessid?param_name=Device.WiFi.Private" -H 'Content-type: application/json' --data '{
    "private_ssid_2g": {
        "SSID": "private_2_rdkm",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_2g": {
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal",
        "Passphrase": "*****"
    },
    "private_ssid_5g": {
        "SSID": "private_5_rdkm",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_5g": {
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal",
        "Passphrase": "*****"
    }
}' -X POST


Test Utility  ( Not Recommended )

** Note : Need Python 3.10.6

This utility binary will

  • generate the desired data for a specific subdoc and push it to server.
  • generated msgpack data will be pushed to the server which can be synced to RDK device using webconfig client.

create_webconfig_blo.pyc


Steps to follow –

  • Copy the exe to a folder
  • Create a json file with subdoc data in the same folder where the exe is present.

Sample data:

{

        "DhcpServerEnable": "True",

        "LanIPAddress": "10.0.0.1",

        "LanSubnetMask": "255.255.255.0",

        "DhcpStartIPAddress": "10.0.0.7",

        "DhcpEndIPAddress": "10.0.0.249",

        "LeaseTime": 3600

}


  • Run the exe with corresponding subdocType, Tr181 and MAC

Usage:

create_webconfig_blob.pyc <subdoc.json> <subdoc_type> <tr181> < eCM MAC>"

Example :

python3 create_webconfig_blob.pyc  lan.json "lan" "Device.DHCPv4.Server.Lan" "e45f0156ff0e"

python3 create_webconfig_blob.pyc  lan.json "privatessid" "Device.WiFi.Private" "e45f0156ff0e"

python3 create_webconfig_blob.pyc  lan.json "homessid" "Device.WiFi.Private" "e45f0156ff0e"

  • No labels

2 Comments

  1. Unknown User (sipra.s)   What is the URL you're using for Device.X_RDK_WebConfig.SupplementaryServiceUrls.Telemetry ? 

  2. Hi Unknown User (cfry) , we use RDKM Xconf  server for verification - https://xconf.rdkcentral.com:19092

    For the SupplementaryServiceUrls.Telemetry URL, we use the same value as  X_RDK_WebConfig.URL , as suggested by James.