Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef __LINUX_TC_EM_META_H
0003 #define __LINUX_TC_EM_META_H
0004 
0005 #include <linux/types.h>
0006 #include <linux/pkt_cls.h>
0007 
0008 enum {
0009     TCA_EM_META_UNSPEC,
0010     TCA_EM_META_HDR,
0011     TCA_EM_META_LVALUE,
0012     TCA_EM_META_RVALUE,
0013     __TCA_EM_META_MAX
0014 };
0015 #define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1)
0016 
0017 struct tcf_meta_val {
0018     __u16           kind;
0019     __u8            shift;
0020     __u8            op;
0021 };
0022 
0023 #define TCF_META_TYPE_MASK  (0xf << 12)
0024 #define TCF_META_TYPE(kind) (((kind) & TCF_META_TYPE_MASK) >> 12)
0025 #define TCF_META_ID_MASK    0x7ff
0026 #define TCF_META_ID(kind)   ((kind) & TCF_META_ID_MASK)
0027 
0028 enum {
0029     TCF_META_TYPE_VAR,
0030     TCF_META_TYPE_INT,
0031     __TCF_META_TYPE_MAX
0032 };
0033 #define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1)
0034 
0035 enum {
0036     TCF_META_ID_VALUE,
0037     TCF_META_ID_RANDOM,
0038     TCF_META_ID_LOADAVG_0,
0039     TCF_META_ID_LOADAVG_1,
0040     TCF_META_ID_LOADAVG_2,
0041     TCF_META_ID_DEV,
0042     TCF_META_ID_PRIORITY,
0043     TCF_META_ID_PROTOCOL,
0044     TCF_META_ID_PKTTYPE,
0045     TCF_META_ID_PKTLEN,
0046     TCF_META_ID_DATALEN,
0047     TCF_META_ID_MACLEN,
0048     TCF_META_ID_NFMARK,
0049     TCF_META_ID_TCINDEX,
0050     TCF_META_ID_RTCLASSID,
0051     TCF_META_ID_RTIIF,
0052     TCF_META_ID_SK_FAMILY,
0053     TCF_META_ID_SK_STATE,
0054     TCF_META_ID_SK_REUSE,
0055     TCF_META_ID_SK_BOUND_IF,
0056     TCF_META_ID_SK_REFCNT,
0057     TCF_META_ID_SK_SHUTDOWN,
0058     TCF_META_ID_SK_PROTO,
0059     TCF_META_ID_SK_TYPE,
0060     TCF_META_ID_SK_RCVBUF,
0061     TCF_META_ID_SK_RMEM_ALLOC,
0062     TCF_META_ID_SK_WMEM_ALLOC,
0063     TCF_META_ID_SK_OMEM_ALLOC,
0064     TCF_META_ID_SK_WMEM_QUEUED,
0065     TCF_META_ID_SK_RCV_QLEN,
0066     TCF_META_ID_SK_SND_QLEN,
0067     TCF_META_ID_SK_ERR_QLEN,
0068     TCF_META_ID_SK_FORWARD_ALLOCS,
0069     TCF_META_ID_SK_SNDBUF,
0070     TCF_META_ID_SK_ALLOCS,
0071     __TCF_META_ID_SK_ROUTE_CAPS,    /* unimplemented but in ABI already */
0072     TCF_META_ID_SK_HASH,
0073     TCF_META_ID_SK_LINGERTIME,
0074     TCF_META_ID_SK_ACK_BACKLOG,
0075     TCF_META_ID_SK_MAX_ACK_BACKLOG,
0076     TCF_META_ID_SK_PRIO,
0077     TCF_META_ID_SK_RCVLOWAT,
0078     TCF_META_ID_SK_RCVTIMEO,
0079     TCF_META_ID_SK_SNDTIMEO,
0080     TCF_META_ID_SK_SENDMSG_OFF,
0081     TCF_META_ID_SK_WRITE_PENDING,
0082     TCF_META_ID_VLAN_TAG,
0083     TCF_META_ID_RXHASH,
0084     __TCF_META_ID_MAX
0085 };
0086 #define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1)
0087 
0088 struct tcf_meta_hdr {
0089     struct tcf_meta_val left;
0090     struct tcf_meta_val right;
0091 };
0092 
0093 #endif