[Nsi-wg] Adding service definition elements to NML
Henrik Thostrup Jensen
htj at nordu.net
Tue Oct 29 06:18:20 EDT 2013
On Mon, 28 Oct 2013, John MacAuley wrote:
> I had a look through the NML base definitions and it looks like we could
> put a serviceDefinition element into the base PortType definition
> through the XML ANY held in the BasePortContent group. However, we are
> in a bit of a pickle for PortGroup because it does not contain a direct
> child XML ANY element.
:-(.
> Therefore, we will need to access indirectly through a Port element,
> which may confuse the meaning of PortGroup a little bit. I have
> included a mock example below:
>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
> <nml:PortGroup id="urn:ogf:network:example.com:2013:eth0-in">
> <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1780-1783</nml:LabelGroup>
> <nml:Port><nsi:serviceDefinition type="EVTS.A-GOLE"/></nml:Port>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isAlias">
> <nml:PortGroup id="urn:ogf:network:example.org:2013:eth0-out"/>
> </nml:Relation>
> </nml:PortGroup>
> </nml:Relation>
Please... no.
> The other option we have is to invert the relationship and include the member Port/PortGroup elements in a service definition
> element as a child of the Topology element something like this:
>
> <nml:Topology id="urn:ogf:network:example.org:2013:topology">
> <nml:name>ExampleA Topology</nml:name>
>
> <nsi:ServiceDefinition type="http://services.ogf.org/nsi/2013/07/definitions/EVTS.A-GOLE">
> <nml:PortGroup id="urn:ogf:network:example.com:2013:eth0-out" />
> <nml:PortGroup id="urn:ogf:network:example.com:2013:eth0-in" />
> </nsi:ServiceDefinition>
>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort">
> <nml:PortGroup id="urn:ogf:network:example.com:2013:eth0-out">
> <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1780-1783</nml:LabelGroup>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isAlias">
> <nml:PortGroup id="urn:ogf:network:example.org:2013:eth0-in"/>
> </nml:Relation>
> </nml:PortGroup>
> </nml:Relation>
>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
> <nml:PortGroup id="urn:ogf:network:example.com:2013:eth0-in">
> <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1780-1783</nml:LabelGroup>
> <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isAlias">
> <nml:PortGroup id="urn:ogf:network:example.org:2013:eth0-out"/>
> </nml:Relation>
> </nml:PortGroup>
> </nml:Relation>
> </nml:Topology>
I am not thrilled about this one either. Similar to bidirectional port
construct it forces a two-stage parsing, where one first has to build up
an intermediate representation, and then build up the final
representation, where one can put service definitions in the ports.
> I believe that given the current limitations of the NML base schema we
> should probably use the second mechanism. It seem to fit a bit better
> and will contain the ServiceDefinition element to a single location on
> the Topology element.
The second option might be ever so slightly better than the first.
However I don't think any of them are really good.
Best regards, Henrik
Henrik Thostrup Jensen <htj at nordu.net>
Software Developer, NORDUnet
More information about the nsi-wg
mailing list