Lines Matching refs:neigh
352 void neigh_destroy(struct neighbour *neigh);
353 int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb,
355 int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags,
357 void __neigh_set_probe_once(struct neighbour *neigh);
362 int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb);
363 int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb);
364 int neigh_direct_output(struct neighbour *neigh, struct sk_buff *skb);
447 static inline void neigh_release(struct neighbour *neigh) in neigh_release() argument
449 if (refcount_dec_and_test(&neigh->refcnt)) in neigh_release()
450 neigh_destroy(neigh); in neigh_release()
453 static inline struct neighbour * neigh_clone(struct neighbour *neigh) in neigh_clone() argument
455 if (neigh) in neigh_clone()
456 refcount_inc(&neigh->refcnt); in neigh_clone()
457 return neigh; in neigh_clone()
462 static __always_inline int neigh_event_send_probe(struct neighbour *neigh, in neigh_event_send_probe() argument
468 if (READ_ONCE(neigh->used) != now) in neigh_event_send_probe()
469 WRITE_ONCE(neigh->used, now); in neigh_event_send_probe()
470 if (!(READ_ONCE(neigh->nud_state) & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE))) in neigh_event_send_probe()
471 return __neigh_event_send(neigh, skb, immediate_ok); in neigh_event_send_probe()
475 static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) in neigh_event_send() argument
477 return neigh_event_send_probe(neigh, skb, true); in neigh_event_send()
594 static inline void neigh_update_is_router(struct neighbour *neigh, u32 flags, in neigh_update_is_router() argument
600 if ((neigh->flags ^ ndm_flags) & NTF_ROUTER) { in neigh_update_is_router()
602 neigh->flags |= NTF_ROUTER; in neigh_update_is_router()
604 neigh->flags &= ~NTF_ROUTER; in neigh_update_is_router()