ethdev: add namespace
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index 3724293..4a16f30 100644 (file)
@@ -18,6 +18,9 @@
 
 #include "mlx5.h"
 
+/* E-Switch Manager port, used for rte_flow_item_port_id. */
+#define MLX5_PORT_ESW_MGR UINT32_MAX
+
 /* Private rte flow items. */
 enum mlx5_rte_flow_item_type {
        MLX5_RTE_FLOW_ITEM_TYPE_END = INT_MIN,
@@ -328,18 +331,18 @@ enum mlx5_feature_name {
 
 /* Valid layer type for IPV4 RSS. */
 #define MLX5_IPV4_LAYER_TYPES \
-       (ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 | \
-        ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV4_UDP | \
-        ETH_RSS_NONFRAG_IPV4_OTHER)
+       (RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_FRAG_IPV4 | \
+        RTE_ETH_RSS_NONFRAG_IPV4_TCP | RTE_ETH_RSS_NONFRAG_IPV4_UDP | \
+        RTE_ETH_RSS_NONFRAG_IPV4_OTHER)
 
 /* IBV hash source bits  for IPV4. */
 #define MLX5_IPV4_IBV_RX_HASH (IBV_RX_HASH_SRC_IPV4 | IBV_RX_HASH_DST_IPV4)
 
 /* Valid layer type for IPV6 RSS. */
 #define MLX5_IPV6_LAYER_TYPES \
-       (ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_TCP | \
-        ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_IPV6_EX  | ETH_RSS_IPV6_TCP_EX | \
-        ETH_RSS_IPV6_UDP_EX | ETH_RSS_NONFRAG_IPV6_OTHER)
+       (RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_FRAG_IPV6 | RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
+        RTE_ETH_RSS_NONFRAG_IPV6_UDP | RTE_ETH_RSS_IPV6_EX  | RTE_ETH_RSS_IPV6_TCP_EX | \
+        RTE_ETH_RSS_IPV6_UDP_EX | RTE_ETH_RSS_NONFRAG_IPV6_OTHER)
 
 /* IBV hash source bits  for IPV6. */
 #define MLX5_IPV6_IBV_RX_HASH (IBV_RX_HASH_SRC_IPV6 | IBV_RX_HASH_DST_IPV6)
@@ -397,9 +400,6 @@ enum mlx5_feature_name {
 /* GTP extension header flag. */
 #define MLX5_GTP_EXT_HEADER_FLAG 4
 
-/* GTP extension header max PDU type value. */
-#define MLX5_GTP_EXT_MAX_PDU_TYPE 15
-
 /* GTP extension header PDU type shift. */
 #define MLX5_GTP_PDU_TYPE_SHIFT(a) ((a) << 4)
 
@@ -1431,8 +1431,8 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,
 uint32_t mlx5_get_lowest_priority(struct rte_eth_dev *dev,
                                        const struct rte_flow_attr *attr);
 uint16_t mlx5_get_matcher_priority(struct rte_eth_dev *dev,
-                                    const struct rte_flow_attr *attr,
-                                    uint32_t subpriority);
+                                  const struct rte_flow_attr *attr,
+                                  uint32_t subpriority, bool external);
 int mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
                                     enum mlx5_feature_name feature,
                                     uint32_t id,
@@ -1522,6 +1522,7 @@ int mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
                                 struct rte_eth_dev *dev,
                                 struct rte_flow_error *error);
 int mlx5_flow_validate_item_vxlan(struct rte_eth_dev *dev,
+                                 uint16_t udp_dport,
                                  const struct rte_flow_item *item,
                                  uint64_t item_flags,
                                  const struct rte_flow_attr *attr,
@@ -1571,6 +1572,7 @@ struct mlx5_flow_meter_sub_policy *mlx5_flow_meter_sub_policy_rss_prepare
 void mlx5_flow_destroy_sub_policy_with_rxq(struct rte_eth_dev *dev,
                struct mlx5_flow_meter_policy *mtr_policy);
 int mlx5_flow_dv_discover_counter_offset_support(struct rte_eth_dev *dev);
+int mlx5_flow_discover_dr_action_support(struct rte_eth_dev *dev);
 int mlx5_action_handle_flush(struct rte_eth_dev *dev);
 void mlx5_release_tunnel_hub(struct mlx5_dev_ctx_shared *sh, uint16_t port_id);
 int mlx5_alloc_tunnel_hub(struct mlx5_dev_ctx_shared *sh);