[Nsi-wg] Path Object information/function

Jerry Sobieski jerry at nordu.net
Thu Jan 21 20:42:02 CST 2010


See comments in line...

John Vollbrecht wrote:
> This is very good - thank you very much.  Some comments in line -- 
> except one here -- I like the name CTP rather than STP.  A major 
> reason is that this is on the transport plane, not the service plane, 
> and calling it service termination seems to me to imply service 
> plane.  I leave this discussion to later as it doesn't affect the meat 
> of the discussion.
>
My reasoning is that the "service" terminates at certain points in the 
topology - whether or not a connection is active.    The service can be 
delivered to those points.  While these are point in the tranport plane, 
they represent those locations at the edge of a contiguous service 
domain.     Once a service instance is established, i.e. a circuit or 
connection, then the end points of that connection could be called 
"connection Termination points".   But I do not think CTP is adequate 
when refering to the set of points that are reachable by the overall 
service.  

BTW & FYI-   GN3 is using the term Service Demarcation Point "SDP" in 
the inter-domain service architecture document.
>
> On Jan 20, 2010, at 2:24 PM, Jerry Sobieski wrote:
>
>> Here are some thoughts on what a "Path Object" (PO) should contain
>> and/or be able to do...please read thru and think about this and let me
>> know your thoughts.
>>
>> Jerry
>>
>>
>>
>> - A Path Object is an ordered list of service transit points (STPs)
>> through which a connection passes.
>>
>> - A Path Object must have at least two STPs: The ingress STP, and the
>> egress STP.
>>
>> - A Path Object should allow a path to be described using "sub-paths"
>> (i.e. other Path Objects) or pointers/tags that reference other  Path
>> Objects.
> - are there existing examples of this or is it a proposal?
This is a proposal - AFAIK it is new idea to support a means of 
describing a Path as containing one or more "path segments" which are 
implied to be concatenated (although the concept is found in many other 
areas of tree structures and linked lists)  This notion requires that 
the Path Object have a handle that can be resolved to find a structure 
or database record(s) that describe the subpath in terms [ultimately] of 
STPs.   If you look at the form of the Path Object I proposed, it should 
ultimately resolve into a list of STPs once all the sub-paths are 
expanded.   And further, a PO must contain at a minimum two STPs - the 
ingress and egress STPs.
>>
>> - A Path Object is direction sensitive.  I.e. The path is always
>> interpreted as beginning at the first STP (the head of the list), and
>> proceeding towards the last STP (the tail) in the list.   There is no
>> implication that a path object is reversable (or bidirectional).
>>
> does this have to do with pathfinding or is there something more to it?
Hmmm...  a path object refers to a sequence of points in a topology.  
There is nothing in the path object itself that states the purpose or 
context within which the path object was built or can/should be used.   
Therefore, we can not assume that the notion of proceeding from point A 
to point Z is equivalent if posed as proceeding from Z to A.  Indeed, 
the reverse path might be useful in some context, but we cannot assume 
that always (or ever) to be the case.   Reversability is  a function of 
the context  in which the PO is used.

>
>> -  A "fully specified" path identifies the complete set of STPs - in
>> order - that a connection transits from ingress to egress.
>>
> are these STPs for all resources in the path  that are controlled by 
> different NRMs
IN theory, a fuly specified Path Object would enumerate every valid 
service transit/termination point that the path traverses.   In 
practice, this will likely never be attainable since much of the path 
detail is local within each domain and in some cases may not be relevant 
(take the case of the reseller connection being reallocated - is this 
resold connection a concatenated part of the user connection? or is it a 
tunnel thru which the user sees simply the two end STPs?)   So it may 
not be terribly important to define a "fully" specified path object as 
it may not be something one can discern by looking at it, or will likely 
ever actually see in the wild.  But the notion of "pinned" paths - i.e. 
loose hop paths or partially specified paths - is important.
>> - A "partially specified" path identifies a subset of STPs - in order -
>> that the connection transits - but not necessarily every STP the
>> connection transits.  THis is a "loose hop" path
>>
>> - A partially specified path may contain STPs that are, individually,
>> only partially specified.  For example, a path may contain a STP
>> indicating a specific switching element to be transitted, without
>> specifying the specific port or VLAN id to be used.  This could also be
>> generalized to indicate something as general as an particular network to
>> be transitted.   Alternatively, the path element may specify a "label
>> set", i.e. a set of labels or STPs that can are acceptable within the
>> context of that STP.  THis may be useful for conveying valid VLAN IDs or
>> Wavelengths that may be available to path selection functions downstream
>> or for end-to-end tagging information.
>>
>> Path objects can be used in several ways: First, would be to specify
>> constraints on a *proposed* path - i.e. must transit this switch, but
>> port selection has full freedom.  Or must transit this previously defned
>> path.  The path objects need wild card masks to indicate these
>> constraints.   Second use is to define a connect "as built", i.e. after
>> the cnnection is full specified and/or in service, a fully specified
>> detailed Path Object would capture the entire detailed path - end-to-end
>> but perhaps not fully exposed.
>>
> I agree with this, but perhaps defining what is "required" and what is 
> "allowed" , especially in situations where a connection is made from 
> multiple RMAs in different provider agents.
In terms of NSI, and in particular the NSI "Connection Service", I think 
we need to discuss and define what an NRM will expect and return.   We 
interact with an NRM to reserve resources we know that NRM is 
responsible for - which means we have some topology information that 
tells us this.    So if our path finding suggests we'd like to at least 
try to allocate those resources, we can only specify them to the extent 
they exist in our topology DB.    If as we stipulated yesterday that the 
NRM uses an NSI protocol to communicate with a higher tier NSA, then we 
use the same NSI notions of STP and to describe the Path once it is 
confirmed.   It is the NRMs responsibility to do any hardware specific 
munging necessary to return an NSI compliant Path confirmation.

