Lines Matching refs:ilan
28 static int alloc_ila_locks(struct ila_net *ilan) in alloc_ila_locks() argument
30 return alloc_bucket_spinlocks(&ilan->xlat.locks, &ilan->xlat.locks_mask, in alloc_ila_locks()
49 static inline spinlock_t *ila_get_lock(struct ila_net *ilan, in ila_get_lock() argument
52 return &ilan->xlat.locks[ila_locator_hash(loc) & ilan->xlat.locks_mask]; in ila_get_lock()
129 struct ila_net *ilan) in ila_lookup_wildcards() argument
133 ila = rhashtable_lookup_fast(&ilan->xlat.rhash_table, &iaddr->loc, in ila_lookup_wildcards()
146 struct ila_net *ilan) in ila_lookup_by_params() argument
150 ila = rhashtable_lookup_fast(&ilan->xlat.rhash_table, in ila_lookup_by_params()
206 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_add_mapping() local
208 spinlock_t *lock = ila_get_lock(ilan, xp->ip.locator_match); in ila_add_mapping()
211 if (!ilan->xlat.hooks_registered) { in ila_add_mapping()
220 ilan->xlat.hooks_registered = true; in ila_add_mapping()
235 head = rhashtable_lookup_fast(&ilan->xlat.rhash_table, in ila_add_mapping()
240 err = rhashtable_lookup_insert_fast(&ilan->xlat.rhash_table, in ila_add_mapping()
266 err = rhashtable_replace_fast(&ilan->xlat.rhash_table, in ila_add_mapping()
285 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_del_mapping() local
287 spinlock_t *lock = ila_get_lock(ilan, xp->ip.locator_match); in ila_del_mapping()
292 head = rhashtable_lookup_fast(&ilan->xlat.rhash_table, in ila_del_mapping()
322 &ilan->xlat.rhash_table, &ila->node, in ila_del_mapping()
329 &ilan->xlat.rhash_table, in ila_del_mapping()
373 static inline spinlock_t *lock_from_ila_map(struct ila_net *ilan, in lock_from_ila_map() argument
376 return ila_get_lock(ilan, ila->xp.ip.locator_match); in lock_from_ila_map()
382 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_nl_cmd_flush() local
388 rhashtable_walk_enter(&ilan->xlat.rhash_table, &iter); in ila_xlat_nl_cmd_flush()
403 lock = lock_from_ila_map(ilan, ila); in ila_xlat_nl_cmd_flush()
407 ret = rhashtable_remove_fast(&ilan->xlat.rhash_table, in ila_xlat_nl_cmd_flush()
464 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_nl_cmd_get_mapping() local
480 ila = ila_lookup_by_params(&xp, ilan); in ila_xlat_nl_cmd_get_mapping()
508 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_nl_dump_start() local
515 rhashtable_walk_enter(&ilan->xlat.rhash_table, &iter->rhiter); in ila_xlat_nl_dump_start()
606 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_init_net() local
609 err = alloc_ila_locks(ilan); in ila_xlat_init_net()
613 rhashtable_init(&ilan->xlat.rhash_table, &rht_params); in ila_xlat_init_net()
620 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_exit_net() local
622 rhashtable_free_and_destroy(&ilan->xlat.rhash_table, ila_free_cb, NULL); in ila_xlat_exit_net()
624 free_bucket_spinlocks(ilan->xlat.locks); in ila_xlat_exit_net()
626 if (ilan->xlat.hooks_registered) in ila_xlat_exit_net()
636 struct ila_net *ilan = net_generic(net, ila_net_id); in ila_xlat_addr() local
648 ila = ila_lookup_wildcards(iaddr, skb->dev->ifindex, ilan); in ila_xlat_addr()