Versions Compared

Key

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

...

3. Configuring the xconf server url

  • Usually the xconf server url is read from rfc.properties file. Since this is a generic file, community xconf server url is not set from here.
  • At startup (especially on first run or after device recovery), the code uses Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl to get the xconf url.
    • Bootstrap.XconfUrl is configured in tr69hostif/partners_defaults.json at main · rdkcentral/tr69hostif for specific partnerID.
      • If no partnerID is set, the value from "default_boot" is used.
      • If  partnerID is set, but not available in the partners_default.json, then "default" block is used.
      • If partnerID is set, and the corresponding partnerID is available in partners_default.json, then that partnerID block is used.
  • For community devices, partnerID is set as "community" from sysint-hal repository. Example for RPI: 
  • For Comcast devices, this is set from AuthService


  • If "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl" is unavailable or empty, the code falls back to reading the RFC xconf URL from the properties file—by default,rfc.properties.
  • The parameter read is "RFC_CONFIG_SERVER_URL="
  • Hence for testing purposes, update the rfc.properties file with the server url.

...

4. RFC Manager Processing

...

  • Example curl command sent from an RDK device to XConf:

...

  • Example response json received from XConf. This is stored in /tmp/rfc-parsed.txt as part of the curl request's response.

tbd

  • The file /tmp/rfc-parsed.txt is later parsed in the RFC script and the parsed output is stored in the same file and looks like below: 

...

{
  "featureControl": {
    "features": [
      {
        "name": "TC-NTP",
        "enable": true,
        "effectiveImmediate": true,
        "configData": {
          "tr181.Device.Time.NTPServer1": "time.google.com",
          "tr181.Device.Time.NTPServer2": "time1.google.com",
          "tr181.Device.Time.NTPServer3": "time2.google.com",
          "tr181.Device.Time.NTPServer4": "time3.google.com",

          "tr181.Device.Time.NTPServer5": "time4.google.com"
        },
        "featureInstance": "TC-NTP"
      }
    ]
  }
}

 

  • The tr181store.ini contains all the RFC namespace configuration that is configured at XConf. It also contains all the local RFC settings that are done using the "tr181 -s" command. bootstrap.ini contains all the bootstrap namespace configurations from XConf.
tbd

root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/tr181.list
TR181: Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable false
TR181: Device.Time.NTPServer1 time.google.com
TR181: Device.Time.NTPServer2 time1.google.com
TR181: Device.Time.NTPServer3 time2.google.com
TR181: Device.Time.NTPServer4 time3.google.com
TR181: Device.Time.NTPServer5 time4.google.com
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/rfcFeature.list
TC-NTP=true,
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/rfcVariable.ini
export RFC_ENABLE_TC-NTP=true
export RFC_TC-NTP_effectiveImmediate=true
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/tr181store.ini
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfUrl=https://xconf.rdkcentral.com/featureControl/getSettings
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash=18HWRXtCXc9e7oSb8M3AQ6sdA587hfs1V5
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector=prod
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable=false
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID=1234
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime=1764012977
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigChangeTime=1764012977
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/bootstrap.ini | grep NTP
Device.Time.NTPServer2=time1.google.com
Device.Time.NTPServer1=time.google.com
Device.Time.NTPServer5=time4.google.com
Device.Time.NTPServer4=time3.google.com
Device.Time.NTPServer3=time2.google.com
root@raspberrypi4-64-rdke:~#
root@raspberrypi4-64-rdke:~#



  • To force retrieving a new RFC configuration from XConf even when there is no change, invalidate the hash value with the below command.

tr181 -s -v invalidate Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash

Child pages

AUI Child Tabs

...