DPDK 26.03.0-rc1
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
741
748 enum rte_flow_quota_state state;
749};
750
754#ifndef __cplusplus
756 .state = (enum rte_flow_quota_state)0xff
757};
758#endif
759
766 struct rte_higig2_hdr hdr;
767};
768
770#ifndef __cplusplus
772 .hdr = {
773 .ppt1 = {
774 .classification = RTE_BE16(UINT16_MAX),
775 .vid = RTE_BE16(0xfff),
776 },
777 },
778};
779#endif
780
793 uint32_t num;
794};
795
797#ifndef __cplusplus
799 .num = 0x00000000,
800};
801#endif
802
818 uint32_t id;
819};
820
822#ifndef __cplusplus
824 .id = 0xffffffff,
825};
826#endif
827
847 uint32_t relative:1;
848 uint32_t search:1;
849 uint32_t reserved:30;
850 int32_t offset;
851 uint16_t limit;
852 uint16_t length;
853 const uint8_t *pattern;
854};
855
857#ifndef __cplusplus
859 .relative = 1,
860 .search = 1,
861 .reserved = 0x3fffffff,
862 .offset = 0xffffffff,
863 .limit = 0xffff,
864 .length = 0xffff,
865 .pattern = NULL,
866};
867#endif
868
887 union {
888 struct {
889 /*
890 * These fields are retained for compatibility.
891 * Please switch to the new header field below.
892 */
893 struct rte_ether_addr dst;
894 struct rte_ether_addr src;
896 };
897 struct rte_ether_hdr hdr;
898 };
899 uint32_t has_vlan:1;
900 uint32_t reserved:31;
901};
902
904#ifndef __cplusplus
906 .hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
907 .hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
908 .hdr.ether_type = RTE_BE16(0x0000),
909};
910#endif
911
928 union {
929 struct {
930 /*
931 * These fields are retained for compatibility.
932 * Please switch to the new header field below.
933 */
936 };
937 struct rte_vlan_hdr hdr;
938 };
940 uint32_t has_more_vlan:1;
941 uint32_t reserved:31;
942};
943
945#ifndef __cplusplus
947 .hdr.vlan_tci = RTE_BE16(0x0fff),
948 .hdr.eth_proto = RTE_BE16(0x0000),
949};
950#endif
951
960 struct rte_ipv4_hdr hdr;
961};
962
964#ifndef __cplusplus
966 .hdr = {
967 .src_addr = RTE_BE32(0xffffffff),
968 .dst_addr = RTE_BE32(0xffffffff),
969 },
970};
971#endif
972
981 struct rte_ipv6_hdr hdr;
983 uint32_t has_hop_ext:1;
985 uint32_t has_route_ext:1;
987 uint32_t has_frag_ext:1;
989 uint32_t has_auth_ext:1;
991 uint32_t has_esp_ext:1;
993 uint32_t has_dest_ext:1;
995 uint32_t has_mobil_ext:1;
997 uint32_t has_hip_ext:1;
999 uint32_t has_shim6_ext:1;
1001 uint32_t reserved:23;
1002};
1003
1005#ifndef __cplusplus
1007 .hdr = {
1008 .src_addr = RTE_IPV6_MASK_FULL,
1009 .dst_addr = RTE_IPV6_MASK_FULL,
1010 },
1011};
1012#endif
1013
1023 struct rte_ipv6_routing_ext hdr;
1024};
1025
1033};
1034
1036#ifndef __cplusplus
1038 .hdr = {
1039 .icmp_type = 0xff,
1040 .icmp_code = 0xff,
1041 },
1042};
1043#endif
1044
1052};
1053
1055#ifndef __cplusplus
1057 .hdr = {
1058 .src_port = RTE_BE16(0xffff),
1059 .dst_port = RTE_BE16(0xffff),
1060 },
1061};
1062#endif
1063
1071};
1072
1074#ifndef __cplusplus
1076 .hdr = {
1077 .src_port = RTE_BE16(0xffff),
1078 .dst_port = RTE_BE16(0xffff),
1079 },
1080};
1081#endif
1082
1090};
1091
1093#ifndef __cplusplus
1095 .hdr = {
1096 .src_port = RTE_BE16(0xffff),
1097 .dst_port = RTE_BE16(0xffff),
1098 },
1099};
1100#endif
1101
1113 union {
1114 struct {
1115 /*
1116 * These fields are retained for compatibility.
1117 * Please switch to the new header field below.
1118 */
1119 uint8_t flags;
1120 uint8_t rsvd0[3];
1121 uint8_t vni[3];
1122 uint8_t rsvd1;
1123 };
1124 struct rte_vxlan_hdr hdr;
1125 };
1126};
1127
1129#ifndef __cplusplus
1131 .hdr.vni = { 0xff, 0xff, 0xff },
1132};
1133#endif
1134
1151 uint8_t in_ecid_e;
1152 uint8_t ecid_e;
1154};
1155
1157#ifndef __cplusplus
1159 .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
1160};
1161#endif
1162
1177 uint8_t tni[3];
1178 uint8_t flow_id;
1179};
1180
1182#ifndef __cplusplus
1184 .tni = { 0xff, 0xff, 0xff },
1185};
1186#endif
1187
1197 uint8_t label_tc_s[3];
1198 uint8_t ttl;
1199};
1200
1202#ifndef __cplusplus
1204 .label_tc_s = { 0xff, 0xff, 0xf0 },
1205};
1206#endif
1207
1220};
1221
1223#ifndef __cplusplus
1225 .protocol = RTE_BE16(0xffff),
1226};
1227#endif
1228
1235 struct rte_gre_hdr_opt_checksum_rsvd checksum_rsvd;
1236 struct rte_gre_hdr_opt_key key;
1237 struct rte_gre_hdr_opt_sequence sequence;
1238};
1239
1246 struct rte_macsec_hdr macsec_hdr;
1247};
1248
1267 uint32_t thresh;
1268};
1269
1271#ifndef __cplusplus
1273 .thresh = 0xffffffff,
1274};
1275#endif
1276
1283 union {
1284 struct {
1285 /*
1286 * These are old fields kept for compatibility.
1287 * Please prefer hdr field below.
1288 */
1296 uint8_t msg_type;
1299 };
1301 };
1302};
1303
1305#ifndef __cplusplus
1307 .hdr.teid = RTE_BE32(UINT32_MAX),
1308};
1309#endif
1310
1318};
1319
1321#ifndef __cplusplus
1323 .hdr = {
1324 .spi = RTE_BE32(0xffffffff),
1325 },
1326};
1327#endif
1328
1341 uint8_t vni[3];
1342 uint8_t rsvd1;
1343};
1344
1346#ifndef __cplusplus
1348 .vni = { 0xff, 0xff, 0xff },
1349};
1350#endif
1351
1361 union {
1362 struct {
1363 /*
1364 * These are old fields kept for compatibility.
1365 * Please prefer hdr field below.
1366 */
1367 uint8_t flags;
1368 uint8_t rsvd0[2];
1369 uint8_t protocol;
1370 uint8_t vni[3];
1371 uint8_t rsvd1;
1372 };
1373 struct rte_vxlan_gpe_hdr hdr;
1374 };
1375};
1376
1383#ifndef __cplusplus
1385 .hdr.vni = { 0xff, 0xff, 0xff },
1386};
1387#endif
1388
1395 union {
1396 struct {
1397 /*
1398 * These are old fields kept for compatibility.
1399 * Please prefer hdr field below.
1400 */
1403 uint8_t hln;
1404 uint8_t pln;
1406 struct rte_ether_addr sha;
1408 struct rte_ether_addr tha;
1410 };
1411 struct rte_arp_hdr hdr;
1412 };
1413};
1414
1416#ifndef __cplusplus
1417static const struct rte_flow_item_arp_eth_ipv4
1419 .hdr.arp_data.arp_sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1420 .hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
1421 .hdr.arp_data.arp_tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1422 .hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
1423};
1424#endif
1425
1437 uint8_t next_hdr;
1438};
1439
1441#ifndef __cplusplus
1442static const
1444 .next_hdr = 0xff,
1445};
1446#endif
1447
1459 struct rte_ipv6_fragment_ext hdr;
1460};
1461
1468 uint8_t type;
1469 uint8_t code;
1470 uint16_t checksum;
1471};
1472
1474#ifndef __cplusplus
1476 .type = 0xff,
1477 .code = 0xff,
1478};
1479#endif
1480
1488 struct rte_icmp_echo_hdr hdr;
1489};
1490
1497 uint8_t type;
1498 uint8_t code;
1502};
1503
1505#ifndef __cplusplus
1506static const
1509};
1510#endif
1511
1518 uint8_t type;
1519 uint8_t code;
1527};
1528
1530#ifndef __cplusplus
1531static const
1534};
1535#endif
1536
1549 uint8_t type;
1550 uint8_t length;
1551};
1552
1554#ifndef __cplusplus
1555static const struct rte_flow_item_icmp6_nd_opt
1557 .type = 0xff,
1558};
1559#endif
1560
1573 uint8_t type;
1574 uint8_t length;
1575 struct rte_ether_addr sla;
1576};
1577
1579#ifndef __cplusplus
1580static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1582 .sla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1583};
1584#endif
1585
1598 uint8_t type;
1599 uint8_t length;
1600 struct rte_ether_addr tla;
1601};
1602
1604#ifndef __cplusplus
1605static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1607 .tla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1608};
1609#endif
1610
1623 uint32_t data;
1624};
1625
1627#ifndef __cplusplus
1629 .data = UINT32_MAX,
1630};
1631#endif
1632
1640};
1641
1643#ifndef __cplusplus
1644static const struct rte_flow_item_gtp_psc
1646 .hdr.qfi = 0x3f,
1647};
1648#endif
1649
1660 uint8_t code;
1663};
1664
1679};
1680
1682#ifndef __cplusplus
1683static const struct rte_flow_item_pppoe_proto_id
1685 .proto_id = RTE_BE16(0xffff),
1686};
1687#endif
1688
1698 uint32_t data;
1699 uint8_t index;
1700};
1701
1703#ifndef __cplusplus
1705 .data = 0xffffffff,
1706 .index = 0xff,
1707};
1708#endif
1709
1717};
1718
1720#ifndef __cplusplus
1722 .session_id = RTE_BE32(UINT32_MAX),
1723};
1724#endif
1725
1726
1746 uint32_t id;
1747};
1748
1750#ifndef __cplusplus
1752 .id = 0xffffffff,
1753};
1754#endif
1755
1765 uint32_t version:2;
1766 uint32_t oam_pkt:1;
1767 uint32_t reserved:1;
1768 uint32_t ttl:6;
1769 uint32_t length:6;
1770 uint32_t reserved1:4;
1771 uint32_t mdtype:4;
1772 uint32_t next_proto:8;
1773 uint32_t spi:24;
1774 uint32_t sindex:8;
1775};
1776
1778#ifndef __cplusplus
1780 .mdtype = 0xf,
1781 .next_proto = 0xff,
1782 .spi = 0xffffff,
1783 .sindex = 0xff,
1784};
1785#endif
1786
1796 uint32_t type:8;
1797 uint32_t max_resp_time:8;
1798 uint32_t checksum:16;
1799 uint32_t group_addr;
1800};
1801
1803#ifndef __cplusplus
1805 .group_addr = 0xffffffff,
1806};
1807#endif
1808
1818 uint32_t next_hdr:8;
1819 uint32_t payload_len:8;
1820 uint32_t reserved:16;
1821 uint32_t spi;
1822 uint32_t seq_num;
1823};
1824
1826#ifndef __cplusplus
1828 .spi = 0xffffffff,
1829};
1830#endif
1831
1841 uint8_t s_field;
1842 uint8_t msg_type;
1843 rte_be16_t msg_len;
1844 rte_be64_t seid;
1845};
1846
1848#ifndef __cplusplus
1850 .s_field = 0x01,
1851 .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1852};
1853#endif
1854
1864 struct rte_ecpri_combined_msg_hdr hdr;
1865};
1866
1868#ifndef __cplusplus
1870 .hdr = {
1871 .common = {
1872 .u32 = 0x0,
1873 },
1874 },
1875};
1876#endif
1877
1884 rte_be16_t option_class;
1885 uint8_t option_type;
1886 uint8_t option_len;
1887 uint32_t *data;
1888};
1889
1891#ifndef __cplusplus
1892static const struct rte_flow_item_geneve_opt
1894 .option_type = 0xff,
1895};
1896#endif
1897
1910 uint32_t level;
1911 union {
1912 __extension__
1913 struct {
1915 uint64_t packet_ok:1;
1917 uint64_t l2_ok:1;
1919 uint64_t l3_ok:1;
1921 uint64_t l4_ok:1;
1923 uint64_t l2_crc_ok:1;
1925 uint64_t ipv4_csum_ok:1;
1927 uint64_t l4_csum_ok:1;
1929 uint64_t l3_len_ok:1;
1930 uint64_t reserved:56;
1931 };
1932 uint64_t value;
1933 };
1934};
1935
1936#ifndef __cplusplus
1937static const struct rte_flow_item_integrity
1938rte_flow_item_integrity_mask = {
1939 .level = 0,
1940 .value = 0,
1941};
1942#endif
1943
1947#define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1951#define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1956#define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1961#define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1966#define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1967
1979 uint32_t flags;
1980};
1981
1983#ifndef __cplusplus
1985 .flags = 0xffffffff,
1986};
1987#endif
1988
1995 uint16_t port_id;
1996};
1997
1999#ifndef __cplusplus
2001 .port_id = 0xffff,
2002};
2003#endif
2004
2014 struct rte_l2tpv2_combined_msg_hdr hdr;
2015};
2016
2018#ifndef __cplusplus
2020 /*
2021 * flags and version bit mask
2022 * 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
2023 * T L x x S x O P x x x x V V V V
2024 */
2025 .hdr = {
2026 .common = {
2027 .flags_version = RTE_BE16(0xcb0f),
2028 },
2029 },
2030};
2031#endif
2032
2042 struct rte_ppp_hdr hdr;
2043};
2044
2046#ifndef __cplusplus
2048 .hdr = {
2049 .addr = 0xff,
2050 .ctrl = 0xff,
2051 .proto_id = RTE_BE16(0xffff),
2052 }
2053};
2054#endif
2055
2063};
2064
2066#ifndef __cplusplus
2068 .hdr = {
2069 .opcode = 0xff,
2070 .dst_qp = { 0xff, 0xff, 0xff },
2071 },
2072};
2073#endif
2074
2084 uint32_t value;
2085};
2086
2088#ifndef __cplusplus
2090 .value = UINT32_MAX,
2091};
2092#endif
2093
2129 const void *spec;
2130 const void *last;
2131 const void *mask;
2132};
2133
2151 struct rte_flow_item_flex_handle *handle;
2152 uint32_t length;
2153 const uint8_t *pattern;
2154};
2186};
2187
2217};
2218
2224__extension__
2228 uint32_t field_size;
2229 int32_t field_base;
2230 uint32_t offset_base;
2231 uint32_t offset_mask;
2233 uint32_t field_id:16;
2234 uint32_t reserved:16;
2235};
2236
2252 uint32_t next;
2253};
2254
2284 uint32_t nb_samples;
2294 uint32_t nb_inputs;
2302 uint32_t nb_outputs;
2303};
2304
2312};
2313
2315#ifndef __cplusplus
2317 .color = RTE_COLORS,
2318};
2319#endif
2320
2336 uint8_t affinity;
2337};
2338
2340#ifndef __cplusplus
2341static const struct rte_flow_item_aggr_affinity
2343 .affinity = 0xff,
2344};
2345#endif
2346
2356 uint16_t tx_queue;
2357};
2358
2360#ifndef __cplusplus
2362 .tx_queue = 0xffff,
2363};
2364#endif
2365
2373 uint32_t packet_type;
2374};
2375
2377#ifndef __cplusplus
2379 .packet_type = 0xffffffff,
2380};
2381#endif
2382
2440};
2441
2451 union {
2452 struct {
2454 union {
2455 struct {
2490 uint8_t level;
2491 union {
2497 uint8_t tag_index;
2504 struct {
2508 uint8_t type;
2513 };
2514 };
2515 };
2516 struct rte_flow_item_flex_handle *flex_handle;
2517 };
2519 uint32_t offset;
2520 };
2527 uint8_t value[16];
2533 void *pvalue;
2534 };
2535};
2536
2541 RTE_FLOW_ITEM_COMPARE_EQ, /* Compare result equal. */
2542 RTE_FLOW_ITEM_COMPARE_NE, /* Compare result not equal. */
2543 RTE_FLOW_ITEM_COMPARE_LT, /* Compare result less than. */
2544 RTE_FLOW_ITEM_COMPARE_LE, /* Compare result less than or equal. */
2545 RTE_FLOW_ITEM_COMPARE_GT, /* Compare result great than. */
2546 RTE_FLOW_ITEM_COMPARE_GE, /* Compare result great than or equal. */
2547};
2548
2558 enum rte_flow_item_compare_op operation; /* The compare operation. */
2559 struct rte_flow_field_data a; /* Field be compared. */
2560 struct rte_flow_field_data b; /* Field as comparator. */
2561 uint32_t width; /* Compare width. */
2562};
2563
2598
2606
2614
2623
2635
2647
2654
2663
2674
2683
2695
2707
2718
2726
2734
2745
2753
2761
2769
2777
2785
2793
2801
2810
2818
2827
2834
2841
2854
2867
2880
2893
2907
2921
2932
2942
2952
2965
2978
2995
3012
3029
3046
3059
3069
3082
3095
3108
3116
3127
3138
3146
3155
3163
3170
3178
3186
3196
3205
3215
3224
3234
3241
3250
3257
3266};
3267
3280};
3281
3292 int64_t quota;
3293};
3294
3304 int64_t quota;
3305};
3306
3318};
3319
3330 int64_t quota;
3331};
3332
3344 uint32_t id;
3345};
3346
3360 uint32_t group;
3361};
3362
3369 uint16_t index;
3370};
3371
3386 uint32_t timeout:24;
3387 uint32_t reserved:8;
3389 void *context;
3390};
3391
3399 uint32_t reserved:6;
3400 uint32_t aged:1;
3404};
3405
3426 uint32_t reserved:6;
3427 uint32_t timeout_valid:1;
3428 uint32_t timeout:24;
3430 uint32_t touch:1;
3431};
3432
3451 uint32_t id;
3452};
3453
3460 uint32_t reset:1;
3461 uint32_t hits_set:1;
3462 uint32_t bytes_set:1;
3463 uint32_t reserved:29;
3464 uint64_t hits;
3465 uint64_t bytes;
3466};
3467
3511 uint32_t level;
3512 uint64_t types;
3513 uint32_t key_len;
3514 uint32_t queue_num;
3515 const uint8_t *key;
3516 const uint16_t *queue;
3517};
3518
3536 uint32_t original:1;
3537 uint32_t reserved:31;
3538 uint32_t id;
3539};
3540
3553 uint32_t original:1;
3554 uint32_t reserved:31;
3555 uint32_t id;
3556};
3557
3567 uint32_t mtr_id;
3568};
3569
3602};
3603
3610};
3611
3621 enum rte_flow_nat64_type type;
3622};
3623
3632};
3633
3642};
3643
3651 uint8_t vlan_pcp;
3652};
3653
3662};
3663
3672};
3673
3706};
3707
3739};
3740
3761 uint8_t *data;
3762 uint8_t *preserve;
3763 size_t size;
3764};
3765
3782 uint8_t *data;
3783 size_t size;
3784};
3785
3798 rte_be32_t ipv4_addr;
3799};
3800
3813 struct rte_ipv6_addr ipv6_addr;
3814};
3815
3829 uint8_t *data;
3830 size_t size;
3831 uint8_t type;
3832};
3833
3845 uint8_t type;
3846};
3847
3860 rte_be16_t port;
3861};
3862
3869 uint8_t ttl_value;
3870};
3871
3878 uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
3879};
3880
3891 uint32_t data;
3892 uint32_t mask;
3893 uint8_t index;
3894};
3895
3916 uint32_t data;
3917 uint32_t mask;
3918};
3919
3928 uint8_t dscp;
3929};
3930
3948struct rte_flow_action_handle;
3949
3966};
3967
3978};
3979
3991 uint32_t scale:4;
3995 uint32_t last_ack_seen:1;
4000 uint32_t data_unacked:1;
4005 uint32_t sent_end;
4010 uint32_t reply_end;
4012 uint32_t max_win;
4014 uint32_t max_ack;
4015};
4016
4029 uint16_t peer_port;
4042 uint32_t enable:1;
4046 uint32_t selective_ack:1;
4053 uint32_t last_direction:1;
4055 uint32_t liberal_mode:1;
4067 uint16_t last_window;
4068 enum rte_flow_conntrack_tcp_last_index last_index;
4070 uint32_t last_seq;
4072 uint32_t last_ack;
4077 uint32_t last_end;
4078};
4079
4091 uint32_t direction:1;
4093 uint32_t state:1;
4095 uint32_t reserved:30;
4096};
4097
4109};
4110
4117 uint16_t port_id;
4118};
4119
4127};
4128
4143 uint32_t width;
4144};
4145
4158
4160 struct rte_flow_meter_profile *profile;
4162 struct rte_flow_meter_policy *policy;
4167};
4168
4178 uint32_t profile_valid:1;
4180 uint32_t policy_valid:1;
4184 uint32_t state_valid:1;
4186 uint32_t reserved:28;
4187};
4188
4198};
4199
4213 const char *name;
4215 uint32_t size;
4217 const uint8_t *value;
4218};
4219
4235 const char *name;
4237 uint32_t args_num;
4240};
4241
4242/* Mbuf dynamic field offset for metadata. */
4243extern int32_t rte_flow_dynf_metadata_offs;
4244
4245/* Mbuf dynamic field flag mask for metadata. */
4246extern uint64_t rte_flow_dynf_metadata_mask;
4247
4248/* Mbuf dynamic field pointer for metadata. */
4249#define RTE_FLOW_DYNF_METADATA(m) \
4250 RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
4251
4252/* Mbuf dynamic flags for metadata. */
4253#define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
4254#define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
4255
4256__rte_experimental
4257static inline uint32_t
4258rte_flow_dynf_metadata_get(struct rte_mbuf *m)
4259{
4260 return *RTE_FLOW_DYNF_METADATA(m);
4261}
4262
4263__rte_experimental
4264static inline void
4265rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
4266{
4267 *RTE_FLOW_DYNF_METADATA(m) = v;
4268}
4269
4279 struct rte_flow_template_table *table;
4280 uint32_t index;
4281};
4282
4292 const void *conf;
4293};
4294
4301struct rte_flow;
4302
4308struct rte_flow_meter_profile;
4309
4315struct rte_flow_meter_policy;
4316
4334 uint32_t ratio;
4337};
4338
4364};
4365
4379 const void *cause;
4380 const char *message;
4381};
4382
4392 union {
4393 const struct rte_flow_attr *attr_ro;
4395 };
4396 union {
4399 };
4400 union {
4403 };
4404};
4405
4418
4430
4442
4454
4466
4479
4492
4505
4519
4533
4547
4561};
4562
4582__rte_experimental
4583int
4584rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow,
4585 FILE *file, struct rte_flow_error *error);
4586
4593__rte_experimental
4594static inline int
4596{
4597 return !!rte_flow_dynf_metadata_mask;
4598}
4599
4610__rte_experimental
4611int
4613
4666int
4667rte_flow_validate(uint16_t port_id,
4668 const struct rte_flow_attr *attr,
4669 const struct rte_flow_item pattern[],
4670 const struct rte_flow_action actions[],
4671 struct rte_flow_error *error);
4672
4693struct rte_flow *
4694rte_flow_create(uint16_t port_id,
4695 const struct rte_flow_attr *attr,
4696 const struct rte_flow_item pattern[],
4697 const struct rte_flow_action actions[],
4698 struct rte_flow_error *error);
4699
4720int
4721rte_flow_destroy(uint16_t port_id,
4722 struct rte_flow *flow,
4723 struct rte_flow_error *error);
4724
4741__rte_experimental
4742int
4744 struct rte_flow *flow,
4745 const struct rte_flow_action actions[],
4746 struct rte_flow_error *error);
4747
4764int
4765rte_flow_flush(uint16_t port_id,
4766 struct rte_flow_error *error);
4767
4792int
4793rte_flow_query(uint16_t port_id,
4794 struct rte_flow *flow,
4795 const struct rte_flow_action *action,
4796 void *data,
4797 struct rte_flow_error *error);
4798
4844int
4845rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
4846
4864int
4866 int code,
4867 enum rte_flow_error_type type,
4868 const void *cause,
4869 const char *message);
4870
4876 size_t size;
4880 uint8_t data[];
4881};
4882
4909__rte_deprecated
4910size_t
4911rte_flow_copy(struct rte_flow_desc *fd, size_t len,
4912 const struct rte_flow_attr *attr,
4913 const struct rte_flow_item *items,
4914 const struct rte_flow_action *actions);
4915
4956__rte_experimental
4957int
4959 void *dst,
4960 size_t size,
4961 const void *src,
4962 struct rte_flow_error *error);
4963
4992__rte_experimental
4993int
4994rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
4995 uint32_t nb_contexts, struct rte_flow_error *error);
4996
5036__rte_experimental
5037int
5038rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts,
5039 uint32_t nb_contexts, struct rte_flow_error *error);
5040
5052 uint32_t ingress:1;
5054 uint32_t egress:1;
5059 uint32_t transfer:1;
5060};
5061
5089__rte_experimental
5090struct rte_flow_action_handle *
5092 const struct rte_flow_indir_action_conf *conf,
5093 const struct rte_flow_action *action,
5094 struct rte_flow_error *error);
5095
5118__rte_experimental
5119int
5121 struct rte_flow_action_handle *handle,
5122 struct rte_flow_error *error);
5123
5157__rte_experimental
5158int
5160 struct rte_flow_action_handle *handle,
5161 const void *update,
5162 struct rte_flow_error *error);
5163
5189__rte_experimental
5190int
5192 const struct rte_flow_action_handle *handle,
5193 void *data, struct rte_flow_error *error);
5194
5195/* Tunnel has a type and the key information. */
5196struct rte_flow_tunnel {
5201 enum rte_flow_item_type type;
5202 uint64_t tun_id;
5204 union {
5205 struct {
5206 rte_be32_t src_addr;
5207 rte_be32_t dst_addr;
5208 } ipv4;
5209 struct {
5210 struct rte_ipv6_addr src_addr;
5211 struct rte_ipv6_addr dst_addr;
5212 } ipv6;
5213 };
5214 rte_be16_t tp_src;
5215 rte_be16_t tp_dst;
5216 uint16_t tun_flags;
5218 bool is_ipv6;
5224 uint8_t tos;
5225 uint8_t ttl;
5226 uint32_t label;
5227};
5228
5232#define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
5233
5237#define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
5238
5242#define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
5243
5254 uint64_t flags;
5255 uint32_t group_id;
5256 struct rte_flow_tunnel tunnel;
5257};
5258
5282__rte_experimental
5283int
5285 struct rte_flow_tunnel *tunnel,
5286 struct rte_flow_action **actions,
5287 uint32_t *num_of_actions,
5288 struct rte_flow_error *error);
5289
5313__rte_experimental
5314int
5315rte_flow_tunnel_match(uint16_t port_id,
5316 struct rte_flow_tunnel *tunnel,
5317 struct rte_flow_item **items,
5318 uint32_t *num_of_items,
5319 struct rte_flow_error *error);
5320
5332__rte_experimental
5333uint64_t
5335
5357__rte_experimental
5358int
5360 struct rte_mbuf *m,
5361 struct rte_flow_restore_info *info,
5362 struct rte_flow_error *error);
5363
5380__rte_experimental
5381int
5383 struct rte_flow_action *actions,
5384 uint32_t num_of_actions,
5385 struct rte_flow_error *error);
5386
5403__rte_experimental
5404int
5406 struct rte_flow_item *items,
5407 uint32_t num_of_items,
5408 struct rte_flow_error *error);
5409
5435int
5436rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id,
5437 struct rte_flow_error *error);
5438
5457__rte_experimental
5458struct rte_flow_item_flex_handle *
5460 const struct rte_flow_item_flex_conf *conf,
5461 struct rte_flow_error *error);
5462
5477__rte_experimental
5478int
5480 const struct rte_flow_item_flex_handle *handle,
5481 struct rte_flow_error *error);
5482
5487#define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
5488
5494#define RTE_FLOW_PORT_FLAG_SHARE_INDIRECT RTE_BIT32(1)
5495
5537};
5538
5550 uint32_t max_size;
5551};
5552
5574__rte_experimental
5575int
5576rte_flow_info_get(uint16_t port_id,
5577 struct rte_flow_port_info *port_info,
5578 struct rte_flow_queue_info *queue_info,
5579 struct rte_flow_error *error);
5580
5593 uint32_t nb_counters;
5603 uint32_t nb_meters;
5617 uint32_t nb_quotas;
5621 uint32_t flags;
5622};
5623
5635 uint32_t size;
5636};
5637
5669__rte_experimental
5670int
5671rte_flow_configure(uint16_t port_id,
5672 const struct rte_flow_port_attr *port_attr,
5673 uint16_t nb_queue,
5674 const struct rte_flow_queue_attr *queue_attr[],
5675 struct rte_flow_error *error);
5676
5681struct rte_flow_pattern_template;
5682
5689__extension__
5704 uint32_t ingress:1;
5706 uint32_t egress:1;
5708 uint32_t transfer:1;
5709};
5710
5738__rte_experimental
5739struct rte_flow_pattern_template *
5741 const struct rte_flow_pattern_template_attr *template_attr,
5742 const struct rte_flow_item pattern[],
5743 struct rte_flow_error *error);
5744
5765__rte_experimental
5766int
5768 struct rte_flow_pattern_template *pattern_template,
5769 struct rte_flow_error *error);
5770
5775struct rte_flow_actions_template;
5776
5783__extension__
5790 uint32_t ingress:1;
5792 uint32_t egress:1;
5794 uint32_t transfer:1;
5795};
5796
5832__rte_experimental
5833struct rte_flow_actions_template *
5835 const struct rte_flow_actions_template_attr *template_attr,
5836 const struct rte_flow_action actions[],
5837 const struct rte_flow_action masks[],
5838 struct rte_flow_error *error);
5839
5860__rte_experimental
5861int
5863 struct rte_flow_actions_template *actions_template,
5864 struct rte_flow_error *error);
5865
5870struct rte_flow_template_table;
5871
5885#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG RTE_BIT32(0)
5893#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG RTE_BIT32(1)
5897#define RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE RTE_BIT32(2)
5919};
5920
5944};
5945
5960 uint32_t nb_flows;
5969 uint32_t specialize;
5978};
5979
5994__rte_experimental
5995bool
5997 const struct rte_flow_template_table_attr *tbl_attr);
5998
6031__rte_experimental
6032struct rte_flow_template_table *
6034 const struct rte_flow_template_table_attr *table_attr,
6035 struct rte_flow_pattern_template *pattern_templates[],
6036 uint8_t nb_pattern_templates,
6037 struct rte_flow_actions_template *actions_templates[],
6038 uint8_t nb_actions_templates,
6039 struct rte_flow_error *error);
6040
6061__rte_experimental
6062int
6064 struct rte_flow_template_table *template_table,
6065 struct rte_flow_error *error);
6066
6088__rte_experimental
6089int
6091 uint32_t group_id,
6092 const struct rte_flow_group_attr *attr,
6093 const struct rte_flow_action actions[],
6094 struct rte_flow_error *error);
6095
6102__extension__
6108 uint32_t postpone:1;
6109};
6110
6147__rte_experimental
6148struct rte_flow *
6149rte_flow_async_create(uint16_t port_id,
6150 uint32_t queue_id,
6151 const struct rte_flow_op_attr *op_attr,
6152 struct rte_flow_template_table *template_table,
6153 const struct rte_flow_item pattern[],
6154 uint8_t pattern_template_index,
6155 const struct rte_flow_action actions[],
6156 uint8_t actions_template_index,
6157 void *user_data,
6158 struct rte_flow_error *error);
6159
6192__rte_experimental
6193struct rte_flow *
6195 uint32_t queue_id,
6196 const struct rte_flow_op_attr *op_attr,
6197 struct rte_flow_template_table *template_table,
6198 uint32_t rule_index,
6199 const struct rte_flow_action actions[],
6200 uint8_t actions_template_index,
6201 void *user_data,
6202 struct rte_flow_error *error);
6203
6244__rte_experimental
6245struct rte_flow *
6247 uint32_t queue_id,
6248 const struct rte_flow_op_attr *op_attr,
6249 struct rte_flow_template_table *template_table,
6250 uint32_t rule_index,
6251 const struct rte_flow_item pattern[],
6252 uint8_t pattern_template_index,
6253 const struct rte_flow_action actions[],
6254 uint8_t actions_template_index,
6255 void *user_data,
6256 struct rte_flow_error *error);
6257
6287__rte_experimental
6288int
6289rte_flow_async_destroy(uint16_t port_id,
6290 uint32_t queue_id,
6291 const struct rte_flow_op_attr *op_attr,
6292 struct rte_flow *flow,
6293 void *user_data,
6294 struct rte_flow_error *error);
6295
6324__rte_experimental
6325int
6327 uint32_t queue_id,
6328 const struct rte_flow_op_attr *op_attr,
6329 struct rte_flow *flow,
6330 const struct rte_flow_action actions[],
6331 uint8_t actions_template_index,
6332 void *user_data,
6333 struct rte_flow_error *error);
6334
6355__rte_experimental
6356int
6357rte_flow_push(uint16_t port_id,
6358 uint32_t queue_id,
6359 struct rte_flow_error *error);
6360
6376};
6377
6384__extension__
6394};
6395
6421__rte_experimental
6422int
6423rte_flow_pull(uint16_t port_id,
6424 uint32_t queue_id,
6425 struct rte_flow_op_result res[],
6426 uint16_t n_res,
6427 struct rte_flow_error *error);
6428
6455__rte_experimental
6456struct rte_flow_action_handle *
6458 uint32_t queue_id,
6459 const struct rte_flow_op_attr *op_attr,
6460 const struct rte_flow_indir_action_conf *indir_action_conf,
6461 const struct rte_flow_action *action,
6462 void *user_data,
6463 struct rte_flow_error *error);
6464
6490__rte_experimental
6491int
6493 uint32_t queue_id,
6494 const struct rte_flow_op_attr *op_attr,
6495 struct rte_flow_action_handle *action_handle,
6496 void *user_data,
6497 struct rte_flow_error *error);
6498
6529__rte_experimental
6530int
6532 uint32_t queue_id,
6533 const struct rte_flow_op_attr *op_attr,
6534 struct rte_flow_action_handle *action_handle,
6535 const void *update,
6536 void *user_data,
6537 struct rte_flow_error *error);
6538
6573__rte_experimental
6574int
6576 uint32_t queue_id,
6577 const struct rte_flow_op_attr *op_attr,
6578 const struct rte_flow_action_handle *action_handle,
6579 void *data,
6580 void *user_data,
6581 struct rte_flow_error *error);
6582
6595};
6596
6630__rte_experimental
6631int
6633 struct rte_flow_action_handle *handle,
6634 const void *update, void *query,
6636 struct rte_flow_error *error);
6637
6673__rte_experimental
6674int
6675rte_flow_async_action_handle_query_update(uint16_t port_id, uint32_t queue_id,
6676 const struct rte_flow_op_attr *attr,
6677 struct rte_flow_action_handle *handle,
6678 const void *update, void *query,
6680 void *user_data,
6681 struct rte_flow_error *error);
6682
6683struct rte_flow_action_list_handle;
6684
6695 struct rte_flow_action_list_handle *handle;
6704 const void **conf;
6705};
6706
6734__rte_experimental
6735struct rte_flow_action_list_handle *
6737 const
6738 struct rte_flow_indir_action_conf *conf,
6739 const struct rte_flow_action *actions,
6740 struct rte_flow_error *error);
6741
6776__rte_experimental
6777struct rte_flow_action_list_handle *
6778rte_flow_async_action_list_handle_create(uint16_t port_id, uint32_t queue_id,
6779 const struct rte_flow_op_attr *attr,
6780 const struct rte_flow_indir_action_conf *conf,
6781 const struct rte_flow_action *actions,
6782 void *user_data,
6783 struct rte_flow_error *error);
6784
6806__rte_experimental
6807int
6809 struct rte_flow_action_list_handle *handle,
6810 struct rte_flow_error *error);
6811
6842__rte_experimental
6843int
6845 (uint16_t port_id, uint32_t queue_id,
6846 const struct rte_flow_op_attr *op_attr,
6847 struct rte_flow_action_list_handle *handle,
6848 void *user_data, struct rte_flow_error *error);
6849
6886__rte_experimental
6887int
6889 const struct rte_flow_action_list_handle *handle,
6890 const void **update, void **query,
6892 struct rte_flow_error *error);
6893
6937__rte_experimental
6938int
6939rte_flow_async_action_list_handle_query_update(uint16_t port_id, uint32_t queue_id,
6940 const struct rte_flow_op_attr *attr,
6941 const struct rte_flow_action_list_handle *handle,
6942 const void **update, void **query,
6944 void *user_data,
6945 struct rte_flow_error *error);
6946
6973__rte_experimental
6974int
6975rte_flow_calc_table_hash(uint16_t port_id, const struct rte_flow_template_table *table,
6976 const struct rte_flow_item pattern[], uint8_t pattern_template_index,
6977 uint32_t *hash, struct rte_flow_error *error);
6978
6994};
6995
7026__rte_experimental
7027int
7028rte_flow_calc_encap_hash(uint16_t port_id, const struct rte_flow_item pattern[],
7029 enum rte_flow_encap_hash_field dest_field, uint8_t hash_len,
7030 uint8_t *hash, struct rte_flow_error *error);
7031
7056__rte_experimental
7057int
7059 struct rte_flow_template_table *table,
7060 uint32_t nb_rules,
7061 struct rte_flow_error *error);
7092__rte_experimental
7093int
7094rte_flow_async_update_resized(uint16_t port_id, uint32_t queue,
7095 const struct rte_flow_op_attr *attr,
7096 struct rte_flow *rule, void *user_data,
7097 struct rte_flow_error *error);
7098
7122__rte_experimental
7123int
7125 struct rte_flow_template_table *table,
7126 struct rte_flow_error *error);
7127
7128#ifdef __cplusplus
7129}
7130#endif
7131
7132#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:248
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)
__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:823
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, 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_aggr_affinity rte_flow_item_aggr_affinity_mask
Definition: rte_flow.h:2342
__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:4123
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:4124
@ RTE_FLOW_MODIFY_SUB
Definition: rte_flow.h:4126
@ RTE_FLOW_MODIFY_ADD
Definition: rte_flow.h:4125
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1224
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:4595
__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)
__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:1507
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1384
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1628
__rte_experimental int rte_flow_tunnel_match(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_item **items, uint32_t *num_of_items, struct rte_flow_error *error)
__rte_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_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1581
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:1037
rte_flow_item_compare_op
Definition: rte_flow.h:2540
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1645
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:1130
rte_flow_quota_mode
Definition: rte_flow.h:3276
@ RTE_FLOW_QUOTA_MODE_L3
Definition: rte_flow.h:3279
@ RTE_FLOW_QUOTA_MODE_L2
Definition: rte_flow.h:3278
@ RTE_FLOW_QUOTA_MODE_PACKET
Definition: rte_flow.h:3277
__rte_experimental 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)
rte_flow_update_quota_op
Definition: rte_flow.h:3315
@ RTE_FLOW_UPDATE_QUOTA_SET
Definition: rte_flow.h:3316
@ RTE_FLOW_UPDATE_QUOTA_ADD
Definition: rte_flow.h:3317
__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 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)
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
Definition: rte_flow.h:1684
rte_flow_op_status
Definition: rte_flow.h:6367
@ RTE_FLOW_OP_SUCCESS
Definition: rte_flow.h:6371
@ RTE_FLOW_OP_ERROR
Definition: rte_flow.h:6375
static const struct rte_flow_item_quota rte_flow_item_quota_mask
Definition: rte_flow.h:755
rte_flow_conntrack_tcp_last_index
Definition: rte_flow.h:3971
@ RTE_FLOW_CONNTRACK_FLAG_ACK
Definition: rte_flow.h:3976
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
Definition: rte_flow.h:3974
@ RTE_FLOW_CONNTRACK_FLAG_FIN
Definition: rte_flow.h:3975
@ RTE_FLOW_CONNTRACK_FLAG_SYN
Definition: rte_flow.h:3973
@ RTE_FLOW_CONNTRACK_FLAG_RST
Definition: rte_flow.h:3977
@ RTE_FLOW_CONNTRACK_FLAG_NONE
Definition: rte_flow.h:3972
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1347
__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:3953
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
Definition: rte_flow.h:3957
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
Definition: rte_flow.h:3955
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
Definition: rte_flow.h:3963
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
Definition: rte_flow.h:3959
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
Definition: rte_flow.h:3965
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
Definition: rte_flow.h:3961
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:1158
__rte_experimental 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)
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 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:1443
__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_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 struct rte_flow_actions_template * rte_flow_actions_template_create(uint16_t port_id, const struct rte_flow_actions_template_attr *template_attr, const struct rte_flow_action actions[], const struct rte_flow_action masks[], struct rte_flow_error *error)
rte_flow_encap_hash_field
Definition: rte_flow.h:6989
@ RTE_FLOW_ENCAP_HASH_FIELD_SRC_PORT
Definition: rte_flow.h:6991
@ RTE_FLOW_ENCAP_HASH_FIELD_NVGRE_FLOW_ID
Definition: rte_flow.h:6993
__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:1849
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1721
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1704
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1606
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:858
static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask
Definition: rte_flow.h:2316
rte_flow_query_update_mode
Definition: rte_flow.h:6592
@ RTE_FLOW_QU_UPDATE_FIRST
Definition: rte_flow.h:6594
@ RTE_FLOW_QU_QUERY_FIRST
Definition: rte_flow.h:6593
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
rte_flow_table_hash_func
Definition: rte_flow.h:5927
@ RTE_FLOW_TABLE_HASH_FUNC_CRC16
Definition: rte_flow.h:5943
@ RTE_FLOW_TABLE_HASH_FUNC_LINEAR
Definition: rte_flow.h:5935
@ RTE_FLOW_TABLE_HASH_FUNC_DEFAULT
Definition: rte_flow.h:5931
@ RTE_FLOW_TABLE_HASH_FUNC_CRC32
Definition: rte_flow.h:5939
__rte_experimental struct rte_flow_template_table * rte_flow_template_table_create(uint16_t port_id, const struct rte_flow_template_table_attr *table_attr, struct rte_flow_pattern_template *pattern_templates[], uint8_t nb_pattern_templates, struct rte_flow_actions_template *actions_templates[], uint8_t nb_actions_templates, struct rte_flow_error *error)
__rte_experimental 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_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:946
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:1075
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:4411
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:4560
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:4441
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:4491
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:4417
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:4504
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:4429
@ RTE_FLOW_CONV_OP_ITEM_MASK
Definition: rte_flow.h:4453
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:4532
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:4546
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:4478
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:4518
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:4465
__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_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_flow_action_type
Definition: rte_flow.h:2590
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:2752
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:2800
@ RTE_FLOW_ACTION_TYPE_SKIP_CMAN
Definition: rte_flow.h:3214
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:2817
@ RTE_FLOW_ACTION_TYPE_QUOTA
Definition: rte_flow.h:3204
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2994
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:2613
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:2673
@ RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
Definition: rte_flow.h:3195
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2920
@ RTE_FLOW_ACTION_TYPE_INDIRECT
Definition: rte_flow.h:3145
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:2833
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:2706
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:3068
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2931
@ RTE_FLOW_ACTION_TYPE_JUMP_TO_TABLE_INDEX
Definition: rte_flow.h:3265
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE
Definition: rte_flow.h:3233
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2879
@ RTE_FLOW_ACTION_TYPE_NAT64
Definition: rte_flow.h:3256
@ RTE_FLOW_ACTION_TYPE_METER_MARK
Definition: rte_flow.h:3185
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:2784
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:2840
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:2605
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:3107
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:2682
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:2634
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:2853
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:2744
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:2866
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH
Definition: rte_flow.h:3223
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2653
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2597
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:3081
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:2760
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:3169
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:3094
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:3045
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2941
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:2809
@ RTE_FLOW_ACTION_TYPE_PROG
Definition: rte_flow.h:3249
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2906
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:2717
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:3177
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:2826
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:2733
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:2792
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:2768
@ RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
Definition: rte_flow.h:3240
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:3028
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:2646
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
Definition: rte_flow.h:3154
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2977
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
Definition: rte_flow.h:3162
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:2725
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:2694
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:3058
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:3126
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2892
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2951
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:3137
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:2662
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:2776
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2964
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:3011
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:3115
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:2622
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1306
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1203
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
Definition: rte_flow.h:2019
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:1094
static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask
Definition: rte_flow.h:2067
__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)
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:1006
__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:1827
rte_flow_item_flex_tunnel_mode
Definition: rte_flow.h:2191
@ FLEX_TUNNEL_MODE_OUTER
Definition: rte_flow.h:2203
@ FLEX_TUNNEL_MODE_MULTI
Definition: rte_flow.h:2212
@ FLEX_TUNNEL_MODE_INNER
Definition: rte_flow.h:2207
@ FLEX_TUNNEL_MODE_SINGLE
Definition: rte_flow.h:2199
@ FLEX_TUNNEL_MODE_TUNNEL
Definition: rte_flow.h:2216
__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:2361
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:771
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1556
__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:5906
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX
Definition: rte_flow.h:5914
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX_WITH_PATTERN
Definition: rte_flow.h:5918
@ RTE_FLOW_TABLE_INSERTION_TYPE_PATTERN
Definition: rte_flow.h:5910
__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:2158
@ FIELD_MODE_FIXED
Definition: rte_flow.h:2169
@ FIELD_MODE_DUMMY
Definition: rte_flow.h:2164
@ FIELD_MODE_OFFSET
Definition: rte_flow.h:2176
@ FIELD_MODE_BITMASK
Definition: rte_flow.h:2185
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1418
__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)
__rte_experimental 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_udp rte_flow_item_udp_mask
Definition: rte_flow.h:1056
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1779
rte_flow_error_type
Definition: rte_flow.h:4345
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:4347
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:4349
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:4346
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:4348
@ RTE_FLOW_ERROR_TYPE_STATE
Definition: rte_flow.h:4363
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:4357
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:4352
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:4353
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:4361
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:4358
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:4356
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:4359
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:4362
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:4354
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:4351
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:4350
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:4360
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:4355
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1532
__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 const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:798
__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:2378
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:965
__rte_experimental 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_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1804
rte_flow_quota_state
Definition: rte_flow.h:737
@ RTE_FLOW_QUOTA_STATE_PASS
Definition: rte_flow.h:738
@ RTE_FLOW_QUOTA_STATE_BLOCK
Definition: rte_flow.h:739
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1869
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
Definition: rte_flow.h:2047
__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:1475
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1322
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1751
__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:2000
rte_flow_nat64_type
Definition: rte_flow.h:3607
@ RTE_FLOW_NAT64_6TO4
Definition: rte_flow.h:3608
@ RTE_FLOW_NAT64_4TO6
Definition: rte_flow.h:3609
__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:1272
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
Definition: rte_flow.h:1893
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:1984
__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)
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_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_experimental struct rte_flow_pattern_template * rte_flow_pattern_template_create(uint16_t port_id, const struct rte_flow_pattern_template_attr *template_attr, const struct rte_flow_item pattern[], struct rte_flow_error *error)
rte_flow_item_type
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
static const struct rte_flow_item_random rte_flow_item_random_mask
Definition: rte_flow.h:2089
__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:905
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:1183
__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:2387
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
Definition: rte_flow.h:2399
@ RTE_FLOW_FIELD_IPV6_PROTO
Definition: rte_flow.h:2421
@ RTE_FLOW_FIELD_METER_COLOR
Definition: rte_flow.h:2420
@ RTE_FLOW_FIELD_GTP_TEID
Definition: rte_flow.h:2411
@ RTE_FLOW_FIELD_MAC_DST
Definition: rte_flow.h:2389
@ RTE_FLOW_FIELD_IPV6_DSCP
Definition: rte_flow.h:2398
@ RTE_FLOW_FIELD_MAC_SRC
Definition: rte_flow.h:2390
@ RTE_FLOW_FIELD_GENEVE_OPT_CLASS
Definition: rte_flow.h:2425
@ RTE_FLOW_FIELD_TCP_PORT_SRC
Definition: rte_flow.h:2402
@ RTE_FLOW_FIELD_GENEVE_OPT_TYPE
Definition: rte_flow.h:2424
@ RTE_FLOW_FIELD_MPLS
Definition: rte_flow.h:2427
@ RTE_FLOW_FIELD_META
Definition: rte_flow.h:2414
@ RTE_FLOW_FIELD_IPV4_SRC
Definition: rte_flow.h:2396
@ RTE_FLOW_FIELD_IPV4_DST
Definition: rte_flow.h:2397
@ RTE_FLOW_FIELD_TAG
Definition: rte_flow.h:2412
@ RTE_FLOW_FIELD_START
Definition: rte_flow.h:2388
@ RTE_FLOW_FIELD_UDP_PORT_SRC
Definition: rte_flow.h:2407
@ RTE_FLOW_FIELD_IPV6_SRC
Definition: rte_flow.h:2400
@ RTE_FLOW_FIELD_GENEVE_OPT_DATA
Definition: rte_flow.h:2426
@ RTE_FLOW_FIELD_GTP_PSC_QFI
Definition: rte_flow.h:2419
@ RTE_FLOW_FIELD_FLEX_ITEM
Definition: rte_flow.h:2422
@ RTE_FLOW_FIELD_IPV6_DST
Definition: rte_flow.h:2401
@ RTE_FLOW_FIELD_TCP_FLAGS
Definition: rte_flow.h:2406
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:2416
@ RTE_FLOW_FIELD_UDP_PORT_DST
Definition: rte_flow.h:2408
@ RTE_FLOW_FIELD_IPV4_IHL
Definition: rte_flow.h:2429
@ RTE_FLOW_FIELD_IPV4_TTL
Definition: rte_flow.h:2395
@ RTE_FLOW_FIELD_IPV6_PAYLOAD_LEN
Definition: rte_flow.h:2431
@ RTE_FLOW_FIELD_IPV6_TRAFFIC_CLASS
Definition: rte_flow.h:2434
@ RTE_FLOW_FIELD_ESP_PROTO
Definition: rte_flow.h:2437
@ RTE_FLOW_FIELD_IPV4_PROTO
Definition: rte_flow.h:2432
@ RTE_FLOW_FIELD_MARK
Definition: rte_flow.h:2413
@ RTE_FLOW_FIELD_MAC_TYPE
Definition: rte_flow.h:2393
@ RTE_FLOW_FIELD_GENEVE_VNI
Definition: rte_flow.h:2410
@ RTE_FLOW_FIELD_VXLAN_LAST_RSVD
Definition: rte_flow.h:2439
@ RTE_FLOW_FIELD_IPV6_ECN
Definition: rte_flow.h:2418
@ RTE_FLOW_FIELD_ESP_SEQ_NUM
Definition: rte_flow.h:2436
@ RTE_FLOW_FIELD_TCP_DATA_OFFSET
Definition: rte_flow.h:2428
@ RTE_FLOW_FIELD_IPV4_DSCP
Definition: rte_flow.h:2394
@ RTE_FLOW_FIELD_VXLAN_VNI
Definition: rte_flow.h:2409
@ RTE_FLOW_FIELD_RANDOM
Definition: rte_flow.h:2438
@ RTE_FLOW_FIELD_POINTER
Definition: rte_flow.h:2415
@ RTE_FLOW_FIELD_IPV6_FLOW_LABEL
Definition: rte_flow.h:2433
@ RTE_FLOW_FIELD_VLAN_TYPE
Definition: rte_flow.h:2391
@ RTE_FLOW_FIELD_TCP_ACK_NUM
Definition: rte_flow.h:2405
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
Definition: rte_flow.h:2404
@ RTE_FLOW_FIELD_IPV4_TOTAL_LEN
Definition: rte_flow.h:2430
@ RTE_FLOW_FIELD_ESP_SPI
Definition: rte_flow.h:2435
@ RTE_FLOW_FIELD_IPV4_ECN
Definition: rte_flow.h:2417
@ RTE_FLOW_FIELD_HASH_RESULT
Definition: rte_flow.h:2423
@ RTE_FLOW_FIELD_TCP_PORT_DST
Definition: rte_flow.h:2403
@ RTE_FLOW_FIELD_VLAN_ID
Definition: rte_flow.h:2392
__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)
#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:4065
struct rte_flow_tcp_dir_param original_dir
Definition: rte_flow.h:4063
enum rte_flow_conntrack_state state
Definition: rte_flow.h:4057
struct rte_flow_action_list_handle * handle
Definition: rte_flow.h:6695
struct rte_flow_meter_profile * profile
Definition: rte_flow.h:4160
struct rte_flow_field_data dst
Definition: rte_flow.h:4141
struct rte_flow_field_data src
Definition: rte_flow.h:4142
enum rte_flow_modify_op operation
Definition: rte_flow.h:4140
struct rte_flow_item * definition
Definition: rte_flow.h:3738
const char * name
Definition: rte_flow.h:4235
const struct rte_flow_action_prog_argument * args
Definition: rte_flow.h:4239
enum rte_flow_quota_mode mode
Definition: rte_flow.h:3291
const uint16_t * queue
Definition: rte_flow.h:3516
enum rte_eth_hash_function func
Definition: rte_flow.h:3485
const uint8_t * key
Definition: rte_flow.h:3515
uint32_t queue_num
Definition: rte_flow.h:3514
const struct rte_flow_action * actions
Definition: rte_flow.h:4336
uint32_t original
Definition: rte_flow.h:3536
uint32_t reserved
Definition: rte_flow.h:3537
struct rte_flow_item * definition
Definition: rte_flow.h:3705
const void * conf
Definition: rte_flow.h:4292
enum rte_flow_action_type type
Definition: rte_flow.h:4291
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:4402
struct rte_flow_attr * attr
Definition: rte_flow.h:4394
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:4401
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:4397
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:4393
struct rte_flow_item * pattern
Definition: rte_flow.h:4398
struct rte_flow_action * actions
Definition: rte_flow.h:4879
uint8_t data[]
Definition: rte_flow.h:4880
struct rte_flow_attr attr
Definition: rte_flow.h:4877
struct rte_flow_item * items
Definition: rte_flow.h:4878
size_t size
Definition: rte_flow.h:4876
const char * message
Definition: rte_flow.h:4380
enum rte_flow_error_type type
Definition: rte_flow.h:4378
const void * cause
Definition: rte_flow.h:4379
uint8_t value[16]
Definition: rte_flow.h:2527
enum rte_flow_field_id field
Definition: rte_flow.h:2450
rte_be16_t class_id
Definition: rte_flow.h:2512
uint32_t num
Definition: rte_flow.h:793
struct rte_arp_hdr hdr
Definition: rte_flow.h:1411
struct rte_ether_addr tha
Definition: rte_flow.h:1408
struct rte_ether_addr sha
Definition: rte_flow.h:1406
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:1148
rte_be16_t inner_type
Definition: rte_flow.h:1153
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:1150
struct rte_esp_hdr hdr
Definition: rte_flow.h:1317
uint32_t has_vlan
Definition: rte_flow.h:899
rte_be16_t type
Definition: rte_flow.h:895
uint32_t reserved
Definition: rte_flow.h:900
struct rte_ether_addr dst
Definition: rte_flow.h:893
struct rte_ether_addr src
Definition: rte_flow.h:894
struct rte_flow_item_flex_field next_protocol
Definition: rte_flow.h:2276
struct rte_flow_item_flex_link * output_link
Definition: rte_flow.h:2300
enum rte_flow_item_flex_tunnel_mode tunnel
Definition: rte_flow.h:2265
struct rte_flow_item_flex_link * input_link
Definition: rte_flow.h:2292
struct rte_flow_item_flex_field next_header
Definition: rte_flow.h:2271
struct rte_flow_item_flex_field * sample_data
Definition: rte_flow.h:2282
enum rte_flow_item_flex_field_mode field_mode
Definition: rte_flow.h:2227
const uint8_t * pattern
Definition: rte_flow.h:2153
struct rte_flow_item_flex_handle * handle
Definition: rte_flow.h:2151
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1339
rte_be16_t protocol
Definition: rte_flow.h:1340
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1218
rte_be16_t protocol
Definition: rte_flow.h:1219
struct rte_gtp_psc_generic_hdr hdr
Definition: rte_flow.h:1639
rte_be32_t teid
Definition: rte_flow.h:1298
struct rte_gtp_hdr hdr
Definition: rte_flow.h:1300
rte_be16_t msg_len
Definition: rte_flow.h:1297
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1295
uint8_t msg_type
Definition: rte_flow.h:1296
struct rte_ib_bth hdr
Definition: rte_flow.h:2062
struct rte_ipv6_addr target_addr
Definition: rte_flow.h:1526
struct rte_ipv6_addr target_addr
Definition: rte_flow.h:1501
struct rte_ether_addr sla
Definition: rte_flow.h:1575
struct rte_ether_addr tla
Definition: rte_flow.h:1600
struct rte_icmp_hdr hdr
Definition: rte_flow.h:1032
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:960
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:981
uint32_t has_hip_ext
Definition: rte_flow.h:997
uint32_t has_frag_ext
Definition: rte_flow.h:987
uint32_t has_auth_ext
Definition: rte_flow.h:989
uint32_t has_dest_ext
Definition: rte_flow.h:993
uint32_t has_shim6_ext
Definition: rte_flow.h:999
uint32_t reserved
Definition: rte_flow.h:1001
uint32_t has_esp_ext
Definition: rte_flow.h:991
uint32_t has_route_ext
Definition: rte_flow.h:985
uint32_t has_mobil_ext
Definition: rte_flow.h:995
uint32_t has_hop_ext
Definition: rte_flow.h:983
enum rte_color color
Definition: rte_flow.h:2311
uint8_t label_tc_s[3]
Definition: rte_flow.h:1197
uint8_t tni[3]
Definition: rte_flow.h:1177
rte_be16_t protocol
Definition: rte_flow.h:1176
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:1175
uint8_t version_type
Definition: rte_flow.h:1659
rte_be16_t length
Definition: rte_flow.h:1662
rte_be16_t session_id
Definition: rte_flow.h:1661
uint32_t packet_type
Definition: rte_flow.h:2373
const uint8_t * pattern
Definition: rte_flow.h:853
uint16_t length
Definition: rte_flow.h:852
uint32_t search
Definition: rte_flow.h:848
int32_t offset
Definition: rte_flow.h:850
uint32_t reserved
Definition: rte_flow.h:849
uint16_t limit
Definition: rte_flow.h:851
uint32_t relative
Definition: rte_flow.h:847
struct rte_sctp_hdr hdr
Definition: rte_flow.h:1089
struct rte_tcp_hdr hdr
Definition: rte_flow.h:1070
struct rte_udp_hdr hdr
Definition: rte_flow.h:1051
rte_be16_t tci
Definition: rte_flow.h:934
rte_be16_t inner_type
Definition: rte_flow.h:935
uint32_t reserved
Definition: rte_flow.h:941
uint32_t has_more_vlan
Definition: rte_flow.h:940
uint8_t vni[3]
Definition: rte_flow.h:1121
uint8_t rsvd0[3]
Definition: rte_flow.h:1120
const void * spec
Definition: rte_flow.h:2129
const void * mask
Definition: rte_flow.h:2131
enum rte_flow_item_type type
Definition: rte_flow.h:2128
const void * last
Definition: rte_flow.h:2130
struct rte_flow_action_conntrack new_ct
Definition: rte_flow.h:4089
uint32_t postpone
Definition: rte_flow.h:6108
enum rte_flow_op_status status
Definition: rte_flow.h:6389
uint32_t nb_conn_tracks
Definition: rte_flow.h:5608
uint32_t nb_counters
Definition: rte_flow.h:5593
uint16_t host_port_id
Definition: rte_flow.h:5612
uint32_t nb_aging_objects
Definition: rte_flow.h:5598
uint32_t nb_meters
Definition: rte_flow.h:5603
uint32_t nb_quotas
Definition: rte_flow.h:5617
uint32_t supported_flags
Definition: rte_flow.h:5536
uint32_t max_nb_quotas
Definition: rte_flow.h:5532
uint32_t max_nb_conn_tracks
Definition: rte_flow.h:5527
uint32_t max_nb_aging_objects
Definition: rte_flow.h:5517
uint32_t max_nb_queues
Definition: rte_flow.h:5507
uint32_t max_nb_meters
Definition: rte_flow.h:5522
uint32_t max_nb_counters
Definition: rte_flow.h:5512
uint32_t sec_since_last_hit
Definition: rte_flow.h:3403
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:3402
uint32_t reserved
Definition: rte_flow.h:3399
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:5256
uint32_t close_initiated
Definition: rte_flow.h:3993
enum rte_flow_table_insertion_type insertion_type
Definition: rte_flow.h:5973
struct rte_flow_attr flow_attr
Definition: rte_flow.h:5956
enum rte_flow_table_hash_func hash_func
Definition: rte_flow.h:5977
uint32_t timeout_valid
Definition: rte_flow.h:3427
struct rte_flow_action_meter_mark meter_mark
Definition: rte_flow.h:4176
enum rte_flow_update_quota_op op
Definition: rte_flow.h:3329
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