From: David Ahern <dsah...@gmail.com> Export fib_good_nh for use by the nexthop code when selecting a path within a multipath nexthop.
As nexthops are deleted, fib entries referencing it are marked dead. Export fib_flush so those entries can be removed in a timely manner. Signed-off-by: David Ahern <dsah...@gmail.com> --- include/net/ip_fib.h | 2 ++ net/ipv4/fib_frontend.c | 2 +- net/ipv4/fib_semantics.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 69c91d1934c1..f1c053cf9489 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h @@ -399,6 +399,7 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags); int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4, const struct sk_buff *skb, struct flow_keys *flkeys); #endif +bool fib_good_nh(const struct fib_nh *nh); void fib_select_multipath(struct fib_result *res, int hash); void fib_select_path(struct net *net, struct fib_result *res, struct flowi4 *fl4, const struct sk_buff *skb); @@ -423,6 +424,7 @@ static inline void fib_combine_itag(u32 *itag, const struct fib_result *res) #endif } +void fib_flush(struct net *net); void free_fib_info(struct fib_info *fi); static inline void fib_info_hold(struct fib_info *fi) diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 2998b0e47d4b..b0910d8c8bd4 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@ -192,7 +192,7 @@ int fib_unmerge(struct net *net) return 0; } -static void fib_flush(struct net *net) +void fib_flush(struct net *net) { int flushed = 0; unsigned int h; diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index 93524a746ca8..7bead7c03e1b 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c @@ -1682,7 +1682,7 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags) } #ifdef CONFIG_IP_ROUTE_MULTIPATH -static bool fib_good_nh(const struct fib_nh *nh) +bool fib_good_nh(const struct fib_nh *nh) { int state = NUD_REACHABLE; -- 2.11.0