[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: notification-08 comments



Balazs Lengyel wrote:
See below!
Andy Bierman wrote:
Balazs Lengyel wrote:
Hello

Andy Bierman wrote:

3.3.2, para 3:

   A replayComplete notification is sent to indicate that all of the
   replay notifications have been sent.

Use 'replayComplete' or <replayComplete>.

   becomes a normal NETCONF session again.

Indicate that the agent will now accept <rpc> operations.
Any requests which have been received but not processed by
the agent will now be processed in the order they were received.
[BALAZS]: Buffering earlier received <rpc> operations for a potentially long time seems bad. I would prefere discarding all <rpc> operations before <replayComplete> and accepting only new <rpc> operations.


How does the agent know the next <rpc> just arrived or has been
in queue for an hour.  Isn't this implementation-dependent?
Wording it the other way (flush the queue) is also implementation-dependent.

But the other way, the manager would get no indication the <rpc> elements were
dropped.  It would wait for replies, and the agent would
wait for a new <rpc> -- and the session would hang.

Balazs


Andy
[BALAZS]: I think the manager should assume that anything it sent before receiving replayComplete will be discarded. It should not even send anything before that in the first place. You can still have a situation when the rpc request and replayComplete are sent at the same time, but if you like to live dangerously better have a timeout on the request.


I think it is more useful to assume the more robust scenario than the most
fragile one.  Some agents may process RPCs during the notification replay,
and this document (right now) has no way for the manager to know that.
That means the manager cannot possibly know for sure if it should
wait for a reply or not.

On the other hand if the agent may store requests that arrived before the replayComplete was sent you end up with a lot of other questions:
- how long must an agent store rpc requests? 1 year?
- how many requests must it store?


This is an artifact of TCP.
The bytes will be there as long as the connection (and/or session)
has not been dropped.

- if the agent is not able to store all requests, it drops some. How will the manager know how many have been dropped?

As I see it discarding all requests is the best defined behavior we can prescribe.

This is very implementation-biased.
Why is this the best, especially since the spec allows an agent
to process RPCs if it wants.


Balazs

Andy

--
to unsubscribe send a message to netconf-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/netconf/>