RFC stands for RDK Feature Control.
It provides a mechanism to remotely enable, disable, or configure software features on RDK-based devices (CPEs).
RFC is primarily used by Release Management for controlled, staged rollouts of new features across production devices — ensuring stability and gradual deployment.
The RFC configuration process involves multiple RDK components working together to fetch, process, and apply configuration updates.
The flow is summarized below:
Periodically evaluates when to start the RFC task.
When conditions are met, it launches the RFC Manager to begin the configuration process.
RFC Manager sends an HTTP request to the configured XConf URL, including key device identifiers:
STB MAC Address
Account ID
Partner ID
Firmware Version
XConf uses these identifiers to locate the appropriate configuration and returns it as a JSON payload.
"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.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.
tr69hostif uses the below files for storing the configuration:
/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 |
LIBRDKCERTSELECTOR is defined.
|
{ "tr181.Device.Time.NTPServer5": "time4.google.com" |
root@raspberrypi4-64-rdke:~# cat /opt/secure/RFC/tr181.list |
|
Example for Rules Configured in XCONF server.
{
"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"
}
]
}
curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0","id":"3","method":"Controller.1.activate","params":{"callsign":"org.rdk.MaintenanceManager"}}' http://127.0.0.1:9998/jsonrpc
Maintanencemanager invocation is handling through UI side. For current validation, we are following this approach.
Logs can be found in /opt/logs/rfcscript.log
2025-11-24T19:50:19.631Z : /lib/rdk/Start_MaintenanceTasks.sh: Starting rfcMgr Binary
Conf file /etc/debug.ini open success
IARM_Bus_IsConnected invalid state
IARM_Init group name = com.comcast.rdk.iarm.bus member name = RDKVRFCMgrEvent
setting init done
Registering RDKVRFCMgrEvent
251124-19:50:20.157735 [mod=RFCMGR, lvl=INFO] [tid=2157] [main][98] RFC: Starting service, creating lock
251124-19:50:20.158094 [mod=RFCMGR, lvl=INFO] [tid=2157] [main][114] Waiting for IP Acquistion
251124-19:50:20.158161 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckDeviceIsOnline][319] Checking IP and Route configuration
251124-19:50:20.158240 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckIProuteConnectivity][218] Received Route Config file
251124-19:50:20.158366 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckIProuteConnectivity][231] ip address=IPV4 10.0.0.1
251124-19:50:20.158478 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckDeviceIsOnline][324] Checking IP and Route configuration found
251124-19:50:20.158519 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckDeviceIsOnline][325] Checking DNS Nameserver configuration
251124-19:50:20.158639 [mod=RFCMGR, lvl=INFO] [tid=2157] [CheckDeviceIsOnline][328] DNS Nameservers are available
251124-19:50:20.158681 [mod=RFCMGR, lvl=INFO] [tid=2157] [main][116] Starting execution of RFCManager
251124-19:50:20.158719 [mod=RFCMGR, lvl=INFO] [tid=2157] [main][120] RFC:Device is Online
251124-19:50:20.159064 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParameter: http server is ready
251124-19:50:20.168776 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Identity.DbgServices.Enable"]}, datalen = 82
251124-19:50:20.183114 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:20.183581 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Identity.DbgServices.Enable",
"value": "false",
"dataType": 3,
"parameterCount": 1,
"message": "Default Value"
}],
"statusCode": 38
}
251124-19:50:20.183783 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Identity.DbgServices.Enable,type=3,value=false,status=38
251124-19:50:20.183835 [mod=RFCMGR, lvl=INFO] [tid=2157] [isDebugServicesEnabled][144] rfc Debug services = false
251124-19:50:20.183903 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl"]}, datalen = 73
251124-19:50:20.190374 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:20.190747 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl",
"value": "https://xconf.rdkcentral.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:20.190865 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.XconfUrl,type=0,value=https://xconf.rdkcentral.com,status=0
251124-19:50:20.190907 [mod=RFCMGR, lvl=INFO] [tid=2157] XconfUrl: = https://xconf.rdkcentral.com, found after 1 attempts
251124-19:50:20.191418 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] getDevicePropertyData : Trying device property data for WHOAMI_SUPPORT and buf size=8
251124-19:50:20.191554 [mod=RFCMGR, lvl=ERROR] [tid=2157] [checkWhoamiSupport][125] Failed to get WHOAMI_SUPPORT property. Status: -1
251124-19:50:20.191610 [mod=RFCMGR, lvl=INFO] [tid=2157] GetRFCPartnerID: PartnerID = community
251124-19:50:20.192014 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doCurlInit: curl init success
251124-19:50:20.192071 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] getJsonRpcData : CURL: Setting For jsonrpc_auth_token
2025-11-24T19:50:20.361Z : /lib/rdk/Start_MaintenanceTasks.sh: RFC Task execution done
251124-19:50:20.441049 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] Curl Connected to http://127.0.0.1:9998/jsonrpc (127.0.0.1) port 9998
251124-19:50:20.441197 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] Curl return code =0, http code=202
251124-19:50:20.441243 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] In performRequest curl_ret_status =0
251124-19:50:20.441285 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] getJsonRpcData : Bytes Downloaded=95 and curl ret status=0 and http code=202
251124-19:50:20.441324 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] getJsonRpcData : data received ={"jsonrpc":"2.0","id":3,"error":{"code":-32603,"message":"Could not access requested service"}}
251124-19:50:20.441372 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doStopDownload : CURL: free resources
251124-19:50:20.443486 [mod=RFCMGR, lvl=INFO] [tid=2157] [GetLastProcessedFirmware][180] GetLastProcessedFirmware: [lib32-application-test-image-RPI4-20251030114955]
251124-19:50:20.443611 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID"]}, datalen = 84
251124-19:50:20.451777 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:20.454238 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID",
"value": "\"1234\"",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:20.454394 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID,type=0,value="1234",status=0
251124-19:50:20.454437 [mod=RFCMGR, lvl=INFO] [tid=2157] GetAccountID: AccountID = 1234
251124-19:50:20.454506 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] getDevicePropertyData : Trying device property data for WHOAMI_SUPPORT and buf size=8
251124-19:50:20.458095 [mod=RFCMGR, lvl=ERROR] [tid=2157] [checkWhoamiSupport][125] Failed to get WHOAMI_SUPPORT property. Status: -1
251124-19:50:20.490498 [mod=RFCMGR, lvl=INFO] [tid=2157] [ProcessRuntimeFeatureControlReq][1501] Setting URL from Bootstrap config XCONF_BS_URL:https://xconf.rdkcentral.com to https://xconf.rdkcentral.com/featureControl/getSettings
251124-19:50:20.592254 [mod=RFCMGR, lvl=INFO] [tid=2157] [CreateXconfHTTPUrl][1687] Encoding is enabled plain URL: https://xconf.rdkcentral.com/featureControl/getSettings?estbMacAddress=D8:3A:DD:0D:16:B7&firmwareVersion=lib32-application-test-image-RPI4-20251030114955&env=dev&model=RPI4&manufacturer=RaspberryPi&controllerId=2504&channelMapId=2345&VodId=15660&partnerId=community&osClass=&accountId=1234&Experience=X1&version=2
251124-19:50:20.592395 [mod=RFCMGR, lvl=INFO] [tid=2157] [DownloadRuntimeFeatutres][1879] Curl Initialized
251124-19:50:20.592440 [mod=RFCMGR, lvl=INFO] [tid=2157] [DownloadRuntimeFeatutres][1889] Xconf Request : [https://xconf.rdkcentral.com/featureControl/getSettings?estbMacAddress=D8%3A3A%3ADD%3A0D%3A16%3AB7&firmwareVersion=lib32-application-test-image-RPI4-20251030114955&env=dev&model=RPI4&manufacturer=RaspberryPi&controllerId=2504&channelMapId=2345&VodId=15660&partnerId=community&osClass=&accountId=1234&Experience=X1&version=2]
251124-19:50:20.592535 [mod=RFCMGR, lvl=INFO] [tid=2157] [GetStoredHashAndTime][1699] Last Image version lib32-application-test-image-RPI4-20251030114955 and current image version lib32-application-test-image-RPI4-20251030114955 are same
251124-19:50:20.592598 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector"]}, datalen = 76
251124-19:50:20.597822 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:20.598404 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector",
"value": "",
"dataType": 0,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:20.598537 [mod=RFCMGR, lvl=ERROR] [tid=2157] [read_RFCProperty][196] RFC Read status= 22
251124-19:50:20.598582 [mod=RFCMGR, lvl=INFO] [tid=2157] [GetStoredHashAndTime][1703] Received XconfSelector as Non Prod for RFC state as INIT
251124-19:50:20.598660 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doCurlInit: curl init success
251124-19:50:20.598716 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doHttpFileDownload : CURL: setCommonCurlOpt Success
251124-19:50:20.598762 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] urlHelperDownloadToMem: Header Data Request Set
251124-19:50:21.525408 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] Curl Connected to https://xconf.rdkcentral.com/featureControl/getSettings?estbMacAddress=D8%3A3A%3ADD%3A0D%3A16%3AB7&firmwareVersion=lib32-application-test-image-RPI4-20251030114955&env=dev&model=RPI4&manufacturer=RaspberryPi&controllerId=2504&channelMapId=2345&VodId=15660&partnerId=community&osClass=&accountId=1234&Experience=X1&version=2 (35.161.239.220) port 443
251124-19:50:21.525523 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] Curl return code =0, http code=200
251124-19:50:21.525566 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] In performRequest curl_ret_status =0
251124-19:50:21.525611 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doHttpFileDownload : After curl operation no of bytes Downloaded=465 and curl ret status=0 and http code=200
251124-19:50:21.525652 [mod=COMMONUTILITIES, lvl=INFO] [tid=2157] doStopDownload : CURL: free resources
251124-19:50:21.531572 [mod=RFCMGR, lvl=INFO] [tid=2157] [DownloadRuntimeFeatutres][1919] RFC Xconf Connection Response cURL Return : 0 HTTP Code : 200
251124-19:50:21.531723 [mod=RFCMGR, lvl=INFO] [tid=2157] [DownloadRuntimeFeatutres][1986] HTTP request success, Processing updated (200) response...
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"}]}}
251124-19:50:21.532366 [mod=RFCMGR, lvl=INFO] [tid=2157] [PreProcessJsonResponse][2026] First Xconf Request after reboot=0
251124-19:50:21.532421 [mod=RFCMGR, lvl=INFO] [tid=2157] [GetXconfSelect][2165] GetXconfSelect rfc_state: 1
251124-19:50:21.532499 [mod=RFCMGR, lvl=INFO] [tid=2157] [ProcessRuntimeFeatureControlReq][1542] Continue processing RFC response.
251124-19:50:21.532541 [mod=RFCMGR, lvl=INFO] [tid=2157] [ProcessJsonResponse][2210] 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"}]}}
251124-19:50:21.532878 [mod=RFCMGR, lvl=INFO] [tid=2157] [writeRemoteFeatureCntrlFile][2683] Writing export RFC_ENABLE_TC-NTP=true in file
251124-19:50:21.533085 [mod=RFCMGR, lvl=INFO] [tid=2157] [writeRemoteFeatureCntrlFile][2685] Writing export RFC_TC-NTP_effectiveImmediate=true in file
251124-19:50:21.533496 [mod=RFCMGR, lvl=INFO] [tid=2157] [writeRemoteFeatureCntrlFile][2683] Writing export RFC_ENABLE_TC-NTP=true in file
251124-19:50:21.533561 [mod=RFCMGR, lvl=INFO] [tid=2157] [writeRemoteFeatureCntrlFile][2685] Writing export RFC_TC-NTP_effectiveImmediate=true in file
251124-19:50:21.566174 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigChangeTime"]}, datalen = 79
251124-19:50:21.569456 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.569826 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigChangeTime",
"value": "",
"dataType": 2,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:21.570044 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigChangeTime","value":"1764013821","dataType":2}]}, datalen = 127
251124-19:50:21.573404 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.573723 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigChangeTime",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.581422 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable] Value[false]
251124-19:50:21.581485 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable"]}, datalen = 82
251124-19:50:21.584478 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.584973 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable",
"value": "true",
"dataType": 3,
"parameterCount": 1,
"message": "Default Value"
}],
"statusCode": 38
}
251124-19:50:21.585103 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable,type=3,value=true,status=38
251124-19:50:21.585361 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable"]}, datalen = 82
251124-19:50:21.587933 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.588290 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable",
"value": "true",
"dataType": 3,
"parameterCount": 1,
"message": "Default Value"
}],
"statusCode": 38
}
251124-19:50:21.588503 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable","value":"false","dataType":3}]}, datalen = 125
251124-19:50:21.591883 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.592222 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.592504 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable from value old=true, to new=false
251124-19:50:21.592856 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.Time.NTPServer1] Value[time.google.com]
251124-19:50:21.592949 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer1"]}, datalen = 38
251124-19:50:21.596136 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.596513 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer1",
"value": "time.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.596635 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.Time.NTPServer1,type=0,value=time.com,status=0
251124-19:50:21.596821 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer1"]}, datalen = 38
251124-19:50:21.599405 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.599784 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer1",
"value": "time.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.599948 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.Time.NTPServer1","value":"time.google.com","dataType":0}]}, datalen = 91
251124-19:50:21.606822 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.607209 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer1",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.607304 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.Time.NTPServer1 from value old=time.com, to new=time.google.com
251124-19:50:21.607486 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.Time.NTPServer2] Value[time1.google.com]
251124-19:50:21.607545 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer2"]}, datalen = 38
251124-19:50:21.614629 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.615060 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer2",
"value": "time1.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.615206 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.Time.NTPServer2,type=0,value=time1.com,status=0
251124-19:50:21.615467 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer2"]}, datalen = 38
251124-19:50:21.620132 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.620474 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer2",
"value": "time1.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.620623 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.Time.NTPServer2","value":"time1.google.com","dataType":0}]}, datalen = 92
251124-19:50:21.633568 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.633989 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer2",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.634084 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.Time.NTPServer2 from value old=time1.com, to new=time1.google.com
251124-19:50:21.634265 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.Time.NTPServer3] Value[time2.google.com]
251124-19:50:21.634324 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer3"]}, datalen = 38
251124-19:50:21.640410 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.640806 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer3",
"value": "time2.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.640915 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.Time.NTPServer3,type=0,value=time2.com,status=0
251124-19:50:21.641145 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer3"]}, datalen = 38
251124-19:50:21.650834 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.651269 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer3",
"value": "time2.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.651427 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.Time.NTPServer3","value":"time2.google.com","dataType":0}]}, datalen = 92
251124-19:50:21.656073 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.656404 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer3",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.656492 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.Time.NTPServer3 from value old=time2.com, to new=time2.google.com
251124-19:50:21.656671 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.Time.NTPServer4] Value[time3.google.com]
251124-19:50:21.656732 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer4"]}, datalen = 38
251124-19:50:21.668932 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.669343 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer4",
"value": "time3.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.669463 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.Time.NTPServer4,type=0,value=time3.com,status=0
251124-19:50:21.669686 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer4"]}, datalen = 38
251124-19:50:21.692565 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.695873 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer4",
"value": "time3.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.696079 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.Time.NTPServer4","value":"time3.google.com","dataType":0}]}, datalen = 92
251124-19:50:21.701129 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.701475 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer4",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.701561 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.Time.NTPServer4 from value old=time3.com, to new=time3.google.com
251124-19:50:21.701773 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2346] Feature Name [Device.Time.NTPServer5] Value[time4.google.com]
251124-19:50:21.701832 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer5"]}, datalen = 38
251124-19:50:21.705481 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.705822 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer5",
"value": "time4.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.705968 [mod=RFCMGR, lvl=INFO] [tid=2157] [read_RFCProperty][191] RFC name=Device.Time.NTPServer5,type=0,value=time4.com,status=0
251124-19:50:21.706201 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.Time.NTPServer5"]}, datalen = 38
251124-19:50:21.714389 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.714829 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer5",
"value": "time4.com",
"dataType": 0,
"parameterCount": 1,
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.714999 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.Time.NTPServer5","value":"time4.google.com","dataType":0}]}, datalen = 92
251124-19:50:21.726434 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.726840 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.Time.NTPServer5",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.726936 [mod=RFCMGR, lvl=INFO] [tid=2157] [processXconfResponseConfigDataPart][2378] updated for Device.Time.NTPServer5 from value old=time4.com, to new=time4.google.com
251124-19:50:21.727244 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TR069support.Enable false in file
251124-19:50:21.727403 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.Time.NTPServer1 time.google.com in file
251124-19:50:21.727464 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.Time.NTPServer2 time1.google.com in file
251124-19:50:21.727519 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.Time.NTPServer3 time2.google.com in file
251124-19:50:21.727575 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.Time.NTPServer4 time3.google.com in file
251124-19:50:21.727631 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateTR181File][2610] Writing TR181: Device.Time.NTPServer5 time4.google.com in file
251124-19:50:21.793660 [mod=RFCMGR, lvl=INFO] [tid=2157] [WriteFile][2658] Writing TC-NTP=true, in file
251124-19:50:21.799493 [mod=RFCMGR, lvl=INFO] [tid=2157] [Features Enabled]-[STAGING]: TC-NTP=true,
251124-19:50:21.922663 [mod=RFCMGR, lvl=INFO] [tid=2157] [WriteFile][2658] Writing lib32-application-test-image-RPI4-20251030114955 in file
251124-19:50:21.923149 [mod=RFCMGR, lvl=INFO] [tid=2157] [ProcessRuntimeFeatureControlReq][1559] RFC processing Successfully.
251124-19:50:21.923273 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateHashAndTimeInDB][1391] Xconf Header Response: HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Mon, 24 Nov 2025 19:52:45 GMT
Content-Type: application/json
Content-Length: 465
Connection: keep-alive
configSetHash: 18HWRXtCXc9e7oSb8M3AQ6sdA587hfs1V5
251124-19:50:21.923358 [mod=RFCMGR, lvl=INFO] [tid=2157] configSetHash value: 18HWRXtCXc9e7oSb8M3AQ6sdA587hfs1V5
251124-19:50:21.923403 [mod=RFCMGR, lvl=INFO] [tid=2157] [updateHashInDB][1338] Config Set Hash = 18HWRXtCXc9e7oSb8M3AQ6sdA587hfs1V5
251124-19:50:21.923474 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash"]}, datalen = 76
251124-19:50:21.927693 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.928230 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash",
"value": "",
"dataType": 0,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:21.928450 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash","value":"18HWRXtCXc9e7oSb8M3AQ6sdA587hfs1V5","dataType":0}]}, datalen = 148
251124-19:50:21.932450 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.932837 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.932963 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime"]}, datalen = 76
251124-19:50:21.936281 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.936713 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime",
"value": "",
"dataType": 2,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:21.936899 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime","value":"1764013821","dataType":2}]}, datalen = 124
251124-19:50:21.958438 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:21.959527 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:21.959817 [mod=RFCMGR, lvl=INFO] [tid=2157] [ProcessRuntimeFeatureControlReq][1570] COMPLETED RFC PASS
251124-19:50:22.016382 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector"]}, datalen = 76
251124-19:50:22.021613 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:22.022639 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector",
"value": "",
"dataType": 0,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:22.022826 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector","value":"prod","dataType":0}]}, datalen = 118
251124-19:50:22.029181 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:22.030447 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfSelector",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:22.030605 [mod=RFCAPI, lvl=INFO] [tid=2157] getRFCParam data = {"names" : ["Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfUrl"]}, datalen = 71
251124-19:50:22.036064 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:22.037277 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfUrl",
"value": "",
"dataType": 0,
"parameterCount": 1,
"message": "Parameter value field is not available"
}],
"message": "Parameter value field is not available",
"statusCode": 22
}
251124-19:50:22.037479 [mod=RFCAPI, lvl=INFO] [tid=2157] setRFCParam data = {"parameters" : [{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfUrl","value":"https://xconf.rdkcentral.com/featureControl/getSettings","dataType":0}]}, datalen = 164
251124-19:50:22.049489 [mod=RFCAPI, lvl=INFO] [tid=2157] curl response : 0 http response code: 200
251124-19:50:22.051164 [mod=RFCAPI, lvl=INFO] [tid=2157] Curl response: {
"parameters": [{
"name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.XconfUrl",
"message": "Success"
}],
"statusCode": 0
}
251124-19:50:22.056320 [mod=RFCMGR, lvl=INFO] [tid=2157] [RFCManagerProcess][423] RFC: Posting Reboot Required Event to MaintenanceMGR
RFC Settings for SNMPv3 is : true .
RFC Settings for SNMPv2 is : false .
251124-19:50:26.058890 [mod=RFCMGR, lvl=INFO] [tid=2157] [RFCManagerPostProcess][389] Script[/lib/rdk/iptables_init] Executed Successfully
251124-19:50:26.059012 [mod=RFCMGR, lvl=INFO] [tid=2157] [RFCManagerProcess][440] RFC:Post Processing Successfully Completed
251124-19:50:26.088553 [mod=RFCMGR, lvl=INFO] [tid=2157] [main][124] RFC:Xconf Request Processed successfully
251124-19:50:26.089682 [mod=RFCMGR, lvl=INFO] [tid=2157] [cleanup_lock_file][38] RFC: Completed service, deleting lock