DPDK  19.08.2
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_icmp.h>
24 #include <rte_ip.h>
25 #include <rte_sctp.h>
26 #include <rte_tcp.h>
27 #include <rte_udp.h>
28 #include <rte_byteorder.h>
29 #include <rte_esp.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
72 struct rte_flow_attr {
73  uint32_t group;
74  uint32_t priority;
75  uint32_t ingress:1;
76  uint32_t egress:1;
95  uint32_t transfer:1;
96  uint32_t reserved:29;
97 };
98 
125 
135 
145 
153 
163 
173 
183 
193 
200 
207 
214 
221 
228 
235 
242 
249 
256 
263 
270 
277 
284 
291 
303 
312 
321 
330 
337 
344 
351 
358 
365 
372 
379 
386 
393 
401 
409 
416 
424 
437 };
438 
451  uint32_t num;
452 };
453 
455 #ifndef __cplusplus
457  .num = 0x00000000,
458 };
459 #endif
460 
480  uint32_t id;
481 };
482 
484 #ifndef __cplusplus
486  .id = 0x00000000,
487 };
488 #endif
489 
511  uint32_t index;
512 };
513 
515 #ifndef __cplusplus
517  .index = 0x00000000,
518 };
519 #endif
520 
537  uint32_t id;
538 };
539 
541 #ifndef __cplusplus
543  .id = 0xffffffff,
544 };
545 #endif
546 
566  uint32_t relative:1;
567  uint32_t search:1;
568  uint32_t reserved:30;
569  int32_t offset;
570  uint16_t limit;
571  uint16_t length;
572  const uint8_t *pattern;
573 };
574 
576 #ifndef __cplusplus
578  .relative = 1,
579  .search = 1,
580  .reserved = 0x3fffffff,
581  .offset = 0xffffffff,
582  .limit = 0xffff,
583  .length = 0xffff,
584  .pattern = NULL,
585 };
586 #endif
587 
603 };
604 
606 #ifndef __cplusplus
608  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
609  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
610  .type = RTE_BE16(0x0000),
611 };
612 #endif
613 
626 };
627 
629 #ifndef __cplusplus
631  .tci = RTE_BE16(0x0fff),
632  .inner_type = RTE_BE16(0x0000),
633 };
634 #endif
635 
644  struct rte_ipv4_hdr hdr;
645 };
646 
648 #ifndef __cplusplus
650  .hdr = {
651  .src_addr = RTE_BE32(0xffffffff),
652  .dst_addr = RTE_BE32(0xffffffff),
653  },
654 };
655 #endif
656 
666  struct rte_ipv6_hdr hdr;
667 };
668 
670 #ifndef __cplusplus
672  .hdr = {
673  .src_addr =
674  "\xff\xff\xff\xff\xff\xff\xff\xff"
675  "\xff\xff\xff\xff\xff\xff\xff\xff",
676  .dst_addr =
677  "\xff\xff\xff\xff\xff\xff\xff\xff"
678  "\xff\xff\xff\xff\xff\xff\xff\xff",
679  },
680 };
681 #endif
682 
689  struct rte_icmp_hdr hdr;
690 };
691 
693 #ifndef __cplusplus
695  .hdr = {
696  .icmp_type = 0xff,
697  .icmp_code = 0xff,
698  },
699 };
700 #endif
701 
708  struct rte_udp_hdr hdr;
709 };
710 
712 #ifndef __cplusplus
714  .hdr = {
715  .src_port = RTE_BE16(0xffff),
716  .dst_port = RTE_BE16(0xffff),
717  },
718 };
719 #endif
720 
727  struct rte_tcp_hdr hdr;
728 };
729 
731 #ifndef __cplusplus
733  .hdr = {
734  .src_port = RTE_BE16(0xffff),
735  .dst_port = RTE_BE16(0xffff),
736  },
737 };
738 #endif
739 
746  struct rte_sctp_hdr hdr;
747 };
748 
750 #ifndef __cplusplus
752  .hdr = {
753  .src_port = RTE_BE16(0xffff),
754  .dst_port = RTE_BE16(0xffff),
755  },
756 };
757 #endif
758 
765  uint8_t flags;
766  uint8_t rsvd0[3];
767  uint8_t vni[3];
768  uint8_t rsvd1;
769 };
770 
772 #ifndef __cplusplus
774  .vni = "\xff\xff\xff",
775 };
776 #endif
777 
794  uint8_t in_ecid_e;
795  uint8_t ecid_e;
797 };
798 
800 #ifndef __cplusplus
802  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
803 };
804 #endif
805 
820  uint8_t tni[3];
821  uint8_t flow_id;
822 };
823 
825 #ifndef __cplusplus
827  .tni = "\xff\xff\xff",
828 };
829 #endif
830 
840  uint8_t label_tc_s[3];
841  uint8_t ttl;
842 };
843 
845 #ifndef __cplusplus
847  .label_tc_s = "\xff\xff\xf0",
848 };
849 #endif
850 
863 };
864 
866 #ifndef __cplusplus
868  .protocol = RTE_BE16(0xffff),
869 };
870 #endif
871 
890  uint32_t thresh;
891 };
892 
894 #ifndef __cplusplus
896  .thresh = 0xffffffff,
897 };
898 #endif
899 
912  uint8_t v_pt_rsv_flags;
913  uint8_t msg_type;
916 };
917 
919 #ifndef __cplusplus
921  .teid = RTE_BE32(0xffffffff),
922 };
923 #endif
924 
931  struct rte_esp_hdr hdr;
932 };
933 
935 #ifndef __cplusplus
937  .hdr = {
938  .spi = 0xffffffff,
939  },
940 };
941 #endif
942 
955  uint8_t vni[3];
956  uint8_t rsvd1;
957 };
958 
960 #ifndef __cplusplus
962  .vni = "\xff\xff\xff",
963 };
964 #endif
965 
972  uint8_t flags;
973  uint8_t rsvd0[2];
974  uint8_t protocol;
975  uint8_t vni[3];
976  uint8_t rsvd1;
977 };
978 
980 #ifndef __cplusplus
982  .vni = "\xff\xff\xff",
983 };
984 #endif
985 
994  uint8_t hln;
995  uint8_t pln;
1001 };
1002 
1004 #ifndef __cplusplus
1005 static const struct rte_flow_item_arp_eth_ipv4
1007  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1008  .spa = RTE_BE32(0xffffffff),
1009  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1010  .tpa = RTE_BE32(0xffffffff),
1011 };
1012 #endif
1013 
1025  uint8_t next_hdr;
1026 };
1027 
1029 #ifndef __cplusplus
1030 static const
1032  .next_hdr = 0xff,
1033 };
1034 #endif
1035 
1042  uint8_t type;
1043  uint8_t code;
1044  uint16_t checksum;
1045 };
1046 
1048 #ifndef __cplusplus
1050  .type = 0xff,
1051  .code = 0xff,
1052 };
1053 #endif
1054 
1061  uint8_t type;
1062  uint8_t code;
1065  uint8_t target_addr[16];
1066 };
1067 
1069 #ifndef __cplusplus
1070 static const
1072  .target_addr =
1073  "\xff\xff\xff\xff\xff\xff\xff\xff"
1074  "\xff\xff\xff\xff\xff\xff\xff\xff",
1075 };
1076 #endif
1077 
1084  uint8_t type;
1085  uint8_t code;
1092  uint8_t target_addr[16];
1093 };
1094 
1096 #ifndef __cplusplus
1097 static const
1099  .target_addr =
1100  "\xff\xff\xff\xff\xff\xff\xff\xff"
1101  "\xff\xff\xff\xff\xff\xff\xff\xff",
1102 };
1103 #endif
1104 
1117  uint8_t type;
1118  uint8_t length;
1119 };
1120 
1122 #ifndef __cplusplus
1123 static const struct rte_flow_item_icmp6_nd_opt
1125  .type = 0xff,
1126 };
1127 #endif
1128 
1141  uint8_t type;
1142  uint8_t length;
1144 };
1145 
1147 #ifndef __cplusplus
1148 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1150  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1151 };
1152 #endif
1153 
1166  uint8_t type;
1167  uint8_t length;
1169 };
1170 
1172 #ifndef __cplusplus
1173 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1175  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1176 };
1177 #endif
1178 
1185  rte_be32_t data;
1186 };
1187 
1189 #ifndef __cplusplus
1191  .data = RTE_BE32(UINT32_MAX),
1192 };
1193 #endif
1194 
1214  uint32_t id;
1215 };
1216 
1252  const void *spec;
1253  const void *last;
1254  const void *mask;
1255 };
1256 
1291 
1299 
1307 
1316 
1324 
1332 
1339 
1348 
1358 
1367 
1375 
1383 
1391 
1398 
1406 
1414 
1422 
1430 
1438 
1446 
1455 
1464 
1472 
1480 
1488 
1496 
1504 
1512 
1520 
1529 
1537 
1546 
1553 
1560 
1570 
1580 
1590 
1600 
1611 
1622 
1633 
1640 
1647 
1657 
1667 
1681 
1695 
1709 
1723 };
1724 
1736  uint32_t id;
1737 };
1738 
1752  uint32_t group;
1753 };
1754 
1761  uint16_t index;
1762 };
1763 
1764 
1791  uint32_t shared:1;
1792  uint32_t reserved:31;
1793  uint32_t id;
1794 };
1795 
1802  uint32_t reset:1;
1803  uint32_t hits_set:1;
1804  uint32_t bytes_set:1;
1805  uint32_t reserved:29;
1806  uint64_t hits;
1807  uint64_t bytes;
1808 };
1809 
1814  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
1817  RTE_ETH_HASH_FUNCTION_MAX,
1818 };
1819 
1863  uint32_t level;
1864  uint64_t types;
1865  uint32_t key_len;
1866  uint32_t queue_num;
1867  const uint8_t *key;
1868  const uint16_t *queue;
1869 };
1870 
1884  uint32_t original:1;
1885  uint32_t reserved:31;
1886  uint32_t id;
1887 };
1888 
1898  uint32_t original:1;
1899  uint32_t reserved:31;
1900  uint32_t index;
1901 };
1902 
1911  uint32_t original:1;
1912  uint32_t reserved:31;
1913  uint32_t id;
1914 };
1915 
1925  uint32_t mtr_id;
1926 };
1927 
1955 };
1956 
1964  uint8_t mpls_ttl;
1965 };
1966 
1974  uint8_t nw_ttl;
1975 };
1976 
1985 };
1986 
1995 };
1996 
2004  uint8_t vlan_pcp;
2005 };
2006 
2015 };
2016 
2025 };
2026 
2060 };
2061 
2094 };
2095 
2116  uint8_t *data;
2117  uint8_t *preserve;
2118  size_t size;
2119 };
2120 
2137  uint8_t *data;
2138  size_t size;
2139 };
2140 
2153  rte_be32_t ipv4_addr;
2154 };
2155 
2168  uint8_t ipv6_addr[16];
2169 };
2170 
2183  rte_be16_t port;
2184 };
2185 
2192  uint8_t ttl_value;
2193 };
2194 
2201  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
2202 };
2203 
2204 /*
2205  * Definition of a single action.
2206  *
2207  * A list of actions is terminated by a END action.
2208  *
2209  * For simple actions without a configuration object, conf remains NULL.
2210  */
2211 struct rte_flow_action {
2212  enum rte_flow_action_type type;
2213  const void *conf;
2214 };
2215 
2222 struct rte_flow;
2223 
2248 };
2249 
2263  const void *cause;
2264  const char *message;
2265 };
2266 
2277  union {
2278  const struct rte_flow_attr *attr_ro;
2280  };
2281  union {
2282  const struct rte_flow_item *pattern_ro;
2284  };
2285  union {
2286  const struct rte_flow_action *actions_ro;
2287  struct rte_flow_action *actions;
2288  };
2289 };
2290 
2303 
2315 
2327 
2339 
2352 
2365 
2378 
2392 
2406 
2420 
2434 };
2435 
2488 int
2489 rte_flow_validate(uint16_t port_id,
2490  const struct rte_flow_attr *attr,
2491  const struct rte_flow_item pattern[],
2492  const struct rte_flow_action actions[],
2493  struct rte_flow_error *error);
2494 
2515 struct rte_flow *
2516 rte_flow_create(uint16_t port_id,
2517  const struct rte_flow_attr *attr,
2518  const struct rte_flow_item pattern[],
2519  const struct rte_flow_action actions[],
2520  struct rte_flow_error *error);
2521 
2542 int
2543 rte_flow_destroy(uint16_t port_id,
2544  struct rte_flow *flow,
2545  struct rte_flow_error *error);
2546 
2563 int
2564 rte_flow_flush(uint16_t port_id,
2565  struct rte_flow_error *error);
2566 
2591 int
2592 rte_flow_query(uint16_t port_id,
2593  struct rte_flow *flow,
2594  const struct rte_flow_action *action,
2595  void *data,
2596  struct rte_flow_error *error);
2597 
2639 int
2640 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
2641 
2659 int
2660 rte_flow_error_set(struct rte_flow_error *error,
2661  int code,
2662  enum rte_flow_error_type type,
2663  const void *cause,
2664  const char *message);
2665 
2671  size_t size;
2674  struct rte_flow_action *actions;
2675  uint8_t data[];
2676 };
2677 
2704 __rte_deprecated
2705 size_t
2706 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
2707  const struct rte_flow_attr *attr,
2708  const struct rte_flow_item *items,
2709  const struct rte_flow_action *actions);
2710 
2751 __rte_experimental
2752 int
2754  void *dst,
2755  size_t size,
2756  const void *src,
2757  struct rte_flow_error *error);
2758 
2759 #ifdef __cplusplus
2760 }
2761 #endif
2762 
2763 #endif /* RTE_FLOW_H_ */
uint32_t reserved
Definition: rte_flow.h:96
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1149
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:861
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:953
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:2287
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1098
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:671
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:791
rte_be16_t protocol
Definition: rte_flow.h:954
uint32_t num
Definition: rte_flow.h:451
struct rte_flow_attr * attr
Definition: rte_flow.h:2279
uint32_t rte_be32_t
uint32_t original
Definition: rte_flow.h:1884
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:73
struct rte_flow_item * definition
Definition: rte_flow.h:2059
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:867
struct rte_flow_attr attr
Definition: rte_flow.h:2672
rte_be16_t msg_len
Definition: rte_flow.h:914
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:920
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:694
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:26
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:961
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2278
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:751
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:456
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1190
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:936
struct rte_icmp_hdr hdr
Definition: rte_flow.h:689
__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:912
struct rte_ether_addr tla
Definition: rte_flow.h:1168
rte_be16_t protocol
Definition: rte_flow.h:819
uint32_t reserved
Definition: rte_flow.h:568
rte_be32_t spi
Definition: rte_esp.h:24
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1049
struct rte_flow_action * actions
Definition: rte_flow.h:2674
uint8_t data[]
Definition: rte_flow.h:2675
struct rte_ether_addr tha
Definition: rte_flow.h:999
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:644
uint16_t src_port
Definition: rte_sctp.h:27
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1124
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:516
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:773
uint8_t src_addr[16]
Definition: rte_ip.h:363
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:542
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:826
const void * mask
Definition: rte_flow.h:1254
struct rte_flow_item * pattern
Definition: rte_flow.h:2283
enum rte_eth_hash_function func
Definition: rte_flow.h:1837
rte_be16_t type
Definition: rte_flow.h:602
enum rte_flow_error_type type
Definition: rte_flow.h:2262
const void * cause
Definition: rte_flow.h:2263
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:713
struct rte_esp_hdr hdr
Definition: rte_flow.h:931
rte_flow_error_type
Definition: rte_flow.h:2230
rte_flow_conv_op
Definition: rte_flow.h:2296
uint32_t id
Definition: rte_flow.h:480
const uint8_t * pattern
Definition: rte_flow.h:572
uint32_t search
Definition: rte_flow.h:567
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:793
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:577
uint16_t limit
Definition: rte_flow.h:570
uint8_t vni[3]
Definition: rte_flow.h:955
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:846
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
Definition: rte_flow.h:1071
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:2264
rte_eth_hash_function
Definition: rte_flow.h:1813
uint16_t length
Definition: rte_flow.h:571
const void * last
Definition: rte_flow.h:1253
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1174
rte_be32_t teid
Definition: rte_flow.h:915
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
uint32_t ingress
Definition: rte_flow.h:75
enum rte_flow_item_type type
Definition: rte_flow.h:1251
rte_be16_t tci
Definition: rte_flow.h:624
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:649
size_t size
Definition: rte_flow.h:2671
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:818
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2286
struct rte_flow_item * items
Definition: rte_flow.h:2673
rte_flow_action_type
Definition: rte_flow.h:1283
struct rte_ether_addr sla
Definition: rte_flow.h:1143
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)
struct rte_ether_addr dst
Definition: rte_flow.h:600
const void * spec
Definition: rte_flow.h:1252
uint8_t label_tc_s[3]
Definition: rte_flow.h:840
uint16_t src_port
Definition: rte_udp.h:27
#define RTE_STD_C11
Definition: rte_common.h:40
const uint8_t * key
Definition: rte_flow.h:1867
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1006
uint16_t src_port
Definition: rte_tcp.h:27
struct rte_ether_addr sha
Definition: rte_flow.h:997
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:607
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)
uint32_t reserved
Definition: rte_flow.h:1885
uint32_t priority
Definition: rte_flow.h:74
struct rte_ether_addr src
Definition: rte_flow.h:601
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1031
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:485
uint32_t src_addr
Definition: rte_ip.h:42
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:666
rte_be16_t protocol
Definition: rte_flow.h:862
uint32_t queue_num
Definition: rte_flow.h:1866
uint8_t tni[3]
Definition: rte_flow.h:820
struct rte_tcp_hdr hdr
Definition: rte_flow.h:727
uint32_t transfer
Definition: rte_flow.h:95
struct rte_flow_item * definition
Definition: rte_flow.h:2093
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:630
uint8_t msg_type
Definition: rte_flow.h:913
uint32_t egress
Definition: rte_flow.h:76
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:801
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:732
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:895
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:61
rte_be16_t inner_type
Definition: rte_flow.h:625
uint8_t rsvd0[3]
Definition: rte_flow.h:766
struct rte_udp_hdr hdr
Definition: rte_flow.h:708
const uint16_t * queue
Definition: rte_flow.h:1868
rte_flow_item_type
Definition: rte_flow.h:115
uint32_t relative
Definition: rte_flow.h:566
uint8_t vni[3]
Definition: rte_flow.h:767
int32_t offset
Definition: rte_flow.h:569
rte_be16_t inner_type
Definition: rte_flow.h:796
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2282
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:981
struct rte_sctp_hdr hdr
Definition: rte_flow.h:746