DPDK  19.11.1
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 #include <rte_higig.h>
31 #include <rte_mbuf.h>
32 #include <rte_mbuf_dyn.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
75 struct rte_flow_attr {
76  uint32_t group;
77  uint32_t priority;
78  uint32_t ingress:1;
79  uint32_t egress:1;
98  uint32_t transfer:1;
99  uint32_t reserved:29;
100 };
101 
128 
138 
148 
156 
166 
176 
186 
196 
203 
210 
217 
224 
231 
238 
245 
252 
259 
266 
273 
280 
287 
294 
306 
315 
324 
333 
340 
347 
354 
361 
368 
375 
382 
389 
396 
404 
412 
419 
428 
441 
450 
459 
468 
477 
484 
491 
498 
504 
513 };
514 
522  struct rte_higig2_hdr hdr;
523 };
524 
526 #ifndef __cplusplus
528  .hdr = {
529  .ppt1 = {
530  .classification = 0xffff,
531  .vid = 0xfff,
532  },
533  },
534 };
535 #endif
536 
549  uint32_t num;
550 };
551 
553 #ifndef __cplusplus
555  .num = 0x00000000,
556 };
557 #endif
558 
578  uint32_t id;
579 };
580 
582 #ifndef __cplusplus
584  .id = 0x00000000,
585 };
586 #endif
587 
609  uint32_t index;
610 };
611 
613 #ifndef __cplusplus
615  .index = 0x00000000,
616 };
617 #endif
618 
635  uint32_t id;
636 };
637 
639 #ifndef __cplusplus
641  .id = 0xffffffff,
642 };
643 #endif
644 
664  uint32_t relative:1;
665  uint32_t search:1;
666  uint32_t reserved:30;
667  int32_t offset;
668  uint16_t limit;
669  uint16_t length;
670  const uint8_t *pattern;
671 };
672 
674 #ifndef __cplusplus
676  .relative = 1,
677  .search = 1,
678  .reserved = 0x3fffffff,
679  .offset = 0xffffffff,
680  .limit = 0xffff,
681  .length = 0xffff,
682  .pattern = NULL,
683 };
684 #endif
685 
701 };
702 
704 #ifndef __cplusplus
706  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
707  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
708  .type = RTE_BE16(0x0000),
709 };
710 #endif
711 
724 };
725 
727 #ifndef __cplusplus
729  .tci = RTE_BE16(0x0fff),
730  .inner_type = RTE_BE16(0x0000),
731 };
732 #endif
733 
742  struct rte_ipv4_hdr hdr;
743 };
744 
746 #ifndef __cplusplus
748  .hdr = {
749  .src_addr = RTE_BE32(0xffffffff),
750  .dst_addr = RTE_BE32(0xffffffff),
751  },
752 };
753 #endif
754 
764  struct rte_ipv6_hdr hdr;
765 };
766 
768 #ifndef __cplusplus
770  .hdr = {
771  .src_addr =
772  "\xff\xff\xff\xff\xff\xff\xff\xff"
773  "\xff\xff\xff\xff\xff\xff\xff\xff",
774  .dst_addr =
775  "\xff\xff\xff\xff\xff\xff\xff\xff"
776  "\xff\xff\xff\xff\xff\xff\xff\xff",
777  },
778 };
779 #endif
780 
787  struct rte_icmp_hdr hdr;
788 };
789 
791 #ifndef __cplusplus
793  .hdr = {
794  .icmp_type = 0xff,
795  .icmp_code = 0xff,
796  },
797 };
798 #endif
799 
806  struct rte_udp_hdr hdr;
807 };
808 
810 #ifndef __cplusplus
812  .hdr = {
813  .src_port = RTE_BE16(0xffff),
814  .dst_port = RTE_BE16(0xffff),
815  },
816 };
817 #endif
818 
825  struct rte_tcp_hdr hdr;
826 };
827 
829 #ifndef __cplusplus
831  .hdr = {
832  .src_port = RTE_BE16(0xffff),
833  .dst_port = RTE_BE16(0xffff),
834  },
835 };
836 #endif
837 
844  struct rte_sctp_hdr hdr;
845 };
846 
848 #ifndef __cplusplus
850  .hdr = {
851  .src_port = RTE_BE16(0xffff),
852  .dst_port = RTE_BE16(0xffff),
853  },
854 };
855 #endif
856 
863  uint8_t flags;
864  uint8_t rsvd0[3];
865  uint8_t vni[3];
866  uint8_t rsvd1;
867 };
868 
870 #ifndef __cplusplus
872  .vni = "\xff\xff\xff",
873 };
874 #endif
875 
892  uint8_t in_ecid_e;
893  uint8_t ecid_e;
895 };
896 
898 #ifndef __cplusplus
900  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
901 };
902 #endif
903 
918  uint8_t tni[3];
919  uint8_t flow_id;
920 };
921 
923 #ifndef __cplusplus
925  .tni = "\xff\xff\xff",
926 };
927 #endif
928 
938  uint8_t label_tc_s[3];
939  uint8_t ttl;
940 };
941 
943 #ifndef __cplusplus
945  .label_tc_s = "\xff\xff\xf0",
946 };
947 #endif
948 
961 };
962 
964 #ifndef __cplusplus
966  .protocol = RTE_BE16(0xffff),
967 };
968 #endif
969 
988  uint32_t thresh;
989 };
990 
992 #ifndef __cplusplus
994  .thresh = 0xffffffff,
995 };
996 #endif
997 
1011  uint8_t msg_type;
1014 };
1015 
1017 #ifndef __cplusplus
1019  .teid = RTE_BE32(0xffffffff),
1020 };
1021 #endif
1022 
1029  struct rte_esp_hdr hdr;
1030 };
1031 
1033 #ifndef __cplusplus
1035  .hdr = {
1036  .spi = RTE_BE32(0xffffffff),
1037  },
1038 };
1039 #endif
1040 
1053  uint8_t vni[3];
1054  uint8_t rsvd1;
1055 };
1056 
1058 #ifndef __cplusplus
1060  .vni = "\xff\xff\xff",
1061 };
1062 #endif
1063 
1070  uint8_t flags;
1071  uint8_t rsvd0[2];
1072  uint8_t protocol;
1073  uint8_t vni[3];
1074  uint8_t rsvd1;
1075 };
1076 
1078 #ifndef __cplusplus
1080  .vni = "\xff\xff\xff",
1081 };
1082 #endif
1083 
1092  uint8_t hln;
1093  uint8_t pln;
1099 };
1100 
1102 #ifndef __cplusplus
1103 static const struct rte_flow_item_arp_eth_ipv4
1105  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1106  .spa = RTE_BE32(0xffffffff),
1107  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1108  .tpa = RTE_BE32(0xffffffff),
1109 };
1110 #endif
1111 
1123  uint8_t next_hdr;
1124 };
1125 
1127 #ifndef __cplusplus
1128 static const
1130  .next_hdr = 0xff,
1131 };
1132 #endif
1133 
1140  uint8_t type;
1141  uint8_t code;
1142  uint16_t checksum;
1143 };
1144 
1146 #ifndef __cplusplus
1148  .type = 0xff,
1149  .code = 0xff,
1150 };
1151 #endif
1152 
1159  uint8_t type;
1160  uint8_t code;
1163  uint8_t target_addr[16];
1164 };
1165 
1167 #ifndef __cplusplus
1168 static const
1170  .target_addr =
1171  "\xff\xff\xff\xff\xff\xff\xff\xff"
1172  "\xff\xff\xff\xff\xff\xff\xff\xff",
1173 };
1174 #endif
1175 
1182  uint8_t type;
1183  uint8_t code;
1190  uint8_t target_addr[16];
1191 };
1192 
1194 #ifndef __cplusplus
1195 static const
1197  .target_addr =
1198  "\xff\xff\xff\xff\xff\xff\xff\xff"
1199  "\xff\xff\xff\xff\xff\xff\xff\xff",
1200 };
1201 #endif
1202 
1215  uint8_t type;
1216  uint8_t length;
1217 };
1218 
1220 #ifndef __cplusplus
1221 static const struct rte_flow_item_icmp6_nd_opt
1223  .type = 0xff,
1224 };
1225 #endif
1226 
1239  uint8_t type;
1240  uint8_t length;
1242 };
1243 
1245 #ifndef __cplusplus
1246 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1248  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1249 };
1250 #endif
1251 
1264  uint8_t type;
1265  uint8_t length;
1267 };
1268 
1270 #ifndef __cplusplus
1271 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1273  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1274 };
1275 #endif
1276 
1288  uint32_t data;
1289 };
1290 
1292 #ifndef __cplusplus
1294  .data = UINT32_MAX,
1295 };
1296 #endif
1297 
1304  uint8_t pdu_type;
1305  uint8_t qfi;
1306 };
1307 
1309 #ifndef __cplusplus
1310 static const struct rte_flow_item_gtp_psc
1312  .qfi = 0x3f,
1313 };
1314 #endif
1315 
1325  uint8_t version_type;
1326  uint8_t code;
1329 };
1330 
1345 };
1346 
1348 #ifndef __cplusplus
1349 static const struct rte_flow_item_pppoe_proto_id
1351  .proto_id = RTE_BE16(0xffff),
1352 };
1353 #endif
1354 
1364  uint32_t data;
1365  uint8_t index;
1366 };
1367 
1369 #ifndef __cplusplus
1371  .data = 0xffffffff,
1372  .index = 0xff,
1373 };
1374 #endif
1375 
1395  uint32_t id;
1396 };
1397 
1399 #ifndef __cplusplus
1401  .id = 0xffffffff,
1402 };
1403 #endif
1404 
1415  uint32_t version:2;
1416  uint32_t oam_pkt:1;
1417  uint32_t reserved:1;
1418  uint32_t ttl:6;
1419  uint32_t length:6;
1420  uint32_t reserved1:4;
1421  uint32_t mdtype:4;
1422  uint32_t next_proto:8;
1423  uint32_t spi:24;
1424  uint32_t sindex:8;
1425 };
1426 
1428 #ifndef __cplusplus
1430  .mdtype = 0xf,
1431  .next_proto = 0xff,
1432  .spi = 0xffffff,
1433  .sindex = 0xff,
1434 };
1435 #endif
1436 
1447  uint32_t type:8;
1448  uint32_t max_resp_time:8;
1449  uint32_t checksum:16;
1450  uint32_t group_addr;
1451 };
1452 
1454 #ifndef __cplusplus
1456  .group_addr = 0xffffffff,
1457 };
1458 #endif
1459 
1470  uint32_t next_hdr:8;
1471  uint32_t payload_len:8;
1472  uint32_t reserved:16;
1473  uint32_t spi;
1474  uint32_t seq_num;
1475 };
1476 
1478 #ifndef __cplusplus
1480  .spi = 0xffffffff,
1481 };
1482 #endif
1483 
1519  const void *spec;
1520  const void *last;
1521  const void *mask;
1522 };
1523 
1558 
1566 
1574 
1583 
1591 
1599 
1606 
1615 
1625 
1634 
1642 
1650 
1658 
1665 
1673 
1681 
1689 
1697 
1705 
1713 
1722 
1731 
1739 
1747 
1755 
1763 
1771 
1779 
1787 
1796 
1804 
1813 
1820 
1827 
1837 
1847 
1857 
1867 
1878 
1889 
1900 
1907 
1914 
1924 
1934 
1948 
1962 
1976 
1990 
2000 
2007 };
2008 
2020  uint32_t id;
2021 };
2022 
2036  uint32_t group;
2037 };
2038 
2045  uint16_t index;
2046 };
2047 
2048 
2075  uint32_t shared:1;
2076  uint32_t reserved:31;
2077  uint32_t id;
2078 };
2079 
2086  uint32_t reset:1;
2087  uint32_t hits_set:1;
2088  uint32_t bytes_set:1;
2089  uint32_t reserved:29;
2090  uint64_t hits;
2091  uint64_t bytes;
2092 };
2093 
2098  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2107  RTE_ETH_HASH_FUNCTION_MAX,
2108 };
2109 
2153  uint32_t level;
2154  uint64_t types;
2155  uint32_t key_len;
2156  uint32_t queue_num;
2157  const uint8_t *key;
2158  const uint16_t *queue;
2159 };
2160 
2174  uint32_t original:1;
2175  uint32_t reserved:31;
2176  uint32_t id;
2177 };
2178 
2188  uint32_t original:1;
2189  uint32_t reserved:31;
2190  uint32_t index;
2191 };
2192 
2201  uint32_t original:1;
2202  uint32_t reserved:31;
2203  uint32_t id;
2204 };
2205 
2215  uint32_t mtr_id;
2216 };
2217 
2245 };
2246 
2254  uint8_t mpls_ttl;
2255 };
2256 
2264  uint8_t nw_ttl;
2265 };
2266 
2275 };
2276 
2285 };
2286 
2294  uint8_t vlan_pcp;
2295 };
2296 
2305 };
2306 
2315 };
2316 
2350 };
2351 
2384 };
2385 
2406  uint8_t *data;
2407  uint8_t *preserve;
2408  size_t size;
2409 };
2410 
2427  uint8_t *data;
2428  size_t size;
2429 };
2430 
2443  rte_be32_t ipv4_addr;
2444 };
2445 
2458  uint8_t ipv6_addr[16];
2459 };
2460 
2473  rte_be16_t port;
2474 };
2475 
2482  uint8_t ttl_value;
2483 };
2484 
2491  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
2492 };
2493 
2504  uint32_t data;
2505  uint32_t mask;
2506  uint8_t index;
2507 };
2508 
2529  uint32_t data;
2530  uint32_t mask;
2531 };
2532 
2533 /* Mbuf dynamic field offset for metadata. */
2534 extern int rte_flow_dynf_metadata_offs;
2535 
2536 /* Mbuf dynamic field flag mask for metadata. */
2537 extern uint64_t rte_flow_dynf_metadata_mask;
2538 
2539 /* Mbuf dynamic field pointer for metadata. */
2540 #define RTE_FLOW_DYNF_METADATA(m) \
2541  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
2542 
2543 /* Mbuf dynamic flags for metadata. */
2544 #define PKT_RX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2545 #define PKT_TX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2546 
2547 __rte_experimental
2548 static inline uint32_t
2549 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
2550 {
2551  return *RTE_FLOW_DYNF_METADATA(m);
2552 }
2553 
2554 __rte_experimental
2555 static inline void
2556 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
2557 {
2558  *RTE_FLOW_DYNF_METADATA(m) = v;
2559 }
2560 
2561 /*
2562  * Definition of a single action.
2563  *
2564  * A list of actions is terminated by a END action.
2565  *
2566  * For simple actions without a configuration object, conf remains NULL.
2567  */
2568 struct rte_flow_action {
2569  enum rte_flow_action_type type;
2570  const void *conf;
2571 };
2572 
2579 struct rte_flow;
2580 
2605 };
2606 
2620  const void *cause;
2621  const char *message;
2622 };
2623 
2634  union {
2635  const struct rte_flow_attr *attr_ro;
2637  };
2638  union {
2639  const struct rte_flow_item *pattern_ro;
2641  };
2642  union {
2643  const struct rte_flow_action *actions_ro;
2644  struct rte_flow_action *actions;
2645  };
2646 };
2647 
2660 
2672 
2684 
2696 
2709 
2722 
2735 
2749 
2763 
2777 
2791 };
2792 
2799 __rte_experimental
2800 static inline int
2802 {
2803  return !!rte_flow_dynf_metadata_mask;
2804 }
2805 
2816 __rte_experimental
2817 int
2819 
2872 int
2873 rte_flow_validate(uint16_t port_id,
2874  const struct rte_flow_attr *attr,
2875  const struct rte_flow_item pattern[],
2876  const struct rte_flow_action actions[],
2877  struct rte_flow_error *error);
2878 
2899 struct rte_flow *
2900 rte_flow_create(uint16_t port_id,
2901  const struct rte_flow_attr *attr,
2902  const struct rte_flow_item pattern[],
2903  const struct rte_flow_action actions[],
2904  struct rte_flow_error *error);
2905 
2926 int
2927 rte_flow_destroy(uint16_t port_id,
2928  struct rte_flow *flow,
2929  struct rte_flow_error *error);
2930 
2947 int
2948 rte_flow_flush(uint16_t port_id,
2949  struct rte_flow_error *error);
2950 
2975 int
2976 rte_flow_query(uint16_t port_id,
2977  struct rte_flow *flow,
2978  const struct rte_flow_action *action,
2979  void *data,
2980  struct rte_flow_error *error);
2981 
3023 int
3024 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
3025 
3043 int
3044 rte_flow_error_set(struct rte_flow_error *error,
3045  int code,
3046  enum rte_flow_error_type type,
3047  const void *cause,
3048  const char *message);
3049 
3055  size_t size;
3058  struct rte_flow_action *actions;
3059  uint8_t data[];
3060 };
3061 
3088 __rte_deprecated
3089 size_t
3090 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
3091  const struct rte_flow_attr *attr,
3092  const struct rte_flow_item *items,
3093  const struct rte_flow_action *actions);
3094 
3135 __rte_experimental
3136 int
3138  void *dst,
3139  size_t size,
3140  const void *src,
3141  struct rte_flow_error *error);
3142 
3143 #ifdef __cplusplus
3144 }
3145 #endif
3146 
3147 #endif /* RTE_FLOW_H_ */
rte_flow_action_security
Definition: rte_flow.h:2243
rte_flow_item_tcp
Definition: rte_flow.h:824
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2383
rte_flow_item_geneve
Definition: rte_flow.h:1046
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1216
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:1961
rte_flow_action_set_tag
Definition: rte_flow.h:2503
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:918
RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:1664
RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:427
rte_flow_item_port_id
Definition: rte_flow.h:634
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:2428
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:2598
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:1866
RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:1888
rte_flow_item_ipv4::hdr
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:742
rte_flow_action_set_tp
Definition: rte_flow.h:2472
RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:258
rte_flow_item_icmp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:792
rte_flow_action_raw_encap
Definition: rte_flow.h:2405
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2643
rte_flow_desc::size
size_t size
Definition: rte_flow.h:3055
rte_flow_item_pppoe_proto_id
Definition: rte_flow.h:1343
RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:2748
rte_flow_action_vxlan_encap
Definition: rte_flow.h:2344
rte_flow_action_port_id
Definition: rte_flow.h:2200
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:988
rte_flow_item_pppoe::session_id
rte_be16_t session_id
Definition: rte_flow.h:1327
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:2077
RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:367
rte_flow_item_ipv6_ext::next_hdr
uint8_t next_hdr
Definition: rte_flow.h:1123
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1240
rte_sctp.h
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
Definition: rte_flow.h:1704
rte_flow_query_count
Definition: rte_flow.h:2085
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:1770
RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:305
rte_flow_item_higig2_hdr
Definition: rte_flow.h:521
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1161
rte_flow_desc
Definition: rte_flow.h:3054
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:1092
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:1091
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:2408
rte_flow_item_esp
Definition: rte_flow.h:1028
RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:1999
RTE_FLOW_ITEM_TYPE_GRE
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:293
RTE_FLOW_ITEM_TYPE_UDP
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:244
rte_flow_item_phy_port
Definition: rte_flow.h:608
RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:272
rte_flow_attr::transfer
uint32_t transfer
Definition: rte_flow.h:98
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:1836
rte_flow_action_of_push_vlan
Definition: rte_flow.h:2273
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1054
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2097
rte_flow_attr::egress
uint32_t egress
Definition: rte_flow.h:79
rte_flow_error_set
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
rte_flow_action_set_ipv4
Definition: rte_flow.h:2442
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:2591
rte_ipv6_hdr::src_addr
uint8_t src_addr[16]
Definition: rte_ip.h:363
rte_flow_attr::ingress
uint32_t ingress
Definition: rte_flow.h:78
rte_flow_item_arp_eth_ipv4::op
rte_be16_t op
Definition: rte_flow.h:1094
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:2175
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:476
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:2593
rte_flow_item_arp_eth_ipv4_mask
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1104
rte_esp.h
rte_flow_action_count
Definition: rte_flow.h:2074
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:1738
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:2589
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:1786
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:891
RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:2590
RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:1906
rte_flow_action_phy_port
Definition: rte_flow.h:2187
rte_higig2_hdr
Definition: rte_higig.h:133
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:1795
rte_flow_item_tag_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1370
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:1923
rte_flow_action_meter
Definition: rte_flow.h:2214
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1184
rte_flow_item_nsh
Definition: rte_flow.h:1414
RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:237
rte_flow_item_gtp::v_pt_rsv_flags
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1010
rte_flow_item_any
Definition: rte_flow.h:548
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:866
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
rte_flow_item_gre
Definition: rte_flow.h:954
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:2045
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:960
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1051
RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:490
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:667
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:1550
RTE_FLOW_ITEM_TYPE_PF
@ RTE_FLOW_ITEM_TYPE_PF
Definition: rte_flow.h:165
RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:1557
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:849
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:894
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:917
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:388
rte_flow_action_of_set_nw_ttl::nw_ttl
uint8_t nw_ttl
Definition: rte_flow.h:2264
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:728
rte_flow_create
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)
rte_flow_item_vxlan::flags
uint8_t flags
Definition: rte_flow.h:863
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2349
RTE_FLOW_ITEM_TYPE_TCP
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:251
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1215
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:3057
RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:2588
rte_flow_item_ipv4
Definition: rte_flow.h:741
RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:2597
RTE_FLOW_CONV_OP_NONE
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:2659
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:1778
rte_flow_copy
__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)
rte_flow_item
Definition: rte_flow.h:1517
rte_flow_item_pppoe::version_type
uint8_t version_type
Definition: rte_flow.h:1325
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:1518
rte_flow_item_pppoe_proto_id_mask
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
Definition: rte_flow.h:1350
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:871
RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:1680
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:1819
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:1072
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:1933
RTE_FLOW_ACTION_TYPE_JUMP
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:1582
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1264
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:892
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:1519
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:2619
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:993
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:549
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:2620
rte_flow_item_phy_port::index
uint32_t index
Definition: rte_flow.h:609
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1141
rte_esp_hdr::spi
rte_be32_t spi
Definition: rte_esp.h:24
rte_flow_item_nvgre_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:924
rte_flow_action_phy_port::original
uint32_t original
Definition: rte_flow.h:2188
RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:418
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:2283
RTE_FLOW_ITEM_TYPE_END
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:127
rte_ether.h
rte_flow_action_set_meta
Definition: rte_flow.h:2528
RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:332
rte_mbuf
Definition: rte_mbuf_core.h:480
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:675
rte_flow_item_eth::dst
struct rte_ether_addr dst
Definition: rte_flow.h:698
rte_flow_isolate
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
rte_flow_query_count::reset
uint32_t reset
Definition: rte_flow.h:2086
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1142
RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:223
RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:2695
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1163
rte_flow_action_count::shared
uint32_t shared
Definition: rte_flow.h:2075
RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:467
rte_mbuf_dyn.h
RTE_FLOW_ITEM_TYPE_GTPC
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:323
RTE_FLOW_ITEM_TYPE_GTP
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:314
rte_sctp_hdr::src_port
rte_be16_t src_port
Definition: rte_sctp.h:29
rte_flow_item_mark
Definition: rte_flow.h:1394
rte_flow_item_icmp6_nd_na_mask
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1196
RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:2602
RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:1672
rte_flow_dynf_metadata_register
__rte_experimental int rte_flow_dynf_metadata_register(void)
rte_flow_action_nvgre_encap
Definition: rte_flow.h:2378
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:700
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:2776
RTE_FLOW_ITEM_TYPE_NSH
@ RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:483
RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:374
rte_flow_item_arp_eth_ipv4::tha
struct rte_ether_addr tha
Definition: rte_flow.h:1097
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:1053
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
Definition: rte_flow.h:1696
RTE_FLOW_CONV_OP_ITEM
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:2683
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:1975
rte_flow_action_queue
Definition: rte_flow.h:2044
rte_flow_item_sctp::hdr
struct rte_sctp_hdr hdr
Definition: rte_flow.h:844
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:554
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1122
rte_flow_item_raw
Definition: rte_flow.h:663
RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:449
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
Definition: rte_flow.h:1721
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2639
rte_flow_item_igmp_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1455
rte_flow_item_esp::hdr
struct rte_esp_hdr hdr
Definition: rte_flow.h:1029
RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:1649
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:77
RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:195
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:1812
rte_flow_item_icmp6_nd_opt_sla_eth::type
uint8_t type
Definition: rte_flow.h:1239
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:811
rte_flow_dynf_metadata_avail
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:2801
rte_flow_action_rss
Definition: rte_flow.h:2126
rte_flow_item_icmp6_nd_opt_sla_eth::sla
struct rte_ether_addr sla
Definition: rte_flow.h:1241
RTE_FLOW_ACTION_TYPE_SET_META
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2006
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:2201
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:944
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:722
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:769
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:2174
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:2087
RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:346
rte_flow_item_mark_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1400
rte_flow_item_gtp_psc::qfi
uint8_t qfi
Definition: rte_flow.h:1305
rte_flow_item_vf::id
uint32_t id
Definition: rte_flow.h:578
rte_flow_action_phy_port::index
uint32_t index
Definition: rte_flow.h:2190
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:3056
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:403
rte_flow_action_of_set_nw_ttl
Definition: rte_flow.h:2263
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:2592
rte_flow_action_set_ttl
Definition: rte_flow.h:2481
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:1712
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:1093
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:1013
rte_udp.h
rte_flow_item_nvgre
Definition: rte_flow.h:909
rte_icmp.h
rte_flow_item_pppoe
Definition: rte_flow.h:1321
RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
@ RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
Definition: rte_flow.h:2100
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1190
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:2407
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:2284
RTE_FLOW_ITEM_TYPE_VF
@ RTE_FLOW_ITEM_TYPE_VF
Definition: rte_flow.h:175
rte_flow_query
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)
rte_flow_item_icmp6_nd_ns
Definition: rte_flow.h:1158
rte_sctp_hdr
Definition: rte_sctp.h:28
RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:1913
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:395
rte_flow_item_port_id_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:640
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:2176
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:2127
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1214
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:747
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:1947
RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
Definition: rte_flow.h:440
rte_udp_hdr::src_port
rte_be16_t src_port
Definition: rte_udp.h:29
RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:2790
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
Definition: rte_flow.h:1730
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1034
rte_flow_item_udp
Definition: rte_flow.h:805
rte_common.h
rte_ipv4_hdr::src_addr
rte_be32_t src_addr
Definition: rte_ip.h:42
RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:1624
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:1011
RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:230
rte_flow_item_vf_mask
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:583
rte_arp.h
rte_flow_item_sctp
Definition: rte_flow.h:843
rte_flow_action_mark
Definition: rte_flow.h:2019
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:1089
rte_flow_item_nsh_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1429
RTE_FLOW_ITEM_TYPE_RAW
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:202
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:1521
RTE_FLOW_ITEM_TYPE_HIGIG2
@ RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:503
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:2644
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:669
rte_flow_item_e_tag
Definition: rte_flow.h:884
rte_flow_item_pppoe::length
rte_be16_t length
Definition: rte_flow.h:1328
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1293
RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:1565
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:2215
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:670
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:2427
rte_flow_error::message
const char * message
Definition: rte_flow.h:2621
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:635
rte_tcp_hdr
Definition: rte_tcp.h:28
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1074
rte_flow_item_fuzzy
Definition: rte_flow.h:987
RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:1826
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1189
RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:1605
rte_flow_item_mpls
Definition: rte_flow.h:934
rte_flow_validate
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)
rte_flow_conv_rule
Definition: rte_flow.h:2633
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:916
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:959
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:1846
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:2090
rte_flow_item_meta
Definition: rte_flow.h:1287
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:2636
rte_flow_item_gtp
Definition: rte_flow.h:1003
RTE_FLOW_ITEM_TYPE_ANY
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:155
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:411
rte_be16_t
uint16_t rte_be16_t
Definition: rte_byteorder.h:110
rte_flow_conv_op
rte_flow_conv_op
Definition: rte_flow.h:2653
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2274
rte_flow_item_tag
Definition: rte_flow.h:1363
RTE_FLOW_ITEM_TYPE_ESP
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:339
RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:2603
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:2587
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1182
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2635
rte_flow_attr
Definition: rte_flow.h:75
rte_tcp.h
rte_flow_item_ipv6::hdr
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:764
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:2091
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:830
rte_flow_item_ah
Definition: rte_flow.h:1469
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1183
rte_flow_item_gtp_psc
Definition: rte_flow.h:1303
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:2088
rte_ipv4_hdr
Definition: rte_ip.h:33
rte_flow_item_icmp6_nd_opt_sla_eth_mask
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1247
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:2293
RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:2708
rte_flow_action_raw_decap
Definition: rte_flow.h:2426
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:40
rte_flow_item_icmp
Definition: rte_flow.h:786
rte_flow_item_eth::src
struct rte_ether_addr src
Definition: rte_flow.h:699
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:1803
rte_flow_item_igmp
Definition: rte_flow.h:1446
rte_flow_action_set_ipv6
Definition: rte_flow.h:2457
rte_flow_item_icmp6_nd_opt_mask
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1222
rte_esp_hdr
Definition: rte_esp.h:23
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:2594
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2304
RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:2599
rte_flow_item_tcp::hdr
struct rte_tcp_hdr hdr
Definition: rte_flow.h:825
RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:458
RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:265
RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:286
RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:2601
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1160
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:3059
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:2202
RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:1614
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:2244
rte_flow_destroy
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:1590
RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:1641
rte_flow_conv
__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)
rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:527
RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:2721
RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:2762
RTE_FLOW_CONV_OP_RULE
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:2734
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:1071
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:965
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1079
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:1746
RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:1899
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1395
rte_flow_item_icmp6_nd_ns::reserved
rte_be32_t reserved
Definition: rte_flow.h:1162
rte_ipv6_hdr
Definition: rte_ip.h:358
rte_mbuf.h
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:2406
RTE_FLOW_ACTION_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_PHY_PORT
Definition: rte_flow.h:1657
RTE_FLOW_CONV_OP_ATTR
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:2671
RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:1598
rte_flow_action_mark::id
uint32_t id
Definition: rte_flow.h:2020
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:1070
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:1090
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:2294
rte_flow_item_icmp6
Definition: rte_flow.h:1139
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:3058
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1059
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1265
RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:2596
RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:2600
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:664
rte_flow_action_of_set_mpls_ttl::mpls_ttl
uint8_t mpls_ttl
Definition: rte_flow.h:2254
RTE_FLOW_ITEM_TYPE_AH
@ RTE_FLOW_ITEM_TYPE_AH
Definition: rte_flow.h:497
RTE_ETHER_ADDR_LEN
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:26
rte_flow_item_icmp6_nd_opt_tla_eth
Definition: rte_flow.h:1263
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:1096
RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:216
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:2158
rte_flow_item_eth
Definition: rte_flow.h:697
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:2640
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1181
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:668
rte_icmp_hdr
Definition: rte_icmp.h:28
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:2157
rte_flow_item_ipv6
Definition: rte_flow.h:763
rte_flow_item_vf
Definition: rte_flow.h:577
rte_flow_item_icmp::hdr
struct rte_icmp_hdr hdr
Definition: rte_flow.h:787
rte_flow_item_ah_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1479
rte_flow_error
Definition: rte_flow.h:2618
rte_flow_item_pppoe_proto_id::proto_id
rte_be16_t proto_id
Definition: rte_flow.h:1344
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:99
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:1069
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:2154
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:1754
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1159
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1129
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1140
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:938
rte_flow_item_vxlan
Definition: rte_flow.h:862
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:1877
rte_flow_item_vlan
Definition: rte_flow.h:721
RTE_FLOW_ITEM_TYPE_ETH
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:209
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:2156
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2314
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:1012
RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:147
RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:137
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:864
rte_flow_action_phy_port::reserved
uint32_t reserved
Definition: rte_flow.h:2189
rte_ether_addr
Definition: rte_ether.h:60
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:2155
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:2303
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:2203
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:76
rte_flow_item_e_tag_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:899
rte_flow_action_set_mac
Definition: rte_flow.h:2490
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:919
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:1762
rte_flow_flush
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
rte_flow_item_raw::search
uint32_t search
Definition: rte_flow.h:665
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:723
rte_flow_action_count::reserved
uint32_t reserved
Definition: rte_flow.h:2076
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:2153
rte_flow_item_phy_port_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:614
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:865
rte_flow_item_icmp6_nd_ns_mask
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
Definition: rte_flow.h:1169
RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:1573
RTE_FLOW_ITEM_TYPE_PHY_PORT
@ RTE_FLOW_ITEM_TYPE_PHY_PORT
Definition: rte_flow.h:185
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:1052
rte_byteorder.h
rte_flow_item::last
const void * last
Definition: rte_flow.h:1520
RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
Definition: rte_flow.h:1688
rte_flow_item_pppoe::code
uint8_t code
Definition: rte_flow.h:1326
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1238
rte_udp_hdr
Definition: rte_udp.h:28
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:1073
RTE_FLOW_ITEM_TYPE_TAG
@ RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:512
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:381
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:1989
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:705
rte_flow_item_gtp_psc::pdu_type
uint8_t pdu_type
Definition: rte_flow.h:1304
rte_flow_action_of_set_mpls_ttl
Definition: rte_flow.h:2253
rte_flow_action_vf
Definition: rte_flow.h:2173
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:666
rte_flow_item_arp_eth_ipv4::sha
struct rte_ether_addr sha
Definition: rte_flow.h:1095
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:1098
rte_flow_action_of_push_mpls
Definition: rte_flow.h:2313
rte_ether_addr::addr_bytes
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:61
rte_tcp_hdr::src_port
rte_be16_t src_port
Definition: rte_tcp.h:29
RTE_FLOW_ITEM_TYPE_NVGRE
@ RTE_FLOW_ITEM_TYPE_NVGRE
Definition: rte_flow.h:279
RTE_ETH_HASH_FUNCTION_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_TOEPLITZ
Definition: rte_flow.h:2099
rte_flow_action_jump
Definition: rte_flow.h:2035
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1018
rte_flow_item_icmp6_nd_opt_tla_eth_mask
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1272
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:2595
RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:353
rte_flow_item_udp::hdr
struct rte_udp_hdr hdr
Definition: rte_flow.h:806
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:889
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:893
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:2089
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:1856
RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:1633
rte_flow_item_type
rte_flow_item_type
Definition: rte_flow.h:118
rte_flow_item_icmp6_nd_opt_tla_eth::tla
struct rte_ether_addr tla
Definition: rte_flow.h:1266
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1311
RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
Definition: rte_flow.h:2106
RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:2604
RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:360
rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1147