[Nsi-wg] Determining the Network of an STP
Jerry Sobieski
jerry at nordu.net
Fri Jun 29 12:37:34 EDT 2012
Hi Freek- you are essentially correct. But there is some added comments
inline.
On 6/27/12 6:00 PM, Freek Dijkstra wrote:
> During today's call, Jerry brought up the following issue:
> (Jerry, please correct me if I'm wrong, and sorry if I mixed up the NSI
> with the NML terminology).
>
> A path computation engine needs to know in which domain a STP lies.
Bingo. At least for the inter-domain environment in which NSI operates.
>
> There are solutions to this:
> 1. The domain can be inferred by parsing the URN identifier of the STP.
> 2. Each domain announces a full list of it's STPs, and the path
> computation engine keeps a table of all STP-Domain relations
> 3. Each connection request must not only list the URN of the STP,
> but the URN of the domain as well.
>
> The current solution is (1), but that conflicts with the choice in NML
> that a URN may not contain the domain identifier and should not be
> interpreted/parsed. Solution (2) or (3) do not have this drawback.
> Solution (2) seems less scalable compared to solution (3).
#1 was adopted by NSI WG in SLC last summer as an interim approach for
v1 topology. A lot of issues were still unclear, so we took the interim
step to use the simple DToX model (and we even needed to modify it a bit
too.) Part of this decision included munging the 2-tuple STP name into
a single URN string (this was not a unanimous approach - but it got us
off the mark.) This #1 approach does require that NSA aggregators need
to parse the STP URN to determine the home network - I am not strictly
opposed to parsing an *NSI* STP name to decompose it into some
structural components, but I do agree that parsing a *URN* specifically
is counter to the purpose of a URN. And mapping any content or
structure onto a URN besides administrative scoping is almost always a
bad idea. (I think some v1.x implementations cheated with this approach
and used the RDF topology as a directory to look up STP URNs to get
name-domain mappings...while this avoided parsing the URN, it is not
strictly conformant to the NSI framework and breaks if the STPs are not
all defined in the topology. The NSI framework will work as long as the
STP 2-tuples are used for STP references. )
#2 is essentially a directory service - whether your distribute STPs as
part of the topology or as a separate phonebook, you have the same
problem: All STPs must be defined and announced in this global directory
before they can be used in a Reservation Request. This
phonebook/directory service is computationally tractable, but it
nonetheless has scalability issues for a global inter-domain service
like NSI. It is centralized (bad), or it is distributed (requiring
complex protocol to keep it coherent and convergent.) And frankly, for
simple end system STPs it is unnecessary as long as the STP reference
includes the network id innately - which it currently does. Unless we
want a flat name space without hierarchical structure, then our 2-tuple
model provides a basic hierarchical interdomain mapping that precludes
the need for a global STP directory service.
I would phrase #3 a bit differently: The STP name is already and *by
definition* a 2-tuple consisting of the network (domain) identifier and
a local identifier. These two elements together comprise the STP
name. I would suggest that an STP reference might be a compound object
ala:
<stp_ref>
<net_id>nordu.net</net_id>
<loc_id>svr1-1-204</loc_id>
</stp_ref>
This #3 is (IMO) the best solution. It explicitly delineates the
<networkid> component from the <localid> component - which means parsing
a single string or URN is not required, and the name-domain mapping is
explicit in the reference precluding the need for a directory. With
the compound reference, as long as the network can be found in the
topology, the NSI PF does not need to know specifically how to route to
the local end point. the local NSA will resolve that internally.
I would surmise that this compound STP object could still be given a
URN, which would make it useable within the current RDF/OWL topology.
But this then would re-introduce the need for directories.
The aspect that I like about #3 using the compound reference is that it
allows us to separate the naming of objects internal to the NSI code
implementations from the names that users and engineers may wish to use
to identify their networks and end points more generally and which users
will wish to use when specifiying their requests. The URNs for user
interfacing are horrid.
One last observation: By referencing STPs as compound objects we
obviate the need for global directories. We also do not need to define
STPs globaly if/when they only have local significance. (An STP is
"only locally significant" if it does not share an SDP with another
network.) Thus we don't need to advertise these local only end point
names in topology as the path finders get what they need from the STP
reference itself. However, this *does not* preclude the need to
advertise STPs that *are* part of an NSI SDP adjacency(!!). These
adjacencies must still be advertised as part of the topology - indeed,
these SDPs define the topology, the inter-connectivity among networks.
Hope this helps!
Have a nice weekend!
Jerry
>
> Regards,
> Freek
> _______________________________________________
> nsi-wg mailing list
> nsi-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nsi-wg
More information about the nsi-wg
mailing list