DPDK  21.11.6
rte_flow.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2016 6WIND S.A.
3  * Copyright 2016 Mellanox Technologies, Ltd
4  */
5 
6 #ifndef RTE_FLOW_H_
7 #define RTE_FLOW_H_
8 
17 #include <stddef.h>
18 #include <stdint.h>
19 
20 #include <rte_arp.h>
21 #include <rte_common.h>
22 #include <rte_ether.h>
23 #include <rte_icmp.h>
24 #include <rte_ip.h>
25 #include <rte_sctp.h>
26 #include <rte_tcp.h>
27 #include <rte_udp.h>
28 #include <rte_vxlan.h>
29 #include <rte_byteorder.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.h>
35 #include <rte_mbuf_dyn.h>
36 #include <rte_meter.h>
37 #include <rte_gtp.h>
38 #include <rte_l2tpv2.h>
39 #include <rte_ppp.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
85 struct rte_flow_attr {
86  uint32_t group;
87  uint32_t priority;
100  uint32_t ingress:1;
113  uint32_t egress:1;
131  uint32_t transfer:1;
132  uint32_t reserved:29;
133 };
134 
161 
171 
181 
189 
203 
217 
231 
245 
252 
259 
266 
273 
280 
287 
294 
301 
308 
315 
322 
329 
336 
343 
355 
364 
373 
382 
389 
396 
403 
410 
417 
424 
431 
438 
445 
453 
461 
468 
477 
490 
499 
508 
517 
526 
533 
540 
547 
553 
562 
571 
578 
587 
594 
601 
612 
621 
630 
640 
649 
656 
663 };
664 
672  struct rte_higig2_hdr hdr;
673 };
674 
676 #ifndef __cplusplus
678  .hdr = {
679  .ppt1 = {
680  .classification = 0xffff,
681  .vid = 0xfff,
682  },
683  },
684 };
685 #endif
686 
699  uint32_t num;
700 };
701 
703 #ifndef __cplusplus
705  .num = 0x00000000,
706 };
707 #endif
708 
732  uint32_t id;
733 };
734 
736 #ifndef __cplusplus
738  .id = 0x00000000,
739 };
740 #endif
741 
767  uint32_t index;
768 };
769 
771 #ifndef __cplusplus
773  .index = 0x00000000,
774 };
775 #endif
776 
797  uint32_t id;
798 };
799 
801 #ifndef __cplusplus
803  .id = 0xffffffff,
804 };
805 #endif
806 
826  uint32_t relative:1;
827  uint32_t search:1;
828  uint32_t reserved:30;
829  int32_t offset;
830  uint16_t limit;
831  uint16_t length;
832  const uint8_t *pattern;
833 };
834 
836 #ifndef __cplusplus
838  .relative = 1,
839  .search = 1,
840  .reserved = 0x3fffffff,
841  .offset = 0xffffffff,
842  .limit = 0xffff,
843  .length = 0xffff,
844  .pattern = NULL,
845 };
846 #endif
847 
867  union {
868  struct {
869  /*
870  * These fields are retained for compatibility.
871  * Please switch to the new header field below.
872  */
876  };
877  struct rte_ether_hdr hdr;
878  };
879  uint32_t has_vlan:1;
880  uint32_t reserved:31;
881 };
882 
884 #ifndef __cplusplus
886  .hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
887  .hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
888  .hdr.ether_type = RTE_BE16(0x0000),
889 };
890 #endif
891 
909  union {
910  struct {
911  /*
912  * These fields are retained for compatibility.
913  * Please switch to the new header field below.
914  */
917  };
918  struct rte_vlan_hdr hdr;
919  };
921  uint32_t has_more_vlan:1;
922  uint32_t reserved:31;
923 };
924 
926 #ifndef __cplusplus
928  .hdr.vlan_tci = RTE_BE16(0x0fff),
929  .hdr.eth_proto = RTE_BE16(0x0000),
930 };
931 #endif
932 
941  struct rte_ipv4_hdr hdr;
942 };
943 
945 #ifndef __cplusplus
947  .hdr = {
948  .src_addr = RTE_BE32(0xffffffff),
949  .dst_addr = RTE_BE32(0xffffffff),
950  },
951 };
952 #endif
953 
962  struct rte_ipv6_hdr hdr;
964  uint32_t has_hop_ext:1;
966  uint32_t has_route_ext:1;
968  uint32_t has_frag_ext:1;
970  uint32_t has_auth_ext:1;
972  uint32_t has_esp_ext:1;
974  uint32_t has_dest_ext:1;
976  uint32_t has_mobil_ext:1;
978  uint32_t has_hip_ext:1;
980  uint32_t has_shim6_ext:1;
982  uint32_t reserved:23;
983 };
984 
986 #ifndef __cplusplus
988  .hdr = {
989  .src_addr =
990  "\xff\xff\xff\xff\xff\xff\xff\xff"
991  "\xff\xff\xff\xff\xff\xff\xff\xff",
992  .dst_addr =
993  "\xff\xff\xff\xff\xff\xff\xff\xff"
994  "\xff\xff\xff\xff\xff\xff\xff\xff",
995  },
996 };
997 #endif
998 
1006 };
1007 
1009 #ifndef __cplusplus
1011  .hdr = {
1012  .icmp_type = 0xff,
1013  .icmp_code = 0xff,
1014  },
1015 };
1016 #endif
1017 
1024  struct rte_udp_hdr hdr;
1025 };
1026 
1028 #ifndef __cplusplus
1030  .hdr = {
1031  .src_port = RTE_BE16(0xffff),
1032  .dst_port = RTE_BE16(0xffff),
1033  },
1034 };
1035 #endif
1036 
1043  struct rte_tcp_hdr hdr;
1044 };
1045 
1047 #ifndef __cplusplus
1049  .hdr = {
1050  .src_port = RTE_BE16(0xffff),
1051  .dst_port = RTE_BE16(0xffff),
1052  },
1053 };
1054 #endif
1055 
1063 };
1064 
1066 #ifndef __cplusplus
1068  .hdr = {
1069  .src_port = RTE_BE16(0xffff),
1070  .dst_port = RTE_BE16(0xffff),
1071  },
1072 };
1073 #endif
1074 
1082  union {
1083  struct {
1084  /*
1085  * These fields are retained for compatibility.
1086  * Please switch to the new header field below.
1087  */
1088  uint8_t flags;
1089  uint8_t rsvd0[3];
1090  uint8_t vni[3];
1091  uint8_t rsvd1;
1092  };
1093  struct rte_vxlan_hdr hdr;
1094  };
1095 };
1096 
1098 #ifndef __cplusplus
1100  .hdr.vx_vni = RTE_BE32(0xffffff00), /* (0xffffff << 8) */
1101 };
1102 #endif
1103 
1120  uint8_t in_ecid_e;
1121  uint8_t ecid_e;
1123 };
1124 
1126 #ifndef __cplusplus
1128  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
1129 };
1130 #endif
1131 
1146  uint8_t tni[3];
1147  uint8_t flow_id;
1148 };
1149 
1151 #ifndef __cplusplus
1153  .tni = "\xff\xff\xff",
1154 };
1155 #endif
1156 
1166  uint8_t label_tc_s[3];
1167  uint8_t ttl;
1168 };
1169 
1171 #ifndef __cplusplus
1173  .label_tc_s = "\xff\xff\xf0",
1174 };
1175 #endif
1176 
1189 };
1190 
1192 #ifndef __cplusplus
1194  .protocol = RTE_BE16(0xffff),
1195 };
1196 #endif
1197 
1216  uint32_t thresh;
1217 };
1218 
1220 #ifndef __cplusplus
1222  .thresh = 0xffffffff,
1223 };
1224 #endif
1225 
1239  uint8_t msg_type;
1242 };
1243 
1245 #ifndef __cplusplus
1247  .teid = RTE_BE32(0xffffffff),
1248 };
1249 #endif
1250 
1257  struct rte_esp_hdr hdr;
1258 };
1259 
1261 #ifndef __cplusplus
1263  .hdr = {
1264  .spi = RTE_BE32(0xffffffff),
1265  },
1266 };
1267 #endif
1268 
1281  uint8_t vni[3];
1282  uint8_t rsvd1;
1283 };
1284 
1286 #ifndef __cplusplus
1288  .vni = "\xff\xff\xff",
1289 };
1290 #endif
1291 
1298  uint8_t flags;
1299  uint8_t rsvd0[2];
1300  uint8_t protocol;
1301  uint8_t vni[3];
1302  uint8_t rsvd1;
1303 };
1304 
1306 #ifndef __cplusplus
1308  .vni = "\xff\xff\xff",
1309 };
1310 #endif
1311 
1320  uint8_t hln;
1321  uint8_t pln;
1327 };
1328 
1330 #ifndef __cplusplus
1331 static const struct rte_flow_item_arp_eth_ipv4
1333  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1334  .spa = RTE_BE32(0xffffffff),
1335  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1336  .tpa = RTE_BE32(0xffffffff),
1337 };
1338 #endif
1339 
1351  uint8_t next_hdr;
1352 };
1353 
1355 #ifndef __cplusplus
1356 static const
1358  .next_hdr = 0xff,
1359 };
1360 #endif
1361 
1373  struct rte_ipv6_fragment_ext hdr;
1374 };
1375 
1382  uint8_t type;
1383  uint8_t code;
1384  uint16_t checksum;
1385 };
1386 
1388 #ifndef __cplusplus
1390  .type = 0xff,
1391  .code = 0xff,
1392 };
1393 #endif
1394 
1401  uint8_t type;
1402  uint8_t code;
1405  uint8_t target_addr[16];
1406 };
1407 
1409 #ifndef __cplusplus
1410 static const
1412  .target_addr =
1413  "\xff\xff\xff\xff\xff\xff\xff\xff"
1414  "\xff\xff\xff\xff\xff\xff\xff\xff",
1415 };
1416 #endif
1417 
1424  uint8_t type;
1425  uint8_t code;
1432  uint8_t target_addr[16];
1433 };
1434 
1436 #ifndef __cplusplus
1437 static const
1439  .target_addr =
1440  "\xff\xff\xff\xff\xff\xff\xff\xff"
1441  "\xff\xff\xff\xff\xff\xff\xff\xff",
1442 };
1443 #endif
1444 
1457  uint8_t type;
1458  uint8_t length;
1459 };
1460 
1462 #ifndef __cplusplus
1463 static const struct rte_flow_item_icmp6_nd_opt
1465  .type = 0xff,
1466 };
1467 #endif
1468 
1481  uint8_t type;
1482  uint8_t length;
1484 };
1485 
1487 #ifndef __cplusplus
1488 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1490  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1491 };
1492 #endif
1493 
1506  uint8_t type;
1507  uint8_t length;
1509 };
1510 
1512 #ifndef __cplusplus
1513 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1515  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1516 };
1517 #endif
1518 
1531  uint32_t data;
1532 };
1533 
1535 #ifndef __cplusplus
1537  .data = UINT32_MAX,
1538 };
1539 #endif
1540 
1548 };
1549 
1551 #ifndef __cplusplus
1552 static const struct rte_flow_item_gtp_psc
1554  .hdr.qfi = 0x3f,
1555 };
1556 #endif
1557 
1567  uint8_t version_type;
1568  uint8_t code;
1571 };
1572 
1587 };
1588 
1590 #ifndef __cplusplus
1591 static const struct rte_flow_item_pppoe_proto_id
1593  .proto_id = RTE_BE16(0xffff),
1594 };
1595 #endif
1596 
1606  uint32_t data;
1607  uint8_t index;
1608 };
1609 
1611 #ifndef __cplusplus
1613  .data = 0xffffffff,
1614  .index = 0xff,
1615 };
1616 #endif
1617 
1625 };
1626 
1628 #ifndef __cplusplus
1630  .session_id = RTE_BE32(UINT32_MAX),
1631 };
1632 #endif
1633 
1634 
1654  uint32_t id;
1655 };
1656 
1658 #ifndef __cplusplus
1660  .id = 0xffffffff,
1661 };
1662 #endif
1663 
1674  uint32_t version:2;
1675  uint32_t oam_pkt:1;
1676  uint32_t reserved:1;
1677  uint32_t ttl:6;
1678  uint32_t length:6;
1679  uint32_t reserved1:4;
1680  uint32_t mdtype:4;
1681  uint32_t next_proto:8;
1682  uint32_t spi:24;
1683  uint32_t sindex:8;
1684 };
1685 
1687 #ifndef __cplusplus
1689  .mdtype = 0xf,
1690  .next_proto = 0xff,
1691  .spi = 0xffffff,
1692  .sindex = 0xff,
1693 };
1694 #endif
1695 
1706  uint32_t type:8;
1707  uint32_t max_resp_time:8;
1708  uint32_t checksum:16;
1709  uint32_t group_addr;
1710 };
1711 
1713 #ifndef __cplusplus
1715  .group_addr = 0xffffffff,
1716 };
1717 #endif
1718 
1729  uint32_t next_hdr:8;
1730  uint32_t payload_len:8;
1731  uint32_t reserved:16;
1732  uint32_t spi;
1733  uint32_t seq_num;
1734 };
1735 
1737 #ifndef __cplusplus
1739  .spi = 0xffffffff,
1740 };
1741 #endif
1742 
1752  uint8_t s_field;
1753  uint8_t msg_type;
1754  rte_be16_t msg_len;
1755  rte_be64_t seid;
1756 };
1757 
1759 #ifndef __cplusplus
1761  .s_field = 0x01,
1762  .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1763 };
1764 #endif
1765 
1775  struct rte_ecpri_combined_msg_hdr hdr;
1776 };
1777 
1779 #ifndef __cplusplus
1781  .hdr = {
1782  .common = {
1783  .u32 = 0x0,
1784  },
1785  },
1786 };
1787 #endif
1788 
1795  rte_be16_t option_class;
1796  uint8_t option_type;
1797  uint8_t option_len;
1798  uint32_t *data;
1799 };
1800 
1802 #ifndef __cplusplus
1803 static const struct rte_flow_item_geneve_opt
1805  .option_type = 0xff,
1806 };
1807 #endif
1808 
1821  uint32_t level;
1822  RTE_STD_C11
1823  union {
1824  __extension__
1825  struct {
1827  uint64_t packet_ok:1;
1829  uint64_t l2_ok:1;
1831  uint64_t l3_ok:1;
1833  uint64_t l4_ok:1;
1835  uint64_t l2_crc_ok:1;
1837  uint64_t ipv4_csum_ok:1;
1839  uint64_t l4_csum_ok:1;
1841  uint64_t l3_len_ok:1;
1842  uint64_t reserved:56;
1843  };
1844  uint64_t value;
1845  };
1846 };
1847 
1848 #ifndef __cplusplus
1849 static const struct rte_flow_item_integrity
1850 rte_flow_item_integrity_mask = {
1851  .level = 0,
1852  .value = 0,
1853 };
1854 #endif
1855 
1859 #define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1860 
1863 #define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1864 
1868 #define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1869 
1873 #define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1874 
1878 #define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1879 
1891  uint32_t flags;
1892 };
1893 
1895 #ifndef __cplusplus
1897  .flags = 0xffffffff,
1898 };
1899 #endif
1900 
1910  uint16_t port_id;
1911 };
1912 
1914 #ifndef __cplusplus
1916  .port_id = 0xffff,
1917 };
1918 #endif
1919 
1929  struct rte_l2tpv2_combined_msg_hdr hdr;
1930 };
1931 
1933 #ifndef __cplusplus
1935  /*
1936  * flags and version bit mask
1937  * 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1938  * T L x x S x O P x x x x V V V V
1939  */
1940  .hdr = {
1941  .common = {
1942  .flags_version = RTE_BE16(0xcb0f),
1943  },
1944  },
1945 };
1946 #endif
1947 
1957  struct rte_ppp_hdr hdr;
1958 };
1959 
1961 #ifndef __cplusplus
1963  .hdr = {
1964  .addr = 0xff,
1965  .ctrl = 0xff,
1966  .proto_id = RTE_BE16(0xffff),
1967  }
1968 };
1969 #endif
1970 
2006  const void *spec;
2007  const void *last;
2008  const void *mask;
2009 };
2010 
2028  struct rte_flow_item_flex_handle *handle;
2029  uint32_t length;
2030  const uint8_t *pattern;
2031 };
2063 };
2064 
2094 };
2095 
2101 __extension__
2105  uint32_t field_size;
2106  int32_t field_base;
2107  uint32_t offset_base;
2108  uint32_t offset_mask;
2109  int32_t offset_shift;
2110  uint32_t field_id:16;
2111  uint32_t reserved:16;
2112 };
2113 
2129  uint32_t next;
2130 };
2131 
2161  uint32_t nb_samples;
2171  uint32_t nb_inputs;
2179  uint32_t nb_outputs;
2180 };
2181 
2216 
2224 
2232 
2241 
2253 
2265 
2272 
2281 
2292 
2301 
2313 
2325 
2337 
2348 
2356 
2364 
2375 
2386 
2397 
2408 
2420 
2432 
2440 
2448 
2456 
2464 
2472 
2480 
2488 
2497 
2505 
2514 
2521 
2528 
2541 
2554 
2567 
2580 
2594 
2608 
2619 
2629 
2639 
2652 
2665 
2682 
2699 
2716 
2733 
2746 
2756 
2769 
2782 
2793 
2801 
2812 
2823 
2831 
2840 
2848 
2855 
2863 };
2864 
2876  uint32_t id;
2877 };
2878 
2892  uint32_t group;
2893 };
2894 
2901  uint16_t index;
2902 };
2903 
2918  uint32_t timeout:24;
2919  uint32_t reserved:8;
2921  void *context;
2922 };
2923 
2931  uint32_t reserved:6;
2932  uint32_t aged:1;
2935  uint32_t sec_since_last_hit:24;
2936 };
2937 
2956  uint32_t id;
2957 };
2958 
2965  uint32_t reset:1;
2966  uint32_t hits_set:1;
2967  uint32_t bytes_set:1;
2968  uint32_t reserved:29;
2969  uint64_t hits;
2970  uint64_t bytes;
2971 };
2972 
2977  RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2986  RTE_ETH_HASH_FUNCTION_MAX,
2987 };
2988 
3032  uint32_t level;
3033  uint64_t types;
3034  uint32_t key_len;
3035  uint32_t queue_num;
3036  const uint8_t *key;
3037  const uint16_t *queue;
3038 };
3039 
3057  uint32_t original:1;
3058  uint32_t reserved:31;
3059  uint32_t id;
3060 };
3061 
3075  uint32_t original:1;
3076  uint32_t reserved:31;
3077  uint32_t index;
3078 };
3079 
3092  uint32_t original:1;
3093  uint32_t reserved:31;
3094  uint32_t id;
3095 };
3096 
3106  uint32_t mtr_id;
3107 };
3108 
3141 };
3142 
3153  uint8_t mpls_ttl;
3154 };
3155 
3166  uint8_t nw_ttl;
3167 };
3168 
3177 };
3178 
3187 };
3188 
3196  uint8_t vlan_pcp;
3197 };
3198 
3207 };
3208 
3217 };
3218 
3252 };
3253 
3286 };
3287 
3308  uint8_t *data;
3309  uint8_t *preserve;
3310  size_t size;
3311 };
3312 
3329  uint8_t *data;
3330  size_t size;
3331 };
3332 
3345  rte_be32_t ipv4_addr;
3346 };
3347 
3360  uint8_t ipv6_addr[16];
3361 };
3362 
3375  rte_be16_t port;
3376 };
3377 
3384  uint8_t ttl_value;
3385 };
3386 
3393  uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
3394 };
3395 
3406  uint32_t data;
3407  uint32_t mask;
3408  uint8_t index;
3409 };
3410 
3431  uint32_t data;
3432  uint32_t mask;
3433 };
3434 
3443  uint8_t dscp;
3444 };
3445 
3463 struct rte_flow_action_handle;
3464 
3481 };
3482 
3493 };
3494 
3506  uint32_t scale:4;
3508  uint32_t close_initiated:1;
3510  uint32_t last_ack_seen:1;
3515  uint32_t data_unacked:1;
3520  uint32_t sent_end;
3525  uint32_t reply_end;
3527  uint32_t max_win;
3529  uint32_t max_ack;
3530 };
3531 
3544  uint16_t peer_port;
3549  uint32_t is_original_dir:1;
3557  uint32_t enable:1;
3559  uint32_t live_connection:1;
3561  uint32_t selective_ack:1;
3568  uint32_t last_direction:1;
3570  uint32_t liberal_mode:1;
3582  uint16_t last_window;
3583  enum rte_flow_conntrack_tcp_last_index last_index;
3585  uint32_t last_seq;
3587  uint32_t last_ack;
3592  uint32_t last_end;
3593 };
3594 
3606  uint32_t direction:1;
3608  uint32_t state:1;
3610  uint32_t reserved:30;
3611 };
3612 
3624 };
3625 
3635  uint16_t port_id;
3636 };
3637 
3671 };
3672 
3681  RTE_STD_C11
3682  union {
3683  struct {
3685  uint32_t level;
3687  uint32_t offset;
3688  };
3695  uint8_t value[16];
3701  void *pvalue;
3702  };
3703 };
3704 
3712 };
3713 
3728  uint32_t width;
3729 };
3730 
3731 /* Mbuf dynamic field offset for metadata. */
3732 extern int32_t rte_flow_dynf_metadata_offs;
3733 
3734 /* Mbuf dynamic field flag mask for metadata. */
3735 extern uint64_t rte_flow_dynf_metadata_mask;
3736 
3737 /* Mbuf dynamic field pointer for metadata. */
3738 #define RTE_FLOW_DYNF_METADATA(m) \
3739  RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
3740 
3741 /* Mbuf dynamic flags for metadata. */
3742 #define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
3743 #define PKT_RX_DYNF_METADATA RTE_DEPRECATED(PKT_RX_DYNF_METADATA) \
3744  RTE_MBUF_DYNFLAG_RX_METADATA
3745 #define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
3746 #define PKT_TX_DYNF_METADATA RTE_DEPRECATED(PKT_TX_DYNF_METADATA) \
3747  RTE_MBUF_DYNFLAG_TX_METADATA
3748 
3749 __rte_experimental
3750 static inline uint32_t
3751 rte_flow_dynf_metadata_get(struct rte_mbuf *m)
3752 {
3753  return *RTE_FLOW_DYNF_METADATA(m);
3754 }
3755 
3756 __rte_experimental
3757 static inline void
3758 rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
3759 {
3760  *RTE_FLOW_DYNF_METADATA(m) = v;
3761 }
3762 
3772  const void *conf;
3773 };
3774 
3781 struct rte_flow;
3782 
3800  uint32_t ratio;
3802  const struct rte_flow_action *actions;
3803 };
3804 
3830 };
3831 
3845  const void *cause;
3846  const char *message;
3847 };
3848 
3859  union {
3860  const struct rte_flow_attr *attr_ro;
3862  };
3863  union {
3864  const struct rte_flow_item *pattern_ro;
3866  };
3867  union {
3868  const struct rte_flow_action *actions_ro;
3870  };
3871 };
3872 
3885 
3897 
3909 
3921 
3934 
3947 
3960 
3974 
3988 
4002 
4016 };
4017 
4037 __rte_experimental
4038 int
4039 rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow,
4040  FILE *file, struct rte_flow_error *error);
4041 
4048 __rte_experimental
4049 static inline int
4051 {
4052  return !!rte_flow_dynf_metadata_mask;
4053 }
4054 
4065 __rte_experimental
4066 int
4068 
4121 int
4122 rte_flow_validate(uint16_t port_id,
4123  const struct rte_flow_attr *attr,
4124  const struct rte_flow_item pattern[],
4125  const struct rte_flow_action actions[],
4126  struct rte_flow_error *error);
4127 
4148 struct rte_flow *
4149 rte_flow_create(uint16_t port_id,
4150  const struct rte_flow_attr *attr,
4151  const struct rte_flow_item pattern[],
4152  const struct rte_flow_action actions[],
4153  struct rte_flow_error *error);
4154 
4175 int
4176 rte_flow_destroy(uint16_t port_id,
4177  struct rte_flow *flow,
4178  struct rte_flow_error *error);
4179 
4196 int
4197 rte_flow_flush(uint16_t port_id,
4198  struct rte_flow_error *error);
4199 
4224 int
4225 rte_flow_query(uint16_t port_id,
4226  struct rte_flow *flow,
4227  const struct rte_flow_action *action,
4228  void *data,
4229  struct rte_flow_error *error);
4230 
4272 int
4273 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
4274 
4292 int
4293 rte_flow_error_set(struct rte_flow_error *error,
4294  int code,
4295  enum rte_flow_error_type type,
4296  const void *cause,
4297  const char *message);
4298 
4304  size_t size;
4308  uint8_t data[];
4309 };
4310 
4337 __rte_deprecated
4338 size_t
4339 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
4340  const struct rte_flow_attr *attr,
4341  const struct rte_flow_item *items,
4342  const struct rte_flow_action *actions);
4343 
4384 __rte_experimental
4385 int
4387  void *dst,
4388  size_t size,
4389  const void *src,
4390  struct rte_flow_error *error);
4391 
4420 __rte_experimental
4421 int
4422 rte_flow_get_aged_flows(uint16_t port_id, void **contexts,
4423  uint32_t nb_contexts, struct rte_flow_error *error);
4424 
4436  uint32_t ingress:1;
4438  uint32_t egress:1;
4443  uint32_t transfer:1;
4444 };
4445 
4473 __rte_experimental
4474 struct rte_flow_action_handle *
4475 rte_flow_action_handle_create(uint16_t port_id,
4476  const struct rte_flow_indir_action_conf *conf,
4477  const struct rte_flow_action *action,
4478  struct rte_flow_error *error);
4479 
4502 __rte_experimental
4503 int
4504 rte_flow_action_handle_destroy(uint16_t port_id,
4505  struct rte_flow_action_handle *handle,
4506  struct rte_flow_error *error);
4507 
4541 __rte_experimental
4542 int
4543 rte_flow_action_handle_update(uint16_t port_id,
4544  struct rte_flow_action_handle *handle,
4545  const void *update,
4546  struct rte_flow_error *error);
4547 
4573 __rte_experimental
4574 int
4575 rte_flow_action_handle_query(uint16_t port_id,
4576  const struct rte_flow_action_handle *handle,
4577  void *data, struct rte_flow_error *error);
4578 
4579 /* Tunnel has a type and the key information. */
4580 struct rte_flow_tunnel {
4585  enum rte_flow_item_type type;
4586  uint64_t tun_id;
4588  RTE_STD_C11
4589  union {
4590  struct {
4593  } ipv4;
4594  struct {
4595  uint8_t src_addr[16];
4596  uint8_t dst_addr[16];
4597  } ipv6;
4598  };
4599  rte_be16_t tp_src;
4600  rte_be16_t tp_dst;
4601  uint16_t tun_flags;
4603  bool is_ipv6;
4609  uint8_t tos;
4610  uint8_t ttl;
4611  uint32_t label;
4612 };
4613 
4617 #define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
4618 
4622 #define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
4623 
4627 #define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
4628 
4639  uint64_t flags;
4640  uint32_t group_id;
4641  struct rte_flow_tunnel tunnel;
4642 };
4643 
4667 __rte_experimental
4668 int
4669 rte_flow_tunnel_decap_set(uint16_t port_id,
4670  struct rte_flow_tunnel *tunnel,
4671  struct rte_flow_action **actions,
4672  uint32_t *num_of_actions,
4673  struct rte_flow_error *error);
4674 
4698 __rte_experimental
4699 int
4700 rte_flow_tunnel_match(uint16_t port_id,
4701  struct rte_flow_tunnel *tunnel,
4702  struct rte_flow_item **items,
4703  uint32_t *num_of_items,
4704  struct rte_flow_error *error);
4705 
4726 __rte_experimental
4727 int
4728 rte_flow_get_restore_info(uint16_t port_id,
4729  struct rte_mbuf *m,
4730  struct rte_flow_restore_info *info,
4731  struct rte_flow_error *error);
4732 
4749 __rte_experimental
4750 int
4751 rte_flow_tunnel_action_decap_release(uint16_t port_id,
4752  struct rte_flow_action *actions,
4753  uint32_t num_of_actions,
4754  struct rte_flow_error *error);
4755 
4772 __rte_experimental
4773 int
4774 rte_flow_tunnel_item_release(uint16_t port_id,
4775  struct rte_flow_item *items,
4776  uint32_t num_of_items,
4777  struct rte_flow_error *error);
4778 
4807 __rte_experimental
4808 int
4809 rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id,
4810  struct rte_flow_error *error);
4811 
4830 __rte_experimental
4831 struct rte_flow_item_flex_handle *
4832 rte_flow_flex_item_create(uint16_t port_id,
4833  const struct rte_flow_item_flex_conf *conf,
4834  struct rte_flow_error *error);
4835 
4850 __rte_experimental
4851 int
4852 rte_flow_flex_item_release(uint16_t port_id,
4853  const struct rte_flow_item_flex_handle *handle,
4854  struct rte_flow_error *error);
4855 
4856 #ifdef __cplusplus
4857 }
4858 #endif
4859 
4860 #endif /* RTE_FLOW_H_ */
rte_flow_action_security
Definition: rte_flow.h:3139
RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
Definition: rte_flow.h:3476
rte_flow_item_tcp
Definition: rte_flow.h:1042
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:3285
RTE_FLOW_CONNTRACK_FLAG_NONE
@ RTE_FLOW_CONNTRACK_FLAG_NONE
Definition: rte_flow.h:3487
rte_flow_item_geneve
Definition: rte_flow.h:1274
rte_flow_action_conntrack::is_original_dir
uint32_t is_original_dir
Definition: rte_flow.h:3549
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1458
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
Definition: rte_flow.h:2698
rte_flow_action_set_tag
Definition: rte_flow.h:3405
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:1146
RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:2347
RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:476
rte_flow_item_port_id
Definition: rte_flow.h:796
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:3330
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:3822
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:2579
rte_flow_item_flex_field::offset_shift
int32_t offset_shift
Definition: rte_flow.h:2109
RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:2607
rte_flow_item_ipv4::hdr
struct rte_ipv4_hdr hdr
Definition: rte_flow.h:941
rte_flow_action_set_tp
Definition: rte_flow.h:3374
RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:307
rte_flow_item_icmp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:1010
rte_flow_action_raw_encap
Definition: rte_flow.h:3307
rte_flow_action_conntrack::max_ack_window
uint8_t max_ack_window
Definition: rte_flow.h:3574
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:3868
rte_flow_desc::size
size_t size
Definition: rte_flow.h:4304
FIELD_MODE_BITMASK
@ FIELD_MODE_BITMASK
Definition: rte_flow.h:2062
rte_flow_item_pppoe_proto_id
Definition: rte_flow.h:1585
RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:3973
rte_flow_action_vxlan_encap
Definition: rte_flow.h:3246
rte_flow_action_port_id
Definition: rte_flow.h:3091
rte_flow_item_l2tpv3oip::session_id
rte_be32_t session_id
Definition: rte_flow.h:1624
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:1216
rte_flow_item_pppoe::session_id
rte_be16_t session_id
Definition: rte_flow.h:1569
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:2956
RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:416
rte_flow_modify_op
rte_flow_modify_op
Definition: rte_flow.h:3708
rte_flow_item_conntrack
Definition: rte_flow.h:1890
rte_flow_item_ipv6_ext::next_hdr
uint8_t next_hdr
Definition: rte_flow.h:1351
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1482
rte_vxlan.h
rte_sctp.h
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
Definition: rte_flow.h:2396
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
Definition: rte_flow.h:2781
rte_flow_query_count
Definition: rte_flow.h:2964
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:2471
RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
Definition: rte_flow.h:3480
RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:354
rte_flow_item_higig2_hdr
Definition: rte_flow.h:671
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1403
rte_flow_desc
Definition: rte_flow.h:4303
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:1320
rte_flow_modify_conntrack::new_ct
struct rte_flow_action_conntrack new_ct
Definition: rte_flow.h:3604
rte_flow_item_flex
Definition: rte_flow.h:2027
RTE_FLOW_CONNTRACK_STATE_LAST_ACK
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
Definition: rte_flow.h:3478
rte_meter.h
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:1319
rte_flow_action_modify_data::pvalue
void * pvalue
Definition: rte_flow.h:3701
RTE_FLOW_FIELD_IPV6_SRC
@ RTE_FLOW_FIELD_IPV6_SRC
Definition: rte_flow.h:3654
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:3310
rte_flow_item_esp
Definition: rte_flow.h:1256
RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ACTION_TYPE_SET_TAG
Definition: rte_flow.h:2745
RTE_FLOW_ITEM_TYPE_GRE
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:342
RTE_FLOW_ITEM_TYPE_UDP
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:293
rte_flow_item_phy_port
Definition: rte_flow.h:766
RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:321
rte_flow_attr::transfer
uint32_t transfer
Definition: rte_flow.h:131
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:2540
rte_ppp_hdr
Definition: rte_ppp.h:24
rte_flow_action_of_push_vlan
Definition: rte_flow.h:3175
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1282
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_flow.h:2976
rte_ecpri_common_hdr::u32
rte_be32_t u32
Definition: rte_ecpri.h:72
rte_flow_item_flex_conf::input_link
struct rte_flow_item_flex_link * input_link
Definition: rte_flow.h:2169
rte_flow_attr::egress
uint32_t egress
Definition: rte_flow.h:113
rte_flow_error_set
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
rte_flow_item_ipv6::has_frag_ext
uint32_t has_frag_ext
Definition: rte_flow.h:968
rte_flow_action_set_ipv4
Definition: rte_flow.h:3344
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:3815
rte_ipv6_hdr::src_addr
uint8_t src_addr[16]
Definition: rte_ip.h:442
rte_flow_attr::ingress
uint32_t ingress
Definition: rte_flow.h:100
rte_flow_item_ppp
Definition: rte_flow.h:1956
rte_flow_item_arp_eth_ipv4::op
rte_be16_t op
Definition: rte_flow.h:1322
rte_flow_item_flex_conf
Definition: rte_flow.h:2136
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:3058
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
Definition: rte_flow.h:525
rte_flow_action_age::context
void * context
Definition: rte_flow.h:2921
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:3817
rte_flow_item_flex_conf::nb_inputs
uint32_t nb_inputs
Definition: rte_flow.h:2171
rte_flow_item_arp_eth_ipv4_mask
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
Definition: rte_flow.h:1332
rte_esp.h
rte_flow_tcp_dir_param::scale
uint32_t scale
Definition: rte_flow.h:3506
RTE_FLOW_CONNTRACK_FLAG_ACK
@ RTE_FLOW_CONNTRACK_FLAG_ACK
Definition: rte_flow.h:3491
rte_flow_action_count
Definition: rte_flow.h:2955
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:2439
RTE_FLOW_FIELD_META
@ RTE_FLOW_FIELD_META
Definition: rte_flow.h:3668
rte_flow_query_age::sec_since_last_hit
uint32_t sec_since_last_hit
Definition: rte_flow.h:2935
rte_flow_item_vlan::reserved
uint32_t reserved
Definition: rte_flow.h:922
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:3813
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:2487
rte_flow_action_conntrack::original_dir
struct rte_flow_tcp_dir_param original_dir
Definition: rte_flow.h:3578
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:1119
RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:3814
RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:2628
rte_flow_action_phy_port
Definition: rte_flow.h:3074
rte_higig2_hdr
Definition: rte_higig.h:140
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:2496
rte_flow_indir_action_conf::transfer
uint32_t transfer
Definition: rte_flow.h:4443
rte_flow_item_integrity::l2_ok
uint64_t l2_ok
Definition: rte_flow.h:1829
rte_flow_item_tag_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
Definition: rte_flow.h:1612
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:2651
rte_flow_action_meter
Definition: rte_flow.h:3105
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1426
rte_flow_item_nsh
Definition: rte_flow.h:1673
RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:286
RTE_FLOW_FIELD_IPV4_SRC
@ RTE_FLOW_FIELD_IPV4_SRC
Definition: rte_flow.h:3650
rte_flow_item_gtp::v_pt_rsv_flags
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:1238
rte_flow_item_any
Definition: rte_flow.h:698
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1091
RTE_FLOW_FIELD_IPV4_DSCP
@ RTE_FLOW_FIELD_IPV4_DSCP
Definition: rte_flow.h:3648
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
rte_flow_item_flex_field::field_id
uint32_t field_id
Definition: rte_flow.h:2110
RTE_FLOW_ITEM_TYPE_L2TPV3OIP
@ RTE_FLOW_ITEM_TYPE_L2TPV3OIP
Definition: rte_flow.h:570
RTE_FLOW_FIELD_TCP_SEQ_NUM
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
Definition: rte_flow.h:3658
rte_flow_item_gre
Definition: rte_flow.h:1182
RTE_FLOW_ITEM_TYPE_L2TPV2
@ RTE_FLOW_ITEM_TYPE_L2TPV2
Definition: rte_flow.h:655
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:2901
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:1188
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:1279
RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ITEM_TYPE_IGMP
Definition: rte_flow.h:539
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:829
RTE_FLOW_ACTION_TYPE_SAMPLE
@ RTE_FLOW_ACTION_TYPE_SAMPLE
Definition: rte_flow.h:2800
rte_flow_item_conntrack_mask
static const struct rte_flow_item_conntrack rte_flow_item_conntrack_mask
Definition: rte_flow.h:1896
RTE_FLOW_FIELD_VLAN_ID
@ RTE_FLOW_FIELD_VLAN_ID
Definition: rte_flow.h:3646
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:2208
RTE_FLOW_ITEM_TYPE_PF
@ RTE_FLOW_ITEM_TYPE_PF
Definition: rte_flow.h:202
RTE_FLOW_FIELD_GTP_TEID
@ RTE_FLOW_FIELD_GTP_TEID
Definition: rte_flow.h:3665
RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2215
rte_flow_action_modify_field::src
struct rte_flow_action_modify_data src
Definition: rte_flow.h:3727
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:1067
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:1122
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:1145
rte_flow_action_handle_query
__rte_experimental int rte_flow_action_handle_query(uint16_t port_id, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:437
rte_flow_action_of_set_nw_ttl::nw_ttl
uint8_t nw_ttl
Definition: rte_flow.h:3166
RTE_FLOW_ACTION_TYPE_INDIRECT
@ RTE_FLOW_ACTION_TYPE_INDIRECT
Definition: rte_flow.h:2830
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:927
rte_flow_create
struct rte_flow * rte_flow_create(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
FLEX_TUNNEL_MODE_OUTER
@ FLEX_TUNNEL_MODE_OUTER
Definition: rte_flow.h:2080
rte_flow_item_vxlan::flags
uint8_t flags
Definition: rte_flow.h:1088
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:3251
RTE_FLOW_ACTION_TYPE_METER_COLOR
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
Definition: rte_flow.h:2847
RTE_FLOW_ITEM_TYPE_TCP
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:300
rte_flow_item_integrity::l2_crc_ok
uint64_t l2_crc_ok
Definition: rte_flow.h:1835
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1457
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:4306
rte_l2tpv2_common_hdr::flags_version
rte_be16_t flags_version
Definition: rte_l2tpv2.h:88
RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:3812
rte_flow_item_ipv4
Definition: rte_flow.h:940
RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:3821
RTE_FLOW_CONV_OP_NONE
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:3884
FIELD_MODE_OFFSET
@ FIELD_MODE_OFFSET
Definition: rte_flow.h:2053
RTE_FLOW_ITEM_TYPE_CONNTRACK
@ RTE_FLOW_ITEM_TYPE_CONNTRACK
Definition: rte_flow.h:620
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:2479
rte_flow_copy
__rte_deprecated size_t rte_flow_copy(struct rte_flow_desc *fd, size_t len, const struct rte_flow_attr *attr, const struct rte_flow_item *items, const struct rte_flow_action *actions)
rte_flow_item_ipv6_frag_ext
Definition: rte_flow.h:1372
rte_flow_modify_conntrack::direction
uint32_t direction
Definition: rte_flow.h:3606
RTE_FLOW_ITEM_TYPE_ECPRI
@ RTE_FLOW_ITEM_TYPE_ECPRI
Definition: rte_flow.h:586
rte_flow_item
Definition: rte_flow.h:2004
rte_flow_item_pppoe::version_type
uint8_t version_type
Definition: rte_flow.h:1567
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:2005
rte_flow_item_flex_tunnel_mode
rte_flow_item_flex_tunnel_mode
Definition: rte_flow.h:2068
rte_flow_item_pppoe_proto_id_mask
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
Definition: rte_flow.h:1592
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:1099
RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:2363
RTE_FLOW_ITEM_TYPE_PPP
@ RTE_FLOW_ITEM_TYPE_PPP
Definition: rte_flow.h:662
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:2520
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:639
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:1300
rte_ecpri_combined_msg_hdr
Definition: rte_ecpri.h:173
rte_flow_item_flex_conf::tunnel
enum rte_flow_item_flex_tunnel_mode tunnel
Definition: rte_flow.h:2142
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:2664
rte_flow_action_modify_data::field
enum rte_flow_field_id field
Definition: rte_flow.h:3680
RTE_FLOW_ACTION_TYPE_JUMP
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:2240
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1506
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:1120
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:2006
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:3844
rte_flow_action_modify_field::width
uint32_t width
Definition: rte_flow.h:3728
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:1221
rte_flow_action_conntrack::retransmission_limit
uint8_t retransmission_limit
Definition: rte_flow.h:3576
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:699
RTE_FLOW_FIELD_VLAN_TYPE
@ RTE_FLOW_FIELD_VLAN_TYPE
Definition: rte_flow.h:3645
rte_flow_item_integrity::l4_ok
uint64_t l4_ok
Definition: rte_flow.h:1833
RTE_FLOW_FIELD_IPV6_DST
@ RTE_FLOW_FIELD_IPV6_DST
Definition: rte_flow.h:3655
rte_flow_item_flex_field
Definition: rte_flow.h:2102
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:3845
RTE_FLOW_FIELD_GENEVE_VNI
@ RTE_FLOW_FIELD_GENEVE_VNI
Definition: rte_flow.h:3664
RTE_FLOW_FIELD_VALUE
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:3670
rte_color
rte_color
Definition: rte_meter.h:36
rte_flow_item_phy_port::index
uint32_t index
Definition: rte_flow.h:767
rte_flow_item_flex_field::offset_base
uint32_t offset_base
Definition: rte_flow.h:2107
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1383
rte_esp_hdr::spi
rte_be32_t spi
Definition: rte_esp.h:24
rte_flow_item_nvgre_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:1152
rte_flow_action_phy_port::original
uint32_t original
Definition: rte_flow.h:3075
rte_flow_item_integrity::l3_len_ok
uint64_t l3_len_ok
Definition: rte_flow.h:1841
RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:467
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:3185
RTE_FLOW_ITEM_TYPE_END
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:160
rte_ether.h
rte_flow_action_set_meta
Definition: rte_flow.h:3430
RTE_FLOW_CONNTRACK_FLAG_RST
@ RTE_FLOW_CONNTRACK_FLAG_RST
Definition: rte_flow.h:3492
RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:381
rte_mbuf
Definition: rte_mbuf_core.h:578
rte_flow_action_age::reserved
uint32_t reserved
Definition: rte_flow.h:2919
rte_flow_item_integrity::l3_ok
uint64_t l3_ok
Definition: rte_flow.h:1831
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:837
rte_flow_item_ppp_mask
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
Definition: rte_flow.h:1962
rte_flow_item_eth::dst
struct rte_ether_addr dst
Definition: rte_flow.h:873
rte_flow_isolate
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
rte_flow_tcp_dir_param::last_ack_seen
uint32_t last_ack_seen
Definition: rte_flow.h:3510
rte_flow_query_count::reset
uint32_t reset
Definition: rte_flow.h:2965
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1384
RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:272
RTE_FLOW_FIELD_TCP_PORT_DST
@ RTE_FLOW_FIELD_TCP_PORT_DST
Definition: rte_flow.h:3657
rte_flow_item_pfcp
Definition: rte_flow.h:1751
RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:3920
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1405
RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_PPPOED
Definition: rte_flow.h:516
rte_flow_indir_action_conf
Definition: rte_flow.h:4428
rte_mbuf_dyn.h
RTE_FLOW_ITEM_TYPE_GTPC
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:372
RTE_FLOW_ITEM_TYPE_GTP
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:363
rte_sctp_hdr::src_port
rte_be16_t src_port
Definition: rte_sctp.h:29
rte_flow_item_mark
Definition: rte_flow.h:1653
rte_flow_item_icmp6_nd_na_mask
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
Definition: rte_flow.h:1438
rte_ecpri.h
FIELD_MODE_DUMMY
@ FIELD_MODE_DUMMY
Definition: rte_flow.h:2041
RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:3826
rte_flow_action_conntrack::last_end
uint32_t last_end
Definition: rte_flow.h:3592
RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
Definition: rte_flow.h:3474
RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:2355
rte_flow_dynf_metadata_register
__rte_experimental int rte_flow_dynf_metadata_register(void)
rte_flow_action_nvgre_encap
Definition: rte_flow.h:3280
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:875
rte_flow_item_flex_conf::nb_outputs
uint32_t nb_outputs
Definition: rte_flow.h:2179
RTE_FLOW_ITEM_TYPE_GENEVE_OPT
@ RTE_FLOW_ITEM_TYPE_GENEVE_OPT
Definition: rte_flow.h:600
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:4001
RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
Definition: rte_flow.h:3472
RTE_FLOW_ITEM_TYPE_NSH
@ RTE_FLOW_ITEM_TYPE_NSH
Definition: rte_flow.h:532
rte_gtp_psc_generic_hdr::qfi
uint8_t qfi
Definition: rte_gtp.h:76
RTE_FLOW_FIELD_IPV6_HOPLIMIT
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
Definition: rte_flow.h:3653
RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:423
rte_flow_item_arp_eth_ipv4::tha
struct rte_ether_addr tha
Definition: rte_flow.h:1325
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:1281
rte_flow_get_aged_flows
__rte_experimental int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:2854
rte_flow_item_flex_conf::sample_data
struct rte_flow_item_flex_field * sample_data
Definition: rte_flow.h:2159
rte_flow_item_l2tpv2
Definition: rte_flow.h:1928
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
Definition: rte_flow.h:2385
rte_flow_item_ecpri
Definition: rte_flow.h:1774
RTE_FLOW_CONV_OP_ITEM
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:3908
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
Definition: rte_flow.h:2715
rte_flow_action_queue
Definition: rte_flow.h:2900
rte_flow_item_sctp::hdr
struct rte_sctp_hdr hdr
Definition: rte_flow.h:1062
RTE_FLOW_CONNTRACK_FLAG_FIN
@ RTE_FLOW_CONNTRACK_FLAG_FIN
Definition: rte_flow.h:3490
rte_flow_action_modify_field::operation
enum rte_flow_modify_op operation
Definition: rte_flow.h:3725
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:704
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1350
rte_flow_item_raw
Definition: rte_flow.h:825
RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
Definition: rte_flow.h:498
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
Definition: rte_flow.h:2419
rte_higig.h
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:3864
RTE_FLOW_FIELD_TCP_PORT_SRC
@ RTE_FLOW_FIELD_TCP_PORT_SRC
Definition: rte_flow.h:3656
rte_flow_item_igmp_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
Definition: rte_flow.h:1714
rte_flow_item_esp::hdr
struct rte_esp_hdr hdr
Definition: rte_flow.h:1257
rte_flow_item_geneve_opt
Definition: rte_flow.h:1794
RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:2324
FLEX_TUNNEL_MODE_SINGLE
@ FLEX_TUNNEL_MODE_SINGLE
Definition: rte_flow.h:2076
rte_flow_tcp_dir_param::data_unacked
uint32_t data_unacked
Definition: rte_flow.h:3515
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:87
rte_flow_tcp_dir_param
Definition: rte_flow.h:3504
RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:244
rte_flow_item_flex_conf::next_protocol
struct rte_flow_item_flex_field next_protocol
Definition: rte_flow.h:2153
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:2513
RTE_FLOW_ITEM_TYPE_INTEGRITY
@ RTE_FLOW_ITEM_TYPE_INTEGRITY
Definition: rte_flow.h:611
rte_flow_get_restore_info
__rte_experimental int rte_flow_get_restore_info(uint16_t port_id, struct rte_mbuf *m, struct rte_flow_restore_info *info, struct rte_flow_error *error)
rte_flow_item_icmp6_nd_opt_sla_eth::type
uint8_t type
Definition: rte_flow.h:1481
rte_flow_query_age::reserved
uint32_t reserved
Definition: rte_flow.h:2931
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:1029
rte_flow_dynf_metadata_avail
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
Definition: rte_flow.h:4050
rte_flow_action_rss
Definition: rte_flow.h:3005
rte_l2tpv2.h
rte_flow_item_icmp6_nd_opt_sla_eth::sla
struct rte_ether_addr sla
Definition: rte_flow.h:1483
rte_flow_action_ethdev
Definition: rte_flow.h:3634
RTE_FLOW_ACTION_TYPE_SET_META
@ RTE_FLOW_ACTION_TYPE_SET_META
Definition: rte_flow.h:2755
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:3092
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:1172
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:915
rte_flow_item_flex_conf::nb_samples
uint32_t nb_samples
Definition: rte_flow.h:2161
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:987
rte_flow_item_flex_field_mode
rte_flow_item_flex_field_mode
Definition: rte_flow.h:2035
RTE_FLOW_ACTION_TYPE_CONNTRACK
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
Definition: rte_flow.h:2839
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:3057
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:2966
rte_flow_indir_action_conf::ingress
uint32_t ingress
Definition: rte_flow.h:4436
rte_flow_action_modify_field
Definition: rte_flow.h:3724
RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:395
RTE_FLOW_CONNTRACK_FLAG_SYN
@ RTE_FLOW_CONNTRACK_FLAG_SYN
Definition: rte_flow.h:3488
rte_flow_item_mark_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
Definition: rte_flow.h:1659
rte_flow_item_flex_conf::output_link
struct rte_flow_item_flex_link * output_link
Definition: rte_flow.h:2177
rte_flow_item_vf::id
uint32_t id
Definition: rte_flow.h:732
rte_be64_t
uint64_t rte_be64_t
Definition: rte_byteorder.h:112
rte_vlan_hdr::vlan_tci
rte_be16_t vlan_tci
Definition: rte_ether.h:286
RTE_FLOW_ERROR_TYPE_STATE
@ RTE_FLOW_ERROR_TYPE_STATE
Definition: rte_flow.h:3829
rte_flow_action_phy_port::index
uint32_t index
Definition: rte_flow.h:3077
rte_flow_action_handle_destroy
__rte_experimental int rte_flow_action_handle_destroy(uint16_t port_id, struct rte_flow_action_handle *handle, struct rte_flow_error *error)
rte_flow_action_sample::actions
const struct rte_flow_action * actions
Definition: rte_flow.h:3802
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:4305
rte_flow_item_flex_field::field_size
uint32_t field_size
Definition: rte_flow.h:2105
rte_flow_item_ethdev
Definition: rte_flow.h:1909
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:452
rte_flow_action_of_set_nw_ttl
Definition: rte_flow.h:3165
rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
Definition: rte_flow.h:1629
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:3816
rte_flow_action_set_ttl
Definition: rte_flow.h:3383
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:2407
RTE_FLOW_FIELD_UDP_PORT_SRC
@ RTE_FLOW_FIELD_UDP_PORT_SRC
Definition: rte_flow.h:3661
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:1321
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:1241
rte_udp.h
rte_flow_action_sample
Definition: rte_flow.h:3799
rte_flow_item_nvgre
Definition: rte_flow.h:1137
rte_icmp.h
rte_flow_item_pppoe
Definition: rte_flow.h:1563
RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
@ RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
Definition: rte_flow.h:2979
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1432
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:3309
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:3186
RTE_FLOW_ITEM_TYPE_VF
@ RTE_FLOW_ITEM_TYPE_VF
Definition: rte_flow.h:216
rte_flow_tunnel_item_release
__rte_experimental int rte_flow_tunnel_item_release(uint16_t port_id, struct rte_flow_item *items, uint32_t num_of_items, struct rte_flow_error *error)
RTE_FLOW_FIELD_IPV4_TTL
@ RTE_FLOW_FIELD_IPV4_TTL
Definition: rte_flow.h:3649
rte_flow_query
int rte_flow_query(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action *action, void *data, struct rte_flow_error *error)
rte_flow_item_icmp6_nd_ns
Definition: rte_flow.h:1400
RTE_FLOW_MODIFY_SUB
@ RTE_FLOW_MODIFY_SUB
Definition: rte_flow.h:3711
rte_flow_item_gtp_psc::hdr
struct rte_gtp_psc_generic_hdr hdr
Definition: rte_flow.h:1547
rte_sctp_hdr
Definition: rte_sctp.h:28
RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:2638
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:444
rte_flow_item_ipv6::has_hip_ext
uint32_t has_hip_ext
Definition: rte_flow.h:978
rte_flow_item_port_id_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:802
rte_flow_pick_transfer_proxy
__rte_experimental int rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id, struct rte_flow_error *error)
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:3059
rte_ether_hdr
Definition: rte_ether.h:274
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:3006
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1456
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:946
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
Definition: rte_flow.h:2681
RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
Definition: rte_flow.h:489
rte_udp_hdr::src_port
rte_be16_t src_port
Definition: rte_udp.h:29
RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:4015
rte_flow_action_ethdev::port_id
uint16_t port_id
Definition: rte_flow.h:3635
rte_flow_item_ethdev_mask
static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask
Definition: rte_flow.h:1915
rte_flow_item_eth::reserved
uint32_t reserved
Definition: rte_flow.h:880
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
Definition: rte_flow.h:2431
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:1262
rte_flow_item_udp
Definition: rte_flow.h:1023
rte_common.h
rte_ipv4_hdr::src_addr
rte_be32_t src_addr
Definition: rte_ip.h:62
RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:2291
rte_flow_action_age
Definition: rte_flow.h:2917
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:1239
rte_flow_action_conntrack::last_ack
uint32_t last_ack
Definition: rte_flow.h:3587
RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:279
rte_flow_item_flex_field::reserved
uint32_t reserved
Definition: rte_flow.h:2111
rte_flow_item_vf_mask
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:737
rte_arp.h
rte_flow_item_sctp
Definition: rte_flow.h:1061
rte_flow_action_mark
Definition: rte_flow.h:2875
RTE_FLOW_CONNTRACK_FLAG_SYNACK
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
Definition: rte_flow.h:3489
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:1317
rte_flow_item_nsh_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
Definition: rte_flow.h:1688
rte_flow_item_ethdev::port_id
uint16_t port_id
Definition: rte_flow.h:1910
RTE_FLOW_ITEM_TYPE_RAW
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:251
rte_flow_action_modify_data::level
uint32_t level
Definition: rte_flow.h:3685
rte_flow_tcp_dir_param::close_initiated
uint32_t close_initiated
Definition: rte_flow.h:3508
src_addr
struct rte_ether_addr src_addr
Definition: rte_ether.h:270
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:2008
rte_flow_action_conntrack::reply_dir
struct rte_flow_tcp_dir_param reply_dir
Definition: rte_flow.h:3580
FLEX_TUNNEL_MODE_INNER
@ FLEX_TUNNEL_MODE_INNER
Definition: rte_flow.h:2084
RTE_FLOW_ITEM_TYPE_HIGIG2
@ RTE_FLOW_ITEM_TYPE_HIGIG2
Definition: rte_flow.h:552
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:3869
rte_flow_item_flex::handle
struct rte_flow_item_flex_handle * handle
Definition: rte_flow.h:2028
FIELD_MODE_FIXED
@ FIELD_MODE_FIXED
Definition: rte_flow.h:2046
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:831
rte_flow_item_e_tag
Definition: rte_flow.h:1112
rte_flow_item_pppoe::length
rte_be16_t length
Definition: rte_flow.h:1570
RTE_FLOW_ACTION_TYPE_SHARED
@ RTE_FLOW_ACTION_TYPE_SHARED
Definition: rte_flow.h:2811
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1536
rte_flow_action_set_dscp
Definition: rte_flow.h:3442
RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:2223
rte_flow_item_vlan::has_more_vlan
uint32_t has_more_vlan
Definition: rte_flow.h:921
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:3106
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:832
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:3329
rte_ether_hdr::dst_addr
struct rte_ether_addr dst_addr
Definition: rte_ether.h:275
rte_flow_error::message
const char * message
Definition: rte_flow.h:3846
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:797
rte_tcp_hdr
Definition: rte_tcp.h:28
rte_flow_item_l2tpv2_mask
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
Definition: rte_flow.h:1934
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:1302
rte_flow_restore_info::group_id
uint32_t group_id
Definition: rte_flow.h:4640
rte_vlan_hdr
Definition: rte_ether.h:285
RTE_FLOW_FIELD_MAC_TYPE
@ RTE_FLOW_FIELD_MAC_TYPE
Definition: rte_flow.h:3647
rte_flow_tcp_dir_param::reply_end
uint32_t reply_end
Definition: rte_flow.h:3525
rte_flow_item_fuzzy
Definition: rte_flow.h:1215
RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:2527
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1431
RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2271
rte_flow_tcp_dir_param::max_ack
uint32_t max_ack
Definition: rte_flow.h:3529
rte_flow_item_mpls
Definition: rte_flow.h:1162
rte_flow_validate
int rte_flow_validate(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
rte_flow_conv_rule
Definition: rte_flow.h:3858
rte_flow_action_modify_data::value
uint8_t value[16]
Definition: rte_flow.h:3695
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:1144
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:1187
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:2553
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:2969
rte_flow_item_meta
Definition: rte_flow.h:1530
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:3861
rte_flow_item_gtp
Definition: rte_flow.h:1231
RTE_FLOW_ITEM_TYPE_ANY
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:188
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:460
rte_flow_modify_conntrack::reserved
uint32_t reserved
Definition: rte_flow.h:3610
rte_be16_t
uint16_t rte_be16_t
Definition: rte_byteorder.h:110
rte_flow_conv_op
rte_flow_conv_op
Definition: rte_flow.h:3878
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3176
rte_flow_item_tag
Definition: rte_flow.h:1605
RTE_FLOW_ACTION_TYPE_AGE
@ RTE_FLOW_ACTION_TYPE_AGE
Definition: rte_flow.h:2792
RTE_FLOW_ITEM_TYPE_ESP
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:388
RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:3827
rte_flow_action_age::timeout
uint32_t timeout
Definition: rte_flow.h:2918
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:3811
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1424
rte_flow_action_meter_color
Definition: rte_flow.h:3622
rte_flow_dev_dump
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
rte_flow_item_flex::pattern
const uint8_t * pattern
Definition: rte_flow.h:2030
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Definition: rte_flow.h:2862
rte_flow_item_integrity::packet_ok
uint64_t packet_ok
Definition: rte_flow.h:1827
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:3860
rte_gtp.h
rte_flow_attr
Definition: rte_flow.h:85
rte_tcp.h
rte_l2tpv2_combined_msg_hdr::common
struct rte_l2tpv2_common_hdr common
Definition: rte_l2tpv2.h:210
rte_flow_item_ipv6::hdr
struct rte_ipv6_hdr hdr
Definition: rte_flow.h:962
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:2970
RTE_FLOW_FIELD_MARK
@ RTE_FLOW_FIELD_MARK
Definition: rte_flow.h:3667
rte_flow_item_flex_conf::next_header
struct rte_flow_item_flex_field next_header
Definition: rte_flow.h:2148
rte_flow_item_pfcp_mask
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
Definition: rte_flow.h:1760
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:1048
rte_flow_item_ah
Definition: rte_flow.h:1728
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1425
rte_flow_action::type
enum rte_flow_action_type type
Definition: rte_flow.h:3771
rte_flow_item_gtp_psc
Definition: rte_flow.h:1546
RTE_FLOW_FIELD_MAC_DST
@ RTE_FLOW_FIELD_MAC_DST
Definition: rte_flow.h:3643
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:2967
rte_ipv4_hdr
Definition: rte_ip.h:41
rte_flow_item_icmp6_nd_opt_sla_eth_mask
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
Definition: rte_flow.h:1489
rte_flow_modify_conntrack::state
uint32_t state
Definition: rte_flow.h:3608
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:3195
RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:3933
rte_flow_action_raw_decap
Definition: rte_flow.h:3328
rte_flow_modify_conntrack
Definition: rte_flow.h:3602
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:42
rte_flow_item_icmp
Definition: rte_flow.h:1004
rte_flow_item_eth::src
struct rte_ether_addr src
Definition: rte_flow.h:874
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:2504
rte_flow_item_igmp
Definition: rte_flow.h:1705
rte_flow_action_set_ipv6
Definition: rte_flow.h:3359
RTE_FLOW_FIELD_START
@ RTE_FLOW_FIELD_START
Definition: rte_flow.h:3642
rte_flow_item_icmp6_nd_opt_mask
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
Definition: rte_flow.h:1464
rte_flow_conntrack_tcp_last_index
rte_flow_conntrack_tcp_last_index
Definition: rte_flow.h:3486
rte_esp_hdr
Definition: rte_esp.h:23
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:3818
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3206
RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:3823
rte_flow_item_tcp::hdr
struct rte_tcp_hdr hdr
Definition: rte_flow.h:1043
RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_PPPOES
Definition: rte_flow.h:507
rte_flow_flex_item_create
__rte_experimental struct rte_flow_item_flex_handle * rte_flow_flex_item_create(uint16_t port_id, const struct rte_flow_item_flex_conf *conf, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:314
RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:335
rte_flow_item_integrity::ipv4_csum_ok
uint64_t ipv4_csum_ok
Definition: rte_flow.h:1837
RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:3825
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1402
rte_flow_action_conntrack
Definition: rte_flow.h:3542
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:4308
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:3093
RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:2280
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:3140
rte_flow_destroy
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
RTE_FLOW_FIELD_IPV6_DSCP
@ RTE_FLOW_FIELD_IPV6_DSCP
Definition: rte_flow.h:3652
RTE_FLOW_MODIFY_SET
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:3709
RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:2252
rte_flow_action_conntrack::live_connection
uint32_t live_connection
Definition: rte_flow.h:3559
rte_flow_item_integrity::level
uint32_t level
Definition: rte_flow.h:1821
RTE_FLOW_FIELD_MAC_SRC
@ RTE_FLOW_FIELD_MAC_SRC
Definition: rte_flow.h:3644
RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:2312
rte_flow_conv
__rte_experimental int rte_flow_conv(enum rte_flow_conv_op op, void *dst, size_t size, const void *src, struct rte_flow_error *error)
rte_flow_action_handle_create
__rte_experimental struct rte_flow_action_handle * rte_flow_action_handle_create(uint16_t port_id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
Definition: rte_flow.h:677
rte_flow_query_age::aged
uint32_t aged
Definition: rte_flow.h:2932
rte_flow_action_modify_data::offset
uint32_t offset
Definition: rte_flow.h:3687
RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:3946
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
Definition: rte_flow.h:2768
rte_flow_item_ipv6::has_mobil_ext
uint32_t has_mobil_ext
Definition: rte_flow.h:976
RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:3987
RTE_FLOW_CONV_OP_RULE
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:3959
rte_flow_item_flex_field::field_mode
enum rte_flow_item_flex_field_mode field_mode
Definition: rte_flow.h:2104
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:1299
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:1193
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:1307
rte_flow_tcp_dir_param::max_win
uint32_t max_win
Definition: rte_flow.h:3527
rte_ppp_hdr::addr
uint8_t addr
Definition: rte_ppp.h:25
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:2447
rte_flow_query_age
Definition: rte_flow.h:2930
RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:2618
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1654
rte_flow_tunnel_match
__rte_experimental int rte_flow_tunnel_match(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_item **items, uint32_t *num_of_items, struct rte_flow_error *error)
rte_flow_item_icmp6_nd_ns::reserved
rte_be32_t reserved
Definition: rte_flow.h:1404
RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:2822
rte_flow_action_conntrack::selective_ack
uint32_t selective_ack
Definition: rte_flow.h:3561
rte_ipv6_hdr
Definition: rte_ip.h:437
rte_mbuf.h
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:3308
RTE_FLOW_ACTION_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_PHY_PORT
Definition: rte_flow.h:2336
RTE_FLOW_FIELD_TCP_ACK_NUM
@ RTE_FLOW_FIELD_TCP_ACK_NUM
Definition: rte_flow.h:3659
RTE_FLOW_FIELD_VXLAN_VNI
@ RTE_FLOW_FIELD_VXLAN_VNI
Definition: rte_flow.h:3663
RTE_FLOW_CONV_OP_ATTR
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:3896
RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:2264
RTE_FLOW_CONNTRACK_STATE_SYN_RECV
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
Definition: rte_flow.h:3470
rte_flow_item_eth::has_vlan
uint32_t has_vlan
Definition: rte_flow.h:879
RTE_FLOW_FIELD_TAG
@ RTE_FLOW_FIELD_TAG
Definition: rte_flow.h:3666
rte_flow_action::conf
const void * conf
Definition: rte_flow.h:3772
rte_flow_tunnel_action_decap_release
__rte_experimental int rte_flow_tunnel_action_decap_release(uint16_t port_id, struct rte_flow_action *actions, uint32_t num_of_actions, struct rte_flow_error *error)
rte_flow_action_mark::id
uint32_t id
Definition: rte_flow.h:2876
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:1298
RTE_FLOW_ITEM_TYPE_FLEX
@ RTE_FLOW_ITEM_TYPE_FLEX
Definition: rte_flow.h:648
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:1318
dst_addr
struct rte_ether_addr dst_addr
Definition: rte_ether.h:269
rte_flow_item_ipv6::has_auth_ext
uint32_t has_auth_ext
Definition: rte_flow.h:970
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:3196
rte_flow_item_icmp6
Definition: rte_flow.h:1381
rte_flow_restore_info::flags
uint64_t flags
Definition: rte_flow.h:4639
rte_flow_conntrack_state
rte_flow_conntrack_state
Definition: rte_flow.h:3468
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:4307
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:1287
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1507
RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:3820
rte_ppp.h
RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:3824
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:826
rte_flow_action_of_set_mpls_ttl::mpls_ttl
uint8_t mpls_ttl
Definition: rte_flow.h:3153
RTE_FLOW_ITEM_TYPE_AH
@ RTE_FLOW_ITEM_TYPE_AH
Definition: rte_flow.h:546
RTE_ETHER_ADDR_LEN
#define RTE_ETHER_ADDR_LEN
Definition: rte_ether.h:26
rte_flow_item_icmp6_nd_opt_tla_eth
Definition: rte_flow.h:1505
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:1324
RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:265
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:3037
FLEX_TUNNEL_MODE_TUNNEL
@ FLEX_TUNNEL_MODE_TUNNEL
Definition: rte_flow.h:2093
rte_flow_item_eth
Definition: rte_flow.h:866
rte_flow_action_conntrack::peer_port
uint16_t peer_port
Definition: rte_flow.h:3544
rte_flow_action_conntrack::last_seq
uint32_t last_seq
Definition: rte_flow.h:3585
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:3865
rte_flow_indir_action_conf::egress
uint32_t egress
Definition: rte_flow.h:4438
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1423
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:830
rte_flow_item_integrity::l4_csum_ok
uint64_t l4_csum_ok
Definition: rte_flow.h:1839
rte_icmp_hdr
Definition: rte_icmp.h:28
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:3036
rte_flow_item_ipv6
Definition: rte_flow.h:961
rte_flow_item_vf
Definition: rte_flow.h:731
rte_flow_item_icmp::hdr
struct rte_icmp_hdr hdr
Definition: rte_flow.h:1005
rte_flow_item_ah_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
Definition: rte_flow.h:1738
rte_flow_action_conntrack::challenge_ack_passed
uint32_t challenge_ack_passed
Definition: rte_flow.h:3563
rte_flow_error
Definition: rte_flow.h:3843
rte_flow_item_pppoe_proto_id::proto_id
rte_be16_t proto_id
Definition: rte_flow.h:1586
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:132
RTE_FLOW_FIELD_UDP_PORT_DST
@ RTE_FLOW_FIELD_UDP_PORT_DST
Definition: rte_flow.h:3662
rte_flow_action_meter_color::color
enum rte_color color
Definition: rte_flow.h:3623
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:1297
rte_flow_action_conntrack::last_window
uint16_t last_window
Definition: rte_flow.h:3582
rte_vxlan_hdr::vx_vni
rte_be32_t vx_vni
Definition: rte_vxlan.h:35
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:3033
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:2455
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1401
rte_flow_query_age::sec_since_last_hit_valid
uint32_t sec_since_last_hit_valid
Definition: rte_flow.h:2934
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1357
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1382
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:1166
rte_flow_item_vxlan
Definition: rte_flow.h:1081
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:2593
rte_flow_item_ecpri_mask
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
Definition: rte_flow.h:1780
rte_flow_item_geneve_opt_mask
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
Definition: rte_flow.h:1804
rte_flow_item_ipv6::has_esp_ext
uint32_t has_esp_ext
Definition: rte_flow.h:972
rte_flow_item_vlan
Definition: rte_flow.h:908
RTE_FLOW_ITEM_TYPE_ETH
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:258
rte_flow_action_sample::ratio
uint32_t ratio
Definition: rte_flow.h:3800
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:3035
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:3216
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:1240
RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:180
RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:170
RTE_FLOW_FIELD_POINTER
@ RTE_FLOW_FIELD_POINTER
Definition: rte_flow.h:3669
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:1089
rte_flow_action_modify_data
Definition: rte_flow.h:3679
rte_flow_action_phy_port::reserved
uint32_t reserved
Definition: rte_flow.h:3076
rte_ether_addr
Definition: rte_ether.h:61
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:3034
rte_flow_flex_item_release
__rte_experimental int rte_flow_flex_item_release(uint16_t port_id, const struct rte_flow_item_flex_handle *handle, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@ RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
Definition: rte_flow.h:629
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:3205
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:3094
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:86
rte_flow_restore_info::tunnel
struct rte_flow_tunnel tunnel
Definition: rte_flow.h:4641
rte_flow_item_ipv6::has_hop_ext
uint32_t has_hop_ext
Definition: rte_flow.h:964
rte_flow_item_e_tag_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:1127
rte_flow_action_set_mac
Definition: rte_flow.h:3392
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:1147
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:2463
rte_flow_flush
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
rte_flow_item_raw::search
uint32_t search
Definition: rte_flow.h:827
rte_flow_item_ipv6::reserved
uint32_t reserved
Definition: rte_flow.h:982
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:916
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:3032
rte_flow_item_phy_port_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:772
RTE_FLOW_FIELD_IPV4_DST
@ RTE_FLOW_FIELD_IPV4_DST
Definition: rte_flow.h:3651
rte_flow_action_conntrack::state
enum rte_flow_conntrack_state state
Definition: rte_flow.h:3572
RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
Definition: rte_flow.h:593
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:1090
rte_flow_action_modify_field::dst
struct rte_flow_action_modify_data dst
Definition: rte_flow.h:3726
rte_vxlan_hdr
Definition: rte_vxlan.h:33
rte_flow_item_ipv6::has_route_ext
uint32_t has_route_ext
Definition: rte_flow.h:966
rte_flow_item_icmp6_nd_ns_mask
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
Definition: rte_flow.h:1411
RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:2231
rte_flow_restore_info
Definition: rte_flow.h:4634
RTE_FLOW_ITEM_TYPE_PHY_PORT
@ RTE_FLOW_ITEM_TYPE_PHY_PORT
Definition: rte_flow.h:230
rte_flow_action
Definition: rte_flow.h:3770
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:1280
rte_byteorder.h
RTE_FLOW_ITEM_TYPE_PFCP
@ RTE_FLOW_ITEM_TYPE_PFCP
Definition: rte_flow.h:577
rte_bitops.h
rte_flow_item::last
const void * last
Definition: rte_flow.h:2007
RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
Definition: rte_flow.h:2374
rte_flow_item_flex_field::offset_mask
uint32_t offset_mask
Definition: rte_flow.h:2108
rte_flow_item_pppoe::code
uint8_t code
Definition: rte_flow.h:1568
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1480
rte_udp_hdr
Definition: rte_udp.h:28
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:1301
RTE_FLOW_ITEM_TYPE_TAG
@ RTE_FLOW_ITEM_TYPE_TAG
Definition: rte_flow.h:561
rte_flow_item_ipv6::has_dest_ext
uint32_t has_dest_ext
Definition: rte_flow.h:974
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:430
rte_flow_tunnel_decap_set
__rte_experimental int rte_flow_tunnel_decap_set(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_action **actions, uint32_t *num_of_actions, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
Definition: rte_flow.h:2732
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:885
rte_flow_action_of_set_mpls_ttl
Definition: rte_flow.h:3152
rte_flow_action_conntrack::liberal_mode
uint32_t liberal_mode
Definition: rte_flow.h:3570
RTE_FLOW_FIELD_TCP_FLAGS
@ RTE_FLOW_FIELD_TCP_FLAGS
Definition: rte_flow.h:3660
rte_flow_action_vf
Definition: rte_flow.h:3056
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:828
rte_flow_item_arp_eth_ipv4::sha
struct rte_ether_addr sha
Definition: rte_flow.h:1323
rte_flow_item_ipv6::has_shim6_ext
uint32_t has_shim6_ext
Definition: rte_flow.h:980
rte_flow_item_flex_field::field_base
int32_t field_base
Definition: rte_flow.h:2106
rte_flow_tcp_dir_param::sent_end
uint32_t sent_end
Definition: rte_flow.h:3520
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:1326
rte_flow_item_integrity
Definition: rte_flow.h:1817
rte_flow_action_of_push_mpls
Definition: rte_flow.h:3215
rte_ether_addr::addr_bytes
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
Definition: rte_ether.h:62
rte_tcp_hdr::src_port
rte_be16_t src_port
Definition: rte_tcp.h:29
RTE_FLOW_ITEM_TYPE_NVGRE
@ RTE_FLOW_ITEM_TYPE_NVGRE
Definition: rte_flow.h:328
RTE_ETH_HASH_FUNCTION_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_TOEPLITZ
Definition: rte_flow.h:2978
rte_flow_action_jump
Definition: rte_flow.h:2891
RTE_FLOW_MODIFY_ADD
@ RTE_FLOW_MODIFY_ADD
Definition: rte_flow.h:3710
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:1246
rte_l2tpv2_combined_msg_hdr
Definition: rte_l2tpv2.h:209
rte_flow_item_flex::length
uint32_t length
Definition: rte_flow.h:2029
rte_flow_item_icmp6_nd_opt_tla_eth_mask
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
Definition: rte_flow.h:1514
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:3819
rte_flow_action_conntrack::last_direction
uint32_t last_direction
Definition: rte_flow.h:3568
rte_gtp_psc_generic_hdr
Definition: rte_gtp.h:69
rte_flow_action_handle_update
__rte_experimental int rte_flow_action_handle_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)
RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:402
rte_flow_field_id
rte_flow_field_id
Definition: rte_flow.h:3641
rte_flow_item_udp::hdr
struct rte_udp_hdr hdr
Definition: rte_flow.h:1024
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:1117
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:1121
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:2968
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:2566
RTE_BIT32
#define RTE_BIT32(nr)
Definition: rte_bitops.h:38
RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:2300
rte_flow_item_type
rte_flow_item_type
Definition: rte_flow.h:151
rte_flow_item_icmp6_nd_opt_tla_eth::tla
struct rte_ether_addr tla
Definition: rte_flow.h:1508
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
Definition: rte_flow.h:1553
rte_flow_item_l2tpv3oip
Definition: rte_flow.h:1623
RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
Definition: rte_flow.h:2985
FLEX_TUNNEL_MODE_MULTI
@ FLEX_TUNNEL_MODE_MULTI
Definition: rte_flow.h:2089
rte_flow_action_conntrack::enable
uint32_t enable
Definition: rte_flow.h:3557
RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:3828
RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:409
rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1389