#include <linux/refcount.h>
#include <linux/list.h>
#include <linux/rculist.h>
#include <linux/rtnetlink.h>
#include <linux/workqueue.h>
#include <linux/spinlock.h>
#include <linux/notifier.h>
#include <net/netevent.h>
#include <net/arp.h>
#include "neigh.h"
#include "tc.h"
#include "en_rep.h"
#include "fs_core.h"
#include "diag/en_rep_tracepoint.h"
static unsigned long mlx5e_rep_ipv6_interval(void)
{ … }
static void mlx5e_rep_neigh_update_init_interval(struct mlx5e_rep_priv *rpriv)
{ … }
void mlx5e_rep_queue_neigh_stats_work(struct mlx5e_priv *priv)
{ … }
static bool mlx5e_rep_neigh_entry_hold(struct mlx5e_neigh_hash_entry *nhe)
{ … }
static void mlx5e_rep_neigh_entry_remove(struct mlx5e_neigh_hash_entry *nhe);
void mlx5e_rep_neigh_entry_release(struct mlx5e_neigh_hash_entry *nhe)
{ … }
static struct mlx5e_neigh_hash_entry *
mlx5e_get_next_nhe(struct mlx5e_rep_priv *rpriv,
struct mlx5e_neigh_hash_entry *nhe)
{ … }
static void mlx5e_rep_neigh_stats_work(struct work_struct *work)
{ … }
struct neigh_update_work { … };
static void mlx5e_release_neigh_update_work(struct neigh_update_work *update_work)
{ … }
static void mlx5e_rep_neigh_update(struct work_struct *work)
{ … }
static struct neigh_update_work *mlx5e_alloc_neigh_update_work(struct mlx5e_priv *priv,
struct neighbour *n)
{ … }
static int mlx5e_rep_netevent_event(struct notifier_block *nb,
unsigned long event, void *ptr)
{ … }
static const struct rhashtable_params mlx5e_neigh_ht_params = …;
int mlx5e_rep_neigh_init(struct mlx5e_rep_priv *rpriv)
{ … }
void mlx5e_rep_neigh_cleanup(struct mlx5e_rep_priv *rpriv)
{ … }
static int mlx5e_rep_neigh_entry_insert(struct mlx5e_priv *priv,
struct mlx5e_neigh_hash_entry *nhe)
{ … }
static void mlx5e_rep_neigh_entry_remove(struct mlx5e_neigh_hash_entry *nhe)
{ … }
struct mlx5e_neigh_hash_entry *
mlx5e_rep_neigh_entry_lookup(struct mlx5e_priv *priv,
struct mlx5e_neigh *m_neigh)
{ … }
int mlx5e_rep_neigh_entry_create(struct mlx5e_priv *priv,
struct mlx5e_neigh *m_neigh,
struct net_device *neigh_dev,
struct mlx5e_neigh_hash_entry **nhe)
{ … }