[Nsi-wg] Bidirectional Link (was Re: [AutoGole] Ports relations)
Jerry Sobieski
jerry at nordu.net
Fri Sep 27 09:53:07 EDT 2013
SOme other considerations on unidirectional vs bidirectional Connections
and Topology:
1- Unidirectional topology is (IMO) just the atomic construct for an
interface. And as JvdH says, we should be able to construct more
complex or capability specific topo components from these atomic elements.
2. Atomic Bidirectional links are problematic. For path finders, these
circuit paths are almost never actually occupying the same physical
resources- these are typically paired up elements that have been
packaged together for human convenience - not for automated agents. For
example: switches employ [only] unidirectional fabrics internally. The
fabric has a set of input ports and a separate following set of output
ports. The device switches circuits or frames or packets from any input
port to a designated output port according to a Look Up Table (LUT).
The design engineers simply relate an arbitrary input port on the fabric
with an output port on the fabric, and then connect those two
unidirectional ports to a duplex connectors on the faceplate and they
call it a single interface with transmit and receive sides. Even
ethernet does this inside a switch, as do routers.
And other technologies - such as optical DWDM platforms - don't even
hide this fact...the engineers do everything manually and
unidirectionally in the transmit receive optics. So if we really want
to be able to avoid lots of technology specific hacks in the topology
descriptions and path finders, we should adopt the unidirectional
interface as an atomic element, and then make sure we have appropriate
and generalized means of composing other topological service constructs
from those atomics.
3. Bidirectional Connections with guarantees capacity/performance will
pose scaling problems in the point to multipoint model. In a mp
connection model, the output capacity at any destination endpoint must
be the sum of all input capacities of the other endpoints. This is fine
if you have a single source (i.e. unidirectional) p2mp connection. But
in bidirectional mp connections you have multiple sources. It becomes
a mp2mp connection (!!) (e.g. if 5 endpoints all want to be part of a
bidirectional connection, then you have actually created a broadcast
domain, a mp2mp tree - not a single source p2mp multicast tree. And if
each of those 5 endpoints want to transmit at 1 Gbps, then it is
possible that all endpoints will get 5 Gbps of traffic delivered to
them.) If you do not maintain this summation rule, then you cannot
guaranty the performance of the bidirectional Connection under all input
conditions - and so it becomes a best effort class of service. (Its
starting to sound more and more like conventional ethernet, eh?) If
you can only guarranty best effort for the mp2mp broadcast domain, then
there is no real value to requesting a capacity specification in the
first place. Further, if you add an endpoint to a bidir mp2mp
connection, you then need to modify all of the existing endpoints and
their output segments if you wish to maintain performance guarantees,
which becomes totally impractical as the number of endpoints increases
or gets large (N^2 problem)
4. Bidirectional Connections would be better served if we treated them
as two unidirectional connections bound together by some specific
service constraints constraints that path finders can chew on. The
notion that such circuits transit the "same ports" in both directions is
flawed and inaccurate in almost all cases. For instance, what
specifically is our definition of a "bidirectional" NSI Connection? It
does not really occupy the same fibers or ports end to end, and it is
often separated by a meter or [much] more distance as it transits
different transport kit in the pops. So what are the specific
constraints we feed the path finders that differentiate a "valid"
bidirectional Connection layout from an "invalid" Connection path
layout? And if we can define a set of standard constraints that govern
the relation between forward and backward paths, do we have those
attributes defined in the topology such that path finders can see them
and use them?
I think bidirectional "Connections" (dba mp2mp "Broadcast Domains") are
useful - even without capacity guarantees. These are very practical and
useful service constructs (IMO) and it would be good (and easy!) for NSI
to support the reservation and provisioning of these. We can extend
the NSI-CS DestSTP semantics to include multiple end points. These
would build a single source tree for unidirectional Connections, with or
without capacity guarantees. And the same Reservation() syntax and
semantics can be used to build bidirectional mp2mp Connections - again
with capacity (slow and likely to exhaust resources) or without capacity
(the b.e. broadcast domain). The protocol can be extended easily
(IMO) to support both modes and maintain backward compatbility to
current v2 implementation.
So, the question comes down to this: Do we really need to differentiate
Unidirectional and Bidirectional connection constructs? Can we simplify
to just unidirectional, then build two independent connections going
each way? (Its what happens internally anyway...) What do we get from
a "bidirectional Connection" that you do not get from two "unidirected
Connections"? Its not sufficient to say we want bidir connections
because thats what Ethernet does...a) Ethernet does not do this (see
above), and b) this makes NSI technology specific rather than "service"
oriented. So what is the service requirement that dictates
Bidirectional connections be differentiated from Unidirectional
connections? (And how do we define that for PFs?) Would it not simplify
NSI protocol and syntax if we could have only unidirectional connections
and we compose more sophisticated services on top of those atomics ?
For instance: "Given circuit A1:=A1>Z1, I would like a circuit A2:=
Z2>A2 that is less than "R" radius from A1, AND the circuit A2 has an
average latency equal to +/-5% average latency of A1. Or just the
opposite: I want a circuit A2:= A2>Z2 that is greater than "R" radius
from this other circuit A1:=A1>Z1. (The former example would construct
a reverse path circuit A2 that is "close" to A1, the latter would
construct a diverse circuit A2 that is "far away" from A1.) My point
is that these types of constraint based specifications allow a much
richer set of functionality for the user, or for a service provider who
wants to compose higher level service constructs from the NSI base
protocols. These can scale globally so much easier because they do not
rely on specific hardware features, traditional human factors, or
antiquated service concepts.
...just some thoughts for discussion next week...:-)
J
On 9/27/13 6:21 AM, Henrik Thostrup Jensen wrote:
> On Wed, 25 Sep 2013, Jeroen van der Ham wrote:
>
>>> Hmm... that seems to be an unneeded artificial restriction. I
>>> should be able to build up my unidirectional topologies into other
>>> network constructs based on my needs. Saying you can only have
>>> unidirectional topology is like saying you can paint as much art as
>>> you want but only using black.
>
> Agreed 100%.
>
> While most things are unidirectional at the bottom (there are
> exceptions like true ethers), some equipment can only be controlled
> from a bidirectional point of view (say, most switches). They are by
> all accounts bidirectional as that is what can be controlled.
>
>> As soon as we would add this construct everyone would just use NML to
>> construct bidirectional topologies, and leaving out the
>> unidirectional part. Then if the need ever arises to do asymmetrical,
>> unidirectional, or disjoint return paths, then you can't because
>> everyone is using bidirectional constructs.
>
> If everyone could just buy ready-made cars, no-one would assemble
> their own cars or build weird 7-cylinder combustion engines, and very
> few people would even know how a car worked.
>
>
> Best regards, Henrik
>
> Henrik Thostrup Jensen <htj at nordu.net>
> Software Developer, NORDUnet
>
>
> _______________________________________________
> nsi-wg mailing list
> nsi-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nsi-wg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/nsi-wg/attachments/20130927/aefbc546/attachment-0001.html>
More information about the nsi-wg
mailing list