DPDK 26.11.0-rc2
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
46extern "C" {
47#endif
48
100 uint32_t group;
101 uint32_t priority;
105 uint32_t ingress:1;
109 uint32_t egress:1;
127 uint32_t transfer:1;
128 uint32_t reserved:29;
129};
130
131struct rte_flow_group_attr {
132 uint32_t ingress:1;
133 uint32_t egress:1;
134 uint32_t transfer:1;
135};
136
163
173
183
191
205
212
219
226
233
240
247
254
261
268
275
282
289
296
303
315
324
333
342
349
356
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
720
727};
728
738
745 enum rte_flow_quota_state state;
746};
747
751#ifndef __cplusplus
753 .state = (enum rte_flow_quota_state)0xff
754};
755#endif
756
763 struct rte_higig2_hdr hdr;
764};
765
767#ifndef __cplusplus
769 .hdr = {
770 .ppt1 = {
771 .classification = RTE_BE16(UINT16_MAX),
772 .vid = RTE_BE16(0xfff),
773 },
774 },
775};
776#endif
777
790 uint32_t num;
791};
792
794#ifndef __cplusplus
796 .num = 0x00000000,
797};
798#endif
799
815 uint32_t id;
816};
817
819#ifndef __cplusplus
821 .id = 0xffffffff,
822};
823#endif
824
844 uint32_t relative:1;
845 uint32_t search:1;
846 uint32_t reserved:30;
847 int32_t offset;
848 uint16_t limit;
849 uint16_t length;
850 const uint8_t *pattern;
851};
852
854#ifndef __cplusplus
856 .relative = 1,
857 .search = 1,
858 .reserved = 0x3fffffff,
859 .offset = 0xffffffff,
860 .limit = 0xffff,
861 .length = 0xffff,
862 .pattern = NULL,
863};
864#endif
865
884 union {
885 struct {
886 /*
887 * These fields are retained for compatibility.
888 * Please switch to the new header field below.
889 */
890 struct rte_ether_addr dst;
891 struct rte_ether_addr src;
893 };
894 struct rte_ether_hdr hdr;
895 };
896 uint32_t has_vlan:1;
897 uint32_t reserved:31;
898};
899
901#ifndef __cplusplus
903 .hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
904 .hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
905 .hdr.ether_type = RTE_BE16(0x0000),
906};
907#endif
908
925 union {
926 struct {
927 /*
928 * These fields are retained for compatibility.
929 * Please switch to the new header field below.
930 */
933 };
934 struct rte_vlan_hdr hdr;
935 };
937 uint32_t has_more_vlan:1;
938 uint32_t reserved:31;
939};
940
942#ifndef __cplusplus
944 .hdr.vlan_tci = RTE_BE16(0x0fff),
945 .hdr.eth_proto = RTE_BE16(0x0000),
946};
947#endif
948
957 struct rte_ipv4_hdr hdr;
958};
959
961#ifndef __cplusplus
963 .hdr = {
964 .src_addr = RTE_BE32(0xffffffff),
965 .dst_addr = RTE_BE32(0xffffffff),
966 },
967};
968#endif
969
978 struct rte_ipv6_hdr hdr;
980 uint32_t has_hop_ext:1;
982 uint32_t has_route_ext:1;
984 uint32_t has_frag_ext:1;
986 uint32_t has_auth_ext:1;
988 uint32_t has_esp_ext:1;
990 uint32_t has_dest_ext:1;
992 uint32_t has_mobil_ext:1;
994 uint32_t has_hip_ext:1;
996 uint32_t has_shim6_ext:1;
998 uint32_t reserved:23;
999};
1000
1002#ifndef __cplusplus
1004 .hdr = {
1005 .src_addr = RTE_IPV6_MASK_FULL,
1006 .dst_addr = RTE_IPV6_MASK_FULL,
1007 },
1008};
1009#endif
1010
1017 struct rte_ipv6_routing_ext hdr;
1018};
1019
1027};
1028
1030#ifndef __cplusplus
1032 .hdr = {
1033 .icmp_type = 0xff,
1034 .icmp_code = 0xff,
1035 },
1036};
1037#endif
1038
1046};
1047
1049#ifndef __cplusplus
1051 .hdr = {
1052 .src_port = RTE_BE16(0xffff),
1053 .dst_port = RTE_BE16(0xffff),
1054 },
1055};
1056#endif
1057
1065};
1066
1068#ifndef __cplusplus
1070 .hdr = {
1071 .src_port = RTE_BE16(0xffff),
1072 .dst_port = RTE_BE16(0xffff),
1073 },
1074};
1075#endif
1076
1084};
1085
1087#ifndef __cplusplus
1089 .hdr = {
1090 .src_port = RTE_BE16(0xffff),
1091 .dst_port = RTE_BE16(0xffff),
1092 },
1093};
1094#endif
1095
1107 union {
1108 struct {
1109 /*
1110 * These fields are retained for compatibility.
1111 * Please switch to the new header field below.
1112 */
1113 uint8_t flags;
1114 uint8_t rsvd0[3];
1115 uint8_t vni[3];
1116 uint8_t rsvd1;
1117 };
1118 struct rte_vxlan_hdr hdr;
1119 };
1120};
1121
1123#ifndef __cplusplus
1125 .hdr.vni = { 0xff, 0xff, 0xff },
1126};
1127#endif
1128
1145 uint8_t in_ecid_e;
1146 uint8_t ecid_e;
1148};
1149
1151#ifndef __cplusplus
1153 .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
1154};
1155#endif
1156
1171 uint8_t tni[3];
1172 uint8_t flow_id;
1173};
1174
1176#ifndef __cplusplus
1178 .tni = { 0xff, 0xff, 0xff },
1179};
1180#endif
1181
1191 uint8_t label_tc_s[3];
1192 uint8_t ttl;
1193};
1194
1196#ifndef __cplusplus
1198 .label_tc_s = { 0xff, 0xff, 0xf0 },
1199};
1200#endif
1201
1214};
1215
1217#ifndef __cplusplus
1219 .protocol = RTE_BE16(0xffff),
1220};
1221#endif
1222
1229 struct rte_gre_hdr_opt_checksum_rsvd checksum_rsvd;
1230 struct rte_gre_hdr_opt_key key;
1231 struct rte_gre_hdr_opt_sequence sequence;
1232};
1233
1240 struct rte_macsec_hdr macsec_hdr;
1241};
1242
1261 uint32_t thresh;
1262};
1263
1265#ifndef __cplusplus
1267 .thresh = 0xffffffff,
1268};
1269#endif
1270
1277 union {
1278 struct {
1279 /*
1280 * These are old fields kept for compatibility.
1281 * Please prefer hdr field below.
1282 */
1290 uint8_t msg_type;
1293 };
1295 };
1296};
1297
1299#ifndef __cplusplus
1301 .hdr.teid = RTE_BE32(UINT32_MAX),
1302};
1303#endif
1304
1312};
1313
1315#ifndef __cplusplus
1317 .hdr = {
1318 .spi = RTE_BE32(0xffffffff),
1319 },
1320};
1321#endif
1322
1335 uint8_t vni[3];
1336 uint8_t rsvd1;
1337};
1338
1340#ifndef __cplusplus
1342 .vni = { 0xff, 0xff, 0xff },
1343};
1344#endif
1345
1355 union {
1356 struct {
1357 /*
1358 * These are old fields kept for compatibility.
1359 * Please prefer hdr field below.
1360 */
1361 uint8_t flags;
1362 uint8_t rsvd0[2];
1363 uint8_t protocol;
1364 uint8_t vni[3];
1365 uint8_t rsvd1;
1366 };
1367 struct rte_vxlan_gpe_hdr hdr;
1368 };
1369};
1370
1377#ifndef __cplusplus
1379 .hdr.vni = { 0xff, 0xff, 0xff },
1380};
1381#endif
1382
1389 union {
1390 struct {
1391 /*
1392 * These are old fields kept for compatibility.
1393 * Please prefer hdr field below.
1394 */
1397 uint8_t hln;
1398 uint8_t pln;
1400 struct rte_ether_addr sha;
1402 struct rte_ether_addr tha;
1404 };
1405 struct rte_arp_hdr hdr;
1406 };
1407};
1408
1410#ifndef __cplusplus
1411static const struct rte_flow_item_arp_eth_ipv4
1413 .hdr.arp_data.arp_sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1414 .hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
1415 .hdr.arp_data.arp_tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1416 .hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
1417};
1418#endif
1419
1431 uint8_t next_hdr;
1432};
1433
1435#ifndef __cplusplus
1436static const
1438 .next_hdr = 0xff,
1439};
1440#endif
1441
1453 struct rte_ipv6_fragment_ext hdr;
1454};
1455
1462 uint8_t type;
1463 uint8_t code;
1464 uint16_t checksum;
1465};
1466
1468#ifndef __cplusplus
1470 .type = 0xff,
1471 .code = 0xff,
1472};
1473#endif
1474
1482 struct rte_icmp_echo_hdr hdr;
1483};
1484
1491 uint8_t type;
1492 uint8_t code;
1496};
1497
1499#ifndef __cplusplus
1500static const
1503};
1504#endif
1505
1512 uint8_t type;
1513 uint8_t code;
1521};
1522
1524#ifndef __cplusplus
1525static const
1528};
1529#endif
1530
1543 uint8_t type;
1544 uint8_t length;
1545};
1546
1548#ifndef __cplusplus
1549static const struct rte_flow_item_icmp6_nd_opt
1551 .type = 0xff,
1552};
1553#endif
1554
1567 uint8_t type;
1568 uint8_t length;
1569 struct rte_ether_addr sla;
1570};
1571
1573#ifndef __cplusplus
1574static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1576 .sla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1577};
1578#endif
1579
1592 uint8_t type;
1593 uint8_t length;
1594 struct rte_ether_addr tla;
1595};
1596
1598#ifndef __cplusplus
1599static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1601 .tla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1602};
1603#endif
1604
1617 uint32_t data;
1618};
1619
1621#ifndef __cplusplus
1623 .data = UINT32_MAX,
1624};
1625#endif
1626
1634};
1635
1637#ifndef __cplusplus
1638static const struct rte_flow_item_gtp_psc
1640 .hdr.qfi = 0x3f,
1641};
1642#endif
1643
1654 uint8_t code;
1657};
1658
1673};
1674
1676#ifndef __cplusplus
1677static const struct rte_flow_item_pppoe_proto_id
1679 .proto_id = RTE_BE16(0xffff),
1680};
1681#endif
1682
1689 uint32_t data;
1690 uint8_t index;
1691};
1692
1694#ifndef __cplusplus
1696 .data = 0xffffffff,
1697 .index = 0xff,
1698};
1699#endif
1700
1708};
1709
1711#ifndef __cplusplus
1713 .session_id = RTE_BE32(UINT32_MAX),
1714};
1715#endif
1716
1717
1734 uint32_t id;
1735};
1736
1738#ifndef __cplusplus
1740 .id = 0xffffffff,
1741};
1742#endif
1743
1750 uint32_t version:2;
1751 uint32_t oam_pkt:1;
1752 uint32_t reserved:1;
1753 uint32_t ttl:6;
1754 uint32_t length:6;
1755 uint32_t reserved1:4;
1756 uint32_t mdtype:4;
1757 uint32_t next_proto:8;
1758 uint32_t spi:24;
1759 uint32_t sindex:8;
1760};
1761
1763#ifndef __cplusplus
1765 .mdtype = 0xf,
1766 .next_proto = 0xff,
1767 .spi = 0xffffff,
1768 .sindex = 0xff,
1769};
1770#endif
1771
1778 uint32_t type:8;
1779 uint32_t max_resp_time:8;
1780 uint32_t checksum:16;
1781 uint32_t group_addr;
1782};
1783
1785#ifndef __cplusplus
1787 .group_addr = 0xffffffff,
1788};
1789#endif
1790
1797 uint32_t next_hdr:8;
1798 uint32_t payload_len:8;
1799 uint32_t reserved:16;
1800 uint32_t spi;
1801 uint32_t seq_num;
1802};
1803
1805#ifndef __cplusplus
1807 .spi = 0xffffffff,
1808};
1809#endif
1810
1817 uint8_t s_field;
1818 uint8_t msg_type;
1819 rte_be16_t msg_len;
1820 rte_be64_t seid;
1821};
1822
1824#ifndef __cplusplus
1826 .s_field = 0x01,
1827 .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1828};
1829#endif
1830
1837 struct rte_ecpri_combined_msg_hdr hdr;
1838};
1839
1841#ifndef __cplusplus
1843 .hdr = {
1844 .common = {
1845 .u32 = 0x0,
1846 },
1847 },
1848};
1849#endif
1850
1857 rte_be16_t option_class;
1858 uint8_t option_type;
1859 uint8_t option_len;
1860 uint32_t *data;
1861};
1862
1864#ifndef __cplusplus
1865static const struct rte_flow_item_geneve_opt
1867 .option_type = 0xff,
1868};
1869#endif
1870
1880 uint32_t level;
1881 union {
1882 __extension__
1883 struct {
1885 uint64_t packet_ok:1;
1887 uint64_t l2_ok:1;
1889 uint64_t l3_ok:1;
1891 uint64_t l4_ok:1;
1893 uint64_t l2_crc_ok:1;
1895 uint64_t ipv4_csum_ok:1;
1897 uint64_t l4_csum_ok:1;
1899 uint64_t l3_len_ok:1;
1900 uint64_t reserved:56;
1901 };
1902 uint64_t value;
1903 };
1904};
1905
1906#ifndef __cplusplus
1907static const struct rte_flow_item_integrity
1908rte_flow_item_integrity_mask = {
1909 .level = 0,
1910 .value = 0,
1911};
1912#endif
1913
1917#define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1921#define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1926#define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1931#define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1936#define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1937
1946 uint32_t flags;
1947};
1948
1950#ifndef __cplusplus
1952 .flags = 0xffffffff,
1953};
1954#endif
1955
1962 uint16_t port_id;
1963};
1964
1966#ifndef __cplusplus
1968 .port_id = 0xffff,
1969};
1970#endif
1971
1978 struct rte_l2tpv2_combined_msg_hdr hdr;
1979};
1980
1982#ifndef __cplusplus
1984 /*
1985 * flags and version bit mask
1986 * 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1987 * T L x x S x O P x x x x V V V V
1988 */
1989 .hdr = {
1990 .common = {
1991 .flags_version = RTE_BE16(0xcb0f),
1992 },
1993 },
1994};
1995#endif
1996
2003 struct rte_ppp_hdr hdr;
2004};
2005
2007#ifndef __cplusplus
2009 .hdr = {
2010 .addr = 0xff,
2011 .ctrl = 0xff,
2012 .proto_id = RTE_BE16(0xffff),
2013 }
2014};
2015#endif
2016
2024};
2025
2027#ifndef __cplusplus
2029 .hdr = {
2030 .opcode = 0xff,
2031 .dst_qp = { 0xff, 0xff, 0xff },
2032 },
2033};
2034#endif
2035
2042 uint32_t value;
2043};
2044
2046#ifndef __cplusplus
2048 .value = UINT32_MAX,
2049};
2050#endif
2051
2087 const void *spec;
2088 const void *last;
2089 const void *mask;
2090};
2091
2106 struct rte_flow_item_flex_handle *handle;
2107 uint32_t length;
2108 const uint8_t *pattern;
2109};
2141};
2142
2172};
2173
2177__extension__
2181 uint32_t field_size;
2182 int32_t field_base;
2183 uint32_t offset_base;
2184 uint32_t offset_mask;
2186 uint32_t field_id:16;
2187 uint32_t reserved:16;
2188};
2189
2204 uint32_t next;
2205};
2206
2235 uint32_t nb_samples;
2245 uint32_t nb_inputs;
2253 uint32_t nb_outputs;
2254};
2255
2263};
2264
2266#ifndef __cplusplus
2268 .color = RTE_COLORS,
2269};
2270#endif
2271
2284 uint8_t affinity;
2285};
2286
2288#ifndef __cplusplus
2289static const struct rte_flow_item_aggr_affinity
2291 .affinity = 0xff,
2292};
2293#endif
2294
2304 uint16_t tx_queue;
2305};
2306
2308#ifndef __cplusplus
2310 .tx_queue = 0xffff,
2311};
2312#endif
2313
2321 uint32_t packet_type;
2322};
2323
2325#ifndef __cplusplus
2327 .packet_type = 0xffffffff,
2328};
2329#endif
2330
2388};
2389
2396 union {
2397 struct {
2399 union {
2400 struct {
2435 uint8_t level;
2436 union {
2442 uint8_t tag_index;
2449 struct {
2453 uint8_t type;
2458 };
2459 };
2460 };
2461 struct rte_flow_item_flex_handle *flex_handle;
2462 };
2464 uint32_t offset;
2465 };
2472 uint8_t value[16];
2478 void *pvalue;
2479 };
2480};
2481
2486 RTE_FLOW_ITEM_COMPARE_EQ, /* Compare result equal. */
2487 RTE_FLOW_ITEM_COMPARE_NE, /* Compare result not equal. */
2488 RTE_FLOW_ITEM_COMPARE_LT, /* Compare result less than. */
2489 RTE_FLOW_ITEM_COMPARE_LE, /* Compare result less than or equal. */
2490 RTE_FLOW_ITEM_COMPARE_GT, /* Compare result great than. */
2491 RTE_FLOW_ITEM_COMPARE_GE, /* Compare result great than or equal. */
2492};
2493
2503 enum rte_flow_item_compare_op operation; /* The compare operation. */
2504 struct rte_flow_field_data a; /* Field be compared. */
2505 struct rte_flow_field_data b; /* Field as comparator. */
2506 uint32_t width; /* Compare width. */
2507};
2508
2543
2551
2559
2568
2580
2592
2599
2608
2619
2628
2640
2652
2663
2671
2679
2690
2698
2706
2714
2722
2730
2738
2746
2755
2763
2772
2779
2786
2799
2812
2825
2838
2852
2866
2877
2887
2897
2910
2923
2940
2957
2974
2991
3004
3014
3027
3040
3053
3061
3072
3083
3091
3100
3108
3115
3123
3131
3141
3150
3160
3169
3179
3186
3195
3202
3211};
3212
3222};
3223
3231 int64_t quota;
3232};
3233
3240 int64_t quota;
3241};
3242
3251};
3252
3260 int64_t quota;
3261};
3262
3274 uint32_t id;
3275};
3276
3287 uint32_t group;
3288};
3289
3296 uint16_t index;
3297};
3298
3310 uint32_t timeout:24;
3311 uint32_t reserved:8;
3313 void *context;
3314};
3315
3323 uint32_t reserved:6;
3324 uint32_t aged:1;
3328};
3329
3347 uint32_t reserved:6;
3348 uint32_t timeout_valid:1;
3349 uint32_t timeout:24;
3351 uint32_t touch:1;
3352};
3353
3369 uint32_t id;
3370};
3371
3378 uint32_t reset:1;
3379 uint32_t hits_set:1;
3380 uint32_t bytes_set:1;
3381 uint32_t reserved:29;
3382 uint64_t hits;
3383 uint64_t bytes;
3384};
3385
3429 uint32_t level;
3430 uint64_t types;
3431 uint32_t key_len;
3432 uint32_t queue_num;
3433 const uint8_t *key;
3434 const uint16_t *queue;
3435};
3436
3454 uint32_t original:1;
3455 uint32_t reserved:31;
3456 uint32_t id;
3457};
3458
3471 uint32_t original:1;
3472 uint32_t reserved:31;
3473 uint32_t id;
3474};
3475
3485 uint32_t mtr_id;
3486};
3487
3520};
3521
3528};
3529
3536 enum rte_flow_nat64_type type;
3537};
3538
3547};
3548
3557};
3558
3566 uint8_t vlan_pcp;
3567};
3568
3577};
3578
3587};
3588
3618};
3619
3648};
3649
3667 uint8_t *data;
3668 uint8_t *preserve;
3669 size_t size;
3670};
3671
3685 uint8_t *data;
3686 size_t size;
3687};
3688
3698 rte_be32_t ipv4_addr;
3699};
3700
3710 struct rte_ipv6_addr ipv6_addr;
3711};
3712
3723 uint8_t *data;
3724 size_t size;
3725 uint8_t type;
3726};
3727
3736 uint8_t type;
3737};
3738
3748 rte_be16_t port;
3749};
3750
3757 uint8_t ttl_value;
3758};
3759
3766 uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
3767};
3768
3776 uint32_t data;
3777 uint32_t mask;
3778 uint8_t index;
3779};
3780
3798 uint32_t data;
3799 uint32_t mask;
3800};
3801
3810 uint8_t dscp;
3811};
3812
3827struct rte_flow_action_handle;
3828
3845};
3846
3857};
3858
3867 uint32_t scale:4;
3871 uint32_t last_ack_seen:1;
3876 uint32_t data_unacked:1;
3881 uint32_t sent_end;
3886 uint32_t reply_end;
3888 uint32_t max_win;
3890 uint32_t max_ack;
3891};
3892
3902 uint16_t peer_port;
3915 uint32_t enable:1;
3919 uint32_t selective_ack:1;
3926 uint32_t last_direction:1;
3928 uint32_t liberal_mode:1;
3940 uint16_t last_window;
3941 enum rte_flow_conntrack_tcp_last_index last_index;
3943 uint32_t last_seq;
3945 uint32_t last_ack;
3950 uint32_t last_end;
3951};
3952
3964 uint32_t direction:1;
3966 uint32_t state:1;
3968 uint32_t reserved:30;
3969};
3970
3979};
3980
3987 uint16_t port_id;
3988};
3989
3997};
3998
4010 uint32_t width;
4011};
4012
4025
4027 struct rte_flow_meter_profile *profile;
4029 struct rte_flow_meter_policy *policy;
4034};
4035
4045 uint32_t profile_valid:1;
4047 uint32_t policy_valid:1;
4051 uint32_t state_valid:1;
4053 uint32_t reserved:28;
4054};
4055
4065};
4066
4077 const char *name;
4079 uint32_t size;
4081 const uint8_t *value;
4082};
4083
4096 const char *name;
4098 uint32_t args_num;
4101};
4102
4103/* Mbuf dynamic field offset for metadata. */
4104extern int32_t rte_flow_dynf_metadata_offs;
4105
4106/* Mbuf dynamic field flag mask for metadata. */
4107extern uint64_t rte_flow_dynf_metadata_mask;
4108
4109/* Mbuf dynamic field pointer for metadata. */
4110#define RTE_FLOW_DYNF_METADATA(m) \
4111 RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
4112
4113/* Mbuf dynamic flags for metadata. */
4114#define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
4115#define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
4116
4117static inline uint32_t
4118rte_flow_dynf_metadata_get(struct rte_mbuf *m)
4119{
4120 return *RTE_FLOW_DYNF_METADATA(m);
4121}
4122
4123static inline void
4124rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
4125{
4126 *RTE_FLOW_DYNF_METADATA(m) = v;
4127}
4128
4135 struct rte_flow_template_table *table;
4136 uint32_t index;
4137};
4138
4148 const void *conf;
4149};
4150
4157struct rte_flow;
4158
4164struct rte_flow_meter_profile;
4165
4171struct rte_flow_meter_policy;
4172
4187 uint32_t ratio;
4190};
4191
4217};
4218
4232 const void *cause;
4233 const char *message;
4234};
4235
4245 union {
4246 const struct rte_flow_attr *attr_ro;
4248 };
4249 union {
4252 };
4253 union {
4256 };
4257};
4258
4271
4283
4295
4307
4319
4332
4345
4358
4372
4386
4400
4414
4429
4447};
4448
4465int
4466rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow,
4467 FILE *file, struct rte_flow_error *error);
4468
4475static inline int
4477{
4478 return !!rte_flow_dynf_metadata_mask;
4479}
4480
4491int
4493
4546int
4547rte_flow_validate(uint16_t port_id,
4548 const struct rte_flow_attr *attr,
4549 const struct rte_flow_item pattern[],
4550 const struct rte_flow_action actions[],
4551 struct rte_flow_error *error);
4552
4573struct rte_flow *
4574rte_flow_create(uint16_t port_id,
4575 const struct rte_flow_attr *attr,
4576 const struct rte_flow_item pattern[],
4577 const struct rte_flow_action actions[],
4578 struct rte_flow_error *error);
4579
4600int
4601rte_flow_destroy(uint16_t port_id,
4602 struct rte_flow *flow,
4603 struct rte_flow_error *error);
4604
4621int
4623 struct rte_flow *flow,
4624 const struct rte_flow_action actions[],
4625 struct rte_flow_error *error);
4626
4643int
4644rte_flow_flush(uint16_t port_id,
4645 struct rte_flow_error *error);
4646
4671int
4672rte_flow_query(uint16_t port_id,
4673 struct rte_flow *flow,
4674 const struct rte_flow_action *action,
4675 void *data,
4676 struct rte_flow_error *error);
4677
4723int
4724rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
4725
4743int
4745 int code,
4746 enum rte_flow_error_type type,
4747 const void *cause,
4748 const char *message);
4749
4755 size_t size;
4759 uint8_t data[];
4760};
4761
4788__rte_deprecated
4789size_t
4790rte_flow_copy(struct rte_flow_desc *fd, size_t len,
4791 const struct rte_flow_attr *attr,
4792 const struct rte_flow_item *items,
4793 const struct rte_flow_action *actions);
4794
4835int
4837 void *dst,
4838 size_t size,
4839 const void *src,
4840 struct rte_flow_error *error);
4841
4870int
4871rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
4872 uint32_t nb_contexts, struct rte_flow_error *error);
4873
4910int
4911rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts,
4912 uint32_t nb_contexts, struct rte_flow_error *error);
4913
4925 uint32_t ingress:1;
4927 uint32_t egress:1;
4932 uint32_t transfer:1;
4933};
4934
4959struct rte_flow_action_handle *
4961 const struct rte_flow_indir_action_conf *conf,
4962 const struct rte_flow_action *action,
4963 struct rte_flow_error *error);
4964
4984int
4986 struct rte_flow_action_handle *handle,
4987 struct rte_flow_error *error);
4988
5019int
5021 struct rte_flow_action_handle *handle,
5022 const void *update,
5023 struct rte_flow_error *error);
5024
5047int
5049 const struct rte_flow_action_handle *handle,
5050 void *data, struct rte_flow_error *error);
5051
5052/* Tunnel has a type and the key information. */
5053struct rte_flow_tunnel {
5058 enum rte_flow_item_type type;
5059 uint64_t tun_id;
5061 union {
5062 struct {
5063 rte_be32_t src_addr;
5064 rte_be32_t dst_addr;
5065 } ipv4;
5066 struct {
5067 struct rte_ipv6_addr src_addr;
5068 struct rte_ipv6_addr dst_addr;
5069 } ipv6;
5070 };
5071 rte_be16_t tp_src;
5072 rte_be16_t tp_dst;
5073 uint16_t tun_flags;
5075 bool is_ipv6;
5081 uint8_t tos;
5082 uint8_t ttl;
5083 uint32_t label;
5084};
5085
5089#define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
5090
5094#define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
5095
5099#define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
5100
5111 uint64_t flags;
5112 uint32_t group_id;
5113 struct rte_flow_tunnel tunnel;
5114};
5115
5139int
5141 struct rte_flow_tunnel *tunnel,
5142 struct rte_flow_action **actions,
5143 uint32_t *num_of_actions,
5144 struct rte_flow_error *error);
5145
5169int
5170rte_flow_tunnel_match(uint16_t port_id,
5171 struct rte_flow_tunnel *tunnel,
5172 struct rte_flow_item **items,
5173 uint32_t *num_of_items,
5174 struct rte_flow_error *error);
5175
5187uint64_t
5189
5211int
5213 struct rte_mbuf *m,
5214 struct rte_flow_restore_info *info,
5215 struct rte_flow_error *error);
5216
5233int
5235 struct rte_flow_action *actions,
5236 uint32_t num_of_actions,
5237 struct rte_flow_error *error);
5238
5255int
5257 struct rte_flow_item *items,
5258 uint32_t num_of_items,
5259 struct rte_flow_error *error);
5260
5286int
5287rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id,
5288 struct rte_flow_error *error);
5289
5305struct rte_flow_item_flex_handle *
5307 const struct rte_flow_item_flex_conf *conf,
5308 struct rte_flow_error *error);
5309
5324int
5326 const struct rte_flow_item_flex_handle *handle,
5327 struct rte_flow_error *error);
5328
5333#define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
5334
5340#define RTE_FLOW_PORT_FLAG_SHARE_INDIRECT RTE_BIT32(1)
5341
5380};
5381
5390 uint32_t max_size;
5391};
5392
5411int
5412rte_flow_info_get(uint16_t port_id,
5413 struct rte_flow_port_info *port_info,
5414 struct rte_flow_queue_info *queue_info,
5415 struct rte_flow_error *error);
5416
5426 uint32_t nb_counters;
5436 uint32_t nb_meters;
5450 uint32_t nb_quotas;
5454 uint32_t flags;
5455};
5456
5465 uint32_t size;
5466};
5467
5496int
5497rte_flow_configure(uint16_t port_id,
5498 const struct rte_flow_port_attr *port_attr,
5499 uint16_t nb_queue,
5500 const struct rte_flow_queue_attr *queue_attr[],
5501 struct rte_flow_error *error);
5502
5507struct rte_flow_pattern_template;
5508
5512__extension__
5527 uint32_t ingress:1;
5529 uint32_t egress:1;
5531 uint32_t transfer:1;
5532};
5533
5558struct rte_flow_pattern_template *
5560 const struct rte_flow_pattern_template_attr *template_attr,
5561 const struct rte_flow_item pattern[],
5562 struct rte_flow_error *error);
5563
5581int
5583 struct rte_flow_pattern_template *pattern_template,
5584 struct rte_flow_error *error);
5585
5590struct rte_flow_actions_template;
5591
5595__extension__
5602 uint32_t ingress:1;
5604 uint32_t egress:1;
5606 uint32_t transfer:1;
5607};
5608
5641struct rte_flow_actions_template *
5643 const struct rte_flow_actions_template_attr *template_attr,
5644 const struct rte_flow_action actions[],
5645 const struct rte_flow_action masks[],
5646 struct rte_flow_error *error);
5647
5665int
5667 struct rte_flow_actions_template *actions_template,
5668 struct rte_flow_error *error);
5669
5674struct rte_flow_template_table;
5675
5689#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG RTE_BIT32(0)
5697#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG RTE_BIT32(1)
5701#define RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE RTE_BIT32(2)
5720};
5721
5742};
5743
5755 uint32_t nb_flows;
5764 uint32_t specialize;
5773};
5774
5786bool
5788 const struct rte_flow_template_table_attr *tbl_attr);
5789
5819struct rte_flow_template_table *
5821 const struct rte_flow_template_table_attr *table_attr,
5822 struct rte_flow_pattern_template *pattern_templates[],
5823 uint8_t nb_pattern_templates,
5824 struct rte_flow_actions_template *actions_templates[],
5825 uint8_t nb_actions_templates,
5826 struct rte_flow_error *error);
5827
5845int
5847 struct rte_flow_template_table *template_table,
5848 struct rte_flow_error *error);
5849
5868int
5870 uint32_t group_id,
5871 const struct rte_flow_group_attr *attr,
5872 const struct rte_flow_action actions[],
5873 struct rte_flow_error *error);
5874
5878__extension__
5884 uint32_t postpone:1;
5885};
5886
5920struct rte_flow *
5921rte_flow_async_create(uint16_t port_id,
5922 uint32_t queue_id,
5923 const struct rte_flow_op_attr *op_attr,
5924 struct rte_flow_template_table *template_table,
5925 const struct rte_flow_item pattern[],
5926 uint8_t pattern_template_index,
5927 const struct rte_flow_action actions[],
5928 uint8_t actions_template_index,
5929 void *user_data,
5930 struct rte_flow_error *error);
5931
5961struct rte_flow *
5963 uint32_t queue_id,
5964 const struct rte_flow_op_attr *op_attr,
5965 struct rte_flow_template_table *template_table,
5966 uint32_t rule_index,
5967 const struct rte_flow_action actions[],
5968 uint8_t actions_template_index,
5969 void *user_data,
5970 struct rte_flow_error *error);
5971
6009struct rte_flow *
6011 uint32_t queue_id,
6012 const struct rte_flow_op_attr *op_attr,
6013 struct rte_flow_template_table *template_table,
6014 uint32_t rule_index,
6015 const struct rte_flow_item pattern[],
6016 uint8_t pattern_template_index,
6017 const struct rte_flow_action actions[],
6018 uint8_t actions_template_index,
6019 void *user_data,
6020 struct rte_flow_error *error);
6021
6048int
6049rte_flow_async_destroy(uint16_t port_id,
6050 uint32_t queue_id,
6051 const struct rte_flow_op_attr *op_attr,
6052 struct rte_flow *flow,
6053 void *user_data,
6054 struct rte_flow_error *error);
6055
6081int
6083 uint32_t queue_id,
6084 const struct rte_flow_op_attr *op_attr,
6085 struct rte_flow *flow,
6086 const struct rte_flow_action actions[],
6087 uint8_t actions_template_index,
6088 void *user_data,
6089 struct rte_flow_error *error);
6090
6108int
6109rte_flow_push(uint16_t port_id,
6110 uint32_t queue_id,
6111 struct rte_flow_error *error);
6112
6125};
6126
6130__extension__
6140};
6141
6164int
6165rte_flow_pull(uint16_t port_id,
6166 uint32_t queue_id,
6167 struct rte_flow_op_result res[],
6168 uint16_t n_res,
6169 struct rte_flow_error *error);
6170
6194struct rte_flow_action_handle *
6196 uint32_t queue_id,
6197 const struct rte_flow_op_attr *op_attr,
6198 const struct rte_flow_indir_action_conf *indir_action_conf,
6199 const struct rte_flow_action *action,
6200 void *user_data,
6201 struct rte_flow_error *error);
6202
6225int
6227 uint32_t queue_id,
6228 const struct rte_flow_op_attr *op_attr,
6229 struct rte_flow_action_handle *action_handle,
6230 void *user_data,
6231 struct rte_flow_error *error);
6232
6260int
6262 uint32_t queue_id,
6263 const struct rte_flow_op_attr *op_attr,
6264 struct rte_flow_action_handle *action_handle,
6265 const void *update,
6266 void *user_data,
6267 struct rte_flow_error *error);
6268
6300int
6302 uint32_t queue_id,
6303 const struct rte_flow_op_attr *op_attr,
6304 const struct rte_flow_action_handle *action_handle,
6305 void *data,
6306 void *user_data,
6307 struct rte_flow_error *error);
6308
6318};
6319
6350int
6352 struct rte_flow_action_handle *handle,
6353 const void *update, void *query,
6355 struct rte_flow_error *error);
6356
6389int
6390rte_flow_async_action_handle_query_update(uint16_t port_id, uint32_t queue_id,
6391 const struct rte_flow_op_attr *attr,
6392 struct rte_flow_action_handle *handle,
6393 const void *update, void *query,
6395 void *user_data,
6396 struct rte_flow_error *error);
6397
6398struct rte_flow_action_list_handle;
6399
6407 struct rte_flow_action_list_handle *handle;
6416 const void **conf;
6417};
6418
6443struct rte_flow_action_list_handle *
6445 const
6446 struct rte_flow_indir_action_conf *conf,
6447 const struct rte_flow_action *actions,
6448 struct rte_flow_error *error);
6449
6481struct rte_flow_action_list_handle *
6482rte_flow_async_action_list_handle_create(uint16_t port_id, uint32_t queue_id,
6483 const struct rte_flow_op_attr *attr,
6484 const struct rte_flow_indir_action_conf *conf,
6485 const struct rte_flow_action *actions,
6486 void *user_data,
6487 struct rte_flow_error *error);
6488
6507int
6509 struct rte_flow_action_list_handle *handle,
6510 struct rte_flow_error *error);
6511
6539int
6541 (uint16_t port_id, uint32_t queue_id,
6542 const struct rte_flow_op_attr *op_attr,
6543 struct rte_flow_action_list_handle *handle,
6544 void *user_data, struct rte_flow_error *error);
6545
6579int
6581 const struct rte_flow_action_list_handle *handle,
6582 const void **update, void **query,
6584 struct rte_flow_error *error);
6585
6626int
6627rte_flow_async_action_list_handle_query_update(uint16_t port_id, uint32_t queue_id,
6628 const struct rte_flow_op_attr *attr,
6629 const struct rte_flow_action_list_handle *handle,
6630 const void **update, void **query,
6632 void *user_data,
6633 struct rte_flow_error *error);
6634
6658int
6659rte_flow_calc_table_hash(uint16_t port_id, const struct rte_flow_template_table *table,
6660 const struct rte_flow_item pattern[], uint8_t pattern_template_index,
6661 uint32_t *hash, struct rte_flow_error *error);
6662
6675};
6676
6704int
6705rte_flow_calc_encap_hash(uint16_t port_id, const struct rte_flow_item pattern[],
6706 enum rte_flow_encap_hash_field dest_field, uint8_t hash_len,
6707 uint8_t *hash, struct rte_flow_error *error);
6708
6730int
6732 struct rte_flow_template_table *table,
6733 uint32_t nb_rules,
6734 struct rte_flow_error *error);
6762int
6763rte_flow_async_update_resized(uint16_t port_id, uint32_t queue,
6764 const struct rte_flow_op_attr *attr,
6765 struct rte_flow *rule, void *user_data,
6766 struct rte_flow_error *error);
6767
6788int
6790 struct rte_flow_template_table *table,
6791 struct rte_flow_error *error);
6792
6793#ifdef __cplusplus
6794}
6795#endif
6796
6797#endif /* RTE_FLOW_H_ */
#define RTE_BIT32(nr)
Definition: rte_bitops.h:44
uint32_t rte_be32_t
uint64_t rte_be64_t
uint16_t rte_be16_t
#define __rte_unused
Definition: rte_common.h:276
rte_eth_hash_function
Definition: rte_ethdev.h:494
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:27
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
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_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:820
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)
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:2290
rte_flow_modify_op
Definition: rte_flow.h:3993
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:3994
@ RTE_FLOW_MODIFY_SUB
Definition: rte_flow.h:3996
@ RTE_FLOW_MODIFY_ADD
Definition: rte_flow.h:3995
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)
int rte_flow_action_handle_destroy(uint16_t port_id, struct rte_flow_action_handle *handle, struct rte_flow_error *error)
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1218
int rte_flow_calc_encap_hash(uint16_t port_id, const struct rte_flow_item pattern[], enum rte_flow_encap_hash_field dest_field, uint8_t hash_len, uint8_t *hash, 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:1501
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1378
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1622
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1575
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)
uint64_t rte_flow_restore_info_dynflag(void)
int rte_flow_conv(enum rte_flow_conv_op op, void *dst, size_t size, const void *src, struct rte_flow_error *error)
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:1031
int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
rte_flow_item_compare_op
Definition: rte_flow.h:2485
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1639
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_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:1124
rte_flow_quota_mode
Definition: rte_flow.h:3218
@ RTE_FLOW_QUOTA_MODE_L3
Definition: rte_flow.h:3221
@ RTE_FLOW_QUOTA_MODE_L2
Definition: rte_flow.h:3220
@ RTE_FLOW_QUOTA_MODE_PACKET
Definition: rte_flow.h:3219
rte_flow_update_quota_op
Definition: rte_flow.h:3248
@ RTE_FLOW_UPDATE_QUOTA_SET
Definition: rte_flow.h:3249
@ RTE_FLOW_UPDATE_QUOTA_ADD
Definition: rte_flow.h:3250
int rte_flow_template_table_destroy(uint16_t port_id, struct rte_flow_template_table *template_table, 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:1678
rte_flow_op_status
Definition: rte_flow.h:6116
@ RTE_FLOW_OP_SUCCESS
Definition: rte_flow.h:6120
@ RTE_FLOW_OP_ERROR
Definition: rte_flow.h:6124
static const struct rte_flow_item_quota rte_flow_item_quota_mask
Definition: rte_flow.h:752
rte_flow_conntrack_tcp_last_index
Definition: rte_flow.h:3850
@ RTE_FLOW_CONNTRACK_FLAG_ACK
Definition: rte_flow.h:3855
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
Definition: rte_flow.h:3853
@ RTE_FLOW_CONNTRACK_FLAG_FIN
Definition: rte_flow.h:3854
@ RTE_FLOW_CONNTRACK_FLAG_SYN
Definition: rte_flow.h:3852
@ RTE_FLOW_CONNTRACK_FLAG_RST
Definition: rte_flow.h:3856
@ RTE_FLOW_CONNTRACK_FLAG_NONE
Definition: rte_flow.h:3851
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1341
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_flow_conntrack_state
Definition: rte_flow.h:3832
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
Definition: rte_flow.h:3836
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
Definition: rte_flow.h:3834
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
Definition: rte_flow.h:3842
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
Definition: rte_flow.h:3838
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
Definition: rte_flow.h:3844
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
Definition: rte_flow.h:3840
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:1152
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)
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)
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
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)
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)
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1437
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)
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_encap_hash_field
Definition: rte_flow.h:6670
@ RTE_FLOW_ENCAP_HASH_FIELD_SRC_PORT
Definition: rte_flow.h:6672
@ RTE_FLOW_ENCAP_HASH_FIELD_NVGRE_FLOW_ID
Definition: rte_flow.h:6674
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)
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)
int rte_flow_flex_item_release(uint16_t port_id, const struct rte_flow_item_flex_handle *handle, struct rte_flow_error *error)
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_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1825
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1712
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1695
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_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1600
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_raw rte_flow_item_raw_mask
Definition: rte_flow.h:855
static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask
Definition: rte_flow.h:2267
int rte_flow_async_update_resized(uint16_t port_id, uint32_t queue, const struct rte_flow_op_attr *attr, struct rte_flow *rule, void *user_data, struct rte_flow_error *error)
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_query_update_mode
Definition: rte_flow.h:6315
@ RTE_FLOW_QU_UPDATE_FIRST
Definition: rte_flow.h:6317
@ RTE_FLOW_QU_QUERY_FIRST
Definition: rte_flow.h:6316
rte_flow_table_hash_func
Definition: rte_flow.h:5725
@ RTE_FLOW_TABLE_HASH_FUNC_CRC16
Definition: rte_flow.h:5741
@ RTE_FLOW_TABLE_HASH_FUNC_LINEAR
Definition: rte_flow.h:5733
@ RTE_FLOW_TABLE_HASH_FUNC_DEFAULT
Definition: rte_flow.h:5729
@ RTE_FLOW_TABLE_HASH_FUNC_CRC32
Definition: rte_flow.h:5737
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_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:943
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_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:1069
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)
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)
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:4264
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:4413
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:4294
@ RTE_FLOW_CONV_OP_ITEM_DEFAULT_MASK_PTR
Definition: rte_flow.h:4428
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:4344
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:4270
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:4357
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:4282
@ RTE_FLOW_CONV_OP_ITEM_MASK
Definition: rte_flow.h:4306
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:4385
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:4399
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:4331
@ RTE_FLOW_CONV_OP_ITEM_SIZE
Definition: rte_flow.h:4446
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:4371
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:4318
rte_flow_action_type
Definition: rte_flow.h:2535
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:2697
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:2745
@ RTE_FLOW_ACTION_TYPE_SKIP_CMAN
Definition: rte_flow.h:3159
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:2762
@ RTE_FLOW_ACTION_TYPE_QUOTA
Definition: rte_flow.h:3149
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2939
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:2558
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:2618
@ RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
Definition: rte_flow.h:3140
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2865
@ RTE_FLOW_ACTION_TYPE_INDIRECT
Definition: rte_flow.h:3090
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:2778
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:2651
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:3013
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2876
@ RTE_FLOW_ACTION_TYPE_JUMP_TO_TABLE_INDEX
Definition: rte_flow.h:3210
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE
Definition: rte_flow.h:3178
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2824
@ RTE_FLOW_ACTION_TYPE_NAT64
Definition: rte_flow.h:3201
@ RTE_FLOW_ACTION_TYPE_METER_MARK
Definition: rte_flow.h:3130
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:2729
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:2785
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:2550
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:3052
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:2627
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:2579
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:2798
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:2689
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:2811
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH
Definition: rte_flow.h:3168
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2598
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2542
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:3026
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:2705
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:3114
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:3039
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:2990
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2886
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:2754
@ RTE_FLOW_ACTION_TYPE_PROG
Definition: rte_flow.h:3194
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2851
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:2662
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:3122
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:2771
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:2678
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:2737
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:2713
@ RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
Definition: rte_flow.h:3185
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2973
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:2591
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
Definition: rte_flow.h:3099
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2922
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
Definition: rte_flow.h:3107
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:2670
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:2639
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:3003
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:3071
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2837
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2896
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:3082
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:2607
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:2721
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2909
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2956
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:3060
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:2567
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1300
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1197
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
Definition: rte_flow.h:1983
int rte_flow_template_table_resize_complete(uint16_t port_id, struct rte_flow_template_table *table, struct rte_flow_error *error)
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:1088
static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask
Definition: rte_flow.h:2028
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:1003
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)
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1806
rte_flow_item_flex_tunnel_mode
Definition: rte_flow.h:2146
@ FLEX_TUNNEL_MODE_OUTER
Definition: rte_flow.h:2158
@ FLEX_TUNNEL_MODE_MULTI
Definition: rte_flow.h:2167
@ FLEX_TUNNEL_MODE_INNER
Definition: rte_flow.h:2162
@ FLEX_TUNNEL_MODE_SINGLE
Definition: rte_flow.h:2154
@ FLEX_TUNNEL_MODE_TUNNEL
Definition: rte_flow.h:2171
static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask
Definition: rte_flow.h:2309
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:768
int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1550
rte_flow_table_insertion_type
Definition: rte_flow.h:5707
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX
Definition: rte_flow.h:5715
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX_WITH_PATTERN
Definition: rte_flow.h:5719
@ RTE_FLOW_TABLE_INSERTION_TYPE_PATTERN
Definition: rte_flow.h:5711
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_action_handle_query(uint16_t port_id, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)
int rte_flow_actions_update(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action actions[], struct rte_flow_error *error)
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)
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)
rte_flow_item_flex_field_mode
Definition: rte_flow.h:2113
@ FIELD_MODE_FIXED
Definition: rte_flow.h:2124
@ FIELD_MODE_DUMMY
Definition: rte_flow.h:2119
@ FIELD_MODE_OFFSET
Definition: rte_flow.h:2131
@ FIELD_MODE_BITMASK
Definition: rte_flow.h:2140
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1412
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)
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)
int rte_flow_dynf_metadata_register(void)
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:1050
int rte_flow_push(uint16_t port_id, uint32_t queue_id, struct rte_flow_error *error)
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1764
rte_flow_error_type
Definition: rte_flow.h:4198
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:4200
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:4202
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:4199
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:4201
@ RTE_FLOW_ERROR_TYPE_STATE
Definition: rte_flow.h:4216
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:4210
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:4205
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:4206
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:4214
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:4211
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:4209
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:4212
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:4215
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:4207
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:4204
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:4203
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:4213
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:4208
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1526
static int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:4476
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:795
int rte_flow_action_list_handle_destroy(uint16_t port_id, struct rte_flow_action_list_handle *handle, 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:2326
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)
int rte_flow_action_handle_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:962
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)
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1786
rte_flow_quota_state
Definition: rte_flow.h:734
@ RTE_FLOW_QUOTA_STATE_PASS
Definition: rte_flow.h:735
@ RTE_FLOW_QUOTA_STATE_BLOCK
Definition: rte_flow.h:736
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1842
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
Definition: rte_flow.h:2008
__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:1469
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1316
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1739
static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask
Definition: rte_flow.h:1967
rte_flow_nat64_type
Definition: rte_flow.h:3525
@ RTE_FLOW_NAT64_6TO4
Definition: rte_flow.h:3526
@ RTE_FLOW_NAT64_4TO6
Definition: rte_flow.h:3527
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_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1266
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)
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
Definition: rte_flow.h:1866
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
bool rte_flow_template_table_resizable(__rte_unused uint16_t port_id, const struct rte_flow_template_table_attr *tbl_attr)
static const struct rte_flow_item_conntrack rte_flow_item_conntrack_mask
Definition: rte_flow.h:1951
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)
struct rte_flow * rte_flow_create(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
rte_flow_item_type
Definition: rte_flow.h:153
@ 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:232
@ 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:246
@ 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:314
@ 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:274
@ 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:260
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:502
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:348
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:295
@ RTE_FLOW_ITEM_TYPE_COMPARE
Definition: rte_flow.h:726
@ 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:162
@ 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:211
@ RTE_FLOW_ITEM_TYPE_GRE_OPTION
Definition: rte_flow.h:632
@ RTE_FLOW_ITEM_TYPE_RANDOM
Definition: rte_flow.h:719
@ RTE_FLOW_ITEM_TYPE_NVGRE
Definition: rte_flow.h:288
@ 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:190
@ RTE_FLOW_ITEM_TYPE_L2TPV2
Definition: rte_flow.h:618
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:225
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:341
@ 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:182
@ 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:323
@ 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:302
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:172
@ 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:218
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:423
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:355
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:253
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:281
@ 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:239
@ 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:267
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:204
@ 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:332
struct rte_flow * rte_flow_async_create_by_index_with_pattern(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_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_random rte_flow_item_random_mask
Definition: rte_flow.h:2047
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:902
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:1177
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)
int rte_flow_template_table_resize(uint16_t port_id, struct rte_flow_template_table *table, uint32_t nb_rules, struct rte_flow_error *error)
rte_flow_field_id
Definition: rte_flow.h:2335
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
Definition: rte_flow.h:2347
@ RTE_FLOW_FIELD_IPV6_PROTO
Definition: rte_flow.h:2369
@ RTE_FLOW_FIELD_METER_COLOR
Definition: rte_flow.h:2368
@ RTE_FLOW_FIELD_GTP_TEID
Definition: rte_flow.h:2359
@ RTE_FLOW_FIELD_MAC_DST
Definition: rte_flow.h:2337
@ RTE_FLOW_FIELD_IPV6_DSCP
Definition: rte_flow.h:2346
@ RTE_FLOW_FIELD_MAC_SRC
Definition: rte_flow.h:2338
@ RTE_FLOW_FIELD_GENEVE_OPT_CLASS
Definition: rte_flow.h:2373
@ RTE_FLOW_FIELD_TCP_PORT_SRC
Definition: rte_flow.h:2350
@ RTE_FLOW_FIELD_GENEVE_OPT_TYPE
Definition: rte_flow.h:2372
@ RTE_FLOW_FIELD_MPLS
Definition: rte_flow.h:2375
@ RTE_FLOW_FIELD_META
Definition: rte_flow.h:2362
@ RTE_FLOW_FIELD_IPV4_SRC
Definition: rte_flow.h:2344
@ RTE_FLOW_FIELD_IPV4_DST
Definition: rte_flow.h:2345
@ RTE_FLOW_FIELD_TAG
Definition: rte_flow.h:2360
@ RTE_FLOW_FIELD_START
Definition: rte_flow.h:2336
@ RTE_FLOW_FIELD_UDP_PORT_SRC
Definition: rte_flow.h:2355
@ RTE_FLOW_FIELD_IPV6_SRC
Definition: rte_flow.h:2348
@ RTE_FLOW_FIELD_GENEVE_OPT_DATA
Definition: rte_flow.h:2374
@ RTE_FLOW_FIELD_GTP_PSC_QFI
Definition: rte_flow.h:2367
@ RTE_FLOW_FIELD_FLEX_ITEM
Definition: rte_flow.h:2370
@ RTE_FLOW_FIELD_IPV6_DST
Definition: rte_flow.h:2349
@ RTE_FLOW_FIELD_TCP_FLAGS
Definition: rte_flow.h:2354
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:2364
@ RTE_FLOW_FIELD_UDP_PORT_DST
Definition: rte_flow.h:2356
@ RTE_FLOW_FIELD_IPV4_IHL
Definition: rte_flow.h:2377
@ RTE_FLOW_FIELD_IPV4_TTL
Definition: rte_flow.h:2343
@ RTE_FLOW_FIELD_IPV6_PAYLOAD_LEN
Definition: rte_flow.h:2379
@ RTE_FLOW_FIELD_IPV6_TRAFFIC_CLASS
Definition: rte_flow.h:2382
@ RTE_FLOW_FIELD_ESP_PROTO
Definition: rte_flow.h:2385
@ RTE_FLOW_FIELD_IPV4_PROTO
Definition: rte_flow.h:2380
@ RTE_FLOW_FIELD_MARK
Definition: rte_flow.h:2361
@ RTE_FLOW_FIELD_MAC_TYPE
Definition: rte_flow.h:2341
@ RTE_FLOW_FIELD_GENEVE_VNI
Definition: rte_flow.h:2358
@ RTE_FLOW_FIELD_VXLAN_LAST_RSVD
Definition: rte_flow.h:2387
@ RTE_FLOW_FIELD_IPV6_ECN
Definition: rte_flow.h:2366
@ RTE_FLOW_FIELD_ESP_SEQ_NUM
Definition: rte_flow.h:2384
@ RTE_FLOW_FIELD_TCP_DATA_OFFSET
Definition: rte_flow.h:2376
@ RTE_FLOW_FIELD_IPV4_DSCP
Definition: rte_flow.h:2342
@ RTE_FLOW_FIELD_VXLAN_VNI
Definition: rte_flow.h:2357
@ RTE_FLOW_FIELD_RANDOM
Definition: rte_flow.h:2386
@ RTE_FLOW_FIELD_POINTER
Definition: rte_flow.h:2363
@ RTE_FLOW_FIELD_IPV6_FLOW_LABEL
Definition: rte_flow.h:2381
@ RTE_FLOW_FIELD_VLAN_TYPE
Definition: rte_flow.h:2339
@ RTE_FLOW_FIELD_TCP_ACK_NUM
Definition: rte_flow.h:2353
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
Definition: rte_flow.h:2352
@ RTE_FLOW_FIELD_IPV4_TOTAL_LEN
Definition: rte_flow.h:2378
@ RTE_FLOW_FIELD_ESP_SPI
Definition: rte_flow.h:2383
@ RTE_FLOW_FIELD_IPV4_ECN
Definition: rte_flow.h:2365
@ RTE_FLOW_FIELD_HASH_RESULT
Definition: rte_flow.h:2371
@ RTE_FLOW_FIELD_TCP_PORT_DST
Definition: rte_flow.h:2351
@ RTE_FLOW_FIELD_VLAN_ID
Definition: rte_flow.h:2340
#define RTE_IPV6_MASK_FULL
Definition: rte_ip6.h:229
rte_color
Definition: rte_meter.h:31
@ RTE_COLORS
Definition: rte_meter.h:35
rte_be32_t u32
Definition: rte_ecpri.h:67
rte_be32_t spi
Definition: rte_esp.h:20
struct rte_ether_addr dst_addr
Definition: rte_ether.h:301
struct rte_flow_tcp_dir_param reply_dir
Definition: rte_flow.h:3938
struct rte_flow_tcp_dir_param original_dir
Definition: rte_flow.h:3936
enum rte_flow_conntrack_state state
Definition: rte_flow.h:3930
struct rte_flow_action_list_handle * handle
Definition: rte_flow.h:6407
struct rte_flow_meter_profile * profile
Definition: rte_flow.h:4027
struct rte_flow_field_data dst
Definition: rte_flow.h:4008
struct rte_flow_field_data src
Definition: rte_flow.h:4009
enum rte_flow_modify_op operation
Definition: rte_flow.h:4007
struct rte_flow_item * definition
Definition: rte_flow.h:3647
const char * name
Definition: rte_flow.h:4096
const struct rte_flow_action_prog_argument * args
Definition: rte_flow.h:4100
enum rte_flow_quota_mode mode
Definition: rte_flow.h:3230
const uint16_t * queue
Definition: rte_flow.h:3434
enum rte_eth_hash_function func
Definition: rte_flow.h:3403
const uint8_t * key
Definition: rte_flow.h:3433
uint32_t queue_num
Definition: rte_flow.h:3432
const struct rte_flow_action * actions
Definition: rte_flow.h:4189
uint32_t original
Definition: rte_flow.h:3454
uint32_t reserved
Definition: rte_flow.h:3455
struct rte_flow_item * definition
Definition: rte_flow.h:3617
const void * conf
Definition: rte_flow.h:4148
enum rte_flow_action_type type
Definition: rte_flow.h:4147
uint32_t group
Definition: rte_flow.h:100
uint32_t egress
Definition: rte_flow.h:109
uint32_t priority
Definition: rte_flow.h:101
uint32_t transfer
Definition: rte_flow.h:127
uint32_t reserved
Definition: rte_flow.h:128
uint32_t ingress
Definition: rte_flow.h:105
struct rte_flow_action * actions
Definition: rte_flow.h:4255
struct rte_flow_attr * attr
Definition: rte_flow.h:4247
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:4254
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:4250
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:4246
struct rte_flow_item * pattern
Definition: rte_flow.h:4251
struct rte_flow_action * actions
Definition: rte_flow.h:4758
uint8_t data[]
Definition: rte_flow.h:4759
struct rte_flow_attr attr
Definition: rte_flow.h:4756
struct rte_flow_item * items
Definition: rte_flow.h:4757
size_t size
Definition: rte_flow.h:4755
const char * message
Definition: rte_flow.h:4233
enum rte_flow_error_type type
Definition: rte_flow.h:4231
const void * cause
Definition: rte_flow.h:4232
uint8_t value[16]
Definition: rte_flow.h:2472
enum rte_flow_field_id field
Definition: rte_flow.h:2395
rte_be16_t class_id
Definition: rte_flow.h:2457
uint32_t num
Definition: rte_flow.h:790
struct rte_arp_hdr hdr
Definition: rte_flow.h:1405
struct rte_ether_addr tha
Definition: rte_flow.h:1402
struct rte_ether_addr sha
Definition: rte_flow.h:1400
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:1142
rte_be16_t inner_type
Definition: rte_flow.h:1147
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:1144
struct rte_esp_hdr hdr
Definition: rte_flow.h:1311
uint32_t has_vlan
Definition: rte_flow.h:896
rte_be16_t type
Definition: rte_flow.h:892
uint32_t reserved
Definition: rte_flow.h:897
struct rte_ether_addr dst
Definition: rte_flow.h:890
struct rte_ether_addr src
Definition: rte_flow.h:891
struct rte_flow_item_flex_field next_protocol
Definition: rte_flow.h:2227
struct rte_flow_item_flex_link * output_link
Definition: rte_flow.h:2251
enum rte_flow_item_flex_tunnel_mode tunnel
Definition: rte_flow.h:2216
struct rte_flow_item_flex_link * input_link
Definition: rte_flow.h:2243
struct rte_flow_item_flex_field next_header
Definition: rte_flow.h:2222
struct rte_flow_item_flex_field * sample_data
Definition: rte_flow.h:2233
enum rte_flow_item_flex_field_mode field_mode
Definition: rte_flow.h:2180
const uint8_t * pattern
Definition: rte_flow.h:2108
struct rte_flow_item_flex_handle * handle
Definition: rte_flow.h:2106
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1333
rte_be16_t protocol
Definition: rte_flow.h:1334
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1212
rte_be16_t protocol
Definition: rte_flow.h:1213
struct rte_gtp_psc_generic_hdr hdr
Definition: rte_flow.h:1633
rte_be32_t teid
Definition: rte_flow.h:1292
struct rte_gtp_hdr hdr
Definition: rte_flow.h:1294
rte_be16_t msg_len
Definition: rte_flow.h:1291
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1289
uint8_t msg_type
Definition: rte_flow.h:1290
struct rte_ib_bth hdr
Definition: rte_flow.h:2023
struct rte_ipv6_addr target_addr
Definition: rte_flow.h:1520
struct rte_ipv6_addr target_addr
Definition: rte_flow.h:1495
struct rte_ether_addr sla
Definition: rte_flow.h:1569
struct rte_ether_addr tla
Definition: rte_flow.h:1594
struct rte_icmp_hdr hdr
Definition: rte_flow.h:1026
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:957
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:978
uint32_t has_hip_ext
Definition: rte_flow.h:994
uint32_t has_frag_ext
Definition: rte_flow.h:984
uint32_t has_auth_ext
Definition: rte_flow.h:986
uint32_t has_dest_ext
Definition: rte_flow.h:990
uint32_t has_shim6_ext
Definition: rte_flow.h:996
uint32_t reserved
Definition: rte_flow.h:998
uint32_t has_esp_ext
Definition: rte_flow.h:988
uint32_t has_route_ext
Definition: rte_flow.h:982
uint32_t has_mobil_ext
Definition: rte_flow.h:992
uint32_t has_hop_ext
Definition: rte_flow.h:980
enum rte_color color
Definition: rte_flow.h:2262
uint8_t label_tc_s[3]
Definition: rte_flow.h:1191
uint8_t tni[3]
Definition: rte_flow.h:1171
rte_be16_t protocol
Definition: rte_flow.h:1170
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:1169
uint8_t version_type
Definition: rte_flow.h:1653
rte_be16_t length
Definition: rte_flow.h:1656
rte_be16_t session_id
Definition: rte_flow.h:1655
uint32_t packet_type
Definition: rte_flow.h:2321
const uint8_t * pattern
Definition: rte_flow.h:850
uint16_t length
Definition: rte_flow.h:849
uint32_t search
Definition: rte_flow.h:845
int32_t offset
Definition: rte_flow.h:847
uint32_t reserved
Definition: rte_flow.h:846
uint16_t limit
Definition: rte_flow.h:848
uint32_t relative
Definition: rte_flow.h:844
struct rte_sctp_hdr hdr
Definition: rte_flow.h:1083
struct rte_tcp_hdr hdr
Definition: rte_flow.h:1064
struct rte_udp_hdr hdr
Definition: rte_flow.h:1045
rte_be16_t tci
Definition: rte_flow.h:931
rte_be16_t inner_type
Definition: rte_flow.h:932
uint32_t reserved
Definition: rte_flow.h:938
uint32_t has_more_vlan
Definition: rte_flow.h:937
uint8_t vni[3]
Definition: rte_flow.h:1115
uint8_t rsvd0[3]
Definition: rte_flow.h:1114
const void * spec
Definition: rte_flow.h:2087
const void * mask
Definition: rte_flow.h:2089
enum rte_flow_item_type type
Definition: rte_flow.h:2086
const void * last
Definition: rte_flow.h:2088
struct rte_flow_action_conntrack new_ct
Definition: rte_flow.h:3962
uint32_t postpone
Definition: rte_flow.h:5884
enum rte_flow_op_status status
Definition: rte_flow.h:6135
uint32_t nb_conn_tracks
Definition: rte_flow.h:5441
uint32_t nb_counters
Definition: rte_flow.h:5426
uint16_t host_port_id
Definition: rte_flow.h:5445
uint32_t nb_aging_objects
Definition: rte_flow.h:5431
uint32_t nb_meters
Definition: rte_flow.h:5436
uint32_t nb_quotas
Definition: rte_flow.h:5450
uint32_t supported_flags
Definition: rte_flow.h:5379
uint32_t max_nb_quotas
Definition: rte_flow.h:5375
uint32_t max_nb_conn_tracks
Definition: rte_flow.h:5370
uint32_t max_nb_aging_objects
Definition: rte_flow.h:5360
uint32_t max_nb_queues
Definition: rte_flow.h:5350
uint32_t max_nb_meters
Definition: rte_flow.h:5365
uint32_t max_nb_counters
Definition: rte_flow.h:5355
uint32_t sec_since_last_hit
Definition: rte_flow.h:3327
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:3326
uint32_t reserved
Definition: rte_flow.h:3323
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:5113
uint32_t close_initiated
Definition: rte_flow.h:3869
enum rte_flow_table_insertion_type insertion_type
Definition: rte_flow.h:5768
struct rte_flow_attr flow_attr
Definition: rte_flow.h:5751
enum rte_flow_table_hash_func hash_func
Definition: rte_flow.h:5772
uint32_t timeout_valid
Definition: rte_flow.h:3348
struct rte_flow_action_meter_mark meter_mark
Definition: rte_flow.h:4043
enum rte_flow_update_quota_op op
Definition: rte_flow.h:3259
rte_be32_t teid
Definition: rte_gtp.h:50
uint8_t opcode
Definition: rte_ib.h:26
struct rte_l2tpv2_common_hdr common
Definition: rte_l2tpv2.h:217
rte_be16_t flags_version
Definition: rte_l2tpv2.h:96
uint8_t addr
Definition: rte_ppp.h:21
rte_be16_t src_port
Definition: rte_sctp.h:25
rte_be16_t src_port
Definition: rte_tcp.h:25
rte_be16_t src_port
Definition: rte_udp.h:25
rte_be16_t vlan_tci
Definition: rte_ether.h:317
uint8_t vni[3]
Definition: rte_vxlan.h:126
uint8_t vni[3]
Definition: rte_vxlan.h:91