...
RFC Manager sends an HTTP request to the configured XConf URL, including key device identifiers:
STB MAC Address
Account ID
Partner ID
Firmware Version
| Code Block |
|---|
2026-09-01T14:50:24.096558 [INFO ] [read_RFCProperty][205] RFC name=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl,type=0,value=https://xconf.rdkcentral.com,status=0
2026-09-01T14:50:24.096601 [INFO ] XconfUrl: = https://xconf.rdkcentral.com, found after 1 attempts
2026-09-01T15:03:28.161794 [INFO ] [DownloadRuntimeFeatutres][2026] Xconf Request : [https://xconf.rdkcentral.com/featureControl/getSettings?estbMacAddress=E4%3A5F%3A01%3A56%3AF4%3A82&firmwareVersion=lib32-rdk-fullstack-image-RPI4-20260824125316&env=dev&model=RPI4&manufacturer=RaspberryPi&controllerId=2504&channelMapId=2345&VodId=15660&partnerId=community&osClass=&accountId=Unknown&Experience=X1&version=2] |
XConf uses these identifiers to locate the appropriate configuration and returns it as a JSON payload.
| Code Block |
|---|
251124-19:50:21.532196 [mod=RFCMGR, lvl=INFO] [tid=2157] [PreProcessJsonResponse][2018] Xconf Response: {"featureControl":{"features":[{"name":"TC-NTP","enable":true,"effectiveImmediate":true,"configData":{"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"},"featureInstance":"TC-NTP"}]}} |
...
...
Parses the JSON response to extract all configuration parameters.
tr181 set commands for each relevant RFC value.tr181 set uses RFC API which in turn calls the tr69hotif API to store these environment variables and TR-181 parameters.
...
The tr181 set commands internally call the RFC API to perform parameter get/set operations.
The RFC API communicates with the local HTTP server running within tr69hostif using HTTP GET or POSTrequests.
/opt/secure/RFC/rfcVariable.ini | RFC environment variables | Contains environment-level variables derived from RFC config |
/opt/secure/RFC/tr181store.ini | RFC namespace TR-181 parameters | Contains TR-181 parameters managed within the RFC namespace |
/opt/secure/RFC/bootstrap.ini | Bootstrap TR-181 parameters | Contains TR-181 parameters with the bsUpdate attribute |
| Profile-specific storage | Non-RFC TR-181 parameters | Managed by respective profile handlers with their own storage mechanism |
...
The tr69hostif component routes incoming parameter requests based on their namespace or attributes:
bsUpdate attribute present | Bootstrap handlers | Handles bootstrap get/set requests |
| RFC namespace | RFC handlers | Manages parameters controlled by RFC |
| Other (non-RFC) parameters | Profile handlers | Routed to profile-specific get/set implementations |
...
| Source | Backing Store | Owner | Purpose |
|---|---|---|---|
| Persisted TR181 RFC override | /opt/secure/RFC/tr181store.ini | RFC/XConf apply path | XConf-applied parameter persistence |
| Persisted bootstrap value | /opt/secure/RFC/bootstrap.ini | XBSStore | RFC or WebPA overrides |
| Device-specific bootstrap overlay | /etc/partners_defaults_device.json | tr69hostif firmware defaults | Device-specific defaults |
| Partner bootstrap defaults | /etc/partners_defaults.json (partner section) - community | tr69hostif firmware defaults | Partner-specific firmware defaults |
| Generic steady-state bootstrap defaults | /etc/partners_defaults.json (default section) | tr69hostif firmware defaults | Generic firmware defaults |
| Early-boot bootstrap defaults | /etc/partners_defaults.json (default_boot section) | tr69hostif firmware defaults | Early-boot temporary profile |
| XML default value | Merged TR181 data model | waldb / tr69hostif validation path | Data model XML defaults |
| RFC fallback defaults | /etc/rfcdefaults/*.ini and /tmp/rfcdefaults.ini | RFC repo fallback path | RFC library fallback layer |
| Priority | Source | File Location | Used By | Condition |
|---|---|---|---|---|
| 1 | Persisted XConf-applied value | /opt/secure/RFC/tr181store.ini | libtr181api::getParam() | If key missing in live hostif |
| 2 | Persisted bootstrap value | /opt/secure/RFC/bootstrap.ini | RFC library | If key missing in tr181store.ini |
| 3 | RFC fallback default | /tmp/rfcdefaults.ini (merged from /etc/rfcdefaults/*.ini) | RFC library | Final fallback for TR181-style keys |
| N/A | Legacy RFC variables | /opt/secure/RFC/rfcVariable.ini | RFC library | For legacy RFC_xxxx keys (non-dotted) |
...
| Priority | Source | Selection Logic | File Location |
|---|---|---|---|
| 1 | Persisted RFC/WebPA override | Direct lookup | /opt/secure/RFC/bootstrap.ini |
| 2a | Partner section bootstrap default | If PartnerId known AND match found | /etc/partners_defaults.json (partner section) |
| 2b | Generic default | If PartnerId known BUT no match | /etc/partners_defaults.json (default section) |
| 2c | Early-boot default | If PartnerId NOT yet available | /etc/partners_defaults.json (default_boot section) |
| 3 | Device-specific overlay | Applied over 2a/2b/2c | /etc/partners_defaults_device.json |
| Priority | Source | Scope | Notes |
|---|---|---|---|
| 1 | Live hostif value | Active hostif GET path | Highest precedence if returned |
| 2 | Persisted runtime override | RFC/WebPA apply paths | XConf-applied values |
| 3 | Persisted bootstrap value | Bootstrap-backed keys | RFC or WebPA overrides |
| 4 | Effective bootstrap firmware default | All bootstrap-backed lookups | From partners_defaults_device.json overlay + selected section |
| 5 | XML default value | Live hostif fallback paths | Only when handler fails; uses dmParam.defaultValue |
| 6 | /etc/rfcdefaults merged fallback | RFC-library fallback paths | Final fallback; lowest precedence |
LIBRDKCERTSELECTOR is defined....