Firmware configuration - /xconf/swu/stb

IP address - It's not necessary to explicitly pass the IP address if this API is called from a device.  In fact, it's discouraged since XConf will use the source IP address in the http request.  If this API is called from another source (e.g. laptop), then the IP address of the device should be passed.  In any case, a non-routable IP address (e.g. 10.x, 192.168.x) should not be passed to XConf.  A non-routable IP address may be used in a warehouse.  When a request to XConf comes from the warehouse, the IP address is converted to a NAT address.

Request to retrieve firmware configuration. 

Firmware Config request

Request:
   http://<host>:<port>/xconf/swu/stb?eStbMac=B4:F2:E8:79:B8:94&env=QA&model=X1&ipAddress=10.20.30.43&firmwareVersion=test1

Header:
   Accept: application/json
Response example 
   {
  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "file-rpi3",

  "firmwareVersion": "RPI_generic_image",

  "rebootImmediately": false,

  "firmwareLocation": "192.168.201.2",

  "ipv6FirmwareLocation": "1991:db8::ff00:42:2014"
  }

Request did not match any rule. 

Firmware Config request

http://<host>:<port>/xconf/swu/stb?eStbMac=12:22:33:44:55:66&ipAddress=1.1.1.1

Header

Accept: application/json
OR
Accept: application/xml

Response example 

"<h2>404 NOT FOUND</h2><div>Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@790d9a3a[\r\n  estbMac=12:22:33:44:55:66\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=<null>\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2017-06-19T15:01:00.000\r\n  ipAddress=1.1.1.1\r\n]\ndid not match any rule.</div>"

Request to noop rule. 

Firmware Config request

http://<host>:<port>/xconf/swu/stb?eStbMac=DD:DD:DD:DD:DD:D2


Header

Accept: application/json
 OR
Accept: application/xml


Response example 

"<h2>404 NOT FOUND</h2><div>Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@6210d0ba[\r\n  estbMac=DD:DD:DD:DD:DD:D2\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=<null>\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2017-06-19T14:15:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched NO OP MAC_RULE 43f5ffb9-cf52-422c-8169-790149ac1316: test_noop_rule\n received NO config.</div>"

Request to rule, blocked by % filter. 

Firmware Config request

http://<host>:<port>/xconf/swu/stb?eStbMac=12:34:56:78:89:AB&env=qwerty&model=asdf

Header

Accept: application/json
 OR
Accept: application/xml

Response example 

"<h2>404 NOT FOUND</h2><div>Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@ba5a8da[\r\n  estbMac=12:34:56:78:89:AB\r\n  env=qwerty\r\n  model=asdf\r\n  firmwareVersion=<null>\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2017-06-19T14:23:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE 43f5ffb9-cf52-422c-8169-790149ac1316: test_noop_rule\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1\r\n  ipv6FirmwareLocation=2001:558:fe15:13::a296:e4b3\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter GLOBAL_PERCENT[ FirmwareRule{id='GLOBAL_PERCENT', name='GLOBAL_PERCENT', type=GLOBAL_PERCENT} ]</div>"


Request to rule, blocked by IP filter. 

Firmware Config request

http://<host>:<port>/xconf/swu/stb?eStbMac=DD:DD:DD:DD:DD:D2&ipAddress=1.1.1.1

Header

Accept: application/json
 OR
Accept: application/xml

Response example 

"<h2>404 NOT FOUND</h2><div>Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@c8e848a[\r\n  estbMac=DD:DD:DD:DD:DD:D2\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=<null>\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2017-06-19T14:29:00.000\r\n  ipAddress=1.1.1.1\r\n]\n matched MAC_RULE 43f5ffb9-cf52-422c-8169-790149ac1316: test_noop_rule\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1\r\n  ipv6FirmwareLocation=2001:558:1020:1:250:56ff:fe94:646f\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter  IP_FILTER [ 53b140c4-ef1d-432b-822b-00400f395d0c blocking_by_ip_rule ]</div>"


Firmware configuration - /xconf/swu/bse

