ipv4: Create and use fib_compute_spec_dst() helper.
The specific destination is the host we direct unicast replies to. Usually this is the original packet source address, but if we are responding to a multicast or broadcast packet we have to use something different. Specifically we must use the source address we would use if we were to send a packet to the unicast source of the original packet. The routing cache precomputes this value, but we want to remove that precomputation because it creates a hard dependency on the expensive rpfilter source address validation which we'd like to make cheaper. There are only three places where this matters: 1) ICMP replies. 2) pktinfo CMSG 3) IP options Now there will be no real users of rt->rt_spec_dst and we can simply remove it altogether. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -230,6 +230,7 @@ extern struct fib_table *fib_get_table(struct net *net, u32 id);
|
||||
/* Exported by fib_frontend.c */
|
||||
extern const struct nla_policy rtm_ipv4_policy[];
|
||||
extern void ip_fib_init(void);
|
||||
extern __be32 fib_compute_spec_dst(struct sk_buff *skb);
|
||||
extern int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
|
||||
u8 tos, int oif, struct net_device *dev,
|
||||
__be32 *spec_dst, u32 *itag);
|
||||
|
Reference in New Issue
Block a user