]>
git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - include/linux/inet_diag.h
2 #define _INET_DIAG_H_ 1
4 #include <uapi/linux/inet_diag.h>
12 struct netlink_callback
;
14 struct inet_diag_handler
{
15 void (*dump
)(struct sk_buff
*skb
,
16 struct netlink_callback
*cb
,
17 const struct inet_diag_req_v2
*r
,
20 int (*dump_one
)(struct sk_buff
*in_skb
,
21 const struct nlmsghdr
*nlh
,
22 const struct inet_diag_req_v2
*req
);
24 void (*idiag_get_info
)(struct sock
*sk
,
25 struct inet_diag_msg
*r
,
28 int (*destroy
)(struct sk_buff
*in_skb
,
29 const struct inet_diag_req_v2
*req
);
32 __u16 idiag_info_size
;
35 struct inet_connection_sock
;
36 int 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
);
41 void 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
,
45 int 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
);
49 struct sock
*inet_diag_find_one_icsk(struct net
*net
,
50 struct inet_hashinfo
*hashinfo
,
51 const struct inet_diag_req_v2
*req
);
53 int inet_diag_bc_sk(const struct nlattr
*_bc
, struct sock
*sk
);
55 void inet_diag_msg_common_fill(struct inet_diag_msg
*r
, struct sock
*sk
);
57 int 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
);
61 extern int inet_diag_register(const struct inet_diag_handler
*handler
);
62 extern void inet_diag_unregister(const struct inet_diag_handler
*handler
);
63 #endif /* _INET_DIAG_H_ */