Is GetParameterNames mandatory...?

Hello.
I can find some related topics but nothing exactly the same. This may be about interpretation of standards but maybe it’s clear and a proprietary quirk. Anyway, here’s the story:
Our fleet of nice new LTE routers offers a list of connected client devices in a path like
InternetGatewayDevice.WEB_GUI.Overview.DeviceList.1.IPAddress
InternetGatewayDevice.WEB_GUI.Overview.DeviceList.1.MACAddress
InternetGatewayDevice.WEB_GUI.Overview.DeviceList.1.
InternetGatewayDevice.WEB_GUI.Overview.DeviceList.2.IPAddress
InternetGatewayDevice.WEB_GUI.Overview.DeviceList.2.
However, they always respond to GetParameterNames with path InternetGatewayDevice.WEB_GUI.Overview.DeviceList. with an empty array which (if I am right) means that GenieACS then will not request the values.
The vendor is cooperative and has offered a custom variant that implements GetParameterNames for this path but has also pointed out that other ACS’ don’t need this for lists of dynamic, read-only variables. I have tried two others (tr-069.cloud and XACS) and they are right, at least for these two examples.
So, if this is a question of product philosophy and the standards really mandate support for GetParameterNames for all paths then I fully support GenieACS requiring it. If it’s a matter of interpretation then maybe there’s an interesting discussion. If the standards permit reading just the values in a whole path (with a dot at the end) then maybe it would be a useful feature.
The other possibility is that I am getting something completely wrong in which case I apologise for wasting everyone’s time (and could you point me in the right direction please?) :slight_smile:

I’ve battled with other vendors who like to say crap like “It works with other ACS’s.” I always go back to the very specific line in the spec they are violating. That is the only thing I’ve found that works.

Well, I’ve had similar battles but these people are different and open-minded. I haven’t spent as long with the specifications (and there seem to be many and multiple amendments) as many on the forum. Would you help me find that line? I have been involved in other telecommunications specifications and am acutely aware that no matter how hard we try it’s really difficult to eliminate all ambiguity.
(In this particular case, if I were contributing to the specifications, I would say it’s reasonable for parameters returned while reading a sub-tree to be deemed to exist by implication but then there’s also a case for keeping things as deterministic as possible for ease of implementation.)
Anyway, the key either way seems to be finding the very specific line (and others might know at least roughly where it might be).

I know I am not answering the proper question and I don’t know about LTE but under Huawei we can get that list of connected devices under:

InternetGatewayDevice.LANDevice.1.Hosts.*

isn’t that what you really need ?

Thank you. Yes it is but on this device (QSDK-based) it’s under

InternetGatewayDevice.WEB_GUI.Overview.DeviceList.

(but the content is basically the same). Arguably the WEB_GUI bit is slightly lazy but if it means they can be more agile then maybe it’s justifiable.

I took a 2 minute stab at finding the line, but I honestly don’t have the time to sift through the entire spec right now. Sorry.

Reading so far…
Document TR-069 Amendment 6 Corrigendum 1, June 2020
Annex A
‘A3.1 Generic Methods
The methods listed in this Section are REQUIRED to be supported on both CPE devices and ACSs. Either a CPE or ACS MAY call these methods.’
Note the use of REQUIRED
‘A3.2 CPE Methods
The methods listed in this Section are defined to be supported on a CPE device. Only an ACS can call these methods.’
Note the use of defined
‘A3.2.3 GetParameterNames
This method MAY be used by an ACS to discover the Parameters accessible on a particular CPE. The calling arguments for this method are defined in Table 20. The arguments in the response are defined in Table 21.’
…and in Table 21
‘When NextLevel is true, this list MUST contain all Parameters and Object that are next-level children of the Object given by the ParameterPath argument, if any. If the OPTIONAL instance wildcards are used the list MUST contain the parameter or Objects for all instances, whose name matches the ParameterPath argument.’
Note the use of MUST. I can’t find anything in the context of these sections that qualifies the MUST in Table 21.
So, if this is the definitive specification for this situation then a complete response to GetParameterNames seems to be mandatory. Before I go to the vendor, are there any other specifications or amendments that anyne knows of that might apply?
Thank you @akcoder and @rudymartin for guiding me.

I think you hit the nail on the head. I’d send them exactly what you have above. Bolding the last portion

When NextLevel is true, this list MUST contain all Parameters and Object that are next-level children of the Object given by the ParameterPath argument, if any. If the OPTIONAL instance wildcards are used the list MUST contain the parameter or Objects for all instances, whose name matches the ParameterPath argument.

1 Like