Kovatsch, Matthias
2018-04-20 16:00:43 UTC
Dear list
RD allows the "con" parameter to provide a base URI for relative resource URIs, when the registration is done from a different source address then the registered endpoint itself. "con" is restricted to the scheme and authority part of a URI, that is, no path segments are allowed. This came from the assumption that all CoRE devices will naturally correlate with socket-address endpoints.
However, a registered device(=endpoint, "ep") might not be a natural endpoint. When using gateways or device proxies, the base URI will have path segments and multiple logically different endpoints will share the same socket-address (e.g., coaps://gw.example.com/dev/d1, coaps://gw.example.com/dev/d2, coaps://gw.example.com/dev/d3).
This makes it expensive to move such logical endpoints, as updating "con" will not help. All links have to be removed, changed to the new prefix, and registered anew.
This is a problem for some applications (including a bigger alliance using CoAP), in particular because the patch mechanism is still to be defined - yet rewriting URI prefixes still will not be really efficient even when having patch registration updates.
I thus propose to generalize "con" to be any base URI that will be applied to all relative links an endpoint registered.
If there is a conflict with a deployed mechanism, we could look into adopting "anchor" and let RD use it similarly to "con", but allowing full base URIs (including paths).
Or we align with RFC 8288 altogether and replace "con" with "anchor": https://tools.ietf.org/html/rfc8288#section-3.2
Ciao,
Matthias
RD allows the "con" parameter to provide a base URI for relative resource URIs, when the registration is done from a different source address then the registered endpoint itself. "con" is restricted to the scheme and authority part of a URI, that is, no path segments are allowed. This came from the assumption that all CoRE devices will naturally correlate with socket-address endpoints.
However, a registered device(=endpoint, "ep") might not be a natural endpoint. When using gateways or device proxies, the base URI will have path segments and multiple logically different endpoints will share the same socket-address (e.g., coaps://gw.example.com/dev/d1, coaps://gw.example.com/dev/d2, coaps://gw.example.com/dev/d3).
This makes it expensive to move such logical endpoints, as updating "con" will not help. All links have to be removed, changed to the new prefix, and registered anew.
This is a problem for some applications (including a bigger alliance using CoAP), in particular because the patch mechanism is still to be defined - yet rewriting URI prefixes still will not be really efficient even when having patch registration updates.
I thus propose to generalize "con" to be any base URI that will be applied to all relative links an endpoint registered.
If there is a conflict with a deployed mechanism, we could look into adopting "anchor" and let RD use it similarly to "con", but allowing full base URIs (including paths).
Or we align with RFC 8288 altogether and replace "con" with "anchor": https://tools.ietf.org/html/rfc8288#section-3.2
Ciao,
Matthias