DPDK  20.05.0-rc0
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 
522 
529 
530 };
531 
539  struct rte_higig2_hdr hdr;
540 };
541 
543 #ifndef __cplusplus
545  .hdr = {
546  .ppt1 = {
547  .classification = 0xffff,
548  .vid = 0xfff,
549  },
550  },
551 };
552 #endif
553 
566  uint32_t num;
567 };
568 
570 #ifndef __cplusplus
572  .num = 0x00000000,
573 };
574 #endif
575 
595  uint32_t id;
596 };
597 
599 #ifndef __cplusplus
601  .id = 0x00000000,
602 };
603 #endif
604 
626  uint32_t index;
627 };
628 
630 #ifndef __cplusplus
632  .index = 0x00000000,
633 };
634 #endif
635 
652  uint32_t id;
653 };
654 
656 #ifndef __cplusplus
658  .id = 0xffffffff,
659 };
660 #endif
661 
681  uint32_t relative:1;
682  uint32_t search:1;
683  uint32_t reserved:30;
684  int32_t offset;
685  uint16_t limit;
686  uint16_t length;
687  const uint8_t *pattern;
688 };
689 
691 #ifndef __cplusplus
693  .relative = 1,
694  .search = 1,
695  .reserved = 0x3fffffff,
696  .offset = 0xffffffff,
697  .limit = 0xffff,
698  .length = 0xffff,
699  .pattern = NULL,
700 };
701 #endif
702 
718 };
719 
721 #ifndef __cplusplus
723  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
724  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
725  .type = RTE_BE16(0x0000),
726 };
727 #endif
728 
741 };
742 
744 #ifndef __cplusplus
746  .tci = RTE_BE16(0x0fff),
747  .inner_type = RTE_BE16(0x0000),
748 };
749 #endif
750 
759  struct rte_ipv4_hdr hdr;
760 };
761 
763 #ifndef __cplusplus
765  .hdr = {
766  .src_addr = RTE_BE32(0xffffffff),
767  .dst_addr = RTE_BE32(0xffffffff),
768  },
769 };
770 #endif
771 
781  struct rte_ipv6_hdr hdr;
782 };
783 
785 #ifndef __cplusplus
787  .hdr = {
788  .src_addr =
789  "\xff\xff\xff\xff\xff\xff\xff\xff"
790  "\xff\xff\xff\xff\xff\xff\xff\xff",
791  .dst_addr =
792  "\xff\xff\xff\xff\xff\xff\xff\xff"
793  "\xff\xff\xff\xff\xff\xff\xff\xff",
794  },
795 };
796 #endif
797 
804  struct rte_icmp_hdr hdr;
805 };
806 
808 #ifndef __cplusplus
810  .hdr = {
811  .icmp_type = 0xff,
812  .icmp_code = 0xff,
813  },
814 };
815 #endif
816 
823  struct rte_udp_hdr hdr;
824 };
825 
827 #ifndef __cplusplus
829  .hdr = {
830  .src_port = RTE_BE16(0xffff),
831  .dst_port = RTE_BE16(0xffff),
832  },
833 };
834 #endif
835 
842  struct rte_tcp_hdr hdr;
843 };
844 
846 #ifndef __cplusplus
848  .hdr = {
849  .src_port = RTE_BE16(0xffff),
850  .dst_port = RTE_BE16(0xffff),
851  },
852 };
853 #endif
854 
861  struct rte_sctp_hdr hdr;
862 };
863 
865 #ifndef __cplusplus
867  .hdr = {
868  .src_port = RTE_BE16(0xffff),
869  .dst_port = RTE_BE16(0xffff),
870  },
871 };
872 #endif
873 
880  uint8_t flags;
881  uint8_t rsvd0[3];
882  uint8_t vni[3];
883  uint8_t rsvd1;
884 };
885 
887 #ifndef __cplusplus
889  .vni = "\xff\xff\xff",
890 };
891 #endif
892 
909  uint8_t in_ecid_e;
910  uint8_t ecid_e;
912 };
913 
915 #ifndef __cplusplus
917  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
918 };
919 #endif
920 
935  uint8_t tni[3];
936  uint8_t flow_id;
937 };
938 
940 #ifndef __cplusplus
942  .tni = "\xff\xff\xff",
943 };
944 #endif
945 
955  uint8_t label_tc_s[3];
956  uint8_t ttl;
957 };
958 
960 #ifndef __cplusplus
962  .label_tc_s = "\xff\xff\xf0",
963 };
964 #endif
965 
978 };
979 
981 #ifndef __cplusplus
983  .protocol = RTE_BE16(0xffff),
984 };
985 #endif
986 
1005  uint32_t thresh;
1006 };
1007 
1009 #ifndef __cplusplus
1011  .thresh = 0xffffffff,
1012 };
1013 #endif
1014 
1028  uint8_t msg_type;
1031 };
1032 
1034 #ifndef __cplusplus
1036  .teid = RTE_BE32(0xffffffff),
1037 };
1038 #endif
1039 
1046  struct rte_esp_hdr hdr;
1047 };
1048 
1050 #ifndef __cplusplus
1052  .hdr = {
1053  .spi = RTE_BE32(0xffffffff),
1054  },
1055 };
1056 #endif
1057 
1070  uint8_t vni[3];
1071  uint8_t rsvd1;
1072 };
1073 
1075 #ifndef __cplusplus
1077  .vni = "\xff\xff\xff",
1078 };
1079 #endif
1080 
1087  uint8_t flags;
1088  uint8_t rsvd0[2];
1089  uint8_t protocol;
1090  uint8_t vni[3];
1091  uint8_t rsvd1;
1092 };
1093 
1095 #ifndef __cplusplus
1097  .vni = "\xff\xff\xff",
1098 };
1099 #endif
1100 
1109  uint8_t hln;
1110  uint8_t pln;
1116 };
1117 
1119 #ifndef __cplusplus
1120 static const struct rte_flow_item_arp_eth_ipv4
1122  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1123  .spa = RTE_BE32(0xffffffff),
1124  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1125  .tpa = RTE_BE32(0xffffffff),
1126 };
1127 #endif
1128 
1140  uint8_t next_hdr;
1141 };
1142 
1144 #ifndef __cplusplus
1145 static const
1147  .next_hdr = 0xff,
1148 };
1149 #endif
1150 
1157  uint8_t type;
1158  uint8_t code;
1159  uint16_t checksum;
1160 };
1161 
1163 #ifndef __cplusplus
1165  .type = 0xff,
1166  .code = 0xff,
1167 };
1168 #endif
1169 
1176  uint8_t type;
1177  uint8_t code;
1180  uint8_t target_addr[16];
1181 };
1182 
1184 #ifndef __cplusplus
1185 static const
1187  .target_addr =
1188  "\xff\xff\xff\xff\xff\xff\xff\xff"
1189  "\xff\xff\xff\xff\xff\xff\xff\xff",
1190 };
1191 #endif
1192 
1199  uint8_t type;
1200  uint8_t code;
1207  uint8_t target_addr[16];
1208 };
1209 
1211 #ifndef __cplusplus
1212 static const
1214  .target_addr =
1215  "\xff\xff\xff\xff\xff\xff\xff\xff"
1216  "\xff\xff\xff\xff\xff\xff\xff\xff",
1217 };
1218 #endif
1219 
1232  uint8_t type;
1233  uint8_t length;
1234 };
1235 
1237 #ifndef __cplusplus
1238 static const struct rte_flow_item_icmp6_nd_opt
1240  .type = 0xff,
1241 };
1242 #endif
1243 
1256  uint8_t type;
1257  uint8_t length;
1259 };
1260 
1262 #ifndef __cplusplus
1263 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1265  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1266 };
1267 #endif
1268 
1281  uint8_t type;
1282  uint8_t length;
1284 };
1285 
1287 #ifndef __cplusplus
1288 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1290  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1291 };
1292 #endif
1293 
1305  uint32_t data;
1306 };
1307 
1309 #ifndef __cplusplus
1311  .data = UINT32_MAX,
1312 };
1313 #endif
1314 
1321  uint8_t pdu_type;
1322  uint8_t qfi;
1323 };
1324 
1326 #ifndef __cplusplus
1327 static const struct rte_flow_item_gtp_psc
1329  .qfi = 0x3f,
1330 };
1331 #endif
1332 
1342  uint8_t version_type;
1343  uint8_t code;
1346 };
1347 
1362 };
1363 
1365 #ifndef __cplusplus
1366 static const struct rte_flow_item_pppoe_proto_id
1368  .proto_id = RTE_BE16(0xffff),
1369 };
1370 #endif
1371 
1381  uint32_t data;
1382  uint8_t index;
1383 };
1384 
1386 #ifndef __cplusplus
1388  .data = 0xffffffff,
1389  .index = 0xff,
1390 };
1391 #endif
1392 
1400 };
1401 
1403 #ifndef __cplusplus
1405  .session_id = RTE_BE32(UINT32_MAX),
1406 };
1407 #endif
1408 
1409 
1429  uint32_t id;
1430 };
1431 
1433 #ifndef __cplusplus
1435  .id = 0xffffffff,
1436 };
1437 #endif
1438 
1449  uint32_t version:2;
1450  uint32_t oam_pkt:1;
1451  uint32_t reserved:1;
1452  uint32_t ttl:6;
1453  uint32_t length:6;
1454  uint32_t reserved1:4;
1455  uint32_t mdtype:4;
1456  uint32_t next_proto:8;
1457  uint32_t spi:24;
1458  uint32_t sindex:8;
1459 };
1460 
1462 #ifndef __cplusplus
1464  .mdtype = 0xf,
1465  .next_proto = 0xff,
1466  .spi = 0xffffff,
1467  .sindex = 0xff,
1468 };
1469 #endif
1470 
1481  uint32_t type:8;
1482  uint32_t max_resp_time:8;
1483  uint32_t checksum:16;
1484  uint32_t group_addr;
1485 };
1486 
1488 #ifndef __cplusplus
1490  .group_addr = 0xffffffff,
1491 };
1492 #endif
1493 
1504  uint32_t next_hdr:8;
1505  uint32_t payload_len:8;
1506  uint32_t reserved:16;
1507  uint32_t spi;
1508  uint32_t seq_num;
1509 };
1510 
1512 #ifndef __cplusplus
1514  .spi = 0xffffffff,
1515 };
1516 #endif
1517 
1527  uint8_t s_field;
1528  uint8_t msg_type;
1529  rte_be16_t msg_len;
1530  rte_be64_t seid;
1531 };
1532 
1534 #ifndef __cplusplus
1536  .s_field = 0x01,
1537  .seid = RTE_BE64(0xffffffffffffffff),
1538 };
1539 #endif
1540 
1576  const void *spec;
1577  const void *last;
1578  const void *mask;
1579 };
1580 
1615 
1623 
1631 
1640 
1648 
1656 
1663 
1672 
1682 
1691 
1699 
1707 
1715 
1722 
1730 
1738 
1746 
1754 
1762 
1770 
1779 
1788 
1796 
1804 
1812 
1820 
1828 
1836 
1844 
1853 
1861 
1870 
1877 
1884 
1894 
1904 
1914 
1924 
1935 
1946 
1957 
1964 
1971 
1981 
1991 
2005 
2019 
2033 
2047 
2057 
2064 
2074 
2084 };
2085 
2097  uint32_t id;
2098 };
2099 
2113  uint32_t group;
2114 };
2115 
2122  uint16_t index;
2123 };
2124 
2125 
2152  uint32_t shared:1;
2153  uint32_t reserved:31;
2154  uint32_t id;
2155 };
2156 
2163  uint32_t reset:1;
2164  uint32_t hits_set:1;
2165  uint32_t bytes_set:1;
2166  uint32_t reserved:29;
2167  uint64_t hits;
2168  uint64_t bytes;
2169 };
2170 
2175  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2184  RTE_ETH_HASH_FUNCTION_MAX,
2185 };
2186 
2230  uint32_t level;
2231  uint64_t types;
2232  uint32_t key_len;
2233  uint32_t queue_num;
2234  const uint8_t *key;
2235  const uint16_t *queue;
2236 };
2237 
2251  uint32_t original:1;
2252  uint32_t reserved:31;
2253  uint32_t id;
2254 };
2255 
2265  uint32_t original:1;
2266  uint32_t reserved:31;
2267  uint32_t index;
2268 };
2269 
2278  uint32_t original:1;
2279  uint32_t reserved:31;
2280  uint32_t id;
2281 };
2282 
2292  uint32_t mtr_id;
2293 };
2294 
2327 };
2328 
2336  uint8_t mpls_ttl;
2337 };
2338 
2346  uint8_t nw_ttl;
2347 };
2348 
2357 };
2358 
2367 };
2368 
2376  uint8_t vlan_pcp;
2377 };
2378 
2387 };
2388 
2397 };
2398 
2432 };
2433 
2466 };
2467 
2488  uint8_t *data;
2489  uint8_t *preserve;
2490  size_t size;
2491 };
2492 
2509  uint8_t *data;
2510  size_t size;
2511 };
2512 
2525  rte_be32_t ipv4_addr;
2526 };
2527 
2540  uint8_t ipv6_addr[16];
2541 };
2542 
2555  rte_be16_t port;
2556 };
2557 
2564  uint8_t ttl_value;
2565 };
2566 
2573  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
2574 };
2575 
2586  uint32_t data;
2587  uint32_t mask;
2588  uint8_t index;
2589 };
2590 
2611  uint32_t data;
2612  uint32_t mask;
2613 };
2614 
2623  uint8_t dscp;
2624 };
2625 
2626 /* Mbuf dynamic field offset for metadata. */
2627 extern int rte_flow_dynf_metadata_offs;
2628 
2629 /* Mbuf dynamic field flag mask for metadata. */
2630 extern uint64_t rte_flow_dynf_metadata_mask;
2631 
2632 /* Mbuf dynamic field pointer for metadata. */
2633 #define RTE_FLOW_DYNF_METADATA(m) \
2634  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
2635 
2636 /* Mbuf dynamic flags for metadata. */
2637 #define PKT_RX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2638 #define PKT_TX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2639 
2640 __rte_experimental
2641 static inline uint32_t
2642 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
2643 {
2644  return *RTE_FLOW_DYNF_METADATA(m);
2645 }
2646 
2647 __rte_experimental
2648 static inline void
2649 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
2650 {
2651  *RTE_FLOW_DYNF_METADATA(m) = v;
2652 }
2653 
2654 /*
2655  * Definition of a single action.
2656  *
2657  * A list of actions is terminated by a END action.
2658  *
2659  * For simple actions without a configuration object, conf remains NULL.
2660  */
2661 struct rte_flow_action {
2662  enum rte_flow_action_type type;
2663  const void *conf;
2664 };
2665 
2672 struct rte_flow;
2673 
2698 };
2699 
2713  const void *cause;
2714  const char *message;
2715 };
2716 
2727  union {
2728  const struct rte_flow_attr *attr_ro;
2730  };
2731  union {
2732  const struct rte_flow_item *pattern_ro;
2734  };
2735  union {
2736  const struct rte_flow_action *actions_ro;
2737  struct rte_flow_action *actions;
2738  };
2739 };
2740 
2753 
2765 
2777 
2789 
2802 
2815 
2828 
2842 
2856 
2870 
2884 };
2885 
2903 __rte_experimental
2904 int
2905 rte_flow_dev_dump(uint16_t port_id, FILE *file, struct rte_flow_error *error);
2906 
2913 __rte_experimental
2914 static inline int
2916 {
2917  return !!rte_flow_dynf_metadata_mask;
2918 }
2919 
2930 __rte_experimental
2931 int
2933 
2986 int
2987 rte_flow_validate(uint16_t port_id,
2988  const struct rte_flow_attr *attr,
2989  const struct rte_flow_item pattern[],
2990  const struct rte_flow_action actions[],
2991  struct rte_flow_error *error);
2992 
3013 struct rte_flow *
3014 rte_flow_create(uint16_t port_id,
3015  const struct rte_flow_attr *attr,
3016  const struct rte_flow_item pattern[],
3017  const struct rte_flow_action actions[],
3018  struct rte_flow_error *error);
3019 
3040 int
3041 rte_flow_destroy(uint16_t port_id,
3042  struct rte_flow *flow,
3043  struct rte_flow_error *error);
3044 
3061 int
3062 rte_flow_flush(uint16_t port_id,
3063  struct rte_flow_error *error);
3064 
3089 int
3090 rte_flow_query(uint16_t port_id,
3091  struct rte_flow *flow,
3092  const struct rte_flow_action *action,
3093  void *data,
3094  struct rte_flow_error *error);
3095 
3137 int
3138 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
3139 
3157 int
3158 rte_flow_error_set(struct rte_flow_error *error,
3159  int code,
3160  enum rte_flow_error_type type,
3161  const void *cause,
3162  const char *message);
3163 
3169  size_t size;
3172  struct rte_flow_action *actions;
3173  uint8_t data[];
3174 };
3175 
3202 __rte_deprecated
3203 size_t
3204 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
3205  const struct rte_flow_attr *attr,
3206  const struct rte_flow_item *items,
3207  const struct rte_flow_action *actions);
3208 
3249 __rte_experimental
3250 int
3252  void *dst,
3253  size_t size,
3254  const void *src,
3255  struct rte_flow_error *error);
3256 
3257 #ifdef __cplusplus
3258 }
3259 #endif
3260 
3261 #endif /* RTE_FLOW_H_ */
rte_flow_action_security
Definition: rte_flow.h:2325
rte_flow_item_tcp
Definition: rte_flow.h:841
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2465
rte_flow_item_geneve
Definition: rte_flow.h:1063
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1233
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2018
rte_flow_action_set_tag
Definition: rte_flow.h:2585
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:935
RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:1721
RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:427
rte_flow_item_port_id
Definition: rte_flow.h:651
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:2510
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:2691
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:1923
RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:1945
rte_flow_item_ipv4::hdr
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:759
rte_flow_action_set_tp
Definition: rte_flow.h:2554
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:809
rte_flow_action_raw_encap
Definition: rte_flow.h:2487
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2736
rte_flow_desc::size
size_t size
Definition: rte_flow.h:3169
rte_flow_item_pppoe_proto_id
Definition: rte_flow.h:1360
RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:2841
rte_flow_action_vxlan_encap
Definition: rte_flow.h:2426
rte_flow_action_port_id
Definition: rte_flow.h:2277
rte_flow_item_l2tpv3oip::session_id
rte_be32_t session_id
Definition: rte_flow.h:1399
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:1005
rte_flow_item_pppoe::session_id
rte_be16_t session_id
Definition: rte_flow.h:1344
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:2154
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:1140
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1257
rte_sctp.h
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
Definition: rte_flow.h:1761
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:2083
rte_flow_query_count
Definition: rte_flow.h:2162
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:1827
RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:305
rte_flow_item_higig2_hdr
Definition: rte_flow.h:538
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1178
rte_flow_desc
Definition: rte_flow.h:3168
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:1109
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:1108
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:2490
rte_flow_item_esp
Definition: rte_flow.h:1045
RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:2056
RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:293
RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:244
rte_flow_item_phy_port
Definition: rte_flow.h:625
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
Definition: rte_flow.h:1893
rte_flow_action_of_push_vlan
Definition: rte_flow.h:2355
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1071
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2174
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:2524
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:2684
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:1111
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:2252
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:476
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:2686
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:1121
rte_esp.h
rte_flow_action_count
Definition: rte_flow.h:2151
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:1795
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:2682
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:1843
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:908
RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:2683
RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:1963
rte_flow_action_phy_port
Definition: rte_flow.h:2264
rte_higig2_hdr
Definition: rte_higig.h:133
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:1852
rte_flow_item_tag_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1387
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:1980
rte_flow_action_meter
Definition: rte_flow.h:2291
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1201
rte_flow_item_nsh
Definition: rte_flow.h:1448
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:1027
rte_flow_item_any
Definition: rte_flow.h:565
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:883
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
RTE_FLOW_ITEM_TYPE_L2TPV3OIP
Definition: rte_flow.h:521
rte_flow_item_gre
Definition: rte_flow.h:971
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:2122
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:977
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1068
RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:490
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:684
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:1607
RTE_FLOW_ITEM_TYPE_PF
Definition: rte_flow.h:165
RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:1614
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:866
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:911
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:934
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:2346
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:745
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:880
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2431
RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:251
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1232
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:3171
RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:2681
rte_flow_item_ipv4
Definition: rte_flow.h:758
RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:2690
RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:2752
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:1835
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:1574
rte_flow_item_pppoe::version_type
uint8_t version_type
Definition: rte_flow.h:1342
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:1575
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:1367
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:888
RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:1737
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:1876
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:1089
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:1990
RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:1639
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1281
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:909
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:1576
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:2712
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1010
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:566
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:2713
rte_flow_item_phy_port::index
uint32_t index
Definition: rte_flow.h:626
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1158
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:941
rte_flow_action_phy_port::original
uint32_t original
Definition: rte_flow.h:2265
RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:418
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:2365
RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:127
rte_ether.h
rte_flow_action_set_meta
Definition: rte_flow.h:2610
RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:332
rte_mbuf
Definition: rte_mbuf_core.h:467
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:692
rte_flow_item_eth::dst
struct rte_ether_addr dst
Definition: rte_flow.h:715
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:2163
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1159
RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:223
rte_flow_item_pfcp
Definition: rte_flow.h:1526
RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:2788
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1180
rte_flow_action_count::shared
uint32_t shared
Definition: rte_flow.h:2152
RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:467
rte_mbuf_dyn.h
RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:323
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:1428
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:1213
RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:2695
RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:1729
rte_flow_dynf_metadata_register
__rte_experimental int rte_flow_dynf_metadata_register(void)
rte_flow_action_nvgre_encap
Definition: rte_flow.h:2460
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:717
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:2869
RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:483
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:1114
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:1070
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
Definition: rte_flow.h:1753
RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:2776
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2032
rte_flow_action_queue
Definition: rte_flow.h:2121
rte_flow_item_sctp::hdr
struct rte_sctp_hdr hdr
Definition: rte_flow.h:861
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:571
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1139
rte_flow_item_raw
Definition: rte_flow.h:680
RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:449
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
Definition: rte_flow.h:1778
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2732
rte_flow_item_igmp_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1489
rte_flow_item_esp::hdr
struct rte_esp_hdr hdr
Definition: rte_flow.h:1046
RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:1706
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:77
RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:195
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:1869
rte_flow_item_icmp6_nd_opt_sla_eth::type
uint8_t type
Definition: rte_flow.h:1256
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:828
rte_flow_dynf_metadata_avail
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:2915
rte_flow_action_rss
Definition: rte_flow.h:2203
rte_flow_item_icmp6_nd_opt_sla_eth::sla
struct rte_ether_addr sla
Definition: rte_flow.h:1258
RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2063
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:2278
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:961
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:739
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:786
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:2251
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:2164
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:1434
rte_flow_item_gtp_psc::qfi
uint8_t qfi
Definition: rte_flow.h:1322
rte_flow_item_vf::id
uint32_t id
Definition: rte_flow.h:595
rte_be64_t
uint64_t rte_be64_t
Definition: rte_byteorder.h:112
rte_flow_action_phy_port::index
uint32_t index
Definition: rte_flow.h:2267
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:3170
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:2345
rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1404
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:2685
rte_flow_action_set_ttl
Definition: rte_flow.h:2563
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:1769
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:1110
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:1030
rte_udp.h
rte_flow_item_nvgre
Definition: rte_flow.h:926
rte_icmp.h
rte_flow_item_pppoe
Definition: rte_flow.h:1338
RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
Definition: rte_flow.h:2177
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1207
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:2489
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:2366
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:1175
rte_sctp_hdr
Definition: rte_sctp.h:28
RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:1970
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:657
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:2253
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:2204
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1231
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:764
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2004
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
Definition: rte_flow.h:2883
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
Definition: rte_flow.h:1787
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1051
rte_flow_item_udp
Definition: rte_flow.h:822
rte_common.h
rte_ipv4_hdr::src_addr
rte_be32_t src_addr
Definition: rte_ip.h:42
RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:1681
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:1028
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:600
rte_arp.h
rte_flow_item_sctp
Definition: rte_flow.h:860
rte_flow_action_mark
Definition: rte_flow.h:2096
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:1106
rte_flow_item_nsh_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1463
RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:202
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:1578
RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:503
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:2737
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:686
rte_flow_item_e_tag
Definition: rte_flow.h:901
rte_flow_item_pppoe::length
rte_be16_t length
Definition: rte_flow.h:1345
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1310
rte_flow_action_set_dscp
Definition: rte_flow.h:2622
RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:1622
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:2292
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:687
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:2509
rte_flow_error::message
const char * message
Definition: rte_flow.h:2714
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:652
rte_tcp_hdr
Definition: rte_tcp.h:28
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1091
rte_flow_item_fuzzy
Definition: rte_flow.h:1004
RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:1883
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1206
RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:1662
rte_flow_item_mpls
Definition: rte_flow.h:951
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:2726
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:933
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:976
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:1903
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:2167
rte_flow_item_meta
Definition: rte_flow.h:1304
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:2729
rte_flow_item_gtp
Definition: rte_flow.h:1020
RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:155
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:2746
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2356
rte_flow_item_tag
Definition: rte_flow.h:1380
RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:339
RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:2696
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:2680
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1199
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2728
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:781
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:2168
rte_flow_item_pfcp_mask
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1535
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:847
rte_flow_item_ah
Definition: rte_flow.h:1503
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1200
rte_flow_item_gtp_psc
Definition: rte_flow.h:1320
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:2165
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:1264
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:2375
RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:2801
rte_flow_action_raw_decap
Definition: rte_flow.h:2508
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:40
rte_flow_item_icmp
Definition: rte_flow.h:803
rte_flow_item_eth::src
struct rte_ether_addr src
Definition: rte_flow.h:716
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:1860
rte_flow_item_igmp
Definition: rte_flow.h:1480
rte_flow_action_set_ipv6
Definition: rte_flow.h:2539
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:1239
rte_esp_hdr
Definition: rte_esp.h:23
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:2687
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2386
RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:2692
rte_flow_item_tcp::hdr
struct rte_tcp_hdr hdr
Definition: rte_flow.h:842
RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:458
RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:265
RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:286
RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:2694
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1177
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:3173
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:2279
RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:1671
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:2326
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
Definition: rte_flow.h:1647
RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:1698
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:544
RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:2814
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:2073
RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:2855
RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:2827
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:1088
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:982
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1096
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:1803
RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:1956
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1429
rte_flow_item_icmp6_nd_ns::reserved
rte_be32_t reserved
Definition: rte_flow.h:1179
rte_ipv6_hdr
Definition: rte_ip.h:358
rte_mbuf.h
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:2488
RTE_FLOW_ACTION_TYPE_PHY_PORT
Definition: rte_flow.h:1714
RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:2764
RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:1655
rte_flow_action_mark::id
uint32_t id
Definition: rte_flow.h:2097
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:1087
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:1107
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:2376
rte_flow_item_icmp6
Definition: rte_flow.h:1156
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:3172
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1076
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1282
RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:2689
RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:2693
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:681
rte_flow_action_of_set_mpls_ttl::mpls_ttl
uint8_t mpls_ttl
Definition: rte_flow.h:2336
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:1280
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:1113
RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:216
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:2235
rte_flow_item_eth
Definition: rte_flow.h:714
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:2733
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1198
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:685
rte_icmp_hdr
Definition: rte_icmp.h:28
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:2234
rte_flow_item_ipv6
Definition: rte_flow.h:780
rte_flow_item_vf
Definition: rte_flow.h:594
rte_flow_item_icmp::hdr
struct rte_icmp_hdr hdr
Definition: rte_flow.h:804
rte_flow_item_ah_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1513
rte_flow_error
Definition: rte_flow.h:2711
rte_flow_item_pppoe_proto_id::proto_id
rte_be16_t proto_id
Definition: rte_flow.h:1361
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:99
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:1086
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:2231
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:1811
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1176
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1146
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1157
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:955
rte_flow_item_vxlan
Definition: rte_flow.h:879
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:1934
rte_flow_item_vlan
Definition: rte_flow.h:738
RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:209
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:2233
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2396
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:1029
RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:147
RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:137
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:881
rte_flow_action_phy_port::reserved
uint32_t reserved
Definition: rte_flow.h:2266
rte_ether_addr
Definition: rte_ether.h:60
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:2232
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:2385
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:2280
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:76
rte_flow_dev_dump
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, FILE *file, struct rte_flow_error *error)
rte_flow_item_e_tag_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:916
rte_flow_action_set_mac
Definition: rte_flow.h:2572
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:936
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:1819
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:682
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:740
rte_flow_action_count::reserved
uint32_t reserved
Definition: rte_flow.h:2153
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:2230
rte_flow_item_phy_port_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:631
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:882
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:1186
RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:1630
RTE_FLOW_ITEM_TYPE_PHY_PORT
Definition: rte_flow.h:185
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:1069
rte_byteorder.h
RTE_FLOW_ITEM_TYPE_PFCP
Definition: rte_flow.h:528
rte_flow_item::last
const void * last
Definition: rte_flow.h:1577
RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
Definition: rte_flow.h:1745
rte_flow_item_pppoe::code
uint8_t code
Definition: rte_flow.h:1343
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1255
rte_udp_hdr
Definition: rte_udp.h:28
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:1090
RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:512
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:381
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:2046
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:722
rte_flow_item_gtp_psc::pdu_type
uint8_t pdu_type
Definition: rte_flow.h:1321
rte_flow_action_of_set_mpls_ttl
Definition: rte_flow.h:2335
rte_flow_action_vf
Definition: rte_flow.h:2250
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:683
rte_flow_item_arp_eth_ipv4::sha
struct rte_ether_addr sha
Definition: rte_flow.h:1112
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:1115
rte_flow_action_of_push_mpls
Definition: rte_flow.h:2395
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
Definition: rte_flow.h:279
RTE_ETH_HASH_FUNCTION_TOEPLITZ
Definition: rte_flow.h:2176
rte_flow_action_jump
Definition: rte_flow.h:2112
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1035
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:1289
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:2688
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:823
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:906
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:910
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:2166
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:1913
RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:1690
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:1283
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1328
rte_flow_item_l2tpv3oip
Definition: rte_flow.h:1398
RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
Definition: rte_flow.h:2183
RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:2697
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:1164