[Nml-wg] atributes of Services
Jeroen van der Ham
vdham at uva.nl
Mon Oct 1 07:26:31 EDT 2012
I'm for option 2 as well. It only adds a single new relationship. It also makes it very clear what you would get if you would request something.
Jeroen.
On 28 Sep 2012, at 17:22, Freek Dijkstra <freek.dijkstra at sara.nl> wrote:
> Hi,
>
> I'm reviewing the NML document a few times in detail, adding notes what
> examples are useful.
>
> One thing I can't seem to do is distinguish between the Ports that can
> be configured by an AdaptationService and the Ports are are already
> configured.
>
> The providesPort relation seem to aim the ports that are already
> configured, akin to providesLink for the SwitchingService.
>
>
> Current situation
> =================
>
> Here are the current attributes and relations for SwitchingService:
>
> - associate with static component:
> Node|Topology --(hasService)--> SwitchingService
> - associate (between) which (ports a) link CAN be created:
> SwitchingService --(hasOutboundPort)--> Port|PortGroup
> SwitchingService --(hasInboundPort)--> Port|PortGroup
> - associate which links are already configured:
> SwitchingService --(providesLink)--> Link|LinkGroup
>
> Here are the current attributes and relations for AdaptationService:
>
> - associate with static component:
> Port --(hasService)--> AdaptationService
> - associate which (client layer) ports CAN be created:
> AdaptationService --adaptationfunction--> URI (*)
> N/A
> - associate which ports are already configured:
> AdaptationService --(providesPort)--> Port|PortGroup
>
> (* The adaptationfunction attribute can be used to determine client
> layer encoding, but not the available labels)
>
>
> Here are three (3) proposals to rectify this omission and subsequently
> align the SwitchingService and AdaptationService definitions:
>
>
> Proposal 1: encoding and hasLabelGroup
> ======================================
>
> For SwitchingService (same as current situation):
>
> - associate with static component:
> Node|Topology --(hasService)--> SwitchingService
> - associate (between) which (ports a) link CAN be created:
> SwitchingService --(hasOutboundPort)--> Port|PortGroup
> SwitchingService --(hasInboundPort)--> Port|PortGroup
> - associate which links are already configured:
> SwitchingService --(providesLink)--> Link|LinkGroup
>
> For AdaptationService (add attribute and relation):
>
> - associate with static component:
> Port --(hasService)--> AdaptationService
> - associate which (client layer) ports CAN be created:
> AdaptationService --encoding--> URI
> AdaptationService --hasLabelGroup--> LabelGroup
> - associate which ports are already configured:
> AdaptationService --(providesPort)--> Port|PortGroup
>
>
> Proposal 2: canProvidePort
> ==========================
>
> For SwitchingService (same as current situation):
>
> - associate with static component:
> Node|Topology --(hasService)--> SwitchingService
> - associate (between) which (ports a) link CAN be created:
> SwitchingService --(hasOutboundPort)--> Port|PortGroup
> SwitchingService --(hasInboundPort)--> Port|PortGroup
> - associate which links are already configured:
> SwitchingService --(providesLink)--> Link|LinkGroup
>
> For AdaptationService (add canProve):
>
> - associate with static component:
> Port --(hasService)--> AdaptationService
> - associate which (client layer) ports CAN be created:
> AdaptationService --canProvidePort--> Port|PortGroup
> - associate which ports are already configured:
> AdaptationService --(providesPort)--> Port|PortGroup
>
>
> Proposal 2: canProvidePort
> ==========================
>
> For SwitchingService (same as current situation):
>
> - associate with static component:
> Node|Topology --(hasService)--> SwitchingService
> - associate (between) which (ports a) link CAN be created:
> SwitchingService --(hasOutboundPort)--> Port|PortGroup
> SwitchingService --(hasInboundPort)--> Port|PortGroup
> - associate which links are already configured:
> SwitchingService --(providesLink)--> Link|LinkGroup
>
> For AdaptationService (add canProvidePort):
>
> - associate with static component:
> Port --(hasService)--> AdaptationService
> - associate which (client layer) ports CAN be created:
> AdaptationService --canProvidePort--> Port|PortGroup
> - associate which ports are already configured:
> AdaptationService --(providesPort)--> Port|PortGroup
>
>
> Proposal 3: Behave like a SwitchingService
> ==========================================
>
> For SwitchingService (has[In|Out]boundPort is replaced with
> canConnect[Sink|Source]Port):
>
> - associate with static component:
> Node|Topology --(hasService)--> SwitchingService
> - associate (between) which (ports a) link CAN be created:
> SwitchingService --(canConnectSinkPort)--> Port|PortGroup
> SwitchingService --(canConnectSourcePort)--> Port|PortGroup
> - associate which links are already configured:
> SwitchingService --(providesLink)--> Link|LinkGroup
>
> For AdaptationService (it now is provided by a Node or Topology):
>
> - associate with static component:
> Node|Topology --(hasService)--> AdaptationService
> AdaptationService --(hasServerSinkPort)--> Port
> AdaptationService --(hasServerSourcePort)--> Port
> - associate which client AND server layer ports CAN be created:
> AdaptationService --(canConnectClientSinkPort)--> Port|PortGroup
> AdaptationService --(canConnectClientSourcePort)--> Port|PortGroup
> - associate which ports are already configured:
> AdaptationService --(providesClientSinkPort)--> Port|PortGroup
> AdaptationService --(providesClientSourcePort)--> Port|PortGroup
>
> The advantage of the later configuration is that is allows bidirectional
> adaptations services (no more distinction between AdaptationService and
> DeAdaptationService).
>
> With only minor modifications it is also possible to support inverse
> multiplexing adaptation. I did not add this, because I'm not a big fan
> (it adds more complexity, which can be provided with the more simple
> experimental isParallelCompoundLink relation.)
>
> My opinion
> ==========
>
> I would say proposal #2 is cleanest.
>
> What do you think?
>
> Freek
> _______________________________________________
> nml-wg mailing list
> nml-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nml-wg
More information about the nml-wg
mailing list