Returned integer values cannot be empty?

(running GenieACS 1.2.0.beta0 - latest pull)

Looks like some devices we work with also return empty integer values, and this produces a warning in log file & GUI request does not complete without errors.
Warning lines contain “Invalid value attribute” for “offending” empty value.

Can we “tune” this with a config option?

Example of log file and debug of watched device attached:

2020-04-19T14:38:43.066Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920000” acsRequestName=“GetParameterNames”
2020-04-19T14:38:43.569Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920001” acsRequestName=“GetParameterValues”
2020-04-19T14:38:45.868Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.1.DefaultUserPriority”
2020-04-19T14:38:45.869Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.1.TPID”
2020-04-19T14:38:45.869Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.2.DefaultUserPriority”
2020-04-19T14:38:45.970Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920002” acsRequestName=“GetParameterValues”
2020-04-19T14:38:48.167Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.2.TPID”
2020-04-19T14:38:48.168Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.3.DefaultUserPriority”
2020-04-19T14:38:48.305Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920003” acsRequestName=“GetParameterValues”
2020-04-19T14:38:50.537Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.3.TPID”
2020-04-19T14:38:50.537Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.4.DefaultUserPriority”
2020-04-19T14:38:50.577Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920004” acsRequestName=“GetParameterValues”
2020-04-19T14:38:52.742Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.4.TPID”
2020-04-19T14:38:52.743Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.5.DefaultUserPriority”
2020-04-19T14:38:52.782Z [INFO] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: ACS request; acsRequestId=“17192e08e920005” acsRequestName=“GetParameterValues”
2020-04-19T14:38:53.767Z [WARN] 127.0.0.1 34E380-PURE%2DF500-W%2E3019500121: Invalid value attribute; parameter=“Device.Bridging.Bridge.1.Port.5.TPID”

Correspoding returned data (only relevant part of returned data):

      <ParameterValueStruct>
        <Name>Device.Bridging.Bridge.1.Port.2.Stats.UnicastPacketsSent</Name>
        <Value xsi:type="xsd:unsignedInt">-1</Value>
      </ParameterValueStruct>
      <ParameterValueStruct>
        <Name>Device.Bridging.Bridge.1.Port.2.TPID</Name>
        <Value xsi:type="xsd:unsignedInt"></Value>
      </ParameterValueStruct>

XML specs do not allow empty value for xsd:unsignedInt, but they also do not allow “-1” values, and that one is processed without warning/errors. Can we add empty value to “allowed non-defined” value for integer value returned by CPE?
It is much quicker fix than bugging the CPE vendor (which we are also doing!) for a fix.

Regards.

from what I’ve seen, genieacs is using javascript parseInt function to parse the value returned by the CPE and for empty string this returns NaN which triggers a warning. The only way to overcome this problem is to patch the code. I think that soap.ts is the file you need to patch, line ~168, depending on what you want to achieve.

1 Like