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