diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2021-03-10 01:38:09 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-03-10 12:24:18 -0800 |
commit | c4c877b2732466b4c63217baad05c96f775912c7 (patch) | |
tree | ab4f6ec6d5a77c09566172855150d4968a88f113 /include/net/dst.h | |
parent | 05a59d79793d482f628a31753c671f2e92178a21 (diff) | |
download | linux-stable-c4c877b2732466b4c63217baad05c96f775912c7.tar.gz linux-stable-c4c877b2732466b4c63217baad05c96f775912c7.tar.bz2 linux-stable-c4c877b2732466b4c63217baad05c96f775912c7.zip |
net: Consolidate common blackhole dst ops
Move generic blackhole dst ops to the core and use them from both
ipv4_dst_blackhole_ops and ip6_dst_blackhole_ops where possible. No
functional change otherwise. We need these also in other locations
and having to define them over and over again is not great.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r-- | include/net/dst.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 26f134ad3a25..75b1e734e9c2 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -550,4 +550,15 @@ static inline void skb_dst_update_pmtu_no_confirm(struct sk_buff *skb, u32 mtu) dst->ops->update_pmtu(dst, NULL, skb, mtu, false); } +struct dst_entry *dst_blackhole_check(struct dst_entry *dst, u32 cookie); +void dst_blackhole_update_pmtu(struct dst_entry *dst, struct sock *sk, + struct sk_buff *skb, u32 mtu, bool confirm_neigh); +void dst_blackhole_redirect(struct dst_entry *dst, struct sock *sk, + struct sk_buff *skb); +u32 *dst_blackhole_cow_metrics(struct dst_entry *dst, unsigned long old); +struct neighbour *dst_blackhole_neigh_lookup(const struct dst_entry *dst, + struct sk_buff *skb, + const void *daddr); +unsigned int dst_blackhole_mtu(const struct dst_entry *dst); + #endif /* _NET_DST_H */ |