diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-03 00:52:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-05 04:04:01 -0400 |
commit | f894cbf847c9bea1955095bf37aca6c050553167 (patch) | |
tree | 9cc63b36c2d299bba95ea90213f4a9ef0ae433d6 /include | |
parent | 5110effee8fde2edfacac9cd12a9960ab2dc39ea (diff) |
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/dst.h | 8 | ||||
-rw-r--r-- | include/net/dst_ops.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 84e7a3ff968d..295a70547e7d 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -420,7 +420,13 @@ static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n, | |||
420 | 420 | ||
421 | static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr) | 421 | static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr) |
422 | { | 422 | { |
423 | return dst->ops->neigh_lookup(dst, daddr); | 423 | return dst->ops->neigh_lookup(dst, NULL, daddr); |
424 | } | ||
425 | |||
426 | static inline struct neighbour *dst_neigh_lookup_skb(const struct dst_entry *dst, | ||
427 | struct sk_buff *skb) | ||
428 | { | ||
429 | return dst->ops->neigh_lookup(dst, skb, NULL); | ||
424 | } | 430 | } |
425 | 431 | ||
426 | static inline void dst_link_failure(struct sk_buff *skb) | 432 | static inline void dst_link_failure(struct sk_buff *skb) |
diff --git a/include/net/dst_ops.h b/include/net/dst_ops.h index 3682a0a076c1..4badc86e45d1 100644 --- a/include/net/dst_ops.h +++ b/include/net/dst_ops.h | |||
@@ -26,7 +26,9 @@ struct dst_ops { | |||
26 | void (*link_failure)(struct sk_buff *); | 26 | void (*link_failure)(struct sk_buff *); |
27 | void (*update_pmtu)(struct dst_entry *dst, u32 mtu); | 27 | void (*update_pmtu)(struct dst_entry *dst, u32 mtu); |
28 | int (*local_out)(struct sk_buff *skb); | 28 | int (*local_out)(struct sk_buff *skb); |
29 | struct neighbour * (*neigh_lookup)(const struct dst_entry *dst, const void *daddr); | 29 | struct neighbour * (*neigh_lookup)(const struct dst_entry *dst, |
30 | struct sk_buff *skb, | ||
31 | const void *daddr); | ||
30 | 32 | ||
31 | struct kmem_cache *kmem_cachep; | 33 | struct kmem_cache *kmem_cachep; |
32 | 34 | ||