sysfs: Add attribute array to sysdev classes
[safe/jmp/linux-2.6] / include / linux / pkt_cls.h
index 25d2d67..7f6ba86 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __LINUX_PKT_CLS_H
 #define __LINUX_PKT_CLS_H
 
+#include <linux/types.h>
 #include <linux/pkt_sched.h>
 
 /* I think i could have done better macros ; for now this is stolen from
@@ -74,8 +75,7 @@ bits 9,10,11: redirect counter -  redirect TTL. Loop avoidance
 #define SET_TC_AT(v,n)   ((V_TC_AT(n)) | (v & ~M_TC_AT))
 
 /* Action attributes */
-enum
-{
+enum {
        TCA_ACT_UNSPEC,
        TCA_ACT_KIND,
        TCA_ACT_OPTIONS,
@@ -107,8 +107,7 @@ enum
 #define TC_ACT_JUMP            0x10000000
 
 /* Action type identifiers*/
-enum
-{
+enum {
        TCA_ID_UNSPEC=0,
        TCA_ID_POLICE=1,
        /* other actions go here */
@@ -117,8 +116,7 @@ enum
 
 #define TCA_ID_MAX __TCA_ID_MAX
 
-struct tc_police
-{
+struct tc_police {
        __u32                   index;
        int                     action;
 #define TC_POLICE_UNSPEC       TC_ACT_UNSPEC
@@ -137,15 +135,13 @@ struct tc_police
        __u32                   capab;
 };
 
-struct tcf_t
-{
+struct tcf_t {
        __u64   install;
        __u64   lastuse;
        __u64   expires;
 };
 
-struct tc_cnt
-{
+struct tc_cnt {
        int                   refcnt; 
        int                   bindcnt;
 };
@@ -157,8 +153,7 @@ struct tc_cnt
        int                   refcnt; \
        int                   bindcnt
 
-enum
-{
+enum {
        TCA_POLICE_UNSPEC,
        TCA_POLICE_TBF,
        TCA_POLICE_RATE,
@@ -181,8 +176,7 @@ enum
 #define TC_U32_UNSPEC  0
 #define TC_U32_ROOT    (0xFFF00000)
 
-enum
-{
+enum {
        TCA_U32_UNSPEC,
        TCA_U32_CLASSID,
        TCA_U32_HASH,
@@ -199,38 +193,34 @@ enum
 
 #define TCA_U32_MAX (__TCA_U32_MAX - 1)
 
-struct tc_u32_key
-{
-       __u32           mask;
-       __u32           val;
+struct tc_u32_key {
+       __be32          mask;
+       __be32          val;
        int             off;
        int             offmask;
 };
 
-struct tc_u32_sel
-{
+struct tc_u32_sel {
        unsigned char           flags;
        unsigned char           offshift;
        unsigned char           nkeys;
 
-       __u16                   offmask;
+       __be16                  offmask;
        __u16                   off;
        short                   offoff;
 
        short                   hoff;
-       __u32                   hmask;
+       __be32                  hmask;
        struct tc_u32_key       keys[0];
 };
 
-struct tc_u32_mark
-{
+struct tc_u32_mark {
        __u32           val;
        __u32           mask;
        __u32           success;
 };
 
-struct tc_u32_pcnt
-{
+struct tc_u32_pcnt {
        __u64 rcnt;
        __u64 rhit;
        __u64 kcnts[0];
@@ -248,8 +238,7 @@ struct tc_u32_pcnt
 
 /* RSVP filter */
 
-enum
-{
+enum {
        TCA_RSVP_UNSPEC,
        TCA_RSVP_CLASSID,
        TCA_RSVP_DST,
@@ -262,26 +251,24 @@ enum
 
 #define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
 
-struct tc_rsvp_gpi
-{
+struct tc_rsvp_gpi {
        __u32   key;
        __u32   mask;
        int     offset;
 };
 
-struct tc_rsvp_pinfo
-{
+struct tc_rsvp_pinfo {
        struct tc_rsvp_gpi dpi;
        struct tc_rsvp_gpi spi;
        __u8    protocol;
        __u8    tunnelid;
        __u8    tunnelhdr;
+       __u8    pad;
 };
 
 /* ROUTE filter */
 
-enum
-{
+enum {
        TCA_ROUTE4_UNSPEC,
        TCA_ROUTE4_CLASSID,
        TCA_ROUTE4_TO,
@@ -297,13 +284,13 @@ enum
 
 /* FW filter */
 
-enum
-{
+enum {
        TCA_FW_UNSPEC,
        TCA_FW_CLASSID,
        TCA_FW_POLICE,
        TCA_FW_INDEV, /*  used by CONFIG_NET_CLS_IND */
        TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */
+       TCA_FW_MASK,
        __TCA_FW_MAX
 };
 
@@ -311,8 +298,7 @@ enum
 
 /* TC index filter */
 
-enum
-{
+enum {
        TCA_TCINDEX_UNSPEC,
        TCA_TCINDEX_HASH,
        TCA_TCINDEX_MASK,
@@ -326,10 +312,58 @@ enum
 
 #define TCA_TCINDEX_MAX     (__TCA_TCINDEX_MAX - 1)
 
+/* Flow filter */
+
+enum {
+       FLOW_KEY_SRC,
+       FLOW_KEY_DST,
+       FLOW_KEY_PROTO,
+       FLOW_KEY_PROTO_SRC,
+       FLOW_KEY_PROTO_DST,
+       FLOW_KEY_IIF,
+       FLOW_KEY_PRIORITY,
+       FLOW_KEY_MARK,
+       FLOW_KEY_NFCT,
+       FLOW_KEY_NFCT_SRC,
+       FLOW_KEY_NFCT_DST,
+       FLOW_KEY_NFCT_PROTO_SRC,
+       FLOW_KEY_NFCT_PROTO_DST,
+       FLOW_KEY_RTCLASSID,
+       FLOW_KEY_SKUID,
+       FLOW_KEY_SKGID,
+       FLOW_KEY_VLAN_TAG,
+       __FLOW_KEY_MAX,
+};
+
+#define FLOW_KEY_MAX   (__FLOW_KEY_MAX - 1)
+
+enum {
+       FLOW_MODE_MAP,
+       FLOW_MODE_HASH,
+};
+
+enum {
+       TCA_FLOW_UNSPEC,
+       TCA_FLOW_KEYS,
+       TCA_FLOW_MODE,
+       TCA_FLOW_BASECLASS,
+       TCA_FLOW_RSHIFT,
+       TCA_FLOW_ADDEND,
+       TCA_FLOW_MASK,
+       TCA_FLOW_XOR,
+       TCA_FLOW_DIVISOR,
+       TCA_FLOW_ACT,
+       TCA_FLOW_POLICE,
+       TCA_FLOW_EMATCHES,
+       TCA_FLOW_PERTURB,
+       __TCA_FLOW_MAX
+};
+
+#define TCA_FLOW_MAX   (__TCA_FLOW_MAX - 1)
+
 /* Basic filter */
 
-enum
-{
+enum {
        TCA_BASIC_UNSPEC,
        TCA_BASIC_CLASSID,
        TCA_BASIC_EMATCHES,
@@ -340,16 +374,27 @@ enum
 
 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
 
+
+/* Cgroup classifier */
+
+enum {
+       TCA_CGROUP_UNSPEC,
+       TCA_CGROUP_ACT,
+       TCA_CGROUP_POLICE,
+       TCA_CGROUP_EMATCHES,
+       __TCA_CGROUP_MAX,
+};
+
+#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
+
 /* Extended Matches */
 
-struct tcf_ematch_tree_hdr
-{
+struct tcf_ematch_tree_hdr {
        __u16           nmatches;
        __u16           progid;
 };
 
-enum
-{
+enum {
        TCA_EMATCH_TREE_UNSPEC,
        TCA_EMATCH_TREE_HDR,
        TCA_EMATCH_TREE_LIST,
@@ -357,8 +402,7 @@ enum
 };
 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
 
-struct tcf_ematch_hdr
-{
+struct tcf_ematch_hdr {
        __u16           matchid;
        __u16           kind;
        __u16           flags;
@@ -388,8 +432,7 @@ struct tcf_ematch_hdr
 #define TCF_EM_REL_MASK        3
 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
 
-enum
-{
+enum {
        TCF_LAYER_LINK,
        TCF_LAYER_NETWORK,
        TCF_LAYER_TRANSPORT,
@@ -401,24 +444,20 @@ enum
  *   1..32767          Reserved for ematches inside kernel tree
  *   32768..65535      Free to use, not reliable
  */
-enum
-{
-       TCF_EM_CONTAINER,
-       TCF_EM_CMP,
-       TCF_EM_NBYTE,
-       TCF_EM_U32,
-       TCF_EM_META,
-       TCF_EM_TEXT,
-       __TCF_EM_MAX
-};
-
-enum
-{
+#define        TCF_EM_CONTAINER        0
+#define        TCF_EM_CMP              1
+#define        TCF_EM_NBYTE            2
+#define        TCF_EM_U32              3
+#define        TCF_EM_META             4
+#define        TCF_EM_TEXT             5
+#define        TCF_EM_VLAN             6
+#define        TCF_EM_MAX              6
+
+enum {
        TCF_EM_PROG_TC
 };
 
-enum
-{
+enum {
        TCF_EM_OPND_EQ,
        TCF_EM_OPND_GT,
        TCF_EM_OPND_LT