From 18b5628da718a56fed9628763669da36b5225aa2 Mon Sep 17 00:00:00 2001 From: "/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=yasuyuki/emailAddress=yasuyuki@netfilter.org" Date: Fri, 20 Oct 2006 12:24:34 +0000 Subject: - Add revision support to ip6tables. - Add support port range match to libip6t_multiport (R?mi Denis-Courmont ) --- include/ip6tables.h | 15 ++++++++++++++ include/linux/netfilter_ipv6/ip6t_multiport.h | 30 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 include/linux/netfilter_ipv6/ip6t_multiport.h (limited to 'include') diff --git a/include/ip6tables.h b/include/ip6tables.h index b1140b3..406f255 100644 --- a/include/ip6tables.h +++ b/include/ip6tables.h @@ -15,6 +15,18 @@ #define IPPROTO_DCCP 33 #endif +#ifndef IP6T_SO_GET_REVISION_MATCH /* Old kernel source. */ +#define IP6T_SO_GET_REVISION_MATCH (IP6T_BASE_CTL + 2) +#define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 3) + +struct ip6t_get_revision +{ + char name[IP6T_FUNCTION_MAXNAMELEN-1]; + + u_int8_t revision; +}; +#endif /* IP6T_SO_GET_REVISION_MATCH Old kernel source */ + struct ip6tables_rule_match { struct ip6tables_rule_match *next; @@ -33,6 +45,9 @@ struct ip6tables_match ip6t_chainlabel name; + /* Revision of match (0 by default). */ + u_int8_t revision; + const char *version; /* Size of match data. */ diff --git a/include/linux/netfilter_ipv6/ip6t_multiport.h b/include/linux/netfilter_ipv6/ip6t_multiport.h new file mode 100644 index 0000000..8c2cc9d --- /dev/null +++ b/include/linux/netfilter_ipv6/ip6t_multiport.h @@ -0,0 +1,30 @@ +#ifndef _IP6T_MULTIPORT_H +#define _IP6T_MULTIPORT_H + +enum ip6t_multiport_flags +{ + IP6T_MULTIPORT_SOURCE, + IP6T_MULTIPORT_DESTINATION, + IP6T_MULTIPORT_EITHER +}; + +#define IP6T_MULTI_PORTS 15 + +/* Must fit inside union xt_matchinfo: 16 bytes */ +struct ip6t_multiport +{ + u_int8_t flags; /* Type of comparison */ + u_int8_t count; /* Number of ports */ + u_int16_t ports[IP6T_MULTI_PORTS]; /* Ports */ +}; + +struct ip6t_multiport_v1 +{ + u_int8_t flags; /* Type of comparison */ + u_int8_t count; /* Number of ports */ + u_int16_t ports[IP6T_MULTI_PORTS]; /* Ports */ + u_int8_t pflags[IP6T_MULTI_PORTS]; /* Port flags */ + u_int8_t invert; /* Invert flag */ +}; + +#endif /*_IP6T_MULTIPORT_H*/ -- cgit v1.2.3