[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