Versions Compared

Key

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

...

  • 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"}]}}


...

3. Configuring the xconf server url

...

  • Parses the JSON response to extract all configuration parameters.

  • Updates TR-181 parameters by invoking 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.

  • After applying all parameters, the processor updates the stored hash and timestamp in the database. This allows future invocations to skip re-applying the same configuration.

...

5. tr181 Set and RFC API

  • 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.

...

6. tr69hostif Request Routing

tr69hostif uses the below files for storing the configuration:

  • The tr69hostif component routes incoming parameter requests based on their namespace or attributes:

    bsUpdate attribute presentBootstrap handlersHandles bootstrap get/set requests
    RFC namespaceRFC handlersManages parameters controlled by RFC
    Other (non-RFC) parametersProfile handlers

    Routed to profile-specific get/set implementations

...

7. Runtime Sources and Priority

  • Runtime Sources Overview
SourceBacking StoreOwnerPurpose
Persisted TR181 RFC override

...

/opt/secure/RFC/tr181store.iniRFC

...

/XConf apply pathXConf-applied parameter persistence
Persisted bootstrap value/opt/secure/RFC/bootstrap.ini

...

XBSStoreRFC or WebPA overrides
Device-specific bootstrap overlay/etc/partners_defaults_device.jsontr69hostif firmware defaultsDevice-specific defaults
Partner bootstrap defaults/etc/partners_defaults.json (partner section) - communitytr69hostif firmware defaultsPartner-specific firmware defaults
Generic steady-state bootstrap defaults/etc/partners_defaults.json (default section)tr69hostif firmware defaultsGeneric firmware defaults
Early-boot bootstrap defaults/etc/partners_defaults.json (default_boot section)tr69hostif firmware defaultsEarly-boot temporary profile
XML default valueMerged TR181 data modelwaldb / tr69hostif validation pathData model XML defaults
RFC fallback defaults/etc/rfcdefaults/*.ini and /tmp/rfcdefaults.iniRFC repo fallback pathRFC library fallback layer
  •  RFC Library Runtime Priority
PrioritySourceFile LocationUsed ByCondition
1Persisted XConf-applied value/opt/secure/RFC/tr181store.inilibtr181api::getParam()If key missing in live hostif
2Persisted bootstrap value/opt/secure/RFC/bootstrap.iniRFC libraryIf key missing in tr181store.ini
3RFC fallback default/tmp/rfcdefaults.ini (merged from /etc/rfcdefaults/*.ini)RFC libraryFinal fallback for TR181-style keys
N/ALegacy RFC variables/opt/secure/RFC/rfcVariable.iniRFC libraryFor legacy RFC_xxxx keys (non-dotted)

...

  • Bootstrap Runtime Priority (XBSStore via tr69hostif)
PrioritySourceSelection LogicFile Location
1Persisted RFC/WebPA overrideDirect lookup/opt/secure/RFC/bootstrap.ini
2aPartner section bootstrap defaultIf PartnerId known AND match found/etc/partners_defaults.json (partner section)
2bGeneric defaultIf PartnerId known BUT no match/etc/partners_defaults.json (default section)
2cEarly-boot defaultIf PartnerId NOT yet available/etc/partners_defaults.json (default_boot section)
3Device-specific overlayApplied over 2a/2b/2c/etc/partners_defaults_device.json
  • Combined Conceptual Priority (All Paths Union)
PrioritySourceScopeNotes
1Live hostif valueActive hostif GET pathHighest precedence if returned
2Persisted runtime overrideRFC/WebPA apply pathsXConf-applied values
3Persisted bootstrap valueBootstrap-backed keysRFC or WebPA overrides
4Effective bootstrap firmware defaultAll bootstrap-backed lookupsFrom partners_defaults_device.json overlay + selected section
5XML default valueLive hostif fallback pathsOnly when handler fails; uses dmParam.defaultValue
6/etc/rfcdefaults merged fallbackRFC-library fallback pathsFinal fallback; lowest precedence

8

6. tr69hostif Request Routing

  • The tr69hostif component routes incoming parameter requests based on their namespace or attributes:

    bsUpdate attribute presentBootstrap handlersHandles bootstrap get/set requests
    RFC namespaceRFC handlersManages parameters controlled by RFC
    Other (non-RFC) parametersProfile handlers

    Routed to profile-specific get/set implementations

...

. mTLS support

  • RDKE expects xconf connections to be secure. This expects RFC to use MTLS by default.
  • Support to add MTLS to RDKM xconf server is under investigation.
  • Until then, we are disabling MTLS support by not enabling rdkcertselector
    • mTLS is enabled in the RFC code when the macro LIBRDKCERTSELECTOR is defined.

...