DPDK  19.11.10
rte_eth_ctrl.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2015 Intel Corporation
3  */
4 
5 #ifndef _RTE_ETH_CTRL_H_
6 #define _RTE_ETH_CTRL_H_
7 
8 #include <stdint.h>
9 #include <rte_common.h>
10 #include <rte_ether.h>
11 #include "rte_flow.h"
12 #include "rte_ethdev.h"
13 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
30  RTE_ETH_FILTER_NONE = 0,
31  RTE_ETH_FILTER_MACVLAN,
32  RTE_ETH_FILTER_ETHERTYPE,
33  RTE_ETH_FILTER_FLEXIBLE,
34  RTE_ETH_FILTER_SYN,
35  RTE_ETH_FILTER_NTUPLE,
36  RTE_ETH_FILTER_TUNNEL,
37  RTE_ETH_FILTER_FDIR,
38  RTE_ETH_FILTER_HASH,
39  RTE_ETH_FILTER_L2_TUNNEL,
40  RTE_ETH_FILTER_GENERIC,
41  RTE_ETH_FILTER_MAX
42 };
43 
58  RTE_ETH_FILTER_OP_MAX
59 };
60 
70 };
71 
76  uint8_t is_vf;
77  uint16_t dst_id;
79  struct rte_ether_addr mac_addr;
80 };
81 
86 #define RTE_ETHTYPE_FLAGS_MAC 0x0001
87 #define RTE_ETHTYPE_FLAGS_DROP 0x0002
94 struct rte_eth_ethertype_filter {
95  struct rte_ether_addr mac_addr;
96  uint16_t ether_type;
97  uint16_t flags;
98  uint16_t queue;
99 };
100 
101 #define RTE_FLEX_FILTER_MAXLEN 128
102 #define RTE_FLEX_FILTER_MASK_SIZE \
103  (RTE_ALIGN(RTE_FLEX_FILTER_MAXLEN, CHAR_BIT) / CHAR_BIT)
104 
112  uint16_t len;
116  uint8_t priority;
117  uint16_t queue;
118 };
119 
126  uint8_t hig_pri;
128  uint16_t queue;
129 };
130 
135 #define RTE_NTUPLE_FLAGS_DST_IP 0x0001
136 #define RTE_NTUPLE_FLAGS_SRC_IP 0x0002
137 #define RTE_NTUPLE_FLAGS_DST_PORT 0x0004
138 #define RTE_NTUPLE_FLAGS_SRC_PORT 0x0008
139 #define RTE_NTUPLE_FLAGS_PROTO 0x0010
140 #define RTE_NTUPLE_FLAGS_TCP_FLAG 0x0020
142 #define RTE_5TUPLE_FLAGS ( \
143  RTE_NTUPLE_FLAGS_DST_IP | \
144  RTE_NTUPLE_FLAGS_SRC_IP | \
145  RTE_NTUPLE_FLAGS_DST_PORT | \
146  RTE_NTUPLE_FLAGS_SRC_PORT | \
147  RTE_NTUPLE_FLAGS_PROTO)
148 
149 #define RTE_2TUPLE_FLAGS ( \
150  RTE_NTUPLE_FLAGS_DST_PORT | \
151  RTE_NTUPLE_FLAGS_PROTO)
152 
153 #define RTE_NTUPLE_TCP_FLAGS_MASK 0x3F
160 struct rte_eth_ntuple_filter {
161  uint16_t flags;
162  uint32_t dst_ip;
163  uint32_t dst_ip_mask;
164  uint32_t src_ip;
165  uint32_t src_ip_mask;
166  uint16_t dst_port;
167  uint16_t dst_port_mask;
168  uint16_t src_port;
169  uint16_t src_port_mask;
170  uint8_t proto;
171  uint8_t proto_mask;
175  uint8_t tcp_flags;
176  uint16_t priority;
178  uint16_t queue;
179 };
180 
184 #define ETH_TUNNEL_FILTER_OMAC 0x01
185 #define ETH_TUNNEL_FILTER_OIP 0x02
186 #define ETH_TUNNEL_FILTER_TENID 0x04
187 #define ETH_TUNNEL_FILTER_IMAC 0x08
188 #define ETH_TUNNEL_FILTER_IVLAN 0x10
189 #define ETH_TUNNEL_FILTER_IIP 0x20
191 #define RTE_TUNNEL_FILTER_IMAC_IVLAN (ETH_TUNNEL_FILTER_IMAC | \
192  ETH_TUNNEL_FILTER_IVLAN)
193 #define RTE_TUNNEL_FILTER_IMAC_IVLAN_TENID (ETH_TUNNEL_FILTER_IMAC | \
194  ETH_TUNNEL_FILTER_IVLAN | \
195  ETH_TUNNEL_FILTER_TENID)
196 #define RTE_TUNNEL_FILTER_IMAC_TENID (ETH_TUNNEL_FILTER_IMAC | \
197  ETH_TUNNEL_FILTER_TENID)
198 #define RTE_TUNNEL_FILTER_OMAC_TENID_IMAC (ETH_TUNNEL_FILTER_OMAC | \
199  ETH_TUNNEL_FILTER_TENID | \
200  ETH_TUNNEL_FILTER_IMAC)
201 
208 };
209 
216  uint16_t inner_vlan;
221  union {
222  uint32_t ipv4_addr;
223  uint32_t ipv6_addr[4];
224  } ip_addr;
226  uint16_t filter_type;
228  uint32_t tenant_id;
229  uint16_t queue_id;
230 };
231 
236  RTE_ETH_GLOBAL_CFG_TYPE_UNKNOWN = 0,
237  RTE_ETH_GLOBAL_CFG_TYPE_GRE_KEY_LEN,
238  RTE_ETH_GLOBAL_CFG_TYPE_MAX,
239 };
240 
246  union {
247  uint8_t gre_key_len;
248  uint64_t reserved;
249  } cfg;
250 };
251 
252 #define RTE_ETH_FDIR_MAX_FLEXLEN 16
253 #define RTE_ETH_INSET_SIZE_MAX 128
258 enum rte_eth_input_set_field {
259  RTE_ETH_INPUT_SET_UNKNOWN = 0,
260 
261  /* L2 */
262  RTE_ETH_INPUT_SET_L2_SRC_MAC = 1,
263  RTE_ETH_INPUT_SET_L2_DST_MAC,
264  RTE_ETH_INPUT_SET_L2_OUTER_VLAN,
265  RTE_ETH_INPUT_SET_L2_INNER_VLAN,
266  RTE_ETH_INPUT_SET_L2_ETHERTYPE,
267 
268  /* L3 */
269  RTE_ETH_INPUT_SET_L3_SRC_IP4 = 129,
270  RTE_ETH_INPUT_SET_L3_DST_IP4,
271  RTE_ETH_INPUT_SET_L3_SRC_IP6,
272  RTE_ETH_INPUT_SET_L3_DST_IP6,
273  RTE_ETH_INPUT_SET_L3_IP4_TOS,
274  RTE_ETH_INPUT_SET_L3_IP4_PROTO,
275  RTE_ETH_INPUT_SET_L3_IP6_TC,
276  RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER,
277  RTE_ETH_INPUT_SET_L3_IP4_TTL,
278  RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS,
279 
280  /* L4 */
281  RTE_ETH_INPUT_SET_L4_UDP_SRC_PORT = 257,
282  RTE_ETH_INPUT_SET_L4_UDP_DST_PORT,
283  RTE_ETH_INPUT_SET_L4_TCP_SRC_PORT,
284  RTE_ETH_INPUT_SET_L4_TCP_DST_PORT,
285  RTE_ETH_INPUT_SET_L4_SCTP_SRC_PORT,
286  RTE_ETH_INPUT_SET_L4_SCTP_DST_PORT,
287  RTE_ETH_INPUT_SET_L4_SCTP_VERIFICATION_TAG,
288 
289  /* Tunnel */
290  RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_DST_MAC = 385,
291  RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_SRC_MAC,
292  RTE_ETH_INPUT_SET_TUNNEL_L2_INNER_VLAN,
293  RTE_ETH_INPUT_SET_TUNNEL_L4_UDP_KEY,
294  RTE_ETH_INPUT_SET_TUNNEL_GRE_KEY,
295 
296  /* Flexible Payload */
297  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_1ST_WORD = 641,
298  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_2ND_WORD,
299  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_3RD_WORD,
300  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_4TH_WORD,
301  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_5TH_WORD,
302  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_6TH_WORD,
303  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_7TH_WORD,
304  RTE_ETH_INPUT_SET_FLEX_PAYLOAD_8TH_WORD,
305 
306  RTE_ETH_INPUT_SET_DEFAULT = 65533,
307  RTE_ETH_INPUT_SET_NONE = 65534,
308  RTE_ETH_INPUT_SET_MAX = 65535,
309 };
310 
315  RTE_ETH_INPUT_SET_OP_UNKNOWN,
318  RTE_ETH_INPUT_SET_OP_MAX
319 };
320 
321 
327  uint16_t flow_type;
328  uint16_t inset_size;
330  enum rte_filter_input_set_op op;
331 };
332 
337  uint16_t ether_type;
338 };
339 
344  uint32_t src_ip;
345  uint32_t dst_ip;
346  uint8_t tos;
347  uint8_t ttl;
348  uint8_t proto;
349 };
350 
356  uint16_t src_port;
357  uint16_t dst_port;
358 };
359 
365  uint16_t src_port;
366  uint16_t dst_port;
367 };
368 
374  uint16_t src_port;
375  uint16_t dst_port;
376  uint32_t verify_tag;
377 };
378 
383  uint32_t src_ip[4];
384  uint32_t dst_ip[4];
385  uint8_t tc;
386  uint8_t proto;
387  uint8_t hop_limits;
388 };
389 
395  uint16_t src_port;
396  uint16_t dst_port;
397 };
398 
404  uint16_t src_port;
405  uint16_t dst_port;
406 };
407 
413  uint16_t src_port;
414  uint16_t dst_port;
415  uint32_t verify_tag;
416 };
417 
423 };
424 
429  RTE_FDIR_TUNNEL_TYPE_UNKNOWN = 0,
430  RTE_FDIR_TUNNEL_TYPE_NVGRE,
431  RTE_FDIR_TUNNEL_TYPE_VXLAN,
432 };
433 
441  uint32_t tunnel_id;
443 };
444 
450  struct rte_eth_l2_flow l2_flow;
451  struct rte_eth_udpv4_flow udp4_flow;
452  struct rte_eth_tcpv4_flow tcp4_flow;
453  struct rte_eth_sctpv4_flow sctp4_flow;
454  struct rte_eth_ipv4_flow ip4_flow;
455  struct rte_eth_udpv6_flow udp6_flow;
456  struct rte_eth_tcpv6_flow tcp6_flow;
457  struct rte_eth_sctpv6_flow sctp6_flow;
458  struct rte_eth_ipv6_flow ipv6_flow;
459  struct rte_eth_mac_vlan_flow mac_vlan_flow;
460  struct rte_eth_tunnel_flow tunnel_flow;
461 };
462 
467  uint16_t vlan_tci;
470  uint8_t is_vf;
471  uint16_t dst_id;
472 };
473 
478  uint16_t flow_type;
483 };
484 
489  RTE_ETH_FDIR_ACCEPT = 0,
490  RTE_ETH_FDIR_REJECT,
491  RTE_ETH_FDIR_PASSTHRU,
492 };
493 
503 };
504 
509  uint16_t rx_queue;
512  uint8_t flex_off;
516 };
517 
524  uint32_t soft_id;
528 };
529 
535  uint16_t vlan_tci_mask;
541  uint16_t src_port_mask;
543  uint16_t dst_port_mask;
548  uint32_t tunnel_id_mask;
551 };
552 
557  RTE_ETH_PAYLOAD_UNKNOWN = 0,
558  RTE_ETH_RAW_PAYLOAD,
559  RTE_ETH_L2_PAYLOAD,
560  RTE_ETH_L3_PAYLOAD,
561  RTE_ETH_L4_PAYLOAD,
562  RTE_ETH_PAYLOAD_MAX = 8,
563 };
564 
576 };
577 
583  uint16_t flow_type;
586 };
587 
593  uint16_t nb_payloads;
594  uint16_t nb_flexmasks;
595  struct rte_eth_flex_payload_cfg flex_set[RTE_ETH_PAYLOAD_MAX];
597  struct rte_eth_fdir_flex_mask flex_mask[RTE_ETH_FLOW_MAX];
599 };
600 
610 };
611 
612 #define UINT64_BIT (CHAR_BIT * sizeof(uint64_t))
613 #define RTE_FLOW_MASK_ARRAY_SIZE \
614  (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT)
615 
625  struct rte_eth_fdir_masks mask;
628  uint32_t guarant_spc;
629  uint32_t best_spc;
631  uint64_t flow_types_mask[RTE_FLOW_MASK_ARRAY_SIZE];
632  uint32_t max_flexpayload;
648 };
649 
655  uint32_t collision;
656  uint32_t free;
657  uint32_t maxhash;
660  uint32_t maxlen;
661  uint64_t add;
662  uint64_t remove;
663  uint64_t f_add;
664  uint64_t f_remove;
665  uint32_t guarant_cnt;
666  uint32_t best_cnt;
667 };
668 
673  RTE_ETH_FDIR_FILTER_INFO_TYPE_UNKNOWN = 0,
676  RTE_ETH_FDIR_FILTER_INFO_TYPE_MAX,
677 };
678 
686  union {
689  } info;
690 };
691 
703  RTE_ETH_HASH_FILTER_INFO_TYPE_UNKNOWN = 0,
710  RTE_ETH_HASH_FILTER_INFO_TYPE_MAX,
711 };
712 
713 #define RTE_SYM_HASH_MASK_ARRAY_SIZE \
714  (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT)
715 
727  uint64_t sym_hash_enable_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
729  uint64_t valid_bit_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
730 };
731 
739  union {
741  uint8_t enable;
746  } info;
747 };
748 
753  enum rte_eth_tunnel_type l2_tunnel_type;
754  uint16_t ether_type; /* ether type in l2 header */
755  uint32_t tunnel_id; /* port tag id for e-tag */
756  uint16_t vf_id; /* VF id for tag insertion */
757  uint32_t pool; /* destination pool for tag based forwarding */
758 };
759 
760 #ifdef __cplusplus
761 }
762 #endif
763 
764 #endif /* _RTE_ETH_CTRL_H_ */
rte_eth_fdir_stats::free
uint32_t free
Definition: rte_eth_ctrl.h:656
rte_eth_tunnel_flow
Definition: rte_eth_ctrl.h:438
rte_eth_tunnel_filter_conf::ipv6_addr
uint32_t ipv6_addr[4]
Definition: rte_eth_ctrl.h:223
rte_eth_fdir_flow
Definition: rte_eth_ctrl.h:449
rte_eth_fdir_stats
Definition: rte_eth_ctrl.h:654
rte_eth_fdir_masks::mac_addr_byte_mask
uint8_t mac_addr_byte_mask
Definition: rte_eth_ctrl.h:546
rte_eth_fdir_flow_ext
Definition: rte_eth_ctrl.h:466
rte_eth_l2_tunnel_conf
Definition: rte_eth_ctrl.h:752
rte_eth_sctpv4_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:374
rte_eth_fdir_info::best_spc
uint32_t best_spc
Definition: rte_eth_ctrl.h:629
rte_eth_fdir_info::max_flexpayload
uint32_t max_flexpayload
Definition: rte_eth_ctrl.h:632
rte_eth_ipv6_flow
Definition: rte_eth_ctrl.h:382
RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
@ RTE_ETH_HASH_FILTER_INPUT_SET_SELECT
Definition: rte_eth_ctrl.h:709
rte_eth_mac_filter
Definition: rte_eth_ctrl.h:75
rte_eth_ntuple_filter::src_port_mask
uint16_t src_port_mask
Definition: rte_eth_ctrl.h:169
rte_eth_udpv4_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:356
rte_eth_fdir_action::behavior
enum rte_eth_fdir_behavior behavior
Definition: rte_eth_ctrl.h:510
rte_eth_ntuple_filter::src_ip
uint32_t src_ip
Definition: rte_eth_ctrl.h:164
rte_eth_mac_filter::is_vf
uint8_t is_vf
Definition: rte_eth_ctrl.h:76
rte_eth_syn_filter::hig_pri
uint8_t hig_pri
Definition: rte_eth_ctrl.h:126
rte_eth_fdir_stats::maxlen
uint32_t maxlen
Definition: rte_eth_ctrl.h:660
rte_eth_tunnel_filter_conf
Definition: rte_eth_ctrl.h:213
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2097
RTE_ETH_FILTER_DELETE
@ RTE_ETH_FILTER_DELETE
Definition: rte_eth_ctrl.h:52
rte_eth_fdir_flex_mask::mask
uint8_t mask[RTE_ETH_FDIR_MAX_FLEXLEN]
Definition: rte_eth_ctrl.h:584
rte_eth_fdir_action::rx_queue
uint16_t rx_queue
Definition: rte_eth_ctrl.h:509
rte_eth_global_cfg::gre_key_len
uint8_t gre_key_len
Definition: rte_eth_ctrl.h:247
rte_eth_tunnel_filter_conf::tenant_id
uint32_t tenant_id
Definition: rte_eth_ctrl.h:228
rte_eth_fdir_action
Definition: rte_eth_ctrl.h:508
rte_eth_fdir_info
Definition: rte_eth_ctrl.h:623
rte_eth_tunnel_filter_conf::inner_mac
struct rte_ether_addr inner_mac
Definition: rte_eth_ctrl.h:215
rte_eth_input_set_field
rte_eth_input_set_field
Definition: rte_eth_ctrl.h:258
rte_eth_tunnel_filter_conf::ip_addr
union rte_eth_tunnel_filter_conf::@131 ip_addr
rte_eth_ntuple_filter::tcp_flags
uint8_t tcp_flags
Definition: rte_eth_ctrl.h:175
rte_eth_fdir_tunnel_type
rte_eth_fdir_tunnel_type
Definition: rte_eth_ctrl.h:428
rte_eth_ntuple_filter::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:166
rte_eth_fdir_flex_conf::flex_mask
struct rte_eth_fdir_flex_mask flex_mask[RTE_ETH_FLOW_MAX]
Definition: rte_eth_ctrl.h:597
rte_eth_fdir_stats::f_add
uint64_t f_add
Definition: rte_eth_ctrl.h:663
rte_eth_mac_filter::dst_id
uint16_t dst_id
Definition: rte_eth_ctrl.h:77
rte_eth_ethertype_filter::queue
uint16_t queue
Definition: rte_eth_ctrl.h:98
rte_eth_flex_filter::queue
uint16_t queue
Definition: rte_eth_ctrl.h:117
rte_eth_ipv4_flow::ttl
uint8_t ttl
Definition: rte_eth_ctrl.h:347
rte_eth_hash_filter_info_type
rte_eth_hash_filter_info_type
Definition: rte_eth_ctrl.h:702
rte_eth_fdir_stats::maxhash
uint32_t maxhash
Definition: rte_eth_ctrl.h:657
rte_eth_tcpv4_flow::ip
struct rte_eth_ipv4_flow ip
Definition: rte_eth_ctrl.h:364
rte_eth_fdir_action::report_status
enum rte_eth_fdir_status report_status
Definition: rte_eth_ctrl.h:511
rte_eth_tunnel_filter_conf::inner_vlan
uint16_t inner_vlan
Definition: rte_eth_ctrl.h:216
rte_eth_fdir_input::flow
union rte_eth_fdir_flow flow
Definition: rte_eth_ctrl.h:479
RTE_FDIR_MODE_SIGNATURE
@ RTE_FDIR_MODE_SIGNATURE
Definition: rte_eth_ctrl.h:606
rte_eth_fdir_info::flow_types_mask
uint64_t flow_types_mask[RTE_FLOW_MASK_ARRAY_SIZE]
Definition: rte_eth_ctrl.h:631
RTE_TUNNEL_IPTYPE_IPV6
@ RTE_TUNNEL_IPTYPE_IPV6
Definition: rte_eth_ctrl.h:207
rte_eth_ipv4_flow::dst_ip
uint32_t dst_ip
Definition: rte_eth_ctrl.h:345
rte_eth_ntuple_filter::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:168
RTE_ETH_FILTER_GET
@ RTE_ETH_FILTER_GET
Definition: rte_eth_ctrl.h:54
rte_eth_fdir_filter::action
struct rte_eth_fdir_action action
Definition: rte_eth_ctrl.h:527
rte_eth_fdir_stats::add
uint64_t add
Definition: rte_eth_ctrl.h:661
rte_eth_fdir_info::flex_payload_limit
uint16_t flex_payload_limit
Definition: rte_eth_ctrl.h:642
rte_eth_udpv6_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:396
rte_eth_hash_filter_info::global_conf
struct rte_eth_hash_global_conf global_conf
Definition: rte_eth_ctrl.h:743
rte_eth_mac_filter::filter_type
enum rte_mac_filter_type filter_type
Definition: rte_eth_ctrl.h:78
rte_eth_udpv6_flow::ip
struct rte_eth_ipv6_flow ip
Definition: rte_eth_ctrl.h:394
RTE_FDIR_MODE_PERFECT_TUNNEL
@ RTE_FDIR_MODE_PERFECT_TUNNEL
Definition: rte_eth_ctrl.h:609
rte_eth_udpv6_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:395
rte_eth_fdir_input
Definition: rte_eth_ctrl.h:477
RTE_FLEX_FILTER_MASK_SIZE
#define RTE_FLEX_FILTER_MASK_SIZE
Definition: rte_eth_ctrl.h:102
rte_eth_fdir_behavior
rte_eth_fdir_behavior
Definition: rte_eth_ctrl.h:488
rte_eth_udpv6_flow
Definition: rte_eth_ctrl.h:393
rte_eth_ipv4_flow::proto
uint8_t proto
Definition: rte_eth_ctrl.h:348
rte_eth_fdir_stats::best_cnt
uint32_t best_cnt
Definition: rte_eth_ctrl.h:666
rte_filter_type
rte_filter_type
Definition: rte_eth_ctrl.h:29
rte_eth_ntuple_filter::flags
uint16_t flags
Definition: rte_eth_ctrl.h:161
rte_eth_fdir_masks::ipv6_mask
struct rte_eth_ipv6_flow ipv6_mask
Definition: rte_eth_ctrl.h:539
rte_eth_fdir_filter_info::info
union rte_eth_fdir_filter_info::@133 info
rte_eth_sctpv6_flow::verify_tag
uint32_t verify_tag
Definition: rte_eth_ctrl.h:415
rte_eth_tunnel_filter_conf::queue_id
uint16_t queue_id
Definition: rte_eth_ctrl.h:229
rte_eth_fdir_filter_info_type
rte_eth_fdir_filter_info_type
Definition: rte_eth_ctrl.h:672
rte_eth_sctpv6_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:414
rte_ether.h
rte_eth_tcpv4_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:366
rte_eth_hash_filter_info::info_type
enum rte_eth_hash_filter_info_type info_type
Definition: rte_eth_ctrl.h:737
rte_eth_fdir_status
rte_eth_fdir_status
Definition: rte_eth_ctrl.h:498
rte_eth_tunnel_filter_conf::filter_type
uint16_t filter_type
Definition: rte_eth_ctrl.h:226
rte_eth_syn_filter
Definition: rte_eth_ctrl.h:125
rte_eth_hash_filter_info::enable
uint8_t enable
Definition: rte_eth_ctrl.h:741
rte_eth_hash_global_conf::valid_bit_mask
uint64_t valid_bit_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE]
Definition: rte_eth_ctrl.h:729
rte_eth_mac_vlan_flow
Definition: rte_eth_ctrl.h:421
rte_eth_global_cfg::reserved
uint64_t reserved
Definition: rte_eth_ctrl.h:248
rte_eth_fdir_stats::f_remove
uint64_t f_remove
Definition: rte_eth_ctrl.h:664
RTE_ETH_FILTER_FLUSH
@ RTE_ETH_FILTER_FLUSH
Definition: rte_eth_ctrl.h:53
rte_eth_tunnel_flow::tunnel_type
enum rte_eth_fdir_tunnel_type tunnel_type
Definition: rte_eth_ctrl.h:439
rte_eth_ipv6_flow::src_ip
uint32_t src_ip[4]
Definition: rte_eth_ctrl.h:383
RTE_MACVLAN_PERFECT_MATCH
@ RTE_MACVLAN_PERFECT_MATCH
Definition: rte_eth_ctrl.h:66
rte_eth_fdir_filter::input
struct rte_eth_fdir_input input
Definition: rte_eth_ctrl.h:526
rte_eth_tcpv4_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:365
RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT
@ RTE_ETH_FDIR_FILTER_INPUT_SET_SELECT
Definition: rte_eth_ctrl.h:675
rte_eth_flex_payload_cfg::src_offset
uint16_t src_offset[RTE_ETH_FDIR_MAX_FLEXLEN]
Definition: rte_eth_ctrl.h:571
rte_flow.h
rte_eth_flex_payload_cfg
Definition: rte_eth_ctrl.h:569
rte_tunnel_iptype
rte_tunnel_iptype
Definition: rte_eth_ctrl.h:205
rte_eth_fdir_masks::src_port_mask
uint16_t src_port_mask
Definition: rte_eth_ctrl.h:541
rte_eth_hash_global_conf::hash_func
enum rte_eth_hash_function hash_func
Definition: rte_eth_ctrl.h:725
rte_eth_fdir_info::mode
enum rte_fdir_mode mode
Definition: rte_eth_ctrl.h:624
rte_eth_ethertype_filter::ether_type
uint16_t ether_type
Definition: rte_eth_ctrl.h:96
rte_eth_ipv4_flow
Definition: rte_eth_ctrl.h:343
RTE_ETH_FILTER_STATS
@ RTE_ETH_FILTER_STATS
Definition: rte_eth_ctrl.h:57
rte_eth_tunnel_flow::tunnel_id
uint32_t tunnel_id
Definition: rte_eth_ctrl.h:441
rte_eth_fdir_masks
Definition: rte_eth_ctrl.h:534
RTE_ETH_FILTER_NOP
@ RTE_ETH_FILTER_NOP
Definition: rte_eth_ctrl.h:49
rte_eth_fdir_flow_ext::is_vf
uint8_t is_vf
Definition: rte_eth_ctrl.h:470
RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT
@ RTE_ETH_HASH_FILTER_SYM_HASH_ENA_PER_PORT
Definition: rte_eth_ctrl.h:705
RTE_ETH_FDIR_REPORT_ID_FLEX_4
@ RTE_ETH_FDIR_REPORT_ID_FLEX_4
Definition: rte_eth_ctrl.h:501
rte_eth_fdir_flex_conf::nb_payloads
uint16_t nb_payloads
Definition: rte_eth_ctrl.h:593
rte_fdir_mode
rte_fdir_mode
Definition: rte_eth_ctrl.h:604
rte_eth_sctpv6_flow::ip
struct rte_eth_ipv6_flow ip
Definition: rte_eth_ctrl.h:412
rte_eth_sctpv4_flow::ip
struct rte_eth_ipv4_flow ip
Definition: rte_eth_ctrl.h:373
rte_common.h
rte_eth_syn_filter::queue
uint16_t queue
Definition: rte_eth_ctrl.h:128
rte_eth_fdir_input::flow_ext
struct rte_eth_fdir_flow_ext flow_ext
Definition: rte_eth_ctrl.h:481
rte_eth_ntuple_filter::dst_ip_mask
uint32_t dst_ip_mask
Definition: rte_eth_ctrl.h:163
rte_eth_hash_global_conf::sym_hash_enable_mask
uint64_t sym_hash_enable_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE]
Definition: rte_eth_ctrl.h:727
rte_eth_ipv4_flow::src_ip
uint32_t src_ip
Definition: rte_eth_ctrl.h:344
rte_eth_fdir_filter::soft_id
uint32_t soft_id
Definition: rte_eth_ctrl.h:524
rte_eth_fdir_filter_info::info_type
enum rte_eth_fdir_filter_info_type info_type
Definition: rte_eth_ctrl.h:684
rte_eth_hash_filter_info
Definition: rte_eth_ctrl.h:736
rte_eth_global_cfg::cfg_type
enum rte_eth_global_cfg_type cfg_type
Definition: rte_eth_ctrl.h:245
rte_eth_udpv4_flow
Definition: rte_eth_ctrl.h:354
rte_filter_input_set_op
rte_filter_input_set_op
Definition: rte_eth_ctrl.h:314
rte_eth_fdir_masks::dst_port_mask
uint16_t dst_port_mask
Definition: rte_eth_ctrl.h:543
rte_eth_fdir_stats::remove
uint64_t remove
Definition: rte_eth_ctrl.h:662
rte_eth_ethertype_filter::flags
uint16_t flags
Definition: rte_eth_ctrl.h:97
rte_eth_tunnel_filter_conf::ipv4_addr
uint32_t ipv4_addr
Definition: rte_eth_ctrl.h:222
rte_eth_tcpv6_flow
Definition: rte_eth_ctrl.h:402
rte_eth_tcpv6_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:404
rte_eth_input_set_conf
Definition: rte_eth_ctrl.h:326
RTE_ETH_INSET_SIZE_MAX
#define RTE_ETH_INSET_SIZE_MAX
Definition: rte_eth_ctrl.h:253
rte_eth_ntuple_filter::dst_ip
uint32_t dst_ip
Definition: rte_eth_ctrl.h:162
rte_eth_fdir_stats::collision
uint32_t collision
Definition: rte_eth_ctrl.h:655
rte_eth_fdir_info::guarant_spc
uint32_t guarant_spc
Definition: rte_eth_ctrl.h:628
rte_eth_fdir_action::flex_off
uint8_t flex_off
Definition: rte_eth_ctrl.h:512
rte_eth_ntuple_filter::dst_port_mask
uint16_t dst_port_mask
Definition: rte_eth_ctrl.h:167
RTE_TUNNEL_IPTYPE_IPV4
@ RTE_TUNNEL_IPTYPE_IPV4
Definition: rte_eth_ctrl.h:206
rte_eth_fdir_flow_ext::flexbytes
uint8_t flexbytes[RTE_ETH_FDIR_MAX_FLEXLEN]
Definition: rte_eth_ctrl.h:468
rte_eth_fdir_info::flex_conf
struct rte_eth_fdir_flex_conf flex_conf
Definition: rte_eth_ctrl.h:627
rte_filter_op
rte_filter_op
Definition: rte_eth_ctrl.h:47
rte_eth_sctpv6_flow::src_port
uint16_t src_port
Definition: rte_eth_ctrl.h:413
RTE_FDIR_MODE_PERFECT
@ RTE_FDIR_MODE_PERFECT
Definition: rte_eth_ctrl.h:607
rte_eth_hash_global_conf
Definition: rte_eth_ctrl.h:724
rte_eth_udpv4_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:357
rte_eth_tunnel_flow::mac_addr
struct rte_ether_addr mac_addr
Definition: rte_eth_ctrl.h:442
rte_eth_ipv4_flow::tos
uint8_t tos
Definition: rte_eth_ctrl.h:346
rte_eth_payload_type
rte_eth_payload_type
Definition: rte_eth_ctrl.h:556
RTE_ETH_INPUT_SET_ADD
@ RTE_ETH_INPUT_SET_ADD
Definition: rte_eth_ctrl.h:317
rte_ethdev.h
rte_eth_ipv6_flow::proto
uint8_t proto
Definition: rte_eth_ctrl.h:386
rte_eth_fdir_info::flex_payload_unit
uint32_t flex_payload_unit
Definition: rte_eth_ctrl.h:635
rte_eth_global_cfg_type
rte_eth_global_cfg_type
Definition: rte_eth_ctrl.h:235
RTE_ETH_FDIR_REPORT_ID
@ RTE_ETH_FDIR_REPORT_ID
Definition: rte_eth_ctrl.h:500
rte_eth_fdir_flex_mask
Definition: rte_eth_ctrl.h:582
rte_eth_fdir_filter_info::input_set_conf
struct rte_eth_input_set_conf input_set_conf
Definition: rte_eth_ctrl.h:688
rte_eth_fdir_flex_conf
Definition: rte_eth_ctrl.h:592
rte_eth_ipv6_flow::hop_limits
uint8_t hop_limits
Definition: rte_eth_ctrl.h:387
rte_eth_ntuple_filter::proto
uint8_t proto
Definition: rte_eth_ctrl.h:170
RTE_ETH_FDIR_MAX_FLEXLEN
#define RTE_ETH_FDIR_MAX_FLEXLEN
Definition: rte_eth_ctrl.h:252
rte_eth_sctpv4_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:375
rte_eth_l2_flow
Definition: rte_eth_ctrl.h:336
rte_eth_fdir_masks::vlan_tci_mask
uint16_t vlan_tci_mask
Definition: rte_eth_ctrl.h:535
rte_eth_sctpv6_flow
Definition: rte_eth_ctrl.h:411
rte_eth_fdir_masks::tunnel_type_mask
uint8_t tunnel_type_mask
Definition: rte_eth_ctrl.h:549
rte_eth_flex_filter
Definition: rte_eth_ctrl.h:111
rte_eth_tunnel_filter_conf::outer_mac
struct rte_ether_addr outer_mac
Definition: rte_eth_ctrl.h:214
rte_eth_l2_flow::ether_type
uint16_t ether_type
Definition: rte_eth_ctrl.h:337
rte_eth_fdir_masks::tunnel_id_mask
uint32_t tunnel_id_mask
Definition: rte_eth_ctrl.h:548
rte_eth_fdir_info::max_flex_payload_segment_num
uint32_t max_flex_payload_segment_num
Definition: rte_eth_ctrl.h:638
rte_eth_ipv6_flow::tc
uint8_t tc
Definition: rte_eth_ctrl.h:385
RTE_MAC_HASH_MATCH
@ RTE_MAC_HASH_MATCH
Definition: rte_eth_ctrl.h:67
rte_eth_tunnel_filter_conf::ip_type
enum rte_tunnel_iptype ip_type
Definition: rte_eth_ctrl.h:217
RTE_FDIR_MODE_PERFECT_MAC_VLAN
@ RTE_FDIR_MODE_PERFECT_MAC_VLAN
Definition: rte_eth_ctrl.h:608
rte_eth_ntuple_filter::proto_mask
uint8_t proto_mask
Definition: rte_eth_ctrl.h:171
rte_eth_hash_filter_info::info
union rte_eth_hash_filter_info::@134 info
rte_eth_fdir_masks::ipv4_mask
struct rte_eth_ipv4_flow ipv4_mask
Definition: rte_eth_ctrl.h:537
rte_eth_sctpv4_flow::verify_tag
uint32_t verify_tag
Definition: rte_eth_ctrl.h:376
rte_eth_ipv6_flow::dst_ip
uint32_t dst_ip[4]
Definition: rte_eth_ctrl.h:384
rte_eth_mac_vlan_flow::mac_addr
struct rte_ether_addr mac_addr
Definition: rte_eth_ctrl.h:422
rte_eth_hash_filter_info::input_set_conf
struct rte_eth_input_set_conf input_set_conf
Definition: rte_eth_ctrl.h:745
rte_eth_fdir_flex_conf::flex_set
struct rte_eth_flex_payload_cfg flex_set[RTE_ETH_PAYLOAD_MAX]
Definition: rte_eth_ctrl.h:595
RTE_ETH_INPUT_SET_SELECT
@ RTE_ETH_INPUT_SET_SELECT
Definition: rte_eth_ctrl.h:316
rte_ether_addr
Definition: rte_ether.h:60
RTE_MAC_PERFECT_MATCH
@ RTE_MAC_PERFECT_MATCH
Definition: rte_eth_ctrl.h:65
rte_eth_tcpv6_flow::dst_port
uint16_t dst_port
Definition: rte_eth_ctrl.h:405
RTE_FDIR_MODE_NONE
@ RTE_FDIR_MODE_NONE
Definition: rte_eth_ctrl.h:605
RTE_ETH_FDIR_REPORT_FLEX_8
@ RTE_ETH_FDIR_REPORT_FLEX_8
Definition: rte_eth_ctrl.h:502
rte_eth_flex_filter::bytes
uint8_t bytes[RTE_FLEX_FILTER_MAXLEN]
Definition: rte_eth_ctrl.h:113
RTE_ETH_FILTER_UPDATE
@ RTE_ETH_FILTER_UPDATE
Definition: rte_eth_ctrl.h:51
rte_eth_tcpv6_flow::ip
struct rte_eth_ipv6_flow ip
Definition: rte_eth_ctrl.h:403
RTE_ETH_FILTER_INFO
@ RTE_ETH_FILTER_INFO
Definition: rte_eth_ctrl.h:56
RTE_ETH_FILTER_ADD
@ RTE_ETH_FILTER_ADD
Definition: rte_eth_ctrl.h:50
rte_eth_fdir_stats::guarant_cnt
uint32_t guarant_cnt
Definition: rte_eth_ctrl.h:665
rte_eth_tcpv4_flow
Definition: rte_eth_ctrl.h:363
rte_eth_flex_filter::mask
uint8_t mask[RTE_FLEX_FILTER_MASK_SIZE]
Definition: rte_eth_ctrl.h:114
rte_mac_filter_type
rte_mac_filter_type
Definition: rte_eth_ctrl.h:64
rte_eth_tunnel_type
rte_eth_tunnel_type
Definition: rte_ethdev.h:965
RTE_ETH_HASH_FILTER_GLOBAL_CONFIG
@ RTE_ETH_HASH_FILTER_GLOBAL_CONFIG
Definition: rte_eth_ctrl.h:707
rte_eth_ntuple_filter::priority
uint16_t priority
Definition: rte_eth_ctrl.h:176
rte_eth_udpv4_flow::ip
struct rte_eth_ipv4_flow ip
Definition: rte_eth_ctrl.h:355
rte_eth_fdir_info::flex_bitmask_unit
uint32_t flex_bitmask_unit
Definition: rte_eth_ctrl.h:645
RTE_ETH_FILTER_SET
@ RTE_ETH_FILTER_SET
Definition: rte_eth_ctrl.h:55
rte_eth_global_cfg
Definition: rte_eth_ctrl.h:244
RTE_MACVLAN_HASH_MATCH
@ RTE_MACVLAN_HASH_MATCH
Definition: rte_eth_ctrl.h:69
rte_eth_ntuple_filter::queue
uint16_t queue
Definition: rte_eth_ctrl.h:178
rte_eth_fdir_flow_ext::dst_id
uint16_t dst_id
Definition: rte_eth_ctrl.h:471
rte_eth_fdir_filter_info
Definition: rte_eth_ctrl.h:683
rte_eth_ntuple_filter::src_ip_mask
uint32_t src_ip_mask
Definition: rte_eth_ctrl.h:165
rte_eth_flex_payload_cfg::type
enum rte_eth_payload_type type
Definition: rte_eth_ctrl.h:570
rte_eth_fdir_filter
Definition: rte_eth_ctrl.h:523
RTE_FLEX_FILTER_MAXLEN
#define RTE_FLEX_FILTER_MAXLEN
Definition: rte_eth_ctrl.h:101
RTE_ETH_FDIR_NO_REPORT_STATUS
@ RTE_ETH_FDIR_NO_REPORT_STATUS
Definition: rte_eth_ctrl.h:499
rte_eth_fdir_info::max_flex_bitmask_num
uint32_t max_flex_bitmask_num
Definition: rte_eth_ctrl.h:647
rte_eth_sctpv4_flow
Definition: rte_eth_ctrl.h:372
rte_eth_tunnel_filter_conf::tunnel_type
enum rte_eth_tunnel_type tunnel_type
Definition: rte_eth_ctrl.h:227
rte_eth_fdir_flex_conf::nb_flexmasks
uint16_t nb_flexmasks
Definition: rte_eth_ctrl.h:594