This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6569 at Sun, 06 Nov 2022 14:38:17 GMT SourceForge : artf6569: PortGroup and LinkGroup

Project Home

Tracker

Documents

Tasks

Source Code

Discussions

File Releases

Wiki

Project Admin

NML-WG Homepage
Search Tracker
Project: NML-WG     Trackers > Schema Progress > View Artifact
Artifact artf6569 : PortGroup and LinkGroup
Tracker: Schema Progress
Title: PortGroup and LinkGroup
Description:
1) PortGroup and LinkGroup

A PortGroup is an unordered set of Ports
A LinkGroup is an unordered set of Links

2) hasPort / hasLink relation

  <PortGroup G> --(hasPort)--> <Port P>
  <LinkGroup H> --(hasLink)--> <Link L>

In XML, the hasPort and hasLink relations are implicit. E.g. the following XML and RDF statements are equivalent:

  <nml:PortGroup id="urn:ogf:network:example.net:2012:myportgroup">
    <nml:Port idRed="urn:ogf:network:example.net:2012:myport"/>
  </nml:PortGroup>

  @prefix nml: <http://schemas.ogf.org/nml/base/2013/10/>; .
  @prefix ex: <urn:ogf:network:example.net:2012:> .
  ex:myportgroup  a            nml:PortGroup .
  ex:myportgroup  nml:hasPort  ex:myport     .
  ex:myport       a            nml:Port      .

3) isOutboundPort, isInboundPort and providesPort relations

  <Network Object O> --(isOutboundPort)--> <PortGroup G>

has the meaning:

  For all Port P, where: <PortGroup G> --(hasPort)--> <Port P>:
  <Network Object O> --(isOutboundPort)--> <Port P>

The same applies to isInboundPort and providesPort relations:

  <Network Object O> --(isInboundPort)--> <PortGroup P>
  <Service S> --(providesPort)--> <PortGroup P>

4) hasLabelGroup relation

  <PortGroup G> --(hasLabelGroup)--> <Label group V>

has the meaning:

  For every label v ∈ V: ∃ Port P:
    <PortGroup G> --(hasPort)--> <Port P>
    <Port P> --(hasLabel)--> <Label v>

The same applies to LinkGroups:
  <LinkGroup G> --(hasLabelGroup)--> <Label group V>

5) isSource and isSink relations

  <PortGroup G> --(isSource)--> <LinkGroup H>

has the meaning:

  There is a Label group V such that:
  <PortGroup G> --(hasLabelGroup)--> <Label group V>
  <LinkGroup H> --(hasLabelGroup)--> <Label group V>
  
  and for every label v ∈ V: there is a Port P and a Link L:
    <PortGroup G> --(hasPort)--> <Port P>
    <LinkGroup H> --(hasLink)--> <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

This is the same as the following definition (which is a bit longer, but does not use the Label group concept):

  For every Port P, where: <PortGroup G> --(hasPort)--> <Port P>,
  there is a Link L, such that:
    <LinkGroup H> hasLink <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

furthermore, for every Link L, where: <LinkGroup H> --(hasLink)--> <Link L>,
  there is a Port P, such that:
  ∀ Link L ∈ LinkGroup H: ∃ Port P ∈ PortGroup G:
    <PortGroup G> --(hasPort)--> <Port P>:
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

The same applies to the isSink relation.

6) Identification of Ports in a PortGroup by its properties

A Port can be identified by its own (URI) identifier.

If there is a NML property (or there are NML properties) that allow unique identification of each Port within a 
PortGroup, then a Port may be identified by this property (or these properties) and the URI of the PortGroup.

A prime example is a PortGroup that contain all channels at a given multiplexing adaptation. For example, all VLANs at a
 specific Ethernet interface. In that case, a specific Port can be identified by the combination of the PortGroup URN 
and the VLAN label.

The syntax for identifying a Port in a PortGroup by its properties is not defined in NML version 1.

7) Complex PortGroups

The only properties a Port currently has are the id, name, encoding and label. With the definition in (6), in practise, 
only the label (and perhaps name) can be used to uniquely identify a Port in a PortGroup.

