[Nml-wg] Simple example #1

Roman Łapacz romradz at man.poznan.pl
Tue Jul 10 07:41:20 EDT 2012


Hi Freek

comments inline

W dniu 2012-07-09 17:15, Freek Dijkstra pisze:
> On 09-07-2012 16:17, Roman Łapacz wrote:
>
>> please, take a look at the attachment. Waiting for comments.
> Hi Roman,
>
> Are there any specifics you like us to comment on?

- is that simple topology ok as an example to  present a subset of nml 
structures (any other simple topology proposals are welcome)
- are the structures I have used fine with all agreements we've had 
(thanks for you comments below)

>
> I had a quick look, and these are things I would probably describe
> differently.
>
>
> version
> -------
>
> Version is a serial number, akin to a serial number in DNS SOA records,
> I wouldn't make this a number (so it is easy to compare date), not a
> URN. Also, I probably would simply describe it as an XML attribute
> instead of child element, but that is admittedly a matter of preference.

Agree. URN format was the first try as I wasn't sure if URN is forced to 
be used wherever it's possible.

>
>>    <nml:Topology id="urn:ogf:network:domainx.net:2012:org">
>>
>>      <nml:name>Domain X</nml:name>
>>      <nml:version>urn:ogf:network:domainx.net:2012:20120709<nml:version>
> Suggested change:
>
>>    <nml:Topology id="urn:ogf:network:domainx.net:2012:org" version="20120709">
>>
>>      <nml:name>Domain X</nml:name>
> Implicit relations
> ------------------
>> <nml:Topology xmlns:nml="http://schemas.ogf.org/nml/2012/07/base/"
>>                id="urn:ogf:network:gn3.net:2012:org">
>> [...]
>>
>>    <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasTopology">
>>      <nml:Topology idRef="urn:ogf:network:domainx.net:2012:org"/>
>>      <nml:Topology idRef="urn:ogf:network:domainy.net:2012:org"/>
>>    </nml:Relation>
>>
>>
>> [...]
>>    <nml:Topology id="urn:ogf:network:domainx.net:2012:org">
>>
>>      <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasNode">
>>        <nml:node idRef="urn:ogf:network:domainx.net:2012:nodeA"/>
>>      </nml:Relation>
>>
>> [...]
>>    </nml:Topology>
>> </nml:Topology>
> Some relations, including "hasTopology" and "hasNode" SHOULD be written
> implicitly.
>
> This was discussed in https://forge.ogf.org/sf/go/artf6537 and I very
> much value your feedback there. (I see that we never reached consensus
> on the exact wording there.)

I prefer implicit approach but yesterday I saw in the current 
NML-relations.pdf file that the relations for mentioned cases are still 
used. I tried to be consistent with that file but now I'm fine to change 
that (the pdf file will have to be updated as well).

>
> Suggested change:
>
>> <nml:Topology xmlns:nml="http://schemas.ogf.org/nml/2012/07/base/"
>>                id="urn:ogf:network:gn3.net:2012:org">
>> [...]
>>
>>    <nml:Topology idRef="urn:ogf:network:domainx.net:2012:org"/>
>>    <nml:Topology idRef="urn:ogf:network:domainy.net:2012:org"/>
>>
>>
>> [...]
>>    <nml:Topology id="urn:ogf:network:domainx.net:2012:org">
>>
>>      <nml:Node idRef="urn:ogf:network:domainx.net:2012:nodeA"/>
>>
>> [...]
>>    </nml:Topology>
>> </nml:Topology>
> or even:
>
>> <nml:Topology xmlns:nml="http://schemas.ogf.org/nml/2012/07/base/"
>>                id="urn:ogf:network:gn3.net:2012:org">
>>
>> [...]
>>    <nml:Topology id="urn:ogf:network:domainx.net:2012:org">
>>
>>      <nml:Node idRef="urn:ogf:network:domainx.net:2012:nodeA"/>
>>
>> [...]
>>    </nml:Topology>
>> </nml:Topology>
> Case
> ----
>
> See https://forge.ogf.org/sf/go/artf6534
>
> You have written a few times:
>
>> nml:node
>> nml:location
>> nml:port
> Suggested change:

you're right

>
>> nml:Node
>> nml:Location
>> nml:Port
> locatedAt
> ---------
>
> You wrote:
>
>> <nml:node id="urn:ogf:network:domainx.net:2012:nodeA">
>>    <nml:location idRef="urn:ogf:network:nordu.net:2011:redcity"/>
>> [...]
>> </nml:node>
> I probably would have written:
>
>> <nml:Node id="urn:ogf:network:domainx.net:2012:nodeA">
>>    <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/locatedAt">
>>      <nml:Location idRef="urn:ogf:network:nordu.net:2011:redcity"/>
>>    </nml:Relation>
>> [...]
>> </nml:node>
> But I like your implicit relation better, so I propose to make locatedAt
> an implicit relation (if this was not already the case; I can't seem to
> find that.)

