Closed BillBennett closed 9 years ago
However it also allows them to be set with attributes, which would seem to apply to all servers.
Yes, reading section 5.1. saying
"Attributes are metadata which can be attached to an Object, an Object Instance or a Resource."
I also wouldn't expect attributes to be defined on a "per server" base. It's hard to find, but 5.4.2. Discover, mentions at the end
"If a Resource, an Object Instance, or an Object has attributes for multiple LWM2M Servers, then
one link is returned for each and the ep= attribute is used to indicate the Short Server ID of the
LWM2M Server. For example: if Object ID is 3 and Object Instance ID is 0, and Resource ID is 7
with two Observe operations from two Servers, then
</3/0/7>;ep=1;dim=8;gt=50;lt=42.2,
</3/0/7>;ep=2;dim=8;pmax=300;gt=80;lt=75.5
So "gt" is 50 for ep=1 and 80 for ep=2.
May be, section 5.1. is changed to
"Attributes are metadata which can be attached to an Object, an Object Instance or a Resource,
and may be different for each related LWM2M server."
Yes, among other things, 5.1 has been fixed in CR35R01 (TS-LightweightM2M-V1_0-20150615)
I'm not sure if this in an issue, but the behaviour seems strange.
LWM2M defines default pmin and pmax values in the Server object, so each server can have a different value. However it also allows them to be set with attributes, which would seem to apply to all servers.
If one server is relying on the default values it wont know that another server has overridden them until it gets inappropriate (extra or none) notifications.
I note that both mechanisms are optional for the client, so one solution would to be to implement one or the other but not both. However I wonder if the default pmin & pmax should be moved to the single-instance Device object to completely remove the server-specific nature? Perhaps a notification should be sent to all affected observers when the attributes are changed?