Subject: Re: [Netconf] restconf and namespaces and unique module names.

From: Randy Presuhn <[email-masked]>
Date: Wed, 23 Sep 2015 08:11:30 -0700 (GMT-07:00)

Hi -

>From: Ladislav Lhotka <[email-masked]>
>Sent: Sep 23, 2015 2:15 AM
>To: Randy Presuhn <[email-masked]>, "[email-masked]" <[email-masked]>
>Subject: Re: [Netconf] restconf and namespaces and unique module names.
...
>>>RFC 6020:
>>>
>>>   The names of all standard modules and submodules MUST be unique.
>>>   Developers of enterprise modules are RECOMMENDED to choose names for
>>>   their modules that will have a low probability of colliding with
>>>   standard or other enterprise modules, e.g., by using the enterprise
>>>   or organization name as a prefix for the module name.
>>>
>>>Apparently, both module names in the example violate this. Note that
>>>module names are used to resolve imports and hence they better are
>>>unique. For the IETF, we can manage that via the IANA registry. For
>>>the other modules, there is a clear recommendation.
>>
>> A couple of questions on the RFC 6020 text cited...
>>
>>   (1) is "standard modules" intended to include those from *all* SDOs?
>>  
>>   (2) "MUST" is normally used in situations where "if you don't
>>       do this this way, this protocol/process won't work correctly."
>
>This is not the case unless different modules of the same name are used
>by the same server.

(1) My question remains: why a "MUST" for "standard" modules but
    not enterprise ones?  It sounds like you're arguing that a
    "SHOULD" or "RECOMMENDED" would suffice in both cases.

(2) A question of curiousity: what does a client do when it encounters
    different servers using different modules of the same name, and
    how does it know they are indeed different, using only mandatory
    features of the protocol and mandatory-to-implement models?

Randy

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Mon, 28 Sep 2015 11:40:54 +0200

>     "SHOULD" or "RECOMMENDED" would suffice in both cases.

In a perfect world, module names would be globally unique. This is,
however, difficult to guarantee in practice unless we force all
modules to be registered with IANA (and even then some people will
simply not follow the rules and not register). Within an SDO, it can
be possible to guarantee that all module names released by that SDO
are unique.

>     features of the protocol and mandatory-to-implement models?

It depends. A smart client can fetch the module information from the
server and adapt to what the server implements and if two servers
implement 'foo' such a smart client would be able to figure out 'foo'
may mean different things. There will, however, be clients that simply
assume module 'foo' means module 'foo' everywhere or that resolve
imports of 'foo' against a local module library without carefully
checking with the server and in this case client and server likely run
into failing RPCs since the data models do not match.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>