#define EVENT_MASK NF_NETLINK_CONNTRACK_NEW | NF_NETLINK_CONNTRACK_DESTROY
static struct config_keyset nfct_kset = {
- .num_ces = 8,
+ .num_ces = 9,
.ces = {
{
.key = "pollinterval",
.options = CONFIG_OPT_NONE,
.u.value = 60,
},
+ {
+ .key = "reliable",
+ .type = CONFIG_TYPE_INT,
+ .options = CONFIG_OPT_NONE,
+ .u.value = 0,
+ },
},
};
#define pollint_ce(x) (x->ces[0])
#define nlsockbufsize_ce(x) (x->ces[5])
#define nlsockbufmaxsize_ce(x) (x->ces[6])
#define nlresynctimeout_ce(x) (x->ces[7])
+#define reliable_ce(x) (x->ces[8])
enum nfct_keys {
NFCT_ORIG_IP_SADDR = 0,
"set to %d\n", cpi->nlbufsiz);
}
+ if (reliable_ce(upi->config_kset).u.value != 0) {
+ int on = 1;
+
+ setsockopt(nfct_fd(cpi->cth), SOL_NETLINK,
+ NETLINK_BROADCAST_SEND_ERROR, &on, sizeof(int));
+ setsockopt(nfct_fd(cpi->cth), SOL_NETLINK,
+ NETLINK_NO_ENOBUFS, &on, sizeof(int));
+ ulogd_log(ULOGD_NOTICE, "NFCT reliable logging "
+ "has been enabled.");
+ }
cpi->nfct_fd.fd = nfct_fd(cpi->cth);
cpi->nfct_fd.cb = &read_cb_nfct;
cpi->nfct_fd.data = cpi;
[ct2]
#netlink_socket_buffer_size=217088
#netlink_socket_buffer_maxsize=1085440
+#reliable=1 # enable reliable flow-based logging (may drop packets)
hash_enable=0
# Logging of system packet through NFLOG