However, it may be useful for a user to define a PortGroup as all outbound ports of a Topology, which -if they are all 
VLAN tagged Ports- may be identified by the Node, the Port and VLAN. Similarly, a user may define a PortGroup that 
contains all Ports of a complex adaptation stack, which may be defined by the combination of wavelength and VLAN label. 
However, a node is not a property of a Port, and a Port can only have one label type (the wavelength is a property of 
the underlying WDM Port, not of the VLAN Port), so according to the definition in (6) it is not possible to identify 
these Ports by their NML properties. Also, it is often not possible to create relations between such a PortGroup to 
other PortGroups or LinkGroups, due to limitations in the definitions of (4) and (5) above. It is desirable to lift 
these limitations.

The syntax for identifying a Port in a PortGroup by multiple properties, or non-Port properties is not defined in NML 
version 1.

The following relations define a PortGroup as explained in the second example:

  <Port myLink> --(hasService)--> <Service wdm>
  <Service wdm> --(providesPort)--> <PortGroup myWavelengths>
  <PortGroup myWavelengths> --(hasService)--> <Service 802.1q>
  <Service 802.1q> --(providesPort)--> <PortGroup myVLANs>

This requires that the following relation is allowed:

  <PortGroup> --(hasService)--> <Service>

(Currently only <Port> --(hasService)--> <Service> is allowed)

It is proposed to allow this relation, but mark it as "EXPERIMENTAL", meaning that it is NOT RECOMMENDED for use in 
production services.
Submitted By: Freek Dijkstra
Submitted On: 07/13/2012 7:42 AM EDT
Last Modified: 11/30/2012 7:27 AM EST
Closed: 11/30/2012 7:27 AM EST

Status / Comments Change Log Associations Attachments  
 (4 Items)
Field Old Value New Value Date Performed By
Closed 11/30/2012 11/30/2012 7:27 AM EST Jeroen van der Ham
Status
Under discussion
Completed
11/30/2012 7:27 AM EST Jeroen van der Ham
Priority
4
1
08/08/2012 10:22 AM EDT Freek Dijkstra
Description
1) PortGroup and LinkGroup

A PortGroup is an unordered set of Ports
A LinkGroup is an unordered set of Links

2) hasPort / hasLink relation

  <PortGroup G> --(hasPort)--> <Port P>
  <LinkGroup H> --(hasLink)--> <Link L>

In XML, the hasPort and hasLink relations are implicit. E.g. the following XML 
and RDF statements are equivalent:

  <nml:PortGroup id="urn:ogf:network:example.net:2012:myportgroup">
    <nml:Port idRed="urn:ogf:network:example.net:2012:myport"/>
  </nml:PortGroup>

  @prefix nml: <http://schemas.ogf.org/nml/base/2013/10/>; .
  @prefix ex: <urn:ogf:network:example.net:2012:> .
  ex:myportgroup  a            nml:PortGroup .
  ex:myportgroup  nml:hasPort  ex:myport     .
  ex:myport       a            nml:Port      .

3) isOutboundPort, isInboundPort and providesPort relations

  <Network Object O> --(isOutboundPort)--> <PortGroup G>

has the meaning:

  For all Port P, where: <PortGroup G> --(hasPort)--> <Port P>:
  <Network Object O> --(isOutboundPort)--> <Port P>

The same applies to isInboundPort and providesPort relations:

  <Network Object O> --(isInboundPort)--> <PortGroup P>
  <Service S> --(providesPort)--> <PortGroup P>

4) hasLabelGroup relation

  <PortGroup G> --(hasLabelGroup)--> <Label group V>

has the meaning:

  For every label v ∈ V: ∃ Port P:
    <PortGroup G> --(hasPort)--> <Port P>
    <Port P> --(hasLabel)--> <Label v>

The same applies to LinkGroups:
  <LinkGroup G> --(hasLabelGroup)--> <Label group V>

5) isSource and isSink relations

  <PortGroup G> --(isSource)--> <LinkGroup H>

has the meaning:

  There is a Label group V such that:
  <PortGroup G> --(hasLabelGroup)--> <Label group V>
  <LinkGroup H> --(hasLabelGroup)--> <Label group V>
  
  and for every label v ∈ V: there is a Port P and a Link L:
    <PortGroup G> --(hasPort)--> <Port P>
    <LinkGroup H> --(hasLink)--> <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

