net: track link-status of ipv4 nexthops
authorAndy Gospodarek <gospo@cumulusnetworks.com>
Tue, 23 Jun 2015 17:45:36 +0000 (13:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jun 2015 09:15:54 +0000 (02:15 -0700)
commit8a3d03166f19329b46c6f9e900f93a89f446077b
tree22daa91207335df8bb3f2081c85d772b037d962a
parent5c8079d049c8452aeacec96a260200d468afc87d
net: track link-status of ipv4 nexthops

Add a fib flag called RTNH_F_LINKDOWN to any ipv4 nexthops that are
reachable via an interface where carrier is off.  No action is taken,
but additional flags are passed to userspace to indicate carrier status.

This also includes a cleanup to fib_disable_ip to more clearly indicate
what event made the function call to replace the more cryptic force
option previously used.

v2: Split out kernel functionality into 2 patches, this patch simply
sets and clears new nexthop flag RTNH_F_LINKDOWN.

v3: Cleanups suggested by Alex as well as a bug noticed in
fib_sync_down_dev and fib_sync_up when multipath was not enabled.

v5: Whitespace and variable declaration fixups suggested by Dave.

v6: Style fixups noticed by Dave; ran checkpatch to be sure I got them
all.

Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com>
Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
Acked-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
include/uapi/linux/rtnetlink.h
net/ipv4/fib_frontend.c
net/ipv4/fib_semantics.c