You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
net: Add ->neigh_lookup() operation to dst_ops
In the future dst entries will be neigh-less. In that environment we need to have an easy transition point for current users of dst->neighbour outside of the packet output fast path. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -38,15 +38,6 @@ static inline struct neighbour *__ipv4_neigh_lookup(struct neigh_table *tbl, str
|
||||
return n;
|
||||
}
|
||||
|
||||
static inline struct neighbour *ipv4_neigh_lookup(struct neigh_table *tbl, struct net_device *dev, const __be32 *pkey)
|
||||
{
|
||||
struct neighbour *n = __ipv4_neigh_lookup(tbl, dev,
|
||||
*(__force u32 *)pkey);
|
||||
if (n)
|
||||
return n;
|
||||
return neigh_create(tbl, pkey, dev);
|
||||
}
|
||||
|
||||
extern void arp_init(void);
|
||||
extern int arp_find(unsigned char *haddr, struct sk_buff *skb);
|
||||
extern int arp_ioctl(struct net *net, unsigned int cmd, void __user *arg);
|
||||
|
||||
@@ -387,6 +387,11 @@ static inline void dst_confirm(struct dst_entry *dst)
|
||||
}
|
||||
}
|
||||
|
||||
static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr)
|
||||
{
|
||||
return dst->ops->neigh_lookup(dst, daddr);
|
||||
}
|
||||
|
||||
static inline void dst_link_failure(struct sk_buff *skb)
|
||||
{
|
||||
struct dst_entry *dst = skb_dst(skb);
|
||||
|
||||
@@ -26,6 +26,7 @@ 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 kmem_cache *kmem_cachep;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user