This is the same as the following definition (which is a bit longer, but does 
not use the Label group concept):

  For every Port P, where: <PortGroup G> --(hasPort)--> <Port P>,
  there is a Link L, such that:
    <LinkGroup H> hasLink <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

furthermore, for every Link L, where: <LinkGroup H> --(hasLink)--> <Link L>,
  there is a Port P, such that:
  ∀ Link L ∈ LinkGroup H: ∃ Port P ∈ PortGroup G:
    <PortGroup G> --(hasPort)--> <Port P>:
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

The same applies to the isSink relation.

6) Identification of Ports in a PortGroup by its properties

A Port can be identified by its own (URI) identifier.

If there is a NML property (or there are NML properties) that allow unique 
identification of each Port within a PortGroup, then a Port may be identified by
 this property (or these properties) and the URI of the PortGroup.

A prime example is a PortGroup that contain all channels at a given multiplexing
 adaptation. For example, all VLANs at a specific Ethernet interface. In that 
case, a specific Port can be identified by the combination of the PortGroup URN 
and the VLAN label.

The syntax for identifying a Port in a PortGroup by its properties is not 
defined in NML version 1.

7) Complex PortGroups

The only properties a Port currently has are the id, name, encoding and label. 
With the definition in (6), in practise, only the label (and perhaps name) can 
be used to uniquely identify a Port in a PortGroup.

However, it may be useful to define a PortGroup as all outbound ports of a 
Topology, which -if they are all VLAN tagged Ports- may be identified by the 
Node, the Port and VLAN. Similarly, a PortGroup may be defined that contains all
 Ports of a complex adaptation stack, which may be defined by the combination of
 wavelength and VLAN label. However, a node is not a property of a Port, and a 
Port can only have one label type (the wavelength is a property of the 
underlying WDM Port, not of the VLAN Port), so according to the definition in (6
) it is not possible to identify these Ports by their NML properties. Also, it 
is often not possible to create relations between such a PortGroup to other 
PortGroups or LinkGroups, due to limitations in the definitions of (4) and (5) 
above. It is desirable to lift these limitations.

The syntax for identifying a Port in a PortGroup by multiple properties, or non-
Port properties is not defined in NML version 1.

The following relations define a PortGroup as explained in the second example:

  <Port myLink> --(hasService)--> <Service wdm>
  <Service wdm> --(providesPort)--> <PortGroup myWavelengths>
  <PortGroup myWavelengths> --(hasService)--> <Service 802.1q>
  <Service 802.1q> --(providesPort)--> <PortGroup myVLANs>

This requires that the following relation is allowed:

  <PortGroup> --(hasService)--> <Service>

(Currently only <Port> --(hasService)--> <Service> is allowed)

It is proposed to allow this relation, but mark it as "EXPERIMENTAL", meaning 
that it is NOT RECOMMENDED for use in production services.
1) PortGroup and LinkGroup

A PortGroup is an unordered set of Ports
A LinkGroup is an unordered set of Links

2) hasPort / hasLink relation

  <PortGroup G> --(hasPort)--> <Port P>
  <LinkGroup H> --(hasLink)--> <Link L>

In XML, the hasPort and hasLink relations are implicit. E.g. the following XML 
and RDF statements are equivalent:

  <nml:PortGroup id="urn:ogf:network:example.net:2012:myportgroup">
    <nml:Port idRed="urn:ogf:network:example.net:2012:myport"/>
  </nml:PortGroup>

  @prefix nml: <http://schemas.ogf.org/nml/base/2013/10/>; .
  @prefix ex: <urn:ogf:network:example.net:2012:> .
  ex:myportgroup  a            nml:PortGroup .
  ex:myportgroup  nml:hasPort  ex:myport     .
  ex:myport       a            nml:Port      .

3) isOutboundPort, isInboundPort and providesPort relations

  <Network Object O> --(isOutboundPort)--> <PortGroup G>

has the meaning:

  For all Port P, where: <PortGroup G> --(hasPort)--> <Port P>:
  <Network Object O> --(isOutboundPort)--> <Port P>

The same applies to isInboundPort and providesPort relations:

  <Network Object O> --(isInboundPort)--> <PortGroup P>
  <Service S> --(providesPort)--> <PortGroup P>

