From f3d2a5ee1af6fc4e548f02e4bc4e143d7d0c8d90 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 29 Feb 2012 02:55:00 +0100 Subject: initial commit Signed-off-by: Pablo Neira Ayuso --- include/libnetfilter_cttimeout/Makefile.am | 1 + .../libnetfilter_cttimeout.h | 106 +++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 include/libnetfilter_cttimeout/Makefile.am create mode 100644 include/libnetfilter_cttimeout/libnetfilter_cttimeout.h (limited to 'include/libnetfilter_cttimeout') diff --git a/include/libnetfilter_cttimeout/Makefile.am b/include/libnetfilter_cttimeout/Makefile.am new file mode 100644 index 0000000..63c9eea --- /dev/null +++ b/include/libnetfilter_cttimeout/Makefile.am @@ -0,0 +1 @@ +pkginclude_HEADERS = libnetfilter_cttimeout.h diff --git a/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h b/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h new file mode 100644 index 0000000..be37636 --- /dev/null +++ b/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h @@ -0,0 +1,106 @@ +#ifndef _LIBNETFILTER_CTTIMEOUT_H_ +#define _LIBNETFILTER_CTTIMEOUT_H_ + +#include +#include + +struct nfct_timeout; + +struct nfct_timeout *nfct_timeout_alloc(void); +void nfct_timeout_free(struct nfct_timeout *); + +enum nfct_timeout_attr { + NFCT_TIMEOUT_ATTR_NAME= 0, + NFCT_TIMEOUT_ATTR_L3PROTO, + NFCT_TIMEOUT_ATTR_L4PROTO, + NFCT_TIMEOUT_ATTR_POLICY, + NFCT_TIMEOUT_ATTR_MAX +}; + +enum nfct_timeout_tcp_attr { + NFCT_TIMEOUT_ATTR_TCP_SYN_SENT = 0, + NFCT_TIMEOUT_ATTR_TCP_SYN_RECV, + NFCT_TIMEOUT_ATTR_TCP_ESTABLISHED, + NFCT_TIMEOUT_ATTR_TCP_FIN_WAIT, + NFCT_TIMEOUT_ATTR_TCP_CLOSE_WAIT, + NFCT_TIMEOUT_ATTR_TCP_LAST_ACK, + NFCT_TIMEOUT_ATTR_TCP_TIME_WAIT, + NFCT_TIMEOUT_ATTR_TCP_CLOSE, + NFCT_TIMEOUT_ATTR_TCP_SYN_SENT2, + NFCT_TIMEOUT_ATTR_TCP_RETRANS, + NFCT_TIMEOUT_ATTR_TCP_UNACK, + NFCT_TIMEOUT_ATTR_TCP_MAX +}; + +enum nfct_timeout_udp_attr { + NFCT_TIMEOUT_ATTR_UDP_UNREPLIED = 0, + NFCT_TIMEOUT_ATTR_UDP_REPLIED, + NFCT_TIMEOUT_ATTR_UDP_MAX +}; + +enum nfct_timeout_udplite_attr { + NFCT_TIMEOUT_ATTR_UDPLITE_UNREPLIED = 0, + NFCT_TIMEOUT_ATTR_UDPLITE_REPLIED, + NFCT_TIMEOUT_ATTR_UDPLITE_MAX +}; + +enum nfct_timeout_dccp_attr { + NFCT_TIMEOUT_ATTR_DCCP_REQUEST, + NFCT_TIMEOUT_ATTR_DCCP_RESPOND, + NFCT_TIMEOUT_ATTR_DCCP_PARTOPEN, + NFCT_TIMEOUT_ATTR_DCCP_OPEN, + NFCT_TIMEOUT_ATTR_DCCP_CLOSEREQ, + NFCT_TIMEOUT_ATTR_DCCP_CLOSING, + NFCT_TIMEOUT_ATTR_DCCP_TIMEWAIT, + NFCT_TIMEOUT_ATTR_DCCP_MAX +}; + +enum nfct_timeout_sctp_attr { + NFCT_TIMEOUT_ATTR_SCTP_CLOSED = 0, + NFCT_TIMEOUT_ATTR_SCTP_COOKIE_WAIT, + NFCT_TIMEOUT_ATTR_SCTP_COOKIE_ECHOED, + NFCT_TIMEOUT_ATTR_SCTP_ESTABLISHED, + NFCT_TIMEOUT_ATTR_SCTP_SHUTDOWN_SENT, + NFCT_TIMEOUT_ATTR_SCTP_SHUTDOWN_RECD, + NFCT_TIMEOUT_ATTR_SCTP_SHUTDOWN_ACK_SENT, + NFCT_TIMEOUT_ATTR_SCTP_MAX +}; + +enum nfct_timeout_icmp_attr { + NFCT_TIMEOUT_ATTR_ICMP = 0, + NFCT_TIMEOUT_ATTR_ICMP_MAX +}; + +enum nfct_timeout_icmpv6_attr { + NFCT_TIMEOUT_ATTR_ICMPV6 = 0, + NFCT_TIMEOUT_ATTR_ICMPV6_MAX +}; + +enum nfct_timeout_gre_attr { + NFCT_TIMEOUT_ATTR_GRE_UNREPLIED = 0, + NFCT_TIMEOUT_ATTR_GRE_REPLIED, + NFCT_TIMEOUT_ATTR_GRE_MAX +}; + +enum nfct_timeout_generic_attr { + NFCT_TIMEOUT_ATTR_GENERIC = 0, + NFCT_TIMEOUT_ATTR_GENERIC_MAX +}; + +int nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data); +int nfct_timeout_attr_set_u8(struct nfct_timeout *t, uint32_t type, uint8_t data); +int nfct_timeout_attr_set_u16(struct nfct_timeout *t, uint32_t type, uint16_t data); +void nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type); + +int nfct_timeout_policy_attr_set_u32(struct nfct_timeout *, uint32_t type, uint32_t data); +void nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type); + +struct nlmsghdr; + +struct nlmsghdr *nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq); +void nfct_timeout_nlmsg_build_payload(struct nlmsghdr *, struct nfct_timeout *); +int nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfct_timeout *); + +int nfct_timeout_snprintf(char *buf, size_t size, struct nfct_timeout *, unsigned int flags); + +#endif -- cgit v1.2.3