DPDK  23.11.0
rte_flow.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2016 6WIND S.A.
3  * Copyright 2016 Mellanox Technologies, Ltd
4  */
5 
6 #ifndef RTE_FLOW_H_
7 #define RTE_FLOW_H_
8 
17 #include <stddef.h>
18 #include <stdint.h>
19 
20 #include <rte_compat.h>
21 #include <rte_common.h>
22 #include <rte_ether.h>
23 #include <rte_arp.h>
24 #include <rte_icmp.h>
25 #include <rte_ip.h>
26 #include <rte_sctp.h>
27 #include <rte_tcp.h>
28 #include <rte_udp.h>
29 #include <rte_vxlan.h>
30 #include <rte_esp.h>
31 #include <rte_higig.h>
32 #include <rte_ecpri.h>
33 #include <rte_bitops.h>
34 #include <rte_mbuf_dyn.h>
35 #include <rte_meter.h>
36 #include <rte_gtp.h>
37 #include <rte_l2tpv2.h>
38 #include <rte_ppp.h>
39 #include <rte_gre.h>
40 #include <rte_macsec.h>
41 #include <rte_ib.h>
42 
43 #include "rte_ethdev.h"
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 #define RTE_FLOW_LOG(level, ...) \
50  rte_log(RTE_LOG_ ## level, rte_eth_dev_logtype, "" __VA_ARGS__)
51 
92 struct rte_flow_attr {
103  uint32_t group;
104  uint32_t priority;
108  uint32_t ingress:1;
112  uint32_t egress:1;
130  uint32_t transfer:1;
131  uint32_t reserved:29;
132 };
133 
134 struct rte_flow_group_attr {
135  uint32_t ingress:1;
136  uint32_t egress:1;
137  uint32_t transfer:1;
138 };
139 
166 
176 
186 
194 
208 
215 
222 
229 
236 
243 
250 
257 
264 
271 
278 
285 
292 
299 
306 
318 
327 
336 
345 
352 
359 
366 
373 
380 
387 
394 
401 
408 
416 
424 
431 
440 
453 
462 
471 
480 
489 
496 
503 
510 
516 
525 
534 
541 
550 
557 
564 
575 
584 
593 
603 
612 
619 
626 
633 
640 
647 
654 
661 
668 
675 
684 
692 
699 
707 };
708 
720 };
721 
728  enum rte_flow_quota_state state;
729 };
730 
734 #ifndef __cplusplus
735 static const struct rte_flow_item_quota rte_flow_item_quota_mask = {
736  .state = (enum rte_flow_quota_state)0xff
737 };
738 #endif
739 
746  struct rte_higig2_hdr hdr;
747 };
748 
750 #ifndef __cplusplus
752  .hdr = {
753  .ppt1 = {
754  .classification = RTE_BE16(UINT16_MAX),
755  .vid = RTE_BE16(0xfff),
756  },
757  },
758 };
759 #endif
760 
773  uint32_t num;
774 };
775 
777 #ifndef __cplusplus
778 static const struct rte_flow_item_any rte_flow_item_any_mask = {
779  .num = 0x00000000,
780 };
781 #endif
782 
798  uint32_t id;
799 };
800 
802 #ifndef __cplusplus
804  .id = 0xffffffff,
805 };
806 #endif
807 
827  uint32_t relative:1;
828  uint32_t search:1;
829  uint32_t reserved:30;
830  int32_t offset;
831  uint16_t limit;
832  uint16_t length;
833  const uint8_t *pattern;
834 };
835 
837 #ifndef __cplusplus
838 static const struct rte_flow_item_raw rte_flow_item_raw_mask = {
839  .relative = 1,
840  .search = 1,
841  .reserved = 0x3fffffff,
842  .offset = 0xffffffff,
843  .limit = 0xffff,
844  .length = 0xffff,
845  .pattern = NULL,
846 };
847 #endif
848 
867  union {
868  struct {
869  /*
870  * These fields are retained for compatibility.
871  * Please switch to the new header field below.
872  */
873  struct rte_ether_addr dst;
874  struct rte_ether_addr src;
876  };
877  struct rte_ether_hdr hdr;
878  };
879  uint32_t has_vlan:1;
880  uint32_t reserved:31;
881 };
882 
884 #ifndef __cplusplus
885 static const struct rte_flow_item_eth rte_flow_item_eth_mask = {
886  .hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
887  .hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
888  .hdr.ether_type = RTE_BE16(0x0000),
889 };
890 #endif
891 
908  union {
909  struct {
910  /*
911  * These fields are retained for compatibility.
912  * Please switch to the new header field below.
913  */
916  };
917  struct rte_vlan_hdr hdr;
918  };
920  uint32_t has_more_vlan:1;
921  uint32_t reserved:31;
922 };
923 
925 #ifndef __cplusplus
926 static const struct rte_flow_item_vlan rte_flow_item_vlan_mask = {
927  .hdr.vlan_tci = RTE_BE16(0x0fff),
928  .hdr.eth_proto = RTE_BE16(0x0000),
929 };
930 #endif
931 
940  struct rte_ipv4_hdr hdr;
941 };
942 
944 #ifndef __cplusplus
945 static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask = {
946  .hdr = {
947  .src_addr = RTE_BE32(0xffffffff),
948  .dst_addr = RTE_BE32(0xffffffff),
949  },
950 };
951 #endif
952 
961  struct rte_ipv6_hdr hdr;
963  uint32_t has_hop_ext:1;
965  uint32_t has_route_ext:1;
967  uint32_t has_frag_ext:1;
969  uint32_t has_auth_ext:1;
971  uint32_t has_esp_ext:1;
973  uint32_t has_dest_ext:1;
975  uint32_t has_mobil_ext:1;
977  uint32_t has_hip_ext:1;
979  uint32_t has_shim6_ext:1;
981  uint32_t reserved:23;
982 };
983 
985 #ifndef __cplusplus
986 static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask = {
987  .hdr = {
988  .src_addr =
989  "\xff\xff\xff\xff\xff\xff\xff\xff"
990  "\xff\xff\xff\xff\xff\xff\xff\xff",
991  .dst_addr =
992  "\xff\xff\xff\xff\xff\xff\xff\xff"
993  "\xff\xff\xff\xff\xff\xff\xff\xff",
994  },
995 };
996 #endif
997 
1007  struct rte_ipv6_routing_ext hdr;
1008 };
1009 
1016  struct rte_icmp_hdr hdr;
1017 };
1018 
1020 #ifndef __cplusplus
1021 static const struct rte_flow_item_icmp rte_flow_item_icmp_mask = {
1022  .hdr = {
1023  .icmp_type = 0xff,
1024  .icmp_code = 0xff,
1025  },
1026 };
1027 #endif
1028 
1035  struct rte_udp_hdr hdr;
1036 };
1037 
1039 #ifndef __cplusplus
1040 static const struct rte_flow_item_udp rte_flow_item_udp_mask = {
1041  .hdr = {
1042  .src_port = RTE_BE16(0xffff),
1043  .dst_port = RTE_BE16(0xffff),
1044  },
1045 };
1046 #endif
1047 
1054  struct rte_tcp_hdr hdr;
1055 };
1056 
1058 #ifndef __cplusplus
1059 static const struct rte_flow_item_tcp rte_flow_item_tcp_mask = {
1060  .hdr = {
1061  .src_port = RTE_BE16(0xffff),
1062  .dst_port = RTE_BE16(0xffff),
1063  },
1064 };
1065 #endif
1066 
1073  struct rte_sctp_hdr hdr;
1074 };
1075 
1077 #ifndef __cplusplus
1078 static const struct rte_flow_item_sctp rte_flow_item_sctp_mask = {
1079  .hdr = {
1080  .src_port = RTE_BE16(0xffff),
1081  .dst_port = RTE_BE16(0xffff),
1082  },
1083 };
1084 #endif
1085 
1092  union {
1093  struct {
1094  /*
1095  * These fields are retained for compatibility.
1096  * Please switch to the new header field below.
1097  */
1098  uint8_t flags;
1099  uint8_t rsvd0[3];
1100  uint8_t vni[3];
1101  uint8_t rsvd1;
1102  };
1103  struct rte_vxlan_hdr hdr;
1104  };
1105 };
1106 
1108 #ifndef __cplusplus
1109 static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask = {
1110  .hdr.vni = "\xff\xff\xff",
1111 };
1112 #endif
1113 
1130  uint8_t in_ecid_e;
1131  uint8_t ecid_e;
1133 };
1134 
1136 #ifndef __cplusplus
1137 static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask = {
1138  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
1139 };
1140 #endif
1141 
1156  uint8_t tni[3];
1157  uint8_t flow_id;
1158 };
1159 
1161 #ifndef __cplusplus
1162 static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask = {
1163  .tni = "\xff\xff\xff",
1164 };
1165 #endif
1166 
1176  uint8_t label_tc_s[3];
1177  uint8_t ttl;
1178 };
1179 
1181 #ifndef __cplusplus
1182 static const struct rte_flow_item_mpls rte_flow_item_mpls_mask = {
1183  .label_tc_s = "\xff\xff\xf0",
1184 };
1185 #endif
1186 
1199 };
1200 
1202 #ifndef __cplusplus
1203 static const struct rte_flow_item_gre rte_flow_item_gre_mask = {
1204  .protocol = RTE_BE16(0xffff),
1205 };
1206 #endif
1207 
1214  struct rte_gre_hdr_opt_checksum_rsvd checksum_rsvd;
1215  struct rte_gre_hdr_opt_key key;
1216  struct rte_gre_hdr_opt_sequence sequence;
1217 };
1218 
1225  struct rte_macsec_hdr macsec_hdr;
1226 };
1227 
1246  uint32_t thresh;
1247 };
1248 
1250 #ifndef __cplusplus
1251 static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask = {
1252  .thresh = 0xffffffff,
1253 };
1254 #endif
1255 
1262  union {
1263  struct {
1264  /*
1265  * These are old fields kept for compatibility.
1266  * Please prefer hdr field below.
1267  */
1275  uint8_t msg_type;
1278  };
1279  struct rte_gtp_hdr hdr;
1280  };
1281 };
1282 
1284 #ifndef __cplusplus
1285 static const struct rte_flow_item_gtp rte_flow_item_gtp_mask = {
1286  .hdr.teid = RTE_BE32(UINT32_MAX),
1287 };
1288 #endif
1289 
1296  struct rte_esp_hdr hdr;
1297 };
1298 
1300 #ifndef __cplusplus
1301 static const struct rte_flow_item_esp rte_flow_item_esp_mask = {
1302  .hdr = {
1303  .spi = RTE_BE32(0xffffffff),
1304  },
1305 };
1306 #endif
1307 
1320  uint8_t vni[3];
1321  uint8_t rsvd1;
1322 };
1323 
1325 #ifndef __cplusplus
1326 static const struct rte_flow_item_geneve rte_flow_item_geneve_mask = {
1327  .vni = "\xff\xff\xff",
1328 };
1329 #endif
1330 
1337  union {
1338  struct {
1339  /*
1340  * These are old fields kept for compatibility.
1341  * Please prefer hdr field below.
1342  */
1343  uint8_t flags;
1344  uint8_t rsvd0[2];
1345  uint8_t protocol;
1346  uint8_t vni[3];
1347  uint8_t rsvd1;
1348  };
1349  struct rte_vxlan_gpe_hdr hdr;
1350  };
1351 };
1352 
1354 #ifndef __cplusplus
1356  .hdr.vni = "\xff\xff\xff",
1357 };
1358 #endif
1359 
1366  union {
1367  struct {
1368  /*
1369  * These are old fields kept for compatibility.
1370  * Please prefer hdr field below.
1371  */
1374  uint8_t hln;
1375  uint8_t pln;
1377  struct rte_ether_addr sha;
1379  struct rte_ether_addr tha;
1381  };
1382  struct rte_arp_hdr hdr;
1383  };
1384 };
1385 
1387 #ifndef __cplusplus
1388 static const struct rte_flow_item_arp_eth_ipv4
1390  .hdr.arp_data.arp_sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1391  .hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
1392  .hdr.arp_data.arp_tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1393  .hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
1394 };
1395 #endif
1396 
1408  uint8_t next_hdr;
1409 };
1410 
1412 #ifndef __cplusplus
1413 static const
1415  .next_hdr = 0xff,
1416 };
1417 #endif
1418 
1430  struct rte_ipv6_fragment_ext hdr;
1431 };
1432 
1439  uint8_t type;
1440  uint8_t code;
1441  uint16_t checksum;
1442 };
1443 
1445 #ifndef __cplusplus
1446 static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask = {
1447  .type = 0xff,
1448  .code = 0xff,
1449 };
1450 #endif
1451 
1459  struct rte_icmp_echo_hdr hdr;
1460 };
1461 
1468  uint8_t type;
1469  uint8_t code;
1472  uint8_t target_addr[16];
1473 };
1474 
1476 #ifndef __cplusplus
1477 static const
1479  .target_addr =
1480  "\xff\xff\xff\xff\xff\xff\xff\xff"
1481  "\xff\xff\xff\xff\xff\xff\xff\xff",
1482 };
1483 #endif
1484 
1491  uint8_t type;
1492  uint8_t code;
1499  uint8_t target_addr[16];
1500 };
1501 
1503 #ifndef __cplusplus
1504 static const
1506  .target_addr =
1507  "\xff\xff\xff\xff\xff\xff\xff\xff"
1508  "\xff\xff\xff\xff\xff\xff\xff\xff",
1509 };
1510 #endif
1511 
1524  uint8_t type;
1525  uint8_t length;
1526 };
1527 
1529 #ifndef __cplusplus
1530 static const struct rte_flow_item_icmp6_nd_opt
1532  .type = 0xff,
1533 };
1534 #endif
1535 
1548  uint8_t type;
1549  uint8_t length;
1550  struct rte_ether_addr sla;
1551 };
1552 
1554 #ifndef __cplusplus
1555 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1557  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1558 };
1559 #endif
1560 
1573  uint8_t type;
1574  uint8_t length;
1575  struct rte_ether_addr tla;
1576 };
1577 
1579 #ifndef __cplusplus
1580 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1582  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1583 };
1584 #endif
1585 
1598  uint32_t data;
1599 };
1600 
1602 #ifndef __cplusplus
1603 static const struct rte_flow_item_meta rte_flow_item_meta_mask = {
1604  .data = UINT32_MAX,
1605 };
1606 #endif
1607 
1614  struct rte_gtp_psc_generic_hdr hdr;
1615 };
1616 
1618 #ifndef __cplusplus
1619 static const struct rte_flow_item_gtp_psc
1621  .hdr.qfi = 0x3f,
1622 };
1623 #endif
1624 
1634  uint8_t version_type;
1635  uint8_t code;
1638 };
1639 
1654 };
1655 
1657 #ifndef __cplusplus
1658 static const struct rte_flow_item_pppoe_proto_id
1660  .proto_id = RTE_BE16(0xffff),
1661 };
1662 #endif
1663 
1673  uint32_t data;
1674  uint8_t index;
1675 };
1676 
1678 #ifndef __cplusplus
1679 static const struct rte_flow_item_tag rte_flow_item_tag_mask = {
1680  .data = 0xffffffff,
1681  .index = 0xff,
1682 };
1683 #endif
1684 
1692 };
1693 
1695 #ifndef __cplusplus
1697  .session_id = RTE_BE32(UINT32_MAX),
1698 };
1699 #endif
1700 
1701 
1721  uint32_t id;
1722 };
1723 
1725 #ifndef __cplusplus
1726 static const struct rte_flow_item_mark rte_flow_item_mark_mask = {
1727  .id = 0xffffffff,
1728 };
1729 #endif
1730 
1740  uint32_t version:2;
1741  uint32_t oam_pkt:1;
1742  uint32_t reserved:1;
1743  uint32_t ttl:6;
1744  uint32_t length:6;
1745  uint32_t reserved1:4;
1746  uint32_t mdtype:4;
1747  uint32_t next_proto:8;
1748  uint32_t spi:24;
1749  uint32_t sindex:8;
1750 };
1751 
1753 #ifndef __cplusplus
1754 static const struct rte_flow_item_nsh rte_flow_item_nsh_mask = {
1755  .mdtype = 0xf,
1756  .next_proto = 0xff,
1757  .spi = 0xffffff,
1758  .sindex = 0xff,
1759 };
1760 #endif
1761 
1771  uint32_t type:8;
1772  uint32_t max_resp_time:8;
1773  uint32_t checksum:16;
1774  uint32_t group_addr;
1775 };
1776 
1778 #ifndef __cplusplus
1779 static const struct rte_flow_item_igmp rte_flow_item_igmp_mask = {
1780  .group_addr = 0xffffffff,
1781 };
1782 #endif
1783 
1793  uint32_t next_hdr:8;
1794  uint32_t payload_len:8;
1795  uint32_t reserved:16;
1796  uint32_t spi;
1797  uint32_t seq_num;
1798 };
1799 
1801 #ifndef __cplusplus
1802 static const struct rte_flow_item_ah rte_flow_item_ah_mask = {
1803  .spi = 0xffffffff,
1804 };
1805 #endif
1806 
1816  uint8_t s_field;
1817  uint8_t msg_type;
1818  rte_be16_t msg_len;
1819  rte_be64_t seid;
1820 };
1821 
1823 #ifndef __cplusplus
1824 static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask = {
1825  .s_field = 0x01,
1826  .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1827 };
1828 #endif
1829 
1839  struct rte_ecpri_combined_msg_hdr hdr;
1840 };
1841 
1843 #ifndef __cplusplus
1844 static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask = {
1845  .hdr = {
1846  .common = {
1847  .u32 = 0x0,
1848  },
1849  },
1850 };
1851 #endif
1852 
1859  rte_be16_t option_class;
1860  uint8_t option_type;
1861  uint8_t option_len;
1862  uint32_t *data;
1863 };
1864 
1866 #ifndef __cplusplus
1867 static const struct rte_flow_item_geneve_opt
1869  .option_type = 0xff,
1870 };
1871 #endif
1872 
1885  uint32_t level;
1886  union {
1887  __extension__
1888  struct {
1890  uint64_t packet_ok:1;
1892  uint64_t l2_ok:1;
1894  uint64_t l3_ok:1;
1896  uint64_t l4_ok:1;
1898  uint64_t l2_crc_ok:1;
1900  uint64_t ipv4_csum_ok:1;
1902  uint64_t l4_csum_ok:1;
1904  uint64_t l3_len_ok:1;
1905  uint64_t reserved:56;
1906  };
1907  uint64_t value;
1908  };
1909 };
1910 
1911 #ifndef __cplusplus
1912 static const struct rte_flow_item_integrity
1913 rte_flow_item_integrity_mask = {
1914  .level = 0,
1915  .value = 0,
1916 };
1917 #endif
1918 
1922 #define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1926 #define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1931 #define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1936 #define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1941 #define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1942 
1954  uint32_t flags;
1955 };
1956 
1958 #ifndef __cplusplus
1960  .flags = 0xffffffff,
1961 };
1962 #endif
1963 
1970  uint16_t port_id;
1971 };
1972 
1974 #ifndef __cplusplus
1975 static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask = {
1976  .port_id = 0xffff,
1977 };
1978 #endif
1979 
1989  struct rte_l2tpv2_combined_msg_hdr hdr;
1990 };
1991 
1993 #ifndef __cplusplus
1994 static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask = {
1995  /*
1996  * flags and version bit mask
1997  * 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1998  * T L x x S x O P x x x x V V V V
1999  */
2000  .hdr = {
2001  .common = {
2002  .flags_version = RTE_BE16(0xcb0f),
2003  },
2004  },
2005 };
2006 #endif
2007 
2017  struct rte_ppp_hdr hdr;
2018 };
2019 
2021 #ifndef __cplusplus
2022 static const struct rte_flow_item_ppp rte_flow_item_ppp_mask = {
2023  .hdr = {
2024  .addr = 0xff,
2025  .ctrl = 0xff,
2026  .proto_id = RTE_BE16(0xffff),
2027  }
2028 };
2029 #endif
2030 
2037  struct rte_ib_bth hdr;
2038 };
2039 
2041 #ifndef __cplusplus
2042 static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask = {
2043  .hdr = {
2044  .opcode = 0xff,
2045  .dst_qp = "\xff\xff\xff",
2046  },
2047 };
2048 #endif
2049 
2084  enum rte_flow_item_type type;
2085  const void *spec;
2086  const void *last;
2087  const void *mask;
2088 };
2089 
2107  struct rte_flow_item_flex_handle *handle;
2108  uint32_t length;
2109  const uint8_t *pattern;
2110 };
2142 };
2143 
2173 };
2174 
2180 __extension__
2184  uint32_t field_size;
2185  int32_t field_base;
2186  uint32_t offset_base;
2187  uint32_t offset_mask;
2188  int32_t offset_shift;
2189  uint32_t field_id:16;
2190  uint32_t reserved:16;
2191 };
2192 
2203  struct rte_flow_item item;
2208  uint32_t next;
2209 };
2210 
2240  uint32_t nb_samples;
2250  uint32_t nb_inputs;
2258  uint32_t nb_outputs;
2259 };
2260 
2267  enum rte_color color;
2268 };
2269 
2271 #ifndef __cplusplus
2273  .color = RTE_COLORS,
2274 };
2275 #endif
2276 
2292  uint8_t affinity;
2293 };
2294 
2296 #ifndef __cplusplus
2297 static const struct rte_flow_item_aggr_affinity
2299  .affinity = 0xff,
2300 };
2301 #endif
2302 
2312  uint16_t tx_queue;
2313 };
2314 
2316 #ifndef __cplusplus
2318  .tx_queue = 0xffff,
2319 };
2320 #endif
2321 
2329  uint32_t packet_type;
2330 };
2331 
2333 #ifndef __cplusplus
2334 static const struct rte_flow_item_ptype rte_flow_item_ptype_mask = {
2335  .packet_type = 0xffffffff,
2336 };
2337 #endif
2338 
2373 
2381 
2389 
2398 
2410 
2422 
2429 
2438 
2449 
2458 
2470 
2482 
2493 
2501 
2509 
2520 
2528 
2536 
2544 
2552 
2560 
2568 
2576 
2585 
2593 
2602 
2609 
2616 
2629 
2642 
2655 
2668 
2682 
2696 
2707 
2717 
2727 
2740 
2753 
2770 
2787 
2804 
2821 
2834 
2844 
2857 
2870 
2883 
2891 
2902 
2913 
2921 
2930 
2938 
2945 
2953 
2961 
2971 
2980 
2990 
2999 
3009 
3016 
3025 };
3026 
3039 };
3040 
3050  enum rte_flow_quota_mode mode;
3051  int64_t quota;
3052 };
3053 
3063  int64_t quota;
3064 };
3065 
3077 };
3078 
3089  int64_t quota;
3090 };
3091 
3103  uint32_t id;
3104 };
3105 
3119  uint32_t group;
3120 };
3121 
3128  uint16_t index;
3129 };
3130 
3145  uint32_t timeout:24;
3146  uint32_t reserved:8;
3148  void *context;
3149 };
3150 
3158  uint32_t reserved:6;
3159  uint32_t aged:1;
3162  uint32_t sec_since_last_hit:24;
3163 };
3164 
3185  uint32_t reserved:6;
3186  uint32_t timeout_valid:1;
3187  uint32_t timeout:24;
3189  uint32_t touch:1;
3190 };
3191 
3210  uint32_t id;
3211 };
3212 
3219  uint32_t reset:1;
3220  uint32_t hits_set:1;
3221  uint32_t bytes_set:1;
3222  uint32_t reserved:29;
3223  uint64_t hits;
3224  uint64_t bytes;
3225 };
3226 
3270  uint32_t level;
3271  uint64_t types;
3272  uint32_t key_len;
3273  uint32_t queue_num;
3274  const uint8_t *key;
3275  const uint16_t *queue;
3276 };
3277 
3295  uint32_t original:1;
3296  uint32_t reserved:31;
3297  uint32_t id;
3298 };
3299 
3312  uint32_t original:1;
3313  uint32_t reserved:31;
3314  uint32_t id;
3315 };
3316 
3326  uint32_t mtr_id;
3327 };
3328 
3361 };
3362 
3371 };
3372 
3381 };
3382 
3390  uint8_t vlan_pcp;
3391 };
3392 
3401 };
3402 
3411 };
3412 
3445 };
3446 
3478 };
3479 
3500  uint8_t *data;
3501  uint8_t *preserve;
3502  size_t size;
3503 };
3504 
3521  uint8_t *data;
3522  size_t size;
3523 };
3524 
3537  rte_be32_t ipv4_addr;
3538 };
3539 
3552  uint8_t ipv6_addr[16];
3553 };
3554 
3568  uint8_t *data;
3569  size_t size;
3570  uint8_t type;
3571 };
3572 
3584  uint8_t type;
3585 };
3586 
3599  rte_be16_t port;
3600 };
3601 
3608  uint8_t ttl_value;
3609 };
3610 
3617  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
3618 };
3619 
3630  uint32_t data;
3631  uint32_t mask;
3632  uint8_t index;
3633 };
3634 
3655  uint32_t data;
3656  uint32_t mask;
3657 };
3658 
3667  uint8_t dscp;
3668 };
3669 
3687 struct rte_flow_action_handle;
3688 
3705 };
3706 
3717 };
3718 
3730  uint32_t scale:4;
3732  uint32_t close_initiated:1;
3734  uint32_t last_ack_seen:1;
3739  uint32_t data_unacked:1;
3744  uint32_t sent_end;
3749  uint32_t reply_end;
3751  uint32_t max_win;
3753  uint32_t max_ack;
3754 };
3755 
3768  uint16_t peer_port;
3773  uint32_t is_original_dir:1;
3781  uint32_t enable:1;
3783  uint32_t live_connection:1;
3785  uint32_t selective_ack:1;
3792  uint32_t last_direction:1;
3794  uint32_t liberal_mode:1;
3806  uint16_t last_window;
3807  enum rte_flow_conntrack_tcp_last_index last_index;
3809  uint32_t last_seq;
3811  uint32_t last_ack;
3816  uint32_t last_end;
3817 };
3818 
3830  uint32_t direction:1;
3832  uint32_t state:1;
3834  uint32_t reserved:30;
3835 };
3836 
3847  enum rte_color color;
3848 };
3849 
3856  uint16_t port_id;
3857 };
3858 
3907 };
3908 
3916  enum rte_flow_field_id field;
3917  union {
3918  struct {
3920  union {
3921  struct {
3956  uint8_t level;
3957  union {
3963  uint8_t tag_index;
3970  struct {
3974  uint8_t type;
3979  };
3980  };
3981  };
3982  struct rte_flow_item_flex_handle *flex_handle;
3983  };
3985  uint32_t offset;
3986  };
3993  uint8_t value[16];
3999  void *pvalue;
4000  };
4001 };
4002 
4010 };
4011 
4026  uint32_t width;
4027 };
4028 
4041 
4043  struct rte_flow_meter_profile *profile;
4045  struct rte_flow_meter_policy *policy;
4049  int state;
4050 };
4051 
4061  uint32_t profile_valid:1;
4063  uint32_t policy_valid:1;
4065  uint32_t color_mode_valid:1;
4067  uint32_t state_valid:1;
4069  uint32_t reserved:28;
4070 };
4071 
4080  enum rte_color init_color;
4081 };
4082 
4096  const char *name;
4098  uint32_t size;
4100  const uint8_t *value;
4101 };
4102 
4118  const char *name;
4120  uint32_t args_num;
4123 };
4124 
4125 /* Mbuf dynamic field offset for metadata. */
4126 extern int32_t rte_flow_dynf_metadata_offs;
4127 
4128 /* Mbuf dynamic field flag mask for metadata. */
4129 extern uint64_t rte_flow_dynf_metadata_mask;
4130 
4131 /* Mbuf dynamic field pointer for metadata. */
4132 #define RTE_FLOW_DYNF_METADATA(m) \
4133  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
4134 
4135 /* Mbuf dynamic flags for metadata. */
4136 #define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
4137 #define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
4138 
4139 __rte_experimental
4140 static inline uint32_t
4141 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
4142 {
4143  return *RTE_FLOW_DYNF_METADATA(m);
4144 }
4145 
4146 __rte_experimental
4147 static inline void
4148 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
4149 {
4150  *RTE_FLOW_DYNF_METADATA(m) = v;
4151 }
4152 
4161  enum rte_flow_action_type type;
4162  const void *conf;
4163 };
4164 
4171 struct rte_flow;
4172 
4178 struct rte_flow_meter_profile;
4179 
4185 struct rte_flow_meter_policy;
4186 
4204  uint32_t ratio;
4206  const struct rte_flow_action *actions;
4207 };
4208 
4234 };
4235 
4248  enum rte_flow_error_type type;
4249  const void *cause;
4250  const char *message;
4251 };
4252 
4262  union {
4263  const struct rte_flow_attr *attr_ro;
4265  };
4266  union {
4267  const struct rte_flow_item *pattern_ro;
4269  };
4270  union {
4271  const struct rte_flow_action *actions_ro;
4273  };
4274 };
4275 
4288 
4300 
4312 
4324 
4337 
4350 
4363 
4377 
4391 
4405 
4419 };
4420 
4440 __rte_experimental
4441 int
4442 rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow,
4443  FILE *file, struct rte_flow_error *error);
4444 
4451 __rte_experimental
4452 static inline int
4454 {
4455  return !!rte_flow_dynf_metadata_mask;
4456 }
4457 
4468 __rte_experimental
4469 int
4471 
4524 int
4525 rte_flow_validate(uint16_t port_id,
4526  const struct rte_flow_attr *attr,
4527  const struct rte_flow_item pattern[],
4528  const struct rte_flow_action actions[],
4529  struct rte_flow_error *error);
4530 
4551 struct rte_flow *
4552 rte_flow_create(uint16_t port_id,
4553  const struct rte_flow_attr *attr,
4554  const struct rte_flow_item pattern[],
4555  const struct rte_flow_action actions[],
4556  struct rte_flow_error *error);
4557 
4578 int
4579 rte_flow_destroy(uint16_t port_id,
4580  struct rte_flow *flow,
4581  struct rte_flow_error *error);
4582 
4599 __rte_experimental
4600 int
4601 rte_flow_actions_update(uint16_t port_id,
4602  struct rte_flow *flow,
4603  const struct rte_flow_action actions[],
4604  struct rte_flow_error *error);
4605 
4622 int
4623 rte_flow_flush(uint16_t port_id,
4624  struct rte_flow_error *error);
4625 
4650 int
4651 rte_flow_query(uint16_t port_id,
4652  struct rte_flow *flow,
4653  const struct rte_flow_action *action,
4654  void *data,
4655  struct rte_flow_error *error);
4656 
4702 int
4703 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
4704 
4722 int
4724  int code,
4725  enum rte_flow_error_type type,
4726  const void *cause,
4727  const char *message);
4728 
4734  size_t size;
4735  struct rte_flow_attr attr;
4738  uint8_t data[];
4739 };
4740 
4767 __rte_deprecated
4768 size_t
4769 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
4770  const struct rte_flow_attr *attr,
4771  const struct rte_flow_item *items,
4772  const struct rte_flow_action *actions);
4773 
4814 __rte_experimental
4815 int
4817  void *dst,
4818  size_t size,
4819  const void *src,
4820  struct rte_flow_error *error);
4821 
4850 __rte_experimental
4851 int
4852 rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
4853  uint32_t nb_contexts, struct rte_flow_error *error);
4854 
4894 __rte_experimental
4895 int
4896 rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts,
4897  uint32_t nb_contexts, struct rte_flow_error *error);
4898 
4910  uint32_t ingress:1;
4912  uint32_t egress:1;
4917  uint32_t transfer:1;
4918 };
4919 
4947 __rte_experimental
4948 struct rte_flow_action_handle *
4950  const struct rte_flow_indir_action_conf *conf,
4951  const struct rte_flow_action *action,
4952  struct rte_flow_error *error);
4953 
4976 __rte_experimental
4977 int
4979  struct rte_flow_action_handle *handle,
4980  struct rte_flow_error *error);
4981 
5015 __rte_experimental
5016 int
5018  struct rte_flow_action_handle *handle,
5019  const void *update,
5020  struct rte_flow_error *error);
5021 
5047 __rte_experimental
5048 int
5050  const struct rte_flow_action_handle *handle,
5051  void *data, struct rte_flow_error *error);
5052 
5053 /* Tunnel has a type and the key information. */
5054 struct rte_flow_tunnel {
5059  enum rte_flow_item_type type;
5060  uint64_t tun_id;
5062  union {
5063  struct {
5066  } ipv4;
5067  struct {
5068  uint8_t src_addr[16];
5069  uint8_t dst_addr[16];
5070  } ipv6;
5071  };
5072  rte_be16_t tp_src;
5073  rte_be16_t tp_dst;
5074  uint16_t tun_flags;
5076  bool is_ipv6;
5082  uint8_t tos;
5083  uint8_t ttl;
5084  uint32_t label;
5085 };
5086 
5090 #define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
5091 
5095 #define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
5096 
5100 #define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
5101 
5112  uint64_t flags;
5113  uint32_t group_id;
5114  struct rte_flow_tunnel tunnel;
5115 };
5116 
5140 __rte_experimental
5141 int
5142 rte_flow_tunnel_decap_set(uint16_t port_id,
5143  struct rte_flow_tunnel *tunnel,
5144  struct rte_flow_action **actions,
5145  uint32_t *num_of_actions,
5146  struct rte_flow_error *error);
5147 
5171 __rte_experimental
5172 int
5173 rte_flow_tunnel_match(uint16_t port_id,
5174  struct rte_flow_tunnel *tunnel,
5175  struct rte_flow_item **items,
5176  uint32_t *num_of_items,
5177  struct rte_flow_error *error);
5178 
5190 __rte_experimental
5191 uint64_t
5193 
5215 __rte_experimental
5216 int
5217 rte_flow_get_restore_info(uint16_t port_id,
5218  struct rte_mbuf *m,
5219  struct rte_flow_restore_info *info,
5220  struct rte_flow_error *error);
5221 
5238 __rte_experimental
5239 int
5241  struct rte_flow_action *actions,
5242  uint32_t num_of_actions,
5243  struct rte_flow_error *error);
5244 
5261 __rte_experimental
5262 int
5264  struct rte_flow_item *items,
5265  uint32_t num_of_items,
5266  struct rte_flow_error *error);
5267 
5293 int
5294 rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id,
5295  struct rte_flow_error *error);
5296 
5315 __rte_experimental
5316 struct rte_flow_item_flex_handle *
5317 rte_flow_flex_item_create(uint16_t port_id,
5318  const struct rte_flow_item_flex_conf *conf,
5319  struct rte_flow_error *error);
5320 
5335 __rte_experimental
5336 int
5338  const struct rte_flow_item_flex_handle *handle,
5339  struct rte_flow_error *error);
5340 
5345 #define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
5346 
5352 #define RTE_FLOW_PORT_FLAG_SHARE_INDIRECT RTE_BIT32(1)
5353 
5365  uint32_t max_nb_queues;
5380  uint32_t max_nb_meters;
5390  uint32_t max_nb_quotas;
5395 };
5396 
5408  uint32_t max_size;
5409 };
5410 
5432 __rte_experimental
5433 int
5434 rte_flow_info_get(uint16_t port_id,
5435  struct rte_flow_port_info *port_info,
5436  struct rte_flow_queue_info *queue_info,
5437  struct rte_flow_error *error);
5438 
5451  uint32_t nb_counters;
5461  uint32_t nb_meters;
5466  uint32_t nb_conn_tracks;
5470  uint16_t host_port_id;
5475  uint32_t nb_quotas;
5479  uint32_t flags;
5480 };
5481 
5493  uint32_t size;
5494 };
5495 
5527 __rte_experimental
5528 int
5529 rte_flow_configure(uint16_t port_id,
5530  const struct rte_flow_port_attr *port_attr,
5531  uint16_t nb_queue,
5532  const struct rte_flow_queue_attr *queue_attr[],
5533  struct rte_flow_error *error);
5534 
5539 struct rte_flow_pattern_template;
5540 
5547 __extension__
5556  uint32_t relaxed_matching:1;
5562  uint32_t ingress:1;
5564  uint32_t egress:1;
5566  uint32_t transfer:1;
5567 };
5568 
5596 __rte_experimental
5597 struct rte_flow_pattern_template *
5599  const struct rte_flow_pattern_template_attr *template_attr,
5600  const struct rte_flow_item pattern[],
5601  struct rte_flow_error *error);
5602 
5623 __rte_experimental
5624 int
5626  struct rte_flow_pattern_template *pattern_template,
5627  struct rte_flow_error *error);
5628 
5633 struct rte_flow_actions_template;
5634 
5641 __extension__
5648  uint32_t ingress:1;
5650  uint32_t egress:1;
5652  uint32_t transfer:1;
5653 };
5654 
5690 __rte_experimental
5691 struct rte_flow_actions_template *
5693  const struct rte_flow_actions_template_attr *template_attr,
5694  const struct rte_flow_action actions[],
5695  const struct rte_flow_action masks[],
5696  struct rte_flow_error *error);
5697 
5718 __rte_experimental
5719 int
5721  struct rte_flow_actions_template *actions_template,
5722  struct rte_flow_error *error);
5723 
5728 struct rte_flow_template_table;
5729 
5743 #define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG RTE_BIT32(0)
5751 #define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG RTE_BIT32(1)
5769 };
5770 
5794 };
5795 
5806  struct rte_flow_attr flow_attr;
5810  uint32_t nb_flows;
5819  uint32_t specialize;
5828 };
5829 
5862 __rte_experimental
5863 struct rte_flow_template_table *
5865  const struct rte_flow_template_table_attr *table_attr,
5866  struct rte_flow_pattern_template *pattern_templates[],
5867  uint8_t nb_pattern_templates,
5868  struct rte_flow_actions_template *actions_templates[],
5869  uint8_t nb_actions_templates,
5870  struct rte_flow_error *error);
5871 
5892 __rte_experimental
5893 int
5895  struct rte_flow_template_table *template_table,
5896  struct rte_flow_error *error);
5897 
5919 __rte_experimental
5920 int
5922  uint32_t group_id,
5923  const struct rte_flow_group_attr *attr,
5924  const struct rte_flow_action actions[],
5925  struct rte_flow_error *error);
5926 
5933 __extension__
5939  uint32_t postpone:1;
5940 };
5941 
5978 __rte_experimental
5979 struct rte_flow *
5980 rte_flow_async_create(uint16_t port_id,
5981  uint32_t queue_id,
5982  const struct rte_flow_op_attr *op_attr,
5983  struct rte_flow_template_table *template_table,
5984  const struct rte_flow_item pattern[],
5985  uint8_t pattern_template_index,
5986  const struct rte_flow_action actions[],
5987  uint8_t actions_template_index,
5988  void *user_data,
5989  struct rte_flow_error *error);
5990 
6023 __rte_experimental
6024 struct rte_flow *
6026  uint32_t queue_id,
6027  const struct rte_flow_op_attr *op_attr,
6028  struct rte_flow_template_table *template_table,
6029  uint32_t rule_index,
6030  const struct rte_flow_action actions[],
6031  uint8_t actions_template_index,
6032  void *user_data,
6033  struct rte_flow_error *error);
6034 
6064 __rte_experimental
6065 int
6066 rte_flow_async_destroy(uint16_t port_id,
6067  uint32_t queue_id,
6068  const struct rte_flow_op_attr *op_attr,
6069  struct rte_flow *flow,
6070  void *user_data,
6071  struct rte_flow_error *error);
6072 
6101 __rte_experimental
6102 int
6104  uint32_t queue_id,
6105  const struct rte_flow_op_attr *op_attr,
6106  struct rte_flow *flow,
6107  const struct rte_flow_action actions[],
6108  uint8_t actions_template_index,
6109  void *user_data,
6110  struct rte_flow_error *error);
6111 
6132 __rte_experimental
6133 int
6134 rte_flow_push(uint16_t port_id,
6135  uint32_t queue_id,
6136  struct rte_flow_error *error);
6137 
6153 };
6154 
6161 __extension__
6170  void *user_data;
6171 };
6172 
6198 __rte_experimental
6199 int
6200 rte_flow_pull(uint16_t port_id,
6201  uint32_t queue_id,
6202  struct rte_flow_op_result res[],
6203  uint16_t n_res,
6204  struct rte_flow_error *error);
6205 
6232 __rte_experimental
6233 struct rte_flow_action_handle *
6235  uint32_t queue_id,
6236  const struct rte_flow_op_attr *op_attr,
6237  const struct rte_flow_indir_action_conf *indir_action_conf,
6238  const struct rte_flow_action *action,
6239  void *user_data,
6240  struct rte_flow_error *error);
6241 
6267 __rte_experimental
6268 int
6270  uint32_t queue_id,
6271  const struct rte_flow_op_attr *op_attr,
6272  struct rte_flow_action_handle *action_handle,
6273  void *user_data,
6274  struct rte_flow_error *error);
6275 
6306 __rte_experimental
6307 int
6309  uint32_t queue_id,
6310  const struct rte_flow_op_attr *op_attr,
6311  struct rte_flow_action_handle *action_handle,
6312  const void *update,
6313  void *user_data,
6314  struct rte_flow_error *error);
6315 
6350 __rte_experimental
6351 int
6353  uint32_t queue_id,
6354  const struct rte_flow_op_attr *op_attr,
6355  const struct rte_flow_action_handle *action_handle,
6356  void *data,
6357  void *user_data,
6358  struct rte_flow_error *error);
6359 
6372 };
6373 
6407 __rte_experimental
6408 int
6410  struct rte_flow_action_handle *handle,
6411  const void *update, void *query,
6412  enum rte_flow_query_update_mode mode,
6413  struct rte_flow_error *error);
6414 
6450 __rte_experimental
6451 int
6452 rte_flow_async_action_handle_query_update(uint16_t port_id, uint32_t queue_id,
6453  const struct rte_flow_op_attr *attr,
6454  struct rte_flow_action_handle *handle,
6455  const void *update, void *query,
6456  enum rte_flow_query_update_mode mode,
6457  void *user_data,
6458  struct rte_flow_error *error);
6459 
6460 struct rte_flow_action_list_handle;
6461 
6472  struct rte_flow_action_list_handle *handle;
6481  const void **conf;
6482 };
6483 
6511 __rte_experimental
6512 struct rte_flow_action_list_handle *
6514  const
6515  struct rte_flow_indir_action_conf *conf,
6516  const struct rte_flow_action *actions,
6517  struct rte_flow_error *error);
6518 
6553 __rte_experimental
6554 struct rte_flow_action_list_handle *
6555 rte_flow_async_action_list_handle_create(uint16_t port_id, uint32_t queue_id,
6556  const struct rte_flow_op_attr *attr,
6557  const struct rte_flow_indir_action_conf *conf,
6558  const struct rte_flow_action *actions,
6559  void *user_data,
6560  struct rte_flow_error *error);
6561 
6583 __rte_experimental
6584 int
6586  struct rte_flow_action_list_handle *handle,
6587  struct rte_flow_error *error);
6588 
6619 __rte_experimental
6620 int
6622  (uint16_t port_id, uint32_t queue_id,
6623  const struct rte_flow_op_attr *op_attr,
6624  struct rte_flow_action_list_handle *handle,
6625  void *user_data, struct rte_flow_error *error);
6626 
6663 __rte_experimental
6664 int
6666  const struct rte_flow_action_list_handle *handle,
6667  const void **update, void **query,
6668  enum rte_flow_query_update_mode mode,
6669  struct rte_flow_error *error);
6670 
6714 __rte_experimental
6715 int
6716 rte_flow_async_action_list_handle_query_update(uint16_t port_id, uint32_t queue_id,
6717  const struct rte_flow_op_attr *attr,
6718  const struct rte_flow_action_list_handle *handle,
6719  const void **update, void **query,
6720  enum rte_flow_query_update_mode mode,
6721  void *user_data,
6722  struct rte_flow_error *error);
6723 
6750 __rte_experimental
6751 int
6752 rte_flow_calc_table_hash(uint16_t port_id, const struct rte_flow_template_table *table,
6753  const struct rte_flow_item pattern[], uint8_t pattern_template_index,
6754  uint32_t *hash, struct rte_flow_error *error);
6755 
6756 #ifdef __cplusplus
6757 }
6758 #endif
6759 
6760 #endif /* RTE_FLOW_H_ */
#define RTE_BIT32(nr)
Definition: rte_bitops.h:40
uint32_t rte_be32_t
uint64_t rte_be64_t
uint16_t rte_be16_t
rte_eth_hash_function
Definition: rte_ethdev.h:451
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:25
struct rte_ether_addr src_addr
Definition: rte_ether.h:1
struct rte_ether_addr dst_addr
Definition: rte_ether.h:0
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_experimental int rte_flow_actions_template_destroy(uint16_t port_id, struct rte_flow_actions_template *actions_template, struct rte_flow_error *error)
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:803
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
static const struct rte_flow_item_aggr_affinity rte_flow_item_aggr_affinity_mask
Definition: rte_flow.h:2298
__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_modify_op
Definition: rte_flow.h:4006
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:4007
@ RTE_FLOW_MODIFY_SUB
Definition: rte_flow.h:4009
@ RTE_FLOW_MODIFY_ADD
Definition: rte_flow.h:4008
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1203
__rte_experimental struct rte_flow_action_list_handle * rte_flow_action_list_handle_create(uint16_t port_id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *actions, struct rte_flow_error *error)
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:4453
__rte_experimental int rte_flow_action_handle_query_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode mode, struct rte_flow_error *error)
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
Definition: rte_flow.h:1478
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1355
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1603
__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)
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1556
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:1021
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1620
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:1109
rte_flow_quota_mode
Definition: rte_flow.h:3035
@ RTE_FLOW_QUOTA_MODE_L3
Definition: rte_flow.h:3038
@ RTE_FLOW_QUOTA_MODE_L2
Definition: rte_flow.h:3037
@ RTE_FLOW_QUOTA_MODE_PACKET
Definition: rte_flow.h:3036
rte_flow_update_quota_op
Definition: rte_flow.h:3074
@ RTE_FLOW_UPDATE_QUOTA_SET
Definition: rte_flow.h:3075
@ RTE_FLOW_UPDATE_QUOTA_ADD
Definition: rte_flow.h:3076
__rte_experimental int rte_flow_template_table_destroy(uint16_t port_id, struct rte_flow_template_table *template_table, struct rte_flow_error *error)
__rte_experimental struct rte_flow_action_list_handle * rte_flow_async_action_list_handle_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *actions, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
Definition: rte_flow.h:1659
rte_flow_op_status
Definition: rte_flow.h:6144
@ RTE_FLOW_OP_SUCCESS
Definition: rte_flow.h:6148
@ RTE_FLOW_OP_ERROR
Definition: rte_flow.h:6152
static const struct rte_flow_item_quota rte_flow_item_quota_mask
Definition: rte_flow.h:735
rte_flow_conntrack_tcp_last_index
Definition: rte_flow.h:3710
@ RTE_FLOW_CONNTRACK_FLAG_ACK
Definition: rte_flow.h:3715
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
Definition: rte_flow.h:3713
@ RTE_FLOW_CONNTRACK_FLAG_FIN
Definition: rte_flow.h:3714
@ RTE_FLOW_CONNTRACK_FLAG_SYN
Definition: rte_flow.h:3712
@ RTE_FLOW_CONNTRACK_FLAG_RST
Definition: rte_flow.h:3716
@ RTE_FLOW_CONNTRACK_FLAG_NONE
Definition: rte_flow.h:3711
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1326
__rte_experimental int rte_flow_calc_table_hash(uint16_t port_id, const struct rte_flow_template_table *table, const struct rte_flow_item pattern[], uint8_t pattern_template_index, uint32_t *hash, struct rte_flow_error *error)
rte_flow_conntrack_state
Definition: rte_flow.h:3692
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
Definition: rte_flow.h:3696
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
Definition: rte_flow.h:3694
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
Definition: rte_flow.h:3702
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
Definition: rte_flow.h:3698
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
Definition: rte_flow.h:3704
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
Definition: rte_flow.h:3700
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:1137
__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)
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_experimental struct rte_flow * rte_flow_async_create_by_index(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_template_table *template_table, uint32_t rule_index, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
__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_experimental int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
__rte_experimental int rte_flow_action_list_handle_query_update(uint16_t port_id, const struct rte_flow_action_list_handle *handle, const void **update, void **query, enum rte_flow_query_update_mode mode, struct rte_flow_error *error)
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1414
__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_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_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_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)
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1824
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1696
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1679
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1581
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:838
static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask
Definition: rte_flow.h:2272
rte_flow_query_update_mode
Definition: rte_flow.h:6369
@ RTE_FLOW_QU_UPDATE_FIRST
Definition: rte_flow.h:6371
@ RTE_FLOW_QU_QUERY_FIRST
Definition: rte_flow.h:6370
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
struct rte_flow * rte_flow_create(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
rte_flow_table_hash_func
Definition: rte_flow.h:5777
@ RTE_FLOW_TABLE_HASH_FUNC_CRC16
Definition: rte_flow.h:5793
@ RTE_FLOW_TABLE_HASH_FUNC_LINEAR
Definition: rte_flow.h:5785
@ RTE_FLOW_TABLE_HASH_FUNC_DEFAULT
Definition: rte_flow.h:5781
@ RTE_FLOW_TABLE_HASH_FUNC_CRC32
Definition: rte_flow.h:5789
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:926
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:1059
int rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id, struct rte_flow_error *error)
rte_flow_conv_op
Definition: rte_flow.h:4281
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:4418
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:4311
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:4349
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:4287
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:4362
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:4299
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:4390
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:4404
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:4336
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:4376
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:4323
__rte_experimental int rte_flow_group_set_miss_actions(uint16_t port_id, uint32_t group_id, const struct rte_flow_group_attr *attr, const struct rte_flow_action actions[], struct rte_flow_error *error)
__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_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_action_type
Definition: rte_flow.h:2365
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:2527
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:2575
@ RTE_FLOW_ACTION_TYPE_SKIP_CMAN
Definition: rte_flow.h:2989
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:2592
@ RTE_FLOW_ACTION_TYPE_QUOTA
Definition: rte_flow.h:2979
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2769
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:2388
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:2448
@ RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
Definition: rte_flow.h:2970
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2695
@ RTE_FLOW_ACTION_TYPE_INDIRECT
Definition: rte_flow.h:2920
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:2608
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:2481
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2843
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2706
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE
Definition: rte_flow.h:3008
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2654
@ RTE_FLOW_ACTION_TYPE_METER_MARK
Definition: rte_flow.h:2960
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:2559
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:2615
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:2380
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:2882
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:2457
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:2409
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:2628
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:2519
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:2641
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH
Definition: rte_flow.h:2998
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2428
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2372
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:2856
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:2535
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:2944
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:2869
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:2820
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2716
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:2584
@ RTE_FLOW_ACTION_TYPE_PROG
Definition: rte_flow.h:3024
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2681
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:2492
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:2952
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:2601
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:2508
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:2567
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:2543
@ RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
Definition: rte_flow.h:3015
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2803
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:2421
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
Definition: rte_flow.h:2929
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2752
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
Definition: rte_flow.h:2937
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:2500
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:2469
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:2833
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:2901
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2667
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2726
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:2912
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:2437
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:2551
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2739
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2786
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:2890
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:2397
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1285
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1182
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
Definition: rte_flow.h:1994
__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_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)
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:1078
static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask
Definition: rte_flow.h:2042
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:986
__rte_experimental int rte_flow_dynf_metadata_register(void)
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1802
rte_flow_item_flex_tunnel_mode
Definition: rte_flow.h:2147
@ FLEX_TUNNEL_MODE_OUTER
Definition: rte_flow.h:2159
@ FLEX_TUNNEL_MODE_MULTI
Definition: rte_flow.h:2168
@ FLEX_TUNNEL_MODE_INNER
Definition: rte_flow.h:2163
@ FLEX_TUNNEL_MODE_SINGLE
Definition: rte_flow.h:2155
@ FLEX_TUNNEL_MODE_TUNNEL
Definition: rte_flow.h:2172
__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)
static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask
Definition: rte_flow.h:2317
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:751
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1531
__rte_experimental int rte_flow_push(uint16_t port_id, uint32_t queue_id, struct rte_flow_error *error)
rte_flow_table_insertion_type
Definition: rte_flow.h:5760
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX
Definition: rte_flow.h:5768
@ RTE_FLOW_TABLE_INSERTION_TYPE_PATTERN
Definition: rte_flow.h:5764
__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_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_item_flex_field_mode
Definition: rte_flow.h:2114
@ FIELD_MODE_FIXED
Definition: rte_flow.h:2125
@ FIELD_MODE_DUMMY
Definition: rte_flow.h:2120
@ FIELD_MODE_OFFSET
Definition: rte_flow.h:2132
@ FIELD_MODE_BITMASK
Definition: rte_flow.h:2141
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1389
__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_experimental int rte_flow_async_action_handle_query_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode mode, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:1040
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1754
rte_flow_error_type
Definition: rte_flow.h:4215
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:4217
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:4219
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:4216
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:4218
@ RTE_FLOW_ERROR_TYPE_STATE
Definition: rte_flow.h:4233
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:4227
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:4222
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:4223
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:4231
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:4228
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:4226
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:4229
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:4232
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:4224
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:4221
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:4220
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:4230
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:4225
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1505
__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)
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:778
__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)
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)
static const struct rte_flow_item_ptype rte_flow_item_ptype_mask
Definition: rte_flow.h:2334
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:945
__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)
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1779
rte_flow_quota_state
Definition: rte_flow.h:717
@ RTE_FLOW_QUOTA_STATE_PASS
Definition: rte_flow.h:718
@ RTE_FLOW_QUOTA_STATE_BLOCK
Definition: rte_flow.h:719
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1844
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
Definition: rte_flow.h:2022
__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)
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1446
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1301
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1726
__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_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)
static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask
Definition: rte_flow.h:1975
__rte_experimental int rte_flow_async_action_list_handle_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_list_handle *handle, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1251
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
Definition: rte_flow.h:1868
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
static const struct rte_flow_item_conntrack rte_flow_item_conntrack_mask
Definition: rte_flow.h:1959
__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_experimental int rte_flow_async_action_list_handle_query_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, const struct rte_flow_action_list_handle *handle, const void **update, void **query, enum rte_flow_query_update_mode mode, void *user_data, struct rte_flow_error *error)
__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_item_type
Definition: rte_flow.h:156
@ RTE_FLOW_ITEM_TYPE_AH
Definition: rte_flow.h:509
@ RTE_FLOW_ITEM_TYPE_L2TPV3OIP
Definition: rte_flow.h:533
@ RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY
Definition: rte_flow.h:667
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:488
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:235
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:407
@ RTE_FLOW_ITEM_TYPE_METER_COLOR
Definition: rte_flow.h:646
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:249
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:439
@ RTE_FLOW_ITEM_TYPE_QUOTA
Definition: rte_flow.h:674
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:317
@ RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REQUEST
Definition: rte_flow.h:660
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:393
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
Definition: rte_flow.h:452
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:277
@ RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:592
@ RTE_FLOW_ITEM_TYPE_INTEGRITY
Definition: rte_flow.h:574
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:365
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:263
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:502
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:351
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:298
@ RTE_FLOW_ITEM_TYPE_PFCP
Definition: rte_flow.h:540
@ RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:515
@ RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT
Definition: rte_flow.h:653
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:165
@ RTE_FLOW_ITEM_TYPE_PTYPE
Definition: rte_flow.h:706
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:415
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:214
@ RTE_FLOW_ITEM_TYPE_GRE_OPTION
Definition: rte_flow.h:632
@ RTE_FLOW_ITEM_TYPE_NVGRE
Definition: rte_flow.h:291
@ RTE_FLOW_ITEM_TYPE_GENEVE_OPT
Definition: rte_flow.h:563
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:379
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:193
@ RTE_FLOW_ITEM_TYPE_L2TPV2
Definition: rte_flow.h:618
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:228
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:344
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:372
@ RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
Definition: rte_flow.h:556
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:185
@ RTE_FLOW_ITEM_TYPE_CONNTRACK
Definition: rte_flow.h:583
@ RTE_FLOW_ITEM_TYPE_MACSEC
Definition: rte_flow.h:639
@ RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:524
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:326
@ RTE_FLOW_ITEM_TYPE_FLEX
Definition: rte_flow.h:611
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:386
@ RTE_FLOW_ITEM_TYPE_AGGR_AFFINITY
Definition: rte_flow.h:683
@ RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:479
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:305
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:175
@ RTE_FLOW_ITEM_TYPE_IB_BTH
Definition: rte_flow.h:698
@ RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:602
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:221
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:423
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:358
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:256
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:284
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:400
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:430
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:242
@ RTE_FLOW_ITEM_TYPE_PPP
Definition: rte_flow.h:625
@ RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:495
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:461
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:270
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:207
@ RTE_FLOW_ITEM_TYPE_TX_QUEUE
Definition: rte_flow.h:691
@ RTE_FLOW_ITEM_TYPE_ECPRI
Definition: rte_flow.h:549
@ RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:470
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:335
__rte_experimental int rte_flow_pattern_template_destroy(uint16_t port_id, struct rte_flow_pattern_template *pattern_template, struct rte_flow_error *error)
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:885
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:1162
__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_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_experimental uint64_t rte_flow_restore_info_dynflag(void)
__rte_experimental int rte_flow_async_actions_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_actions_update(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action actions[], struct rte_flow_error *error)
rte_flow_field_id
Definition: rte_flow.h:3862
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
Definition: rte_flow.h:3874
@ RTE_FLOW_FIELD_IPV6_PROTO
Definition: rte_flow.h:3896
@ RTE_FLOW_FIELD_METER_COLOR
Definition: rte_flow.h:3895
@ RTE_FLOW_FIELD_GTP_TEID
Definition: rte_flow.h:3886
@ RTE_FLOW_FIELD_MAC_DST
Definition: rte_flow.h:3864
@ RTE_FLOW_FIELD_IPV6_DSCP
Definition: rte_flow.h:3873
@ RTE_FLOW_FIELD_MAC_SRC
Definition: rte_flow.h:3865
@ RTE_FLOW_FIELD_GENEVE_OPT_CLASS
Definition: rte_flow.h:3900
@ RTE_FLOW_FIELD_TCP_PORT_SRC
Definition: rte_flow.h:3877
@ RTE_FLOW_FIELD_GENEVE_OPT_TYPE
Definition: rte_flow.h:3899
@ RTE_FLOW_FIELD_MPLS
Definition: rte_flow.h:3902
@ RTE_FLOW_FIELD_META
Definition: rte_flow.h:3889
@ RTE_FLOW_FIELD_IPV4_SRC
Definition: rte_flow.h:3871
@ RTE_FLOW_FIELD_IPV4_DST
Definition: rte_flow.h:3872
@ RTE_FLOW_FIELD_TAG
Definition: rte_flow.h:3887
@ RTE_FLOW_FIELD_START
Definition: rte_flow.h:3863
@ RTE_FLOW_FIELD_UDP_PORT_SRC
Definition: rte_flow.h:3882
@ RTE_FLOW_FIELD_IPV6_SRC
Definition: rte_flow.h:3875
@ RTE_FLOW_FIELD_GENEVE_OPT_DATA
Definition: rte_flow.h:3901
@ RTE_FLOW_FIELD_GTP_PSC_QFI
Definition: rte_flow.h:3894
@ RTE_FLOW_FIELD_FLEX_ITEM
Definition: rte_flow.h:3897
@ RTE_FLOW_FIELD_IPV6_DST
Definition: rte_flow.h:3876
@ RTE_FLOW_FIELD_TCP_FLAGS
Definition: rte_flow.h:3881
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:3891
@ RTE_FLOW_FIELD_UDP_PORT_DST
Definition: rte_flow.h:3883
@ RTE_FLOW_FIELD_IPV4_IHL
Definition: rte_flow.h:3904
@ RTE_FLOW_FIELD_IPV4_TTL
Definition: rte_flow.h:3870
@ RTE_FLOW_FIELD_IPV6_PAYLOAD_LEN
Definition: rte_flow.h:3906
@ RTE_FLOW_FIELD_MARK
Definition: rte_flow.h:3888
@ RTE_FLOW_FIELD_MAC_TYPE
Definition: rte_flow.h:3868
@ RTE_FLOW_FIELD_GENEVE_VNI
Definition: rte_flow.h:3885
@ RTE_FLOW_FIELD_IPV6_ECN
Definition: rte_flow.h:3893
@ RTE_FLOW_FIELD_TCP_DATA_OFFSET
Definition: rte_flow.h:3903
@ RTE_FLOW_FIELD_IPV4_DSCP
Definition: rte_flow.h:3869
@ RTE_FLOW_FIELD_VXLAN_VNI
Definition: rte_flow.h:3884
@ RTE_FLOW_FIELD_POINTER
Definition: rte_flow.h:3890
@ RTE_FLOW_FIELD_VLAN_TYPE
Definition: rte_flow.h:3866
@ RTE_FLOW_FIELD_TCP_ACK_NUM
Definition: rte_flow.h:3880
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
Definition: rte_flow.h:3879
@ RTE_FLOW_FIELD_IPV4_TOTAL_LEN
Definition: rte_flow.h:3905
@ RTE_FLOW_FIELD_IPV4_ECN
Definition: rte_flow.h:3892
@ RTE_FLOW_FIELD_HASH_RESULT
Definition: rte_flow.h:3898
@ RTE_FLOW_FIELD_TCP_PORT_DST
Definition: rte_flow.h:3878
@ RTE_FLOW_FIELD_VLAN_ID
Definition: rte_flow.h:3867
__rte_experimental int rte_flow_action_list_handle_destroy(uint16_t port_id, struct rte_flow_action_list_handle *handle, struct rte_flow_error *error)
rte_color
Definition: rte_meter.h:32
@ RTE_COLORS
Definition: rte_meter.h:36
struct rte_ether_addr arp_sha
Definition: rte_arp.h:25
rte_be32_t u32
Definition: rte_ecpri.h:71
rte_be32_t spi
Definition: rte_esp.h:24
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:61
struct rte_ether_addr dst_addr
Definition: rte_ether.h:280
struct rte_flow_tcp_dir_param reply_dir
Definition: rte_flow.h:3804
struct rte_flow_tcp_dir_param original_dir
Definition: rte_flow.h:3802
enum rte_flow_conntrack_state state
Definition: rte_flow.h:3796
struct rte_flow_action_list_handle * handle
Definition: rte_flow.h:6472
struct rte_flow_meter_profile * profile
Definition: rte_flow.h:4043
enum rte_flow_field_id field
Definition: rte_flow.h:3916
struct rte_flow_action_modify_data dst
Definition: rte_flow.h:4024
struct rte_flow_action_modify_data src
Definition: rte_flow.h:4025
enum rte_flow_modify_op operation
Definition: rte_flow.h:4023
struct rte_flow_item * definition
Definition: rte_flow.h:3477
const char * name
Definition: rte_flow.h:4118
const struct rte_flow_action_prog_argument * args
Definition: rte_flow.h:4122
enum rte_flow_quota_mode mode
Definition: rte_flow.h:3050
const uint16_t * queue
Definition: rte_flow.h:3275
enum rte_eth_hash_function func
Definition: rte_flow.h:3244
const uint8_t * key
Definition: rte_flow.h:3274
uint32_t queue_num
Definition: rte_flow.h:3273
const struct rte_flow_action * actions
Definition: rte_flow.h:4206
uint32_t original
Definition: rte_flow.h:3295
uint32_t reserved
Definition: rte_flow.h:3296
struct rte_flow_item * definition
Definition: rte_flow.h:3444
const void * conf
Definition: rte_flow.h:4162
enum rte_flow_action_type type
Definition: rte_flow.h:4161
uint32_t group
Definition: rte_flow.h:103
uint32_t egress
Definition: rte_flow.h:112
uint32_t priority
Definition: rte_flow.h:104
uint32_t transfer
Definition: rte_flow.h:130
uint32_t reserved
Definition: rte_flow.h:131
uint32_t ingress
Definition: rte_flow.h:108
struct rte_flow_action * actions
Definition: rte_flow.h:4272
struct rte_flow_attr * attr
Definition: rte_flow.h:4264
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:4271
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:4267
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:4263
struct rte_flow_item * pattern
Definition: rte_flow.h:4268
struct rte_flow_action * actions
Definition: rte_flow.h:4737
uint8_t data[]
Definition: rte_flow.h:4738
struct rte_flow_attr attr
Definition: rte_flow.h:4735
struct rte_flow_item * items
Definition: rte_flow.h:4736
size_t size
Definition: rte_flow.h:4734
const char * message
Definition: rte_flow.h:4250
enum rte_flow_error_type type
Definition: rte_flow.h:4248
const void * cause
Definition: rte_flow.h:4249
uint32_t num
Definition: rte_flow.h:773
struct rte_arp_hdr hdr
Definition: rte_flow.h:1382
struct rte_ether_addr tha
Definition: rte_flow.h:1379
struct rte_ether_addr sha
Definition: rte_flow.h:1377
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:1127
rte_be16_t inner_type
Definition: rte_flow.h:1132
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:1129
struct rte_esp_hdr hdr
Definition: rte_flow.h:1296
uint32_t has_vlan
Definition: rte_flow.h:879
rte_be16_t type
Definition: rte_flow.h:875
uint32_t reserved
Definition: rte_flow.h:880
struct rte_ether_addr dst
Definition: rte_flow.h:873
struct rte_ether_addr src
Definition: rte_flow.h:874
struct rte_flow_item_flex_field next_protocol
Definition: rte_flow.h:2232
struct rte_flow_item_flex_link * output_link
Definition: rte_flow.h:2256
enum rte_flow_item_flex_tunnel_mode tunnel
Definition: rte_flow.h:2221
struct rte_flow_item_flex_link * input_link
Definition: rte_flow.h:2248
struct rte_flow_item_flex_field next_header
Definition: rte_flow.h:2227
struct rte_flow_item_flex_field * sample_data
Definition: rte_flow.h:2238
enum rte_flow_item_flex_field_mode field_mode
Definition: rte_flow.h:2183
const uint8_t * pattern
Definition: rte_flow.h:2109
struct rte_flow_item_flex_handle * handle
Definition: rte_flow.h:2107
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1318
rte_be16_t protocol
Definition: rte_flow.h:1319
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1197
rte_be16_t protocol
Definition: rte_flow.h:1198
struct rte_gtp_psc_generic_hdr hdr
Definition: rte_flow.h:1614
rte_be32_t teid
Definition: rte_flow.h:1277
struct rte_gtp_hdr hdr
Definition: rte_flow.h:1279
rte_be16_t msg_len
Definition: rte_flow.h:1276
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1274
uint8_t msg_type
Definition: rte_flow.h:1275
struct rte_ib_bth hdr
Definition: rte_flow.h:2037
struct rte_ether_addr sla
Definition: rte_flow.h:1550
struct rte_ether_addr tla
Definition: rte_flow.h:1575
struct rte_icmp_hdr hdr
Definition: rte_flow.h:1016
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:940
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:961
uint32_t has_hip_ext
Definition: rte_flow.h:977
uint32_t has_frag_ext
Definition: rte_flow.h:967
uint32_t has_auth_ext
Definition: rte_flow.h:969
uint32_t has_dest_ext
Definition: rte_flow.h:973
uint32_t has_shim6_ext
Definition: rte_flow.h:979
uint32_t reserved
Definition: rte_flow.h:981
uint32_t has_esp_ext
Definition: rte_flow.h:971
uint32_t has_route_ext
Definition: rte_flow.h:965
uint32_t has_mobil_ext
Definition: rte_flow.h:975
uint32_t has_hop_ext
Definition: rte_flow.h:963
enum rte_color color
Definition: rte_flow.h:2267
uint8_t label_tc_s[3]
Definition: rte_flow.h:1176
uint8_t tni[3]
Definition: rte_flow.h:1156
rte_be16_t protocol
Definition: rte_flow.h:1155
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:1154
uint8_t version_type
Definition: rte_flow.h:1634
rte_be16_t length
Definition: rte_flow.h:1637
rte_be16_t session_id
Definition: rte_flow.h:1636
uint32_t packet_type
Definition: rte_flow.h:2329
const uint8_t * pattern
Definition: rte_flow.h:833
uint16_t length
Definition: rte_flow.h:832
uint32_t search
Definition: rte_flow.h:828
int32_t offset
Definition: rte_flow.h:830
uint32_t reserved
Definition: rte_flow.h:829
uint16_t limit
Definition: rte_flow.h:831
uint32_t relative
Definition: rte_flow.h:827
struct rte_sctp_hdr hdr
Definition: rte_flow.h:1073
struct rte_tcp_hdr hdr
Definition: rte_flow.h:1054
struct rte_udp_hdr hdr
Definition: rte_flow.h:1035
rte_be16_t tci
Definition: rte_flow.h:914
rte_be16_t inner_type
Definition: rte_flow.h:915
uint32_t reserved
Definition: rte_flow.h:921
uint32_t has_more_vlan
Definition: rte_flow.h:920
uint8_t vni[3]
Definition: rte_flow.h:1100
uint8_t rsvd0[3]
Definition: rte_flow.h:1099
const void * spec
Definition: rte_flow.h:2085
const void * mask
Definition: rte_flow.h:2087
enum rte_flow_item_type type
Definition: rte_flow.h:2084
const void * last
Definition: rte_flow.h:2086
struct rte_flow_action_conntrack new_ct
Definition: rte_flow.h:3828
uint32_t postpone
Definition: rte_flow.h:5939
enum rte_flow_op_status status
Definition: rte_flow.h:6166
uint32_t nb_conn_tracks
Definition: rte_flow.h:5466
uint32_t nb_counters
Definition: rte_flow.h:5451
uint16_t host_port_id
Definition: rte_flow.h:5470
uint32_t nb_aging_objects
Definition: rte_flow.h:5456
uint32_t nb_meters
Definition: rte_flow.h:5461
uint32_t nb_quotas
Definition: rte_flow.h:5475
uint32_t supported_flags
Definition: rte_flow.h:5394
uint32_t max_nb_quotas
Definition: rte_flow.h:5390
uint32_t max_nb_conn_tracks
Definition: rte_flow.h:5385
uint32_t max_nb_aging_objects
Definition: rte_flow.h:5375
uint32_t max_nb_queues
Definition: rte_flow.h:5365
uint32_t max_nb_meters
Definition: rte_flow.h:5380
uint32_t max_nb_counters
Definition: rte_flow.h:5370
uint32_t sec_since_last_hit
Definition: rte_flow.h:3162
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:3161
uint32_t reserved
Definition: rte_flow.h:3158
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:5114
uint32_t close_initiated
Definition: rte_flow.h:3732
enum rte_flow_table_insertion_type insertion_type
Definition: rte_flow.h:5823
struct rte_flow_attr flow_attr
Definition: rte_flow.h:5806
enum rte_flow_table_hash_func hash_func
Definition: rte_flow.h:5827
uint32_t timeout_valid
Definition: rte_flow.h:3186
struct rte_flow_action_meter_mark meter_mark
Definition: rte_flow.h:4059
enum rte_flow_update_quota_op op
Definition: rte_flow.h:3088
rte_be32_t teid
Definition: rte_gtp.h:54
uint8_t opcode
Definition: rte_ib.h:30
rte_be32_t src_addr
Definition: rte_ip.h:62
uint8_t src_addr[16]
Definition: rte_ip.h:530
struct rte_l2tpv2_common_hdr common
Definition: rte_l2tpv2.h:221
rte_be16_t flags_version
Definition: rte_l2tpv2.h:100
uint8_t addr
Definition: rte_ppp.h:25
rte_be16_t src_port
Definition: rte_sctp.h:29
rte_be16_t src_port
Definition: rte_tcp.h:29
rte_be16_t src_port
Definition: rte_udp.h:29
rte_be16_t vlan_tci
Definition: rte_ether.h:291
uint8_t vni[3]
Definition: rte_vxlan.h:72
uint8_t vni[3]
Definition: rte_vxlan.h:43