|
#define | AVF_SUCCESS (0) |
|
#define | AVF_FAILURE (-1) |
|
#define | BIT(a) (1UL << (a)) |
|
#define | BIT_ULL(a) (1ULL << (a)) |
|
#define | VIRTCHNL_CHECK_STRUCT_LEN(n, X) |
|
#define | VIRTCHNL_CHECK_UNION_LEN(n, X) |
|
#define | AVF_ETHER_TYPE_IPV4 0x0800 |
| IPv4 Protocol. More...
|
|
#define | AVF_ETHER_TYPE_IPV6 0x86DD |
| IPv6 Protocol. More...
|
|
#define | VIRTCHNL_MAX_NUM_PROTO_HDRS 32 |
|
#define | PROTO_HDR_SHIFT 5 |
|
#define | PROTO_HDR_FIELD_START(proto_hdr_type) (proto_hdr_type << PROTO_HDR_SHIFT) |
|
#define | PROTO_HDR_FIELD_MASK ((1UL << PROTO_HDR_SHIFT) - 1) |
|
#define | VIRTCHNL_ADD_PROTO_HDR_FIELD(hdr, field) ((hdr)->field_selector |= BIT ((field) &PROTO_HDR_FIELD_MASK)) |
|
#define | VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, field) ((hdr)->field_selector &= ~BIT ((field) &PROTO_HDR_FIELD_MASK)) |
|
#define | VIRTCHNL_TEST_PROTO_HDR_FIELD(hdr, val) ((hdr)->field_selector & BIT ((val) &PROTO_HDR_FIELD_MASK)) |
|
#define | VIRTCHNL_GET_PROTO_HDR_FIELD(hdr) ((hdr)->field_selector) |
|
#define | VIRTCHNL_ADD_PROTO_HDR_FIELD_BIT(hdr, hdr_type, field) (VIRTCHNL_ADD_PROTO_HDR_FIELD (hdr, VIRTCHNL_PROTO_HDR_##hdr_type##_##field)) |
|
#define | VIRTCHNL_DEL_PROTO_HDR_FIELD_BIT(hdr, hdr_type, field) (VIRTCHNL_DEL_PROTO_HDR_FIELD (hdr, VIRTCHNL_PROTO_HDR_##hdr_type##_##field)) |
|
#define | VIRTCHNL_SET_PROTO_HDR_TYPE(hdr, hdr_type) ((hdr)->type = VIRTCHNL_PROTO_HDR_##hdr_type) |
|
#define | VIRTCHNL_GET_PROTO_HDR_TYPE(hdr) (((hdr)->type) >> PROTO_HDR_SHIFT) |
|
#define | VIRTCHNL_TEST_PROTO_HDR_TYPE(hdr, val) ((hdr)->type == ((val) >> PROTO_HDR_SHIFT)) |
|
#define | VIRTCHNL_TEST_PROTO_HDR(hdr, val) |
|
#define | AVF_PROT_MAC_INNER (1ULL << 1) |
|
#define | AVF_PROT_MAC_OUTER (1ULL << 2) |
|
#define | AVF_PROT_VLAN_INNER (1ULL << 3) |
|
#define | AVF_PROT_VLAN_OUTER (1ULL << 4) |
|
#define | AVF_PROT_IPV4_INNER (1ULL << 5) |
|
#define | AVF_PROT_IPV4_OUTER (1ULL << 6) |
|
#define | AVF_PROT_IPV6_INNER (1ULL << 7) |
|
#define | AVF_PROT_IPV6_OUTER (1ULL << 8) |
|
#define | AVF_PROT_TCP_INNER (1ULL << 9) |
|
#define | AVF_PROT_TCP_OUTER (1ULL << 10) |
|
#define | AVF_PROT_UDP_INNER (1ULL << 11) |
|
#define | AVF_PROT_UDP_OUTER (1ULL << 12) |
|
#define | AVF_PROT_SCTP_INNER (1ULL << 13) |
|
#define | AVF_PROT_SCTP_OUTER (1ULL << 14) |
|
#define | AVF_PROT_ICMP4_INNER (1ULL << 15) |
|
#define | AVF_PROT_ICMP4_OUTER (1ULL << 16) |
|
#define | AVF_PROT_ICMP6_INNER (1ULL << 17) |
|
#define | AVF_PROT_ICMP6_OUTER (1ULL << 18) |
|
#define | AVF_PROT_VXLAN (1ULL << 19) |
|
#define | AVF_PROT_NVGRE (1ULL << 20) |
|
#define | AVF_PROT_GTPU (1ULL << 21) |
|
#define | AVF_PROT_ESP (1ULL << 22) |
|
#define | AVF_PROT_AH (1ULL << 23) |
|
#define | AVF_PROT_L2TPV3OIP (1ULL << 24) |
|
#define | AVF_PROT_PFCP (1ULL << 25) |
|
#define | AVF_SMAC (1ULL << 63) |
|
#define | AVF_DMAC (1ULL << 62) |
|
#define | AVF_ETHERTYPE (1ULL << 61) |
|
#define | AVF_IP_SRC (1ULL << 60) |
|
#define | AVF_IP_DST (1ULL << 59) |
|
#define | AVF_IP_PROTO (1ULL << 58) |
|
#define | AVF_IP_TTL (1ULL << 57) |
|
#define | AVF_IP_TOS (1ULL << 56) |
|
#define | AVF_SPORT (1ULL << 55) |
|
#define | AVF_DPORT (1ULL << 54) |
|
#define | AVF_ICMP_TYPE (1ULL << 53) |
|
#define | AVF_ICMP_CODE (1ULL << 52) |
|
#define | AVF_VXLAN_VNI (1ULL << 51) |
|
#define | AVF_NVGRE_TNI (1ULL << 50) |
|
#define | AVF_GTPU_TEID (1ULL << 49) |
|
#define | AVF_GTPU_QFI (1ULL << 48) |
|
#define | AVF_ESP_SPI (1ULL << 47) |
|
#define | AVF_AH_SPI (1ULL << 46) |
|
#define | AVF_L2TPV3OIP_SESSION_ID (1ULL << 45) |
|
#define | AVF_PFCP_S_FIELD (1ULL << 44) |
|
#define | AVF_PFCP_SEID (1ULL << 43) |
|
#define | AVF_INSET_NONE 0ULL |
|
#define | AVF_INSET_SMAC (AVF_PROT_MAC_OUTER | AVF_SMAC) |
|
#define | AVF_INSET_DMAC (AVF_PROT_MAC_OUTER | AVF_DMAC) |
|
#define | AVF_INSET_VLAN_INNER (AVF_PROT_VLAN_INNER) |
|
#define | AVF_INSET_VLAN_OUTER (AVF_PROT_VLAN_OUTER) |
|
#define | AVF_INSET_ETHERTYPE (AVF_ETHERTYPE) |
|
#define | AVF_INSET_IPV4_SRC (AVF_PROT_IPV4_OUTER | AVF_IP_SRC) |
|
#define | AVF_INSET_IPV4_DST (AVF_PROT_IPV4_OUTER | AVF_IP_DST) |
|
#define | AVF_INSET_IPV4_TOS (AVF_PROT_IPV4_OUTER | AVF_IP_TOS) |
|
#define | AVF_INSET_IPV4_PROTO (AVF_PROT_IPV4_OUTER | AVF_IP_PROTO) |
|
#define | AVF_INSET_IPV4_TTL (AVF_PROT_IPV4_OUTER | AVF_IP_TTL) |
|
#define | AVF_INSET_IPV6_SRC (AVF_PROT_IPV6_OUTER | AVF_IP_SRC) |
|
#define | AVF_INSET_IPV6_DST (AVF_PROT_IPV6_OUTER | AVF_IP_DST) |
|
#define | AVF_INSET_IPV6_NEXT_HDR (AVF_PROT_IPV6_OUTER | AVF_IP_PROTO) |
|
#define | AVF_INSET_IPV6_HOP_LIMIT (AVF_PROT_IPV6_OUTER | AVF_IP_TTL) |
|
#define | AVF_INSET_IPV6_TC (AVF_PROT_IPV6_OUTER | AVF_IP_TOS) |
|
#define | AVF_INSET_TCP_SRC_PORT (AVF_PROT_TCP_OUTER | AVF_SPORT) |
|
#define | AVF_INSET_TCP_DST_PORT (AVF_PROT_TCP_OUTER | AVF_DPORT) |
|
#define | AVF_INSET_UDP_SRC_PORT (AVF_PROT_UDP_OUTER | AVF_SPORT) |
|
#define | AVF_INSET_UDP_DST_PORT (AVF_PROT_UDP_OUTER | AVF_DPORT) |
|
#define | AVF_INSET_SCTP_SRC_PORT (AVF_PROT_SCTP_OUTER | AVF_SPORT) |
|
#define | AVF_INSET_SCTP_DST_PORT (AVF_PROT_SCTP_OUTER | AVF_DPORT) |
|
#define | AVF_INSET_ICMP4_SRC_PORT (AVF_PROT_ICMP4_OUTER | AVF_SPORT) |
|
#define | AVF_INSET_ICMP4_DST_PORT (AVF_PROT_ICMP4_OUTER | AVF_DPORT) |
|
#define | AVF_INSET_ICMP6_SRC_PORT (AVF_PROT_ICMP6_OUTER | AVF_SPORT) |
|
#define | AVF_INSET_ICMP6_DST_PORT (AVF_PROT_ICMP6_OUTER | AVF_DPORT) |
|
#define | AVF_INSET_ICMP4_TYPE (AVF_PROT_ICMP4_OUTER | AVF_ICMP_TYPE) |
|
#define | AVF_INSET_ICMP4_CODE (AVF_PROT_ICMP4_OUTER | AVF_ICMP_CODE) |
|
#define | AVF_INSET_ICMP6_TYPE (AVF_PROT_ICMP6_OUTER | AVF_ICMP_TYPE) |
|
#define | AVF_INSET_ICMP6_CODE (AVF_PROT_ICMP6_OUTER | AVF_ICMP_CODE) |
|
#define | AVF_INSET_GTPU_TEID (AVF_PROT_GTPU | AVF_GTPU_TEID) |
|
#define | AVF_INSET_GTPU_QFI (AVF_PROT_GTPU | AVF_GTPU_QFI) |
|
#define | AVF_INSET_ESP_SPI (AVF_PROT_ESP | AVF_ESP_SPI) |
|
#define | AVF_INSET_AH_SPI (AVF_PROT_AH | AVF_AH_SPI) |
|
#define | AVF_INSET_L2TPV3OIP_SESSION_ID (AVF_PROT_L2TPV3OIP | AVF_L2TPV3OIP_SESSION_ID) |
|
#define | AVF_INSET_PFCP_S_FIELD (AVF_PROT_PFCP | AVF_PFCP_S_FIELD) |
|
#define | AVF_INSET_PFCP_SEID (AVF_PROT_PFCP | AVF_PFCP_S_FIELD | AVF_PFCP_SEID) |
|
#define | VIRTCHNL_MAX_NUM_ACTIONS 8 |
|
#define | AVF_ETHER_ADDR_LEN 6 |
|
|
enum | virtchnl_proto_hdr_type {
VIRTCHNL_PROTO_HDR_NONE,
VIRTCHNL_PROTO_HDR_ETH,
VIRTCHNL_PROTO_HDR_S_VLAN,
VIRTCHNL_PROTO_HDR_C_VLAN,
VIRTCHNL_PROTO_HDR_IPV4,
VIRTCHNL_PROTO_HDR_IPV6,
VIRTCHNL_PROTO_HDR_TCP,
VIRTCHNL_PROTO_HDR_UDP,
VIRTCHNL_PROTO_HDR_SCTP,
VIRTCHNL_PROTO_HDR_GTPU_IP,
VIRTCHNL_PROTO_HDR_GTPU_EH,
VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_DWN,
VIRTCHNL_PROTO_HDR_GTPU_EH_PDU_UP,
VIRTCHNL_PROTO_HDR_PPPOE,
VIRTCHNL_PROTO_HDR_L2TPV3,
VIRTCHNL_PROTO_HDR_ESP,
VIRTCHNL_PROTO_HDR_AH,
VIRTCHNL_PROTO_HDR_PFCP
} |
|
enum | virtchnl_proto_hdr_field {
VIRTCHNL_PROTO_HDR_ETH_SRC = PROTO_HDR_FIELD_START (VIRTCHNL_PROTO_HDR_ETH),
VIRTCHNL_PROTO_HDR_ETH_DST,
VIRTCHNL_PROTO_HDR_ETH_ETHERTYPE,
VIRTCHNL_PROTO_HDR_S_VLAN_ID,
VIRTCHNL_PROTO_HDR_C_VLAN_ID,
VIRTCHNL_PROTO_HDR_IPV4_SRC,
VIRTCHNL_PROTO_HDR_IPV4_DST,
VIRTCHNL_PROTO_HDR_IPV4_DSCP,
VIRTCHNL_PROTO_HDR_IPV4_TTL,
VIRTCHNL_PROTO_HDR_IPV4_PROT,
VIRTCHNL_PROTO_HDR_IPV6_SRC,
VIRTCHNL_PROTO_HDR_IPV6_DST,
VIRTCHNL_PROTO_HDR_IPV6_TC,
VIRTCHNL_PROTO_HDR_IPV6_HOP_LIMIT,
VIRTCHNL_PROTO_HDR_IPV6_PROT,
VIRTCHNL_PROTO_HDR_TCP_SRC_PORT,
VIRTCHNL_PROTO_HDR_TCP_DST_PORT,
VIRTCHNL_PROTO_HDR_UDP_SRC_PORT,
VIRTCHNL_PROTO_HDR_UDP_DST_PORT,
VIRTCHNL_PROTO_HDR_SCTP_SRC_PORT,
VIRTCHNL_PROTO_HDR_SCTP_DST_PORT,
VIRTCHNL_PROTO_HDR_GTPU_IP_TEID,
VIRTCHNL_PROTO_HDR_GTPU_EH_PDU,
VIRTCHNL_PROTO_HDR_GTPU_EH_QFI,
VIRTCHNL_PROTO_HDR_PPPOE_SESS_ID,
VIRTCHNL_PROTO_HDR_L2TPV3_SESS_ID,
VIRTCHNL_PROTO_HDR_ESP_SPI = PROTO_HDR_FIELD_START (VIRTCHNL_PROTO_HDR_ESP),
VIRTCHNL_PROTO_HDR_AH_SPI = PROTO_HDR_FIELD_START (VIRTCHNL_PROTO_HDR_AH),
VIRTCHNL_PROTO_HDR_PFCP_S_FIELD,
VIRTCHNL_PROTO_HDR_PFCP_SEID
} |
|
enum | virtchnl_rss_algorithm { VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC = 0,
VIRTCHNL_RSS_ALG_XOR_ASYMMETRIC = 1,
VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC = 2,
VIRTCHNL_RSS_ALG_XOR_SYMMETRIC = 3
} |
|
enum | virtchnl_action {
VIRTCHNL_ACTION_DROP = 0,
VIRTCHNL_ACTION_TC_REDIRECT,
VIRTCHNL_ACTION_PASSTHRU,
VIRTCHNL_ACTION_QUEUE,
VIRTCHNL_ACTION_Q_REGION,
VIRTCHNL_ACTION_MARK,
VIRTCHNL_ACTION_COUNT,
VIRTCHNL_ACTION_NONE
} |
|
enum | virtchnl_fdir_prgm_status {
VIRTCHNL_FDIR_SUCCESS = 0,
VIRTCHNL_FDIR_FAILURE_RULE_NORESOURCE,
VIRTCHNL_FDIR_FAILURE_RULE_EXIST,
VIRTCHNL_FDIR_FAILURE_RULE_CONFLICT,
VIRTCHNL_FDIR_FAILURE_RULE_NONEXIST,
VIRTCHNL_FDIR_FAILURE_RULE_INVALID,
VIRTCHNL_FDIR_FAILURE_RULE_TIMEOUT,
VIRTCHNL_FDIR_FAILURE_QUERY_INVALID,
VIRTCHNL_FDIR_FAILURE_MAX
} |
|
enum | avf_flow_error_type {
AVF_FLOW_ERROR_TYPE_NONE,
AVF_FLOW_ERROR_TYPE_UNSPECIFIED,
AVF_FLOW_ERROR_TYPE_HANDLE,
AVF_FLOW_ERROR_TYPE_ATTR_GROUP,
AVF_FLOW_ERROR_TYPE_ATTR_PRIORITY,
AVF_FLOW_ERROR_TYPE_ATTR_INGRESS,
AVF_FLOW_ERROR_TYPE_ATTR_EGRESS,
AVF_FLOW_ERROR_TYPE_ATTR_TRANSFER,
AVF_FLOW_ERROR_TYPE_ATTR,
AVF_FLOW_ERROR_TYPE_ITEM_NUM,
AVF_FLOW_ERROR_TYPE_ITEM_SPEC,
AVF_FLOW_ERROR_TYPE_ITEM_LAST,
AVF_FLOW_ERROR_TYPE_ITEM_MASK,
AVF_FLOW_ERROR_TYPE_ITEM,
AVF_FLOW_ERROR_TYPE_ACTION_NUM,
AVF_FLOW_ERROR_TYPE_ACTION_CONF,
AVF_FLOW_ERROR_TYPE_ACTION
} |
| Those headers used temporary, maybe OS packet definition can replace. More...
|
|
enum | avf_eth_hash_function {
AVF_ETH_HASH_FUNCTION_DEFAULT = 0,
AVF_ETH_HASH_FUNCTION_TOEPLITZ,
AVF_ETH_HASH_FUNCTION_SIMPLE_XOR,
AVF_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ,
AVF_ETH_HASH_FUNCTION_MAX
} |
| Hash function types. More...
|
|
enum | virthnl_adv_ops { VIRTCHNL_ADV_OP_ADD_FDIR_FILTER = 0,
VIRTCHNL_ADV_OP_DEL_FDIR_FILTER,
VIRTCHNL_ADV_OP_QUERY_FDIR_FILTER,
VIRTCHNL_ADV_OP_MAX
} |
|
|
| VIRTCHNL_CHECK_STRUCT_LEN (72, virtchnl_proto_hdr) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (2312, virtchnl_proto_hdrs) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (6, virtchnl_rss_key) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (6, virtchnl_rss_lut) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (8, virtchnl_rss_hena) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (2444, virtchnl_rss_cfg) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (36, virtchnl_filter_action) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (292, virtchnl_filter_action_set) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (2604, virtchnl_fdir_rule) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (24, virtchnl_fdir_query_info) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (2616, virtchnl_fdir_add) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (12, virtchnl_fdir_del) |
|
| VIRTCHNL_CHECK_STRUCT_LEN (48, virtchnl_fdir_query) |
|
int | avf_fdir_rcfg_create (struct avf_fdir_conf **rcfg, int tunnel_level, u16 vsi, u16 nrxq) |
| Create a rule cfg object. More...
|
|
int | avf_fdir_rcfg_destroy (struct avf_fdir_conf *rcfg) |
| Destroy a rule cfg object. More...
|
|
int | avf_fdir_rcfg_set_hdr (struct avf_fdir_conf *rcfg, int layer, enum virtchnl_proto_hdr_type hdr) |
| Set match potocol header on specific layer, it will overwrite is already be set. More...
|
|
int | avf_fdir_rcfg_set_field (struct avf_fdir_conf *rcfg, int layer, struct avf_flow_item *item, struct avf_flow_error *error) |
| Set a match field on specific protocol layer, if any match field already be set on this layer, it will be overwritten. More...
|
|
int | avf_fdir_rcfg_act_queue (struct avf_fdir_conf *rcfg, int queue, int size, int act_idx) |
| Set action as to queue(group), conflict with drop action. More...
|
|
int | avf_fdir_parse_action_qregion (struct avf_fdir_conf *rcfg, const struct avf_flow_action *act, int act_idx, struct avf_flow_error *error) |
| Set action as to queue group, conflict with drop action. More...
|
|
int | avf_fdir_rcfg_act_drop (struct avf_fdir_conf *rcfg, int act_idx) |
| Set action as as drop, conflict with to queue(gropu) action. More...
|
|
int | avf_fdir_rcfg_act_mark (struct avf_fdir_conf *rcfg, const u32 mark, int act_idx) |
| Set action as mark, it can co-exist with to queue(group) or drop action. More...
|
|
int | avf_fdir_rcfg_validate (struct avf_fdir_vc_ctx *ctx, struct avf_fdir_conf *rcfg) |
| Validate a flow rule cfg, check with PF driver if the rule cfg is supportted or not. More...
|
|
int | avf_fdir_rule_create (struct avf_fdir_vc_ctx *ctx, struct avf_fdir_conf *rcfg) |
| Create a flow rule, a FDIR rule is expected to be programmed into hardware if return success. More...
|
|
int | avf_fdir_rule_destroy (struct avf_fdir_vc_ctx *ctx, struct avf_fdir_conf *rcfg) |
| Destroy a flow rule. More...
|
|
int | avf_fdir_parse_pattern (struct avf_fdir_conf *rcfg, struct avf_flow_item avf_items[], struct avf_flow_error *error) |
|
int | avf_fdir_parse_action (const struct avf_flow_action actions[], struct avf_fdir_conf *rcfg, struct avf_flow_error *error) |
|
int | avf_flow_error_set (struct avf_flow_error *error, int code, enum avf_flow_error_type type, const void *cause, const char *message) |
| Initialize flow error structure. More...
|
|
char * | avf_fdir_prgm_error_decode (int err_no) |
|
Those headers used temporary, maybe OS packet definition can replace.
Add flow error, pattern and action definition. Verbose error types.
Most of them provide the type of the object referenced by struct rte_flow_error.cause.
Enumerator |
---|
AVF_FLOW_ERROR_TYPE_NONE | No error.
|
AVF_FLOW_ERROR_TYPE_UNSPECIFIED | Cause unspecified.
|
AVF_FLOW_ERROR_TYPE_HANDLE | Flow rule (handle).
|
AVF_FLOW_ERROR_TYPE_ATTR_GROUP | Group field.
|
AVF_FLOW_ERROR_TYPE_ATTR_PRIORITY | Priority field.
|
AVF_FLOW_ERROR_TYPE_ATTR_INGRESS | Ingress field.
|
AVF_FLOW_ERROR_TYPE_ATTR_EGRESS | Egress field.
|
AVF_FLOW_ERROR_TYPE_ATTR_TRANSFER | Transfer field.
|
AVF_FLOW_ERROR_TYPE_ATTR | Attributes structure.
|
AVF_FLOW_ERROR_TYPE_ITEM_NUM | Pattern length.
|
AVF_FLOW_ERROR_TYPE_ITEM_SPEC | Item specification.
|
AVF_FLOW_ERROR_TYPE_ITEM_LAST | Item specification range.
|
AVF_FLOW_ERROR_TYPE_ITEM_MASK | Item specification mask.
|
AVF_FLOW_ERROR_TYPE_ITEM | Specific pattern item.
|
AVF_FLOW_ERROR_TYPE_ACTION_NUM | Number of actions.
|
AVF_FLOW_ERROR_TYPE_ACTION_CONF | Action configuration.
|
AVF_FLOW_ERROR_TYPE_ACTION | Specific action.
|
Definition at line 539 of file avf_advanced_flow.h.