144d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifndef _IPCONNTRACK_NETLINK_H
244d362409d5469aed47d19e7908d19bd194493aThomas Graf#define _IPCONNTRACK_NETLINK_H
344d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <linux/netfilter/nfnetlink.h>
444d362409d5469aed47d19e7908d19bd194493aThomas Graf
544d362409d5469aed47d19e7908d19bd194493aThomas Grafenum cntl_msg_types {
644d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_CT_NEW,
744d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_CT_GET,
844d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_CT_DELETE,
944d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_CT_GET_CTRZERO,
1044d362409d5469aed47d19e7908d19bd194493aThomas Graf
1144d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_MAX
1244d362409d5469aed47d19e7908d19bd194493aThomas Graf};
1344d362409d5469aed47d19e7908d19bd194493aThomas Graf
1444d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctnl_exp_msg_types {
1544d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_EXP_NEW,
1644d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_EXP_GET,
1744d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_EXP_DELETE,
1844d362409d5469aed47d19e7908d19bd194493aThomas Graf
1944d362409d5469aed47d19e7908d19bd194493aThomas Graf	IPCTNL_MSG_EXP_MAX
2044d362409d5469aed47d19e7908d19bd194493aThomas Graf};
2144d362409d5469aed47d19e7908d19bd194493aThomas Graf
2244d362409d5469aed47d19e7908d19bd194493aThomas Graf
2344d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_type {
2444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_UNSPEC,
2544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TUPLE_ORIG,
2644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TUPLE_REPLY,
2744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_STATUS,
2844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO,
2944d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_HELP,
3044d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_SRC,
3144d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_NAT	CTA_NAT_SRC	/* backwards compatibility */
3244d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TIMEOUT,
3344d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_MARK,
3444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS_ORIG,
3544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS_REPLY,
3644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_USE,
3744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_ID,
3844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_DST,
3944d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_MAX
4044d362409d5469aed47d19e7908d19bd194493aThomas Graf};
4144d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_MAX (__CTA_MAX - 1)
4244d362409d5469aed47d19e7908d19bd194493aThomas Graf
4344d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_tuple {
4444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TUPLE_UNSPEC,
4544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TUPLE_IP,
4644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_TUPLE_PROTO,
4744d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_TUPLE_MAX
4844d362409d5469aed47d19e7908d19bd194493aThomas Graf};
4944d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
5044d362409d5469aed47d19e7908d19bd194493aThomas Graf
5144d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_ip {
5244d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_IP_UNSPEC,
5344d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_IP_V4_SRC,
5444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_IP_V4_DST,
5544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_IP_V6_SRC,
5644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_IP_V6_DST,
5744d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_IP_MAX
5844d362409d5469aed47d19e7908d19bd194493aThomas Graf};
5944d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_IP_MAX (__CTA_IP_MAX - 1)
6044d362409d5469aed47d19e7908d19bd194493aThomas Graf
6144d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_l4proto {
6244d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_UNSPEC,
6344d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_NUM,
6444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_SRC_PORT,
6544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_DST_PORT,
6644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMP_ID,
6744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMP_TYPE,
6844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMP_CODE,
6944d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMPV6_ID,
7044d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMPV6_TYPE,
7144d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTO_ICMPV6_CODE,
7244d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_PROTO_MAX
7344d362409d5469aed47d19e7908d19bd194493aThomas Graf};
7444d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
7544d362409d5469aed47d19e7908d19bd194493aThomas Graf
7644d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_protoinfo {
7744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_UNSPEC,
7844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP,
7944d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_PROTOINFO_MAX
8044d362409d5469aed47d19e7908d19bd194493aThomas Graf};
8144d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
8244d362409d5469aed47d19e7908d19bd194493aThomas Graf
8344d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_protoinfo_tcp {
8444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_UNSPEC,
8544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_STATE,
8644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
8744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_WSCALE_REPLY,
8844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
8944d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTOINFO_TCP_FLAGS_REPLY,
9044d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_PROTOINFO_TCP_MAX
9144d362409d5469aed47d19e7908d19bd194493aThomas Graf};
9244d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
9344d362409d5469aed47d19e7908d19bd194493aThomas Graf
9444d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_counters {
9544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS_UNSPEC,
9644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS_PACKETS,		/* old 64bit counters */
9744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS_BYTES,		/* old 64bit counters */
9844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS32_PACKETS,
9944d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_COUNTERS32_BYTES,
10044d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_COUNTERS_MAX
10144d362409d5469aed47d19e7908d19bd194493aThomas Graf};
10244d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
10344d362409d5469aed47d19e7908d19bd194493aThomas Graf
10444d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_nat {
10544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_UNSPEC,
10644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_MINIP,
10744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_MAXIP,
10844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_NAT_PROTO,
10944d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_NAT_MAX
11044d362409d5469aed47d19e7908d19bd194493aThomas Graf};
11144d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
11244d362409d5469aed47d19e7908d19bd194493aThomas Graf
11344d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_protonat {
11444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTONAT_UNSPEC,
11544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTONAT_PORT_MIN,
11644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_PROTONAT_PORT_MAX,
11744d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_PROTONAT_MAX
11844d362409d5469aed47d19e7908d19bd194493aThomas Graf};
11944d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
12044d362409d5469aed47d19e7908d19bd194493aThomas Graf
12144d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_expect {
12244d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_UNSPEC,
12344d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_MASTER,
12444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_TUPLE,
12544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_MASK,
12644d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_TIMEOUT,
12744d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_ID,
12844d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_EXPECT_HELP_NAME,
12944d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_EXPECT_MAX
13044d362409d5469aed47d19e7908d19bd194493aThomas Graf};
13144d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
13244d362409d5469aed47d19e7908d19bd194493aThomas Graf
13344d362409d5469aed47d19e7908d19bd194493aThomas Grafenum ctattr_help {
13444d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_HELP_UNSPEC,
13544d362409d5469aed47d19e7908d19bd194493aThomas Graf	CTA_HELP_NAME,
13644d362409d5469aed47d19e7908d19bd194493aThomas Graf	__CTA_HELP_MAX
13744d362409d5469aed47d19e7908d19bd194493aThomas Graf};
13844d362409d5469aed47d19e7908d19bd194493aThomas Graf#define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
13944d362409d5469aed47d19e7908d19bd194493aThomas Graf
14044d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif /* _IPCONNTRACK_NETLINK_H */
141