libnl: /data/src/libnl3/include/netlink/netfilter/log.h Source File

libnl 3.7.0

log.h
1 /* SPDX-License-Identifier: LGPL-2.1-only */
2 /*
3 * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
4 * Copyright (c) 2007 Philip Craig <philipc@snapgear.com>
5 * Copyright (c) 2007 Secure Computing Corporation
6 * Copyright (c) 2008 Patrick McHardy <kaber@trash.net>
7 */
8
9 #ifndef NETLINK_LOG_H_
10 #define NETLINK_LOG_H_
11
12 #include <netlink/netlink.h>
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 struct nl_sock;
19 struct nlmsghdr;
20 struct nfnl_log;
21
22 extern struct nl_object_ops log_obj_ops;
23
24 enum nfnl_log_copy_mode {
25 NFNL_LOG_COPY_NONE,
26 NFNL_LOG_COPY_META,
27 NFNL_LOG_COPY_PACKET,
28 };
29
30 enum nfnl_log_flags {
31 NFNL_LOG_FLAG_SEQ = 0x1,
32 NFNL_LOG_FLAG_SEQ_GLOBAL = 0x2,
33 NFNL_LOG_FLAG_CONNTRACK = 0x4,
34 };
35
36 /* General */
37 extern struct nfnl_log * nfnl_log_alloc(void);
38 extern int nfnlmsg_log_parse(struct nlmsghdr *,
39 struct nfnl_log **);
40
41 extern void nfnl_log_get(struct nfnl_log *);
42 extern void nfnl_log_put(struct nfnl_log *);
43
44 /* Attributes */
45 extern void nfnl_log_set_group(struct nfnl_log *, uint16_t);
46 extern int nfnl_log_test_group(const struct nfnl_log *);
47 extern uint16_t nfnl_log_get_group(const struct nfnl_log *);
48
49 extern void nfnl_log_set_copy_mode(struct nfnl_log *,
50 enum nfnl_log_copy_mode);
51 extern int nfnl_log_test_copy_mode(const struct nfnl_log *);
52 extern enum nfnl_log_copy_mode nfnl_log_get_copy_mode(const struct nfnl_log *);
53
54 extern char * nfnl_log_copy_mode2str(enum nfnl_log_copy_mode,
55 char *, size_t);
56 extern int nfnl_log_str2copy_mode(const char *);
57
58 extern void nfnl_log_set_copy_range(struct nfnl_log *, uint32_t);
59 extern int nfnl_log_test_copy_range(const struct nfnl_log *);
60 extern uint32_t nfnl_log_get_copy_range(const struct nfnl_log *);
61
62 extern void nfnl_log_set_flush_timeout(struct nfnl_log *, uint32_t);
63 extern int nfnl_log_test_flush_timeout(const struct nfnl_log *);
64 extern uint32_t nfnl_log_get_flush_timeout(const struct nfnl_log *);
65
66 extern void nfnl_log_set_alloc_size(struct nfnl_log *, uint32_t);
67 extern int nfnl_log_test_alloc_size(const struct nfnl_log *);
68 extern uint32_t nfnl_log_get_alloc_size(const struct nfnl_log *);
69
70 extern void nfnl_log_set_queue_threshold(struct nfnl_log *, uint32_t);
71 extern int nfnl_log_test_queue_threshold(const struct nfnl_log *);
72 extern uint32_t nfnl_log_get_queue_threshold(const struct nfnl_log *);
73
74 extern void nfnl_log_set_flags(struct nfnl_log *, unsigned int);
75 extern void nfnl_log_unset_flags(struct nfnl_log *, unsigned int);
76 extern unsigned int nfnl_log_get_flags(const struct nfnl_log *);
77
78 extern char * nfnl_log_flags2str(unsigned int, char *, size_t);
79 extern unsigned int nfnl_log_str2flags(const char *);
80
81 extern int nfnl_log_build_pf_bind(uint8_t, struct nl_msg **);
82 extern int nfnl_log_pf_bind(struct nl_sock *, uint8_t);
83
84 extern int nfnl_log_build_pf_unbind(uint8_t, struct nl_msg **);
85 extern int nfnl_log_pf_unbind(struct nl_sock *, uint8_t);
86
87 extern int nfnl_log_build_create_request(const struct nfnl_log *,
88 struct nl_msg **);
89 extern int nfnl_log_create(struct nl_sock *, const struct nfnl_log *);
90
91 extern int nfnl_log_build_change_request(const struct nfnl_log *,
92 struct nl_msg **);
93 extern int nfnl_log_change(struct nl_sock *, const struct nfnl_log *);
94
95 extern int nfnl_log_build_delete_request(const struct nfnl_log *,
96 struct nl_msg **);
97 extern int nfnl_log_delete(struct nl_sock *, const struct nfnl_log *);
98
99 #ifdef __cplusplus
100 }
101 #endif
102
103 #endif
104