psp_dev
static void mlx5e_psp_assoc_del(struct psp_dev *psd, struct psp_assoc *pas)
mlx5e_psp_key_rotate(struct psp_dev *psd, struct netlink_ext_ack *exack)
mlx5e_psp_get_stats(struct psp_dev *psd, struct psp_dev_stats *stats)
struct psp_dev *psd;
mlx5e_psp_set_config(struct psp_dev *psd, struct psp_dev_config *conf,
mlx5e_psp_rx_spi_alloc(struct psp_dev *psd, u32 version,
static int mlx5e_psp_assoc_add(struct psp_dev *psd, struct psp_assoc *pas,
struct psp_dev *psp;
struct psp_dev __rcu *dev;
nsim_psp_set_config(struct psp_dev *psd, struct psp_dev_config *conf,
nsim_rx_spi_alloc(struct psp_dev *psd, u32 version,
static int nsim_assoc_add(struct psp_dev *psd, struct psp_assoc *pas,
static int nsim_key_rotate(struct psp_dev *psd, struct netlink_ext_ack *extack)
static void nsim_assoc_del(struct psp_dev *psd, struct psp_assoc *pas)
static void nsim_get_stats(struct psp_dev *psd, struct psp_dev_stats *stats)
struct psp_dev *peer_psd;
struct psp_dev *psd;
struct psp_dev *psd;
struct psp_dev *psd;
struct psp_dev __rcu *psp_dev;
struct psp_dev *
void psp_dev_unregister(struct psp_dev *psd);
struct psp_dev *psd;
int (*set_config)(struct psp_dev *psd, struct psp_dev_config *conf,
int (*key_rotate)(struct psp_dev *psd, struct netlink_ext_ack *extack);
int (*rx_spi_alloc)(struct psp_dev *psd, u32 version,
int (*tx_key_add)(struct psp_dev *psd, struct psp_assoc *pas,
void (*tx_key_del)(struct psp_dev *psd, struct psp_assoc *pas);
void (*get_stats)(struct psp_dev *psd, struct psp_dev_stats *stats);
void psp_dev_free(struct psp_dev *psd);
int psp_dev_check_access(struct psp_dev *psd, struct net *net, bool admin);
bool psp_has_assoc_dev_in_ns(struct psp_dev *psd, struct net *net);
void psp_nl_notify_dev(struct psp_dev *psd, u32 cmd);
struct psp_assoc *psp_assoc_create(struct psp_dev *psd);
struct psp_dev *psp_dev_get_for_sock(struct sock *sk);
void psp_dev_tx_key_del(struct psp_dev *psd, struct psp_assoc *pas);
int psp_sock_assoc_set_tx(struct sock *sk, struct psp_dev *psd,
void psp_assocs_key_rotated(struct psp_dev *psd);
static inline void psp_dev_get(struct psp_dev *psd)
static inline bool psp_dev_tryget(struct psp_dev *psd)
static inline void psp_dev_put(struct psp_dev *psd)
static inline bool psp_dev_is_registered(struct psp_dev *psd)
rcu_assign_pointer(netdev->psp_dev, psd);
void psp_dev_free(struct psp_dev *psd)
void psp_dev_unregister(struct psp_dev *psd)
rcu_assign_pointer(entry->assoc_dev->psp_dev, NULL);
rcu_assign_pointer(psd->main_netdev->psp_dev, NULL);
int psp_dev_check_access(struct psp_dev *psd, struct net *net, bool admin)
static void psp_dev_disassoc_one(struct psp_dev *psd, struct net_device *dev)
rcu_assign_pointer(entry->assoc_dev->psp_dev, NULL);
struct psp_dev *psd;
psd = rcu_dereference(dev->psp_dev);
struct psp_dev *
struct psp_dev *psd;
static struct sk_buff *psp_nl_clone_ntf(struct psp_dev *psd, struct net *net,
static void psp_nl_multicast_all_ns(struct psp_dev *psd, struct sk_buff *ntf,
static struct psp_dev *
struct psp_dev *psd;
static struct net *psp_nl_resolve_assoc_dev_ns(struct psp_dev *psd,
struct psp_dev *psd = info->user_ptr[0];
bool psp_has_assoc_dev_in_ns(struct psp_dev *psd, struct net *net)
static int psp_nl_fill_assoc_dev_list(struct psp_dev *psd, struct sk_buff *rsp,
psp_nl_dev_fill(struct psp_dev *psd, struct sk_buff *rsp,
static struct sk_buff *psp_nl_build_dev_ntf(struct psp_dev *psd,
void psp_nl_notify_dev(struct psp_dev *psd, u32 cmd)
struct psp_dev *psd = info->user_ptr[0];
struct psp_dev *psd)
struct psp_dev *psd;
struct psp_dev *psd = info->user_ptr[0];
struct psp_dev *psd = info->user_ptr[0];
struct psp_dev *psd = info->user_ptr[0];
if (cmpxchg(&assoc_dev->psp_dev, NULL, RCU_INITIALIZER(psd))) {
psp_nl_multicast_per_ns(struct psp_dev *psd, unsigned int group,
struct sk_buff *(*build_ntf)(struct psp_dev *,
rcu_assign_pointer(assoc_dev->psp_dev, NULL);
struct psp_dev *psd = info->user_ptr[0];
rcu_assign_pointer(found->assoc_dev->psp_dev, NULL);
struct psp_dev *psd;
struct psp_dev *psd = info->user_ptr[0];
struct psp_dev *psd = info->user_ptr[0];
psp_nl_stats_fill(struct psp_dev *psd, struct sk_buff *rsp,
struct psp_dev *psd = info->user_ptr[0];
struct psp_dev *psd)
struct psp_dev *psd;
struct psp_dev *psp_dev_get_for_sock(struct sock *sk)
struct psp_dev *psd = NULL;
int psp_sock_assoc_set_tx(struct sock *sk, struct psp_dev *psd,
psd = rcu_dereference(dst_dev_rcu(dst)->psp_dev);
void psp_assocs_key_rotated(struct psp_dev *psd)
good = !pas || rcu_access_pointer(dev->psp_dev) == pas->psd;
struct psp_assoc *psp_assoc_create(struct psp_dev *psd)
struct psp_dev *psd = pas->psd;
static int psp_dev_tx_key_add(struct psp_dev *psd, struct psp_assoc *pas,
void psp_dev_tx_key_del(struct psp_dev *psd, struct psp_assoc *pas)
struct psp_dev *psd = pas->psd;