DPDK  20.11.0
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_ecpri.h>
32 #include <rte_mbuf.h>
33 #include <rte_mbuf_dyn.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
76 struct rte_flow_attr {
77  uint32_t group;
78  uint32_t priority;
79  uint32_t ingress:1;
80  uint32_t egress:1;
99  uint32_t transfer:1;
100  uint32_t reserved:29;
101 };
102 
129 
139 
149 
157 
167 
177 
187 
197 
204 
211 
218 
225 
232 
239 
246 
253 
260 
267 
274 
281 
288 
295 
307 
316 
325 
334 
341 
348 
355 
362 
369 
376 
383 
390 
397 
405 
413 
420 
429 
442 
451 
460 
469 
478 
485 
492 
499 
505 
514 
523 
530 
539 
546 };
547 
555  struct rte_higig2_hdr hdr;
556 };
557 
559 #ifndef __cplusplus
561  .hdr = {
562  .ppt1 = {
563  .classification = 0xffff,
564  .vid = 0xfff,
565  },
566  },
567 };
568 #endif
569 
582  uint32_t num;
583 };
584 
586 #ifndef __cplusplus
587 static const struct rte_flow_item_any rte_flow_item_any_mask = {
588  .num = 0x00000000,
589 };
590 #endif
591 
611  uint32_t id;
612 };
613 
615 #ifndef __cplusplus
616 static const struct rte_flow_item_vf rte_flow_item_vf_mask = {
617  .id = 0x00000000,
618 };
619 #endif
620 
642  uint32_t index;
643 };
644 
646 #ifndef __cplusplus
648  .index = 0x00000000,
649 };
650 #endif
651 
668  uint32_t id;
669 };
670 
672 #ifndef __cplusplus
674  .id = 0xffffffff,
675 };
676 #endif
677 
697  uint32_t relative:1;
698  uint32_t search:1;
699  uint32_t reserved:30;
700  int32_t offset;
701  uint16_t limit;
702  uint16_t length;
703  const uint8_t *pattern;
704 };
705 
707 #ifndef __cplusplus
708 static const struct rte_flow_item_raw rte_flow_item_raw_mask = {
709  .relative = 1,
710  .search = 1,
711  .reserved = 0x3fffffff,
712  .offset = 0xffffffff,
713  .limit = 0xffff,
714  .length = 0xffff,
715  .pattern = NULL,
716 };
717 #endif
718 
737  struct rte_ether_addr dst;
738  struct rte_ether_addr src;
740  uint32_t has_vlan:1;
741  uint32_t reserved:31;
742 };
743 
745 #ifndef __cplusplus
746 static const struct rte_flow_item_eth rte_flow_item_eth_mask = {
747  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
748  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
749  .type = RTE_BE16(0x0000),
750 };
751 #endif
752 
771  uint32_t has_more_vlan:1;
773  uint32_t reserved:31;
774 };
775 
777 #ifndef __cplusplus
778 static const struct rte_flow_item_vlan rte_flow_item_vlan_mask = {
779  .tci = RTE_BE16(0x0fff),
780  .inner_type = RTE_BE16(0x0000),
781 };
782 #endif
783 
792  struct rte_ipv4_hdr hdr;
793 };
794 
796 #ifndef __cplusplus
797 static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask = {
798  .hdr = {
799  .src_addr = RTE_BE32(0xffffffff),
800  .dst_addr = RTE_BE32(0xffffffff),
801  },
802 };
803 #endif
804 
813  struct rte_ipv6_hdr hdr;
814  uint32_t has_hop_ext:1;
816  uint32_t has_route_ext:1;
818  uint32_t has_frag_ext:1;
820  uint32_t has_auth_ext:1;
822  uint32_t has_esp_ext:1;
824  uint32_t has_dest_ext:1;
826  uint32_t has_mobil_ext:1;
828  uint32_t has_hip_ext:1;
830  uint32_t has_shim6_ext:1;
832  uint32_t reserved:23;
834 };
835 
837 #ifndef __cplusplus
838 static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask = {
839  .hdr = {
840  .src_addr =
841  "\xff\xff\xff\xff\xff\xff\xff\xff"
842  "\xff\xff\xff\xff\xff\xff\xff\xff",
843  .dst_addr =
844  "\xff\xff\xff\xff\xff\xff\xff\xff"
845  "\xff\xff\xff\xff\xff\xff\xff\xff",
846  },
847 };
848 #endif
849 
856  struct rte_icmp_hdr hdr;
857 };
858 
860 #ifndef __cplusplus
861 static const struct rte_flow_item_icmp rte_flow_item_icmp_mask = {
862  .hdr = {
863  .icmp_type = 0xff,
864  .icmp_code = 0xff,
865  },
866 };
867 #endif
868 
875  struct rte_udp_hdr hdr;
876 };
877 
879 #ifndef __cplusplus
880 static const struct rte_flow_item_udp rte_flow_item_udp_mask = {
881  .hdr = {
882  .src_port = RTE_BE16(0xffff),
883  .dst_port = RTE_BE16(0xffff),
884  },
885 };
886 #endif
887 
894  struct rte_tcp_hdr hdr;
895 };
896 
898 #ifndef __cplusplus
899 static const struct rte_flow_item_tcp rte_flow_item_tcp_mask = {
900  .hdr = {
901  .src_port = RTE_BE16(0xffff),
902  .dst_port = RTE_BE16(0xffff),
903  },
904 };
905 #endif
906 
913  struct rte_sctp_hdr hdr;
914 };
915 
917 #ifndef __cplusplus
918 static const struct rte_flow_item_sctp rte_flow_item_sctp_mask = {
919  .hdr = {
920  .src_port = RTE_BE16(0xffff),
921  .dst_port = RTE_BE16(0xffff),
922  },
923 };
924 #endif
925 
932  uint8_t flags;
933  uint8_t rsvd0[3];
934  uint8_t vni[3];
935  uint8_t rsvd1;
936 };
937 
939 #ifndef __cplusplus
940 static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask = {
941  .vni = "\xff\xff\xff",
942 };
943 #endif
944 
961  uint8_t in_ecid_e;
962  uint8_t ecid_e;
964 };
965 
967 #ifndef __cplusplus
968 static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask = {
969  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
970 };
971 #endif
972 
987  uint8_t tni[3];
988  uint8_t flow_id;
989 };
990 
992 #ifndef __cplusplus
993 static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask = {
994  .tni = "\xff\xff\xff",
995 };
996 #endif
997 
1007  uint8_t label_tc_s[3];
1008  uint8_t ttl;
1009 };
1010 
1012 #ifndef __cplusplus
1013 static const struct rte_flow_item_mpls rte_flow_item_mpls_mask = {
1014  .label_tc_s = "\xff\xff\xf0",
1015 };
1016 #endif
1017 
1030 };
1031 
1033 #ifndef __cplusplus
1034 static const struct rte_flow_item_gre rte_flow_item_gre_mask = {
1035  .protocol = RTE_BE16(0xffff),
1036 };
1037 #endif
1038 
1057  uint32_t thresh;
1058 };
1059 
1061 #ifndef __cplusplus
1062 static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask = {
1063  .thresh = 0xffffffff,
1064 };
1065 #endif
1066 
1080  uint8_t msg_type;
1083 };
1084 
1086 #ifndef __cplusplus
1087 static const struct rte_flow_item_gtp rte_flow_item_gtp_mask = {
1088  .teid = RTE_BE32(0xffffffff),
1089 };
1090 #endif
1091 
1098  struct rte_esp_hdr hdr;
1099 };
1100 
1102 #ifndef __cplusplus
1103 static const struct rte_flow_item_esp rte_flow_item_esp_mask = {
1104  .hdr = {
1105  .spi = RTE_BE32(0xffffffff),
1106  },
1107 };
1108 #endif
1109 
1122  uint8_t vni[3];
1123  uint8_t rsvd1;
1124 };
1125 
1127 #ifndef __cplusplus
1128 static const struct rte_flow_item_geneve rte_flow_item_geneve_mask = {
1129  .vni = "\xff\xff\xff",
1130 };
1131 #endif
1132 
1139  uint8_t flags;
1140  uint8_t rsvd0[2];
1141  uint8_t protocol;
1142  uint8_t vni[3];
1143  uint8_t rsvd1;
1144 };
1145 
1147 #ifndef __cplusplus
1149  .vni = "\xff\xff\xff",
1150 };
1151 #endif
1152 
1161  uint8_t hln;
1162  uint8_t pln;
1164  struct rte_ether_addr sha;
1166  struct rte_ether_addr tha;
1168 };
1169 
1171 #ifndef __cplusplus
1172 static const struct rte_flow_item_arp_eth_ipv4
1174  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1175  .spa = RTE_BE32(0xffffffff),
1176  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1177  .tpa = RTE_BE32(0xffffffff),
1178 };
1179 #endif
1180 
1192  uint8_t next_hdr;
1193 };
1194 
1196 #ifndef __cplusplus
1197 static const
1199  .next_hdr = 0xff,
1200 };
1201 #endif
1202 
1214  struct rte_ipv6_fragment_ext hdr;
1215 };
1216 
1223  uint8_t type;
1224  uint8_t code;
1225  uint16_t checksum;
1226 };
1227 
1229 #ifndef __cplusplus
1230 static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask = {
1231  .type = 0xff,
1232  .code = 0xff,
1233 };
1234 #endif
1235 
1242  uint8_t type;
1243  uint8_t code;
1246  uint8_t target_addr[16];
1247 };
1248 
1250 #ifndef __cplusplus
1251 static const
1253  .target_addr =
1254  "\xff\xff\xff\xff\xff\xff\xff\xff"
1255  "\xff\xff\xff\xff\xff\xff\xff\xff",
1256 };
1257 #endif
1258 
1265  uint8_t type;
1266  uint8_t code;
1273  uint8_t target_addr[16];
1274 };
1275 
1277 #ifndef __cplusplus
1278 static const
1280  .target_addr =
1281  "\xff\xff\xff\xff\xff\xff\xff\xff"
1282  "\xff\xff\xff\xff\xff\xff\xff\xff",
1283 };
1284 #endif
1285 
1298  uint8_t type;
1299  uint8_t length;
1300 };
1301 
1303 #ifndef __cplusplus
1304 static const struct rte_flow_item_icmp6_nd_opt
1306  .type = 0xff,
1307 };
1308 #endif
1309 
1322  uint8_t type;
1323  uint8_t length;
1324  struct rte_ether_addr sla;
1325 };
1326 
1328 #ifndef __cplusplus
1329 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1331  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1332 };
1333 #endif
1334 
1347  uint8_t type;
1348  uint8_t length;
1349  struct rte_ether_addr tla;
1350 };
1351 
1353 #ifndef __cplusplus
1354 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1356  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1357 };
1358 #endif
1359 
1371  uint32_t data;
1372 };
1373 
1375 #ifndef __cplusplus
1376 static const struct rte_flow_item_meta rte_flow_item_meta_mask = {
1377  .data = UINT32_MAX,
1378 };
1379 #endif
1380 
1387  uint8_t pdu_type;
1388  uint8_t qfi;
1389 };
1390 
1392 #ifndef __cplusplus
1393 static const struct rte_flow_item_gtp_psc
1395  .qfi = 0x3f,
1396 };
1397 #endif
1398 
1408  uint8_t version_type;
1409  uint8_t code;
1412 };
1413 
1428 };
1429 
1431 #ifndef __cplusplus
1432 static const struct rte_flow_item_pppoe_proto_id
1434  .proto_id = RTE_BE16(0xffff),
1435 };
1436 #endif
1437 
1447  uint32_t data;
1448  uint8_t index;
1449 };
1450 
1452 #ifndef __cplusplus
1453 static const struct rte_flow_item_tag rte_flow_item_tag_mask = {
1454  .data = 0xffffffff,
1455  .index = 0xff,
1456 };
1457 #endif
1458 
1466 };
1467 
1469 #ifndef __cplusplus
1471  .session_id = RTE_BE32(UINT32_MAX),
1472 };
1473 #endif
1474 
1475 
1495  uint32_t id;
1496 };
1497 
1499 #ifndef __cplusplus
1500 static const struct rte_flow_item_mark rte_flow_item_mark_mask = {
1501  .id = 0xffffffff,
1502 };
1503 #endif
1504 
1515  uint32_t version:2;
1516  uint32_t oam_pkt:1;
1517  uint32_t reserved:1;
1518  uint32_t ttl:6;
1519  uint32_t length:6;
1520  uint32_t reserved1:4;
1521  uint32_t mdtype:4;
1522  uint32_t next_proto:8;
1523  uint32_t spi:24;
1524  uint32_t sindex:8;
1525 };
1526 
1528 #ifndef __cplusplus
1529 static const struct rte_flow_item_nsh rte_flow_item_nsh_mask = {
1530  .mdtype = 0xf,
1531  .next_proto = 0xff,
1532  .spi = 0xffffff,
1533  .sindex = 0xff,
1534 };
1535 #endif
1536 
1547  uint32_t type:8;
1548  uint32_t max_resp_time:8;
1549  uint32_t checksum:16;
1550  uint32_t group_addr;
1551 };
1552 
1554 #ifndef __cplusplus
1555 static const struct rte_flow_item_igmp rte_flow_item_igmp_mask = {
1556  .group_addr = 0xffffffff,
1557 };
1558 #endif
1559 
1570  uint32_t next_hdr:8;
1571  uint32_t payload_len:8;
1572  uint32_t reserved:16;
1573  uint32_t spi;
1574  uint32_t seq_num;
1575 };
1576 
1578 #ifndef __cplusplus
1579 static const struct rte_flow_item_ah rte_flow_item_ah_mask = {
1580  .spi = 0xffffffff,
1581 };
1582 #endif
1583 
1593  uint8_t s_field;
1594  uint8_t msg_type;
1595  rte_be16_t msg_len;
1597 };
1598 
1600 #ifndef __cplusplus
1601 static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask = {
1602  .s_field = 0x01,
1603  .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1604 };
1605 #endif
1606 
1616  struct rte_ecpri_combined_msg_hdr hdr;
1617 };
1618 
1620 #ifndef __cplusplus
1621 static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask = {
1622  .hdr = {
1623  .common = {
1624  .u32 = 0x0,
1625  },
1626  },
1627 };
1628 #endif
1629 
1664  enum rte_flow_item_type type;
1665  const void *spec;
1666  const void *last;
1667  const void *mask;
1668 };
1669 
1704 
1712 
1720 
1729 
1737 
1745 
1752 
1761 
1772 
1781 
1789 
1797 
1805 
1812 
1820 
1828 
1836 
1844 
1852 
1860 
1869 
1878 
1886 
1894 
1902 
1910 
1918 
1926 
1934 
1943 
1951 
1960 
1967 
1974 
1984 
1994 
2004 
2014 
2025 
2036 
2047 
2054 
2061 
2071 
2081 
2095 
2109 
2123 
2137 
2147 
2154 
2164 
2174 
2185 
2193 
2201 };
2202 
2214  uint32_t id;
2215 };
2216 
2230  uint32_t group;
2231 };
2232 
2239  uint16_t index;
2240 };
2241 
2256  uint32_t timeout:24;
2257  uint32_t reserved:8;
2258  void *context;
2260 };
2261 
2269  uint32_t reserved:6;
2270  uint32_t aged:1;
2273  uint32_t sec_since_last_hit:24;
2274 };
2275 
2306  uint32_t shared:1;
2307  uint32_t reserved:31;
2308  uint32_t id;
2309 };
2310 
2317  uint32_t reset:1;
2318  uint32_t hits_set:1;
2319  uint32_t bytes_set:1;
2320  uint32_t reserved:29;
2321  uint64_t hits;
2322  uint64_t bytes;
2323 };
2324 
2329  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2338  RTE_ETH_HASH_FUNCTION_MAX,
2339 };
2340 
2384  uint32_t level;
2385  uint64_t types;
2386  uint32_t key_len;
2387  uint32_t queue_num;
2388  const uint8_t *key;
2389  const uint16_t *queue;
2390 };
2391 
2405  uint32_t original:1;
2406  uint32_t reserved:31;
2407  uint32_t id;
2408 };
2409 
2419  uint32_t original:1;
2420  uint32_t reserved:31;
2421  uint32_t index;
2422 };
2423 
2432  uint32_t original:1;
2433  uint32_t reserved:31;
2434  uint32_t id;
2435 };
2436 
2446  uint32_t mtr_id;
2447 };
2448 
2481 };
2482 
2490  uint8_t mpls_ttl;
2491 };
2492 
2500  uint8_t nw_ttl;
2501 };
2502 
2511 };
2512 
2521 };
2522 
2530  uint8_t vlan_pcp;
2531 };
2532 
2541 };
2542 
2551 };
2552 
2586 };
2587 
2620 };
2621 
2642  uint8_t *data;
2643  uint8_t *preserve;
2644  size_t size;
2645 };
2646 
2663  uint8_t *data;
2664  size_t size;
2665 };
2666 
2679  rte_be32_t ipv4_addr;
2680 };
2681 
2694  uint8_t ipv6_addr[16];
2695 };
2696 
2709  rte_be16_t port;
2710 };
2711 
2718  uint8_t ttl_value;
2719 };
2720 
2727  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
2728 };
2729 
2740  uint32_t data;
2741  uint32_t mask;
2742  uint8_t index;
2743 };
2744 
2765  uint32_t data;
2766  uint32_t mask;
2767 };
2768 
2777  uint8_t dscp;
2778 };
2779 
2780 
2792 struct rte_flow_shared_action;
2793 
2794 /* Mbuf dynamic field offset for metadata. */
2795 extern int32_t rte_flow_dynf_metadata_offs;
2796 
2797 /* Mbuf dynamic field flag mask for metadata. */
2798 extern uint64_t rte_flow_dynf_metadata_mask;
2799 
2800 /* Mbuf dynamic field pointer for metadata. */
2801 #define RTE_FLOW_DYNF_METADATA(m) \
2802  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
2803 
2804 /* Mbuf dynamic flags for metadata. */
2805 #define PKT_RX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2806 #define PKT_TX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2807 
2808 __rte_experimental
2809 static inline uint32_t
2810 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
2811 {
2812  return *RTE_FLOW_DYNF_METADATA(m);
2813 }
2814 
2815 __rte_experimental
2816 static inline void
2817 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
2818 {
2819  *RTE_FLOW_DYNF_METADATA(m) = v;
2820 }
2821 
2822 /*
2823  * Definition of a single action.
2824  *
2825  * A list of actions is terminated by a END action.
2826  *
2827  * For simple actions without a configuration object, conf remains NULL.
2828  */
2829 struct rte_flow_action {
2830  enum rte_flow_action_type type;
2831  const void *conf;
2832 };
2833 
2840 struct rte_flow;
2841 
2859  uint32_t ratio;
2860  const struct rte_flow_action *actions;
2862 };
2863 
2888 };
2889 
2902  enum rte_flow_error_type type;
2903  const void *cause;
2904  const char *message;
2905 };
2906 
2917  union {
2918  const struct rte_flow_attr *attr_ro;
2920  };
2921  union {
2922  const struct rte_flow_item *pattern_ro;
2924  };
2925  union {
2926  const struct rte_flow_action *actions_ro;
2927  struct rte_flow_action *actions;
2928  };
2929 };
2930 
2943 
2955 
2967 
2979 
2992 
3005 
3018 
3032 
3046 
3060 
3074 };
3075 
3093 __rte_experimental
3094 int
3095 rte_flow_dev_dump(uint16_t port_id, FILE *file, struct rte_flow_error *error);
3096 
3103 __rte_experimental
3104 static inline int
3106 {
3107  return !!rte_flow_dynf_metadata_mask;
3108 }
3109 
3120 __rte_experimental
3121 int
3123 
3176 int
3177 rte_flow_validate(uint16_t port_id,
3178  const struct rte_flow_attr *attr,
3179  const struct rte_flow_item pattern[],
3180  const struct rte_flow_action actions[],
3181  struct rte_flow_error *error);
3182 
3203 struct rte_flow *
3204 rte_flow_create(uint16_t port_id,
3205  const struct rte_flow_attr *attr,
3206  const struct rte_flow_item pattern[],
3207  const struct rte_flow_action actions[],
3208  struct rte_flow_error *error);
3209 
3230 int
3231 rte_flow_destroy(uint16_t port_id,
3232  struct rte_flow *flow,
3233  struct rte_flow_error *error);
3234 
3251 int
3252 rte_flow_flush(uint16_t port_id,
3253  struct rte_flow_error *error);
3254 
3279 int
3280 rte_flow_query(uint16_t port_id,
3281  struct rte_flow *flow,
3282  const struct rte_flow_action *action,
3283  void *data,
3284  struct rte_flow_error *error);
3285 
3327 int
3328 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
3329 
3347 int
3349  int code,
3350  enum rte_flow_error_type type,
3351  const void *cause,
3352  const char *message);
3353 
3359  size_t size;
3360  struct rte_flow_attr attr;
3362  struct rte_flow_action *actions;
3363  uint8_t data[];
3364 };
3365 
3392 __rte_deprecated
3393 size_t
3394 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
3395  const struct rte_flow_attr *attr,
3396  const struct rte_flow_item *items,
3397  const struct rte_flow_action *actions);
3398 
3439 __rte_experimental
3440 int
3442  void *dst,
3443  size_t size,
3444  const void *src,
3445  struct rte_flow_error *error);
3446 
3475 __rte_experimental
3476 int
3477 rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
3478  uint32_t nb_contexts, struct rte_flow_error *error);
3479 
3490  uint32_t ingress:1;
3492  uint32_t egress:1;
3501  uint32_t transfer:1;
3502 };
3503 
3530 __rte_experimental
3531 struct rte_flow_shared_action *
3533  const struct rte_flow_shared_action_conf *conf,
3534  const struct rte_flow_action *action,
3535  struct rte_flow_error *error);
3536 
3559 __rte_experimental
3560 int
3562  struct rte_flow_shared_action *action,
3563  struct rte_flow_error *error);
3564 
3595 __rte_experimental
3596 int
3598  struct rte_flow_shared_action *action,
3599  const struct rte_flow_action *update,
3600  struct rte_flow_error *error);
3601 
3627 __rte_experimental
3628 int
3630  const struct rte_flow_shared_action *action,
3631  void *data,
3632  struct rte_flow_error *error);
3633 
3634 /* Tunnel has a type and the key information. */
3635 struct rte_flow_tunnel {
3640  enum rte_flow_item_type type;
3641  uint64_t tun_id;
3643  RTE_STD_C11
3644  union {
3645  struct {
3646  rte_be32_t src_addr;
3647  rte_be32_t dst_addr;
3648  } ipv4;
3649  struct {
3650  uint8_t src_addr[16];
3651  uint8_t dst_addr[16];
3652  } ipv6;
3653  };
3654  rte_be16_t tp_src;
3655  rte_be16_t tp_dst;
3656  uint16_t tun_flags;
3658  bool is_ipv6;
3664  uint8_t tos;
3665  uint8_t ttl;
3666  uint32_t label;
3667 };
3668 
3672 #define RTE_FLOW_RESTORE_INFO_TUNNEL (1ULL << 0)
3673 
3677 #define RTE_FLOW_RESTORE_INFO_ENCAPSULATED (1ULL << 1)
3678 
3682 #define RTE_FLOW_RESTORE_INFO_GROUP_ID (1ULL << 2)
3683 
3694  uint64_t flags;
3695  uint32_t group_id;
3696  struct rte_flow_tunnel tunnel;
3697 };
3698 
3722 __rte_experimental
3723 int
3724 rte_flow_tunnel_decap_set(uint16_t port_id,
3725  struct rte_flow_tunnel *tunnel,
3726  struct rte_flow_action **actions,
3727  uint32_t *num_of_actions,
3728  struct rte_flow_error *error);
3729 
3753 __rte_experimental
3754 int
3755 rte_flow_tunnel_match(uint16_t port_id,
3756  struct rte_flow_tunnel *tunnel,
3757  struct rte_flow_item **items,
3758  uint32_t *num_of_items,
3759  struct rte_flow_error *error);
3760 
3777 __rte_experimental
3778 int
3779 rte_flow_get_restore_info(uint16_t port_id,
3780  struct rte_mbuf *m,
3781  struct rte_flow_restore_info *info,
3782  struct rte_flow_error *error);
3783 
3800 __rte_experimental
3801 int
3803  struct rte_flow_action *actions,
3804  uint32_t num_of_actions,
3805  struct rte_flow_error *error);
3806 
3823 __rte_experimental
3824 int
3826  struct rte_flow_item *items,
3827  uint32_t num_of_items,
3828  struct rte_flow_error *error);
3829 #ifdef __cplusplus
3830 }
3831 #endif
3832 
3833 #endif /* RTE_FLOW_H_ */
rte_flow_action_security
Definition: rte_flow.h:2479
rte_flow_item_tcp
Definition: rte_flow.h:893
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2619
rte_flow_item_geneve
Definition: rte_flow.h:1115
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1299
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2108
rte_flow_action_set_tag
Definition: rte_flow.h:2739
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:987
RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:1811
RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:428
rte_flow_item_port_id
Definition: rte_flow.h:667
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:2664
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:2881
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2013
RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2035
rte_flow_item_ipv4::hdr
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:792
rte_flow_action_set_tp
Definition: rte_flow.h:2708
RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:259
rte_flow_item_icmp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:861
rte_flow_action_raw_encap
Definition: rte_flow.h:2641
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2926
rte_flow_desc::size
size_t size
Definition: rte_flow.h:3359
rte_flow_item_pppoe_proto_id
Definition: rte_flow.h:1426
RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:3031
rte_flow_action_vxlan_encap
Definition: rte_flow.h:2580
rte_flow_action_port_id
Definition: rte_flow.h:2431
rte_flow_item_l2tpv3oip::session_id
rte_be32_t session_id
Definition: rte_flow.h:1465
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:1057
rte_flow_item_pppoe::session_id
rte_be16_t session_id
Definition: rte_flow.h:1410
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:2308
RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:368
rte_flow_item_ipv6_ext::next_hdr
uint8_t next_hdr
Definition: rte_flow.h:1192
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1323
rte_sctp.h
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
Definition: rte_flow.h:1851
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:2173
rte_flow_query_count
Definition: rte_flow.h:2316
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:1917
RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:306
rte_flow_item_higig2_hdr
Definition: rte_flow.h:554
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1244
rte_flow_desc
Definition: rte_flow.h:3358
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:1161
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:1160
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:2644
rte_flow_item_esp
Definition: rte_flow.h:1097
RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:2146
RTE_FLOW_ITEM_TYPE_GRE
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:294
RTE_FLOW_ITEM_TYPE_UDP
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:245
rte_flow_item_phy_port
Definition: rte_flow.h:641
RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:273
rte_flow_attr::transfer
uint32_t transfer
Definition: rte_flow.h:99
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:1983
rte_flow_action_of_push_vlan
Definition: rte_flow.h:2509
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1123
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2328
rte_ecpri_common_hdr::u32
rte_be32_t u32
Definition: rte_ecpri.h:72
rte_flow_attr::egress
uint32_t egress
Definition: rte_flow.h:80
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_item_ipv6::has_frag_ext
uint32_t has_frag_ext
Definition: rte_flow.h:818
rte_flow_action_set_ipv4
Definition: rte_flow.h:2678
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:2874
rte_ipv6_hdr::src_addr
uint8_t src_addr[16]
Definition: rte_ip.h:392
rte_flow_attr::ingress
uint32_t ingress
Definition: rte_flow.h:79
rte_flow_item_arp_eth_ipv4::op
rte_be16_t op
Definition: rte_flow.h:1163
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:2406
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:477
rte_flow_action_age::context
void * context
Definition: rte_flow.h:2258
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:2876
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:1173
rte_esp.h
rte_flow_action_count
Definition: rte_flow.h:2304
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:1885
rte_flow_query_age::sec_since_last_hit
uint32_t sec_since_last_hit
Definition: rte_flow.h:2273
rte_flow_shared_action_query
__rte_experimental int rte_flow_shared_action_query(uint16_t port_id, const struct rte_flow_shared_action *action, void *data, struct rte_flow_error *error)
rte_flow_item_vlan::reserved
uint32_t reserved
Definition: rte_flow.h:773
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:2872
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:1933
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:960
RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:2873
RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2053
rte_flow_action_phy_port
Definition: rte_flow.h:2418
rte_higig2_hdr
Definition: rte_higig.h:140
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:1942
rte_flow_shared_action_conf::ingress
uint32_t ingress
Definition: rte_flow.h:3490
rte_flow_item_tag_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1453
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2070
rte_flow_action_meter
Definition: rte_flow.h:2445
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1267
rte_flow_item_nsh
Definition: rte_flow.h:1514
RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:238
rte_flow_item_gtp::v_pt_rsv_flags
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1079
rte_flow_item_any
Definition: rte_flow.h:581
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:935
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
RTE_FLOW_ITEM_TYPE_L2TPV3OIP
@ RTE_FLOW_ITEM_TYPE_L2TPV3OIP
Definition: rte_flow.h:522
rte_flow_item_gre
Definition: rte_flow.h:1023
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:2239
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:1029
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1120
RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:491
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:700
RTE_FLOW_ACTION_TYPE_SAMPLE
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:2192
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:1696
RTE_FLOW_ITEM_TYPE_PF
@ RTE_FLOW_ITEM_TYPE_PF
Definition: rte_flow.h:166
RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:1703
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:918
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:963
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:986
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:389
rte_flow_action_of_set_nw_ttl::nw_ttl
uint8_t nw_ttl
Definition: rte_flow.h:2500
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:778
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:932
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2585
RTE_FLOW_ITEM_TYPE_TCP
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:252
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1298
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:3361
RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:2871
rte_flow_item_ipv4
Definition: rte_flow.h:791
RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:2880
RTE_FLOW_CONV_OP_NONE
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:2942
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:1925
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_ipv6_frag_ext
Definition: rte_flow.h:1213
RTE_FLOW_ITEM_TYPE_ECPRI
@ RTE_FLOW_ITEM_TYPE_ECPRI
Definition: rte_flow.h:538
rte_flow_item
Definition: rte_flow.h:1663
rte_flow_item_pppoe::version_type
uint8_t version_type
Definition: rte_flow.h:1408
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:1664
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:1433
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:940
RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:1827
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:1966
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:1141
rte_ecpri_combined_msg_hdr
Definition: rte_ecpri.h:173
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2080
RTE_FLOW_ACTION_TYPE_JUMP
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:1728
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1347
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:961
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:1665
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:2902
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1062
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:582
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:2903
rte_flow_item_phy_port::index
uint32_t index
Definition: rte_flow.h:642
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1224
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:993
rte_flow_action_phy_port::original
uint32_t original
Definition: rte_flow.h:2419
RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:419
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:2519
RTE_FLOW_ITEM_TYPE_END
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:128
rte_ether.h
rte_flow_action_set_meta
Definition: rte_flow.h:2764
RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:333
rte_mbuf
Definition: rte_mbuf_core.h:473
rte_flow_action_age::reserved
uint32_t reserved
Definition: rte_flow.h:2257
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:708
rte_flow_item_eth::dst
struct rte_ether_addr dst
Definition: rte_flow.h:737
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:2317
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1225
RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:224
rte_flow_item_pfcp
Definition: rte_flow.h:1592
RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:2978
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1246
rte_flow_action_count::shared
uint32_t shared
Definition: rte_flow.h:2306
RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:468
rte_mbuf_dyn.h
RTE_FLOW_ITEM_TYPE_GTPC
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:324
RTE_FLOW_ITEM_TYPE_GTP
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:315
rte_sctp_hdr::src_port
rte_be16_t src_port
Definition: rte_sctp.h:29
rte_flow_item_mark
Definition: rte_flow.h:1494
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:1279
rte_ecpri.h
RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:2885
RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:1819
rte_flow_dynf_metadata_register
__rte_experimental int rte_flow_dynf_metadata_register(void)
rte_flow_action_nvgre_encap
Definition: rte_flow.h:2614
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:739
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:3059
RTE_FLOW_ITEM_TYPE_NSH
@ RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:484
RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:375
rte_flow_item_arp_eth_ipv4::tha
struct rte_ether_addr tha
Definition: rte_flow.h:1166
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:1122
rte_flow_get_aged_flows
__rte_experimental int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
Definition: rte_flow.h:1843
rte_flow_item_ecpri
Definition: rte_flow.h:1615
RTE_FLOW_CONV_OP_ITEM
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:2966
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2122
rte_flow_action_queue
Definition: rte_flow.h:2238
rte_flow_item_sctp::hdr
struct rte_sctp_hdr hdr
Definition: rte_flow.h:913
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:587
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1191
rte_flow_item_raw
Definition: rte_flow.h:696
RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:450
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
Definition: rte_flow.h:1868
rte_higig.h
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2922
rte_flow_item_igmp_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1555
rte_flow_item_esp::hdr
struct rte_esp_hdr hdr
Definition: rte_flow.h:1098
RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:1796
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:78
RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:196
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:1959
rte_flow_get_restore_info
__rte_experimental int rte_flow_get_restore_info(uint16_t port_id, struct rte_mbuf *m, struct rte_flow_restore_info *info, struct rte_flow_error *error)
rte_flow_item_icmp6_nd_opt_sla_eth::type
uint8_t type
Definition: rte_flow.h:1322
rte_flow_query_age::reserved
uint32_t reserved
Definition: rte_flow.h:2269
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:880
rte_flow_dynf_metadata_avail
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:3105
rte_flow_action_rss
Definition: rte_flow.h:2357
rte_flow_item_icmp6_nd_opt_sla_eth::sla
struct rte_ether_addr sla
Definition: rte_flow.h:1324
RTE_FLOW_ACTION_TYPE_SET_META
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2153
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:2432
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1013
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:769
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:838
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:2405
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:2318
RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:347
rte_flow_item_mark_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1500
rte_flow_item_gtp_psc::qfi
uint8_t qfi
Definition: rte_flow.h:1388
rte_flow_item_vf::id
uint32_t id
Definition: rte_flow.h:611
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:2421
rte_flow_action_sample::actions
const struct rte_flow_action * actions
Definition: rte_flow.h:2860
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:3360
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:404
rte_flow_action_of_set_nw_ttl
Definition: rte_flow.h:2499
rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1470
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:2875
rte_flow_action_set_ttl
Definition: rte_flow.h:2717
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:1859
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:1162
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:1082
rte_udp.h
rte_flow_action_sample
Definition: rte_flow.h:2858
rte_flow_item_nvgre
Definition: rte_flow.h:978
rte_icmp.h
rte_flow_item_pppoe
Definition: rte_flow.h:1404
RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
@ RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
Definition: rte_flow.h:2331
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1273
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:2643
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:2520
RTE_FLOW_ITEM_TYPE_VF
@ RTE_FLOW_ITEM_TYPE_VF
Definition: rte_flow.h:176
rte_flow_tunnel_item_release
__rte_experimental int rte_flow_tunnel_item_release(uint16_t port_id, struct rte_flow_item *items, uint32_t num_of_items, struct rte_flow_error *error)
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:1241
rte_sctp_hdr
Definition: rte_sctp.h:28
RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2060
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:396
rte_flow_item_ipv6::has_hip_ext
uint32_t has_hip_ext
Definition: rte_flow.h:828
rte_flow_item_port_id_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:673
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:2407
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:2358
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1297
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:797
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2094
rte_flow_shared_action_conf
Definition: rte_flow.h:3483
RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
Definition: rte_flow.h:441
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:3073
rte_flow_item_eth::reserved
uint32_t reserved
Definition: rte_flow.h:741
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
Definition: rte_flow.h:1877
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1103
rte_flow_item_udp
Definition: rte_flow.h:874
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:1771
rte_flow_action_age
Definition: rte_flow.h:2255
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:1080
RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:231
rte_flow_item_vf_mask
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:616
rte_arp.h
rte_flow_item_sctp
Definition: rte_flow.h:912
rte_flow_action_mark
Definition: rte_flow.h:2213
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:1158
rte_flow_item_nsh_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1529
RTE_FLOW_ITEM_TYPE_RAW
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:203
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:1667
RTE_FLOW_ITEM_TYPE_HIGIG2
@ RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:504
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:2927
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:702
rte_flow_item_e_tag
Definition: rte_flow.h:953
rte_flow_item_pppoe::length
rte_be16_t length
Definition: rte_flow.h:1411
RTE_FLOW_ACTION_TYPE_SHARED
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:2200
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1376
rte_flow_action_set_dscp
Definition: rte_flow.h:2776
RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:1711
rte_flow_item_vlan::has_more_vlan
uint32_t has_more_vlan
Definition: rte_flow.h:771
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:2446
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:703
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:2663
rte_flow_error::message
const char * message
Definition: rte_flow.h:2904
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:668
rte_tcp_hdr
Definition: rte_tcp.h:28
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1143
rte_flow_restore_info::group_id
uint32_t group_id
Definition: rte_flow.h:3695
rte_flow_item_fuzzy
Definition: rte_flow.h:1056
RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:1973
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1272
RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:1751
rte_flow_item_mpls
Definition: rte_flow.h:1003
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:2916
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:985
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1028
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:1993
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:2321
rte_flow_item_meta
Definition: rte_flow.h:1370
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:2919
rte_flow_item_gtp
Definition: rte_flow.h:1072
RTE_FLOW_ITEM_TYPE_ANY
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:156
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:412
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:2936
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2510
rte_flow_item_tag
Definition: rte_flow.h:1446
RTE_FLOW_ACTION_TYPE_AGE
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:2184
RTE_FLOW_ITEM_TYPE_ESP
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:340
RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:2886
rte_flow_action_age::timeout
uint32_t timeout
Definition: rte_flow.h:2256
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:2870
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1265
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2918
rte_flow_attr
Definition: rte_flow.h:76
rte_tcp.h
rte_flow_item_ipv6::hdr
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:813
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:2322
rte_flow_item_pfcp_mask
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1601
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:899
rte_flow_item_ah
Definition: rte_flow.h:1569
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1266
rte_flow_item_gtp_psc
Definition: rte_flow.h:1386
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:2319
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:1330
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:2529
RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:2991
rte_flow_action_raw_decap
Definition: rte_flow.h:2662
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:40
rte_flow_item_icmp
Definition: rte_flow.h:855
rte_flow_item_eth::src
struct rte_ether_addr src
Definition: rte_flow.h:738
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:1950
rte_flow_item_igmp
Definition: rte_flow.h:1546
rte_flow_action_set_ipv6
Definition: rte_flow.h:2693
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:1305
rte_esp_hdr
Definition: rte_esp.h:23
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:2877
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2540
RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:2882
rte_flow_item_tcp::hdr
struct rte_tcp_hdr hdr
Definition: rte_flow.h:894
RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:459
RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:266
RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:287
RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:2884
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1243
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:3363
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:2433
RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:1760
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:2480
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:1736
RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:1788
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:560
rte_flow_query_age::aged
uint32_t aged
Definition: rte_flow.h:2270
RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:3004
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:2163
rte_flow_item_ipv6::has_mobil_ext
uint32_t has_mobil_ext
Definition: rte_flow.h:826
RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:3045
RTE_FLOW_CONV_OP_RULE
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:3017
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:1140
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1034
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1148
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:1893
rte_flow_query_age
Definition: rte_flow.h:2268
RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2046
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1495
rte_flow_tunnel_match
__rte_experimental int rte_flow_tunnel_match(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_item **items, uint32_t *num_of_items, struct rte_flow_error *error)
rte_flow_item_icmp6_nd_ns::reserved
rte_be32_t reserved
Definition: rte_flow.h:1245
rte_ipv6_hdr
Definition: rte_ip.h:387
rte_mbuf.h
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:2642
RTE_FLOW_ACTION_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_PHY_PORT
Definition: rte_flow.h:1804
RTE_FLOW_CONV_OP_ATTR
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:2954
RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:1744
rte_flow_item_eth::has_vlan
uint32_t has_vlan
Definition: rte_flow.h:740
rte_flow_tunnel_action_decap_release
__rte_experimental int rte_flow_tunnel_action_decap_release(uint16_t port_id, struct rte_flow_action *actions, uint32_t num_of_actions, struct rte_flow_error *error)
rte_flow_action_mark::id
uint32_t id
Definition: rte_flow.h:2214
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:1139
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:1159
rte_flow_item_ipv6::has_auth_ext
uint32_t has_auth_ext
Definition: rte_flow.h:820
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:2530
rte_flow_item_icmp6
Definition: rte_flow.h:1222
rte_flow_restore_info::flags
uint64_t flags
Definition: rte_flow.h:3694
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:3362
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1128
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1348
rte_flow_shared_action_update
__rte_experimental int rte_flow_shared_action_update(uint16_t port_id, struct rte_flow_shared_action *action, const struct rte_flow_action *update, struct rte_flow_error *error)
RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:2879
RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:2883
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:697
rte_flow_action_of_set_mpls_ttl::mpls_ttl
uint8_t mpls_ttl
Definition: rte_flow.h:2490
RTE_FLOW_ITEM_TYPE_AH
@ RTE_FLOW_ITEM_TYPE_AH
Definition: rte_flow.h:498
RTE_ETHER_ADDR_LEN
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:30
rte_flow_item_icmp6_nd_opt_tla_eth
Definition: rte_flow.h:1346
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:1165
RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:217
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:2389
rte_flow_item_eth
Definition: rte_flow.h:736
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:2923
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1264
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:701
rte_icmp_hdr
Definition: rte_icmp.h:28
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:2388
rte_flow_item_ipv6
Definition: rte_flow.h:812
rte_flow_item_vf
Definition: rte_flow.h:610
rte_flow_shared_action_conf::egress
uint32_t egress
Definition: rte_flow.h:3492
rte_flow_item_icmp::hdr
struct rte_icmp_hdr hdr
Definition: rte_flow.h:856
rte_flow_item_ah_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1579
rte_flow_error
Definition: rte_flow.h:2901
rte_flow_item_pppoe_proto_id::proto_id
rte_be16_t proto_id
Definition: rte_flow.h:1427
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:100
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:1138
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:2385
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:1901
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1242
rte_flow_query_age::sec_since_last_hit_valid
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:2271
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1198
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1223
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:1007
rte_flow_item_vxlan
Definition: rte_flow.h:931
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2024
rte_flow_item_ecpri_mask
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1621
rte_flow_item_ipv6::has_esp_ext
uint32_t has_esp_ext
Definition: rte_flow.h:822
rte_flow_item_vlan
Definition: rte_flow.h:768
RTE_FLOW_ITEM_TYPE_ETH
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:210
rte_flow_action_sample::ratio
uint32_t ratio
Definition: rte_flow.h:2859
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:2387
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:2550
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:1081
RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:148
RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:138
rte_flow_shared_action_create
__rte_experimental struct rte_flow_shared_action * rte_flow_shared_action_create(uint16_t port_id, const struct rte_flow_shared_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:933
rte_flow_action_phy_port::reserved
uint32_t reserved
Definition: rte_flow.h:2420
rte_ether_addr
Definition: rte_ether.h:64
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:2386
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:2539
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:2434
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:77
rte_flow_restore_info::tunnel
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:3696
rte_flow_item_ipv6::has_hop_ext
uint32_t has_hop_ext
Definition: rte_flow.h:814
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:968
rte_flow_action_set_mac
Definition: rte_flow.h:2726
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:988
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:1909
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:698
rte_flow_item_ipv6::reserved
uint32_t reserved
Definition: rte_flow.h:832
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:770
rte_flow_action_count::reserved
uint32_t reserved
Definition: rte_flow.h:2307
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:2384
rte_flow_item_phy_port_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:647
RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
Definition: rte_flow.h:545
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:934
rte_flow_item_ipv6::has_route_ext
uint32_t has_route_ext
Definition: rte_flow.h:816
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:1252
RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:1719
rte_flow_restore_info
Definition: rte_flow.h:3689
RTE_FLOW_ITEM_TYPE_PHY_PORT
@ RTE_FLOW_ITEM_TYPE_PHY_PORT
Definition: rte_flow.h:186
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:1121
rte_byteorder.h
RTE_FLOW_ITEM_TYPE_PFCP
@ RTE_FLOW_ITEM_TYPE_PFCP
Definition: rte_flow.h:529
rte_flow_shared_action_conf::transfer
uint32_t transfer
Definition: rte_flow.h:3501
rte_flow_item::last
const void * last
Definition: rte_flow.h:1666
RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
Definition: rte_flow.h:1835
rte_flow_item_pppoe::code
uint8_t code
Definition: rte_flow.h:1409
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1321
rte_udp_hdr
Definition: rte_udp.h:28
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:1142
RTE_FLOW_ITEM_TYPE_TAG
@ RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:513
rte_flow_item_ipv6::has_dest_ext
uint32_t has_dest_ext
Definition: rte_flow.h:824
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:382
rte_flow_tunnel_decap_set
__rte_experimental int rte_flow_tunnel_decap_set(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_action **actions, uint32_t *num_of_actions, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:2136
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:746
rte_flow_item_gtp_psc::pdu_type
uint8_t pdu_type
Definition: rte_flow.h:1387
rte_flow_action_of_set_mpls_ttl
Definition: rte_flow.h:2489
rte_flow_action_vf
Definition: rte_flow.h:2404
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:699
rte_flow_item_arp_eth_ipv4::sha
struct rte_ether_addr sha
Definition: rte_flow.h:1164
rte_flow_item_ipv6::has_shim6_ext
uint32_t has_shim6_ext
Definition: rte_flow.h:830
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:1167
rte_flow_action_of_push_mpls
Definition: rte_flow.h:2549
rte_ether_addr::addr_bytes
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:65
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:280
RTE_ETH_HASH_FUNCTION_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_TOEPLITZ
Definition: rte_flow.h:2330
rte_flow_action_jump
Definition: rte_flow.h:2229
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1087
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:1355
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:2878
RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:354
rte_flow_item_udp::hdr
struct rte_udp_hdr hdr
Definition: rte_flow.h:875
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:958
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:962
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:2320
rte_flow_shared_action_destroy
__rte_experimental int rte_flow_shared_action_destroy(uint16_t port_id, struct rte_flow_shared_action *action, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2003
RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:1780
rte_flow_item_type
rte_flow_item_type
Definition: rte_flow.h:119
rte_flow_item_icmp6_nd_opt_tla_eth::tla
struct rte_ether_addr tla
Definition: rte_flow.h:1349
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1394
rte_flow_item_l2tpv3oip
Definition: rte_flow.h:1464
RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
Definition: rte_flow.h:2337
RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:2887
RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:361
rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1230