neigh_update
dev->neigh_update = t3_l2t_update;
tdev->neigh_update = NULL;
dev->neigh_update = dummy_neigh_update;
void (*neigh_update)(struct t3cdev *dev, struct neighbour *neigh);
if (!list_empty(&rpriv->neigh_update.neigh_list))
neigh_update.netevent_nb);
struct mlx5e_neigh_update_table *neigh_update = &rpriv->neigh_update;
list_for_each_entry_rcu(nhe, &neigh_update->neigh_list,
neigh_update->min_interval = min_t(unsigned long,
neigh_update->min_interval);
neigh_update->min_interval);
struct mlx5e_neigh_update_table *neigh_update = &rpriv->neigh_update;
err = rhashtable_init(&neigh_update->neigh_ht, &mlx5e_neigh_ht_params);
INIT_LIST_HEAD(&neigh_update->neigh_list);
mutex_init(&neigh_update->encap_lock);
INIT_DELAYED_WORK(&neigh_update->neigh_stats_work,
neigh_update->netevent_nb.notifier_call = mlx5e_rep_netevent_event;
err = register_netevent_notifier(&neigh_update->netevent_nb);
neigh_update->netevent_nb.notifier_call = NULL;
rhashtable_destroy(&neigh_update->neigh_ht);
struct mlx5e_neigh_update_table *neigh_update = &rpriv->neigh_update;
if (!rpriv->neigh_update.netevent_nb.notifier_call)
unregister_netevent_notifier(&neigh_update->netevent_nb);
cancel_delayed_work_sync(&rpriv->neigh_update.neigh_stats_work);
mutex_destroy(&neigh_update->encap_lock);
rhashtable_destroy(&neigh_update->neigh_ht);
err = rhashtable_insert_fast(&rpriv->neigh_update.neigh_ht,
list_add_rcu(&nhe->neigh_list, &rpriv->neigh_update.neigh_list);
mutex_lock(&rpriv->neigh_update.encap_lock);
rpriv->neigh_update.min_interval = min_t(unsigned long, ipv6_interval, ipv4_interval);
rhashtable_remove_fast(&rpriv->neigh_update.neigh_ht,
mutex_unlock(&rpriv->neigh_update.encap_lock);
mlx5_fc_update_sampling_interval(priv->mdev, rpriv->neigh_update.min_interval);
struct mlx5e_neigh_update_table *neigh_update = &rpriv->neigh_update;
nhe = rhashtable_lookup_fast(&neigh_update->neigh_ht, m_neigh,
struct mlx5e_neigh_update_table *neigh_update = &rpriv->neigh_update;
&neigh_update->neigh_stats_work,
neigh_update->min_interval);
list_next_or_null_rcu(&rpriv->neigh_update.neigh_list,
list_first_or_null_rcu(&rpriv->neigh_update.neigh_list,
next = list_next_or_null_rcu(&rpriv->neigh_update.neigh_list,
neigh_update.neigh_stats_work.work);
mutex_lock(&rpriv->neigh_update.encap_lock);
mutex_unlock(&rpriv->neigh_update.encap_lock);
mutex_unlock(&rpriv->neigh_update.encap_lock);
struct mlx5e_neigh_update_table neigh_update;
int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags,
TRACE_EVENT(neigh_update,
EXPORT_SYMBOL(neigh_update);
neigh_update(neigh, lladdr, NUD_STALE,
EXPORT_TRACEPOINT_SYMBOL_GPL(neigh_update);
err = neigh_update(neigh, (r->arp_flags & ATF_COM) ?
err = neigh_update(neigh, NULL, NUD_FAILED,
neigh_update(n, sha, state,
neigh_update(neigh, lladdr, new, flags, 0);