> The notification to a client that some or all of its data was just overridden 
> is a
> separate matter from whether the client wants all or part of its data to be
> removed or altered.

I would argue this should be a SHOULD... The idea would be that any client who 
sets state should be subscribed, but anyone can unsubscribe. This leaves the 
default to the "right thing," but gives clients the option to sort their own 
"aggregation" of signaling for efficiency/etc. I'm uncertain about the 
unsubscribe at this point -- I tend to think we shouldn't bother with 
"auto-unsubscribe on remove state," as we can't guess either way, and it's just 
as easy for clients to queue up the removal of state and the unsubscribe one 
after the other.

Not convinced this is the right answer, though -- thoughts?

> One proposal to the design team is the notion that the server supports an
> advertised (static) number of clients (max client panes).
> Each client must be assigned a priority, such that every client has its own
> pane, so adding a valid edit does not fail. Activating the edit is a separate
> matter. Each client can flush all or part of its own pane.

Just to clarify, I think we're all saying the same thing, just using different 
terms. If each client must have a unique id, and the client id is directly tied 
to the priority of the client in terms of installing state, then the pane is 
also "everything with the same priority," which also means "everything 
installed by one client." So in relation to the state of a single object, the 
list of "lower priority" things that aren't installed can be seen as what Joel 
is calling a "cache." From the perspective of the client, all the state it has 
installed can be seen as a "pane." 

Does this sound right to everyone?

One point -- it might not be valid for each type of object to have this sort of 
"backup information." For instance, in the case of a virtual topology built in 
ephemeral state, it might well be the case (I've not thought it through yet) 
that it is an error to overwrite lower priority information with higher.

To Joel's point, the backup data (I don't like the term "cache," because it has 
a different set of connotations for me, but I can deal with it if that's the 
term everyone settles on) could introduce a lot of complexity unless we also 
introduce the idea of a set of "things" as a "whole object." In other words, in 
the case of a route, a "whole object" might include the reachable destination 
(NLRI in BGP terms), the next hop (which could be a tunnel tail end from the 
local router's perspective), potentially a stack of markers (like an MPLS label 
stack), potentially an outbound interface, and potentially a MAC header 
rewrite. This entire "object" would need to be installed as one "thing," think, 
to make the "cache" coherent (again, I could be wrong here). To change just the 
"next hop," a client would need to install "the whole route," I think, or we 
risk some major issues in coherency. I'm not saying this is possible/not 
possible today, just throwing out thoughts as they occur to me.

Does all of this make sense?

:-)

Russ

_______________________________________________
i2rs mailing list
i2rs@ietf.org
https://www.ietf.org/mailman/listinfo/i2rs

Reply via email to