OK

>
> Slashes
> -------
>
>> <nml:port idRef="urn:ogf:network:domainx.net:2012:A_port_ge-0/2/9-out"/>
> Unfortunately, slashes are a reserved character, and not allowed in
> URNs. You will have to think of another identifier. I usually make up
> something like this:
>
>> <nml:port idRef="urn:ogf:network:domainx.net:2012:A:port_ge-0.2.9-out"/>

Right. These are just identifiers and I overlooked that while focusing 
on structures.


> hasPort
> -------
>
>>      <nml:port id="urn:ogf:network:domainx.net:2012:A_port_ge-0/2/9-out">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasPort">
>>          <nml:PortGroup idRef="urn:ogf:network:domainx.net:2012:domainx-domainy"/>
>>        </nml:Relation>
>>      </port>
>>
>>      <nml:port id="urn:ogf:network:domainx.net:2012:A_port_ge-0/2/9-in">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasPort">
>>          <nml:PortGroup idRef="urn:ogf:network:domainx.net:2012:domainx-domainy"/>
>>        </nml:Relation>
>>      </port>
> I'm not entirely sure what you are describing here. hasPort was recently
> introduced to describe that a given Port is part of a larger PortGroup.

It means that the outbound and inbound ports ge-0/2/9-out(in) 
(physically it's just one port ge-0/2/9) have available vlans 
(1780-1783) defined in PortGroup structure. In case of only one vlan 
1501, instead of PortGroup the element Port is used.
>
> Did you perhaps meant to write:
>
>>      <nml:PortGroup id="urn:ogf:network:domainx.net:2012:domainx-domainy">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasPort">
>>          <nml:Port idRef="urn:ogf:network:domainx.net:2012:A_port_ge-0/2/9-out"/>
>>        </nml:Relation>
>>      </nml:PortGroup>
>>
>>      <nml:PortGroup id="urn:ogf:network:domainx.net:2012:domainx-domainy">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasPort">
>>          <nml:Port idRef="urn:ogf:network:domainx.net:2012:A_port_ge-0/2/9-in"/>
>>        </nml:Relation>
>>      </nml:PortGroup>
> However, I'm still a bit of at a loss at the exact meaning -- above two
> PortGroups have the same identifier, but the Ports have a different
> directions. Did you intend to describe a PortGroup here, or a
> BidirectionalPort, or yet something else?
>
>
> Same for
>>      <nml:port id="urn:ogf:network:domainy.net:2012:C_port_ge-5/2/7-out">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/hasPort">
>>          <nml:Port idRef="urn:ogf:network:domainy.net:2012:B-to-C"/>
>>        </nml:Relation>
>>      </port>
> Did you mean here that urn:ogf:network:domainy.net:2012:B-to-C is a Link
> instead? Eg.
>
>>      <nml:Port id="urn:ogf:network:domainy.net:2012:C_port_ge-5/2/7-out">
>>        <nml:Relation type="http://schemas.ogf.org/nml/2012/07/relation/isSource">
>>          <nml:Link idRef="urn:ogf:network:domainy.net:2012:C-to-B"/>
>>        </nml:Relation>
>>      </nml:port>
> (note the hasPort ->  isSource, nml:Port ->  nml:Link and B-to-C ->  C-to-B)
>
> Links
> -----
>
> You never seem to connect any of the urn:ogf:network:domainx.net:2012:*
> identifiers to any of the urn:ogf:network:domainy.net:2012:* identifiers.
>
> How do you describe that domains X and Y are connected to each other? I
> may have overlooked it (If I stare too much at XML and I'm bound to miss
> the obvious).

I didn't want to use links in this first example. Links will be 
presented in the next one.
This example presents a simple topology that focus only on 
configurations in network devices. Use of ports and port groups are 
sufficient for some use cases (an example is the NSI topology)..


thanks,
Roman
>
>
> Typos
> -----
>
> This is all perfectly valid NML, but likely typos nevertheless :)
>
>> <!-- --------------------------------- Doman X ---------------------------------  -->
>> <!-- --------------------------------- Doman Y ---------------------------------  -->
>>        <nml:location idRef="urn:ogf:network:nordu.net:2011:redcity"/>
>>      <nml:port ...>  ....</port>
> Regards,
> Freek



More information about the nml-wg mailing list