| Table of Contents | ||
|---|---|---|
|
Xconf code consists of 3 web applications - Xconf Webconfig, XConf Admin and Xconf UI. The source code for golang version is available in the below Github repositories:
...
For standalone server bring up, kindly refer the instructions mentioned in readme
For containerized environment bring up, Kindly refer this section XCONF containerization configuration of XCONF services, refer this page Steps to bring up XCONF golang version
RDKM has the xconf reference server which is primarily hosted in https://xconf.rdkcentral.com/. To login, kindly refer this page Xconf GO Reference Setup Credentials for credentials
Below Below steps will affect all the features in Xconf system and should be configured after initial setup. Go to the steps given in site navigation step and press on create button to create new entries.
kindly refer this page Xconf GO Reference Setup Credentials for credentials
| Panel | ||
|---|---|---|
| ||
...
Feature rule is to map devices to a particular feature. A new feature rule can be created via RFC->feature rule -> Create
| Panel | ||
|---|---|---|
| ||
a. Verification of feature and feature rule via test page.
...
Verification and setup from RPI
| Code Block |
|---|
RFC_CONFIG_SERVER_URL=https://xconf.rdkcentral.com.rdkcentral.com/featureControl/getSettings |
...
RPI
| Code Block |
|---|
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 |
...
| Info |
|---|
For Logupload endpoint, if you are planning to use community reference server please use https://xconf.rdkcentral.com/logTelemetryServer/logupload.php https://xconf-test.rdkcentral.com/logTelemetryServer/upload/display.php to view the uploaded logs. |
...
| Info |
|---|
For telemetry, if you are using community reference endpoints, please use https://xconf.rdkcentral.com/logTelemetryServer/telemetry_upload.php To view the telemetry logs, there is a reference portal for community https://xconf-test.rdkcentral.com/logTelemetryServer/upload/display.php?mode=telemetry |
...
| Code Block |
|---|
{
"urn:settings:GroupName": "RDKM_TEST",
"urn:settings:CheckOnReboot": true,
"urn:settings:CheckSchedule:cron": "2 1 2 1 1",
"urn:settings:CheckSchedule:DurationMinutes": 0,
"urn:settings:LogUploadSettings:Message": null,
"urn:settings:LogUploadSettings:Name": "RDKM_TEST",
"urn:settings:LogUploadSettings:NumberOfDays": 1,
"urn:settings:LogUploadSettings:UploadRepositoryName": "RDKM_TEST",
"urn:settings:LogUploadSettings:RepositoryURL": "http://{loguoloadserver}/xconf/logupload.php",
"urn:settings:LogUploadSettings:UploadOnReboot": true,
"urn:settings:LogUploadSettings:UploadImmediately": false,
"urn:settings:LogUploadSettings:upload": true,
"urn:settings:LogUploadSettings:UploadSchedule:cron": "2 1 1 1 1",
"urn:settings:LogUploadSettings:UploadSchedule:levelone:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes": 0,
"urn:settings:VODSettings:Name": null,
"urn:settings:VODSettings:LocationsURL": null,
"urn:settings:VODSettings:SRMIPList": null,
"urn:settings:TelemetryProfile": {
"id": "69e37757-b463-47aa-94a8-2ce438e26a50",
"telemetryProfile": [
{
"header": "Firewall",
"content": "starting firewall service",
"type": "FirewallDebug.txt",
"pollingFrequency": "1"
},
{
"header": "MEDIA_ERROR_NETWORK_ERROR",
"content": "onMediaError NETWORK ERROR(10)",
"type": "receiver.log",
"pollingFrequency": "1"
}
],
"schedule": "3",
"expires": 0,
"telemetryProfile:name": "RDKM_TEST",
"uploadRepository:URL": "http://{logupload-server}/xconf/logupload.php",
"uploadRepository:uploadProtocol": "HTTP"
}
} }
} |
eg :
$ curl 'https://<XCONF_IP>/loguploader/getT2Settings?estbMacAddress=AA:BB:CC:DD:EE:FF’
Sample Response :
| Code Block |
|---|
{
"urn:settings:GroupName": "RDKM_TEST",
"urn:settings:CheckOnReboot": true,
"urn:settings:CheckSchedule:cron": "2 1 2 1 1",
"urn:settings:CheckSchedule:DurationMinutes": 0,
"urn:settings:LogUploadSettings:Message": null,
"urn:settings:LogUploadSettings:Name": "RDKM_TEST",
"urn:settings:LogUploadSettings:NumberOfDays": 1,
"urn:settings:LogUploadSettings:UploadRepositoryName": "RDKM_TEST",
"urn:settings:LogUploadSettings:RepositoryURL": "http://{log-upload-server}/xconf/logupload.php",
"urn:settings:LogUploadSettings:UploadOnReboot": true,
"urn:settings:LogUploadSettings:UploadImmediately": false,
"urn:settings:LogUploadSettings:upload": true,
"urn:settings:LogUploadSettings:UploadSchedule:cron": "2 1 1 1 1",
"urn:settings:LogUploadSettings:UploadSchedule:levelone:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes": 0,
"urn:settings:VODSettings:Name": null,
"urn:settings:VODSettings:LocationsURL": null,
"urn:settings:VODSettings:SRMIPList": null,
"urn:settings:TelemetryProfile": {
"id": "69e37757-b463-47aa-94a8-2ce438e26a50",
"telemetryProfile": [
{
"header": "Firewall",
"content": "starting firewall service",
"type": "FirewallDebug.txt",
"pollingFrequency": "1"
},
{
"header": "MEDIA_ERROR_NETWORK_ERROR",
"content": "com.cisco.spvtg.ccsp.meshagent",
"type": "<event>",
"pollingFrequency": "1"
}
],
"schedule": "3",
"expires": 0,
"telemetryProfile:name": "RDKM_TEST",
"uploadRepository:URL": "http://log-upload-server}/xconf/logupload.php",
"uploadRepository:uploadProtocol": "HTTP"
}
} |
| CURL Command | curl 'http://<XCONF_IP>/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=dev&model=RPI&ecmMacAddress=AA:BB:CC:DD:EE:FF&controllerId=2504&channelMapId=2345&vodId=15660&timezone=&partnerId=&accountId=Unknown&version=2' |
|---|---|
| CPE Script (RDK-V) | /lib/rdk/DCMscript.sh /lib/rdk/dca_utility.sh |
| CPE Service (RDK-V) | /lib/systemd/system/dcm-log.service |
Please watch the demo video below for a quick lesson in creating a T2 Report Profile in XConf.
A few things to note:
Profile.Name if you include that in your T2 profile (which is highly recommended!).| Multimedia | ||
|---|---|---|
|
Please watch the demo video below for a quick lesson in creating a T2 Rule in XConf.
A few things to note:
| Multimedia | ||
|---|---|---|
|
a. Verification of telemetry test page.
After creating the permanent profile and targeting rules, go to Telemetry->Test page and give a parameter that will match the one of the rule that you have created. Then matched rule will be displayed like below.
| Panel | ||
|---|---|---|
| ||
b. Verification via curl command
The curl command mocks the request being sent from an STB like below and sample response is also given. It can be given as a curl command or as a get request via postman or browser. To fetch the configured telemetry profile follow curl request as below
eg :
$ curl 'httpshttp://<XCONF_IP>/loguploader/getT2SettingsgetTelemetryProfiles?estbMacAddress=AA:BB:CC:DD:EE:FF’
Sample Response :
| Code Block |
|---|
{
"urn:settings:GroupName": "RDKM_TEST",
"urn:settings:CheckOnReboot": true,
"urn:settings:CheckSchedule:cron": "2 1 2 1 1",
"urn:settings:CheckSchedule:DurationMinutes": 0,
"urn:settings:LogUploadSettings:Message": null,
"urn:settings:LogUploadSettings:Name": "RDKM_TEST",
"urn:settings:LogUploadSettings:NumberOfDays": 1,
"urn:settings:LogUploadSettings:UploadRepositoryName": "RDKM_TEST",
"urn:settings:LogUploadSettings:RepositoryURL": "http://{log-upload-server}/xconf/logupload.php",
"urn:settings:LogUploadSettings:UploadOnReboot": true,
"urn:settings:LogUploadSettings:UploadImmediately": false,
"urn:settings:LogUploadSettings:upload": true,
"urn:settings:LogUploadSettings:UploadSchedule:cron": "2 1 1 1 1",
"urn:settings:LogUploadSettings:UploadSchedule:levelone:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron": null,
"urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes": 0,
"urn:settings:VODSettings:Name": null,
"urn:settings:VODSettings:LocationsURL": null,
"urn:settings:VODSettings:SRMIPList": null,
"urn:settings:TelemetryProfile": {
"id": "69e37757-b463-47aa-94a8-2ce438e26a50",
"telemetryProfile": [
{
"header": "Firewall",
"content": "starting firewall service",
"type": "FirewallDebug.txt",
"pollingFrequency": "1"
},
{
"header": "MEDIA_ERROR_NETWORK_ERROR",
"content": "com.cisco.spvtg.ccsp.meshagent",
"type": "<event>",
"pollingFrequency": "1"
}
],
"schedule": "3",
"expires": 0,
"telemetryProfile:name": "RDKM_TEST",
"uploadRepository:URL": "http://log-upload-server}/xconf/logupload.php",
"uploadRepository:uploadProtocol": "HTTP"
}
} |
...
/lib/rdk/DCMscript.sh
/lib/rdk/dca_utility.sh
"profiles":[{"name":"RDKE_test_profile","value":{"EncodingType":"JSON","HTTP":{"Compression":"None","Method":"POST","RequestURIParameter":[{"Name":"device","Reference":"Device.DeviceInfo.X_COMCAST-COM_CM_MAC"}],"URL":"https://xconf.rdkcentral.com/logTelemetryServer/telemetry_upload.php"},"JSONEncoding":{"ReportFormat":"NameValuePair","ReportTimestamp":"None"},"Parameter":[{"name":"NTPServer3","reference":"Device.Time.NTPServer3","type":"dataModel"},{"name":"HwVer","reference":"Device.DeviceInfo.HardwareVersion","type":"dataModel"},{"name":"MemStatFree","reference":"Device.DeviceInfo.MemoryStatus.Free","type":"dataModel"},{"name":"MemStatTotal","reference":"Device.DeviceInfo.MemoryStatus.Total","type":"dataModel"},{"component":"sysint","eventName":"Xi_wifiMAC_split","type":"event","use":"absolute"},{"component":"sysint","eventName":"SYST_ERR_LogUpload_Failed","reportEmpty":false,"type":"event","use":"count"},{"logFile":"NetworkManager.log","marker":"NW_DNSMASQ","search":"starting /usr/bin/dnsmasq","type":"grep","use":"absolute"},{"name":"CpuUsage","reference":"Device.DeviceInfo.ProcessStatus.CPUUsage","type":"dataModel"},{"name":"Uptime","reference":"Device.DeviceInfo.UpTime","type":"dataModel"}],"Protocol":"HTTP","ReportingInterval":30,"TimeReference":"0001-01-01T00:00:00Z","Version":"0.1"},"versionHash":"dca68b4f"}]} |
| Info |
|---|
For telemetry, if you are using community reference endpoints, please use https://xconf.rdkcentral.com/logTelemetryServer/telemetry_upload.php To view the telemetry logs, there is a reference portal for community https://xconf.rdkcentral.com/logTelemetryServer/upload/display.php?mode=telemetry |
Refer this page for validation of t2 profile using webconfig WebConfig, XConf & T2
...
...
| Info |
|---|
For RDK7, TFTP and HTTP is not supported, only HTTPS support is available. |
a. Verification of Firmware test page.
...
| Code Block |
|---|
{"firmwareDownloadProtocol":"http","firmwareFilename":"rdkb-generic-broadband-image_rdk-next_20250305000408_DEV_NG.rootfs","firmwareLocation":"http://10.75.129.16","firmwareVersion":"rdkb-generic-broadband-image_rdk-next_20250305000408_DEV_NG.rootfs","mandatoryUpdate":false,"rebootImmediately":true} |
| Code Block |
|---|
CLOUDURL=https://xconf.rdkcentral.com/xconf/swu/stb?eStbMac= |
...
/lib/rdk/swupdate_utility.sh
NG.rootfs","mandatoryUpdate":false,"rebootImmediately":true} |
| Code Block |
|---|
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 |
...
Percentage based filters allow us to block a certain percentage of Xconf responses that would otherwise have resulted in a change in firmware. The use case for this is when we have tons of STBs out there and we don't yet have scheduled downloads. We would like to be able to only service a certain percentage as a throttling mechanism so download servers aren't overwhelmed.
...