> On Jul 14, 2016, at 8:08 AM, Nikolay Aleksandrov > <[email protected]> wrote: > > In preparation for hardware offloading of ipmr/ip6mr we need an > interface that allows to check (and later update) the age of entries. > Relying on stats alone can show activity but not actual age of the entry, > furthermore when there're tens of thousands of entries a lot of the > hardware implementations only support "hit" bits which are cleared on > read to denote that the entry was active and shouldn't be aged out, > these can then be naturally translated into age timestamp and will be > compatible with the software forwarding age. Using a lastuse entry doesn't > affect performance because the entries in that cache line are written to > along with the age. Once an entry goes above the member size (32 bits) we > keep it at UINT_MAX as we cannot afford to wrap it which will falsely show > that it was used recently. This is not supposed to happen as entries should > be aged out in matter of minutes or seconds. > Since all new users are encouraged to use ipmr via netlink, this is > exported via the RTA_CACHEINFO attribute which has rta_lastuse entry. > > Signed-off-by: Nikolay Aleksandrov <[email protected]> > CC: Roopa Prabhu <[email protected]> > CC: Shrijeet Mukherjee <[email protected]> > CC: Satish Ashok <[email protected]> > CC: Donald Sharp <[email protected]> > CC: David S. Miller <[email protected]> > CC: Alexey Kuznetsov <[email protected]> > CC: James Morris <[email protected]> > CC: Hideaki YOSHIFUJI <[email protected]> > CC: Patrick McHardy <[email protected]> > —
Self-NAK, I’ll send a revised v2 version using a single u32 attribute (RTA_EXPIRES), no need to waste the space right now. We’ll add more as we need them. Sorry for the noise. Cheers, Nik
