Details
-
Improvement
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
Description
In BGP topology exporter, we have the following input data:
container table {
leaf uptodate
list routes
{ leaf ... }}
We subscribe to changes to 'routes'. Now the producer code, in order to change the 'uptodate' leaf does a full read/update/write cycle, which results in 'table' being reported to our listener:
2014-02-11 16:48:18.538 WET [md-sal-binding-commit-10] INFO o.o.b.b.t.p.AbstractTopologyBuilder - Identifier InstanceIdentifier [path=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.BgpRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.Rib[key=RibKey [_id=Uri [_value=example-bgp-rib]]], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.rib.LocRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables[key=TablesKey [_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily]]]] in update set does not contain listening class interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.tables.routes.ipv4.routes._case.ipv4.routes.Ipv4Route, ignoring it
This seems like a breach in API contract: with this update we'd have to compare before- and after-images to find what changed. In this case that would be nothing, which in turn means that event should have been suppressed.