Request to retrieve firmware configuration. 

Firmware Config request

http://<host>:<port>/xconf/swu/bse?ipAddress=100.71.216.10

Header

Accept: application/json
 OR
Accept: application/xml

Response example

{

    "location": "69.252.80.69",

    "ipv6Location": "2001:558:fe15:13::a296:e4b3",

    "protocol": "tftp",

    "modelConfigurations": [

        {

            "model": "RPI-V",

            "firmwareFilename": "rdk-generic-hybrid-image-20190106221326.sdimg",

            "firmwareVersion": "rdk-generic-hybrid-image-20190106221326"

        },

        {

            "model": "RPI-B",

            "firmwareFilename": "rdk-generic-broadband-image-20200101201216.sdimg",

            "firmwareVersion": "rdk-generic-broadband-image-20200101201216"

        }

    ]
}


Last log - /estbfirmware/lastlog

Request to get last change log. 

FirmwareRules

http://<host>:<port>/estbfirmware/lastlog?mac=CC:CC:CC:CC:CC:C2


Header

Accept: application/json
 OR
Accept: application/xml


Response example

{

    "input": {

        "estbMac": "CC:CC:CC:CC:CC:C2",

        "env": "ASDF",

        "model": "ASDF",

        "firmwareVersion": "1",

        "bypassFilters": [],

        "forceFilters": [],

        "capabilities": [],

        "timeZone": "UTC",

        "time": "10/18/2016 12:51:00",

        "ipAddress": "0:0:0:0:0:0:0:1",

        "rcdl": false,

        "rebootDecoupled": false,

        "supportsFullHttpUrl": false

    },

    "rule": {

        "type": "MAC_RULE",

        "name": "11111111111111",

        "noop": false

    },

    "filters": [

        {

            "type": "DownloadLocationRoundRobinFilter",

            "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

            "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

            "noop": true

        }

    ],

    "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@23fe12cd[\r\n  estbMac=CC:CC:CC:CC:CC:C2\r\n  env=ASDF\r\n  model=ASDF\r\n  firmwareVersion=1\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-10-18T12:51:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE f0362812-1777-4109-8a81-7f8907566d07: 11111111111111\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1\r\n  ipv6FirmwareLocation=2001:558:1020:1:250:56ff:fe94:646f\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

    "config": {

        "firmwareDownloadProtocol": "tftp",

        "firmwareFilename": "1",

        "firmwareVersion": "1",

        "rebootImmediately": false,

        "firmwareLocation": "162.150.228.179",

        "ipv6FirmwareLocation": "2001:558:1020:1:250:56ff:fe94:646f"

    }
}

Change logs - /estbfirmware/changelogs

Request to get all change logs. 

FirmwareRules

http://<host>:<port>/estbfirmware/changelogs?mac=CC:CC:CC:CC:CC:C2


Header

Accept: application/json

or Accept: application/xml


Response example 

