Introduction

                         Remote Feature Control (RFC) refers to a specific framework and mechanism incorporated within RDK middleware to enable the remote management and control of features in RDK-based Customer Premise Equipment (CPE) platforms. It allows operators or service providers to remotely enable, disable, configure, or update specific functionalities without physically accessing each device. RFC provides a standardized method for managing features, reducing operational overhead and enabling selective feature deployments.


 Test Procedure


1. Verify the existing(default) value of TR181 parameters

Existing DM
root@Filogic-GW:~# dmcli eRT getv Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
               type:       bool,    value: false 

root@Filogic-GW:~# dmcli eRT getv Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
               type:       bool,    value: true 

root@Filogic-GW:~# dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
               type:       bool,    value: false 



2. Refer below url to configure xconf  for adding RFC Feature and Feature rule in xconf to set the above DM parameters

Feature Validation : Xconf Server#FeatureValidation:RemoteFeatureControl(RFC)

3. Please wait 1 min 

4. Run the below command,

systemctl restart rfc

5. check the below path to confirm rfc files are created or not

Generated Files
root@Filogic-GW:/rdklogs/logs# cat /tmp/rfc  
rfc-parsed.txt      rfc_configdata.txt  

root@Filogic-GW:/rdklogs/logs# cat /tmp/rfc_configdata.txt 
tr181.Device.X_Comcast_com_ParentalControl.ManagedSites.Enable#~true#~1
tr181.Device.X_Comcast_com_ParentalControl.ManagedServices.Enable#~false#~1
tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable#~true#~1

root@Filogic-GW:/rdklogs/logs# cat /tmp/rfc-parsed.txt  
 
" featureControl "  : { " features "  : [{ " name "  :  " RPI4-MINIMAL-TEST-RFC "  ,
 " effectiveImmediate "  : true ,
 " enable "  : true ,
 " configData "  : {
 " tr181. Device.X_Comcast_com_ParentalControl.ManagedSites.Enable "  :  " true "  ,
 " tr181. Device.X_Comcast_com_ParentalControl.ManagedServices.Enable "  :  " false " 
} ,
 " featureInstance "  :  " RPI4-MINIMAL-TEST-RFC " 
} ,
 " name "  :  " ClientNotify "  ,
 " effectiveImmediate "  : true ,
 " enable "  : true ,
 " configData "  : {
 " tr181. Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable "  :  " true " 
} ,
 " featureInstance "  :  " ClientNotify " 
}]


6. Updated DM

Updated DM
root@Filogic-GW:~# dmcli eRT getv Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
               type:       bool,    value: true

root@Filogic-GW:~# dmcli eRT getv Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
               type:       bool,    value: false 

root@Filogic-GW:~# dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
               type:       bool,    value: true



7.Verify the successful logs in below path,

