130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Header file for iptables ipt_ECN target 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * (C) 2002 by Harald Welte <laforge@gnumonks.org> 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This software is distributed under GNU GPL v2, 1991 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ipt_ECN.h,v 1.3 2002/05/29 12:17:40 laforge Exp 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng*/ 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _IPT_ECN_TARGET_H 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _IPT_ECN_TARGET_H 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netfilter/xt_DSCP.h> 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IPT_ECN_IP_MASK (~XT_DSCP_MASK) 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IPT_ECN_OP_SET_IP 0x01 /* set ECN bits of IPv4 header */ 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IPT_ECN_OP_SET_ECE 0x10 /* set ECE bit of TCP header */ 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IPT_ECN_OP_SET_CWR 0x20 /* set CWR bit of TCP header */ 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IPT_ECN_OP_MASK 0xce 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2330692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ipt_ECN_info { 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 operation; /* bitset of operations */ 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 ip_ect; /* ECT codepoint of IPv4 header, pre-shifted */ 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng union { 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct { 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 ece:1, cwr:1; /* TCP ECT bits */ 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng } tcp; 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng } proto; 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _IPT_ECN_TARGET_H */ 34