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