DPDK  22.11.7
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_compat.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_vxlan.h>
29 #include <rte_esp.h>
30 #include <rte_higig.h>
31 #include <rte_ecpri.h>
32 #include <rte_bitops.h>
33 #include <rte_mbuf_dyn.h>
34 #include <rte_meter.h>
35 #include <rte_gtp.h>
36 #include <rte_l2tpv2.h>
37 #include <rte_ppp.h>
38 #include <rte_gre.h>
39 #include <rte_macsec.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 #define RTE_FLOW_LOG(level, ...) \
46  rte_log(RTE_LOG_ ## level, rte_eth_dev_logtype, "" __VA_ARGS__)
47 
88 struct rte_flow_attr {
89  uint32_t group;
90  uint32_t priority;
94  uint32_t ingress:1;
98  uint32_t egress:1;
116  uint32_t transfer:1;
117  uint32_t reserved:29;
118 };
119 
146 
156 
166 
174 
188 
195 
202 
209 
216 
223 
230 
237 
244 
251 
258 
265 
272 
279 
286 
298 
307 
316 
325 
332 
339 
346 
353 
360 
367 
374 
381 
388 
396 
404 
411 
420 
433 
442 
451 
460 
469 
476 
483 
490 
496 
505 
514 
521 
530 
537 
544 
555 
564 
573 
583 
592 
599 
606 
613 
620 
627 };
628 
636  struct rte_higig2_hdr hdr;
637 };
638 
640 #ifndef __cplusplus
642  .hdr = {
643  .ppt1 = {
644  .classification = 0xffff,
645  .vid = 0xfff,
646  },
647  },
648 };
649 #endif
650 
663  uint32_t num;
664 };
665 
667 #ifndef __cplusplus
668 static const struct rte_flow_item_any rte_flow_item_any_mask = {
669  .num = 0x00000000,
670 };
671 #endif
672 
688  uint32_t id;
689 };
690 
692 #ifndef __cplusplus
694  .id = 0xffffffff,
695 };
696 #endif
697 
717  uint32_t relative:1;
718  uint32_t search:1;
719  uint32_t reserved:30;
720  int32_t offset;
721  uint16_t limit;
722  uint16_t length;
723  const uint8_t *pattern;
724 };
725 
727 #ifndef __cplusplus
728 static const struct rte_flow_item_raw rte_flow_item_raw_mask = {
729  .relative = 1,
730  .search = 1,
731  .reserved = 0x3fffffff,
732  .offset = 0xffffffff,
733  .limit = 0xffff,
734  .length = 0xffff,
735  .pattern = NULL,
736 };
737 #endif
738 
758  union {
759  struct {
760  /*
761  * These fields are retained for compatibility.
762  * Please switch to the new header field below.
763  */
764  struct rte_ether_addr dst;
765  struct rte_ether_addr src;
767  };
768  struct rte_ether_hdr hdr;
769  };
770  uint32_t has_vlan:1;
771  uint32_t reserved:31;
772 };
773 
775 #ifndef __cplusplus
776 static const struct rte_flow_item_eth rte_flow_item_eth_mask = {
777  .hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
778  .hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
779  .hdr.ether_type = RTE_BE16(0x0000),
780 };
781 #endif
782 
800  union {
801  struct {
802  /*
803  * These fields are retained for compatibility.
804  * Please switch to the new header field below.
805  */
808  };
809  struct rte_vlan_hdr hdr;
810  };
812  uint32_t has_more_vlan:1;
813  uint32_t reserved:31;
814 };
815 
817 #ifndef __cplusplus
818 static const struct rte_flow_item_vlan rte_flow_item_vlan_mask = {
819  .hdr.vlan_tci = RTE_BE16(0x0fff),
820  .hdr.eth_proto = RTE_BE16(0x0000),
821 };
822 #endif
823 
832  struct rte_ipv4_hdr hdr;
833 };
834 
836 #ifndef __cplusplus
837 static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask = {
838  .hdr = {
839  .src_addr = RTE_BE32(0xffffffff),
840  .dst_addr = RTE_BE32(0xffffffff),
841  },
842 };
843 #endif
844 
853  struct rte_ipv6_hdr hdr;
855  uint32_t has_hop_ext:1;
857  uint32_t has_route_ext:1;
859  uint32_t has_frag_ext:1;
861  uint32_t has_auth_ext:1;
863  uint32_t has_esp_ext:1;
865  uint32_t has_dest_ext:1;
867  uint32_t has_mobil_ext:1;
869  uint32_t has_hip_ext:1;
871  uint32_t has_shim6_ext:1;
873  uint32_t reserved:23;
874 };
875 
877 #ifndef __cplusplus
878 static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask = {
879  .hdr = {
880  .src_addr =
881  "\xff\xff\xff\xff\xff\xff\xff\xff"
882  "\xff\xff\xff\xff\xff\xff\xff\xff",
883  .dst_addr =
884  "\xff\xff\xff\xff\xff\xff\xff\xff"
885  "\xff\xff\xff\xff\xff\xff\xff\xff",
886  },
887 };
888 #endif
889 
896  struct rte_icmp_hdr hdr;
897 };
898 
900 #ifndef __cplusplus
901 static const struct rte_flow_item_icmp rte_flow_item_icmp_mask = {
902  .hdr = {
903  .icmp_type = 0xff,
904  .icmp_code = 0xff,
905  },
906 };
907 #endif
908 
915  struct rte_udp_hdr hdr;
916 };
917 
919 #ifndef __cplusplus
920 static const struct rte_flow_item_udp rte_flow_item_udp_mask = {
921  .hdr = {
922  .src_port = RTE_BE16(0xffff),
923  .dst_port = RTE_BE16(0xffff),
924  },
925 };
926 #endif
927 
934  struct rte_tcp_hdr hdr;
935 };
936 
938 #ifndef __cplusplus
939 static const struct rte_flow_item_tcp rte_flow_item_tcp_mask = {
940  .hdr = {
941  .src_port = RTE_BE16(0xffff),
942  .dst_port = RTE_BE16(0xffff),
943  },
944 };
945 #endif
946 
953  struct rte_sctp_hdr hdr;
954 };
955 
957 #ifndef __cplusplus
958 static const struct rte_flow_item_sctp rte_flow_item_sctp_mask = {
959  .hdr = {
960  .src_port = RTE_BE16(0xffff),
961  .dst_port = RTE_BE16(0xffff),
962  },
963 };
964 #endif
965 
973  union {
974  struct {
975  /*
976  * These fields are retained for compatibility.
977  * Please switch to the new header field below.
978  */
979  uint8_t flags;
980  uint8_t rsvd0[3];
981  uint8_t vni[3];
982  uint8_t rsvd1;
983  };
984  struct rte_vxlan_hdr hdr;
985  };
986 };
987 
989 #ifndef __cplusplus
990 static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask = {
991  .hdr.vx_vni = RTE_BE32(0xffffff00), /* (0xffffff << 8) */
992 };
993 #endif
994 
1011  uint8_t in_ecid_e;
1012  uint8_t ecid_e;
1014 };
1015 
1017 #ifndef __cplusplus
1018 static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask = {
1019  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
1020 };
1021 #endif
1022 
1037  uint8_t tni[3];
1038  uint8_t flow_id;
1039 };
1040 
1042 #ifndef __cplusplus
1043 static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask = {
1044  .tni = "\xff\xff\xff",
1045 };
1046 #endif
1047 
1057  uint8_t label_tc_s[3];
1058  uint8_t ttl;
1059 };
1060 
1062 #ifndef __cplusplus
1063 static const struct rte_flow_item_mpls rte_flow_item_mpls_mask = {
1064  .label_tc_s = "\xff\xff\xf0",
1065 };
1066 #endif
1067 
1080 };
1081 
1083 #ifndef __cplusplus
1084 static const struct rte_flow_item_gre rte_flow_item_gre_mask = {
1085  .protocol = RTE_BE16(0xffff),
1086 };
1087 #endif
1088 
1095  struct rte_gre_hdr_opt_checksum_rsvd checksum_rsvd;
1096  struct rte_gre_hdr_opt_key key;
1097  struct rte_gre_hdr_opt_sequence sequence;
1098 };
1099 
1106  struct rte_macsec_hdr macsec_hdr;
1107 };
1108 
1127  uint32_t thresh;
1128 };
1129 
1131 #ifndef __cplusplus
1132 static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask = {
1133  .thresh = 0xffffffff,
1134 };
1135 #endif
1136 
1150  uint8_t msg_type;
1153 };
1154 
1156 #ifndef __cplusplus
1157 static const struct rte_flow_item_gtp rte_flow_item_gtp_mask = {
1158  .teid = RTE_BE32(0xffffffff),
1159 };
1160 #endif
1161 
1168  struct rte_esp_hdr hdr;
1169 };
1170 
1172 #ifndef __cplusplus
1173 static const struct rte_flow_item_esp rte_flow_item_esp_mask = {
1174  .hdr = {
1175  .spi = RTE_BE32(0xffffffff),
1176  },
1177 };
1178 #endif
1179 
1192  uint8_t vni[3];
1193  uint8_t rsvd1;
1194 };
1195 
1197 #ifndef __cplusplus
1198 static const struct rte_flow_item_geneve rte_flow_item_geneve_mask = {
1199  .vni = "\xff\xff\xff",
1200 };
1201 #endif
1202 
1209  uint8_t flags;
1210  uint8_t rsvd0[2];
1211  uint8_t protocol;
1212  uint8_t vni[3];
1213  uint8_t rsvd1;
1214 };
1215 
1217 #ifndef __cplusplus
1219  .vni = "\xff\xff\xff",
1220 };
1221 #endif
1222 
1231  uint8_t hln;
1232  uint8_t pln;
1234  struct rte_ether_addr sha;
1236  struct rte_ether_addr tha;
1238 };
1239 
1241 #ifndef __cplusplus
1242 static const struct rte_flow_item_arp_eth_ipv4
1244  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1245  .spa = RTE_BE32(0xffffffff),
1246  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1247  .tpa = RTE_BE32(0xffffffff),
1248 };
1249 #endif
1250 
1262  uint8_t next_hdr;
1263 };
1264 
1266 #ifndef __cplusplus
1267 static const
1269  .next_hdr = 0xff,
1270 };
1271 #endif
1272 
1284  struct rte_ipv6_fragment_ext hdr;
1285 };
1286 
1293  uint8_t type;
1294  uint8_t code;
1295  uint16_t checksum;
1296 };
1297 
1299 #ifndef __cplusplus
1300 static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask = {
1301  .type = 0xff,
1302  .code = 0xff,
1303 };
1304 #endif
1305 
1312  uint8_t type;
1313  uint8_t code;
1316  uint8_t target_addr[16];
1317 };
1318 
1320 #ifndef __cplusplus
1321 static const
1323  .target_addr =
1324  "\xff\xff\xff\xff\xff\xff\xff\xff"
1325  "\xff\xff\xff\xff\xff\xff\xff\xff",
1326 };
1327 #endif
1328 
1335  uint8_t type;
1336  uint8_t code;
1343  uint8_t target_addr[16];
1344 };
1345 
1347 #ifndef __cplusplus
1348 static const
1350  .target_addr =
1351  "\xff\xff\xff\xff\xff\xff\xff\xff"
1352  "\xff\xff\xff\xff\xff\xff\xff\xff",
1353 };
1354 #endif
1355 
1368  uint8_t type;
1369  uint8_t length;
1370 };
1371 
1373 #ifndef __cplusplus
1374 static const struct rte_flow_item_icmp6_nd_opt
1376  .type = 0xff,
1377 };
1378 #endif
1379 
1392  uint8_t type;
1393  uint8_t length;
1394  struct rte_ether_addr sla;
1395 };
1396 
1398 #ifndef __cplusplus
1399 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1401  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1402 };
1403 #endif
1404 
1417  uint8_t type;
1418  uint8_t length;
1419  struct rte_ether_addr tla;
1420 };
1421 
1423 #ifndef __cplusplus
1424 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1426  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1427 };
1428 #endif
1429 
1442  uint32_t data;
1443 };
1444 
1446 #ifndef __cplusplus
1447 static const struct rte_flow_item_meta rte_flow_item_meta_mask = {
1448  .data = UINT32_MAX,
1449 };
1450 #endif
1451 
1458  struct rte_gtp_psc_generic_hdr hdr;
1459 };
1460 
1462 #ifndef __cplusplus
1463 static const struct rte_flow_item_gtp_psc
1465  .hdr.qfi = 0x3f,
1466 };
1467 #endif
1468 
1478  uint8_t version_type;
1479  uint8_t code;
1482 };
1483 
1498 };
1499 
1501 #ifndef __cplusplus
1502 static const struct rte_flow_item_pppoe_proto_id
1504  .proto_id = RTE_BE16(0xffff),
1505 };
1506 #endif
1507 
1517  uint32_t data;
1518  uint8_t index;
1519 };
1520 
1522 #ifndef __cplusplus
1523 static const struct rte_flow_item_tag rte_flow_item_tag_mask = {
1524  .data = 0xffffffff,
1525  .index = 0xff,
1526 };
1527 #endif
1528 
1536 };
1537 
1539 #ifndef __cplusplus
1541  .session_id = RTE_BE32(UINT32_MAX),
1542 };
1543 #endif
1544 
1545 
1565  uint32_t id;
1566 };
1567 
1569 #ifndef __cplusplus
1570 static const struct rte_flow_item_mark rte_flow_item_mark_mask = {
1571  .id = 0xffffffff,
1572 };
1573 #endif
1574 
1585  uint32_t version:2;
1586  uint32_t oam_pkt:1;
1587  uint32_t reserved:1;
1588  uint32_t ttl:6;
1589  uint32_t length:6;
1590  uint32_t reserved1:4;
1591  uint32_t mdtype:4;
1592  uint32_t next_proto:8;
1593  uint32_t spi:24;
1594  uint32_t sindex:8;
1595 };
1596 
1598 #ifndef __cplusplus
1599 static const struct rte_flow_item_nsh rte_flow_item_nsh_mask = {
1600  .mdtype = 0xf,
1601  .next_proto = 0xff,
1602  .spi = 0xffffff,
1603  .sindex = 0xff,
1604 };
1605 #endif
1606 
1617  uint32_t type:8;
1618  uint32_t max_resp_time:8;
1619  uint32_t checksum:16;
1620  uint32_t group_addr;
1621 };
1622 
1624 #ifndef __cplusplus
1625 static const struct rte_flow_item_igmp rte_flow_item_igmp_mask = {
1626  .group_addr = 0xffffffff,
1627 };
1628 #endif
1629 
1640  uint32_t next_hdr:8;
1641  uint32_t payload_len:8;
1642  uint32_t reserved:16;
1643  uint32_t spi;
1644  uint32_t seq_num;
1645 };
1646 
1648 #ifndef __cplusplus
1649 static const struct rte_flow_item_ah rte_flow_item_ah_mask = {
1650  .spi = 0xffffffff,
1651 };
1652 #endif
1653 
1663  uint8_t s_field;
1664  uint8_t msg_type;
1665  rte_be16_t msg_len;
1666  rte_be64_t seid;
1667 };
1668 
1670 #ifndef __cplusplus
1671 static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask = {
1672  .s_field = 0x01,
1673  .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1674 };
1675 #endif
1676 
1686  struct rte_ecpri_combined_msg_hdr hdr;
1687 };
1688 
1690 #ifndef __cplusplus
1691 static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask = {
1692  .hdr = {
1693  .common = {
1694  .u32 = 0x0,
1695  },
1696  },
1697 };
1698 #endif
1699 
1706  rte_be16_t option_class;
1707  uint8_t option_type;
1708  uint8_t option_len;
1709  uint32_t *data;
1710 };
1711 
1713 #ifndef __cplusplus
1714 static const struct rte_flow_item_geneve_opt
1716  .option_type = 0xff,
1717 };
1718 #endif
1719 
1732  uint32_t level;
1733  RTE_STD_C11
1734  union {
1735  __extension__
1736  struct {
1738  uint64_t packet_ok:1;
1740  uint64_t l2_ok:1;
1742  uint64_t l3_ok:1;
1744  uint64_t l4_ok:1;
1746  uint64_t l2_crc_ok:1;
1748  uint64_t ipv4_csum_ok:1;
1750  uint64_t l4_csum_ok:1;
1752  uint64_t l3_len_ok:1;
1753  uint64_t reserved:56;
1754  };
1755  uint64_t value;
1756  };
1757 };
1758 
1759 #ifndef __cplusplus
1760 static const struct rte_flow_item_integrity
1761 rte_flow_item_integrity_mask = {
1762  .level = 0,
1763  .value = 0,
1764 };
1765 #endif
1766 
1770 #define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1771 
1774 #define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1775 
1779 #define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1780 
1784 #define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1785 
1789 #define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1790 
1802  uint32_t flags;
1803 };
1804 
1806 #ifndef __cplusplus
1808  .flags = 0xffffffff,
1809 };
1810 #endif
1811 
1818  uint16_t port_id;
1819 };
1820 
1822 #ifndef __cplusplus
1823 static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask = {
1824  .port_id = 0xffff,
1825 };
1826 #endif
1827 
1837  struct rte_l2tpv2_combined_msg_hdr hdr;
1838 };
1839 
1841 #ifndef __cplusplus
1842 static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask = {
1843  /*
1844  * flags and version bit mask
1845  * 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1846  * T L x x S x O P x x x x V V V V
1847  */
1848  .hdr = {
1849  .common = {
1850  .flags_version = RTE_BE16(0xcb0f),
1851  },
1852  },
1853 };
1854 #endif
1855 
1865  struct rte_ppp_hdr hdr;
1866 };
1867 
1869 #ifndef __cplusplus
1870 static const struct rte_flow_item_ppp rte_flow_item_ppp_mask = {
1871  .hdr = {
1872  .addr = 0xff,
1873  .ctrl = 0xff,
1874  .proto_id = RTE_BE16(0xffff),
1875  }
1876 };
1877 #endif
1878 
1913  enum rte_flow_item_type type;
1914  const void *spec;
1915  const void *last;
1916  const void *mask;
1917 };
1918 
1936  struct rte_flow_item_flex_handle *handle;
1937  uint32_t length;
1938  const uint8_t *pattern;
1939 };
1971 };
1972 
2002 };
2003 
2009 __extension__
2013  uint32_t field_size;
2014  int32_t field_base;
2015  uint32_t offset_base;
2016  uint32_t offset_mask;
2017  int32_t offset_shift;
2018  uint32_t field_id:16;
2019  uint32_t reserved:16;
2020 };
2021 
2032  struct rte_flow_item item;
2037  uint32_t next;
2038 };
2039 
2069  uint32_t nb_samples;
2079  uint32_t nb_inputs;
2087  uint32_t nb_outputs;
2088 };
2089 
2096  enum rte_color color;
2097 };
2098 
2100 #ifndef __cplusplus
2102  .color = RTE_COLORS,
2103 };
2104 #endif
2105 
2140 
2148 
2156 
2165 
2177 
2189 
2196 
2205 
2216 
2225 
2237 
2249 
2260 
2268 
2276 
2287 
2295 
2303 
2311 
2319 
2327 
2335 
2343 
2352 
2360 
2369 
2376 
2383 
2396 
2409 
2422 
2435 
2449 
2463 
2474 
2484 
2494 
2507 
2520 
2537 
2554 
2571 
2588 
2601 
2611 
2624 
2637 
2650 
2658 
2669 
2680 
2688 
2697 
2705 
2712 
2720 
2728 
2739 };
2740 
2752  uint32_t id;
2753 };
2754 
2768  uint32_t group;
2769 };
2770 
2777  uint16_t index;
2778 };
2779 
2794  uint32_t timeout:24;
2795  uint32_t reserved:8;
2797  void *context;
2798 };
2799 
2807  uint32_t reserved:6;
2808  uint32_t aged:1;
2811  uint32_t sec_since_last_hit:24;
2812 };
2813 
2834  uint32_t reserved:6;
2835  uint32_t timeout_valid:1;
2836  uint32_t timeout:24;
2838  uint32_t touch:1;
2839 };
2840 
2859  uint32_t id;
2860 };
2861 
2868  uint32_t reset:1;
2869  uint32_t hits_set:1;
2870  uint32_t bytes_set:1;
2871  uint32_t reserved:29;
2872  uint64_t hits;
2873  uint64_t bytes;
2874 };
2875 
2880  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2889  RTE_ETH_HASH_FUNCTION_MAX,
2890 };
2891 
2935  uint32_t level;
2936  uint64_t types;
2937  uint32_t key_len;
2938  uint32_t queue_num;
2939  const uint8_t *key;
2940  const uint16_t *queue;
2941 };
2942 
2960  uint32_t original:1;
2961  uint32_t reserved:31;
2962  uint32_t id;
2963 };
2964 
2977  uint32_t original:1;
2978  uint32_t reserved:31;
2979  uint32_t id;
2980 };
2981 
2991  uint32_t mtr_id;
2992 };
2993 
3026 };
3027 
3036 };
3037 
3046 };
3047 
3055  uint8_t vlan_pcp;
3056 };
3057 
3066 };
3067 
3076 };
3077 
3111 };
3112 
3145 };
3146 
3167  uint8_t *data;
3168  uint8_t *preserve;
3169  size_t size;
3170 };
3171 
3188  uint8_t *data;
3189  size_t size;
3190 };
3191 
3204  rte_be32_t ipv4_addr;
3205 };
3206 
3219  uint8_t ipv6_addr[16];
3220 };
3221 
3234  rte_be16_t port;
3235 };
3236 
3243  uint8_t ttl_value;
3244 };
3245 
3252  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
3253 };
3254 
3265  uint32_t data;
3266  uint32_t mask;
3267  uint8_t index;
3268 };
3269 
3290  uint32_t data;
3291  uint32_t mask;
3292 };
3293 
3302  uint8_t dscp;
3303 };
3304 
3322 struct rte_flow_action_handle;
3323 
3340 };
3341 
3352 };
3353 
3365  uint32_t scale:4;
3367  uint32_t close_initiated:1;
3369  uint32_t last_ack_seen:1;
3374  uint32_t data_unacked:1;
3379  uint32_t sent_end;
3384  uint32_t reply_end;
3386  uint32_t max_win;
3388  uint32_t max_ack;
3389 };
3390 
3403  uint16_t peer_port;
3408  uint32_t is_original_dir:1;
3416  uint32_t enable:1;
3418  uint32_t live_connection:1;
3420  uint32_t selective_ack:1;
3427  uint32_t last_direction:1;
3429  uint32_t liberal_mode:1;
3441  uint16_t last_window;
3442  enum rte_flow_conntrack_tcp_last_index last_index;
3444  uint32_t last_seq;
3446  uint32_t last_ack;
3451  uint32_t last_end;
3452 };
3453 
3465  uint32_t direction:1;
3467  uint32_t state:1;
3469  uint32_t reserved:30;
3470 };
3471 
3482  enum rte_color color;
3483 };
3484 
3491  uint16_t port_id;
3492 };
3493 
3531 };
3532 
3540  enum rte_flow_field_id field;
3541  RTE_STD_C11
3542  union {
3543  struct {
3545  uint32_t level;
3547  uint32_t offset;
3548  };
3555  uint8_t value[16];
3561  void *pvalue;
3562  };
3563 };
3564 
3572 };
3573 
3588  uint32_t width;
3589 };
3590 
3603 
3605  struct rte_flow_meter_profile *profile;
3607  struct rte_flow_meter_policy *policy;
3611  enum rte_color init_color;
3613  int state;
3614 };
3615 
3626  uint32_t profile_valid:1;
3628  uint32_t policy_valid:1;
3630  uint32_t color_mode_valid:1;
3632  uint32_t init_color_valid:1;
3634  uint32_t state_valid:1;
3636  uint32_t reserved:27;
3637 };
3638 
3639 /* Mbuf dynamic field offset for metadata. */
3640 extern int32_t rte_flow_dynf_metadata_offs;
3641 
3642 /* Mbuf dynamic field flag mask for metadata. */
3643 extern uint64_t rte_flow_dynf_metadata_mask;
3644 
3645 /* Mbuf dynamic field pointer for metadata. */
3646 #define RTE_FLOW_DYNF_METADATA(m) \
3647  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
3648 
3649 /* Mbuf dynamic flags for metadata. */
3650 #define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
3651 #define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
3652 
3653 __rte_experimental
3654 static inline uint32_t
3655 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
3656 {
3657  return *RTE_FLOW_DYNF_METADATA(m);
3658 }
3659 
3660 __rte_experimental
3661 static inline void
3662 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
3663 {
3664  *RTE_FLOW_DYNF_METADATA(m) = v;
3665 }
3666 
3675  enum rte_flow_action_type type;
3676  const void *conf;
3677 };
3678 
3685 struct rte_flow;
3686 
3692 struct rte_flow_meter_profile;
3693 
3699 struct rte_flow_meter_policy;
3700 
3718  uint32_t ratio;
3720  const struct rte_flow_action *actions;
3721 };
3722 
3748 };
3749 
3762  enum rte_flow_error_type type;
3763  const void *cause;
3764  const char *message;
3765 };
3766 
3777  union {
3778  const struct rte_flow_attr *attr_ro;
3780  };
3781  union {
3782  const struct rte_flow_item *pattern_ro;
3784  };
3785  union {
3786  const struct rte_flow_action *actions_ro;
3788  };
3789 };
3790 
3803 
3815 
3827 
3839 
3852 
3865 
3878 
3892 
3906 
3920 
3934 };
3935 
3955 __rte_experimental
3956 int
3957 rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow,
3958  FILE *file, struct rte_flow_error *error);
3959 
3966 __rte_experimental
3967 static inline int
3969 {
3970  return !!rte_flow_dynf_metadata_mask;
3971 }
3972 
3983 __rte_experimental
3984 int
3986 
4039 int
4040 rte_flow_validate(uint16_t port_id,
4041  const struct rte_flow_attr *attr,
4042  const struct rte_flow_item pattern[],
4043  const struct rte_flow_action actions[],
4044  struct rte_flow_error *error);
4045 
4066 struct rte_flow *
4067 rte_flow_create(uint16_t port_id,
4068  const struct rte_flow_attr *attr,
4069  const struct rte_flow_item pattern[],
4070  const struct rte_flow_action actions[],
4071  struct rte_flow_error *error);
4072 
4093 int
4094 rte_flow_destroy(uint16_t port_id,
4095  struct rte_flow *flow,
4096  struct rte_flow_error *error);
4097 
4114 int
4115 rte_flow_flush(uint16_t port_id,
4116  struct rte_flow_error *error);
4117 
4142 int
4143 rte_flow_query(uint16_t port_id,
4144  struct rte_flow *flow,
4145  const struct rte_flow_action *action,
4146  void *data,
4147  struct rte_flow_error *error);
4148 
4194 int
4195 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
4196 
4214 int
4216  int code,
4217  enum rte_flow_error_type type,
4218  const void *cause,
4219  const char *message);
4220 
4226  size_t size;
4227  struct rte_flow_attr attr;
4230  uint8_t data[];
4231 };
4232 
4259 __rte_deprecated
4260 size_t
4261 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
4262  const struct rte_flow_attr *attr,
4263  const struct rte_flow_item *items,
4264  const struct rte_flow_action *actions);
4265 
4306 __rte_experimental
4307 int
4309  void *dst,
4310  size_t size,
4311  const void *src,
4312  struct rte_flow_error *error);
4313 
4342 __rte_experimental
4343 int
4344 rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
4345  uint32_t nb_contexts, struct rte_flow_error *error);
4346 
4386 __rte_experimental
4387 int
4388 rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts,
4389  uint32_t nb_contexts, struct rte_flow_error *error);
4390 
4402  uint32_t ingress:1;
4404  uint32_t egress:1;
4409  uint32_t transfer:1;
4410 };
4411 
4439 __rte_experimental
4440 struct rte_flow_action_handle *
4442  const struct rte_flow_indir_action_conf *conf,
4443  const struct rte_flow_action *action,
4444  struct rte_flow_error *error);
4445 
4468 __rte_experimental
4469 int
4471  struct rte_flow_action_handle *handle,
4472  struct rte_flow_error *error);
4473 
4507 __rte_experimental
4508 int
4510  struct rte_flow_action_handle *handle,
4511  const void *update,
4512  struct rte_flow_error *error);
4513 
4539 __rte_experimental
4540 int
4542  const struct rte_flow_action_handle *handle,
4543  void *data, struct rte_flow_error *error);
4544 
4545 /* Tunnel has a type and the key information. */
4546 struct rte_flow_tunnel {
4551  enum rte_flow_item_type type;
4552  uint64_t tun_id;
4554  RTE_STD_C11
4555  union {
4556  struct {
4559  } ipv4;
4560  struct {
4561  uint8_t src_addr[16];
4562  uint8_t dst_addr[16];
4563  } ipv6;
4564  };
4565  rte_be16_t tp_src;
4566  rte_be16_t tp_dst;
4567  uint16_t tun_flags;
4569  bool is_ipv6;
4575  uint8_t tos;
4576  uint8_t ttl;
4577  uint32_t label;
4578 };
4579 
4583 #define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
4584 
4588 #define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
4589 
4593 #define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
4594 
4605  uint64_t flags;
4606  uint32_t group_id;
4607  struct rte_flow_tunnel tunnel;
4608 };
4609 
4633 __rte_experimental
4634 int
4635 rte_flow_tunnel_decap_set(uint16_t port_id,
4636  struct rte_flow_tunnel *tunnel,
4637  struct rte_flow_action **actions,
4638  uint32_t *num_of_actions,
4639  struct rte_flow_error *error);
4640 
4664 __rte_experimental
4665 int
4666 rte_flow_tunnel_match(uint16_t port_id,
4667  struct rte_flow_tunnel *tunnel,
4668  struct rte_flow_item **items,
4669  uint32_t *num_of_items,
4670  struct rte_flow_error *error);
4671 
4692 __rte_experimental
4693 int
4694 rte_flow_get_restore_info(uint16_t port_id,
4695  struct rte_mbuf *m,
4696  struct rte_flow_restore_info *info,
4697  struct rte_flow_error *error);
4698 
4715 __rte_experimental
4716 int
4718  struct rte_flow_action *actions,
4719  uint32_t num_of_actions,
4720  struct rte_flow_error *error);
4721 
4738 __rte_experimental
4739 int
4741  struct rte_flow_item *items,
4742  uint32_t num_of_items,
4743  struct rte_flow_error *error);
4744 
4770 int
4771 rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id,
4772  struct rte_flow_error *error);
4773 
4792 __rte_experimental
4793 struct rte_flow_item_flex_handle *
4794 rte_flow_flex_item_create(uint16_t port_id,
4795  const struct rte_flow_item_flex_conf *conf,
4796  struct rte_flow_error *error);
4797 
4812 __rte_experimental
4813 int
4815  const struct rte_flow_item_flex_handle *handle,
4816  struct rte_flow_error *error);
4817 
4822 #define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
4823 
4836  uint32_t max_nb_queues;
4851  uint32_t max_nb_meters;
4861 };
4862 
4875  uint32_t max_size;
4876 };
4877 
4899 __rte_experimental
4900 int
4901 rte_flow_info_get(uint16_t port_id,
4902  struct rte_flow_port_info *port_info,
4903  struct rte_flow_queue_info *queue_info,
4904  struct rte_flow_error *error);
4905 
4919  uint32_t nb_counters;
4929  uint32_t nb_meters;
4934  uint32_t nb_conn_tracks;
4938  uint32_t flags;
4939 };
4940 
4953  uint32_t size;
4954 };
4955 
4987 __rte_experimental
4988 int
4989 rte_flow_configure(uint16_t port_id,
4990  const struct rte_flow_port_attr *port_attr,
4991  uint16_t nb_queue,
4992  const struct rte_flow_queue_attr *queue_attr[],
4993  struct rte_flow_error *error);
4994 
4999 struct rte_flow_pattern_template;
5000 
5007 __extension__
5016  uint32_t relaxed_matching:1;
5022  uint32_t ingress:1;
5024  uint32_t egress:1;
5026  uint32_t transfer:1;
5027 };
5028 
5056 __rte_experimental
5057 struct rte_flow_pattern_template *
5059  const struct rte_flow_pattern_template_attr *template_attr,
5060  const struct rte_flow_item pattern[],
5061  struct rte_flow_error *error);
5062 
5083 __rte_experimental
5084 int
5086  struct rte_flow_pattern_template *pattern_template,
5087  struct rte_flow_error *error);
5088 
5093 struct rte_flow_actions_template;
5094 
5101 __extension__
5108  uint32_t ingress:1;
5110  uint32_t egress:1;
5112  uint32_t transfer:1;
5113 };
5114 
5150 __rte_experimental
5151 struct rte_flow_actions_template *
5153  const struct rte_flow_actions_template_attr *template_attr,
5154  const struct rte_flow_action actions[],
5155  const struct rte_flow_action masks[],
5156  struct rte_flow_error *error);
5157 
5178 __rte_experimental
5179 int
5181  struct rte_flow_actions_template *actions_template,
5182  struct rte_flow_error *error);
5183 
5188 struct rte_flow_template_table;
5189 
5200  struct rte_flow_attr flow_attr;
5204  uint32_t nb_flows;
5205 };
5206 
5239 __rte_experimental
5240 struct rte_flow_template_table *
5242  const struct rte_flow_template_table_attr *table_attr,
5243  struct rte_flow_pattern_template *pattern_templates[],
5244  uint8_t nb_pattern_templates,
5245  struct rte_flow_actions_template *actions_templates[],
5246  uint8_t nb_actions_templates,
5247  struct rte_flow_error *error);
5248 
5269 __rte_experimental
5270 int
5272  struct rte_flow_template_table *template_table,
5273  struct rte_flow_error *error);
5274 
5281 __extension__
5287  uint32_t postpone:1;
5288 };
5289 
5326 __rte_experimental
5327 struct rte_flow *
5328 rte_flow_async_create(uint16_t port_id,
5329  uint32_t queue_id,
5330  const struct rte_flow_op_attr *op_attr,
5331  struct rte_flow_template_table *template_table,
5332  const struct rte_flow_item pattern[],
5333  uint8_t pattern_template_index,
5334  const struct rte_flow_action actions[],
5335  uint8_t actions_template_index,
5336  void *user_data,
5337  struct rte_flow_error *error);
5338 
5368 __rte_experimental
5369 int
5370 rte_flow_async_destroy(uint16_t port_id,
5371  uint32_t queue_id,
5372  const struct rte_flow_op_attr *op_attr,
5373  struct rte_flow *flow,
5374  void *user_data,
5375  struct rte_flow_error *error);
5376 
5397 __rte_experimental
5398 int
5399 rte_flow_push(uint16_t port_id,
5400  uint32_t queue_id,
5401  struct rte_flow_error *error);
5402 
5418 };
5419 
5426 __extension__
5435  void *user_data;
5436 };
5437 
5463 __rte_experimental
5464 int
5465 rte_flow_pull(uint16_t port_id,
5466  uint32_t queue_id,
5467  struct rte_flow_op_result res[],
5468  uint16_t n_res,
5469  struct rte_flow_error *error);
5470 
5497 __rte_experimental
5498 struct rte_flow_action_handle *
5500  uint32_t queue_id,
5501  const struct rte_flow_op_attr *op_attr,
5502  const struct rte_flow_indir_action_conf *indir_action_conf,
5503  const struct rte_flow_action *action,
5504  void *user_data,
5505  struct rte_flow_error *error);
5506 
5532 __rte_experimental
5533 int
5535  uint32_t queue_id,
5536  const struct rte_flow_op_attr *op_attr,
5537  struct rte_flow_action_handle *action_handle,
5538  void *user_data,
5539  struct rte_flow_error *error);
5540 
5571 __rte_experimental
5572 int
5574  uint32_t queue_id,
5575  const struct rte_flow_op_attr *op_attr,
5576  struct rte_flow_action_handle *action_handle,
5577  const void *update,
5578  void *user_data,
5579  struct rte_flow_error *error);
5580 
5615 __rte_experimental
5616 int
5618  uint32_t queue_id,
5619  const struct rte_flow_op_attr *op_attr,
5620  const struct rte_flow_action_handle *action_handle,
5621  void *data,
5622  void *user_data,
5623  struct rte_flow_error *error);
5624 
5625 #ifdef __cplusplus
5626 }
5627 #endif
5628 
5629 #endif /* RTE_FLOW_H_ */
rte_flow_op_result
Definition: rte_flow.h:5427
rte_flow_action_security
Definition: rte_flow.h:3024
RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
Definition: rte_flow.h:3335
rte_flow_item_tcp
Definition: rte_flow.h:933
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:3144
RTE_FLOW_CONNTRACK_FLAG_NONE
@ RTE_FLOW_CONNTRACK_FLAG_NONE
Definition: rte_flow.h:3346
rte_flow_port_info::max_nb_conn_tracks
uint32_t max_nb_conn_tracks
Definition: rte_flow.h:4856
rte_flow_item_geneve
Definition: rte_flow.h:1185
rte_flow_action_conntrack::is_original_dir
uint32_t is_original_dir
Definition: rte_flow.h:3408
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1369
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2553
rte_flow_action_set_tag
Definition: rte_flow.h:3264
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:1037
rte_gre_hdr_opt_key
Definition: rte_gre.h:62
RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:2259
RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:419
rte_flow_item_port_id
Definition: rte_flow.h:687
rte_flow_port_info::max_nb_meters
uint32_t max_nb_meters
Definition: rte_flow.h:4851
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:3189
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:3740
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2434
rte_flow_item_flex_field::offset_shift
int32_t offset_shift
Definition: rte_flow.h:2017
RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2462
rte_flow_item_ipv4::hdr
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:832
rte_flow_action_set_tp
Definition: rte_flow.h:3233
RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:250
rte_flow_item_icmp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:901
rte_flow_action_raw_encap
Definition: rte_flow.h:3166
rte_flow_action_conntrack::max_ack_window
uint8_t max_ack_window
Definition: rte_flow.h:3433
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:3786
rte_flow_desc::size
size_t size
Definition: rte_flow.h:4226
FIELD_MODE_BITMASK
@ FIELD_MODE_BITMASK
Definition: rte_flow.h:1970
rte_flow_item_pppoe_proto_id
Definition: rte_flow.h:1496
RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:3891
rte_flow_update_age::touch
uint32_t touch
Definition: rte_flow.h:2838
rte_flow_action_vxlan_encap
Definition: rte_flow.h:3105
rte_flow_actions_template_attr::transfer
uint32_t transfer
Definition: rte_flow.h:5112
rte_flow_action_port_id
Definition: rte_flow.h:2976
rte_flow_item_l2tpv3oip::session_id
rte_be32_t session_id
Definition: rte_flow.h:1535
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:1127
rte_flow_item_pppoe::session_id
rte_be16_t session_id
Definition: rte_flow.h:1480
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:2859
RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:359
rte_flow_modify_op
rte_flow_modify_op
Definition: rte_flow.h:3568
rte_flow_item_conntrack
Definition: rte_flow.h:1801
rte_flow_op_result::user_data
void * user_data
Definition: rte_flow.h:5435
rte_flow_item_ipv6_ext::next_hdr
uint8_t next_hdr
Definition: rte_flow.h:1262
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1393
rte_flow_pattern_template_destroy
__rte_experimental int rte_flow_pattern_template_destroy(uint16_t port_id, struct rte_flow_pattern_template *pattern_template, struct rte_flow_error *error)
rte_vxlan.h
rte_sctp.h
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:2636
rte_flow_query_count
Definition: rte_flow.h:2867
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:2326
rte_flow_get_q_aged_flows
__rte_experimental int rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
Definition: rte_flow.h:3339
RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:297
rte_flow_item_higig2_hdr
Definition: rte_flow.h:635
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1314
rte_flow_desc
Definition: rte_flow.h:4225
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:1231
rte_flow_configure
__rte_experimental int rte_flow_configure(uint16_t port_id, const struct rte_flow_port_attr *port_attr, uint16_t nb_queue, const struct rte_flow_queue_attr *queue_attr[], struct rte_flow_error *error)
rte_flow_modify_conntrack::new_ct
struct rte_flow_action_conntrack new_ct
Definition: rte_flow.h:3463
rte_flow_item_flex
Definition: rte_flow.h:1935
RTE_FLOW_CONNTRACK_STATE_LAST_ACK
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
Definition: rte_flow.h:3337
rte_meter.h
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:1230
rte_flow_action_modify_data::pvalue
void * pvalue
Definition: rte_flow.h:3561
RTE_FLOW_FIELD_IPV6_SRC
@ RTE_FLOW_FIELD_IPV6_SRC
Definition: rte_flow.h:3510
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:3169
rte_flow_item_esp
Definition: rte_flow.h:1167
RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:2600
RTE_FLOW_ITEM_TYPE_GRE
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:285
RTE_FLOW_ITEM_TYPE_UDP
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:236
RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:264
rte_flow_attr::transfer
uint32_t transfer
Definition: rte_flow.h:116
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:2395
rte_ppp_hdr
Definition: rte_ppp.h:24
rte_flow_action_of_push_vlan
Definition: rte_flow.h:3034
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1193
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2879
rte_ecpri_common_hdr::u32
rte_be32_t u32
Definition: rte_ecpri.h:72
rte_flow_item_flex_conf::input_link
struct rte_flow_item_flex_link * input_link
Definition: rte_flow.h:2077
rte_flow_attr::egress
uint32_t egress
Definition: rte_flow.h:98
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:859
rte_flow_action_set_ipv4
Definition: rte_flow.h:3203
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:3733
rte_ipv6_hdr::src_addr
uint8_t src_addr[16]
Definition: rte_ip.h:543
rte_flow_attr::ingress
uint32_t ingress
Definition: rte_flow.h:94
rte_flow_item_ppp
Definition: rte_flow.h:1864
rte_flow_item_arp_eth_ipv4::op
rte_be16_t op
Definition: rte_flow.h:1233
rte_flow_item_flex_conf
Definition: rte_flow.h:2044
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:2961
rte_flow_update_meter_mark::reserved
uint32_t reserved
Definition: rte_flow.h:3636
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:468
rte_flow_action_age::context
void * context
Definition: rte_flow.h:2797
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:3735
rte_flow_item_flex_conf::nb_inputs
uint32_t nb_inputs
Definition: rte_flow.h:2079
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:1243
RTE_FLOW_OP_SUCCESS
@ RTE_FLOW_OP_SUCCESS
Definition: rte_flow.h:5413
rte_flow_push
__rte_experimental int rte_flow_push(uint16_t port_id, uint32_t queue_id, struct rte_flow_error *error)
rte_esp.h
rte_flow_tcp_dir_param::scale
uint32_t scale
Definition: rte_flow.h:3365
RTE_FLOW_CONNTRACK_FLAG_ACK
@ RTE_FLOW_CONNTRACK_FLAG_ACK
Definition: rte_flow.h:3350
rte_flow_action_count
Definition: rte_flow.h:2858
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:2294
RTE_FLOW_FIELD_META
@ RTE_FLOW_FIELD_META
Definition: rte_flow.h:3524
rte_flow_query_age::sec_since_last_hit
uint32_t sec_since_last_hit
Definition: rte_flow.h:2811
rte_flow_port_info::max_nb_counters
uint32_t max_nb_counters
Definition: rte_flow.h:4841
rte_flow_item_vlan::reserved
uint32_t reserved
Definition: rte_flow.h:813
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:3731
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:2342
rte_flow_action_conntrack::original_dir
struct rte_flow_tcp_dir_param original_dir
Definition: rte_flow.h:3437
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:1010
RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:3732
RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2483
rte_flow_info_get
__rte_experimental int rte_flow_info_get(uint16_t port_id, struct rte_flow_port_info *port_info, struct rte_flow_queue_info *queue_info, struct rte_flow_error *error)
rte_higig2_hdr
Definition: rte_higig.h:140
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:2351
rte_flow_indir_action_conf::transfer
uint32_t transfer
Definition: rte_flow.h:4409
rte_flow_item_integrity::l2_ok
uint64_t l2_ok
Definition: rte_flow.h:1740
rte_flow_port_attr::nb_meters
uint32_t nb_meters
Definition: rte_flow.h:4929
rte_flow_item_tag_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1523
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2506
rte_flow_action_meter
Definition: rte_flow.h:2990
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1337
rte_flow_item_nsh
Definition: rte_flow.h:1584
RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:229
RTE_FLOW_FIELD_IPV4_SRC
@ RTE_FLOW_FIELD_IPV4_SRC
Definition: rte_flow.h:3506
rte_flow_template_table_attr
Definition: rte_flow.h:5196
rte_flow_action_meter_mark::profile
struct rte_flow_meter_profile * profile
Definition: rte_flow.h:3605
rte_flow_item_gtp::v_pt_rsv_flags
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1149
rte_flow_item_any
Definition: rte_flow.h:662
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:982
RTE_FLOW_FIELD_IPV4_DSCP
@ RTE_FLOW_FIELD_IPV4_DSCP
Definition: rte_flow.h:3504
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
rte_flow_item_flex_field::field_id
uint32_t field_id
Definition: rte_flow.h:2018
RTE_FLOW_ITEM_TYPE_L2TPV3OIP
@ RTE_FLOW_ITEM_TYPE_L2TPV3OIP
Definition: rte_flow.h:513
RTE_FLOW_ACTION_TYPE_METER_MARK
@ RTE_FLOW_ACTION_TYPE_METER_MARK
Definition: rte_flow.h:2727
rte_flow_item_meter_color_mask
static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask
Definition: rte_flow.h:2101
RTE_FLOW_FIELD_TCP_SEQ_NUM
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
Definition: rte_flow.h:3514
rte_flow_item_gre
Definition: rte_flow.h:1073
RTE_FLOW_ITEM_TYPE_L2TPV2
@ RTE_FLOW_ITEM_TYPE_L2TPV2
Definition: rte_flow.h:598
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:2777
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:1079
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1190
RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:482
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:720
RTE_FLOW_ACTION_TYPE_SAMPLE
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:2657
rte_flow_item_conntrack_mask
static const struct rte_flow_item_conntrack rte_flow_item_conntrack_mask
Definition: rte_flow.h:1807
RTE_FLOW_FIELD_VLAN_ID
@ RTE_FLOW_FIELD_VLAN_ID
Definition: rte_flow.h:3502
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:2132
rte_flow_queue_info::max_size
uint32_t max_size
Definition: rte_flow.h:4875
RTE_FLOW_FIELD_GTP_TEID
@ RTE_FLOW_FIELD_GTP_TEID
Definition: rte_flow.h:3521
RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2139
rte_flow_action_modify_field::src
struct rte_flow_action_modify_data src
Definition: rte_flow.h:3587
rte_flow_template_table_create
__rte_experimental struct rte_flow_template_table * rte_flow_template_table_create(uint16_t port_id, const struct rte_flow_template_table_attr *table_attr, struct rte_flow_pattern_template *pattern_templates[], uint8_t nb_pattern_templates, struct rte_flow_actions_template *actions_templates[], uint8_t nb_actions_templates, struct rte_flow_error *error)
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:958
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:1013
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:1036
rte_flow_action_handle_query
__rte_experimental int rte_flow_action_handle_query(uint16_t port_id, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:380
rte_flow_port_info::max_nb_queues
uint32_t max_nb_queues
Definition: rte_flow.h:4836
RTE_FLOW_ACTION_TYPE_INDIRECT
@ RTE_FLOW_ACTION_TYPE_INDIRECT
Definition: rte_flow.h:2687
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:818
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)
FLEX_TUNNEL_MODE_OUTER
@ FLEX_TUNNEL_MODE_OUTER
Definition: rte_flow.h:1988
rte_flow_item_vxlan::flags
uint8_t flags
Definition: rte_flow.h:979
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:3110
RTE_FLOW_ACTION_TYPE_METER_COLOR
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
Definition: rte_flow.h:2704
RTE_FLOW_ITEM_TYPE_TCP
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:243
rte_flow_item_integrity::l2_crc_ok
uint64_t l2_crc_ok
Definition: rte_flow.h:1746
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1368
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:4228
rte_l2tpv2_common_hdr::flags_version
rte_be16_t flags_version
Definition: rte_l2tpv2.h:101
RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:3730
rte_flow_item_ipv4
Definition: rte_flow.h:831
RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:3739
rte_flow_queue_attr::size
uint32_t size
Definition: rte_flow.h:4953
RTE_FLOW_CONV_OP_NONE
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:3802
FIELD_MODE_OFFSET
@ FIELD_MODE_OFFSET
Definition: rte_flow.h:1961
RTE_FLOW_ITEM_TYPE_CONNTRACK
@ RTE_FLOW_ITEM_TYPE_CONNTRACK
Definition: rte_flow.h:563
rte_flow_pattern_template_attr::transfer
uint32_t transfer
Definition: rte_flow.h:5026
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:2334
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:1283
rte_flow_modify_conntrack::direction
uint32_t direction
Definition: rte_flow.h:3465
RTE_FLOW_ITEM_TYPE_ECPRI
@ RTE_FLOW_ITEM_TYPE_ECPRI
Definition: rte_flow.h:529
rte_flow_item
Definition: rte_flow.h:1912
rte_flow_item_pppoe::version_type
uint8_t version_type
Definition: rte_flow.h:1478
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:1913
rte_flow_item_flex_tunnel_mode
rte_flow_item_flex_tunnel_mode
Definition: rte_flow.h:1976
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:1503
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:990
rte_flow_update_age::reserved
uint32_t reserved
Definition: rte_flow.h:2834
RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:2275
rte_flow_pattern_template_create
__rte_experimental struct rte_flow_pattern_template * rte_flow_pattern_template_create(uint16_t port_id, const struct rte_flow_pattern_template_attr *template_attr, const struct rte_flow_item pattern[], struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_PPP
@ RTE_FLOW_ITEM_TYPE_PPP
Definition: rte_flow.h:605
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:2375
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:582
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:1211
rte_ecpri_combined_msg_hdr
Definition: rte_ecpri.h:173
rte_flow_item_flex_conf::tunnel
enum rte_flow_item_flex_tunnel_mode tunnel
Definition: rte_flow.h:2050
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2519
rte_flow_action_modify_data::field
enum rte_flow_field_id field
Definition: rte_flow.h:3540
RTE_FLOW_ACTION_TYPE_JUMP
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:2164
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1417
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:1011
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:1914
rte_flow_pattern_template_attr::relaxed_matching
uint32_t relaxed_matching
Definition: rte_flow.h:5016
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:3762
rte_flow_action_modify_field::width
uint32_t width
Definition: rte_flow.h:3588
rte_flow_update_meter_mark
Definition: rte_flow.h:3622
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1132
RTE_FLOW_ITEM_TYPE_MACSEC
@ RTE_FLOW_ITEM_TYPE_MACSEC
Definition: rte_flow.h:619
rte_flow_action_conntrack::retransmission_limit
uint8_t retransmission_limit
Definition: rte_flow.h:3435
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:663
RTE_FLOW_FIELD_VLAN_TYPE
@ RTE_FLOW_FIELD_VLAN_TYPE
Definition: rte_flow.h:3501
rte_flow_item_integrity::l4_ok
uint64_t l4_ok
Definition: rte_flow.h:1744
RTE_FLOW_FIELD_IPV6_DST
@ RTE_FLOW_FIELD_IPV6_DST
Definition: rte_flow.h:3511
rte_flow_item_flex_field
Definition: rte_flow.h:2010
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:3763
RTE_FLOW_FIELD_GENEVE_VNI
@ RTE_FLOW_FIELD_GENEVE_VNI
Definition: rte_flow.h:3520
RTE_FLOW_FIELD_VALUE
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:3526
rte_flow_port_attr::nb_counters
uint32_t nb_counters
Definition: rte_flow.h:4919
rte_color
rte_color
Definition: rte_meter.h:35
rte_flow_item_flex_field::offset_base
uint32_t offset_base
Definition: rte_flow.h:2015
RTE_FLOW_OP_ERROR
@ RTE_FLOW_OP_ERROR
Definition: rte_flow.h:5417
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1294
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:1043
rte_flow_action_meter_mark::init_color
enum rte_color init_color
Definition: rte_flow.h:3611
rte_flow_item_integrity::l3_len_ok
uint64_t l3_len_ok
Definition: rte_flow.h:1752
RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
@ RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
Definition: rte_flow.h:2738
rte_flow_async_action_handle_create
__rte_experimental struct rte_flow_action_handle * rte_flow_async_action_handle_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, const struct rte_flow_indir_action_conf *indir_action_conf, const struct rte_flow_action *action, void *user_data, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:410
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:3044
RTE_FLOW_ITEM_TYPE_END
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:145
rte_ether.h
rte_flow_action_set_meta
Definition: rte_flow.h:3289
RTE_FLOW_CONNTRACK_FLAG_RST
@ RTE_FLOW_CONNTRACK_FLAG_RST
Definition: rte_flow.h:3351
RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:324
rte_mbuf
Definition: rte_mbuf_core.h:465
rte_flow_action_age::reserved
uint32_t reserved
Definition: rte_flow.h:2795
rte_flow_item_integrity::l3_ok
uint64_t l3_ok
Definition: rte_flow.h:1742
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:728
rte_flow_item_ppp_mask
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
Definition: rte_flow.h:1870
rte_flow_item_eth::dst
struct rte_ether_addr dst
Definition: rte_flow.h:764
rte_flow_isolate
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
rte_flow_async_action_handle_update
__rte_experimental int rte_flow_async_action_handle_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, const void *update, void *user_data, struct rte_flow_error *error)
rte_flow_tcp_dir_param::last_ack_seen
uint32_t last_ack_seen
Definition: rte_flow.h:3369
rte_flow_query_count::reset
uint32_t reset
Definition: rte_flow.h:2868
rte_flow_port_attr
Definition: rte_flow.h:4914
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1295
RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:215
RTE_FLOW_FIELD_TCP_PORT_DST
@ RTE_FLOW_FIELD_TCP_PORT_DST
Definition: rte_flow.h:3513
rte_flow_item_pfcp
Definition: rte_flow.h:1662
RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:3838
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1316
RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:459
rte_flow_op_attr
Definition: rte_flow.h:5282
rte_flow_indir_action_conf
Definition: rte_flow.h:4394
rte_mbuf_dyn.h
RTE_FLOW_ITEM_TYPE_GTPC
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:315
RTE_FLOW_ITEM_TYPE_GTP
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:306
rte_sctp_hdr::src_port
rte_be16_t src_port
Definition: rte_sctp.h:29
rte_flow_port_attr::nb_conn_tracks
uint32_t nb_conn_tracks
Definition: rte_flow.h:4934
rte_flow_item_mark
Definition: rte_flow.h:1564
rte_flow_pattern_template_attr::egress
uint32_t egress
Definition: rte_flow.h:5024
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:1349
rte_ecpri.h
FIELD_MODE_DUMMY
@ FIELD_MODE_DUMMY
Definition: rte_flow.h:1949
RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:3744
rte_flow_item_meter_color::color
enum rte_color color
Definition: rte_flow.h:2096
rte_flow_action_conntrack::last_end
uint32_t last_end
Definition: rte_flow.h:3451
RTE_FLOW_FIELD_IPV4_ECN
@ RTE_FLOW_FIELD_IPV4_ECN
Definition: rte_flow.h:3527
RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
Definition: rte_flow.h:3333
RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:2267
rte_flow_dynf_metadata_register
__rte_experimental int rte_flow_dynf_metadata_register(void)
rte_flow_action_nvgre_encap
Definition: rte_flow.h:3139
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:766
rte_flow_item_flex_conf::nb_outputs
uint32_t nb_outputs
Definition: rte_flow.h:2087
rte_flow_template_table_attr::nb_flows
uint32_t nb_flows
Definition: rte_flow.h:5204
RTE_FLOW_ITEM_TYPE_GRE_OPTION
@ RTE_FLOW_ITEM_TYPE_GRE_OPTION
Definition: rte_flow.h:612
RTE_FLOW_ITEM_TYPE_GENEVE_OPT
@ RTE_FLOW_ITEM_TYPE_GENEVE_OPT
Definition: rte_flow.h:543
rte_flow_template_table_attr::flow_attr
struct rte_flow_attr flow_attr
Definition: rte_flow.h:5200
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:3919
RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
Definition: rte_flow.h:3331
rte_flow_port_attr::nb_aging_objects
uint32_t nb_aging_objects
Definition: rte_flow.h:4924
RTE_FLOW_ITEM_TYPE_NSH
@ RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:475
rte_gtp_psc_generic_hdr::qfi
uint8_t qfi
Definition: rte_gtp.h:76
RTE_FLOW_FIELD_IPV6_HOPLIMIT
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
Definition: rte_flow.h:3509
RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:366
rte_flow_item_arp_eth_ipv4::tha
struct rte_ether_addr tha
Definition: rte_flow.h:1236
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:1192
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_PORT_REPRESENTOR
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:2711
rte_flow_item_flex_conf::sample_data
struct rte_flow_item_flex_field * sample_data
Definition: rte_flow.h:2067
rte_flow_item_l2tpv2
Definition: rte_flow.h:1836
rte_flow_item_ecpri
Definition: rte_flow.h:1685
RTE_FLOW_CONV_OP_ITEM
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:3826
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2570
rte_flow_action_queue
Definition: rte_flow.h:2776
rte_flow_item_sctp::hdr
struct rte_sctp_hdr hdr
Definition: rte_flow.h:953
RTE_FLOW_CONNTRACK_FLAG_FIN
@ RTE_FLOW_CONNTRACK_FLAG_FIN
Definition: rte_flow.h:3349
rte_flow_action_meter_mark
Definition: rte_flow.h:3602
rte_flow_action_modify_field::operation
enum rte_flow_modify_op operation
Definition: rte_flow.h:3585
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:668
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1261
rte_flow_item_raw
Definition: rte_flow.h:716
RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:441
rte_higig.h
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:3782
RTE_FLOW_FIELD_TCP_PORT_SRC
@ RTE_FLOW_FIELD_TCP_PORT_SRC
Definition: rte_flow.h:3512
rte_flow_item_igmp_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1625
rte_flow_item_esp::hdr
struct rte_esp_hdr hdr
Definition: rte_flow.h:1168
rte_flow_item_geneve_opt
Definition: rte_flow.h:1705
RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:2248
FLEX_TUNNEL_MODE_SINGLE
@ FLEX_TUNNEL_MODE_SINGLE
Definition: rte_flow.h:1984
rte_flow_tcp_dir_param::data_unacked
uint32_t data_unacked
Definition: rte_flow.h:3374
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:90
rte_flow_tcp_dir_param
Definition: rte_flow.h:3363
RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:187
rte_flow_item_flex_conf::next_protocol
struct rte_flow_item_flex_field next_protocol
Definition: rte_flow.h:2061
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:2368
RTE_FLOW_ITEM_TYPE_INTEGRITY
@ RTE_FLOW_ITEM_TYPE_INTEGRITY
Definition: rte_flow.h:554
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:1392
rte_flow_query_age::reserved
uint32_t reserved
Definition: rte_flow.h:2807
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:920
rte_flow_dynf_metadata_avail
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:3968
rte_flow_action_rss
Definition: rte_flow.h:2908
rte_macsec.h
rte_l2tpv2.h
rte_flow_item_icmp6_nd_opt_sla_eth::sla
struct rte_ether_addr sla
Definition: rte_flow.h:1394
rte_flow_action_ethdev
Definition: rte_flow.h:3490
RTE_FLOW_ACTION_TYPE_SET_META
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2610
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:2977
rte_flow_op_result::status
enum rte_flow_op_status status
Definition: rte_flow.h:5431
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1063
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:806
rte_flow_item_flex_conf::nb_samples
uint32_t nb_samples
Definition: rte_flow.h:2069
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:878
rte_flow_item_flex_field_mode
rte_flow_item_flex_field_mode
Definition: rte_flow.h:1943
rte_flow_actions_template_attr
Definition: rte_flow.h:5102
RTE_FLOW_ACTION_TYPE_CONNTRACK
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
Definition: rte_flow.h:2696
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:2960
rte_flow_async_destroy
__rte_experimental int rte_flow_async_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, void *user_data, struct rte_flow_error *error)
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:2869
rte_flow_indir_action_conf::ingress
uint32_t ingress
Definition: rte_flow.h:4402
rte_flow_action_modify_field
Definition: rte_flow.h:3584
RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:338
RTE_FLOW_CONNTRACK_FLAG_SYN
@ RTE_FLOW_CONNTRACK_FLAG_SYN
Definition: rte_flow.h:3347
rte_flow_item_mark_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1570
rte_flow_item_flex_conf::output_link
struct rte_flow_item_flex_link * output_link
Definition: rte_flow.h:2085
rte_flow_update_meter_mark::meter_mark
struct rte_flow_action_meter_mark meter_mark
Definition: rte_flow.h:3624
rte_gre.h
rte_be64_t
uint64_t rte_be64_t
Definition: rte_byteorder.h:112
rte_vlan_hdr::vlan_tci
rte_be16_t vlan_tci
Definition: rte_ether.h:299
RTE_FLOW_ERROR_TYPE_STATE
@ RTE_FLOW_ERROR_TYPE_STATE
Definition: rte_flow.h:3747
rte_flow_action_handle_destroy
__rte_experimental int rte_flow_action_handle_destroy(uint16_t port_id, struct rte_flow_action_handle *handle, struct rte_flow_error *error)
rte_flow_action_sample::actions
const struct rte_flow_action * actions
Definition: rte_flow.h:3720
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:4227
rte_flow_item_flex_field::field_size
uint32_t field_size
Definition: rte_flow.h:2013
rte_flow_item_ethdev
Definition: rte_flow.h:1817
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:395
rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1540
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:3734
rte_flow_action_set_ttl
Definition: rte_flow.h:3242
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:2286
RTE_FLOW_FIELD_UDP_PORT_SRC
@ RTE_FLOW_FIELD_UDP_PORT_SRC
Definition: rte_flow.h:3517
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:1232
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:1152
rte_udp.h
rte_flow_action_sample
Definition: rte_flow.h:3717
rte_flow_item_nvgre
Definition: rte_flow.h:1028
rte_icmp.h
rte_flow_item_pppoe
Definition: rte_flow.h:1474
RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
@ RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
Definition: rte_flow.h:2882
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1343
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:3168
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:3045
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_FIELD_IPV4_TTL
@ RTE_FLOW_FIELD_IPV4_TTL
Definition: rte_flow.h:3505
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:1311
RTE_FLOW_MODIFY_SUB
@ RTE_FLOW_MODIFY_SUB
Definition: rte_flow.h:3571
rte_flow_item_gtp_psc::hdr
struct rte_gtp_psc_generic_hdr hdr
Definition: rte_flow.h:1458
rte_sctp_hdr
Definition: rte_sctp.h:28
RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2493
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:387
rte_flow_item_ipv6::has_hip_ext
uint32_t has_hip_ext
Definition: rte_flow.h:869
rte_flow_item_port_id_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:693
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:2962
rte_ether_hdr
Definition: rte_ether.h:287
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:2909
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1367
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:837
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2536
RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
Definition: rte_flow.h:432
rte_udp_hdr::src_port
rte_be16_t src_port
Definition: rte_udp.h:29
RTE_FLOW_FIELD_METER_COLOR
@ RTE_FLOW_FIELD_METER_COLOR
Definition: rte_flow.h:3530
RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:3933
rte_flow_action_ethdev::port_id
uint16_t port_id
Definition: rte_flow.h:3491
rte_flow_item_ethdev_mask
static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask
Definition: rte_flow.h:1823
rte_flow_item_eth::reserved
uint32_t reserved
Definition: rte_flow.h:771
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1173
rte_flow_item_udp
Definition: rte_flow.h:914
rte_common.h
rte_ipv4_hdr::src_addr
rte_be32_t src_addr
Definition: rte_ip.h:63
RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:2215
rte_flow_action_age
Definition: rte_flow.h:2793
rte_gre_hdr_opt_sequence
Definition: rte_gre.h:69
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:1150
rte_flow_action_conntrack::last_ack
uint32_t last_ack
Definition: rte_flow.h:3446
RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:222
rte_flow_item_flex_field::reserved
uint32_t reserved
Definition: rte_flow.h:2019
rte_flow_item_sctp
Definition: rte_flow.h:952
rte_flow_action_mark
Definition: rte_flow.h:2751
RTE_FLOW_CONNTRACK_FLAG_SYNACK
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
Definition: rte_flow.h:3348
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:1228
rte_flow_item_nsh_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1599
rte_flow_item_ethdev::port_id
uint16_t port_id
Definition: rte_flow.h:1818
RTE_FLOW_ITEM_TYPE_RAW
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:194
rte_flow_action_modify_data::level
uint32_t level
Definition: rte_flow.h:3545
rte_flow_tcp_dir_param::close_initiated
uint32_t close_initiated
Definition: rte_flow.h:3367
src_addr
struct rte_ether_addr src_addr
Definition: rte_ether.h:1
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:1916
rte_flow_action_conntrack::reply_dir
struct rte_flow_tcp_dir_param reply_dir
Definition: rte_flow.h:3439
FLEX_TUNNEL_MODE_INNER
@ FLEX_TUNNEL_MODE_INNER
Definition: rte_flow.h:1992
RTE_FLOW_ITEM_TYPE_HIGIG2
@ RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:495
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:3787
rte_flow_pattern_template_attr
Definition: rte_flow.h:5008
rte_flow_item_flex::handle
struct rte_flow_item_flex_handle * handle
Definition: rte_flow.h:1936
FIELD_MODE_FIXED
@ FIELD_MODE_FIXED
Definition: rte_flow.h:1954
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:722
rte_flow_item_e_tag
Definition: rte_flow.h:1003
rte_flow_item_pppoe::length
rte_be16_t length
Definition: rte_flow.h:1481
RTE_FLOW_ACTION_TYPE_SHARED
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:2668
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1447
rte_flow_update_meter_mark::color_mode_valid
uint32_t color_mode_valid
Definition: rte_flow.h:3630
rte_flow_action_set_dscp
Definition: rte_flow.h:3301
rte_flow_async_action_handle_query
__rte_experimental int rte_flow_async_action_handle_query(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, const struct rte_flow_action_handle *action_handle, void *data, void *user_data, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:2147
rte_flow_actions_template_attr::egress
uint32_t egress
Definition: rte_flow.h:5110
rte_flow_item_vlan::has_more_vlan
uint32_t has_more_vlan
Definition: rte_flow.h:812
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:2991
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:723
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:3188
rte_ether_hdr::dst_addr
struct rte_ether_addr dst_addr
Definition: rte_ether.h:288
rte_flow_error::message
const char * message
Definition: rte_flow.h:3764
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:688
rte_tcp_hdr
Definition: rte_tcp.h:28
rte_flow_item_l2tpv2_mask
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
Definition: rte_flow.h:1842
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1213
rte_flow_restore_info::group_id
uint32_t group_id
Definition: rte_flow.h:4606
rte_vlan_hdr
Definition: rte_ether.h:298
RTE_FLOW_FIELD_MAC_TYPE
@ RTE_FLOW_FIELD_MAC_TYPE
Definition: rte_flow.h:3503
rte_flow_action_meter_mark::state
int state
Definition: rte_flow.h:3613
rte_flow_tcp_dir_param::reply_end
uint32_t reply_end
Definition: rte_flow.h:3384
rte_flow_item_fuzzy
Definition: rte_flow.h:1126
RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:2382
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1342
RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2195
rte_flow_tcp_dir_param::max_ack
uint32_t max_ack
Definition: rte_flow.h:3388
rte_flow_item_mpls
Definition: rte_flow.h:1053
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:3776
rte_flow_action_modify_data::value
uint8_t value[16]
Definition: rte_flow.h:3555
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:1035
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1078
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:2408
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:2872
rte_flow_item_meta
Definition: rte_flow.h:1441
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:3779
rte_flow_item_gtp
Definition: rte_flow.h:1142
rte_flow_async_create
__rte_experimental struct rte_flow * rte_flow_async_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_template_table *template_table, const struct rte_flow_item pattern[], uint8_t pattern_template_index, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_ANY
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:173
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:403
rte_flow_modify_conntrack::reserved
uint32_t reserved
Definition: rte_flow.h:3469
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:3796
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3035
rte_flow_item_tag
Definition: rte_flow.h:1516
RTE_FLOW_ACTION_TYPE_AGE
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:2649
rte_flow_update_age::timeout_valid
uint32_t timeout_valid
Definition: rte_flow.h:2835
RTE_FLOW_ITEM_TYPE_ESP
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:331
RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:3745
rte_flow_action_age::timeout
uint32_t timeout
Definition: rte_flow.h:2794
rte_flow_port_attr::flags
uint32_t flags
Definition: rte_flow.h:4938
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:3729
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1335
rte_flow_action_meter_color
Definition: rte_flow.h:3481
rte_flow_dev_dump
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
rte_flow_item_flex::pattern
const uint8_t * pattern
Definition: rte_flow.h:1938
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:2719
rte_flow_item_integrity::packet_ok
uint64_t packet_ok
Definition: rte_flow.h:1738
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:3778
rte_gtp.h
rte_flow_attr
Definition: rte_flow.h:88
rte_tcp.h
rte_l2tpv2_combined_msg_hdr::common
struct rte_l2tpv2_common_hdr common
Definition: rte_l2tpv2.h:223
rte_flow_item_ipv6::hdr
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:853
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:2873
RTE_FLOW_FIELD_MARK
@ RTE_FLOW_FIELD_MARK
Definition: rte_flow.h:3523
rte_flow_item_flex_conf::next_header
struct rte_flow_item_flex_field next_header
Definition: rte_flow.h:2056
rte_flow_item_pfcp_mask
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1671
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:939
rte_flow_item_ah
Definition: rte_flow.h:1639
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1336
rte_flow_action::type
enum rte_flow_action_type type
Definition: rte_flow.h:3675
rte_flow_item_gtp_psc
Definition: rte_flow.h:1457
RTE_FLOW_FIELD_MAC_DST
@ RTE_FLOW_FIELD_MAC_DST
Definition: rte_flow.h:3499
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:2870
rte_ipv4_hdr
Definition: rte_ip.h:42
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:1400
rte_flow_modify_conntrack::state
uint32_t state
Definition: rte_flow.h:3467
rte_flow_actions_template_create
__rte_experimental struct rte_flow_actions_template * rte_flow_actions_template_create(uint16_t port_id, const struct rte_flow_actions_template_attr *template_attr, const struct rte_flow_action actions[], const struct rte_flow_action masks[], struct rte_flow_error *error)
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:3054
rte_flow_action_meter_mark::color_mode
int color_mode
Definition: rte_flow.h:3609
RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:3851
rte_flow_action_raw_decap
Definition: rte_flow.h:3187
rte_flow_modify_conntrack
Definition: rte_flow.h:3461
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:39
rte_flow_item_icmp
Definition: rte_flow.h:895
rte_flow_item_eth::src
struct rte_ether_addr src
Definition: rte_flow.h:765
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:2359
rte_flow_item_igmp
Definition: rte_flow.h:1616
RTE_FLOW_ITEM_TYPE_METER_COLOR
@ RTE_FLOW_ITEM_TYPE_METER_COLOR
Definition: rte_flow.h:626
rte_flow_item_gre_opt
Definition: rte_flow.h:1094
rte_flow_action_set_ipv6
Definition: rte_flow.h:3218
RTE_FLOW_FIELD_START
@ RTE_FLOW_FIELD_START
Definition: rte_flow.h:3498
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:1375
rte_flow_conntrack_tcp_last_index
rte_flow_conntrack_tcp_last_index
Definition: rte_flow.h:3345
rte_esp_hdr
Definition: rte_esp.h:23
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:3736
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3065
RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:3741
rte_flow_item_tcp::hdr
struct rte_tcp_hdr hdr
Definition: rte_flow.h:934
RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:450
rte_flow_flex_item_create
__rte_experimental struct rte_flow_item_flex_handle * rte_flow_flex_item_create(uint16_t port_id, const struct rte_flow_item_flex_conf *conf, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:257
RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:278
rte_flow_item_integrity::ipv4_csum_ok
uint64_t ipv4_csum_ok
Definition: rte_flow.h:1748
RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:3743
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1313
rte_flow_action_conntrack
Definition: rte_flow.h:3401
rte_flow_update_meter_mark::state_valid
uint32_t state_valid
Definition: rte_flow.h:3634
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:4230
rte_flow_pull
__rte_experimental int rte_flow_pull(uint16_t port_id, uint32_t queue_id, struct rte_flow_op_result res[], uint16_t n_res, struct rte_flow_error *error)
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:2978
RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:2204
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:3025
rte_flow_destroy
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
RTE_FLOW_FIELD_IPV6_DSCP
@ RTE_FLOW_FIELD_IPV6_DSCP
Definition: rte_flow.h:3508
RTE_FLOW_MODIFY_SET
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:3569
RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:2176
rte_flow_action_conntrack::live_connection
uint32_t live_connection
Definition: rte_flow.h:3418
rte_flow_item_integrity::level
uint32_t level
Definition: rte_flow.h:1732
RTE_FLOW_FIELD_MAC_SRC
@ RTE_FLOW_FIELD_MAC_SRC
Definition: rte_flow.h:3500
RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:2236
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_action_handle_create
__rte_experimental struct rte_flow_action_handle * rte_flow_action_handle_create(uint16_t port_id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
rte_macsec_hdr
Definition: rte_macsec.h:32
rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:641
rte_flow_query_age::aged
uint32_t aged
Definition: rte_flow.h:2808
rte_flow_action_modify_data::offset
uint32_t offset
Definition: rte_flow.h:3547
RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:3864
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:2623
rte_flow_item_ipv6::has_mobil_ext
uint32_t has_mobil_ext
Definition: rte_flow.h:867
RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:3905
RTE_FLOW_CONV_OP_RULE
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:3877
rte_flow_item_flex_field::field_mode
enum rte_flow_item_flex_field_mode field_mode
Definition: rte_flow.h:2012
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:1210
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1084
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1218
rte_flow_tcp_dir_param::max_win
uint32_t max_win
Definition: rte_flow.h:3386
rte_ppp_hdr::addr
uint8_t addr
Definition: rte_ppp.h:25
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:2302
rte_flow_query_age
Definition: rte_flow.h:2806
RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2473
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1565
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:1315
RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:2679
rte_flow_action_conntrack::selective_ack
uint32_t selective_ack
Definition: rte_flow.h:3420
rte_ipv6_hdr
Definition: rte_ip.h:538
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:3167
RTE_FLOW_FIELD_TCP_ACK_NUM
@ RTE_FLOW_FIELD_TCP_ACK_NUM
Definition: rte_flow.h:3515
RTE_FLOW_FIELD_VXLAN_VNI
@ RTE_FLOW_FIELD_VXLAN_VNI
Definition: rte_flow.h:3519
RTE_FLOW_CONV_OP_ATTR
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:3814
RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:2188
RTE_FLOW_CONNTRACK_STATE_SYN_RECV
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
Definition: rte_flow.h:3329
rte_flow_item_eth::has_vlan
uint32_t has_vlan
Definition: rte_flow.h:770
RTE_FLOW_FIELD_TAG
@ RTE_FLOW_FIELD_TAG
Definition: rte_flow.h:3522
rte_flow_pick_transfer_proxy
int rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id, struct rte_flow_error *error)
rte_flow_action::conf
const void * conf
Definition: rte_flow.h:3676
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:2752
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:1209
RTE_FLOW_ITEM_TYPE_FLEX
@ RTE_FLOW_ITEM_TYPE_FLEX
Definition: rte_flow.h:591
RTE_FLOW_FIELD_GTP_PSC_QFI
@ RTE_FLOW_FIELD_GTP_PSC_QFI
Definition: rte_flow.h:3529
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:1229
dst_addr
struct rte_ether_addr dst_addr
Definition: rte_ether.h:0
rte_flow_item_ipv6::has_auth_ext
uint32_t has_auth_ext
Definition: rte_flow.h:861
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:3055
rte_flow_item_icmp6
Definition: rte_flow.h:1292
rte_flow_restore_info::flags
uint64_t flags
Definition: rte_flow.h:4605
rte_flow_conntrack_state
rte_flow_conntrack_state
Definition: rte_flow.h:3327
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:4229
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1198
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1418
RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:3738
rte_ppp.h
RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:3742
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:717
RTE_FLOW_ITEM_TYPE_AH
@ RTE_FLOW_ITEM_TYPE_AH
Definition: rte_flow.h:489
rte_flow_update_age
Definition: rte_flow.h:2833
RTE_ETHER_ADDR_LEN
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:25
rte_flow_item_macsec
Definition: rte_flow.h:1105
rte_flow_item_icmp6_nd_opt_tla_eth
Definition: rte_flow.h:1416
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:1235
RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:208
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:2940
rte_flow_template_table_destroy
__rte_experimental int rte_flow_template_table_destroy(uint16_t port_id, struct rte_flow_template_table *template_table, struct rte_flow_error *error)
FLEX_TUNNEL_MODE_TUNNEL
@ FLEX_TUNNEL_MODE_TUNNEL
Definition: rte_flow.h:2001
rte_flow_actions_template_attr::ingress
uint32_t ingress
Definition: rte_flow.h:5108
rte_flow_item_eth
Definition: rte_flow.h:757
rte_flow_action_conntrack::peer_port
uint16_t peer_port
Definition: rte_flow.h:3403
rte_flow_action_conntrack::last_seq
uint32_t last_seq
Definition: rte_flow.h:3444
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:3783
rte_flow_indir_action_conf::egress
uint32_t egress
Definition: rte_flow.h:4404
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1334
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:721
rte_flow_item_integrity::l4_csum_ok
uint64_t l4_csum_ok
Definition: rte_flow.h:1750
rte_icmp_hdr
Definition: rte_icmp.h:28
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:2939
rte_flow_item_ipv6
Definition: rte_flow.h:852
rte_flow_item_icmp::hdr
struct rte_icmp_hdr hdr
Definition: rte_flow.h:896
rte_flow_update_meter_mark::profile_valid
uint32_t profile_valid
Definition: rte_flow.h:3626
rte_flow_item_ah_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1649
rte_flow_action_conntrack::challenge_ack_passed
uint32_t challenge_ack_passed
Definition: rte_flow.h:3422
rte_flow_error
Definition: rte_flow.h:3761
rte_flow_item_pppoe_proto_id::proto_id
rte_be16_t proto_id
Definition: rte_flow.h:1497
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:117
RTE_FLOW_FIELD_UDP_PORT_DST
@ RTE_FLOW_FIELD_UDP_PORT_DST
Definition: rte_flow.h:3518
rte_flow_action_meter_color::color
enum rte_color color
Definition: rte_flow.h:3482
rte_flow_port_info
Definition: rte_flow.h:4832
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:1208
rte_flow_action_conntrack::last_window
uint16_t last_window
Definition: rte_flow.h:3441
rte_vxlan_hdr::vx_vni
rte_be32_t vx_vni
Definition: rte_vxlan.h:35
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:2936
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:2310
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1312
rte_flow_query_age::sec_since_last_hit_valid
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:2810
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1268
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1293
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:1057
rte_flow_port_info::supported_flags
uint32_t supported_flags
Definition: rte_flow.h:4860
rte_flow_item_vxlan
Definition: rte_flow.h:972
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2448
rte_flow_item_ecpri_mask
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1691
rte_flow_item_geneve_opt_mask
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
Definition: rte_flow.h:1715
rte_flow_item_ipv6::has_esp_ext
uint32_t has_esp_ext
Definition: rte_flow.h:863
rte_flow_item_vlan
Definition: rte_flow.h:799
RTE_FLOW_ITEM_TYPE_ETH
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:201
rte_flow_action_sample::ratio
uint32_t ratio
Definition: rte_flow.h:3718
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:2938
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3075
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:1151
RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:165
RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:155
RTE_FLOW_FIELD_POINTER
@ RTE_FLOW_FIELD_POINTER
Definition: rte_flow.h:3525
RTE_COLORS
@ RTE_COLORS
Definition: rte_meter.h:39
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:980
rte_flow_action_modify_data
Definition: rte_flow.h:3539
rte_ether_addr
Definition: rte_ether.h:74
rte_flow_actions_template_destroy
__rte_experimental int rte_flow_actions_template_destroy(uint16_t port_id, struct rte_flow_actions_template *actions_template, struct rte_flow_error *error)
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:2937
rte_flow_flex_item_release
__rte_experimental int rte_flow_flex_item_release(uint16_t port_id, const struct rte_flow_item_flex_handle *handle, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@ RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:572
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:3064
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:2979
rte_flow_port_info::max_nb_aging_objects
uint32_t max_nb_aging_objects
Definition: rte_flow.h:4846
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:89
rte_flow_restore_info::tunnel
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:4607
rte_flow_item_ipv6::has_hop_ext
uint32_t has_hop_ext
Definition: rte_flow.h:855
rte_flow_item_e_tag_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:1018
rte_flow_action_set_mac
Definition: rte_flow.h:3251
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:1038
rte_flow_update_meter_mark::init_color_valid
uint32_t init_color_valid
Definition: rte_flow.h:3632
rte_gre_hdr_opt_checksum_rsvd
Definition: rte_gre.h:54
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:2318
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:718
rte_flow_item_ipv6::reserved
uint32_t reserved
Definition: rte_flow.h:873
rte_flow_item_meter_color
Definition: rte_flow.h:2095
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:807
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:2935
RTE_FLOW_FIELD_IPV4_DST
@ RTE_FLOW_FIELD_IPV4_DST
Definition: rte_flow.h:3507
rte_flow_action_conntrack::state
enum rte_flow_conntrack_state state
Definition: rte_flow.h:3431
RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
Definition: rte_flow.h:536
RTE_FLOW_FIELD_IPV6_ECN
@ RTE_FLOW_FIELD_IPV6_ECN
Definition: rte_flow.h:3528
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:981
rte_flow_action_modify_field::dst
struct rte_flow_action_modify_data dst
Definition: rte_flow.h:3586
rte_vxlan_hdr
Definition: rte_vxlan.h:33
rte_flow_update_meter_mark::policy_valid
uint32_t policy_valid
Definition: rte_flow.h:3628
rte_flow_item_ipv6::has_route_ext
uint32_t has_route_ext
Definition: rte_flow.h:857
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:1322
RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:2155
rte_flow_restore_info
Definition: rte_flow.h:4600
rte_flow_action
Definition: rte_flow.h:3674
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:1191
RTE_FLOW_ITEM_TYPE_PFCP
@ RTE_FLOW_ITEM_TYPE_PFCP
Definition: rte_flow.h:520
rte_bitops.h
rte_flow_item::last
const void * last
Definition: rte_flow.h:1915
rte_flow_queue_attr
Definition: rte_flow.h:4949
rte_flow_queue_info
Definition: rte_flow.h:4871
rte_flow_async_action_handle_destroy
__rte_experimental int rte_flow_async_action_handle_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, void *user_data, struct rte_flow_error *error)
rte_flow_item_flex_field::offset_mask
uint32_t offset_mask
Definition: rte_flow.h:2016
rte_flow_item_pppoe::code
uint8_t code
Definition: rte_flow.h:1479
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1391
rte_udp_hdr
Definition: rte_udp.h:28
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:1212
RTE_FLOW_ITEM_TYPE_TAG
@ RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:504
rte_flow_item_ipv6::has_dest_ext
uint32_t has_dest_ext
Definition: rte_flow.h:865
rte_flow_op_status
rte_flow_op_status
Definition: rte_flow.h:5409
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:373
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:2587
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:776
rte_flow_action_conntrack::liberal_mode
uint32_t liberal_mode
Definition: rte_flow.h:3429
RTE_FLOW_FIELD_TCP_FLAGS
@ RTE_FLOW_FIELD_TCP_FLAGS
Definition: rte_flow.h:3516
rte_flow_action_vf
Definition: rte_flow.h:2959
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:719
rte_flow_item_arp_eth_ipv4::sha
struct rte_ether_addr sha
Definition: rte_flow.h:1234
rte_flow_item_ipv6::has_shim6_ext
uint32_t has_shim6_ext
Definition: rte_flow.h:871
rte_flow_item_flex_field::field_base
int32_t field_base
Definition: rte_flow.h:2014
rte_flow_tcp_dir_param::sent_end
uint32_t sent_end
Definition: rte_flow.h:3379
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:1237
rte_flow_item_integrity
Definition: rte_flow.h:1728
rte_flow_action_of_push_mpls
Definition: rte_flow.h:3074
rte_ether_addr::addr_bytes
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:75
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:271
RTE_ETH_HASH_FUNCTION_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_TOEPLITZ
Definition: rte_flow.h:2881
rte_flow_action_jump
Definition: rte_flow.h:2767
RTE_FLOW_MODIFY_ADD
@ RTE_FLOW_MODIFY_ADD
Definition: rte_flow.h:3570
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1157
rte_l2tpv2_combined_msg_hdr
Definition: rte_l2tpv2.h:222
rte_flow_item_flex::length
uint32_t length
Definition: rte_flow.h:1937
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:1425
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:3737
rte_flow_action_conntrack::last_direction
uint32_t last_direction
Definition: rte_flow.h:3427
rte_flow_op_attr::postpone
uint32_t postpone
Definition: rte_flow.h:5287
rte_gtp_psc_generic_hdr
Definition: rte_gtp.h:69
rte_flow_action_handle_update
__rte_experimental int rte_flow_action_handle_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)
rte_flow_pattern_template_attr::ingress
uint32_t ingress
Definition: rte_flow.h:5022
RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:345
rte_flow_field_id
rte_flow_field_id
Definition: rte_flow.h:3497
rte_flow_item_udp::hdr
struct rte_udp_hdr hdr
Definition: rte_flow.h:915
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:1008
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:1012
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:2871
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2421
RTE_BIT32
#define RTE_BIT32(nr)
Definition: rte_bitops.h:38
rte_flow_update_age::timeout
uint32_t timeout
Definition: rte_flow.h:2836
RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:2224
rte_flow_item_type
rte_flow_item_type
Definition: rte_flow.h:136
rte_flow_item_icmp6_nd_opt_tla_eth::tla
struct rte_ether_addr tla
Definition: rte_flow.h:1419
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1464
rte_flow_item_l2tpv3oip
Definition: rte_flow.h:1534
RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
Definition: rte_flow.h:2888
FLEX_TUNNEL_MODE_MULTI
@ FLEX_TUNNEL_MODE_MULTI
Definition: rte_flow.h:1997
rte_flow_action_conntrack::enable
uint32_t enable
Definition: rte_flow.h:3416
RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:3746
RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:352
rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1300