-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[NETFILTER]: Add ctnetlink subsystem
Add ctnetlink subsystem for userspace-access to ip_conntrack table. This allows reading and updating of existing entries, as well as creating new ones (and new expect's) via nfnetlink. Please note the 'strange' byte order: nfattr (tag+length) are in host byte order, while the payload is always guaranteed to be in network byte order. This allows a simple userspace process to encapsulate netlink messages into arch-independent udp packets by just processing/swapping the headers and not knowing anything about the actual payload. Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Harald Welte
authored and
David S. Miller
committed
Aug 29, 2005
1 parent
6f1cf16
commit 080774a
Showing
23 changed files
with
2,277 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
#ifndef _IPCONNTRACK_NETLINK_H | ||
#define _IPCONNTRACK_NETLINK_H | ||
#include <linux/netfilter/nfnetlink.h> | ||
|
||
enum cntl_msg_types { | ||
IPCTNL_MSG_CT_NEW, | ||
IPCTNL_MSG_CT_GET, | ||
IPCTNL_MSG_CT_DELETE, | ||
IPCTNL_MSG_CT_GET_CTRZERO, | ||
|
||
IPCTNL_MSG_MAX | ||
}; | ||
|
||
enum ctnl_exp_msg_types { | ||
IPCTNL_MSG_EXP_NEW, | ||
IPCTNL_MSG_EXP_GET, | ||
IPCTNL_MSG_EXP_DELETE, | ||
|
||
IPCTNL_MSG_EXP_MAX | ||
}; | ||
|
||
|
||
enum ctattr_type { | ||
CTA_UNSPEC, | ||
CTA_TUPLE_ORIG, | ||
CTA_TUPLE_REPLY, | ||
CTA_STATUS, | ||
CTA_PROTOINFO, | ||
CTA_HELP, | ||
CTA_NAT, | ||
CTA_TIMEOUT, | ||
CTA_MARK, | ||
CTA_COUNTERS_ORIG, | ||
CTA_COUNTERS_REPLY, | ||
CTA_USE, | ||
CTA_EXPECT, | ||
CTA_ID, | ||
__CTA_MAX | ||
}; | ||
#define CTA_MAX (__CTA_MAX - 1) | ||
|
||
enum ctattr_tuple { | ||
CTA_TUPLE_UNSPEC, | ||
CTA_TUPLE_IP, | ||
CTA_TUPLE_PROTO, | ||
__CTA_TUPLE_MAX | ||
}; | ||
#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) | ||
|
||
enum ctattr_ip { | ||
CTA_IP_UNSPEC, | ||
CTA_IP_V4_SRC, | ||
CTA_IP_V4_DST, | ||
CTA_IP_V6_SRC, | ||
CTA_IP_V6_DST, | ||
__CTA_IP_MAX | ||
}; | ||
#define CTA_IP_MAX (__CTA_IP_MAX - 1) | ||
|
||
enum ctattr_l4proto { | ||
CTA_PROTO_UNSPEC, | ||
CTA_PROTO_NUM, | ||
CTA_PROTO_SRC_PORT, | ||
CTA_PROTO_DST_PORT, | ||
CTA_PROTO_ICMP_ID, | ||
CTA_PROTO_ICMP_TYPE, | ||
CTA_PROTO_ICMP_CODE, | ||
__CTA_PROTO_MAX | ||
}; | ||
#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1) | ||
|
||
enum ctattr_protoinfo { | ||
CTA_PROTOINFO_UNSPEC, | ||
CTA_PROTOINFO_TCP_STATE, | ||
__CTA_PROTOINFO_MAX | ||
}; | ||
#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1) | ||
|
||
enum ctattr_counters { | ||
CTA_COUNTERS_UNSPEC, | ||
CTA_COUNTERS_PACKETS, | ||
CTA_COUNTERS_BYTES, | ||
__CTA_COUNTERS_MAX | ||
}; | ||
#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) | ||
|
||
enum ctattr_nat { | ||
CTA_NAT_UNSPEC, | ||
CTA_NAT_MINIP, | ||
CTA_NAT_MAXIP, | ||
CTA_NAT_PROTO, | ||
__CTA_NAT_MAX | ||
}; | ||
#define CTA_NAT_MAX (__CTA_NAT_MAX - 1) | ||
|
||
enum ctattr_protonat { | ||
CTA_PROTONAT_UNSPEC, | ||
CTA_PROTONAT_PORT_MIN, | ||
CTA_PROTONAT_PORT_MAX, | ||
__CTA_PROTONAT_MAX | ||
}; | ||
#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) | ||
|
||
enum ctattr_expect { | ||
CTA_EXPECT_UNSPEC, | ||
CTA_EXPECT_TUPLE, | ||
CTA_EXPECT_MASK, | ||
CTA_EXPECT_TIMEOUT, | ||
CTA_EXPECT_ID, | ||
__CTA_EXPECT_MAX | ||
}; | ||
#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1) | ||
|
||
enum ctattr_help { | ||
CTA_HELP_UNSPEC, | ||
CTA_HELP_NAME, | ||
__CTA_HELP_MAX | ||
}; | ||
#define CTA_HELP_MAX (__CTA_HELP_MAX - 1) | ||
|
||
#define CTA_HELP_MAXNAMESIZE 32 | ||
|
||
#endif /* _IPCONNTRACK_NETLINK_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.