>
>
>> BNF format:
>>
>> <Path_Object>  :=  <Path_Object_Header> <Path_List>
>>
>> <Path_List>  := <STP>  ( <Path_Object> | <STP> ) +   |   <Path_Object>+
>>
>> Path elements can be STPs or Path Objects.  STPs represent topology
>> locations, these will likely be something such as:
>> <domain_identifier><pointID> or <dom><node><port><label><...>.   These
>> will likely be alphanumeric strings, possibly parsable, or they may be
>> binary structures...  Likewise with Path Objects - these will likely be
>> something like <domain><objectID>.   The key concept however is that the
>> Path Object contains two types of elements: service termination points
>> that refer to points in the topology, and a path object tag that refer
>> to another strucutre outside the current path object.  So each elemnt of
>> the path list must have a type code to say what type of path element it
>> is, and then a string to uniquely dentify that object within a local
>> context, and a length that says how long the object tag is.
>>
>
> So, for something like the chain model where segments A-B-C are 
> included.  Typically provider A gets request, inludes ingress and 
> egress of A in the path and forwards the path in a request to B.  I 
> think the ingress and egress of A need to be either dropped or marked 
> as "not part of the request to B".  I think this might be done 
> explicitly or by implication, but would be good to define.
>
In the Chain Model, the path is nominated and explored forward, but 
confirmed backward.  The Path Object is actually built backwards as the 
local [confirmed] portion of the path is prepended to the confirmed 
downstream portion of the path, and the resulting path object confirmed 
and returned upstream towards the originating requester.    The Path 
Object structure itself may be manipulated in lots of ways - it may be 
built forward or backward or from the center as requests or confrmations 
are sent/received, it may be editted and/or expanded or reduced based on 
lots of different needs or processes.   And I can see there would be 
intermediate or temporary path objects that might be necessary during  
path finding/reserving process, or for other related processes.   How it 
is constructed will be a function of the process that constructs it, but 
thats perfectly fine.  

Ultimately, a valid Path Object should provide information describing a 
tour through a topology.  I suggest this should be an ordered sequence 
of points that the tour must/does transit.  And it must minimally have a 
starting point and and ending point.   For NSI purposes, I suggest that 
the PO should consist of two basic path elements: 1)  an actual transit 
point,  and 2) an element that refers to another [sub] path object.     
  Note: while the path object must provide path information, this does 
not mean that all path information in a path object must be exposed to 
all agents.   We could say the path object should be able to provide the 
technical path information to a duly authorized agent.   So the subpath 
object would be an implicit means of forcing an agent to obtain 
authorization in order to access the technical path data in that PO.  
Technically, I think the subpath may also be useful for things like 
protection and SRLG handling, etc.

Further, We should differentiate a "Connection Object" from a "Path 
Object".   The former will likely contain one or more of the latter.  
I.e. A Connection may be comprised of both a forward Path Object, and a 
backward Path Object.   It is important to keep the characteristics of a 
circuit or a Connection separate from the object that specifies the 
path.   Another complexity we may need to address n the future is 
point-to-multipoint Connections and how we describe those circuits and 
the paths that make them up.

Hope all this sounds lucid:-)

Jerry


More information about the nsi-wg mailing list