linux/include/linux/inet_diag.h
<<
>>
Prefs
   1#ifndef _INET_DIAG_H_
   2#define _INET_DIAG_H_ 1
   3
   4#include <uapi/linux/inet_diag.h>
   5
   6struct net;
   7struct sock;
   8struct inet_hashinfo;
   9struct nlattr;
  10struct nlmsghdr;
  11struct sk_buff;
  12struct netlink_callback;
  13
  14struct inet_diag_handler {
  15        void            (*dump)(struct sk_buff *skb,
  16                                struct netlink_callback *cb,
  17                                const struct inet_diag_req_v2 *r,
  18                                struct nlattr *bc);
  19
  20        int             (*dump_one)(struct sk_buff *in_skb,
  21                                    const struct nlmsghdr *nlh,
  22                                    const struct inet_diag_req_v2 *req);
  23
  24        void            (*idiag_get_info)(struct sock *sk,
  25                                          struct inet_diag_msg *r,
  26                                          void *info);
  27
  28        int             (*destroy)(struct sk_buff *in_skb,
  29                                   const struct inet_diag_req_v2 *req);
  30
  31        __u16           idiag_type;
  32        __u16           idiag_info_size;
  33};
  34
  35struct inet_connection_sock;
  36int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
  37                      struct sk_buff *skb, const struct inet_diag_req_v2 *req,
  38                      struct user_namespace *user_ns,
  39                      u32 pid, u32 seq, u16 nlmsg_flags,
  40                      const struct nlmsghdr *unlh, bool net_admin);
  41void inet_diag_dump_icsk(struct inet_hashinfo *h, struct sk_buff *skb,
  42                         struct netlink_callback *cb,
  43                         const struct inet_diag_req_v2 *r,
  44                         struct nlattr *bc);
  45int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
  46                            struct sk_buff *in_skb, const struct nlmsghdr *nlh,
  47                            const struct inet_diag_req_v2 *req);
  48
  49struct sock *inet_diag_find_one_icsk(struct net *net,
  50                                     struct inet_hashinfo *hashinfo,
  51                                     const struct inet_diag_req_v2 *req);
  52
  53int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk);
  54
  55void inet_diag_msg_common_fill(struct inet_diag_msg *r, struct sock *sk);
  56
  57int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
  58                             struct inet_diag_msg *r, int ext,
  59                             struct user_namespace *user_ns, bool net_admin);
  60
  61extern int  inet_diag_register(const struct inet_diag_handler *handler);
  62extern void inet_diag_unregister(const struct inet_diag_handler *handler);
  63#endif /* _INET_DIAG_H_ */
  64