[Nml-wg] NML call on March 29th

Freek Dijkstra Freek.Dijkstra at sara.nl
Wed Mar 28 09:12:17 EDT 2012


As promised, some clarification:

If you only have a short comment, would you be so kind to do so at the
artifacts tracker whose URL is listed?

For a discussion, you can of course use the mailing list.

Implicit relations
==================

> * implicit hasTopology relation between Topology and (sub)topology
>   https://forge.ogf.org/sf/go/artf6537
>   https://forge.ogf.org/svn/repos/nml-examples/201203-subtopology/hasTopology.xml
>   (proposal #2 and optional #1)
> 
> * implicit hasNode relation between Topology and Node
>   (no artifact created)
>   https://forge.ogf.org/svn/repos/nml-examples/201203-subtopology/hasNode.xml
>   (proposal #1 and optional #3)

Summary: We need to relate Topology with a Node (meaning that the
topology contains a Node), and related a Topology with a Topology
(meaning that the topology contains a subtopology).

Proposal: In XML, we allow (1) implicit relations; in RDF it is required
to use an explicit relation.

Example:

XML:
<nml:Topology id="urn:ofg:network:example.net:2012:mynetwork">
  <nml:Node id="urn:ofg:network:example.net:2012:mynode1">
    ...
  </nml:Node>

  <nml:Topology id="urn:ofg:network:example.net:2012:location1network">
    ...
  </nml:Topology>
</nml:Topology>

RDF:
@prefix exnet <urn:ofg:network:example.net:2012> .
exnet:mynetwork  nml:hasNode      exnet:mynode1
exnet:mynetwork  nml:hasTopology  exnet:location1network


Open question (1):
It is unclear if in XML, the relation MUST be implicit, or MAY be implicit.

Thus: it is clear that the above is allowed. But it is unclear if the
following if also allowed or explicitly forbidden:

<nml:Topology id="urn:ofg:network:example.net:2012:mynetwork">
  <nml:Relation type="hasNode">
    <nml:Node id="urn:ofg:network:example.net:2012:mynode1">
      ...
    </nml:Node>
  </nml:Relation>

  <nml:Relation type="hasNode">
    <nml:Topology id="urn:ofg:network:example.net:2012:location1netw">
     ...
    </nml:Topology>
  </nml:Relation>
</nml:Topology>

Choices:
1a) Explicit hasNode and hasTopology relation is forbidden in NML
1b) Explicit hasNode and hasTopology relation is allowed in NML,
    but deprecated in favour of an implicit relation.


Name of Serial Compound Relation
================================

> * name of the serial compound relation is "isSerialCompoundLink"
>   https://forge.ogf.org/sf/go/artf6545
>   https://forge.ogf.org/svn/repos/nml-examples/201203-vlans/compoundlink.xml
>   (first question at footer)

I think we already have a collective "sigh, it's ugly, but can we please
move on" on this one, so I won't waste more text :)

Summary: Can we move on?

Proposal: Can we move on?

Example: Can....


Direction of Port-Link Relation
===============================

> * What is the direction and name of the relation between Port and Link?
>   https://forge.ogf.org/sf/go/artf6550
>   https://forge.ogf.org/svn/repos/nml-examples/201203-vlans/compoundlink.xml
>   (second question at footer)

This one was brought up by Jeroen, and backed by Roman at OGF34.

Summary: We need to define a two relations between port and link: for
traffic from port to link, and for traffic from link to port. (aka
source and sink relations).

Proposal: Use a "isSource" and "isSink" relation to relate a Port to a Link.

Semantics:
  Port A --(isSource)-> Link X
   means: there is a traffic flow from Port A to Link X.
  Port B --(isSink)-> Link X
   means: there is a traffic flow from Link X to Port A.

Note: this is contrary to how we currently related Ports and Links:
  Link --(hasSource)-> Port
  Link --(hasSink)-> Port
The rationale is that this proposal provides a "hierarchy" of relations:
  Topology --> Node --> Port --> Link

Example:

XML:
<nml:Port id="urn:ogf:network:example.net:2012:PortA">
  <nml:Relation type="isSource">
    <nml:Link idRef="urn:ogf:network:example.net:2012:LinkX"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortB">
  <nml:Relation type="isSink">
    <nml:Link idRef="urn:ogf:network:example.net:2012:LinkX"/>
  </nml:Relation>
</nml:Port>

RDF:
@prefix exnet <urn:ofg:network:example.net:2012> .
exnet:PortA  nml:isSource   exnet:LinkX
exnet:PortB  nml:isSink     exnet:LinkX


VLAN
====

> * VLAN is a link with multiple source and multiple sink ports,
>   and optional parameter noReturnTraffic
>   https://forge.ogf.org/sf/go/artf6503
>   https://forge.ogf.org/sf/go/artf6542 (duplicate)
>   https://forge.ogf.org/svn/repos/nml-examples/201203-vlans/vlan-link.xml

Summary: We want to describe a LAN (or VLAN) between Nodes

Proposal: Use a single Link object, with multiple sources and sinks, and
an optional parameter "noReturnTraffic" to signify that

Rationale: A LAN is basically a broadcast domain, with multiple Ports.
The "noReturnTraffic" is an optimisation in present (switched) networks,
and seems the easiest way to describe the special case that no traffic
flows back to it's source, like it used to in a old LAN with HUBs. The
idea to put this in parameters comes from OGF 33:
https://forge.ogf.org/svn/repos/nml-examples/201109-switchservice/2vlans_option1.xml

Example:
<nml:Port id="urn:ogf:network:example.net:2012:PortAsrc">
  <nml:Relation type="isSource">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortAsink">
  <nml:Relation type="isSink">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortBsrc">
  <nml:Relation type="isSource">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortBsink">
  <nml:Relation type="isSink">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortCsrc">
  <nml:Relation type="isSource">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Port id="urn:ogf:network:example.net:2012:PortCsink">
  <nml:Relation type="isSink">
    <nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42"/>
  </nml:Relation>
</nml:Port>
<nml:Link idRef="urn:ogf:network:example.net:2012:VLAN42">
  <nml:name>VLAN 42</nml:name>
  <nml:parameter name="noReturnTraffic">true</nml:parameter>
</nml:Link>

Note: the concept of using a nml:parameter is in-scope of this proposal.
The exact XML representation of the nml:parameter is out-of-scope, and
may be discussed later, if the WG prefers so.

Note: I used the isSource/isSink relation rather than the
hasSource/hasSink relation.


Regards,
Freek


More information about the nml-wg mailing list