1ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#ifndef _XT_TCPUDP_H
2ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define _XT_TCPUDP_H
3ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
4c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger#include <linux/types.h>
5c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger
6ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger/* TCP matching stuff */
7ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct xt_tcp {
8c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u16 spts[2];			/* Source port range. */
9c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u16 dpts[2];			/* Destination port range. */
10c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u8 option;			/* TCP Option iff non-zero*/
11c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u8 flg_mask;			/* TCP flags mask byte */
12c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u8 flg_cmp;			/* TCP flags compare byte */
13c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u8 invflags;			/* Inverse flags */
14ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger};
15ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
16ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger/* Values for "inv" field in struct ipt_tcp. */
17ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_TCP_INV_SRCPT	0x01	/* Invert the sense of source ports. */
18ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_TCP_INV_DSTPT	0x02	/* Invert the sense of dest ports. */
19ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_TCP_INV_FLAGS	0x04	/* Invert the sense of TCP flags. */
20ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_TCP_INV_OPTION	0x08	/* Invert the sense of option test. */
21ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_TCP_INV_MASK		0x0F	/* All possible flags. */
22ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
23ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger/* UDP matching stuff */
24ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct xt_udp {
25c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u16 spts[2];			/* Source port range. */
26c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u16 dpts[2];			/* Destination port range. */
27c40bba6922b470c0fd0c7a7b8b09584527c468e9Stephen Hemminger	__u8 invflags;			/* Inverse flags */
28ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger};
29ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
30ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger/* Values for "invflags" field in struct ipt_udp. */
31ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_UDP_INV_SRCPT	0x01	/* Invert the sense of source ports. */
32ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_UDP_INV_DSTPT	0x02	/* Invert the sense of dest ports. */
33ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#define XT_UDP_INV_MASK	0x03	/* All possible flags. */
34ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
35ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger
36ab4c2f14fb93700c9aefeb02ed9918565ba332a1Stephen Hemminger#endif
37