> On Jul 14, 2016, at 8:08 AM, Nikolay Aleksandrov > <niko...@cumulusnetworks.com> 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 <niko...@cumulusnetworks.com> > CC: Roopa Prabhu <ro...@cumulusnetworks.com> > CC: Shrijeet Mukherjee <s...@cumulusnetworks.com> > CC: Satish Ashok <sas...@cumulusnetworks.com> > CC: Donald Sharp <sha...@cumulusnetworks.com> > CC: David S. Miller <da...@davemloft.net> > CC: Alexey Kuznetsov <kuz...@ms2.inr.ac.ru> > CC: James Morris <jmor...@namei.org> > CC: Hideaki YOSHIFUJI <yoshf...@linux-ipv6.org> > CC: Patrick McHardy <ka...@trash.net> > —
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