Same device, different inform details with 1.2 and 1.0.4

Hey all. Wanted to upgrade from original acs server version 1.0.4 so set up a 1.2 beta server. Device (DISH smartbox) did an inform and we compared it to the inform the same device had done less than an hour earlier on the old sever and the ‘show’ details were very different. The record in mongo was nearly totally devoid of 95% of the device data model details.

I thought that the server would be smart enough to know what it was getting from the device and save that to the db ;out of the box’. I do not recall ‘teaching’ the old server the device data model (and would have bet a lot of money I could not do so if I wanted).

Should I try a 1.1.3 server instead? Is there something new about the 1.2 server with regards to it knowing how to read all the data from the device and save it to the mongo db? Please advise…

TIA
Owen

v1.1 and v1.2 only fetch the bare minimum of details needed. This is well documented.

Hi and thanks. Could you point me to the documentation, please? I have read everything I could find and have not come across anything referring specifically to how the discover/inform process works or that it selectively chooses certain items from the data model. I argued with a colleague that while it must be doing that, it simply would not make sense, and how could it have a clue what specific items to get or not get… The documentation has escaped us both and I would be extremely grateful for any pointers to more explanation of this…

TIA
O

I double checked, it wasn’t in the docs but the release notes for v1.1.

GenieACS will no longer fetch the entire device data model upon first contact but will instead only fetch the parameters it needs to fulfill the presets.

So what this means is if you are trying to set the PPPoE creds like so:

declare("InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANPPPConnection.*.Username", {value: now}, {value: config.username});
declare("InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANPPPConnection.*.Password", {value: now}, {value: config.password});

Genie will only do get parameter names/values for the following nodes

  • InternetGatewayDevice.WANDevice
    *InternetGatewayDevice.WANDevice.[all returned instance ids from the previous GPN].WANConnectionDevice
    *InternetGatewayDevice.WANDevice.[all returned instance ids from the previous GPN].WANConnectionDevice.[all returned instance ids from the previous GPN].WANPPPConnection
    *InternetGatewayDevice.WANDevice.[all returned instance ids from the previous GPN].WANConnectionDevice.[all returned instance ids from the previous GPN].WANPPPConnection.[all returned instance ids from the previous GPN]

Example:
If a GPN for InternetGatewayDevice.WANDevice returns instance ids of 1 and 2, then for Genie will do a GPN for

  • InternetGatewayDevice.WANDevice.1.WANConnectionDevice
  • InternetGatewayDevice.WANDevice.2.WANConnectionDevice

Since you are migrating from v1.0 you will want to move away from presets and use provision scripts. These are documented on the wiki. You still need a preset to kick off a provision script. But for example, before we moved to v1.0, we had 3000 presets, one for each user. Now I have 21 presets and 18 provision scripts. Each preset/provision script is pretty tightly focused on what it does.