Add clarification for suppress_redundant and delete behavior.#224
Add clarification for suppress_redundant and delete behavior.#224ElodinLaarz wants to merge 2 commits intoopenconfig:masterfrom
Conversation
Add clarification for suppress_redundant and delete behavior.
|
@ElodinLaarz thanks for this pull request. Can you quote any operational use cases where this is a problem today? This does look like a real gap in the logic, but I would like to hear of some real operational use cases where this is a problem before changing the specification. |
|
In the OC Community meeting, this older thread was brought up for historical context around suppress_redundant deprecation: openconfig/gnmi#114 |
|
I am not opposed to removing The additions here are merely to highlight that if suppress redundant is employed and deletes are not included, then a client can be left with indefinitely stale data. If, for example, you collect interface data with a SAMPLE subscription with |
|
In the community meeting several folks expressed that doing anything "stateful" for SAMPLE subscriptions is expensive on a network device and more in the spirit of being attached to ON_CHANGE subscriptions. Both suppress_redundant and delete notifications in a SAMPLE subscriptions have significant cost and impact to implementations - it would be good to avoid those for SAMPLE, and focus on ON_CHANGE for use cases that require async notification and "stateful" type notification. |
|
A possible reason for wanting Importantly, if you subscribe to a path (e.g. Counters) But this expected cadence is opaque to the subscriber. I spoke with Darren offline, and it is possible that So, there is a use-case for |
|
Another case in support of the deprecation of suppress redundancy then delete is no longer an issue. openconfig/gnmi#114. |
|
Reviewed in May 6, 2025 OC operators meeting. It's suggested to instead proposal a deprecation of this field from the gnmi specification as it appears infeasible to implement at scale and to avoid this ambiguity it introduces. @ElodinLaarz we would appreciate it if you could make that proposal. |
In the specification, deletes are listed as optional for
SAMPLEsubscriptions, but this is not the case when thesuppress_redundantflag is present.Normally, if a client does not get a notification for a leaf over a
SAMPLEsubscription, they can use some form of cache invalidation to get rid of stale values. Sincesuppress_redundantcould cause some notifications to be withheld for arbitrary lengths of time, the client cannot decide when the data should be invalidated; so, the server must send deletes.