xref: /linux/include/uapi/linux/netfilter/xt_ecn.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
294d0ec58SDavid Howells /* iptables module for matching the ECN header in IPv4 and TCP header
394d0ec58SDavid Howells  *
494d0ec58SDavid Howells  * (C) 2002 Harald Welte <laforge@gnumonks.org>
594d0ec58SDavid Howells  *
694d0ec58SDavid Howells  * This software is distributed under GNU GPL v2, 1991
794d0ec58SDavid Howells  *
894d0ec58SDavid Howells  * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp
994d0ec58SDavid Howells */
1094d0ec58SDavid Howells #ifndef _XT_ECN_H
1194d0ec58SDavid Howells #define _XT_ECN_H
1294d0ec58SDavid Howells 
1394d0ec58SDavid Howells #include <linux/types.h>
1494d0ec58SDavid Howells #include <linux/netfilter/xt_dscp.h>
1594d0ec58SDavid Howells 
1694d0ec58SDavid Howells #define XT_ECN_IP_MASK	(~XT_DSCP_MASK)
1794d0ec58SDavid Howells 
1894d0ec58SDavid Howells #define XT_ECN_OP_MATCH_IP	0x01
1994d0ec58SDavid Howells #define XT_ECN_OP_MATCH_ECE	0x10
2094d0ec58SDavid Howells #define XT_ECN_OP_MATCH_CWR	0x20
2194d0ec58SDavid Howells 
2294d0ec58SDavid Howells #define XT_ECN_OP_MATCH_MASK	0xce
2394d0ec58SDavid Howells 
2494d0ec58SDavid Howells /* match info */
2594d0ec58SDavid Howells struct xt_ecn_info {
2694d0ec58SDavid Howells 	__u8 operation;
2794d0ec58SDavid Howells 	__u8 invert;
2894d0ec58SDavid Howells 	__u8 ip_ect;
2994d0ec58SDavid Howells 	union {
3094d0ec58SDavid Howells 		struct {
3194d0ec58SDavid Howells 			__u8 ect;
3294d0ec58SDavid Howells 		} tcp;
3394d0ec58SDavid Howells 	} proto;
3494d0ec58SDavid Howells };
3594d0ec58SDavid Howells 
3694d0ec58SDavid Howells #endif /* _XT_ECN_H */
37