dcmrfc.log
root@Filogic-GW:/rdklogs/logs# cat dcmrfc.log 
Enable RFC feature
2022-04-28T17:42:41.297Z [RFC]:: rfc-agent process not running. Not waiting rfc_blob_processing
2022-04-28T17:42:41.301Z [RFC]:: RFC: Starting service, creating lock 
2022-04-28T17:42:41.304Z [RFC]:: RFC: Waiting for IP Acquistion...
2024-08-20T06:51:26.872Z [RFC]:: Acquired Box estb ip : 192.168.2.241 , Count = 2
2024-08-20T06:51:26.876Z [RFC]:: Starting execution of RFCbase.sh
2024-08-20T06:51:26.886Z [RFC]:: CALLING Direct override from local rfc.properties, state LOCAL
2024-08-20T06:51:26.891Z [RFC]:: Calling request to NEW XConf...
2024-08-20T06:51:26.895Z [RFC]::     URL: https://xconf.rdkcentral.com:19092/featureControl/getSettings
2024-08-20T06:51:26.902Z [RFC]:: RFC: CodebigFirst support is not available
2024-08-20T06:51:27.907Z [RFC]:: CallXconf: Box IP is 192.168.2.241
2024-08-20T06:51:28.006Z [RFC]:: RFC_TM_Track : CURL_CMD: curl -w '%{http_code}\n' -D /tmp/curl_header --interface erouter0 --connect-timeout 30 -m 30 --tlsv1.2  -H configsethash: -H configsettime: -o  "/tmp/rfc-parsed.txt" 'https://xconf.rdkcentral.com:19092/featureControl/getSettings?estbMacAddress=76:1F:D1:62:DE:0A&firmwareVersion=rdkb-generic-broadband-image_rdk-next_20240820065115&env=dev&model=BananapiBPI-R4&ecmMacAddress=76:1F:D1:62:DE:0A&controllerId=2504&channelMapId=2345&vodId=15660&partnerId=RDKM&accountId=Unknown&experience=&version=2'
2024-08-20T06:51:31.117Z [RFC]:: RFC_TM_Track : Curl return code TLSRet = 0 http_code: 200
2024-08-20T06:51:31.124Z [RFC]:: RFC_TM_Track : uptime =  06:51:31 up 0 min,  1 user,  load average: 1.23, 0.32, 0.11
2024-08-20T06:51:31.127Z [RFC]:: HTTP request success. Processing response..
2024-08-20T06:51:31.132Z [RFC]:: preProcessJsonResponse returned 0
2024-08-20T06:51:31.136Z [RFC]:: Continue processing RFC response rfcState=CONTINUE
2024-08-20T06:51:31.141Z [RFC]:: Curl success
2024-08-20T06:51:31.147Z [RFC]:: dcmjsonparser binary present
dcmjsonparser: dcm response file name /tmp/rfc-parsed.txt
dcmjsonparser: cjson parse success
dcmjsonparser: configset-id not recieved in response
dcmjsonparser: configset-label not recieved in response
dcmjsonparser: features array size is 0
2024-08-20T06:51:31.178Z [RFC]:: /tmp/rfc_configdata.txt file is present
2024-08-20T06:51:31.257Z [RFC]:: Calling RFCpostprocessing
2024-08-20T06:51:31.275Z RFC File for SSH is not present or empty
2024-08-20T06:51:31.329Z [RFC]:: [Features Enabled]-[STAGING]: 
2024-08-20T06:51:31.337Z [RFC]:: Process JSON Response returned 0
2024-08-20T06:51:31.341Z [RFC]:: COMPLETED RFC PASS
2024-08-20T06:51:31.345Z [RFC]:: STORING XCONF URL AND SLOT NAME
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.2024-08-20T06:51:31.389Z [RFC]:: resp = 0
2024-08-20T06:51:31.397Z [RFC]:: RFC: configsethash=1PaCFtAAKeTXJmHpm4ec4Z3mASbzWdne22 at configsettime=1724136691
2024-08-20T06:51:31.403Z [RFC]:: Starting Post Processing
2024-08-20T06:51:31.408Z [RFC]:: sendHttpRequestToServer returned 0
2024-08-20T06:51:31.416Z RFC File for SSH is not present or empty
2024-08-20T06:51:31.417Z [RFC]:: START CONFIGURING RFC CRON
2024-08-20T06:51:31.430Z [RFC]:: RFC: Completed service, deleting lock 
Enable RFC feature
2024-08-23T11:56:58.356Z [RFC]:: rfc-agent process not running. Not waiting rfc_blob_processing
2024-08-23T11:56:58.360Z [RFC]:: RFC: Starting service, creating lock 
2024-08-23T11:56:58.364Z [RFC]:: RFC: Waiting for IP Acquistion...
2024-08-23T11:56:58.381Z [RFC]:: Acquired Box estb ip : 192.168.2.241 , Count = 0
2024-08-23T11:56:58.385Z [RFC]:: Starting execution of RFCbase.sh
2024-08-23T11:56:58.394Z [RFC]:: CALLING Direct override from local rfc.properties, state LOCAL
2024-08-23T11:56:58.399Z [RFC]:: Calling request to NEW XConf...
2024-08-23T11:56:58.403Z [RFC]::     URL: https://xconf.rdkcentral.com:19092/featureControl/getSettings
2024-08-23T11:56:58.407Z [RFC]:: RFC: CodebigFirst support is not available
2024-08-23T11:56:59.414Z [RFC]:: CallXconf: Box IP is 192.168.2.241
2024-08-23T11:56:59.551Z [RFC]:: RFC_TM_Track : CURL_CMD: curl -w '%{http_code}\n' -D /tmp/curl_header --interface erouter0 --connect-timeout 30 -m 30 --tlsv1.2  -H configsethash: -H configsettime: -o  "/tmp/rfc-parsed.txt" 'https://xconf.rdkcentral.com:19092/featureControl/getSettings?estbMacAddress=76:1F:D1:62:DE:0A&firmwareVersion=rdkb-generic-broadband-image_rdk-next_20240820065115&env=dev&model=BananapiBPI-R4&ecmMacAddress=76:1F:D1:62:DE:0A&controllerId=2504&channelMapId=2345&vodId=15660&partnerId=RDKM&accountId=Unknown&experience=&version=2'
2024-08-23T11:57:02.627Z [RFC]:: RFC_TM_Track : Curl return code TLSRet = 0 http_code: 200
2024-08-23T11:57:02.634Z [RFC]:: RFC_TM_Track : uptime =  11:57:02 up 13 min,  2 users,  load average: 1.19, 1.22, 0.82
2024-08-23T11:57:02.638Z [RFC]:: HTTP request success. Processing response..
2024-08-23T11:57:02.642Z [RFC]:: preProcessJsonResponse returned 0
2024-08-23T11:57:02.646Z [RFC]:: Continue processing RFC response rfcState=CONTINUE
2024-08-23T11:57:02.651Z [RFC]:: Curl success
2024-08-23T11:57:02.655Z [RFC]:: dcmjsonparser binary present
dcmjsonparser: dcm response file name /tmp/rfc-parsed.txt
dcmjsonparser: cjson parse success
dcmjsonparser: configset-id not recieved in response
dcmjsonparser: configset-label not recieved in response
dcmjsonparser: features array size is 2
dcmjsonparser: effectiveImmediate is 1
dcmjsonparser: key is tr181.Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
dcmjsonparser: value is true
dcmjsonparser: key is tr181.Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
dcmjsonparser: value is false
dcmjsonparser: effectiveImmediate is 1
dcmjsonparser: key is tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
dcmjsonparser: value is true
2024-08-23T11:57:02.676Z [RFC]:: /tmp/rfc_configdata.txt file is present
2024-08-23T11:57:02.747Z [RFC]:: key=tr181.Device.X_Comcast_com_ParentalControl.ManagedSites.Enable value=true ImediateReboot=1
2024-08-23T11:57:02.754Z [RFC]:: Parameter name Device.X_Comcast_com_ParentalControl.ManagedSites.Enable
2024-08-23T11:57:02.759Z [RFC]:: Parameter value  true
2024-08-23T11:57:02.786Z [RFC]:: paramType is bool 
2024-08-23T11:57:02.793Z [RFC]:: RFC: old parameter value false 
2024-08-23T11:57:02.823Z [RFC]:: RFC:  updated for Device.X_Comcast_com_ParentalControl.ManagedSites.Enable from value old=false, to new=true
2024-08-23T11:57:02.828Z [RFC]:: RFC: Enabling RfcRebootCronNeeded since Device.X_Comcast_com_ParentalControl.ManagedSites.Enable old value=false, new value=true, RebootValue=1
2024-08-23T11:57:02.850Z [RFC]:: key=tr181.Device.X_Comcast_com_ParentalControl.ManagedServices.Enable value=false ImediateReboot=1
2024-08-23T11:57:02.860Z [RFC]:: Parameter name Device.X_Comcast_com_ParentalControl.ManagedServices.Enable
2024-08-23T11:57:02.864Z [RFC]:: Parameter value  false
2024-08-23T11:57:02.895Z [RFC]:: paramType is bool 
2024-08-23T11:57:02.903Z [RFC]:: RFC: old parameter value true 
2024-08-23T11:57:02.933Z [RFC]:: RFC:  updated for Device.X_Comcast_com_ParentalControl.ManagedServices.Enable from value old=true, to new=false
2024-08-23T11:57:02.940Z [RFC]:: RFC: Enabling RfcRebootCronNeeded since Device.X_Comcast_com_ParentalControl.ManagedServices.Enable old value=true, new value=false, RebootValue=1
2024-08-23T11:57:02.960Z [RFC]:: key=tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable value=true ImediateReboot=1
2024-08-23T11:57:02.968Z [RFC]:: Parameter name Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable
2024-08-23T11:57:02.973Z [RFC]:: Parameter value  true
2024-08-23T11:57:03.003Z [RFC]:: paramType is bool 
2024-08-23T11:57:03.016Z [RFC]:: RFC: old parameter value false 
2024-08-23T11:57:03.050Z [RFC]:: RFC:  updated for Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable from value old=false, to new=true
2024-08-23T11:57:03.057Z [RFC]:: RFC: Enabling RfcRebootCronNeeded since Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.PresenceDetect.Enable old value=false, new value=true, RebootValue=1
2024-08-23T11:57:03.083Z [RFC]:: Calling RFCpostprocessing
2024-08-23T11:57:03.106Z RFC File for SSH is not present or empty
2024-08-23T11:57:03.418Z [RFC]:: [Features Enabled]-[STAGING]:  RPI4-MINIMAL-TEST-RFC=true, ClientNotify=true,
2024-08-23T11:57:03.425Z [RFC]:: Process JSON Response returned 0
2024-08-23T11:57:03.430Z [RFC]:: COMPLETED RFC PASS
2024-08-23T11:57:03.434Z [RFC]:: STORING XCONF URL AND SLOT NAME
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.2024-08-23T11:57:03.478Z [RFC]:: resp = 0
2024-08-23T11:57:03.489Z [RFC]:: RFC: configsethash=1GZYJP4Brj9kHNGh6raiU5THU8w7vpXufS at configsettime=1724414223
2024-08-23T11:57:03.495Z [RFC]:: Starting Post Processing
2024-08-23T11:57:03.499Z [RFC]:: sendHttpRequestToServer returned 0
2024-08-23T11:57:03.506Z RFC File for SSH is not present or empty
2024-08-23T11:57:03.510Z [RFC]:: START CONFIGURING RFC CRON
2024-08-23T11:57:03.524Z [RFC]:: RFC: Completed service, deleting lock 
2024-08-23T11:57:03.531Z [RFC]:: RFC: RfcRebootCronNeeded=1. calling script to schedule reboot in maintence window 


References

RDKBACCL-295 - Getting issue details... STATUS




  • No labels