[

    {

        "input": {

            "estbMac": "CC:CC:CC:CC:CC:C2",

            "firmwareVersion": "asdf",

            "bypassFilters": [],

            "forceFilters": [],

            "capabilities": [],

            "timeZone": "UTC",

            "time": "12/16/2016 13:55:00",

            "ipAddress": "0:0:0:0:0:0:0:1",

            "rcdl": false,

            "rebootDecoupled": false,

            "supportsFullHttpUrl": false

        },

        "rule": {

            "type": "MAC_RULE",

            "name": "11111111111111",

            "noop": false

        },

        "filters": [

            {

                "type": "DownloadLocationRoundRobinFilter",

                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

                "noop": true

            }

        ],

        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@4f733919[\r\n  estbMac=CC:CC:CC:CC:CC:C2\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=asdf\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T13:55:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE f0362812-1777-4109-8a81-7f8907566d07: 11111111111111\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1.bin\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1.bin\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

        "config": {

            "firmwareDownloadProtocol": "tftp",

            "firmwareFilename": "1.bin",

            "firmwareLocation": "162.150.228.179",

            "firmwareVersion": "1.bin",

            "rebootImmediately": false

        }

    },

    {

        "input": {

            "estbMac": "CC:CC:CC:CC:CC:C2",

            "firmwareVersion": "1",

            "bypassFilters": [],

            "forceFilters": [],

            "capabilities": [],

            "timeZone": "UTC",

            "time": "12/16/2016 13:55:00",

            "ipAddress": "0:0:0:0:0:0:0:1",

            "rcdl": false,

            "rebootDecoupled": false,

            "supportsFullHttpUrl": false

        },

        "rule": {

            "type": "MAC_RULE",

            "name": "11111111111111",

            "noop": false

        },

        "filters": [

            {

                "type": "DownloadLocationRoundRobinFilter",

                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

                "noop": true

            }

        ],

        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@c277e2a[\r\n  estbMac=CC:CC:CC:CC:CC:C2\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=1\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T13:55:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE f0362812-1777-4109-8a81-7f8907566d07: 11111111111111\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1.bin\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1.bin\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

        "config": {

            "firmwareDownloadProtocol": "tftp",

            "firmwareFilename": "1.bin",

            "firmwareLocation": "162.150.228.179",

            "firmwareVersion": "1.bin",

            "rebootImmediately": false

        }

    },

    {

        "input": {

            "estbMac": "CC:CC:CC:CC:CC:C2",

            "firmwareVersion": "2",

            "bypassFilters": [],

            "forceFilters": [],

            "capabilities": [],

            "timeZone": "UTC",

            "time": "12/16/2016 13:53:00",

            "ipAddress": "0:0:0:0:0:0:0:1",

            "rcdl": false,

            "rebootDecoupled": false,

            "supportsFullHttpUrl": false

        },

        "rule": {

            "type": "MAC_RULE",

            "name": "11111111111111",

            "noop": false

        },

        "filters": [

            {

                "type": "DownloadLocationRoundRobinFilter",

                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

                "noop": true

            }

        ],

        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@32c0d2ed[\r\n  estbMac=CC:CC:CC:CC:CC:C2\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=2\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T13:53:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE f0362812-1777-4109-8a81-7f8907566d07: 11111111111111\n received config: FirmwareConfig[\r\n  description=1\r\n  supportedModelIds=[1, ASDF]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=1.bin\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=1.bin\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=5d9579b2-21f1-45a4-925f-88ed28e75892]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

        "config": {

            "firmwareDownloadProtocol": "tftp",

            "firmwareFilename": "1.bin",

            "firmwareLocation": "162.150.228.179",

            "firmwareVersion": "1.bin",

            "rebootImmediately": false

        }

    }

]

Minimum firmware check - /estbfirmware/checkMinimumFirmware

Xconf API which will help determine if firmwareVersion meets minimum check

  • API will take in five parameters.
  1. estbMac
  2. ipAddress
  3. firmwareVersion
  4. model
  5. env
  • API will return 400 response if any of the above fields are missing in the request.
  • API should work from in memory cache. All existing rules should be processed for incoming context and JSON response should contain hasMinimumFirmware=true or hasMinimumFirmware=false depending on outcome of rule processing.

hasMinimumFirmware flag should be set to false only in following case:

  • Minimum firmware check is true for an active PERCENT filter for incoming env+model combination and firmwareVersion in the request is not present in selected firmwareVersions.

It should be true in all other cases. Some examples (may not be exhaustive) are listed below :

  • incoming context has MAC/IP rule
  • incoming context has a NOOP rule
  • incoming context is blocked by any filter resulting in 404 response from Xconf
  • incoming context does not match any rule

This API will process MAC rules.

Firmware Config request

http://<host>:<port>/estbfirmware/checkMinimumFirmware?estbMac=5C:8F:E0:A5:86:E0&ipAddress=1.1.1.1&firmwareVersion=1&model=1&env=1

Header

Accept: application/json

or Accept: application/xml

Response example 

{

    "hasMinimumFirmware": true

}

DCM API

Log upload settings - /loguploader

Log Upload Settings request

http://<host>:<port>/loguploader/getSettings?estbIP=60.70.80.90&env=DEV&firmwareVersion=10.12

Response example 

{

  "urn:settings:GroupName": null,

  "urn:settings:CheckOnReboot": false,

  "urn:settings:CheckSchedule:cron": null,

  "urn:settings:CheckSchedule:DurationMinutes": null,

  "urn:settings:CheckSchedule:StartDate": null,

  "urn:settings:CheckSchedule:EndDate": null,

  "urn:settings:LogUploadSettings:Message": null,

  "urn:settings:LogUploadSettings:Name": null,

  "urn:settings:LogUploadSettings:NumberOfDays": null,

  "urn:settings:LogUploadSettings:UploadRepositoryName": null,

  "urn:settings:LogUploadSettings:UploadOnReboot": null,

  "urn:settings:LogUploadSettings:UploadImmediately": false,

  "urn:settings:LogUploadSettings:upload": null,

  "urn:settings:LogUploadSettings:LogFiles": null,

  "urn:settings:LogUploadSettings:LogFiles:StartDate": null,

  "urn:settings:LogUploadSettings:LogFiles:EndDate": null,

  "urn:settings:LogUploadSettings:UploadSchedule:cron": null,

  "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": null,

  "urn:settings:LogUploadSettings:UploadSchedule:StartDate": null,

  "urn:settings:LogUploadSettings:UploadSchedule:EndDate": null,

  "urn:settings:VODSettings:Name": "fdas",

  "urn:settings:VODSettings:LocationsURL": "http://vod7.location.com/",

  "urn:settings:VODSettings:SRMIPList": {},

  "urn:settings:TelemetryProfile": {

    "id": "fcb969ec-851e-4d80-8452-91f835516e80",

    "telemetryProfile": [

      {

        "header": "qwer",

        "content": "yui",

        "type": "op",

        "pollingFrequency": "3000"

      }

    ],

    "schedule": "10 10 * * *",

    "expires": 0,

    "telemetryProfile:name": "Profile2",

    "uploadRepository:URL": "amazon.com",

    "uploadRepository:uploadProtocol": "S3"

  }

}

Check now request.

CheckNow request

http://<host>:<port>/loguploader/getSettings?estbIP=60.70.80.90&env=DEV&firmwareVersion=10.12&checkNow=true

Response example 

{

  "id": "fcb969ec-851e-4d80-8452-91f835516e80",

  "telemetryProfile": [

    {

      "header": "qwer",

      "content": "yui",

      "type": "op",

      "pollingFrequency": "3000"

    }

  ],

  "schedule": "10 10 * * *",

  "expires": 0,

  "telemetryProfile:name": "Profile2",

  "uploadRepository:URL": "amazon.com",

  "uploadRepository:uploadProtocol": "S3"

}

Firmware configuration - /psg/swu/stb

Request to retrieve firmware configuration. Percent Filter and Time filter will be ignored. 

Firmware Config request

http://<host>:<port>/psg/swu/stb?eStbMac=B4:F2:E8:79:B8:94&env=QA&model=X1&ipAddress=10.20.30.43&firmwareVersion=test1

Header

Accept: application/json

or Accept: application/xml

Response example

{

  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "file-pac3",

  "firmwareVersion": "PACXI3_2.0._DEVse",

  "rebootImmediately": false,

  "firmwareLocation": "192.168.201.2",

  "ipv6FirmwareLocation": "1991:db8::ff00:42:2014"

}

Firmware configuration - /psg/swu/bse

Request to retrieve firmware configuration. Percent Filter and Time filter will be ignored. 

Firmware Config request

http://<host>:<port>/psg/swu/bse/ipAddress=100.71.216.10

Header

Accept: application/json

or Accept: application/xml

Response example 

{

    "location": "69.252.80.69",

    "protocol": "tftp",

    "modelConfigurations": [

        {

            "model": "RPI-V",

            "firmwareFilename": "rdk-generic-hybrid-image-20190106221326.sdimg",

            "firmwareVersion": "rdk-generic-hybrid-image-20190106221326"

        },

        {

            "model": "RPI-B",

            "firmwareFilename": "rdk-generic-broadband-image-20200101201216.sdimg",

            "firmwareVersion": "rdk-generic-broadband-image-20200101201216"

        }

    ]

}

Last log - /psg/lastlog

Request to get last change log. 

FirmwareRules

http://<host>:<port>/psg/lastlog?mac=B4:F2:E8:79:B8:94

Header

Accept: application/json

or Accept: application/xml

Response example

{

  "input": {

    "estbMac": "B4:F2:E8:79:B8:94",

    "env": "QA",

    "model": "GXG5",

    "firmwareVersion": "test1",

    "bypassFilters": [

      "GLOBAL_PERCENT",

      "TIME_FILTER",

      "PercentFilter",

      "ENV_MODEL_PERCENT"

    ],

    "forceFilters": [],

    "capabilities": [],

    "timeZone": "UTC",

    "time": "05/24/2016 18:57:00",

    "ipAddress": "10.20.30.43",

    "rcdl": false,

    "rebootDecoupled": false,

    "supportsFullHttpUrl": false

  },

  "rule": {

    "type": "ENV_MODEL_HARDWARE",

    "name": "RuleQA_X1_1.2.3",

    "noop": false

  },

  "filters": [

    {

      "type": "DownloadLocationRoundRobinFilter",

      "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

      "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

      "noop": true

    }

  ],

  "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@282a68ed[\r\n  estbMac=B4:F2:E8:79:B8:94\r\n  env=QA\r\n  model=GXG5\r\n  firmwareVersion=test1\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[GLOBAL_PERCENT, TIME_FILTER, PercentFilter, ENV_MODEL_PERCENT]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-05-24T18:57:00.000\r\n  ipAddress=10.20.30.43\r\n]\n matched ENV_MODEL_HARDWARE 62af2be5-a660-4127-9127-2edd06b86858: RuleQA_X1_1.2.3\n received config: FirmwareConfig[\r\n  description=PACXI3-desc1\r\n  supportedModelIds=[PACXI3, GXG5]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=file-pac3\r\n  firmwareLocation=192.168.201.2\r\n  firmwareVersion=PACXI3_2.0._DEVse\r\n  ipv6FirmwareLocation=1991:db8::ff00:42:2014\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=9264d2b7-6c9c-477c-9f75-0da2ddaac34e]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

  "config": {

    "id": "9264d2b7-6c9c-477c-9f75-0da2ddaac34e",

    "updated": 1444857563223,

    "description": "PACXI3-desc1",

    "supportedModelIds": [

      "PACXI3",

      "GXG5"

    ],

    "firmwareDownloadProtocol": "tftp",

    "firmwareFilename": "file-pac3",

    "firmwareVersion": "PACXI3_2.0._DEVse",

    "rebootImmediately": false,

    "firmwareLocation": "192.168.201.2",

    "ipv6FirmwareLocation": "1991:db8::ff00:42:2014"

  }

}

Change logs - /psg/changelogs

Request to get all change logs. 

Request

http://<host>:<port>/psg/changelogs?mac=5C:8F:E0:A5:86:E0

Header

Accept: application/json

or Accept: application/xml

Response

[

    {

        "input": {

            "estbMac": "5C:8F:E0:A5:86:E0",

            "firmwareVersion": "ff",

            "bypassFilters": [],

            "forceFilters": [],

            "capabilities": [],

            "timeZone": "UTC",

            "time": "12/16/2016 14:11:00",

            "ipAddress": "0:0:0:0:0:0:0:1",

            "rcdl": false,

            "rebootDecoupled": false,

            "supportsFullHttpUrl": false

        },

        "rule": {

            "type": "MAC_RULE",

            "name": "Arris_XB3_DevOps",

            "noop": false

        },

        "filters": [

            {

                "type": "DownloadLocationRoundRobinFilter",

                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

                "noop": true

            },

            {

                "type": "REBOOT_IMMEDIATELY_FILTER",

                "name": "Arris_XB3_test",

                "noop": true

            }

        ],

        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@1a9f8c9b[\r\n  estbMac=5C:8F:E0:A5:86:E0\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=ff\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T14:11:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE 44ac4348-7e76-4710-b64d-0d92baf388de: Arris_XB3_DevOps\n received config: FirmwareConfig[\r\n  description=tg1682_2.0p2s4_prodse_signed\r\n  supportedModelIds=[TG1682G]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=tg1682_2.0p2s4_prodse_signed.bin.ccs\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=TG1682_2.0p2s4_PRODse\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=true\r\n  id=64ba7bfb-db90-4f7d-8271-1d7a61273cef]\n was blocked/modified by filter REBOOT_IMMEDIATELY_FILTER[ FirmwareRule{id='539dfdae-fb14-4066-a3b1-6d10066aa31f', name='Arris_XB3_test', type=REBOOT_IMMEDIATELY_FILTER} ]",

        "config": {

            "firmwareDownloadProtocol": "tftp",

            "firmwareFilename": "tg1682_2.0p2s4_prodse_signed.bin.ccs",

            "firmwareLocation": "162.150.228.179",

            "firmwareVersion": "TG1682_2.0p2s4_PRODse",

            "rebootImmediately": true

        }

    },

    {

        "input": {

            "estbMac": "5C:8F:E0:A5:86:E0",

            "firmwareVersion": "asdf",

            "bypassFilters": [],

            "forceFilters": [],

            "capabilities": [],

            "timeZone": "UTC",

            "time": "12/16/2016 14:10:00",

            "ipAddress": "0:0:0:0:0:0:0:1",

            "rcdl": false,

            "rebootDecoupled": false,

            "supportsFullHttpUrl": false

        },

        "rule": {

            "type": "MAC_RULE",

            "name": "Arris_XB3_DevOps",

            "noop": false

        },

        "filters": [

            {

                "type": "DownloadLocationRoundRobinFilter",

                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

                "noop": true

            },

            {

                "type": "REBOOT_IMMEDIATELY_FILTER",

                "name": "Arris_XB3_test",

                "noop": true

            }

        ],

        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@1404ed57[\r\n  estbMac=5C:8F:E0:A5:86:E0\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=asdf\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T14:10:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE 44ac4348-7e76-4710-b64d-0d92baf388de: Arris_XB3_DevOps\n received config: FirmwareConfig[\r\n  description=tg1682_2.0p2s4_prodse_signed\r\n  supportedModelIds=[TG1682G]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=tg1682_2.0p2s4_prodse_signed.bin.ccs\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=TG1682_2.0p2s4_PRODse\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=true\r\n  id=64ba7bfb-db90-4f7d-8271-1d7a61273cef]\n was blocked/modified by filter REBOOT_IMMEDIATELY_FILTER[ FirmwareRule{id='539dfdae-fb14-4066-a3b1-6d10066aa31f', name='Arris_XB3_test', type=REBOOT_IMMEDIATELY_FILTER} ]",

        "config": {

            "firmwareDownloadProtocol": "tftp",

            "firmwareFilename": "tg1682_2.0p2s4_prodse_signed.bin.ccs",

            "firmwareLocation": "162.150.228.179",

            "firmwareVersion": "TG1682_2.0p2s4_PRODse",

            "rebootImmediately": true

        }

    }
]


Feature control

Request

http://<host>:<port>/featureControl/getSettings?estbMacAddress=8C:00:34:00:99:00&model=XYZ&channelMapId=1234aa

Header

Accept: application/json

or Accept: application/xml

Response

{

    "featureControl": {

        "features": [

            {

                "name": "likeSimple",

                "effectiveImmediate": true,

                "enable": true,

                "configData": {

                    "like": "simple"

                }

            }

        ],

        "configset-id": "2c628aa6-7372-4b2a-bbcc-2fe8a33b1b3d",

        "configset-label": "likeSimple"

    }

}
  • No labels