[Nsi-wg] Notification queries.

Jerry Sobieski jerry at nordu.net
Mon Jun 10 11:11:47 EDT 2013


A couple comments -

IMO, we need to review in V3 how the messaging is actually 
transported.   I still believe we want a separate transport layer that 
is independent of the NSI messaging itself. i.e. anything that is 
dependent upon WS (or any other transport issues) is moved into the 
lower layer.    The outbound NSI messages are essentially queued by dest 
NSA until a session is established between the source and destination 
NSAs, and then all queued messages can be transported and acked and 
queued at the destination NSA.   If the session is not established, the 
messages will timeout and the sender is notified. This allows either 
side to establish the transport session, and provides the NSI protocol 
layer with some basic messaging primitives for sending or canceling 
messages.   And this basic messaging dialogue is independent of the 
underlying transport mechanism - allowing WS, restful, or other processes.

This still requires two NSAs to configure their respective control plane 
endpoints in order to talk, but this needs to be done anyway bilateraly 
(like we do BGP peers at Layer3) or via a topology announcement.   This 
makes the NSI interface to the lower MTL a fixed and transport 
independent interface.  This MTL interface is internal to an 
implementation, but by defining the MTL interface very succinctly it 
proscibes what is an NSI issue, and what is an MTL issue.  This allows 
us to work on NSI protocol without worrying about things like NATs, FWs, 
or any other aspect that may systemically or transiently prevent a 
message from being transfered immediately.   These are addressed in the 
MTL.   The NSAs simply talk between NSAs.

And further, it removes the requirement that all NSI primitives must use 
the request/response model for all primitives. We need the ability for 
third party agents to interact with the tree, and we will (IMO) need the 
ability for messages to transit "up and over" in the tree to flood 
appropriate notifications if we are serious about end to end cognizance 
of the state of a connection.    In the long run, the NSI protocol will 
be simpler and more flexible if the NSI protocol is treated as an 
asynchronous or symmetric protocol that allows NSAs to send messages 
either direction in the service tree whenever it needs to.  And we move 
the details of the TCP and IP layers down into an independent layer and 
deal with those there.

Interestingly, I don't think specifying such an internal model for NSI 
messaging precludes what we do now, it simply defines clearly which 
layers are responsible for which issues.

...IMO... :-)

For V2, I suggest we keep as discussed in the Maastricht session and get 
the V2 document completed.

My .02 USD.
Jerry


On 6/10/13 10:24 AM, John MacAuley wrote:
> We needed you in Maastricht - you could have shot the bows with us and worked everything out before the NSI meetings on Friday :-)
>
> We had a good discussion in the Friday meeting, and Jerry made a very good point that helped seal the deal.  The argument went as follows:
>
> 1. If we make the assumption that the majority of time there will be no error notifications against a reservation, then whether we use a notificationId or list of error notifications is moot.
>
> 2. When things go bad, they will typically go really bad and probably for more than one reservation.  Having a separate queryNotification() API would allow controlled retrieval of these notifications, and allow those clients not interested in the errors to ignore them.
>
> As for the TCP overhead - all the HTTP client kits these days come with connection pooling by default, so you will already have multiple HTTP connections open to the NSA in question for sending in parallel and reducing the TCP setup overhead.  If you are not using one of these HTTP kits may I recommend picking up one since it makes life a lot easier.
>
> John
>
> On 2013-06-10, at 6:11 AM, Henrik Thostrup Jensen <htj at nordu.net> wrote:
>
>> On Wed, 5 Jun 2013, John MacAuley wrote:
>>
>>> I have attached a discussion document that presents the two original concepts discussed on the NSI call and an optimization to each.
>> I read: Why notifications combined with RPC as a base abstraction is a bad idea :-)
>>
>>> I wanted to make sure I captured both so people do not think one was ignored.  I believe the solution I have recommended (with hallway agreement from Chin and Tomohiro) it the best short term option.  I will have the completed WSDL ready to go so it can be committed upon agreement this week.
>> Are there really going to be some many notifications that anything else than #1a is worth it?
>>
>> Doing a querySummary to check if there are any new notifications, and doing a subsequent queryNotificationSync is WAY more expensive than including all the notifications in the query summary due to the overhead of establishing a TCP+TLS connections[1] which is 6 round trips in total. I can send an awful lot of notifications in that time. With our current scheme, adding a primitive for this is by far the most expensive solution.
>>
>> 1. TCP is 3 messages/3 roundtrips to set up a connection, where the last message/roundtrip can include data. TLS is 12 messages/4 roundtrips, where the first one can be included in the initial TCP data message. Totally we are looking at 15 messages and 6 round trips.
>>
>>
>>     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
> _______________________________________________
> 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