[NETFILTER]: x_tables: unify IPv4/IPv6 multiport match
This unifies ipt_multiport and ip6t_multiport to xt_multiport. As a result, this addes support for inversion and port range match to IPv6 packets. Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dc5ab2faec
commit
a89ecb6a2e
12 changed files with 372 additions and 381 deletions
30
include/linux/netfilter/xt_multiport.h
Normal file
30
include/linux/netfilter/xt_multiport.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef _XT_MULTIPORT_H
|
||||
#define _XT_MULTIPORT_H
|
||||
|
||||
enum xt_multiport_flags
|
||||
{
|
||||
XT_MULTIPORT_SOURCE,
|
||||
XT_MULTIPORT_DESTINATION,
|
||||
XT_MULTIPORT_EITHER
|
||||
};
|
||||
|
||||
#define XT_MULTI_PORTS 15
|
||||
|
||||
/* Must fit inside union xt_matchinfo: 16 bytes */
|
||||
struct xt_multiport
|
||||
{
|
||||
u_int8_t flags; /* Type of comparison */
|
||||
u_int8_t count; /* Number of ports */
|
||||
u_int16_t ports[XT_MULTI_PORTS]; /* Ports */
|
||||
};
|
||||
|
||||
struct xt_multiport_v1
|
||||
{
|
||||
u_int8_t flags; /* Type of comparison */
|
||||
u_int8_t count; /* Number of ports */
|
||||
u_int16_t ports[XT_MULTI_PORTS]; /* Ports */
|
||||
u_int8_t pflags[XT_MULTI_PORTS]; /* Port flags */
|
||||
u_int8_t invert; /* Invert flag */
|
||||
};
|
||||
|
||||
#endif /*_XT_MULTIPORT_H*/
|
||||
|
|
@ -1,30 +1,15 @@
|
|||
#ifndef _IPT_MULTIPORT_H
|
||||
#define _IPT_MULTIPORT_H
|
||||
#include <linux/netfilter_ipv4/ip_tables.h>
|
||||
|
||||
enum ipt_multiport_flags
|
||||
{
|
||||
IPT_MULTIPORT_SOURCE,
|
||||
IPT_MULTIPORT_DESTINATION,
|
||||
IPT_MULTIPORT_EITHER
|
||||
};
|
||||
#include <linux/netfilter/xt_multiport.h>
|
||||
|
||||
#define IPT_MULTI_PORTS 15
|
||||
#define IPT_MULTIPORT_SOURCE XT_MULTIPORT_SOURCE
|
||||
#define IPT_MULTIPORT_DESTINATION XT_MULTIPORT_DESTINATION
|
||||
#define IPT_MULTIPORT_EITHER XT_MULTIPORT_EITHER
|
||||
|
||||
/* Must fit inside union ipt_matchinfo: 16 bytes */
|
||||
struct ipt_multiport
|
||||
{
|
||||
u_int8_t flags; /* Type of comparison */
|
||||
u_int8_t count; /* Number of ports */
|
||||
u_int16_t ports[IPT_MULTI_PORTS]; /* Ports */
|
||||
};
|
||||
#define IPT_MULTI_PORTS XT_MULTI_PORTS
|
||||
|
||||
#define ipt_multiport xt_multiport
|
||||
#define ipt_multiport_v1 xt_multiport_v1
|
||||
|
||||
struct ipt_multiport_v1
|
||||
{
|
||||
u_int8_t flags; /* Type of comparison */
|
||||
u_int8_t count; /* Number of ports */
|
||||
u_int16_t ports[IPT_MULTI_PORTS]; /* Ports */
|
||||
u_int8_t pflags[IPT_MULTI_PORTS]; /* Port flags */
|
||||
u_int8_t invert; /* Invert flag */
|
||||
};
|
||||
#endif /*_IPT_MULTIPORT_H*/
|
||||
|
|
|
|||
|
|
@ -1,21 +1,14 @@
|
|||
#ifndef _IP6T_MULTIPORT_H
|
||||
#define _IP6T_MULTIPORT_H
|
||||
#include <linux/netfilter_ipv6/ip6_tables.h>
|
||||
|
||||
enum ip6t_multiport_flags
|
||||
{
|
||||
IP6T_MULTIPORT_SOURCE,
|
||||
IP6T_MULTIPORT_DESTINATION,
|
||||
IP6T_MULTIPORT_EITHER
|
||||
};
|
||||
#include <linux/netfilter/xt_multiport.h>
|
||||
|
||||
#define IP6T_MULTI_PORTS 15
|
||||
#define IP6T_MULTIPORT_SOURCE XT_MULTIPORT_SOURCE
|
||||
#define IP6T_MULTIPORT_DESTINATION XT_MULTIPORT_DESTINATION
|
||||
#define IP6T_MULTIPORT_EITHER XT_MULTIPORT_EITHER
|
||||
|
||||
/* Must fit inside union ip6t_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 */
|
||||
};
|
||||
#endif /*_IPT_MULTIPORT_H*/
|
||||
#define IP6T_MULTI_PORTS XT_MULTI_PORTS
|
||||
|
||||
#define ip6t_multiport xt_multiport
|
||||
|
||||
#endif /*_IP6T_MULTIPORT_H*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue