[Nsi-wg] Notify Query Primitives
Jerry Sobieski
jerry at nordu.net
Tue Nov 9 21:54:49 CST 2010
Hi John -
A few comments regarding your input to the Notify doc... In general, I
had considered some of these but chose to ignore in order to start simply.
1. Yes, agree that there should be some registration identifier
returned in the notify repsonse that can be used for canceling a notify
later on. Definately a good idea.
2. Yes, more informative error code(s) could be returned. But my
concern is to not expose unauthorized information by merit of error
codes. But as long as it is fairly innocuous, I agree that more
informative error codes can be more helpful. In general though, error
codes are second order issues since they normally should not happen:-)
For simplicity, I suggested we simply say "Yes you are registered for
that event" or "No, your registration failed." Minimally speaking,
thats all you really need:-)
3. My concern about wildcards is not that they can't be implemented or
that they don't scale, but that they incur substantial overhead since
the code must check the condition *very time* one of the parameters
change. My only real reason for suggesting wildcards not be allowed
was to start simply. I believe the issue of monitoring state to detect
qualifying events could incur *substantial* runtime overhead, and wll
defintately make implementation far more complex. We should be
cautious about what we decalre to be "notifiable". Defining the event
conditions is easy, detecting when all the conditions that make up the
event click together is hard. For example - everytime a parameter
changes value, any and all condition it is part of must be evaluated.
Therefore, every time you update a parameter there must be a check made
to see if any conditions are attached to the parameter, if there are
then evaluate it, and then evaluate the event that condition is part of
as well. This must be done everytime any notifiable paramter is
modified. For this reason, I suggest we limit the set of parameters
that can be used to define an notification event.
4. regarding a Notify Acknowledge...I didn't think an Ack was necessary
on the assumption that the underlying transport was guaranteeing
delivery of the message. There are times when an NSA should acknowledge
a message - specifically, when it incurs a commitment or cost not
previously acknowledged. But the Notify() action was already requested
and registered, and if the transport layer still believes the target NSA
is still reachable, then just sending the message should be (IMO)
sufficient. So I just didn't think an acknowledge was necessary... If
you require an Ack, then you need timers to handle a case where the Ack
doesn;t come or takes too long, and ultimately, if it doesn't come -
what would/should the PA do?
Summary questions on Notify() - These are all *Excellent* observations.
And I agree, they must be resolved before the Notify() can or should be
specified as a NSI primitive. And resolving these will take some time
and discussion...and IMO make the protocol still more complex (read:
error prone :-() I sound like a stuck record, but I concur that all
these questions should be answered before we can say they function in a
clear and deterministic manner.
Regarding the size of messages in the QueryResp() message... I agree
there are many protocols that can support essentially unlimited size
messages... If we need to do this, then we need to specify that protocol
explicitly. And we need to understand how we combine responses
filtering up the tree...this is not done by the transport protocol but
must be specified as part of the NSI protocol.
Many good points John...thanks for looking it over.
We should also keep in mind a couple other things:
--- Can the NSI CS Protocol work properly to manage the lifecycle of a
connection if there is no Notify primitive or no Query primitive? If
we can, then maybe these are part of another NSI "service" and should
not be part of the NSI CS primitives...?
--- How long will it take to resolve the Notify and Query primitive
functionality ...do we want to wait that long to complete the NSI V1.0
waiting for these primitives? Perhaps these are good V2.0
features...? (I think it might be best to do so in the interest of time.)
--- Since these are similar primitives, and one is highly similar to an
SQL interface, perhaps we should try to define both as SQL interfaces to
a well defined Relation DB schema that holds the information? IMO,
this sounds more and more like a separate NSI service....(but I could be
wrong:-)
--- These primitives if fully functioned will be complex to implement,
and costly to support in the code. How might we reduce the complexity
or enhance the run time efficiency?
Talk to you all tomorrow!
Jerry
John MacAuley wrote:
> Jerry,
>
> I added a bunch of comments in red to the document. We can discuss at
> the meeting tomorrow morning.
>
> Thank you,
> John.
>
>
> ------------------------------------------------------------------------
>
>
> On 2010-11-09, at 12:09 PM, Jerry Sobieski wrote:
>
>> Hi all-
>>
>> I was to write up something on the Notify and Query Primitives...
>> here it is - at least a rough draft. As usual, as we think these
>> things through there are lots of considerations, I tried to keep it
>> simple to start. I put down about 3 pages on Notify, and about 2
>> pages on Query. High level stuff so it should not take you long to
>> look it over. I can summarize on the call Wednesday.
>>
>> Best regards
>> Jerry
>> <NotifyQuery.docx>_______________________________________________
>> nsi-wg mailing list
>> nsi-wg at ogf.org <mailto:nsi-wg at ogf.org>
>> http://www.ogf.org/mailman/listinfo/nsi-wg
>
> =
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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/20101109/88cc070a/attachment.html
More information about the nsi-wg
mailing list