1d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt/* iptables module for matching the ECN header in IPv4 and TCP header 2d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * 3d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * (C) 2002 Harald Welte <laforge@gnumonks.org> 4d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * 5d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * This software is distributed under GNU GPL v2, 1991 6d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * 7d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp 8d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt*/ 9d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt#ifndef _XT_ECN_H 10d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt#define _XT_ECN_H 11d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 12d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt#include <linux/types.h> 13d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt#include <linux/netfilter/xt_dscp.h> 14d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 15a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardt#define XT_ECN_IP_MASK (~XT_DSCP_MASK) 16d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 17a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardt#define XT_ECN_OP_MATCH_IP 0x01 18a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardt#define XT_ECN_OP_MATCH_ECE 0x10 19a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardt#define XT_ECN_OP_MATCH_CWR 0x20 20d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 21a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardt#define XT_ECN_OP_MATCH_MASK 0xce 22d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 23d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt/* match info */ 24a4c6f9d3636db538025f9622c008192a0835cc23Jan Engelhardtstruct xt_ecn_info { 25d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt __u8 operation; 26d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt __u8 invert; 27d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt __u8 ip_ect; 28d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt union { 29d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt struct { 30d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt __u8 ect; 31d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt } tcp; 32d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt } proto; 33d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt}; 34d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt 35d446a8202c81d95f91b1682fc67e7fadd9a31389Jan Engelhardt#endif /* _XT_ECN_H */ 36