DPDK  18.11.11
rte_flow.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2016 6WIND S.A.
3  * Copyright 2016 Mellanox Technologies, Ltd
4  */
5 
6 #ifndef RTE_FLOW_H_
7 #define RTE_FLOW_H_
8 
17 #include <stddef.h>
18 #include <stdint.h>
19 
20 #include <rte_arp.h>
21 #include <rte_common.h>
22 #include <rte_ether.h>
23 #include <rte_eth_ctrl.h>
24 #include <rte_icmp.h>
25 #include <rte_ip.h>
26 #include <rte_sctp.h>
27 #include <rte_tcp.h>
28 #include <rte_udp.h>
29 #include <rte_byteorder.h>
30 #include <rte_esp.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
73 struct rte_flow_attr {
74  uint32_t group;
75  uint32_t priority;
76  uint32_t ingress:1;
77  uint32_t egress:1;
96  uint32_t transfer:1;
97  uint32_t reserved:29;
98 };
99 
126 
136 
146 
154 
164 
174 
184 
194 
201 
208 
215 
222 
229 
236 
243 
250 
257 
264 
271 
278 
285 
292 
304 
313 
322 
331 
338 
345 
352 
359 
366 
373 
380 
387 
394 
402 
410 
417 
425 };
426 
439  uint32_t num;
440 };
441 
443 #ifndef __cplusplus
445  .num = 0x00000000,
446 };
447 #endif
448 
468  uint32_t id;
469 };
470 
472 #ifndef __cplusplus
474  .id = 0x00000000,
475 };
476 #endif
477 
499  uint32_t index;
500 };
501 
503 #ifndef __cplusplus
505  .index = 0x00000000,
506 };
507 #endif
508 
525  uint32_t id;
526 };
527 
529 #ifndef __cplusplus
531  .id = 0xffffffff,
532 };
533 #endif
534 
554  uint32_t relative:1;
555  uint32_t search:1;
556  uint32_t reserved:30;
557  int32_t offset;
558  uint16_t limit;
559  uint16_t length;
560  const uint8_t *pattern;
561 };
562 
564 #ifndef __cplusplus
566  .relative = 1,
567  .search = 1,
568  .reserved = 0x3fffffff,
569  .offset = 0xffffffff,
570  .limit = 0xffff,
571  .length = 0xffff,
572  .pattern = NULL,
573 };
574 #endif
575 
588  struct ether_addr dst;
589  struct ether_addr src;
591 };
592 
594 #ifndef __cplusplus
596  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
597  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
598  .type = RTE_BE16(0x0000),
599 };
600 #endif
601 
614 };
615 
617 #ifndef __cplusplus
619  .tci = RTE_BE16(0x0fff),
620  .inner_type = RTE_BE16(0x0000),
621 };
622 #endif
623 
632  struct ipv4_hdr hdr;
633 };
634 
636 #ifndef __cplusplus
638  .hdr = {
639  .src_addr = RTE_BE32(0xffffffff),
640  .dst_addr = RTE_BE32(0xffffffff),
641  },
642 };
643 #endif
644 
654  struct ipv6_hdr hdr;
655 };
656 
658 #ifndef __cplusplus
660  .hdr = {
661  .src_addr =
662  "\xff\xff\xff\xff\xff\xff\xff\xff"
663  "\xff\xff\xff\xff\xff\xff\xff\xff",
664  .dst_addr =
665  "\xff\xff\xff\xff\xff\xff\xff\xff"
666  "\xff\xff\xff\xff\xff\xff\xff\xff",
667  },
668 };
669 #endif
670 
677  struct icmp_hdr hdr;
678 };
679 
681 #ifndef __cplusplus
683  .hdr = {
684  .icmp_type = 0xff,
685  .icmp_code = 0xff,
686  },
687 };
688 #endif
689 
696  struct udp_hdr hdr;
697 };
698 
700 #ifndef __cplusplus
702  .hdr = {
703  .src_port = RTE_BE16(0xffff),
704  .dst_port = RTE_BE16(0xffff),
705  },
706 };
707 #endif
708 
715  struct tcp_hdr hdr;
716 };
717 
719 #ifndef __cplusplus
721  .hdr = {
722  .src_port = RTE_BE16(0xffff),
723  .dst_port = RTE_BE16(0xffff),
724  },
725 };
726 #endif
727 
734  struct sctp_hdr hdr;
735 };
736 
738 #ifndef __cplusplus
740  .hdr = {
741  .src_port = RTE_BE16(0xffff),
742  .dst_port = RTE_BE16(0xffff),
743  },
744 };
745 #endif
746 
753  uint8_t flags;
754  uint8_t rsvd0[3];
755  uint8_t vni[3];
756  uint8_t rsvd1;
757 };
758 
760 #ifndef __cplusplus
762  .vni = "\xff\xff\xff",
763 };
764 #endif
765 
782  uint8_t in_ecid_e;
783  uint8_t ecid_e;
785 };
786 
788 #ifndef __cplusplus
790  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
791 };
792 #endif
793 
808  uint8_t tni[3];
809  uint8_t flow_id;
810 };
811 
813 #ifndef __cplusplus
815  .tni = "\xff\xff\xff",
816 };
817 #endif
818 
828  uint8_t label_tc_s[3];
829  uint8_t ttl;
830 };
831 
833 #ifndef __cplusplus
835  .label_tc_s = "\xff\xff\xf0",
836 };
837 #endif
838 
851 };
852 
854 #ifndef __cplusplus
856  .protocol = RTE_BE16(0xffff),
857 };
858 #endif
859 
878  uint32_t thresh;
879 };
880 
882 #ifndef __cplusplus
884  .thresh = 0xffffffff,
885 };
886 #endif
887 
900  uint8_t v_pt_rsv_flags;
901  uint8_t msg_type;
904 };
905 
907 #ifndef __cplusplus
909  .teid = RTE_BE32(0xffffffff),
910 };
911 #endif
912 
919  struct esp_hdr hdr;
920 };
921 
923 #ifndef __cplusplus
925  .hdr = {
926  .spi = RTE_BE32(0xffffffff),
927  },
928 };
929 #endif
930 
943  uint8_t vni[3];
944  uint8_t rsvd1;
945 };
946 
948 #ifndef __cplusplus
950  .vni = "\xff\xff\xff",
951 };
952 #endif
953 
960  uint8_t flags;
961  uint8_t rsvd0[2];
962  uint8_t protocol;
963  uint8_t vni[3];
964  uint8_t rsvd1;
965 };
966 
968 #ifndef __cplusplus
970  .vni = "\xff\xff\xff",
971 };
972 #endif
973 
982  uint8_t hln;
983  uint8_t pln;
985  struct ether_addr sha;
987  struct ether_addr tha;
989 };
990 
992 #ifndef __cplusplus
993 static const struct rte_flow_item_arp_eth_ipv4
995  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
996  .spa = RTE_BE32(0xffffffff),
997  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
998  .tpa = RTE_BE32(0xffffffff),
999 };
1000 #endif
1001 
1013  uint8_t next_hdr;
1014 };
1015 
1017 #ifndef __cplusplus
1018 static const
1020  .next_hdr = 0xff,
1021 };
1022 #endif
1023 
1030  uint8_t type;
1031  uint8_t code;
1032  uint16_t checksum;
1033 };
1034 
1036 #ifndef __cplusplus
1038  .type = 0xff,
1039  .code = 0xff,
1040 };
1041 #endif
1042 
1049  uint8_t type;
1050  uint8_t code;
1053  uint8_t target_addr[16];
1054 };
1055 
1057 #ifndef __cplusplus
1058 static const
1060  .target_addr =
1061  "\xff\xff\xff\xff\xff\xff\xff\xff"
1062  "\xff\xff\xff\xff\xff\xff\xff\xff",
1063 };
1064 #endif
1065 
1072  uint8_t type;
1073  uint8_t code;
1080  uint8_t target_addr[16];
1081 };
1082 
1084 #ifndef __cplusplus
1085 static const
1087  .target_addr =
1088  "\xff\xff\xff\xff\xff\xff\xff\xff"
1089  "\xff\xff\xff\xff\xff\xff\xff\xff",
1090 };
1091 #endif
1092 
1105  uint8_t type;
1106  uint8_t length;
1107 };
1108 
1110 #ifndef __cplusplus
1111 static const struct rte_flow_item_icmp6_nd_opt
1113  .type = 0xff,
1114 };
1115 #endif
1116 
1129  uint8_t type;
1130  uint8_t length;
1131  struct ether_addr sla;
1132 };
1133 
1135 #ifndef __cplusplus
1136 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1138  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1139 };
1140 #endif
1141 
1154  uint8_t type;
1155  uint8_t length;
1156  struct ether_addr tla;
1157 };
1158 
1160 #ifndef __cplusplus
1161 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1163  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1164 };
1165 #endif
1166 
1173  rte_be32_t data;
1174 };
1175 
1177 #ifndef __cplusplus
1179  .data = RTE_BE32(UINT32_MAX),
1180 };
1181 #endif
1182 
1202  uint32_t id;
1203 };
1204 
1240  const void *spec;
1241  const void *last;
1242  const void *mask;
1243 };
1244 
1278 
1286 
1294 
1303 
1311 
1319 
1326 
1335 
1345 
1354 
1362 
1370 
1378 
1385 
1393 
1401 
1409 
1417 
1425 
1433 
1442 
1451 
1459 
1467 
1475 
1483 
1491 
1499 
1507 
1516 
1524 
1533 
1540 
1547 
1557 
1567 
1577 
1587 
1598 
1609 
1620 
1627 
1634 
1644 
1654 };
1655 
1667  uint32_t id;
1668 };
1669 
1683  uint32_t group;
1684 };
1685 
1692  uint16_t index;
1693 };
1694 
1695 
1722  uint32_t shared:1;
1723  uint32_t reserved:31;
1724  uint32_t id;
1725 };
1726 
1733  uint32_t reset:1;
1734  uint32_t hits_set:1;
1735  uint32_t bytes_set:1;
1736  uint32_t reserved:29;
1737  uint64_t hits;
1738  uint64_t bytes;
1739 };
1740 
1784  uint32_t level;
1785  uint64_t types;
1786  uint32_t key_len;
1787  uint32_t queue_num;
1788  const uint8_t *key;
1789  const uint16_t *queue;
1790 };
1791 
1805  uint32_t original:1;
1806  uint32_t reserved:31;
1807  uint32_t id;
1808 };
1809 
1819  uint32_t original:1;
1820  uint32_t reserved:31;
1821  uint32_t index;
1822 };
1823 
1832  uint32_t original:1;
1833  uint32_t reserved:31;
1834  uint32_t id;
1835 };
1836 
1846  uint32_t mtr_id;
1847 };
1848 
1876 };
1877 
1885  uint8_t mpls_ttl;
1886 };
1887 
1895  uint8_t nw_ttl;
1896 };
1897 
1906 };
1907 
1916 };
1917 
1925  uint8_t vlan_pcp;
1926 };
1927 
1936 };
1937 
1946 };
1947 
1981 };
1982 
2015 };
2016 
2037  uint8_t *data;
2038  uint8_t *preserve;
2039  size_t size;
2040 };
2041 
2058  uint8_t *data;
2059  size_t size;
2060 };
2061 
2074  rte_be32_t ipv4_addr;
2075 };
2076 
2089  uint8_t ipv6_addr[16];
2090 };
2091 
2104  rte_be16_t port;
2105 };
2106 
2113  uint8_t ttl_value;
2114 };
2115 
2122  uint8_t mac_addr[ETHER_ADDR_LEN];
2123 };
2124 
2125 /*
2126  * Definition of a single action.
2127  *
2128  * A list of actions is terminated by a END action.
2129  *
2130  * For simple actions without a configuration structure, conf remains NULL.
2131  */
2132 struct rte_flow_action {
2133  enum rte_flow_action_type type;
2134  const void *conf;
2135 };
2136 
2143 struct rte_flow;
2144 
2169 };
2170 
2184  const void *cause;
2185  const char *message;
2186 };
2187 
2198  union {
2199  const struct rte_flow_attr *attr_ro;
2201  };
2202  union {
2203  const struct rte_flow_item *pattern_ro;
2205  };
2206  union {
2207  const struct rte_flow_action *actions_ro;
2208  struct rte_flow_action *actions;
2209  };
2210 };
2211 
2224 
2236 
2248 
2260 
2273 
2286 
2299 
2313 
2327 
2341 
2355 };
2356 
2409 int
2410 rte_flow_validate(uint16_t port_id,
2411  const struct rte_flow_attr *attr,
2412  const struct rte_flow_item pattern[],
2413  const struct rte_flow_action actions[],
2414  struct rte_flow_error *error);
2415 
2436 struct rte_flow *
2437 rte_flow_create(uint16_t port_id,
2438  const struct rte_flow_attr *attr,
2439  const struct rte_flow_item pattern[],
2440  const struct rte_flow_action actions[],
2441  struct rte_flow_error *error);
2442 
2463 int
2464 rte_flow_destroy(uint16_t port_id,
2465  struct rte_flow *flow,
2466  struct rte_flow_error *error);
2467 
2484 int
2485 rte_flow_flush(uint16_t port_id,
2486  struct rte_flow_error *error);
2487 
2512 int
2513 rte_flow_query(uint16_t port_id,
2514  struct rte_flow *flow,
2515  const struct rte_flow_action *action,
2516  void *data,
2517  struct rte_flow_error *error);
2518 
2560 int
2561 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
2562 
2580 int
2581 rte_flow_error_set(struct rte_flow_error *error,
2582  int code,
2583  enum rte_flow_error_type type,
2584  const void *cause,
2585  const char *message);
2586 
2592  size_t size;
2595  struct rte_flow_action *actions;
2596  uint8_t data[];
2597 };
2598 
2625 __rte_deprecated
2626 size_t
2627 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
2628  const struct rte_flow_attr *attr,
2629  const struct rte_flow_item *items,
2630  const struct rte_flow_action *actions);
2631 
2672 __rte_experimental
2673 int
2675  void *dst,
2676  size_t size,
2677  const void *src,
2678  struct rte_flow_error *error);
2679 
2680 #ifdef __cplusplus
2681 }
2682 #endif
2683 
2684 #endif /* RTE_FLOW_H_ */
uint32_t reserved
Definition: rte_flow.h:97
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1137
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:849
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:941
int rte_flow_validate(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
struct rte_flow_action * actions
Definition: rte_flow.h:2208
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1086
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:659
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:779
rte_be16_t protocol
Definition: rte_flow.h:942
uint32_t num
Definition: rte_flow.h:439
struct rte_flow_attr * attr
Definition: rte_flow.h:2200
uint32_t rte_be32_t
uint32_t src_addr
Definition: rte_ip.h:42
uint32_t original
Definition: rte_flow.h:1805
struct ether_addr src
Definition: rte_flow.h:589
int rte_flow_query(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action *action, void *data, struct rte_flow_error *error)
uint32_t group
Definition: rte_flow.h:74
struct rte_flow_item * definition
Definition: rte_flow.h:1980
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:855
struct rte_flow_attr attr
Definition: rte_flow.h:2593
rte_be16_t msg_len
Definition: rte_flow.h:902
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:908
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:682
struct tcp_hdr hdr
Definition: rte_flow.h:715
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:949
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2199
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:739
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:444
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1178
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:924
struct sctp_hdr hdr
Definition: rte_flow.h:734
__rte_deprecated size_t rte_flow_copy(struct rte_flow_desc *fd, size_t len, const struct rte_flow_attr *attr, const struct rte_flow_item *items, const struct rte_flow_action *actions)
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:900
rte_be16_t protocol
Definition: rte_flow.h:807
uint32_t reserved
Definition: rte_flow.h:556
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1037
struct rte_flow_action * actions
Definition: rte_flow.h:2595
uint8_t data[]
Definition: rte_flow.h:2596
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1112
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:504
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:761
rte_eth_hash_function
Definition: rte_eth_ctrl.h:770
struct udp_hdr hdr
Definition: rte_flow.h:696
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:530
struct icmp_hdr hdr
Definition: rte_flow.h:677
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:814
rte_be32_t spi
Definition: rte_esp.h:24
const void * mask
Definition: rte_flow.h:1242
struct rte_flow_item * pattern
Definition: rte_flow.h:2204
enum rte_eth_hash_function func
Definition: rte_flow.h:1758
rte_be16_t type
Definition: rte_flow.h:590
enum rte_flow_error_type type
Definition: rte_flow.h:2183
const void * cause
Definition: rte_flow.h:2184
struct ether_addr sha
Definition: rte_flow.h:985
struct ipv6_hdr hdr
Definition: rte_flow.h:654
uint16_t src_port
Definition: rte_sctp.h:27
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:701
rte_flow_error_type
Definition: rte_flow.h:2151
rte_flow_conv_op
Definition: rte_flow.h:2217
uint32_t id
Definition: rte_flow.h:468
const uint8_t * pattern
Definition: rte_flow.h:560
uint32_t search
Definition: rte_flow.h:555
uint8_t addr_bytes[ETHER_ADDR_LEN]
Definition: rte_ether.h:58
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:781
uint8_t src_addr[16]
Definition: rte_ip.h:364
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:565
uint16_t limit
Definition: rte_flow.h:558
uint8_t vni[3]
Definition: rte_flow.h:943
#define ETHER_ADDR_LEN
Definition: rte_ether.h:26
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:834
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
Definition: rte_flow.h:1059
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
const char * message
Definition: rte_flow.h:2185
uint16_t length
Definition: rte_flow.h:559
const void * last
Definition: rte_flow.h:1241
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1162
rte_be32_t teid
Definition: rte_flow.h:903
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
uint32_t ingress
Definition: rte_flow.h:76
enum rte_flow_item_type type
Definition: rte_flow.h:1239
rte_be16_t tci
Definition: rte_flow.h:612
struct ipv4_hdr hdr
Definition: rte_flow.h:632
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:637
size_t size
Definition: rte_flow.h:2592
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:806
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2207
struct rte_flow_item * items
Definition: rte_flow.h:2594
rte_flow_action_type
Definition: rte_flow.h:1270
struct rte_flow * rte_flow_create(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
const void * spec
Definition: rte_flow.h:1240
uint8_t label_tc_s[3]
Definition: rte_flow.h:828
#define RTE_STD_C11
Definition: rte_common.h:37
const uint8_t * key
Definition: rte_flow.h:1788
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:994
uint16_t src_port
Definition: rte_udp.h:27
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:595
struct esp_hdr hdr
Definition: rte_flow.h:919
uint16_t rte_be16_t
__rte_experimental int rte_flow_conv(enum rte_flow_conv_op op, void *dst, size_t size, const void *src, struct rte_flow_error *error)
uint16_t src_port
Definition: rte_tcp.h:27
struct ether_addr dst
Definition: rte_flow.h:588
uint32_t reserved
Definition: rte_flow.h:1806
uint32_t priority
Definition: rte_flow.h:75
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1019
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:473
rte_be16_t protocol
Definition: rte_flow.h:850
uint32_t queue_num
Definition: rte_flow.h:1787
uint8_t tni[3]
Definition: rte_flow.h:808
struct ether_addr tha
Definition: rte_flow.h:987
uint32_t transfer
Definition: rte_flow.h:96
struct rte_flow_item * definition
Definition: rte_flow.h:2014
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:618
uint8_t msg_type
Definition: rte_flow.h:901
uint32_t egress
Definition: rte_flow.h:77
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:789
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:720
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:883
rte_be16_t inner_type
Definition: rte_flow.h:613
uint8_t rsvd0[3]
Definition: rte_flow.h:754
const uint16_t * queue
Definition: rte_flow.h:1789
rte_flow_item_type
Definition: rte_flow.h:116
uint32_t relative
Definition: rte_flow.h:554
uint8_t vni[3]
Definition: rte_flow.h:755
int32_t offset
Definition: rte_flow.h:557
rte_be16_t inner_type
Definition: rte_flow.h:784
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2203
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:969