[Nsi-wg] Pathfinding, Labels, and Topology (a bit long)
Jerry Sobieski
jerry at nordu.net
Mon Nov 28 20:47:29 CST 2011
Hi everyone - this is long (sorry) but this is a long held response to
the so called "label" issue. We need to engage on this...
Our topology model works just fine for path finding. Period. As is.
It is critical for people to understand this. It works for flat VLANs,
it works for swapping, it works for essentially any network connection
service. Try to get away from conventional signaling ways of thinking
and look at how NSI is positioned to do this and the power it brings.
NSI is about *connections* - not VLANs, not waves, not LSPs... The
abstraction it presents to the user is a connection model that works
regardless of underlying technologies.
We want to optimize it so that it is more efficient, but _/it does work
now /_- make no mistake on this. And if we want to optimize it, you
need to make sure we understand what is happening and that we are
optimizing where it will help. Not simply posing one technology specific
nuance.
Given our present NSI topology, VLAN selection is not a problem. Any
application agent (uRA) that wishes to initiate a connection between two
endpoints can issue a ReservationRequest specifying the STPs it wants as
the endpoints. Since that uRA is making the initial request - we
*must* assume it knows the endpoints it wishes to connect. There is no
way for a PA to presume to know where the RA wants to connect except by
the RA specifying the specific endpoints in the connection request.
If the uRA has some internal flexibility and is able to use any endpoint
from of a custom set of useable endpoints, then the uRA can/should just
choose one itself and ask for that endpoint in the connection request.
We must presume that the requesting agent is also aware of which
endpoints are available for its purposes if it knows which are usable.
And why would any requesting agent say "oh - just give me a connection
from anywhere to anywhere...I don't care..." ??? Thats just odd...
So do we need to represent every possible label as an endpoint? as an
STP? Maybe not... We don't necessarily define a host name for every IP
address in our /8 - but those IP addresses nevertheless exist. But we
do define host names when we want to disassociate the name of the host
from the particular IP address it may currently be using. There are
probably more efficient ways to represent the endpoint STPs than full
enumeration, but _/the abstraction is critically important: Connections
need specific endpoints. /_ So we can either specify a symbolic name
(STP) to represent the specifics of the topological point it represents,
or we need to find another generic way to represent topological points
that are [un-enumerated] STPs. Perhaps an arbitrarily long tuple that
describes the topological address:
network/switch/blade/port/color/label/label/label/label...etc.? ( this
is similar to using the IP address itself rather than a hostname,
right?) In this scenario, we can enumerate named STPs, or we could
simply use the raw tuple itself in the ReservationReq (e.g.
<network><switch><port><label>) to identify the desired endpoint.
This implies some added semantics are necessary in the topology
relations, and at least a minor change to the CS protocol to accept
either form of an endpoint specification,... but it does not break the
high level connection abstractions. This is very important. Thoughts?
Another key aspect we must now be explicit about is how we do
pathfinding. Path selection is a process of selecting a sequence of
hops through networks, nodes devices etc. In order for a path finder
to decide if a "hop" will work for a path request, the pathfinder must
be able to "model" that hop, or predict its function - match a set of
service constraints against the parameters that describe that object.
For example: In order to decide if a SONET circuit can be
crossconnected through a device, one must be able to understand the
functioning of that device- is it a Ethernet switch? SDH? Infinband?
MPLS? Likewise, if one wants to know if an NSI Network will form a
valid component of a "connection", one must know something about how
that NSI Network object functions.
We are no longer in a monolithic network where every switching device is
implicitly the same. So each topological element must have a Transit
Function (TF) that describes it. Ala "network", "GOLE", "node", a
"switch", etc. Without this, explicitly or implicitly, pathfinding
cannot work. End of story. This TF may be a type code: such as
F10E300, or C7609, etc. or a generic function: Node, Multiplexor, Demux,
Encapsulater, de-encapsulator. switch, etc. and those codepoints must
be explicitly defined so that *all* pathfinders can interpret their TF
consistently when they are found in a topology. Is DToX ontology
something that could function in this manner? Could we tweek it to do so?
We can possibly define a set of basic "well known" Transfer Functions,
but I doubt we will be able to define /all possible/ transfer functions,
and at some point there will be some device or region which we will not
know how to model...an opaque region of the topology. In these cases,
the only alternative is to have an agent written that models that
particular device and ask that agent to model it for us and just give us
a pass/fail for our constraints. So while we may be able to model
some generic topological functions, and maybe even some common complex
devices, we won't be able to practically model in detail complex regions
or the exact details of low level devices...so we need to identify an
oracle or an agent associated with each such topological object that we
can query to see if the object can/will work, and to reserve the
resources for this request.
So for now, all we have in the NSI topology are "NSI Networks". These
*DO* have a Transfer Function. Its implicit, and may be the default,
but it is the following: "Any [ingress] port can be crossconnected to
any [egress] port - if resources are available." The "any to any" is
important, but the real rub is the "if resources are available". So in
our current model, the TF is implicit but clear nonetheless, and the
"oracle" is the NSA.
As we stand now, all NSI Networks by default are assumed to have the
"any-to-any" TF. We use that fact to select a candidate path, and then
we check resource availability with a ReservationRequest. Since some of
our networks cannot actually do "any-to-any" (i.e. they were advertising
untruths about their capabilities), those NSAs simply reject the
requests they cannot perform as if they had just run out of resources.
A robust remote pathfinder will try alternate paths until all
possibilities are exhausted.
Indeed, to indicate limited VLAN crossconnectivity we could in fact
advertise separate networks - one for vlan 1780, one for vlan 1781, etc.
This works. Quite well in fact. And short circuits the exhaustive
search issue...as all crossconnects *can* actually be made if resources
are available, and a remote PF simply has to choose the right egress
from the preceding network. IF they are advertising correctly, then
the exhaustive VLAN search problem is solved. For example: NL > SL; if
NL can swap and indicates so by offering all SDPs in one network, and SL
splits into four networks SL80,SL81,SL82,and SL83 to indicate which
crossconnects can be made by each service region - each terminating the
right link from NL, then it all works...no changes necessary except to
the topology description. This may suck as a general solution due to
the many VLAN planes required, but its really a flaw with the Ethernet
switching capabilities at SL - it can not swap VLANs...no wishing will
change that. Further, such VLAN planes may not represent VLAN planes at
all - they may represent other types of limitations...so simply because
they rub the fur the wrong way doesn't mean they are inappropriate or an
aberation that will never really be seen. Its not the topology
abstractions or the protocol abstractions at fault.
But admittedly, searching the space is slow - which is one problem, but
not a fault of the architecture or the protocol. We need to understand
why such simple ReservationRequests with known available but limited
resources like in the demos takes more than a couple milliseconds...
(!) Even latency across oceans cannot be held blameless here - as a
more efficeint MTL might require far fewer handshakes...The NSI protocol
itself is not chatty.
The false assumption we have is that by knowing topology that we will
magically be able to speed everything up. There is no free lunch -
labels do not fundamentally remove the complexity of the processing and
so will only speed things up in certain cases. It would be a tragedy to
throw away powerful abstractions for such a small gain. And Global
topology won't speed things up either, indeed it is far more likely to
overwhelm with deluge of detail. What we *might* be able to do is
provide a *better* solution...i.e. even though the complexity is high,
we may be able to produce a more exacting path - one that is better in
certain measurable ways over conventional hop-by-hop PF.
So let me reiterate: Enumerating the STPs we wish to use to form a
resource pool is *NOT* a scaling problem. The size of the XML data
representation is not the problem - if it were, we would not insist on
using XML based representations. Is it the size of the database that
concerns us by representing each possible STP for each VLAN??...nah - we
would have to do that anyway if each VLAN were actually used for
circuits. So that doesn't fly as a scaling issue either. And in
fact, the enumeration of every VLAN does not add computational
complexity in itself - its linear with the number of VLANs available no
matter how many networks there are. And frankly, there is *no*
requirement that the XML (OWL) representation must be retained internal
to an NSA...we only stipulate that it be in RDF/OWL format for common
exchange and common interpretation. An NSA can store the info
internally however it deems most efficient. And any decent RDB can
index millions of VLAN entries and/or connections and/or semantic
relations in a DB effortlessly. So just enumerating the VLANs (labels)
as STPs is not really an issue...its just not.
Where we have a possible concern is the search space and the potential
of an exhaustive search over a large space can in fact be huge. So we
want tread carefully, to do so efficiently. But this complexity problem
will not be solved with labels - The search space is still the same
whether you pose labels as attributes or as enumerated items. And since
all you can minimally assume will be available in the topology are the
STPs and SDP adjacencies, you might have to do the search anyway like it
or not.
The real constraints are not choosing a label, its checking the
availability of selected resources. The only way to optimize the
constraint based search problem to choose the order of your constraint
checking so as to prune the search space effectively. VLAN id is
probably not an efficient primary constraint to accomplish that.
Further, how you represent the topology internal to an NSA is a
implementation issue. If a remote pathfinder has to search by trial
and error to find a successful VLAN...you are ignoring all the other
constraints that could either themselves make the search space enormous
or could significantly prune the search space apriori if chosen
wisely. We cannot dis an exhaustive search for a useable VLAN unless
you also look at all the other constraints for their complexity as
well. Pathfinding *IS* hard.. but you must optimize the entire process
- but label representation and selection is both a non-issue and the
least of our concerns.
And having selected a path, there is *still* the reservation process -
even if you had neon lights advertising the available VLANids at every
boundary, you still need to access the oracle (NSA) to confirm any
candiate path. And so you could very easily find yourself in an
exhaustive search looking for a VLAN that has the available capacity or
adequate buffering or...etc. Labels do not solve the search problem.
The only way to solve it is to provide a full detailed topology to every
pathfinder (not likely in real world or even the R&E world) or ask the
local pathfinder with access to the local topology details and state to
select a path for you (much more viable approach). There is a middle
ground also, where the remote pathfinder may have some partial (high
level) topology view and can select some high level path, and then
contact each object (network) along that path and ask them to confirm
their portion of it with their internal detailed information. This
latter middle ground is IMO the best we can hope for. But even our
worst case on minimal topology knowledge works as we saw last week in
Seattle.
Opaque topology regions are not evil. They can be highly useful. They
are how the NSI Framework scales. And they are essential to enable each
network to assert their own autonomy and to hide minutia details.
Asserting that technology specific nuances are necessary for NSI remote
pathfinders to work is simply not true. These past demos are proof.
You can't tell me that its a protocol scaling issue if the absolute
worst case exhaustive search of a VLAN space consisting of roughly 1000
combinations would take more than a few seconds ... if it does, on a
network with 12 nodes, we have some very very poor implementations.
And unfortunately, labels do not solve this problem. The problem is the
fact that you want to do tree segmentation (i.e. remotely choose the
endpoints across each network) and at the same time want the target
network to choose the endpoints for you so you don't have to try lots of
reservations...duh! What you are implicitly saying is that "I really
want the local pathfinder would do the hard stuff because it is so much
faster dealing with its own topology and has so much more state
knowledge...hmmm....
Finally, I am unable to see a requirement where intermediate VLAN IDs
that form a peering between two transit networks are of issue to the
original connection request. If the transit network can swap vlans, then
you can choose any intermediate vlan you want - i.e. any STP regardless
of which VLAN it represents... And if it doesn't do vlan translation but
implied it could because it advertised the functionality in the topology
and now you are stuck doing an exhaustive search...who's fault is that?
Its not a NSI problem if a network misrepresents what it can do or runs
out of resource. If a PF simply cannot progress the connection - for
VLAN reasons or other resources, its not going to be solved by
labels. As discussed above, a reservation can be rejected for lots
of reasons leading to an exhaustive search for a viable STP.. In any
case, picking an intermediate point because of its VLAN tag is IMO
superfluous. Its what old signaling protocols had to do because of
the way they were designed. NSI accomplishes this but in a highly
structured manner.
We have an extremely novel and powerful architecture in NSI. Don't
trip over the conventional thinking of conventional protocols...if we
want conventional - just use GMPLS. or Q2931 or Q2764... or IDCP (:-)
Best regards all- Thanks for reading...
Jerry
On 11/28/11 11:23 AM, ogf-nsi-project at googlecode.com wrote:
> Comment #2 on issue 50 by jmacau... at gmail.com: Pathfinding functionality
> review
> http://code.google.com/p/ogf-nsi-project/issues/detail?id=50
>
> At the NSI protocol currently stands we would have to fully qualify a
> reservation request at the root PA. There is no mechanism in place for
> space based parameters to be negotiated down the tree since each child PA
> may select a different set. Something to think about when designing the
> vlan capabilities. The root PA will need to be able to select that target
> vlan.
>
> _______________________________________________
> nsi-wg mailing list
> nsi-wg at ogf.org
> http://www.ogf.org/mailman/listinfo/nsi-wg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/nsi-wg/attachments/20111128/0fdcee5f/attachment-0001.html
More information about the nsi-wg
mailing list