From: Jiri Pirko <j...@resnulli.us> Date: Sat, 3 Dec 2016 16:44:57 +0100
> Ido says: > > In kernel 4.9 the switchdev-specific FIB offload mechanism was replaced > by a new FIB notification chain to which modules could register in order > to be notified about the addition and deletion of FIB entries. The > motivation for this change was that switchdev drivers need to be able to > reflect the entire FIB table and not only FIBs configured on top of the > port netdevs themselves. This is useful in case of in-band management. > > The fundamental problem with this approach is that upon registration > listeners lose all the information previously sent in the chain and > thus have an incomplete view of the FIB tables, which can result in > packet loss. This patchset fixes that by dumping the FIB tables and > replaying notifications previously sent in the chain for the registered > notification block. > > The entire dump process is done under RCU and thus the FIB notification > chain is converted to be atomic. The listeners are modified accordingly. > This is done in the first eight patches. > > The ninth patch adds a change sequence counter to ensure the integrity > of the FIB dump. The last patch adds the dump itself to the FIB chain > registration function and modifies existing listeners to pass a callback > to be executed in case dump was inconsistent. ... Series applied, thanks.