![]() |
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Typedefs | |
typedef int(* | avf_fdir_vc_op_t) (void *vc_hdl, enum virthnl_adv_ops vc_op, void *in, u32 in_len, void *out, u32 out_len) |
Functions | |
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) |
#define AVF_AH_SPI (1ULL << 46) |
Definition at line 129 of file avf_advanced_flow.h.
#define AVF_DMAC (1ULL << 62) |
Definition at line 113 of file avf_advanced_flow.h.
#define AVF_DPORT (1ULL << 54) |
Definition at line 121 of file avf_advanced_flow.h.
#define AVF_ESP_SPI (1ULL << 47) |
Definition at line 128 of file avf_advanced_flow.h.
#define AVF_ETHER_ADDR_LEN 6 |
Definition at line 571 of file avf_advanced_flow.h.
#define AVF_ETHER_TYPE_IPV4 0x0800 |
IPv4 Protocol.
Definition at line 44 of file avf_advanced_flow.h.
#define AVF_ETHER_TYPE_IPV6 0x86DD |
IPv6 Protocol.
Definition at line 45 of file avf_advanced_flow.h.
#define AVF_ETHERTYPE (1ULL << 61) |
Definition at line 114 of file avf_advanced_flow.h.
#define AVF_FAILURE (-1) |
Definition at line 22 of file avf_advanced_flow.h.
#define AVF_GTPU_QFI (1ULL << 48) |
Definition at line 127 of file avf_advanced_flow.h.
#define AVF_GTPU_TEID (1ULL << 49) |
Definition at line 126 of file avf_advanced_flow.h.
#define AVF_ICMP_CODE (1ULL << 52) |
Definition at line 123 of file avf_advanced_flow.h.
#define AVF_ICMP_TYPE (1ULL << 53) |
Definition at line 122 of file avf_advanced_flow.h.
#define AVF_INSET_AH_SPI (AVF_PROT_AH | AVF_AH_SPI) |
Definition at line 174 of file avf_advanced_flow.h.
#define AVF_INSET_DMAC (AVF_PROT_MAC_OUTER | AVF_DMAC) |
Definition at line 141 of file avf_advanced_flow.h.
#define AVF_INSET_ESP_SPI (AVF_PROT_ESP | AVF_ESP_SPI) |
Definition at line 173 of file avf_advanced_flow.h.
#define AVF_INSET_ETHERTYPE (AVF_ETHERTYPE) |
Definition at line 144 of file avf_advanced_flow.h.
#define AVF_INSET_GTPU_QFI (AVF_PROT_GTPU | AVF_GTPU_QFI) |
Definition at line 172 of file avf_advanced_flow.h.
#define AVF_INSET_GTPU_TEID (AVF_PROT_GTPU | AVF_GTPU_TEID) |
Definition at line 171 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP4_CODE (AVF_PROT_ICMP4_OUTER | AVF_ICMP_CODE) |
Definition at line 168 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP4_DST_PORT (AVF_PROT_ICMP4_OUTER | AVF_DPORT) |
Definition at line 164 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP4_SRC_PORT (AVF_PROT_ICMP4_OUTER | AVF_SPORT) |
Definition at line 163 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP4_TYPE (AVF_PROT_ICMP4_OUTER | AVF_ICMP_TYPE) |
Definition at line 167 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP6_CODE (AVF_PROT_ICMP6_OUTER | AVF_ICMP_CODE) |
Definition at line 170 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP6_DST_PORT (AVF_PROT_ICMP6_OUTER | AVF_DPORT) |
Definition at line 166 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP6_SRC_PORT (AVF_PROT_ICMP6_OUTER | AVF_SPORT) |
Definition at line 165 of file avf_advanced_flow.h.
#define AVF_INSET_ICMP6_TYPE (AVF_PROT_ICMP6_OUTER | AVF_ICMP_TYPE) |
Definition at line 169 of file avf_advanced_flow.h.
#define AVF_INSET_IPV4_DST (AVF_PROT_IPV4_OUTER | AVF_IP_DST) |
Definition at line 147 of file avf_advanced_flow.h.
#define AVF_INSET_IPV4_PROTO (AVF_PROT_IPV4_OUTER | AVF_IP_PROTO) |
Definition at line 149 of file avf_advanced_flow.h.
#define AVF_INSET_IPV4_SRC (AVF_PROT_IPV4_OUTER | AVF_IP_SRC) |
Definition at line 146 of file avf_advanced_flow.h.
#define AVF_INSET_IPV4_TOS (AVF_PROT_IPV4_OUTER | AVF_IP_TOS) |
Definition at line 148 of file avf_advanced_flow.h.
#define AVF_INSET_IPV4_TTL (AVF_PROT_IPV4_OUTER | AVF_IP_TTL) |
Definition at line 150 of file avf_advanced_flow.h.
#define AVF_INSET_IPV6_DST (AVF_PROT_IPV6_OUTER | AVF_IP_DST) |
Definition at line 152 of file avf_advanced_flow.h.
#define AVF_INSET_IPV6_HOP_LIMIT (AVF_PROT_IPV6_OUTER | AVF_IP_TTL) |
Definition at line 154 of file avf_advanced_flow.h.
#define AVF_INSET_IPV6_NEXT_HDR (AVF_PROT_IPV6_OUTER | AVF_IP_PROTO) |
Definition at line 153 of file avf_advanced_flow.h.
#define AVF_INSET_IPV6_SRC (AVF_PROT_IPV6_OUTER | AVF_IP_SRC) |
Definition at line 151 of file avf_advanced_flow.h.
#define AVF_INSET_IPV6_TC (AVF_PROT_IPV6_OUTER | AVF_IP_TOS) |
Definition at line 155 of file avf_advanced_flow.h.
#define AVF_INSET_L2TPV3OIP_SESSION_ID (AVF_PROT_L2TPV3OIP | AVF_L2TPV3OIP_SESSION_ID) |
Definition at line 175 of file avf_advanced_flow.h.
#define AVF_INSET_NONE 0ULL |
Definition at line 136 of file avf_advanced_flow.h.
#define AVF_INSET_PFCP_S_FIELD (AVF_PROT_PFCP | AVF_PFCP_S_FIELD) |
Definition at line 177 of file avf_advanced_flow.h.
#define AVF_INSET_PFCP_SEID (AVF_PROT_PFCP | AVF_PFCP_S_FIELD | AVF_PFCP_SEID) |
Definition at line 178 of file avf_advanced_flow.h.
#define AVF_INSET_SCTP_DST_PORT (AVF_PROT_SCTP_OUTER | AVF_DPORT) |
Definition at line 162 of file avf_advanced_flow.h.
#define AVF_INSET_SCTP_SRC_PORT (AVF_PROT_SCTP_OUTER | AVF_SPORT) |
Definition at line 161 of file avf_advanced_flow.h.
#define AVF_INSET_SMAC (AVF_PROT_MAC_OUTER | AVF_SMAC) |
Definition at line 140 of file avf_advanced_flow.h.
#define AVF_INSET_TCP_DST_PORT (AVF_PROT_TCP_OUTER | AVF_DPORT) |
Definition at line 158 of file avf_advanced_flow.h.
#define AVF_INSET_TCP_SRC_PORT (AVF_PROT_TCP_OUTER | AVF_SPORT) |
Definition at line 157 of file avf_advanced_flow.h.
#define AVF_INSET_UDP_DST_PORT (AVF_PROT_UDP_OUTER | AVF_DPORT) |
Definition at line 160 of file avf_advanced_flow.h.
#define AVF_INSET_UDP_SRC_PORT (AVF_PROT_UDP_OUTER | AVF_SPORT) |
Definition at line 159 of file avf_advanced_flow.h.
#define AVF_INSET_VLAN_INNER (AVF_PROT_VLAN_INNER) |
Definition at line 142 of file avf_advanced_flow.h.
#define AVF_INSET_VLAN_OUTER (AVF_PROT_VLAN_OUTER) |
Definition at line 143 of file avf_advanced_flow.h.
#define AVF_IP_DST (1ULL << 59) |
Definition at line 116 of file avf_advanced_flow.h.
#define AVF_IP_PROTO (1ULL << 58) |
Definition at line 117 of file avf_advanced_flow.h.
#define AVF_IP_SRC (1ULL << 60) |
Definition at line 115 of file avf_advanced_flow.h.
#define AVF_IP_TOS (1ULL << 56) |
Definition at line 119 of file avf_advanced_flow.h.
#define AVF_IP_TTL (1ULL << 57) |
Definition at line 118 of file avf_advanced_flow.h.
#define AVF_L2TPV3OIP_SESSION_ID (1ULL << 45) |
Definition at line 130 of file avf_advanced_flow.h.
#define AVF_NVGRE_TNI (1ULL << 50) |
Definition at line 125 of file avf_advanced_flow.h.
#define AVF_PFCP_S_FIELD (1ULL << 44) |
Definition at line 131 of file avf_advanced_flow.h.
#define AVF_PFCP_SEID (1ULL << 43) |
Definition at line 132 of file avf_advanced_flow.h.
#define AVF_PROT_AH (1ULL << 23) |
Definition at line 106 of file avf_advanced_flow.h.
#define AVF_PROT_ESP (1ULL << 22) |
Definition at line 105 of file avf_advanced_flow.h.
#define AVF_PROT_GTPU (1ULL << 21) |
Definition at line 104 of file avf_advanced_flow.h.
#define AVF_PROT_ICMP4_INNER (1ULL << 15) |
Definition at line 98 of file avf_advanced_flow.h.
#define AVF_PROT_ICMP4_OUTER (1ULL << 16) |
Definition at line 99 of file avf_advanced_flow.h.
#define AVF_PROT_ICMP6_INNER (1ULL << 17) |
Definition at line 100 of file avf_advanced_flow.h.
#define AVF_PROT_ICMP6_OUTER (1ULL << 18) |
Definition at line 101 of file avf_advanced_flow.h.
#define AVF_PROT_IPV4_INNER (1ULL << 5) |
Definition at line 88 of file avf_advanced_flow.h.
#define AVF_PROT_IPV4_OUTER (1ULL << 6) |
Definition at line 89 of file avf_advanced_flow.h.
#define AVF_PROT_IPV6_INNER (1ULL << 7) |
Definition at line 90 of file avf_advanced_flow.h.
#define AVF_PROT_IPV6_OUTER (1ULL << 8) |
Definition at line 91 of file avf_advanced_flow.h.
#define AVF_PROT_L2TPV3OIP (1ULL << 24) |
Definition at line 107 of file avf_advanced_flow.h.
#define AVF_PROT_MAC_INNER (1ULL << 1) |
Definition at line 84 of file avf_advanced_flow.h.
#define AVF_PROT_MAC_OUTER (1ULL << 2) |
Definition at line 85 of file avf_advanced_flow.h.
#define AVF_PROT_NVGRE (1ULL << 20) |
Definition at line 103 of file avf_advanced_flow.h.
#define AVF_PROT_PFCP (1ULL << 25) |
Definition at line 108 of file avf_advanced_flow.h.
#define AVF_PROT_SCTP_INNER (1ULL << 13) |
Definition at line 96 of file avf_advanced_flow.h.
#define AVF_PROT_SCTP_OUTER (1ULL << 14) |
Definition at line 97 of file avf_advanced_flow.h.
#define AVF_PROT_TCP_INNER (1ULL << 9) |
Definition at line 92 of file avf_advanced_flow.h.
#define AVF_PROT_TCP_OUTER (1ULL << 10) |
Definition at line 93 of file avf_advanced_flow.h.
#define AVF_PROT_UDP_INNER (1ULL << 11) |
Definition at line 94 of file avf_advanced_flow.h.
#define AVF_PROT_UDP_OUTER (1ULL << 12) |
Definition at line 95 of file avf_advanced_flow.h.
#define AVF_PROT_VLAN_INNER (1ULL << 3) |
Definition at line 86 of file avf_advanced_flow.h.
#define AVF_PROT_VLAN_OUTER (1ULL << 4) |
Definition at line 87 of file avf_advanced_flow.h.
#define AVF_PROT_VXLAN (1ULL << 19) |
Definition at line 102 of file avf_advanced_flow.h.
#define AVF_SMAC (1ULL << 63) |
Definition at line 112 of file avf_advanced_flow.h.
#define AVF_SPORT (1ULL << 55) |
Definition at line 120 of file avf_advanced_flow.h.
#define AVF_SUCCESS (0) |
Definition at line 21 of file avf_advanced_flow.h.
#define AVF_VXLAN_VNI (1ULL << 51) |
Definition at line 124 of file avf_advanced_flow.h.
Definition at line 24 of file avf_advanced_flow.h.
Definition at line 25 of file avf_advanced_flow.h.
#define PROTO_HDR_FIELD_MASK ((1UL << PROTO_HDR_SHIFT) - 1) |
Definition at line 51 of file avf_advanced_flow.h.
#define PROTO_HDR_FIELD_START | ( | proto_hdr_type | ) | (proto_hdr_type << PROTO_HDR_SHIFT) |
Definition at line 49 of file avf_advanced_flow.h.
#define PROTO_HDR_SHIFT 5 |
Definition at line 48 of file avf_advanced_flow.h.
#define VIRTCHNL_ADD_PROTO_HDR_FIELD | ( | hdr, | |
field | |||
) | ((hdr)->field_selector |= BIT ((field) &PROTO_HDR_FIELD_MASK)) |
Definition at line 60 of file avf_advanced_flow.h.
#define VIRTCHNL_ADD_PROTO_HDR_FIELD_BIT | ( | hdr, | |
hdr_type, | |||
field | |||
) | (VIRTCHNL_ADD_PROTO_HDR_FIELD (hdr, VIRTCHNL_PROTO_HDR_##hdr_type##_##field)) |
Definition at line 68 of file avf_advanced_flow.h.
#define VIRTCHNL_CHECK_STRUCT_LEN | ( | n, | |
X | |||
) |
Definition at line 32 of file avf_advanced_flow.h.
#define VIRTCHNL_CHECK_UNION_LEN | ( | n, | |
X | |||
) |
Definition at line 37 of file avf_advanced_flow.h.
#define VIRTCHNL_DEL_PROTO_HDR_FIELD | ( | hdr, | |
field | |||
) | ((hdr)->field_selector &= ~BIT ((field) &PROTO_HDR_FIELD_MASK)) |
Definition at line 62 of file avf_advanced_flow.h.
#define VIRTCHNL_DEL_PROTO_HDR_FIELD_BIT | ( | hdr, | |
hdr_type, | |||
field | |||
) | (VIRTCHNL_DEL_PROTO_HDR_FIELD (hdr, VIRTCHNL_PROTO_HDR_##hdr_type##_##field)) |
Definition at line 70 of file avf_advanced_flow.h.
#define VIRTCHNL_GET_PROTO_HDR_FIELD | ( | hdr | ) | ((hdr)->field_selector) |
Definition at line 66 of file avf_advanced_flow.h.
#define VIRTCHNL_GET_PROTO_HDR_TYPE | ( | hdr | ) | (((hdr)->type) >> PROTO_HDR_SHIFT) |
Definition at line 75 of file avf_advanced_flow.h.
#define VIRTCHNL_MAX_NUM_ACTIONS 8 |
Definition at line 398 of file avf_advanced_flow.h.
#define VIRTCHNL_MAX_NUM_PROTO_HDRS 32 |
Definition at line 47 of file avf_advanced_flow.h.
#define VIRTCHNL_SET_PROTO_HDR_TYPE | ( | hdr, | |
hdr_type | |||
) | ((hdr)->type = VIRTCHNL_PROTO_HDR_##hdr_type) |
Definition at line 73 of file avf_advanced_flow.h.
#define VIRTCHNL_TEST_PROTO_HDR | ( | hdr, | |
val | |||
) |
Definition at line 78 of file avf_advanced_flow.h.
#define VIRTCHNL_TEST_PROTO_HDR_FIELD | ( | hdr, | |
val | |||
) | ((hdr)->field_selector & BIT ((val) &PROTO_HDR_FIELD_MASK)) |
Definition at line 64 of file avf_advanced_flow.h.
#define VIRTCHNL_TEST_PROTO_HDR_TYPE | ( | hdr, | |
val | |||
) | ((hdr)->type == ((val) >> PROTO_HDR_SHIFT)) |
Definition at line 76 of file avf_advanced_flow.h.
typedef int(* avf_fdir_vc_op_t) (void *vc_hdl, enum virthnl_adv_ops vc_op, void *in, u32 in_len, void *out, u32 out_len) |
Definition at line 790 of file avf_advanced_flow.h.
Hash function types.
Definition at line 721 of file avf_advanced_flow.h.
enum avf_flow_error_type |
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.
Definition at line 539 of file avf_advanced_flow.h.
enum virtchnl_action |
Enumerator | |
---|---|
VIRTCHNL_ACTION_DROP | |
VIRTCHNL_ACTION_TC_REDIRECT | |
VIRTCHNL_ACTION_PASSTHRU | |
VIRTCHNL_ACTION_QUEUE | |
VIRTCHNL_ACTION_Q_REGION | |
VIRTCHNL_ACTION_MARK | |
VIRTCHNL_ACTION_COUNT | |
VIRTCHNL_ACTION_NONE |
Definition at line 358 of file avf_advanced_flow.h.
Definition at line 462 of file avf_advanced_flow.h.
Definition at line 208 of file avf_advanced_flow.h.
Definition at line 185 of file avf_advanced_flow.h.
Enumerator | |
---|---|
VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC | |
VIRTCHNL_RSS_ALG_XOR_ASYMMETRIC | |
VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC | |
VIRTCHNL_RSS_ALG_XOR_SYMMETRIC |
Definition at line 341 of file avf_advanced_flow.h.
enum virthnl_adv_ops |
Enumerator | |
---|---|
VIRTCHNL_ADV_OP_ADD_FDIR_FILTER | |
VIRTCHNL_ADV_OP_DEL_FDIR_FILTER | |
VIRTCHNL_ADV_OP_QUERY_FDIR_FILTER | |
VIRTCHNL_ADV_OP_MAX |
Definition at line 781 of file avf_advanced_flow.h.
int avf_fdir_parse_action | ( | const struct avf_flow_action | actions[], |
struct avf_fdir_conf * | rcfg, | ||
struct avf_flow_error * | error | ||
) |
Definition at line 672 of file avf_fdir_lib.c.
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.
rcfg | the rule cfg object |
act | flow actions |
act_idx | action index @error save error cause |
Definition at line 507 of file avf_fdir_lib.c.
int avf_fdir_parse_pattern | ( | struct avf_fdir_conf * | rcfg, |
struct avf_flow_item | avf_items[], | ||
struct avf_flow_error * | error | ||
) |
Definition at line 789 of file avf_fdir_lib.c.
char* avf_fdir_prgm_error_decode | ( | int | err_no | ) |
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.
rcfg | the rule cfg object |
act_idx | action index |
Definition at line 564 of file avf_fdir_lib.c.
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.
rcfg | the rule cfg object |
mark | a 32 bit flow mark |
act_idx | action index |
Definition at line 578 of file avf_fdir_lib.c.
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.
rcfg | rule cfg object |
queue | queue id. |
size | queue group size, must be 2^n. 1 means only to single queue. |
act_idx | action index |
Definition at line 486 of file avf_fdir_lib.c.
int avf_fdir_rcfg_create | ( | struct avf_fdir_conf ** | rcfg, |
int | tunnel_level, | ||
u16 | vsi, | ||
u16 | nrxq | ||
) |
Create a rule cfg object.
rcfg | created rule cfg object. |
tunnel | tunnel level where protocol header start from 0 from moster outer layer. 1 from first inner layer. 2 form second inner layer. ... |
vsi | avf vsi id |
nrxq | the rx queue number of the avf |
Definition at line 43 of file avf_fdir_lib.c.
int avf_fdir_rcfg_destroy | ( | struct avf_fdir_conf * | rcfg | ) |
Destroy a rule cfg object.
rcfg | the cfg object to destroy. |
Definition at line 62 of file avf_fdir_lib.c.
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.
rcfg | the rule cfg object |
layer | layer of the protocol header. |
item | flow item |
error | save error cause |
Definition at line 85 of file avf_fdir_lib.c.
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.
rcfg | the rule cfg object |
layer | layer of the protocol header. |
hdr | protocol header type. |
Definition at line 70 of file avf_fdir_lib.c.
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.
ctx | virtual channel context |
rcfg | the rule cfg object. |
Definition at line 594 of file avf_fdir_lib.c.
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.
ctx | virtual channel context |
rcfg | rule cfg object. |
Definition at line 620 of file avf_fdir_lib.c.
int avf_fdir_rule_destroy | ( | struct avf_fdir_vc_ctx * | ctx, |
struct avf_fdir_conf * | rcfg | ||
) |
Destroy a flow rule.
ctx | virtual channel context |
rcfg | the rule cfg object. |
Definition at line 647 of file avf_fdir_lib.c.
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.
[out] | error | Pointer to flow error structure (may be NULL). |
code | Related error code | |
type | Cause field and error types. | |
cause | Object responsible for the error. | |
message | Human-readable error message. |
Definition at line 810 of file avf_fdir_lib.c.
VIRTCHNL_CHECK_STRUCT_LEN | ( | 12 | , |
virtchnl_fdir_del | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 2312 | , |
virtchnl_proto_hdrs | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 24 | , |
virtchnl_fdir_query_info | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 2444 | , |
virtchnl_rss_cfg | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 2604 | , |
virtchnl_fdir_rule | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 2616 | , |
virtchnl_fdir_add | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 292 | , |
virtchnl_filter_action_set | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 36 | , |
virtchnl_filter_action | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 48 | , |
virtchnl_fdir_query | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 6 | , |
virtchnl_rss_key | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 6 | , |
virtchnl_rss_lut | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 72 | , |
virtchnl_proto_hdr | |||
) |
VIRTCHNL_CHECK_STRUCT_LEN | ( | 8 | , |
virtchnl_rss_hena | |||
) |