linux/include/net/bpf_sk_storage.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Copyright (c) 2019 Facebook */
   3#ifndef _BPF_SK_STORAGE_H
   4#define _BPF_SK_STORAGE_H
   5
   6#include <linux/rculist.h>
   7#include <linux/list.h>
   8#include <linux/hash.h>
   9#include <linux/types.h>
  10#include <linux/spinlock.h>
  11#include <linux/bpf.h>
  12#include <net/sock.h>
  13#include <uapi/linux/sock_diag.h>
  14#include <uapi/linux/btf.h>
  15#include <linux/bpf_local_storage.h>
  16
  17struct sock;
  18
  19void bpf_sk_storage_free(struct sock *sk);
  20
  21extern const struct bpf_func_proto bpf_sk_storage_get_proto;
  22extern const struct bpf_func_proto bpf_sk_storage_delete_proto;
  23extern const struct bpf_func_proto bpf_sk_storage_get_tracing_proto;
  24extern const struct bpf_func_proto bpf_sk_storage_delete_tracing_proto;
  25
  26struct bpf_local_storage_elem;
  27struct bpf_sk_storage_diag;
  28struct sk_buff;
  29struct nlattr;
  30
  31#ifdef CONFIG_BPF_SYSCALL
  32int bpf_sk_storage_clone(const struct sock *sk, struct sock *newsk);
  33struct bpf_sk_storage_diag *
  34bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs);
  35void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag);
  36int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
  37                            struct sock *sk, struct sk_buff *skb,
  38                            int stg_array_type,
  39                            unsigned int *res_diag_size);
  40#else
  41static inline int bpf_sk_storage_clone(const struct sock *sk,
  42                                       struct sock *newsk)
  43{
  44        return 0;
  45}
  46static inline struct bpf_sk_storage_diag *
  47bpf_sk_storage_diag_alloc(const struct nlattr *nla)
  48{
  49        return NULL;
  50}
  51static inline void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag)
  52{
  53}
  54static inline int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
  55                                          struct sock *sk, struct sk_buff *skb,
  56                                          int stg_array_type,
  57                                          unsigned int *res_diag_size)
  58{
  59        return 0;
  60}
  61#endif
  62
  63#endif /* _BPF_SK_STORAGE_H */
  64