DPDK  18.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_eth_ctrl.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_byteorder.h>
30 #include <rte_esp.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
73 struct rte_flow_attr {
74  uint32_t group;
75  uint32_t priority;
76  uint32_t ingress:1;
77  uint32_t egress:1;
96  uint32_t transfer:1;
97  uint32_t reserved:29;
98 };
99 
126 
136 
146 
154 
164 
174 
184 
194 
201 
208 
215 
222 
229 
236 
243 
250 
257 
264 
271 
278 
285 
292 
304 
313 
322 
331 
338 
345 
352 
359 
366 
373 
380 
387 
394 
402 
410 
417 
425 };
426 
439  uint32_t num;
440 };
441 
443 #ifndef __cplusplus
445  .num = 0x00000000,
446 };
447 #endif
448 
468  uint32_t id;
469 };
470 
472 #ifndef __cplusplus
474  .id = 0x00000000,
475 };
476 #endif
477 
499  uint32_t index;
500 };
501 
503 #ifndef __cplusplus
505  .index = 0x00000000,
506 };
507 #endif
508 
525  uint32_t id;
526 };
527 
529 #ifndef __cplusplus
531  .id = 0xffffffff,
532 };
533 #endif
534 
554  uint32_t relative:1;
555  uint32_t search:1;
556  uint32_t reserved:30;
557  int32_t offset;
558  uint16_t limit;
559  uint16_t length;
560  const uint8_t *pattern;
561 };
562 
564 #ifndef __cplusplus
566  .relative = 1,
567  .search = 1,
568  .reserved = 0x3fffffff,
569  .offset = 0xffffffff,
570  .limit = 0xffff,
571  .length = 0xffff,
572  .pattern = NULL,
573 };
574 #endif
575 
588  struct ether_addr dst;
589  struct ether_addr src;
591 };
592 
594 #ifndef __cplusplus
596  .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
597  .src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
598  .type = RTE_BE16(0x0000),
599 };
600 #endif
601 
614 };
615 
617 #ifndef __cplusplus
619  .tci = RTE_BE16(0x0fff),
620  .inner_type = RTE_BE16(0x0000),
621 };
622 #endif
623 
632  struct ipv4_hdr hdr;
633 };
634 
636 #ifndef __cplusplus
638  .hdr = {
639  .src_addr = RTE_BE32(0xffffffff),
640  .dst_addr = RTE_BE32(0xffffffff),
641  },
642 };
643 #endif
644 
654  struct ipv6_hdr hdr;
655 };
656 
658 #ifndef __cplusplus
660  .hdr = {
661  .src_addr =
662  "\xff\xff\xff\xff\xff\xff\xff\xff"
663  "\xff\xff\xff\xff\xff\xff\xff\xff",
664  .dst_addr =
665  "\xff\xff\xff\xff\xff\xff\xff\xff"
666  "\xff\xff\xff\xff\xff\xff\xff\xff",
667  },
668 };
669 #endif
670 
677  struct icmp_hdr hdr;
678 };
679 
681 #ifndef __cplusplus
683  .hdr = {
684  .icmp_type = 0xff,
685  .icmp_code = 0xff,
686  },
687 };
688 #endif
689 
696  struct udp_hdr hdr;
697 };
698 
700 #ifndef __cplusplus
702  .hdr = {
703  .src_port = RTE_BE16(0xffff),
704  .dst_port = RTE_BE16(0xffff),
705  },
706 };
707 #endif
708 
715  struct tcp_hdr hdr;
716 };
717 
719 #ifndef __cplusplus
721  .hdr = {
722  .src_port = RTE_BE16(0xffff),
723  .dst_port = RTE_BE16(0xffff),
724  },
725 };
726 #endif
727 
734  struct sctp_hdr hdr;
735 };
736 
738 #ifndef __cplusplus
740  .hdr = {
741  .src_port = RTE_BE16(0xffff),
742  .dst_port = RTE_BE16(0xffff),
743  },
744 };
745 #endif
746 
753  uint8_t flags;
754  uint8_t rsvd0[3];
755  uint8_t vni[3];
756  uint8_t rsvd1;
757 };
758 
760 #ifndef __cplusplus
762  .vni = "\xff\xff\xff",
763 };
764 #endif
765 
782  uint8_t in_ecid_e;
783  uint8_t ecid_e;
785 };
786 
788 #ifndef __cplusplus
790  .rsvd_grp_ecid_b = RTE_BE16(0x3fff),
791 };
792 #endif
793 
808  uint8_t tni[3];
809  uint8_t flow_id;
810 };
811 
813 #ifndef __cplusplus
815  .tni = "\xff\xff\xff",
816 };
817 #endif
818 
828  uint8_t label_tc_s[3];
829  uint8_t ttl;
830 };
831 
833 #ifndef __cplusplus
835  .label_tc_s = "\xff\xff\xf0",
836 };
837 #endif
838 
851 };
852 
854 #ifndef __cplusplus
856  .protocol = RTE_BE16(0xffff),
857 };
858 #endif
859 
878  uint32_t thresh;
879 };
880 
882 #ifndef __cplusplus
884  .thresh = 0xffffffff,
885 };
886 #endif
887 
900  uint8_t v_pt_rsv_flags;
901  uint8_t msg_type;
904 };
905 
907 #ifndef __cplusplus
909  .teid = RTE_BE32(0xffffffff),
910 };
911 #endif
912 
919  struct esp_hdr hdr;
920 };
921 
923 #ifndef __cplusplus
925  .hdr = {
926  .spi = RTE_BE32(0xffffffff),
927  },
928 };
929 #endif
930 
943  uint8_t vni[3];
944  uint8_t rsvd1;
945 };
946 
948 #ifndef __cplusplus
950  .vni = "\xff\xff\xff",
951 };
952 #endif
953 
960  uint8_t flags;
961  uint8_t rsvd0[2];
962  uint8_t protocol;
963  uint8_t vni[3];
964  uint8_t rsvd1;
965 };
966 
968 #ifndef __cplusplus
970  .vni = "\xff\xff\xff",
971 };
972 #endif
973 
982  uint8_t hln;
983  uint8_t pln;
985  struct ether_addr sha;
987  struct ether_addr tha;
989 };
990 
992 #ifndef __cplusplus
993 static const struct rte_flow_item_arp_eth_ipv4
995  .sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
996  .spa = RTE_BE32(0xffffffff),
997  .tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
998  .tpa = RTE_BE32(0xffffffff),
999 };
1000 #endif
1001 
1013  uint8_t next_hdr;
1014 };
1015 
1017 #ifndef __cplusplus
1018 static const
1020  .next_hdr = 0xff,
1021 };
1022 #endif
1023 
1030  uint8_t type;
1031  uint8_t code;
1032  uint16_t checksum;
1033 };
1034 
1036 #ifndef __cplusplus
1038  .type = 0xff,
1039  .code = 0xff,
1040 };
1041 #endif
1042 
1049  uint8_t type;
1050  uint8_t code;
1053  uint8_t target_addr[16];
1054 };
1055 
1057 #ifndef __cplusplus
1058 static const
1060  .target_addr =
1061  "\xff\xff\xff\xff\xff\xff\xff\xff"
1062  "\xff\xff\xff\xff\xff\xff\xff\xff",
1063 };
1064 #endif
1065 
1072  uint8_t type;
1073  uint8_t code;
1080  uint8_t target_addr[16];
1081 };
1082 
1084 #ifndef __cplusplus
1085 static const
1087  .target_addr =
1088  "\xff\xff\xff\xff\xff\xff\xff\xff"
1089  "\xff\xff\xff\xff\xff\xff\xff\xff",
1090 };
1091 #endif
1092 
1105  uint8_t type;
1106  uint8_t length;
1107 };
1108 
1110 #ifndef __cplusplus
1111 static const struct rte_flow_item_icmp6_nd_opt
1113  .type = 0xff,
1114 };
1115 #endif
1116 
1129  uint8_t type;
1130  uint8_t length;
1131  struct ether_addr sla;
1132 };
1133 
1135 #ifndef __cplusplus
1136 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
1138  .sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1139 };
1140 #endif
1141 
1154  uint8_t type;
1155  uint8_t length;
1156  struct ether_addr tla;
1157 };
1158 
1160 #ifndef __cplusplus
1161 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
1163  .tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
1164 };
1165 #endif
1166 
1173  rte_be32_t data;
1174 };
1175 
1177 #ifndef __cplusplus
1179  .data = RTE_BE32(UINT32_MAX),
1180 };
1181 #endif
1182 
1202  uint32_t id;
1203 };
1204 
1240  const void *spec;
1241  const void *last;
1242  const void *mask;
1243 };
1244 
1278 
1286 
1294 
1303 
1311 
1319 
1326 
1335 
1345 
1354 
1362 
1370 
1378 
1385 
1393 
1401 
1409 
1417 
1425 
1433 
1442 
1451 
1459 
1467 
1475 
1483 
1491 
1499 
1507 
1516 
1524 
1533 
1540 
1547 
1557 
1567 
1577 
1587 
1598 
1609 
1620 
1627 
1634 
1644 
1654 };
1655 
1667  uint32_t id;
1668 };
1669 
1683  uint32_t group;
1684 };
1685 
1692  uint16_t index;
1693 };
1694 
1695 
1722  uint32_t shared:1;
1723  uint32_t reserved:31;
1724  uint32_t id;
1725 };
1726 
1733  uint32_t reset:1;
1734  uint32_t hits_set:1;
1735  uint32_t bytes_set:1;
1736  uint32_t reserved:29;
1737  uint64_t hits;
1738  uint64_t bytes;
1739 };
1740 
1784  uint32_t level;
1785  uint64_t types;
1786  uint32_t key_len;
1787  uint32_t queue_num;
1788  const uint8_t *key;
1789  const uint16_t *queue;
1790 };
1791 
1805  uint32_t original:1;
1806  uint32_t reserved:31;
1807  uint32_t id;
1808 };
1809 
1819  uint32_t original:1;
1820  uint32_t reserved:31;
1821  uint32_t index;
1822 };
1823 
1832  uint32_t original:1;
1833  uint32_t reserved:31;
1834  uint32_t id;
1835 };
1836 
1846  uint32_t mtr_id;
1847 };
1848 
1876 };
1877 
1885  uint8_t mpls_ttl;
1886 };
1887 
1895  uint8_t nw_ttl;
1896 };
1897 
1906 };
1907 
1916 };
1917 
1925  uint8_t vlan_pcp;
1926 };
1927 
1936 };
1937 
1946 };
1947 
1981 };
1982 
2015 };
2016 
2037  uint8_t *data;
2038  uint8_t *preserve;
2039  size_t size;
2040 };
2041 
2058  uint8_t *data;
2059  size_t size;
2060 };
2061 
2074  rte_be32_t ipv4_addr;
2075 };
2076 
2089  uint8_t ipv6_addr[16];
2090 };
2091 
2104  rte_be16_t port;
2105 };
2106 
2113  uint8_t ttl_value;
2114 };
2115 
2122  uint8_t mac_addr[ETHER_ADDR_LEN];
2123 };
2124 
2125 /*
2126  * Definition of a single action.
2127  *
2128  * A list of actions is terminated by a END action.
2129  *
2130  * For simple actions without a configuration structure, conf remains NULL.
2131  */
2132 struct rte_flow_action {
2133  enum rte_flow_action_type type;
2134  const void *conf;
2135 };
2136 
2143 struct rte_flow;
2144 
2169 };
2170 
2184  const void *cause;
2185  const char *message;
2186 };
2187 
2198  union {
2199  const struct rte_flow_attr *attr_ro;
2201  };
2202  union {
2203  const struct rte_flow_item *pattern_ro;
2205  };
2206  union {
2207  const struct rte_flow_action *actions_ro;
2208  struct rte_flow_action *actions;
2209  };
2210 };
2211 
2224 
2236 
2248 
2260 
2273 
2286 
2299 
2313 
2327 
2341 
2355 };
2356 
2409 int
2410 rte_flow_validate(uint16_t port_id,
2411  const struct rte_flow_attr *attr,
2412  const struct rte_flow_item pattern[],
2413  const struct rte_flow_action actions[],
2414  struct rte_flow_error *error);
2415 
2436 struct rte_flow *
2437 rte_flow_create(uint16_t port_id,
2438  const struct rte_flow_attr *attr,
2439  const struct rte_flow_item pattern[],
2440  const struct rte_flow_action actions[],
2441  struct rte_flow_error *error);
2442 
2463 int
2464 rte_flow_destroy(uint16_t port_id,
2465  struct rte_flow *flow,
2466  struct rte_flow_error *error);
2467 
2484 int
2485 rte_flow_flush(uint16_t port_id,
2486  struct rte_flow_error *error);
2487 
2512 int
2513 rte_flow_query(uint16_t port_id,
2514  struct rte_flow *flow,
2515  const struct rte_flow_action *action,
2516  void *data,
2517  struct rte_flow_error *error);
2518 
2560 int
2561 rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error);
2562 
2580 int
2581 rte_flow_error_set(struct rte_flow_error *error,
2582  int code,
2583  enum rte_flow_error_type type,
2584  const void *cause,
2585  const char *message);
2586 
2592  size_t size;
2595  struct rte_flow_action *actions;
2596  uint8_t data[];
2597 };
2598 
2625 __rte_deprecated
2626 size_t
2627 rte_flow_copy(struct rte_flow_desc *fd, size_t len,
2628  const struct rte_flow_attr *attr,
2629  const struct rte_flow_item *items,
2630  const struct rte_flow_action *actions);
2631 
2672 __rte_experimental
2673 int
2675  void *dst,
2676  size_t size,
2677  const void *src,
2678  struct rte_flow_error *error);
2679 
2680 #ifdef __cplusplus
2681 }
2682 #endif
2683 
2684 #endif /* RTE_FLOW_H_ */
rte_flow_action_security
Definition: rte_flow.h:1874
rte_flow_item_tcp
Definition: rte_flow.h:714
rte_flow_action_nvgre_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:2014
rte_flow_item_geneve
Definition: rte_flow.h:936
rte_flow_item_icmp6_nd_opt::length
uint8_t length
Definition: rte_flow.h:1106
rte_flow_item_nvgre::tni
uint8_t tni[3]
Definition: rte_flow.h:808
RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_PORT_ID
Definition: rte_flow.h:1384
RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_META
Definition: rte_flow.h:424
rte_flow_item_port_id
Definition: rte_flow.h:524
rte_flow_item_eth::dst
struct ether_addr dst
Definition: rte_flow.h:588
rte_flow_action_raw_decap::size
size_t size
Definition: rte_flow.h:2059
RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
Definition: rte_flow.h:2162
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
Definition: rte_flow.h:1586
RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
Definition: rte_flow.h:1608
rte_flow_action_set_tp
Definition: rte_flow.h:2103
RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_SCTP
Definition: rte_flow.h:256
rte_flow_item_icmp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
Definition: rte_flow.h:682
rte_flow_action_raw_encap
Definition: rte_flow.h:2036
rte_flow_conv_rule::actions_ro
const struct rte_flow_action * actions_ro
Definition: rte_flow.h:2207
rte_flow_desc::size
size_t size
Definition: rte_flow.h:2592
RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME
Definition: rte_flow.h:2312
rte_flow_action_vxlan_encap
Definition: rte_flow.h:1975
rte_flow_action_port_id
Definition: rte_flow.h:1831
ipv4_hdr::src_addr
uint32_t src_addr
Definition: rte_ip.h:42
rte_flow_item_fuzzy::thresh
uint32_t thresh
Definition: rte_flow.h:878
rte_flow_action_count::id
uint32_t id
Definition: rte_flow.h:1724
RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
Definition: rte_flow.h:365
rte_flow_item_ipv6_ext::next_hdr
uint8_t next_hdr
Definition: rte_flow.h:1013
rte_flow_item_icmp6_nd_opt_sla_eth::length
uint8_t length
Definition: rte_flow.h:1130
rte_sctp.h
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
Definition: rte_flow.h:1424
udp_hdr
Definition: rte_udp.h:26
rte_flow_query_count
Definition: rte_flow.h:1732
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
Definition: rte_flow.h:1490
RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_FUZZY
Definition: rte_flow.h:303
rte_flow_item_icmp6_nd_ns::checksum
rte_be16_t checksum
Definition: rte_flow.h:1051
rte_flow_desc
Definition: rte_flow.h:2591
rte_flow_item_arp_eth_ipv4::hln
uint8_t hln
Definition: rte_flow.h:982
rte_flow_item_arp_eth_ipv4::pro
rte_be16_t pro
Definition: rte_flow.h:981
rte_flow_action_raw_encap::size
size_t size
Definition: rte_flow.h:2039
rte_flow_item_esp
Definition: rte_flow.h:918
RTE_FLOW_ITEM_TYPE_GRE
@ RTE_FLOW_ITEM_TYPE_GRE
Definition: rte_flow.h:291
RTE_FLOW_ITEM_TYPE_UDP
@ RTE_FLOW_ITEM_TYPE_UDP
Definition: rte_flow.h:242
rte_flow_item_phy_port
Definition: rte_flow.h:498
RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
Definition: rte_flow.h:270
rte_flow_attr::transfer
uint32_t transfer
Definition: rte_flow.h:96
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
Definition: rte_flow.h:1556
rte_flow_action_of_push_vlan
Definition: rte_flow.h:1904
rte_flow_item_geneve::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:944
ipv6_hdr
Definition: rte_ip.h:349
rte_flow_attr::egress
uint32_t egress
Definition: rte_flow.h:77
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_action_set_ipv4
Definition: rte_flow.h:2073
RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
Definition: rte_flow.h:2155
rte_flow_attr::ingress
uint32_t ingress
Definition: rte_flow.h:76
rte_flow_item_arp_eth_ipv4::op
rte_be16_t op
Definition: rte_flow.h:984
rte_flow_action_vf::reserved
uint32_t reserved
Definition: rte_flow.h:1806
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
Definition: rte_flow.h:2157
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:994
rte_esp.h
rte_flow_action_count
Definition: rte_flow.h:1721
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
Definition: rte_flow.h:1458
rte_flow_item_esp::hdr
struct esp_hdr hdr
Definition: rte_flow.h:919
RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
Definition: rte_flow.h:2153
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
Definition: rte_flow.h:1506
rte_flow_item_e_tag::rsvd_grp_ecid_b
rte_be16_t rsvd_grp_ecid_b
Definition: rte_flow.h:781
rte_eth_hash_function
rte_eth_hash_function
Definition: rte_eth_ctrl.h:770
RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_HANDLE
Definition: rte_flow.h:2154
RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
Definition: rte_flow.h:1626
rte_flow_action_phy_port
Definition: rte_flow.h:1818
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
Definition: rte_flow.h:1515
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
Definition: rte_flow.h:1643
rte_flow_action_meter
Definition: rte_flow.h:1845
rte_flow_item_icmp6_nd_na::checksum
rte_be16_t checksum
Definition: rte_flow.h:1074
RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_ICMP
Definition: rte_flow.h:235
rte_flow_item_gtp::v_pt_rsv_flags
uint8_t v_pt_rsv_flags
Definition: rte_flow.h:900
rte_flow_item_any
Definition: rte_flow.h:438
rte_flow_item_vxlan::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:756
rte_be32_t
uint32_t rte_be32_t
Definition: rte_byteorder.h:111
ipv4_hdr
Definition: rte_ip.h:33
rte_flow_item_gre
Definition: rte_flow.h:844
rte_flow_action_queue::index
uint16_t index
Definition: rte_flow.h:1692
esp_hdr::spi
rte_be32_t spi
Definition: rte_esp.h:24
rte_flow_item_gre::protocol
rte_be16_t protocol
Definition: rte_flow.h:850
rte_flow_item_geneve::ver_opt_len_o_c_rsvd0
rte_be16_t ver_opt_len_o_c_rsvd0
Definition: rte_flow.h:941
rte_flow_item_raw::offset
int32_t offset
Definition: rte_flow.h:557
rte_flow_action_type
rte_flow_action_type
Definition: rte_flow.h:1270
RTE_FLOW_ITEM_TYPE_PF
@ RTE_FLOW_ITEM_TYPE_PF
Definition: rte_flow.h:163
RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:1277
rte_flow_item_sctp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
Definition: rte_flow.h:739
rte_flow_item_e_tag::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:784
rte_flow_item_nvgre::protocol
rte_be16_t protocol
Definition: rte_flow.h:807
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
Definition: rte_flow.h:386
rte_flow_action_of_set_nw_ttl::nw_ttl
uint8_t nw_ttl
Definition: rte_flow.h:1895
rte_flow_item_vlan_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
Definition: rte_flow.h:618
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)
rte_flow_item_vxlan::flags
uint8_t flags
Definition: rte_flow.h:753
rte_flow_action_vxlan_encap::definition
struct rte_flow_item * definition
Definition: rte_flow.h:1980
RTE_FLOW_ITEM_TYPE_TCP
@ RTE_FLOW_ITEM_TYPE_TCP
Definition: rte_flow.h:249
rte_flow_item_icmp6_nd_opt::type
uint8_t type
Definition: rte_flow.h:1105
rte_flow_desc::items
struct rte_flow_item * items
Definition: rte_flow.h:2594
RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_NONE
Definition: rte_flow.h:2152
rte_flow_item_ipv4
Definition: rte_flow.h:631
RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
Definition: rte_flow.h:2161
RTE_FLOW_CONV_OP_NONE
@ RTE_FLOW_CONV_OP_NONE
Definition: rte_flow.h:2223
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
Definition: rte_flow.h:1498
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_icmp6_nd_opt_sla_eth::sla
struct ether_addr sla
Definition: rte_flow.h:1131
rte_flow_item
Definition: rte_flow.h:1238
rte_flow_item::type
enum rte_flow_item_type type
Definition: rte_flow.h:1239
rte_flow_item_vxlan_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
Definition: rte_flow.h:761
RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_SECURITY
Definition: rte_flow.h:1400
RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
Definition: rte_flow.h:1539
rte_flow_item_udp::hdr
struct udp_hdr hdr
Definition: rte_flow.h:696
rte_flow_item_vxlan_gpe::protocol
uint8_t protocol
Definition: rte_flow.h:962
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
Definition: rte_flow.h:1653
RTE_FLOW_ACTION_TYPE_JUMP
@ RTE_FLOW_ACTION_TYPE_JUMP
Definition: rte_flow.h:1302
rte_flow_item_icmp6_nd_opt_tla_eth::type
uint8_t type
Definition: rte_flow.h:1154
rte_flow_item_e_tag::in_ecid_e
uint8_t in_ecid_e
Definition: rte_flow.h:782
rte_flow_item::spec
const void * spec
Definition: rte_flow.h:1240
rte_flow_error::type
enum rte_flow_error_type type
Definition: rte_flow.h:2183
rte_flow_item_fuzzy_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
Definition: rte_flow.h:883
rte_flow_item_any::num
uint32_t num
Definition: rte_flow.h:439
rte_flow_error::cause
const void * cause
Definition: rte_flow.h:2184
rte_flow_item_phy_port::index
uint32_t index
Definition: rte_flow.h:499
rte_flow_item_icmp6::code
uint8_t code
Definition: rte_flow.h:1031
rte_flow_item_ipv4::hdr
struct ipv4_hdr hdr
Definition: rte_flow.h:632
rte_flow_item_nvgre_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
Definition: rte_flow.h:814
rte_flow_action_phy_port::original
uint32_t original
Definition: rte_flow.h:1819
sctp_hdr::src_port
uint16_t src_port
Definition: rte_sctp.h:27
RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_MARK
Definition: rte_flow.h:416
rte_flow_action_of_set_vlan_vid
Definition: rte_flow.h:1914
RTE_FLOW_ITEM_TYPE_END
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:125
rte_ether.h
icmp_hdr
Definition: rte_icmp.h:26
RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_GTPU
Definition: rte_flow.h:330
rte_flow_item_raw_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
Definition: rte_flow.h:565
rte_flow_isolate
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
rte_flow_query_count::reset
uint32_t reset
Definition: rte_flow.h:1733
rte_flow_item_icmp6::checksum
uint16_t checksum
Definition: rte_flow.h:1032
RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:221
ether_addr
Definition: rte_ether.h:57
RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_CONV_OP_ACTION
Definition: rte_flow.h:2259
rte_flow_item_icmp6_nd_ns::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1053
rte_flow_action_count::shared
uint32_t shared
Definition: rte_flow.h:1722
RTE_FLOW_ITEM_TYPE_GTPC
@ RTE_FLOW_ITEM_TYPE_GTPC
Definition: rte_flow.h:321
RTE_FLOW_ITEM_TYPE_GTP
@ RTE_FLOW_ITEM_TYPE_GTP
Definition: rte_flow.h:312
rte_flow_item_mark
Definition: rte_flow.h:1201
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:1086
RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
Definition: rte_flow.h:2166
RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_METER
Definition: rte_flow.h:1392
rte_flow_action_nvgre_encap
Definition: rte_flow.h:2009
rte_flow_item_eth::type
rte_be16_t type
Definition: rte_flow.h:590
RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
Definition: rte_flow.h:2340
RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_ICMP6
Definition: rte_flow.h:372
rte_flow_item_geneve::vni
uint8_t vni[3]
Definition: rte_flow.h:943
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
Definition: rte_flow.h:1416
RTE_FLOW_CONV_OP_ITEM
@ RTE_FLOW_CONV_OP_ITEM
Definition: rte_flow.h:2247
rte_flow_action_queue
Definition: rte_flow.h:1691
rte_eth_ctrl.h
rte_flow_item_any_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
Definition: rte_flow.h:444
rte_flow_item_ipv6_ext
Definition: rte_flow.h:1012
rte_flow_item_raw
Definition: rte_flow.h:553
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
Definition: rte_flow.h:1441
rte_flow_conv_rule::pattern_ro
const struct rte_flow_item * pattern_ro
Definition: rte_flow.h:2203
RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_VF
Definition: rte_flow.h:1369
port
Definition: rte_eth_bond_8023ad_private.h:86
rte_ip.h
rte_flow_attr::priority
uint32_t priority
Definition: rte_flow.h:75
RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_PORT_ID
Definition: rte_flow.h:193
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
Definition: rte_flow.h:1532
udp_hdr::src_port
uint16_t src_port
Definition: rte_udp.h:27
rte_flow_item_icmp6_nd_opt_sla_eth::type
uint8_t type
Definition: rte_flow.h:1129
rte_flow_item_udp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
Definition: rte_flow.h:701
rte_flow_action_rss
Definition: rte_flow.h:1757
rte_flow_action_port_id::original
uint32_t original
Definition: rte_flow.h:1832
rte_flow_item_mpls_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
Definition: rte_flow.h:834
rte_flow_item_vlan::tci
rte_be16_t tci
Definition: rte_flow.h:612
rte_flow_item_ipv6_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
Definition: rte_flow.h:659
rte_flow_action_vf::original
uint32_t original
Definition: rte_flow.h:1805
rte_flow_query_count::hits_set
uint32_t hits_set
Definition: rte_flow.h:1734
RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_GENEVE
Definition: rte_flow.h:344
sctp_hdr
Definition: rte_sctp.h:26
tcp_hdr::src_port
uint16_t src_port
Definition: rte_tcp.h:27
rte_flow_item_vf::id
uint32_t id
Definition: rte_flow.h:468
rte_flow_action_phy_port::index
uint32_t index
Definition: rte_flow.h:1821
rte_flow_desc::attr
struct rte_flow_attr attr
Definition: rte_flow.h:2593
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
Definition: rte_flow.h:401
rte_flow_action_of_set_nw_ttl
Definition: rte_flow.h:1894
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
Definition: rte_flow.h:2156
rte_flow_action_set_ttl
Definition: rte_flow.h:2112
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
Definition: rte_flow.h:1432
rte_flow_item_arp_eth_ipv4::pln
uint8_t pln
Definition: rte_flow.h:983
rte_flow_item_gtp::teid
rte_be32_t teid
Definition: rte_flow.h:903
rte_udp.h
rte_flow_item_nvgre
Definition: rte_flow.h:799
rte_icmp.h
rte_flow_item_icmp6_nd_na::target_addr
uint8_t target_addr[16]
Definition: rte_flow.h:1080
rte_flow_action_raw_encap::preserve
uint8_t * preserve
Definition: rte_flow.h:2038
rte_flow_action_of_set_vlan_vid::vlan_vid
rte_be16_t vlan_vid
Definition: rte_flow.h:1915
RTE_FLOW_ITEM_TYPE_VF
@ RTE_FLOW_ITEM_TYPE_VF
Definition: rte_flow.h:173
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:1048
RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_SET_TTL
Definition: rte_flow.h:1633
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
Definition: rte_flow.h:393
rte_flow_item_port_id_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
Definition: rte_flow.h:530
rte_flow_action_vf::id
uint32_t id
Definition: rte_flow.h:1807
rte_flow_action_rss::func
enum rte_eth_hash_function func
Definition: rte_flow.h:1758
rte_flow_item_icmp6_nd_opt
Definition: rte_flow.h:1104
rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
Definition: rte_flow.h:637
RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
Definition: rte_flow.h:2354
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
Definition: rte_flow.h:1450
rte_flow_item_esp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
Definition: rte_flow.h:924
rte_flow_item_udp
Definition: rte_flow.h:695
rte_common.h
ipv6_hdr::src_addr
uint8_t src_addr[16]
Definition: rte_ip.h:354
RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ACTION_TYPE_COUNT
Definition: rte_flow.h:1344
rte_flow_item_gtp::msg_type
uint8_t msg_type
Definition: rte_flow.h:901
RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_IPV6
Definition: rte_flow.h:228
ether_addr::addr_bytes
uint8_t addr_bytes[ETHER_ADDR_LEN]
Definition: rte_ether.h:58
rte_flow_item_vf_mask
static const struct rte_flow_item_vf rte_flow_item_vf_mask
Definition: rte_flow.h:473
rte_arp.h
rte_flow_item_sctp
Definition: rte_flow.h:733
rte_flow_action_mark
Definition: rte_flow.h:1666
rte_flow_item_arp_eth_ipv4
Definition: rte_flow.h:979
RTE_FLOW_ITEM_TYPE_RAW
@ RTE_FLOW_ITEM_TYPE_RAW
Definition: rte_flow.h:200
rte_flow_item::mask
const void * mask
Definition: rte_flow.h:1242
rte_flow_conv_rule::actions
struct rte_flow_action * actions
Definition: rte_flow.h:2208
rte_flow_item_raw::length
uint16_t length
Definition: rte_flow.h:559
rte_flow_item_e_tag
Definition: rte_flow.h:774
rte_flow_item_meta_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
Definition: rte_flow.h:1178
RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_VOID
Definition: rte_flow.h:1285
rte_flow_action_meter::mtr_id
uint32_t mtr_id
Definition: rte_flow.h:1846
rte_flow_item_raw::pattern
const uint8_t * pattern
Definition: rte_flow.h:560
rte_flow_action_raw_decap::data
uint8_t * data
Definition: rte_flow.h:2058
rte_flow_error::message
const char * message
Definition: rte_flow.h:2185
rte_flow_item_port_id::id
uint32_t id
Definition: rte_flow.h:525
rte_flow_item_ipv6::hdr
struct ipv6_hdr hdr
Definition: rte_flow.h:654
rte_flow_item_vxlan_gpe::rsvd1
uint8_t rsvd1
Definition: rte_flow.h:964
rte_flow_item_fuzzy
Definition: rte_flow.h:877
RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
Definition: rte_flow.h:1546
rte_flow_item_icmp6_nd_na::rso_reserved
rte_be32_t rso_reserved
Definition: rte_flow.h:1079
RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:1325
rte_flow_item_mpls
Definition: rte_flow.h:824
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:2197
rte_flow_item_nvgre::c_k_s_rsvd0_ver
rte_be16_t c_k_s_rsvd0_ver
Definition: rte_flow.h:806
rte_flow_item_gre::c_rsvd0_ver
rte_be16_t c_rsvd0_ver
Definition: rte_flow.h:849
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
Definition: rte_flow.h:1566
rte_flow_query_count::hits
uint64_t hits
Definition: rte_flow.h:1737
rte_flow_item_meta
Definition: rte_flow.h:1172
rte_flow_conv_rule::attr
struct rte_flow_attr * attr
Definition: rte_flow.h:2200
rte_flow_item_gtp
Definition: rte_flow.h:893
RTE_FLOW_ITEM_TYPE_ANY
@ RTE_FLOW_ITEM_TYPE_ANY
Definition: rte_flow.h:153
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
Definition: rte_flow.h:409
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:2217
rte_flow_action_of_push_vlan::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:1905
RTE_FLOW_ITEM_TYPE_ESP
@ RTE_FLOW_ITEM_TYPE_ESP
Definition: rte_flow.h:337
RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
Definition: rte_flow.h:2167
rte_flow_error_type
rte_flow_error_type
Definition: rte_flow.h:2151
rte_flow_item_icmp6_nd_na::type
uint8_t type
Definition: rte_flow.h:1072
rte_flow_conv_rule::attr_ro
const struct rte_flow_attr * attr_ro
Definition: rte_flow.h:2199
rte_flow_attr
Definition: rte_flow.h:73
rte_tcp.h
rte_flow_query_count::bytes
uint64_t bytes
Definition: rte_flow.h:1738
rte_flow_item_tcp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
Definition: rte_flow.h:720
rte_flow_item_icmp6_nd_na::code
uint8_t code
Definition: rte_flow.h:1073
rte_flow_query_count::bytes_set
uint32_t bytes_set
Definition: rte_flow.h:1735
rte_flow_item_icmp6_nd_opt_tla_eth::tla
struct ether_addr tla
Definition: rte_flow.h:1156
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:1137
rte_flow_action_of_set_vlan_pcp
Definition: rte_flow.h:1924
rte_flow_item_tcp::hdr
struct tcp_hdr hdr
Definition: rte_flow.h:715
RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_PATTERN
Definition: rte_flow.h:2272
rte_flow_action_raw_decap
Definition: rte_flow.h:2057
RTE_STD_C11
#define RTE_STD_C11
Definition: rte_common.h:37
rte_flow_item_icmp
Definition: rte_flow.h:676
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
Definition: rte_flow.h:1523
rte_flow_action_set_ipv6
Definition: rte_flow.h:2088
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:1112
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
Definition: rte_flow.h:2158
rte_flow_action_of_pop_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:1935
RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
Definition: rte_flow.h:2163
RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_VXLAN
Definition: rte_flow.h:263
RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_MPLS
Definition: rte_flow.h:284
rte_flow_item_arp_eth_ipv4::tha
struct ether_addr tha
Definition: rte_flow.h:987
RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ITEM
Definition: rte_flow.h:2165
rte_flow_item_icmp6_nd_ns::code
uint8_t code
Definition: rte_flow.h:1050
rte_flow_desc::data
uint8_t data[]
Definition: rte_flow.h:2596
rte_flow_action_port_id::reserved
uint32_t reserved
Definition: rte_flow.h:1833
RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_DROP
Definition: rte_flow.h:1334
rte_flow_action_security::security_session
void * security_session
Definition: rte_flow.h:1875
rte_flow_destroy
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_MARK
Definition: rte_flow.h:1310
RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_PF
Definition: rte_flow.h:1361
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_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTIONS
Definition: rte_flow.h:2285
RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ACTION_NAME
Definition: rte_flow.h:2326
RTE_FLOW_CONV_OP_RULE
@ RTE_FLOW_CONV_OP_RULE
Definition: rte_flow.h:2298
rte_flow_item_vxlan_gpe::rsvd0
uint8_t rsvd0[2]
Definition: rte_flow.h:961
rte_flow_item_gre_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
Definition: rte_flow.h:855
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
Definition: rte_flow.h:969
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
Definition: rte_flow.h:1466
RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
Definition: rte_flow.h:1619
rte_flow_item_mark::id
uint32_t id
Definition: rte_flow.h:1202
rte_flow_item_icmp6_nd_ns::reserved
rte_be32_t reserved
Definition: rte_flow.h:1052
rte_flow_action_raw_encap::data
uint8_t * data
Definition: rte_flow.h:2037
RTE_FLOW_ACTION_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_PHY_PORT
Definition: rte_flow.h:1377
RTE_FLOW_CONV_OP_ATTR
@ RTE_FLOW_CONV_OP_ATTR
Definition: rte_flow.h:2235
RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_FLAG
Definition: rte_flow.h:1318
rte_flow_item_sctp::hdr
struct sctp_hdr hdr
Definition: rte_flow.h:734
ETHER_ADDR_LEN
#define ETHER_ADDR_LEN
Definition: rte_ether.h:26
rte_flow_action_mark::id
uint32_t id
Definition: rte_flow.h:1667
rte_flow_item_vxlan_gpe::flags
uint8_t flags
Definition: rte_flow.h:960
rte_flow_item_arp_eth_ipv4::hrd
rte_be16_t hrd
Definition: rte_flow.h:980
rte_flow_action_of_set_vlan_pcp::vlan_pcp
uint8_t vlan_pcp
Definition: rte_flow.h:1925
rte_flow_item_icmp6
Definition: rte_flow.h:1029
rte_flow_desc::actions
struct rte_flow_action * actions
Definition: rte_flow.h:2595
rte_flow_item_geneve_mask
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
Definition: rte_flow.h:949
rte_flow_item_icmp6_nd_opt_tla_eth::length
uint8_t length
Definition: rte_flow.h:1155
RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR
Definition: rte_flow.h:2160
RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
Definition: rte_flow.h:2164
rte_flow_item_arp_eth_ipv4::sha
struct ether_addr sha
Definition: rte_flow.h:985
rte_flow_item_raw::relative
uint32_t relative
Definition: rte_flow.h:554
rte_flow_action_of_set_mpls_ttl::mpls_ttl
uint8_t mpls_ttl
Definition: rte_flow.h:1885
rte_flow_item_icmp6_nd_opt_tla_eth
Definition: rte_flow.h:1153
rte_flow_item_arp_eth_ipv4::spa
rte_be32_t spa
Definition: rte_flow.h:986
RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_VLAN
Definition: rte_flow.h:214
rte_flow_action_rss::queue
const uint16_t * queue
Definition: rte_flow.h:1789
rte_flow_item_eth
Definition: rte_flow.h:587
rte_flow_conv_rule::pattern
struct rte_flow_item * pattern
Definition: rte_flow.h:2204
rte_flow_item_icmp6_nd_na
Definition: rte_flow.h:1071
rte_flow_item_raw::limit
uint16_t limit
Definition: rte_flow.h:558
tcp_hdr
Definition: rte_tcp.h:26
rte_flow_action_rss::key
const uint8_t * key
Definition: rte_flow.h:1788
rte_flow_item_ipv6
Definition: rte_flow.h:653
rte_flow_item_vf
Definition: rte_flow.h:467
rte_flow_error
Definition: rte_flow.h:2182
rte_flow_attr::reserved
uint32_t reserved
Definition: rte_flow.h:97
rte_flow_item_vxlan_gpe
Definition: rte_flow.h:959
rte_flow_action_rss::types
uint64_t types
Definition: rte_flow.h:1785
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
Definition: rte_flow.h:1474
rte_flow_item_icmp6_nd_ns::type
uint8_t type
Definition: rte_flow.h:1049
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
Definition: rte_flow.h:1019
rte_flow_item_icmp6::type
uint8_t type
Definition: rte_flow.h:1030
rte_flow_item_mpls::label_tc_s
uint8_t label_tc_s[3]
Definition: rte_flow.h:828
rte_flow_item_vxlan
Definition: rte_flow.h:752
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
Definition: rte_flow.h:1597
rte_flow_item_eth::src
struct ether_addr src
Definition: rte_flow.h:589
rte_flow_item_vlan
Definition: rte_flow.h:611
RTE_FLOW_ITEM_TYPE_ETH
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:207
rte_flow_action_rss::queue_num
uint32_t queue_num
Definition: rte_flow.h:1787
rte_flow_action_of_push_mpls::ethertype
rte_be16_t ethertype
Definition: rte_flow.h:1945
rte_flow_item_gtp::msg_len
rte_be16_t msg_len
Definition: rte_flow.h:902
RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_INVERT
Definition: rte_flow.h:145
RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_VOID
Definition: rte_flow.h:135
rte_flow_item_vxlan::rsvd0
uint8_t rsvd0[3]
Definition: rte_flow.h:754
rte_flow_action_phy_port::reserved
uint32_t reserved
Definition: rte_flow.h:1820
rte_flow_action_rss::key_len
uint32_t key_len
Definition: rte_flow.h:1786
rte_flow_action_of_pop_mpls
Definition: rte_flow.h:1934
rte_flow_action_port_id::id
uint32_t id
Definition: rte_flow.h:1834
rte_flow_attr::group
uint32_t group
Definition: rte_flow.h:74
rte_flow_item_e_tag_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
Definition: rte_flow.h:789
rte_flow_action_set_mac
Definition: rte_flow.h:2121
rte_flow_item_nvgre::flow_id
uint8_t flow_id
Definition: rte_flow.h:809
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
Definition: rte_flow.h:1482
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:555
rte_flow_item_vlan::inner_type
rte_be16_t inner_type
Definition: rte_flow.h:613
rte_flow_action_count::reserved
uint32_t reserved
Definition: rte_flow.h:1723
rte_flow_action_rss::level
uint32_t level
Definition: rte_flow.h:1784
rte_flow_item_phy_port_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
Definition: rte_flow.h:504
rte_flow_item_vxlan::vni
uint8_t vni[3]
Definition: rte_flow.h:755
rte_flow_item_icmp::hdr
struct icmp_hdr hdr
Definition: rte_flow.h:677
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:1059
RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
Definition: rte_flow.h:1293
RTE_FLOW_ITEM_TYPE_PHY_PORT
@ RTE_FLOW_ITEM_TYPE_PHY_PORT
Definition: rte_flow.h:183
esp_hdr
Definition: rte_esp.h:23
rte_flow_item_geneve::protocol
rte_be16_t protocol
Definition: rte_flow.h:942
rte_byteorder.h
rte_flow_item::last
const void * last
Definition: rte_flow.h:1241
RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
Definition: rte_flow.h:1408
rte_flow_item_icmp6_nd_opt_sla_eth
Definition: rte_flow.h:1128
rte_flow_item_vxlan_gpe::vni
uint8_t vni[3]
Definition: rte_flow.h:963
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
Definition: rte_flow.h:379
rte_flow_item_eth_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
Definition: rte_flow.h:595
rte_flow_action_of_set_mpls_ttl
Definition: rte_flow.h:1884
rte_flow_action_vf
Definition: rte_flow.h:1804
rte_flow_item_raw::reserved
uint32_t reserved
Definition: rte_flow.h:556
rte_flow_item_arp_eth_ipv4::tpa
rte_be32_t tpa
Definition: rte_flow.h:988
rte_flow_action_of_push_mpls
Definition: rte_flow.h:1944
RTE_FLOW_ITEM_TYPE_NVGRE
@ RTE_FLOW_ITEM_TYPE_NVGRE
Definition: rte_flow.h:277
rte_flow_action_jump
Definition: rte_flow.h:1682
rte_flow_item_gtp_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
Definition: rte_flow.h:908
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:1162
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
Definition: rte_flow.h:2159
RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
Definition: rte_flow.h:351
rte_flow_item_e_tag::epcp_edei_in_ecid_b
rte_be16_t epcp_edei_in_ecid_b
Definition: rte_flow.h:779
rte_flow_item_e_tag::ecid_e
uint8_t ecid_e
Definition: rte_flow.h:783
rte_flow_query_count::reserved
uint32_t reserved
Definition: rte_flow.h:1736
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
Definition: rte_flow.h:1576
RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_RSS
Definition: rte_flow.h:1353
rte_flow_item_type
rte_flow_item_type
Definition: rte_flow.h:116
RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ACTION
Definition: rte_flow.h:2168
RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
Definition: rte_flow.h:358
rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
Definition: rte_flow.h:1037