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
    
    



Subdoc Definition

RDKB TR-181 ObjectSubDoc IdDataElementblob/schema

Device.WiFi.SSID.{i}.SSID

Device.WiFi.SSID.{i}.Enable

Device.WiFi.AccessPoint.{i}.SSIDAdvertisementEnabled


Device.WiFi.AccessPoint.{i}.Security.ModeEnabled

Device.WiFi.AccessPoint.{i}.Security.X_COMCAST-COM_KeyPassphrase

Device.WiFi.AccessPoint.{i}.Security.X_CISCO_COM_EncryptionMethod

privatessidDevice.WiFi.Private
{
    "private_ssid_2g": {
        "SSID": "private_2_rdkm",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_2g": {
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal",
        "Passphrase": "*****"  // ********* Mention proper passphrase as per WiFi component requirement
    },
    "private_ssid_5g": {
        "SSID": "private_5_rdkm",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_5g": {
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal",
        "Passphrase": "*****"  // ********* Mention proper passphrase as per WiFi component requirement
    }
}

Device.DHCPv4.Server.Enable

Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanIPAddress

Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanSubnetMask

Device.DHCPv4.Server.Pool.1.MinAddress

Device.DHCPv4.Server.Pool.1.MaxAddress

Device.DHCPv4.Server.Pool.1.LeaseTime

lan
Device.DHCPv4.Server.Lan
{
"lan" : {
"DhcpServerEnable": true,
"LanIPAddress" : "192.168.1.1",
"LanSubnetMask": "255.255.255.0",
"DhcpStartIPAddress": "192.168.1.3",
"DhcpEndIPAddress": "192.168.1.20",
"LeaseTime": 604800
}
}

Write Data To DB


  • Webconfig expects subdoc data to be encrypted as a stringified binary 
  • BLOB is msgpack wrapped as string. It is base64 encoded and sent over BUS
  • Below sample python code to upload data to DB for lan subdoc_id , for other subdoc_id, please refer above table to get the schema


import sys
import json
import msgpack


# Sample Json data for lan subdoc_id
subdoc = '{"lan":{"LanIPAddress":"10.0.0.1", "LanSubnetMask":"255.255.255.0", "DhcpServerEnable":true, "DhcpStartIPAddress":"10.0.0.28", "DhcpEndIPAddress":"10.0.0.251", "LeaseTime":3600}}'


if __name__ == '__main__':
   dict_data = json.loads(subdoc)
   
  ## Validate the data by loading to a json file
   with open('lan.json', 'w') as f:
       json.dump(subdoc, f, indent=4)

   subdoc_data = msgpack.packb(dict_data, use_bin_type=True)
   blob_data = {
        "parameters":[{"name":"Device.DHCPv4.Server.Lan",
        "value":subdoc_data,
        "dataType":12}]
   }

   packed_data = msgpack.packb(blob_data)
   with open('lan.msgpack', 'wb') as file:
      file.write(packed_data)

   #writeToDB for macAddr, replace the URL with vendor specific URL
   curl -s -i "http://webconfig.rdkcentral.com:9007/api/v1/device/<mac_addr>/document/lan" -H 'Content-type: application/msgpack' --data-binary @lan.msgpack -X POST 

Test Application


RDKM has a reference, flash based web application which helps to push data to RDKM server - http://webconfig.rdkcentral.com:9008/

User can directly use the web application or REST API mentioned in below section to 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

Exposed 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": "*****"  // ********* Mention proper passphrase as per WiFi component requirement
    },
    "private_ssid_5g": {
        "SSID": "private_5_rdkm",
        "Enable": true,
        "SSIDAdvertisementEnabled": true
    },
    "private_security_5g": {
        "EncryptionMethod": "AES",
        "ModeEnabled": "WPA2-Personal",
        "Passphrase": "*****"  // ********* Mention proper passphrase as per WiFi component requirement
    }
}' -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"

Docker Container

Running webconfig server setup in a container. 

docker-webconfig.tardocker-db.tardocker-compose.yml


  • Install docker-compose in target machine
  • Download the Docker images and the docker-compose yml file
  • The docker-db image is pulled from cassandra image from docker hub and also has other package installation and DB initialization script
  • The docker-webconfig contains application init script, config file and binary for RDKM setup
  • DB mount path /var/lib/cassandra
  • Run below commands
    docker load -i docker-db.tar
    docker load -i docker-webconfig.tar
    docker-compose up -d
  • Check docker logs to check the DB Init complete and start of application
      docker logs docker_webconfig | tail -4
webconfig table is not yet created - sleeping

webconfig table is not yet created - sleeping

webconfig group_config table created !!

##################### Start Application #############

  •  Access the webconfig container

        docker exec -it docker_webconfig /bin/bash

  • No labels

2 Comments

  1. user-52a93

    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.