
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