Lines Matching full:neighbour
11 * Harald Welte Add neighbour cache statistics like rtstat
28 #include <net/neighbour.h>
54 static void __neigh_notify(struct neighbour *n, int type, int flags,
56 static void neigh_update_notify(struct neighbour *neigh, u32 nlmsg_pid);
84 Neighbour hash table buckets are protected with rwlock tbl->lock.
89 It will result in deadlocks, if backend/driver wants to use neighbour
94 Neighbour entries are protected:
108 not make callbacks to neighbour tables.
111 static int neigh_blackhole(struct neighbour *neigh, struct sk_buff *skb) in neigh_blackhole()
117 static void neigh_cleanup_and_release(struct neighbour *neigh) in neigh_cleanup_and_release()
137 static void neigh_mark_dead(struct neighbour *n) in neigh_mark_dead()
148 static void neigh_update_gc_list(struct neighbour *n) in neigh_update_gc_list()
178 static void neigh_update_managed_list(struct neighbour *n) in neigh_update_managed_list()
199 static void neigh_update_flags(struct neighbour *neigh, u32 flags, int *notify, in neigh_update_flags()
237 bool neigh_remove_one(struct neighbour *n) in neigh_remove_one()
260 struct neighbour *n, *tmp; in neigh_forced_gc()
300 static void neigh_add_timer(struct neighbour *n, unsigned long when) in neigh_add_timer()
320 static int neigh_del_timer(struct neighbour *n) in neigh_del_timer()
382 static void neigh_flush_one(struct neighbour *n) in neigh_flush_one()
394 * We must destroy neighbour entry, in neigh_flush_one()
424 struct neighbour *n; in neigh_flush_dev()
448 struct neighbour *n; in neigh_flush_table()
497 static struct neighbour *neigh_alloc(struct neigh_table *tbl, in neigh_alloc()
501 struct neighbour *n = NULL; in neigh_alloc()
608 struct neighbour *n; in neigh_hash_grow()
626 struct neighbour *neigh_lookup(struct neigh_table *tbl, const void *pkey, in neigh_lookup()
629 struct neighbour *n; in neigh_lookup()
646 static struct neighbour *
652 struct neighbour *n1, *rc, *n; in ___neigh_create()
739 struct neighbour *__neigh_create(struct neigh_table *tbl, const void *pkey, in __neigh_create()
915 * neighbour must already be out of the table;
918 void neigh_destroy(struct neighbour *neigh) in neigh_destroy()
925 pr_warn("Destroying alive neighbour %p\n", neigh); in neigh_destroy()
951 /* Neighbour state is suspicious;
956 static void neigh_suspect(struct neighbour *neigh) in neigh_suspect()
963 /* Neighbour state is OK;
968 static void neigh_connect(struct neighbour *neigh) in neigh_connect()
980 struct neighbour *n; in neigh_periodic_work()
1056 static __inline__ int neigh_max_probes(struct neighbour *n) in neigh_max_probes()
1064 static void neigh_invalidate(struct neighbour *neigh) in neigh_invalidate()
1075 routine. Particularly, it can hit the same neighbour entry! in neigh_invalidate()
1089 static void neigh_probe(struct neighbour *neigh) in neigh_probe()
1103 /* Called when a timer expires for a neighbour entry. */
1108 struct neighbour *neigh = timer_container_of(neigh, t, timer); in neigh_timer_handler()
1200 int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb, in __neigh_event_send()
1288 static void neigh_update_hhs(struct neighbour *neigh) in neigh_update_hhs()
1321 NEIGH_UPDATE_F_ISROUTER indicates if the neighbour is known as
1328 static int __neigh_update(struct neighbour *neigh, const u8 *lladdr, in __neigh_update()
1403 /* Update confirmed timestamp for neighbour entry after we in __neigh_update()
1431 * neighbour entry. Otherwise we risk to move the locktime window with in __neigh_update()
1474 struct neighbour *n2, *n1 = neigh; in __neigh_update()
1517 int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, in neigh_update()
1527 void __neigh_set_probe_once(struct neighbour *neigh) in __neigh_set_probe_once()
1542 struct neighbour *neigh_event_ns(struct neigh_table *tbl, in neigh_event_ns()
1546 struct neighbour *neigh = __neigh_lookup(tbl, saddr, dev, in neigh_event_ns()
1556 static void neigh_hh_init(struct neighbour *n) in neigh_hh_init()
1575 int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb) in neigh_resolve_output()
1610 int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb) in neigh_connected_output()
1633 int neigh_direct_output(struct neighbour *neigh, struct sk_buff *skb) in neigh_direct_output()
1643 struct neighbour *neigh; in neigh_managed_work()
1819 panic("cannot create neighbour cache statistics"); in neigh_table_init()
1824 panic("cannot create neighbour proc dir entry"); in neigh_table_init()
1833 panic("cannot allocate neighbour cache hashes"); in neigh_table_init()
1836 tbl->entry_size = ALIGN(offsetof(struct neighbour, primary_key) + in neigh_table_init()
1877 pr_crit("neighbour leakage\n"); in neigh_table_clear()
1935 struct neighbour *neigh; in neigh_delete()
2003 struct neighbour *neigh; in neigh_add()
2625 static int neigh_fill_info(struct sk_buff *skb, struct neighbour *neigh, in neigh_fill_info()
2730 static void neigh_update_notify(struct neighbour *neigh, u32 nlmsg_pid) in neigh_update_notify()
2775 struct neighbour *n; in neigh_dump_table()
3043 struct neighbour *neigh; in neigh_get()
3091 NL_SET_ERR_MSG(extack, "Proxy neighbour entry not found"); in neigh_get()
3102 NL_SET_ERR_MSG(extack, "Neighbour entry not found"); in neigh_get()
3122 void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie) in neigh_for_each() argument
3132 struct neighbour *n; in neigh_for_each()
3144 int (*cb)(struct neighbour *)) in __neigh_for_each_release() argument
3153 struct neighbour *n; in __neigh_for_each_release()
3180 struct neighbour *neigh; in neigh_xmit()
3221 static struct neighbour *neigh_get_valid(struct seq_file *seq, in neigh_get_valid()
3222 struct neighbour *n, in neigh_get_valid()
3251 static struct neighbour *neigh_get_first(struct seq_file *seq) in neigh_get_first()
3255 struct neighbour *n, *tmp; in neigh_get_first()
3270 static struct neighbour *neigh_get_next(struct seq_file *seq, in neigh_get_next()
3271 struct neighbour *n, in neigh_get_next()
3275 struct neighbour *tmp; in neigh_get_next()
3300 static struct neighbour *neigh_get_idx(struct seq_file *seq, loff_t *pos) in neigh_get_idx()
3302 struct neighbour *n = neigh_get_first(seq); in neigh_get_idx()
3535 static void __neigh_notify(struct neighbour *n, int type, int flags, in __neigh_notify()
3563 void neigh_app_ns(struct neighbour *n) in neigh_app_ns()
3862 * applied after the next neighbour update instead of waiting for in neigh_sysctl_register()