4) hasLabelGroup relation

  <PortGroup G> --(hasLabelGroup)--> <Label group V>

has the meaning:

  For every label v ∈ V: ∃ Port P:
    <PortGroup G> --(hasPort)--> <Port P>
    <Port P> --(hasLabel)--> <Label v>

The same applies to LinkGroups:
  <LinkGroup G> --(hasLabelGroup)--> <Label group V>

5) isSource and isSink relations

  <PortGroup G> --(isSource)--> <LinkGroup H>

has the meaning:

  There is a Label group V such that:
  <PortGroup G> --(hasLabelGroup)--> <Label group V>
  <LinkGroup H> --(hasLabelGroup)--> <Label group V>
  
  and for every label v ∈ V: there is a Port P and a Link L:
    <PortGroup G> --(hasPort)--> <Port P>
    <LinkGroup H> --(hasLink)--> <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

This is the same as the following definition (which is a bit longer, but does 
not use the Label group concept):

  For every Port P, where: <PortGroup G> --(hasPort)--> <Port P>,
  there is a Link L, such that:
    <LinkGroup H> hasLink <Link L>
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

furthermore, for every Link L, where: <LinkGroup H> --(hasLink)--> <Link L>,
  there is a Port P, such that:
  ∀ Link L ∈ LinkGroup H: ∃ Port P ∈ PortGroup G:
    <PortGroup G> --(hasPort)--> <Port P>:
    <Port P> --(hasLabel)--> <Label v>
    <Link L> --(hasLabel)--> <Label v>
    <Port P> --(isSource)--> <Link L>

The same applies to the isSink relation.

6) Identification of Ports in a PortGroup by its properties

A Port can be identified by its own (URI) identifier.

If there is a NML property (or there are NML properties) that allow unique 
identification of each Port within a PortGroup, then a Port may be identified by
 this property (or these properties) and the URI of the PortGroup.

A prime example is a PortGroup that contain all channels at a given multiplexing
 adaptation. For example, all VLANs at a specific Ethernet interface. In that 
case, a specific Port can be identified by the combination of the PortGroup URN 
and the VLAN label.

The syntax for identifying a Port in a PortGroup by its properties is not 
defined in NML version 1.

7) Complex PortGroups

The only properties a Port currently has are the id, name, encoding and label. 
With the definition in (6), in practise, only the label (and perhaps name) can 
be used to uniquely identify a Port in a PortGroup.

However, it may be useful for a user to define a PortGroup as all outbound ports
 of a Topology, which -if they are all VLAN tagged Ports- may be identified by 
the Node, the Port and VLAN. Similarly, a user may define a PortGroup that 
contains all Ports of a complex adaptation stack, which may be defined by the 
combination of wavelength and VLAN label. However, a node is not a property of a
 Port, and a Port can only have one label type (the wavelength is a property of 
the underlying WDM Port, not of the VLAN Port), so according to the definition 
in (6) it is not possible to identify these Ports by their NML properties. Also,
 it is often not possible to create relations between such a PortGroup to other 
PortGroups or LinkGroups, due to limitations in the definitions of (4) and (5) 
above. It is desirable to lift these limitations.

The syntax for identifying a Port in a PortGroup by multiple properties, or non-
Port properties is not defined in NML version 1.

The following relations define a PortGroup as explained in the second example:

  <Port myLink> --(hasService)--> <Service wdm>
  <Service wdm> --(providesPort)--> <PortGroup myWavelengths>
  <PortGroup myWavelengths> --(hasService)--> <Service 802.1q>
  <Service 802.1q> --(providesPort)--> <PortGroup myVLANs>

This requires that the following relation is allowed:

  <PortGroup> --(hasService)--> <Service>

(Currently only <Port> --(hasService)--> <Service> is allowed)

It is proposed to allow this relation, but mark it as "EXPERIMENTAL", meaning 
that it is NOT RECOMMENDED for use in production services.
07/13/2012 7:45 AM EDT Freek Dijkstra

 
 


The Open Grid Forum Contact Webmaster | Report a problem | GridForge Help
This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6569 at Sun, 06 Nov 2022 14:38:21 GMT