net: ipmr/ip6mr: add support for keeping an entry age
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Thu, 14 Jul 2016 16:28:27 +0000 (19:28 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Jul 2016 03:19:43 +0000 (20:19 -0700)
commit43b9e127406079d187794a5140a2411fbc6df2df
tree0950c4475d02bba3959846242e9c0fe5bb758dda
parenta5a18bdf7453d505783e40e47ebb84bfdd35f93b
net: ipmr/ip6mr: add support for keeping an entry age

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 members in that cache line are written to
along with the age.
Since all new users are encouraged to use ipmr via netlink, this is
exported via the RTA_EXPIRES attribute.
Also do a minor local variable declaration style adjustment - arrange them
longest to shortest.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
CC: Roopa Prabhu <roopa@cumulusnetworks.com>
CC: Shrijeet Mukherjee <shm@cumulusnetworks.com>
CC: Satish Ashok <sashok@cumulusnetworks.com>
CC: Donald Sharp <sharpd@cumulusnetworks.com>
CC: David S. Miller <davem@davemloft.net>
CC: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
CC: James Morris <jmorris@namei.org>
CC: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
CC: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/mroute.h
include/linux/mroute6.h
net/ipv4/ipmr.c
net/ipv6/ip6mr.c