diff options
Diffstat (limited to 'include/uapi/linux/pkt_cls.h')
| -rw-r--r-- | include/uapi/linux/pkt_cls.h | 57 | 
1 files changed, 35 insertions, 22 deletions
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index bf08e76bf505..4f0d1bc3647d 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -4,6 +4,7 @@  #include <linux/types.h>  #include <linux/pkt_sched.h> +#ifdef __KERNEL__  /* I think i could have done better macros ; for now this is stolen from   * some arch/mips code - jhs  */ @@ -35,20 +36,6 @@ bits 9,10,11: redirect counter -  redirect TTL. Loop avoidance   *   * */ -#define TC_MUNGED          _TC_MAKEMASK1(0) -#define SET_TC_MUNGED(v)   ( TC_MUNGED | (v & ~TC_MUNGED)) -#define CLR_TC_MUNGED(v)   ( v & ~TC_MUNGED) - -#define TC_OK2MUNGE        _TC_MAKEMASK1(1) -#define SET_TC_OK2MUNGE(v)   ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE)) -#define CLR_TC_OK2MUNGE(v)   ( v & ~TC_OK2MUNGE) - -#define S_TC_VERD          _TC_MAKE32(2) -#define M_TC_VERD          _TC_MAKEMASK(4,S_TC_VERD) -#define G_TC_VERD(x)       _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD) -#define V_TC_VERD(x)       _TC_MAKEVALUE(x,S_TC_VERD) -#define SET_TC_VERD(v,n)   ((V_TC_VERD(n)) | (v & ~M_TC_VERD)) -  #define S_TC_FROM          _TC_MAKE32(6)  #define M_TC_FROM          _TC_MAKEMASK(2,S_TC_FROM)  #define G_TC_FROM(x)       _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM) @@ -62,18 +49,16 @@ bits 9,10,11: redirect counter -  redirect TTL. Loop avoidance  #define SET_TC_NCLS(v)   ( TC_NCLS | (v & ~TC_NCLS))  #define CLR_TC_NCLS(v)   ( v & ~TC_NCLS) -#define S_TC_RTTL          _TC_MAKE32(9) -#define M_TC_RTTL          _TC_MAKEMASK(3,S_TC_RTTL) -#define G_TC_RTTL(x)       _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL) -#define V_TC_RTTL(x)       _TC_MAKEVALUE(x,S_TC_RTTL) -#define SET_TC_RTTL(v,n)   ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL)) -  #define S_TC_AT          _TC_MAKE32(12)  #define M_TC_AT          _TC_MAKEMASK(2,S_TC_AT)  #define G_TC_AT(x)       _TC_GETVALUE(x,S_TC_AT,M_TC_AT)  #define V_TC_AT(x)       _TC_MAKEVALUE(x,S_TC_AT)  #define SET_TC_AT(v,n)   ((V_TC_AT(n)) | (v & ~M_TC_AT)) +#define MAX_REC_LOOP 4 +#define MAX_RED_LOOP 4 +#endif +  /* Action attributes */  enum {  	TCA_ACT_UNSPEC, @@ -93,8 +78,6 @@ enum {  #define TCA_ACT_NOUNBIND	0  #define TCA_ACT_REPLACE		1  #define TCA_ACT_NOREPLACE	0 -#define MAX_REC_LOOP 4 -#define MAX_RED_LOOP 4  #define TC_ACT_UNSPEC	(-1)  #define TC_ACT_OK		0 @@ -404,6 +387,36 @@ enum {  #define TCA_BPF_MAX (__TCA_BPF_MAX - 1) +/* Flower classifier */ + +enum { +	TCA_FLOWER_UNSPEC, +	TCA_FLOWER_CLASSID, +	TCA_FLOWER_INDEV, +	TCA_FLOWER_ACT, +	TCA_FLOWER_KEY_ETH_DST,		/* ETH_ALEN */ +	TCA_FLOWER_KEY_ETH_DST_MASK,	/* ETH_ALEN */ +	TCA_FLOWER_KEY_ETH_SRC,		/* ETH_ALEN */ +	TCA_FLOWER_KEY_ETH_SRC_MASK,	/* ETH_ALEN */ +	TCA_FLOWER_KEY_ETH_TYPE,	/* be16 */ +	TCA_FLOWER_KEY_IP_PROTO,	/* u8 */ +	TCA_FLOWER_KEY_IPV4_SRC,	/* be32 */ +	TCA_FLOWER_KEY_IPV4_SRC_MASK,	/* be32 */ +	TCA_FLOWER_KEY_IPV4_DST,	/* be32 */ +	TCA_FLOWER_KEY_IPV4_DST_MASK,	/* be32 */ +	TCA_FLOWER_KEY_IPV6_SRC,	/* struct in6_addr */ +	TCA_FLOWER_KEY_IPV6_SRC_MASK,	/* struct in6_addr */ +	TCA_FLOWER_KEY_IPV6_DST,	/* struct in6_addr */ +	TCA_FLOWER_KEY_IPV6_DST_MASK,	/* struct in6_addr */ +	TCA_FLOWER_KEY_TCP_SRC,		/* be16 */ +	TCA_FLOWER_KEY_TCP_DST,		/* be16 */ +	TCA_FLOWER_KEY_UDP_SRC,		/* be16 */ +	TCA_FLOWER_KEY_UDP_DST,		/* be16 */ +	__TCA_FLOWER_MAX, +}; + +#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) +  /* Extended Matches */  struct tcf_ematch_tree_hdr {  |