Hello,

Problem: the device id as provided by iotivity does not persist over reboots.

Although the OIC Core spec is not very clear about this,  it does say

"The identifier should be immutable over the lifecycle of that element
and shall be unique within a context or domain."

and

"IP address is used when the device is using an IP configured
interface. When an OIC Device only has the identity information of its
peer, a resolution mechanism is needed to map the identifier to the
corresponding address. The location information is embedded in
identifier, and a separate resolution mechanism is not specified."

So far we know there should be a lifecycle-bound id (whatever
lifecycle means), and a resolution mechanism to address:port.

The Remote Access spec is more clear:

"The UUID shall be maintained over the lifecycle of the OIC Client.
That is, when an OIC Client
re-establish a connection after a reboot it shall use the same UUID.
The following scheme full-JID scheme shall be supplied by an OIC Server:
RAE Server: {user}@{domain.com}/OIC/1.0/{OIC-device type}/{UUID}
The UUID shall be maintained over the lifecycle of the OIC Server and
is the same UUID as
defined in property ?di? of resource /oic/d. The OIC-device-type shall
be the same value as the
property ?rt? in /oic/d."

This is much more clear. So I deduce we should use device id in the
applications, and the stack has a resolution mechanism to translate
between the device id and the address:port.

Now the problem is the device id is not the same between reboots. We
tested this with the JS bindings, and also with the iotivity test app.
Could someone please explain whether is this a known feature or
decision, or a bug?

Thanks,
Zoltan

Reply via email to