net: Add optional SKB arg to dst_ops->neigh_lookup().
Causes the handler to use the daddr in the ipv4/ipv6 header when the route gateway is unspecified (local subnet). Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -420,7 +420,13 @@ static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n,
|
||||
|
||||
static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr)
|
||||
{
|
||||
return dst->ops->neigh_lookup(dst, daddr);
|
||||
return dst->ops->neigh_lookup(dst, NULL, daddr);
|
||||
}
|
||||
|
||||
static inline struct neighbour *dst_neigh_lookup_skb(const struct dst_entry *dst,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
return dst->ops->neigh_lookup(dst, skb, NULL);
|
||||
}
|
||||
|
||||
static inline void dst_link_failure(struct sk_buff *skb)
|
||||
|
||||
@@ -26,7 +26,9 @@ struct dst_ops {
|
||||
void (*link_failure)(struct sk_buff *);
|
||||
void (*update_pmtu)(struct dst_entry *dst, u32 mtu);
|
||||
int (*local_out)(struct sk_buff *skb);
|
||||
struct neighbour * (*neigh_lookup)(const struct dst_entry *dst, const void *daddr);
|
||||
struct neighbour * (*neigh_lookup)(const struct dst_entry *dst,
|
||||
struct sk_buff *skb,
|
||||
const void *daddr);
|
||||
|
||||
struct kmem_cache *kmem_cachep;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user