mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-21 00:39:07 +08:00
sync: sync networking UAPI headers
Some of them were outdated, again due to originally using UAPI headers from tools/ subdirectory in Linux repo. Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
This commit is contained in:
committed by
Andrii Nakryiko
parent
289e4a2160
commit
0c33cc07f1
@@ -378,6 +378,7 @@ enum {
|
||||
IFLA_GRO_IPV4_MAX_SIZE,
|
||||
IFLA_DPLL_PIN,
|
||||
IFLA_MAX_PACING_OFFLOAD_HORIZON,
|
||||
IFLA_NETNS_IMMUTABLE,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -1396,6 +1397,8 @@ enum {
|
||||
IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */
|
||||
IFLA_VXLAN_LOCALBYPASS,
|
||||
IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
|
||||
IFLA_VXLAN_RESERVED_BITS,
|
||||
IFLA_VXLAN_MC_ROUTE,
|
||||
__IFLA_VXLAN_MAX
|
||||
};
|
||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||
@@ -1437,6 +1440,7 @@ enum {
|
||||
IFLA_GENEVE_TTL_INHERIT,
|
||||
IFLA_GENEVE_DF,
|
||||
IFLA_GENEVE_INNER_PROTO_INHERIT,
|
||||
IFLA_GENEVE_PORT_RANGE,
|
||||
__IFLA_GENEVE_MAX
|
||||
};
|
||||
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
|
||||
@@ -1449,6 +1453,11 @@ enum ifla_geneve_df {
|
||||
GENEVE_DF_MAX = __GENEVE_DF_END - 1,
|
||||
};
|
||||
|
||||
struct ifla_geneve_port_range {
|
||||
__be16 low;
|
||||
__be16 high;
|
||||
};
|
||||
|
||||
/* Bareudp section */
|
||||
enum {
|
||||
IFLA_BAREUDP_UNSPEC,
|
||||
@@ -1526,6 +1535,7 @@ enum {
|
||||
IFLA_BOND_MISSED_MAX,
|
||||
IFLA_BOND_NS_IP6_TARGET,
|
||||
IFLA_BOND_COUPLED_CONTROL,
|
||||
IFLA_BOND_BROADCAST_NEIGH,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
@@ -1960,6 +1970,7 @@ struct ifla_rmnet_flags {
|
||||
enum {
|
||||
IFLA_MCTP_UNSPEC,
|
||||
IFLA_MCTP_NET,
|
||||
IFLA_MCTP_PHYS_BINDING,
|
||||
__IFLA_MCTP_MAX,
|
||||
};
|
||||
|
||||
@@ -1977,4 +1988,19 @@ enum {
|
||||
|
||||
#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1)
|
||||
|
||||
/* OVPN section */
|
||||
|
||||
enum ovpn_mode {
|
||||
OVPN_MODE_P2P,
|
||||
OVPN_MODE_MP,
|
||||
};
|
||||
|
||||
enum {
|
||||
IFLA_OVPN_UNSPEC,
|
||||
IFLA_OVPN_MODE,
|
||||
__IFLA_OVPN_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_OVPN_MAX (__IFLA_OVPN_MAX - 1)
|
||||
|
||||
#endif /* _LINUX_IF_LINK_H */
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#ifndef __LINUX_NETLINK_H
|
||||
#define __LINUX_NETLINK_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/const.h>
|
||||
#include <linux/socket.h> /* for __kernel_sa_family_t */
|
||||
#include <linux/types.h>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#define NETLINK_CONNECTOR 11
|
||||
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
|
||||
#define NETLINK_IP6_FW 13
|
||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */
|
||||
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
||||
#define NETLINK_GENERIC 16
|
||||
/* leave room for NETLINK_DM (DM Events) */
|
||||
@@ -41,12 +41,20 @@ struct sockaddr_nl {
|
||||
__u32 nl_groups; /* multicast groups mask */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nlmsghdr - fixed format metadata header of Netlink messages
|
||||
* @nlmsg_len: Length of message including header
|
||||
* @nlmsg_type: Message content type
|
||||
* @nlmsg_flags: Additional flags
|
||||
* @nlmsg_seq: Sequence number
|
||||
* @nlmsg_pid: Sending process port ID
|
||||
*/
|
||||
struct nlmsghdr {
|
||||
__u32 nlmsg_len; /* Length of message including header */
|
||||
__u16 nlmsg_type; /* Message content */
|
||||
__u16 nlmsg_flags; /* Additional flags */
|
||||
__u32 nlmsg_seq; /* Sequence number */
|
||||
__u32 nlmsg_pid; /* Sending process port ID */
|
||||
__u32 nlmsg_len;
|
||||
__u16 nlmsg_type;
|
||||
__u16 nlmsg_flags;
|
||||
__u32 nlmsg_seq;
|
||||
__u32 nlmsg_pid;
|
||||
};
|
||||
|
||||
/* Flags values */
|
||||
@@ -54,7 +62,7 @@ struct nlmsghdr {
|
||||
#define NLM_F_REQUEST 0x01 /* It is request message. */
|
||||
#define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
|
||||
#define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */
|
||||
#define NLM_F_ECHO 0x08 /* Echo this request */
|
||||
#define NLM_F_ECHO 0x08 /* Receive resulting notifications */
|
||||
#define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
|
||||
#define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
|
||||
|
||||
@@ -72,6 +80,7 @@ struct nlmsghdr {
|
||||
|
||||
/* Modifiers to DELETE request */
|
||||
#define NLM_F_NONREC 0x100 /* Do not delete recursively */
|
||||
#define NLM_F_BULK 0x200 /* Delete multiple objects */
|
||||
|
||||
/* Flags for ACK message */
|
||||
#define NLM_F_CAPPED 0x100 /* request was capped */
|
||||
@@ -91,9 +100,10 @@ struct nlmsghdr {
|
||||
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||
#define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
|
||||
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
||||
#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
|
||||
#define NLMSG_DATA(nlh) ((void *)(((char *)nlh) + NLMSG_HDRLEN))
|
||||
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
|
||||
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
(struct nlmsghdr *)(((char *)(nlh)) + \
|
||||
NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len <= (len))
|
||||
@@ -129,6 +139,11 @@ struct nlmsgerr {
|
||||
* @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to
|
||||
* be used - in the success case - to identify a created
|
||||
* object or operation or similar (binary)
|
||||
* @NLMSGERR_ATTR_POLICY: policy for a rejected attribute
|
||||
* @NLMSGERR_ATTR_MISS_TYPE: type of a missing required attribute,
|
||||
* %NLMSGERR_ATTR_MISS_NEST will not be present if the attribute was
|
||||
* missing at the message level
|
||||
* @NLMSGERR_ATTR_MISS_NEST: offset of the nest where attribute was missing
|
||||
* @__NLMSGERR_ATTR_MAX: number of attributes
|
||||
* @NLMSGERR_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
@@ -137,6 +152,9 @@ enum nlmsgerr_attrs {
|
||||
NLMSGERR_ATTR_MSG,
|
||||
NLMSGERR_ATTR_OFFS,
|
||||
NLMSGERR_ATTR_COOKIE,
|
||||
NLMSGERR_ATTR_POLICY,
|
||||
NLMSGERR_ATTR_MISS_TYPE,
|
||||
NLMSGERR_ATTR_MISS_NEST,
|
||||
|
||||
__NLMSGERR_ATTR_MAX,
|
||||
NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
|
||||
@@ -249,4 +267,117 @@ struct nla_bitfield32 {
|
||||
__u32 selector;
|
||||
};
|
||||
|
||||
/*
|
||||
* policy descriptions - it's specific to each family how this is used
|
||||
* Normally, it should be retrieved via a dump inside another attribute
|
||||
* specifying where it applies.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum netlink_attribute_type - type of an attribute
|
||||
* @NL_ATTR_TYPE_INVALID: unused
|
||||
* @NL_ATTR_TYPE_FLAG: flag attribute (present/not present)
|
||||
* @NL_ATTR_TYPE_U8: 8-bit unsigned attribute
|
||||
* @NL_ATTR_TYPE_U16: 16-bit unsigned attribute
|
||||
* @NL_ATTR_TYPE_U32: 32-bit unsigned attribute
|
||||
* @NL_ATTR_TYPE_U64: 64-bit unsigned attribute
|
||||
* @NL_ATTR_TYPE_S8: 8-bit signed attribute
|
||||
* @NL_ATTR_TYPE_S16: 16-bit signed attribute
|
||||
* @NL_ATTR_TYPE_S32: 32-bit signed attribute
|
||||
* @NL_ATTR_TYPE_S64: 64-bit signed attribute
|
||||
* @NL_ATTR_TYPE_BINARY: binary data, min/max length may be specified
|
||||
* @NL_ATTR_TYPE_STRING: string, min/max length may be specified
|
||||
* @NL_ATTR_TYPE_NUL_STRING: NUL-terminated string,
|
||||
* min/max length may be specified
|
||||
* @NL_ATTR_TYPE_NESTED: nested, i.e. the content of this attribute
|
||||
* consists of sub-attributes. The nested policy and maxtype
|
||||
* inside may be specified.
|
||||
* @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i.e. the content of this
|
||||
* attribute contains sub-attributes whose type is irrelevant
|
||||
* (just used to separate the array entries) and each such array
|
||||
* entry has attributes again, the policy for those inner ones
|
||||
* and the corresponding maxtype may be specified.
|
||||
* @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfield32 attribute
|
||||
* @NL_ATTR_TYPE_SINT: 32-bit or 64-bit signed attribute, aligned to 4B
|
||||
* @NL_ATTR_TYPE_UINT: 32-bit or 64-bit unsigned attribute, aligned to 4B
|
||||
*/
|
||||
enum netlink_attribute_type {
|
||||
NL_ATTR_TYPE_INVALID,
|
||||
|
||||
NL_ATTR_TYPE_FLAG,
|
||||
|
||||
NL_ATTR_TYPE_U8,
|
||||
NL_ATTR_TYPE_U16,
|
||||
NL_ATTR_TYPE_U32,
|
||||
NL_ATTR_TYPE_U64,
|
||||
|
||||
NL_ATTR_TYPE_S8,
|
||||
NL_ATTR_TYPE_S16,
|
||||
NL_ATTR_TYPE_S32,
|
||||
NL_ATTR_TYPE_S64,
|
||||
|
||||
NL_ATTR_TYPE_BINARY,
|
||||
NL_ATTR_TYPE_STRING,
|
||||
NL_ATTR_TYPE_NUL_STRING,
|
||||
|
||||
NL_ATTR_TYPE_NESTED,
|
||||
NL_ATTR_TYPE_NESTED_ARRAY,
|
||||
|
||||
NL_ATTR_TYPE_BITFIELD32,
|
||||
|
||||
NL_ATTR_TYPE_SINT,
|
||||
NL_ATTR_TYPE_UINT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum netlink_policy_type_attr - policy type attributes
|
||||
* @NL_POLICY_TYPE_ATTR_UNSPEC: unused
|
||||
* @NL_POLICY_TYPE_ATTR_TYPE: type of the attribute,
|
||||
* &enum netlink_attribute_type (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum value for signed
|
||||
* integers (S64)
|
||||
* @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum value for signed
|
||||
* integers (S64)
|
||||
* @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum value for unsigned
|
||||
* integers (U64)
|
||||
* @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum value for unsigned
|
||||
* integers (U64)
|
||||
* @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum length for binary
|
||||
* attributes, no minimum if not given (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum length for binary
|
||||
* attributes, no maximum if not given (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy for nested and
|
||||
* nested array types (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximum sub policy
|
||||
* attribute for nested and nested array types, this can
|
||||
* in theory be < the size of the policy pointed to by
|
||||
* the index, if limited inside the nesting (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid mask for the
|
||||
* bitfield32 type (U32)
|
||||
* @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
|
||||
* @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment
|
||||
*
|
||||
* @__NL_POLICY_TYPE_ATTR_MAX: number of attributes
|
||||
* @NL_POLICY_TYPE_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
enum netlink_policy_type_attr {
|
||||
NL_POLICY_TYPE_ATTR_UNSPEC,
|
||||
NL_POLICY_TYPE_ATTR_TYPE,
|
||||
NL_POLICY_TYPE_ATTR_MIN_VALUE_S,
|
||||
NL_POLICY_TYPE_ATTR_MAX_VALUE_S,
|
||||
NL_POLICY_TYPE_ATTR_MIN_VALUE_U,
|
||||
NL_POLICY_TYPE_ATTR_MAX_VALUE_U,
|
||||
NL_POLICY_TYPE_ATTR_MIN_LENGTH,
|
||||
NL_POLICY_TYPE_ATTR_MAX_LENGTH,
|
||||
NL_POLICY_TYPE_ATTR_POLICY_IDX,
|
||||
NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE,
|
||||
NL_POLICY_TYPE_ATTR_BITFIELD32_MASK,
|
||||
NL_POLICY_TYPE_ATTR_PAD,
|
||||
NL_POLICY_TYPE_ATTR_MASK,
|
||||
|
||||
/* keep last */
|
||||
__NL_POLICY_TYPE_ATTR_MAX,
|
||||
NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NETLINK_H */
|
||||
|
||||
@@ -16,9 +16,40 @@ enum {
|
||||
TCA_ACT_STATS,
|
||||
TCA_ACT_PAD,
|
||||
TCA_ACT_COOKIE,
|
||||
TCA_ACT_FLAGS,
|
||||
TCA_ACT_HW_STATS,
|
||||
TCA_ACT_USED_HW_STATS,
|
||||
TCA_ACT_IN_HW_COUNT,
|
||||
__TCA_ACT_MAX
|
||||
};
|
||||
|
||||
/* See other TCA_ACT_FLAGS_ * flags in include/net/act_api.h. */
|
||||
#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0) /* Don't use percpu allocator for
|
||||
* actions stats.
|
||||
*/
|
||||
#define TCA_ACT_FLAGS_SKIP_HW (1 << 1) /* don't offload action to HW */
|
||||
#define TCA_ACT_FLAGS_SKIP_SW (1 << 2) /* don't use action in SW */
|
||||
|
||||
/* tca HW stats type
|
||||
* When user does not pass the attribute, he does not care.
|
||||
* It is the same as if he would pass the attribute with
|
||||
* all supported bits set.
|
||||
* In case no bits are set, user is not interested in getting any HW statistics.
|
||||
*/
|
||||
#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user
|
||||
* gets the current HW stats
|
||||
* state from the device
|
||||
* queried at the dump time.
|
||||
*/
|
||||
#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets
|
||||
* HW stats that might be out of date
|
||||
* for some time, maybe couple of
|
||||
* seconds. This is the case when
|
||||
* driver polls stats updates
|
||||
* periodically or when it gets async
|
||||
* stats update from the device.
|
||||
*/
|
||||
|
||||
#define TCA_ACT_MAX __TCA_ACT_MAX
|
||||
#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
|
||||
#define TCA_ACT_MAX_PRIO 32
|
||||
@@ -63,12 +94,53 @@ enum {
|
||||
#define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
|
||||
#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
|
||||
|
||||
/* These macros are put here for binary compatibility with userspace apps that
|
||||
* make use of them. For kernel code and new userspace apps, use the TCA_ID_*
|
||||
* versions.
|
||||
*/
|
||||
#define TCA_ACT_GACT 5
|
||||
#define TCA_ACT_IPT 6 /* obsoleted, can be reused */
|
||||
#define TCA_ACT_PEDIT 7
|
||||
#define TCA_ACT_MIRRED 8
|
||||
#define TCA_ACT_NAT 9
|
||||
#define TCA_ACT_XT 10
|
||||
#define TCA_ACT_SKBEDIT 11
|
||||
#define TCA_ACT_VLAN 12
|
||||
#define TCA_ACT_BPF 13
|
||||
#define TCA_ACT_CONNMARK 14
|
||||
#define TCA_ACT_SKBMOD 15
|
||||
#define TCA_ACT_CSUM 16
|
||||
#define TCA_ACT_TUNNEL_KEY 17
|
||||
#define TCA_ACT_SIMP 22
|
||||
#define TCA_ACT_IFE 25
|
||||
#define TCA_ACT_SAMPLE 26
|
||||
|
||||
/* Action type identifiers*/
|
||||
enum {
|
||||
TCA_ID_UNSPEC=0,
|
||||
TCA_ID_POLICE=1,
|
||||
enum tca_id {
|
||||
TCA_ID_UNSPEC = 0,
|
||||
TCA_ID_POLICE = 1,
|
||||
TCA_ID_GACT = TCA_ACT_GACT,
|
||||
TCA_ID_IPT = TCA_ACT_IPT, /* Obsoleted, can be reused */
|
||||
TCA_ID_PEDIT = TCA_ACT_PEDIT,
|
||||
TCA_ID_MIRRED = TCA_ACT_MIRRED,
|
||||
TCA_ID_NAT = TCA_ACT_NAT,
|
||||
TCA_ID_XT = TCA_ACT_XT,
|
||||
TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT,
|
||||
TCA_ID_VLAN = TCA_ACT_VLAN,
|
||||
TCA_ID_BPF = TCA_ACT_BPF,
|
||||
TCA_ID_CONNMARK = TCA_ACT_CONNMARK,
|
||||
TCA_ID_SKBMOD = TCA_ACT_SKBMOD,
|
||||
TCA_ID_CSUM = TCA_ACT_CSUM,
|
||||
TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY,
|
||||
TCA_ID_SIMP = TCA_ACT_SIMP,
|
||||
TCA_ID_IFE = TCA_ACT_IFE,
|
||||
TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
|
||||
TCA_ID_CTINFO,
|
||||
TCA_ID_MPLS,
|
||||
TCA_ID_CT,
|
||||
TCA_ID_GATE,
|
||||
/* other actions go here */
|
||||
__TCA_ID_MAX=255
|
||||
__TCA_ID_MAX = 255
|
||||
};
|
||||
|
||||
#define TCA_ID_MAX __TCA_ID_MAX
|
||||
@@ -120,6 +192,10 @@ enum {
|
||||
TCA_POLICE_RESULT,
|
||||
TCA_POLICE_TM,
|
||||
TCA_POLICE_PAD,
|
||||
TCA_POLICE_RATE64,
|
||||
TCA_POLICE_PEAKRATE64,
|
||||
TCA_POLICE_PKTRATE64,
|
||||
TCA_POLICE_PKTBURST64,
|
||||
__TCA_POLICE_MAX
|
||||
#define TCA_POLICE_RESULT TCA_POLICE_RESULT
|
||||
};
|
||||
@@ -170,16 +246,19 @@ struct tc_u32_key {
|
||||
};
|
||||
|
||||
struct tc_u32_sel {
|
||||
unsigned char flags;
|
||||
unsigned char offshift;
|
||||
unsigned char nkeys;
|
||||
/* New members MUST be added within the __struct_group() macro below. */
|
||||
__struct_group(tc_u32_sel_hdr, hdr, /* no attrs */,
|
||||
unsigned char flags;
|
||||
unsigned char offshift;
|
||||
unsigned char nkeys;
|
||||
|
||||
__be16 offmask;
|
||||
__u16 off;
|
||||
short offoff;
|
||||
__be16 offmask;
|
||||
__u16 off;
|
||||
short offoff;
|
||||
|
||||
short hoff;
|
||||
__be32 hmask;
|
||||
short hoff;
|
||||
__be32 hmask;
|
||||
);
|
||||
struct tc_u32_key keys[];
|
||||
};
|
||||
|
||||
@@ -286,12 +365,19 @@ enum {
|
||||
|
||||
/* Basic filter */
|
||||
|
||||
struct tc_basic_pcnt {
|
||||
__u64 rcnt;
|
||||
__u64 rhit;
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_BASIC_UNSPEC,
|
||||
TCA_BASIC_CLASSID,
|
||||
TCA_BASIC_EMATCHES,
|
||||
TCA_BASIC_ACT,
|
||||
TCA_BASIC_POLICE,
|
||||
TCA_BASIC_PCNT,
|
||||
TCA_BASIC_PAD,
|
||||
__TCA_BASIC_MAX
|
||||
};
|
||||
|
||||
@@ -438,17 +524,79 @@ enum {
|
||||
|
||||
TCA_FLOWER_IN_HW_COUNT,
|
||||
|
||||
TCA_FLOWER_KEY_PORT_SRC_MIN, /* be16 */
|
||||
TCA_FLOWER_KEY_PORT_SRC_MAX, /* be16 */
|
||||
TCA_FLOWER_KEY_PORT_DST_MIN, /* be16 */
|
||||
TCA_FLOWER_KEY_PORT_DST_MAX, /* be16 */
|
||||
|
||||
TCA_FLOWER_KEY_CT_STATE, /* u16 */
|
||||
TCA_FLOWER_KEY_CT_STATE_MASK, /* u16 */
|
||||
TCA_FLOWER_KEY_CT_ZONE, /* u16 */
|
||||
TCA_FLOWER_KEY_CT_ZONE_MASK, /* u16 */
|
||||
TCA_FLOWER_KEY_CT_MARK, /* u32 */
|
||||
TCA_FLOWER_KEY_CT_MARK_MASK, /* u32 */
|
||||
TCA_FLOWER_KEY_CT_LABELS, /* u128 */
|
||||
TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */
|
||||
|
||||
TCA_FLOWER_KEY_MPLS_OPTS,
|
||||
|
||||
TCA_FLOWER_KEY_HASH, /* u32 */
|
||||
TCA_FLOWER_KEY_HASH_MASK, /* u32 */
|
||||
|
||||
TCA_FLOWER_KEY_NUM_OF_VLANS, /* u8 */
|
||||
|
||||
TCA_FLOWER_KEY_PPPOE_SID, /* be16 */
|
||||
TCA_FLOWER_KEY_PPP_PROTO, /* be16 */
|
||||
|
||||
TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */
|
||||
|
||||
TCA_FLOWER_L2_MISS, /* u8 */
|
||||
|
||||
TCA_FLOWER_KEY_CFM, /* nested */
|
||||
|
||||
TCA_FLOWER_KEY_SPI, /* be32 */
|
||||
TCA_FLOWER_KEY_SPI_MASK, /* be32 */
|
||||
|
||||
TCA_FLOWER_KEY_ENC_FLAGS, /* be32 */
|
||||
TCA_FLOWER_KEY_ENC_FLAGS_MASK, /* be32 */
|
||||
|
||||
__TCA_FLOWER_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0, /* Beginning of a new connection. */
|
||||
TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, /* Part of an existing connection. */
|
||||
TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, /* Related to an established connection. */
|
||||
TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, /* Conntrack has occurred. */
|
||||
TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4, /* Conntrack is invalid. */
|
||||
TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5, /* Packet is in the reply direction. */
|
||||
__TCA_FLOWER_KEY_CT_FLAGS_MAX,
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_GENEVE_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_VXLAN_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_GTP, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_OPT_GTP_
|
||||
* attributes
|
||||
*/
|
||||
TCA_FLOWER_KEY_ENC_OPTS_PFCP, /* Nested
|
||||
* TCA_FLOWER_KEY_ENC_IPT_PFCP
|
||||
* attributes
|
||||
*/
|
||||
__TCA_FLOWER_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
@@ -467,17 +615,105 @@ enum {
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||||
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||||
TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
|
||||
__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
|
||||
__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_GTP_QFI, /* u8 */
|
||||
|
||||
__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC,
|
||||
TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE, /* u8 */
|
||||
TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID, /* be64 */
|
||||
__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX \
|
||||
(__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
|
||||
TCA_FLOWER_KEY_MPLS_OPTS_LSE,
|
||||
__TCA_FLOWER_KEY_MPLS_OPTS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC,
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH,
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL,
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS,
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_TC,
|
||||
TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL,
|
||||
__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX \
|
||||
(__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||||
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||||
TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2),
|
||||
TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3),
|
||||
TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4),
|
||||
TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5),
|
||||
__TCA_FLOWER_KEY_FLAGS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_FLOWER_KEY_CFM_OPT_UNSPEC,
|
||||
TCA_FLOWER_KEY_CFM_MD_LEVEL,
|
||||
TCA_FLOWER_KEY_CFM_OPCODE,
|
||||
__TCA_FLOWER_KEY_CFM_OPT_MAX,
|
||||
};
|
||||
|
||||
#define TCA_FLOWER_KEY_CFM_OPT_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1)
|
||||
#define TCA_FLOWER_KEY_CFM_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1)
|
||||
|
||||
#define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0) /* Range-based match */
|
||||
|
||||
/* Match-all classifier */
|
||||
|
||||
struct tc_matchall_pcnt {
|
||||
__u64 rhit;
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_MATCHALL_UNSPEC,
|
||||
TCA_MATCHALL_CLASSID,
|
||||
TCA_MATCHALL_ACT,
|
||||
TCA_MATCHALL_FLAGS,
|
||||
TCA_MATCHALL_PCNT,
|
||||
TCA_MATCHALL_PAD,
|
||||
__TCA_MATCHALL_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#ifndef __LINUX_PKT_SCHED_H
|
||||
#define __LINUX_PKT_SCHED_H
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/* Logical priority bands not depending on specific packet scheduler.
|
||||
@@ -255,6 +256,9 @@ enum {
|
||||
TCA_RED_PARMS,
|
||||
TCA_RED_STAB,
|
||||
TCA_RED_MAX_P,
|
||||
TCA_RED_FLAGS, /* bitfield32 */
|
||||
TCA_RED_EARLY_DROP_BLOCK, /* u32 */
|
||||
TCA_RED_MARK_BLOCK, /* u32 */
|
||||
__TCA_RED_MAX,
|
||||
};
|
||||
|
||||
@@ -267,12 +271,28 @@ struct tc_red_qopt {
|
||||
unsigned char Wlog; /* log(W) */
|
||||
unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
|
||||
unsigned char Scell_log; /* cell size for idle damping */
|
||||
|
||||
/* This field can be used for flags that a RED-like qdisc has
|
||||
* historically supported. E.g. when configuring RED, it can be used for
|
||||
* ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN,
|
||||
* HARDDROP. Etc. Because this field has not been validated, and is
|
||||
* copied back on dump, any bits besides those to which a given qdisc
|
||||
* has assigned a historical meaning need to be considered for free use
|
||||
* by userspace tools.
|
||||
*
|
||||
* Any further flags need to be passed differently, e.g. through an
|
||||
* attribute (such as TCA_RED_FLAGS above). Such attribute should allow
|
||||
* passing both recent and historic flags in one value.
|
||||
*/
|
||||
unsigned char flags;
|
||||
#define TC_RED_ECN 1
|
||||
#define TC_RED_HARDDROP 2
|
||||
#define TC_RED_ADAPTATIVE 4
|
||||
#define TC_RED_NODROP 8
|
||||
};
|
||||
|
||||
#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE)
|
||||
|
||||
struct tc_red_xstats {
|
||||
__u32 early; /* Early drops */
|
||||
__u32 pdrop; /* Drops due to queue limits */
|
||||
@@ -474,6 +494,7 @@ enum {
|
||||
TCA_NETEM_JITTER64,
|
||||
TCA_NETEM_SLOT,
|
||||
TCA_NETEM_SLOT_DIST,
|
||||
TCA_NETEM_PRNG_SEED,
|
||||
__TCA_NETEM_MAX,
|
||||
};
|
||||
|
||||
@@ -590,6 +611,11 @@ enum {
|
||||
|
||||
#define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1)
|
||||
|
||||
enum {
|
||||
TC_FP_EXPRESS = 1,
|
||||
TC_FP_PREEMPTIBLE = 2,
|
||||
};
|
||||
|
||||
struct tc_mqprio_qopt {
|
||||
__u8 num_tc;
|
||||
__u8 prio_tc_map[TC_QOPT_BITMASK + 1];
|
||||
@@ -603,12 +629,23 @@ struct tc_mqprio_qopt {
|
||||
#define TC_MQPRIO_F_MIN_RATE 0x4
|
||||
#define TC_MQPRIO_F_MAX_RATE 0x8
|
||||
|
||||
enum {
|
||||
TCA_MQPRIO_TC_ENTRY_UNSPEC,
|
||||
TCA_MQPRIO_TC_ENTRY_INDEX, /* u32 */
|
||||
TCA_MQPRIO_TC_ENTRY_FP, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__TCA_MQPRIO_TC_ENTRY_CNT,
|
||||
TCA_MQPRIO_TC_ENTRY_MAX = (__TCA_MQPRIO_TC_ENTRY_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_MQPRIO_UNSPEC,
|
||||
TCA_MQPRIO_MODE,
|
||||
TCA_MQPRIO_SHAPER,
|
||||
TCA_MQPRIO_MIN_RATE64,
|
||||
TCA_MQPRIO_MAX_RATE64,
|
||||
TCA_MQPRIO_TC_ENTRY,
|
||||
__TCA_MQPRIO_MAX,
|
||||
};
|
||||
|
||||
@@ -698,6 +735,8 @@ struct tc_codel_xstats {
|
||||
|
||||
/* FQ_CODEL */
|
||||
|
||||
#define FQ_CODEL_QUANTUM_MAX (1 << 20)
|
||||
|
||||
enum {
|
||||
TCA_FQ_CODEL_UNSPEC,
|
||||
TCA_FQ_CODEL_TARGET,
|
||||
@@ -709,6 +748,8 @@ enum {
|
||||
TCA_FQ_CODEL_CE_THRESHOLD,
|
||||
TCA_FQ_CODEL_DROP_BATCH_SIZE,
|
||||
TCA_FQ_CODEL_MEMORY_LIMIT,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD_MASK,
|
||||
__TCA_FQ_CODEL_MAX
|
||||
};
|
||||
|
||||
@@ -785,15 +826,30 @@ enum {
|
||||
|
||||
TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */
|
||||
|
||||
TCA_FQ_TIMER_SLACK, /* timer slack */
|
||||
|
||||
TCA_FQ_HORIZON, /* time horizon in us */
|
||||
|
||||
TCA_FQ_HORIZON_DROP, /* drop packets beyond horizon, or cap their EDT */
|
||||
|
||||
TCA_FQ_PRIOMAP, /* prio2band */
|
||||
|
||||
TCA_FQ_WEIGHTS, /* Weights for each band */
|
||||
|
||||
TCA_FQ_OFFLOAD_HORIZON, /* dequeue paced packets within this horizon immediately (us units) */
|
||||
|
||||
__TCA_FQ_MAX
|
||||
};
|
||||
|
||||
#define TCA_FQ_MAX (__TCA_FQ_MAX - 1)
|
||||
|
||||
#define FQ_BANDS 3
|
||||
#define FQ_MIN_WEIGHT 16384
|
||||
|
||||
struct tc_fq_qd_stats {
|
||||
__u64 gc_flows;
|
||||
__u64 highprio_packets;
|
||||
__u64 tcp_retrans;
|
||||
__u64 highprio_packets; /* obsolete */
|
||||
__u64 tcp_retrans; /* obsolete */
|
||||
__u64 throttled;
|
||||
__u64 flows_plimit;
|
||||
__u64 pkts_too_long;
|
||||
@@ -804,6 +860,12 @@ struct tc_fq_qd_stats {
|
||||
__u32 throttled_flows;
|
||||
__u32 unthrottle_latency_ns;
|
||||
__u64 ce_mark; /* packets above ce_threshold */
|
||||
__u64 horizon_drops;
|
||||
__u64 horizon_caps;
|
||||
__u64 fastpath_packets;
|
||||
__u64 band_drops[FQ_BANDS];
|
||||
__u32 band_pkt_count[FQ_BANDS];
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
/* Heavy-Hitter Filter */
|
||||
@@ -841,19 +903,56 @@ enum {
|
||||
TCA_PIE_BETA,
|
||||
TCA_PIE_ECN,
|
||||
TCA_PIE_BYTEMODE,
|
||||
TCA_PIE_DQ_RATE_ESTIMATOR,
|
||||
__TCA_PIE_MAX
|
||||
};
|
||||
#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
|
||||
|
||||
struct tc_pie_xstats {
|
||||
__u32 prob; /* current probability */
|
||||
__u32 delay; /* current delay in ms */
|
||||
__u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */
|
||||
__u32 packets_in; /* total number of packets enqueued */
|
||||
__u32 dropped; /* packets dropped due to pie_action */
|
||||
__u32 overlimit; /* dropped due to lack of space in queue */
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
__u64 prob; /* current probability */
|
||||
__u32 delay; /* current delay in ms */
|
||||
__u32 avg_dq_rate; /* current average dq_rate in
|
||||
* bits/pie_time
|
||||
*/
|
||||
__u32 dq_rate_estimating; /* is avg_dq_rate being calculated? */
|
||||
__u32 packets_in; /* total number of packets enqueued */
|
||||
__u32 dropped; /* packets dropped due to pie_action */
|
||||
__u32 overlimit; /* dropped due to lack of space
|
||||
* in queue
|
||||
*/
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
};
|
||||
|
||||
/* FQ PIE */
|
||||
enum {
|
||||
TCA_FQ_PIE_UNSPEC,
|
||||
TCA_FQ_PIE_LIMIT,
|
||||
TCA_FQ_PIE_FLOWS,
|
||||
TCA_FQ_PIE_TARGET,
|
||||
TCA_FQ_PIE_TUPDATE,
|
||||
TCA_FQ_PIE_ALPHA,
|
||||
TCA_FQ_PIE_BETA,
|
||||
TCA_FQ_PIE_QUANTUM,
|
||||
TCA_FQ_PIE_MEMORY_LIMIT,
|
||||
TCA_FQ_PIE_ECN_PROB,
|
||||
TCA_FQ_PIE_ECN,
|
||||
TCA_FQ_PIE_BYTEMODE,
|
||||
TCA_FQ_PIE_DQ_RATE_ESTIMATOR,
|
||||
__TCA_FQ_PIE_MAX
|
||||
};
|
||||
#define TCA_FQ_PIE_MAX (__TCA_FQ_PIE_MAX - 1)
|
||||
|
||||
struct tc_fq_pie_xstats {
|
||||
__u32 packets_in; /* total number of packets enqueued */
|
||||
__u32 dropped; /* packets dropped due to fq_pie_action */
|
||||
__u32 overlimit; /* dropped due to lack of space in queue */
|
||||
__u32 overmemory; /* dropped due to lack of memory in queue */
|
||||
__u32 ecn_mark; /* packets marked with ecn */
|
||||
__u32 new_flow_count; /* count of new flows created by packets */
|
||||
__u32 new_flows_len; /* count of flows in new list */
|
||||
__u32 old_flows_len; /* count of flows in old list */
|
||||
__u32 memory_usage; /* total memory across all queues */
|
||||
};
|
||||
|
||||
/* CBS */
|
||||
@@ -880,8 +979,9 @@ struct tc_etf_qopt {
|
||||
__s32 delta;
|
||||
__s32 clockid;
|
||||
__u32 flags;
|
||||
#define TC_ETF_DEADLINE_MODE_ON BIT(0)
|
||||
#define TC_ETF_OFFLOAD_ON BIT(1)
|
||||
#define TC_ETF_DEADLINE_MODE_ON _BITUL(0)
|
||||
#define TC_ETF_OFFLOAD_ON _BITUL(1)
|
||||
#define TC_ETF_SKIP_SOCK_CHECK _BITUL(2)
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -913,6 +1013,7 @@ enum {
|
||||
TCA_CAKE_INGRESS,
|
||||
TCA_CAKE_ACK_FILTER,
|
||||
TCA_CAKE_SPLIT_GSO,
|
||||
TCA_CAKE_FWMARK,
|
||||
__TCA_CAKE_MAX
|
||||
};
|
||||
#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
|
||||
@@ -1039,6 +1140,40 @@ enum {
|
||||
|
||||
#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)
|
||||
|
||||
/* The format for the admin sched (dump only):
|
||||
* [TCA_TAPRIO_SCHED_ADMIN_SCHED]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_BASE_TIME]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_CMD]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_GATES]
|
||||
* [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
|
||||
*/
|
||||
|
||||
#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
|
||||
#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
|
||||
|
||||
enum {
|
||||
TCA_TAPRIO_TC_ENTRY_UNSPEC,
|
||||
TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */
|
||||
TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */
|
||||
TCA_TAPRIO_TC_ENTRY_FP, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__TCA_TAPRIO_TC_ENTRY_CNT,
|
||||
TCA_TAPRIO_TC_ENTRY_MAX = (__TCA_TAPRIO_TC_ENTRY_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_TAPRIO_OFFLOAD_STATS_PAD = 1, /* u64 */
|
||||
TCA_TAPRIO_OFFLOAD_STATS_WINDOW_DROPS, /* u64 */
|
||||
TCA_TAPRIO_OFFLOAD_STATS_TX_OVERRUNS, /* u64 */
|
||||
|
||||
/* add new constants above here */
|
||||
__TCA_TAPRIO_OFFLOAD_STATS_CNT,
|
||||
TCA_TAPRIO_OFFLOAD_STATS_MAX = (__TCA_TAPRIO_OFFLOAD_STATS_CNT - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
TCA_TAPRIO_ATTR_UNSPEC,
|
||||
TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
|
||||
@@ -1047,9 +1182,101 @@ enum {
|
||||
TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
|
||||
TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
|
||||
TCA_TAPRIO_PAD,
|
||||
TCA_TAPRIO_ATTR_PAD = TCA_TAPRIO_PAD,
|
||||
TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
|
||||
TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
|
||||
TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
|
||||
TCA_TAPRIO_ATTR_FLAGS, /* u32 */
|
||||
TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
|
||||
TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */
|
||||
__TCA_TAPRIO_ATTR_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)
|
||||
|
||||
/* ETS */
|
||||
|
||||
#define TCQ_ETS_MAX_BANDS 16
|
||||
|
||||
enum {
|
||||
TCA_ETS_UNSPEC,
|
||||
TCA_ETS_NBANDS, /* u8 */
|
||||
TCA_ETS_NSTRICT, /* u8 */
|
||||
TCA_ETS_QUANTA, /* nested TCA_ETS_QUANTA_BAND */
|
||||
TCA_ETS_QUANTA_BAND, /* u32 */
|
||||
TCA_ETS_PRIOMAP, /* nested TCA_ETS_PRIOMAP_BAND */
|
||||
TCA_ETS_PRIOMAP_BAND, /* u8 */
|
||||
__TCA_ETS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
|
||||
|
||||
/* DUALPI2 */
|
||||
enum tc_dualpi2_drop_overload {
|
||||
TC_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
|
||||
TC_DUALPI2_DROP_OVERLOAD_DROP = 1,
|
||||
__TCA_DUALPI2_DROP_OVERLOAD_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_drop_early {
|
||||
TC_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
|
||||
TC_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
|
||||
__TCA_DUALPI2_DROP_EARLY_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_ecn_mask {
|
||||
TC_DUALPI2_ECN_MASK_L4S_ECT = 1,
|
||||
TC_DUALPI2_ECN_MASK_CLA_ECT = 2,
|
||||
TC_DUALPI2_ECN_MASK_ANY_ECT = 3,
|
||||
__TCA_DUALPI2_ECN_MASK_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
|
||||
|
||||
enum tc_dualpi2_split_gso {
|
||||
TC_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
|
||||
TC_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
|
||||
__TCA_DUALPI2_SPLIT_GSO_MAX,
|
||||
};
|
||||
#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_DUALPI2_UNSPEC,
|
||||
TCA_DUALPI2_LIMIT, /* Packets */
|
||||
TCA_DUALPI2_MEMORY_LIMIT, /* Bytes */
|
||||
TCA_DUALPI2_TARGET, /* us */
|
||||
TCA_DUALPI2_TUPDATE, /* us */
|
||||
TCA_DUALPI2_ALPHA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_BETA, /* Hz scaled up by 256 */
|
||||
TCA_DUALPI2_STEP_THRESH_PKTS, /* Step threshold in packets */
|
||||
TCA_DUALPI2_STEP_THRESH_US, /* Step threshold in microseconds */
|
||||
TCA_DUALPI2_MIN_QLEN_STEP, /* Minimum qlen to apply STEP_THRESH */
|
||||
TCA_DUALPI2_COUPLING, /* Coupling factor between queues */
|
||||
TCA_DUALPI2_DROP_OVERLOAD, /* Whether to drop on overload */
|
||||
TCA_DUALPI2_DROP_EARLY, /* Whether to drop on enqueue */
|
||||
TCA_DUALPI2_C_PROTECTION, /* Percentage */
|
||||
TCA_DUALPI2_ECN_MASK, /* L4S queue classification mask */
|
||||
TCA_DUALPI2_SPLIT_GSO, /* Split GSO packets at enqueue */
|
||||
TCA_DUALPI2_PAD,
|
||||
__TCA_DUALPI2_MAX
|
||||
};
|
||||
|
||||
#define TCA_DUALPI2_MAX (__TCA_DUALPI2_MAX - 1)
|
||||
|
||||
struct tc_dualpi2_xstats {
|
||||
__u32 prob; /* current probability */
|
||||
__u32 delay_c; /* current delay in C queue */
|
||||
__u32 delay_l; /* current delay in L queue */
|
||||
__u32 packets_in_c; /* number of packets enqueued in C queue */
|
||||
__u32 packets_in_l; /* number of packets enqueued in L queue */
|
||||
__u32 maxq; /* maximum queue size */
|
||||
__u32 ecn_mark; /* packets marked with ecn*/
|
||||
__u32 step_marks; /* ECN marks due to the step AQM */
|
||||
__s32 credit; /* current c_protection credit */
|
||||
__u32 memory_used; /* Memory used by both queues */
|
||||
__u32 max_memory_used; /* Maximum used memory */
|
||||
__u32 memory_limit; /* Memory limit of both queues */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user