net/ice/base: init boost TCAM table for parser
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index 2562e34..76ad53f 100644 (file)
@@ -505,23 +505,11 @@ struct mlx5_flow_dv_tag_resource {
        uint32_t tag_id; /**< Tag ID. */
 };
 
-/*
- * Number of modification commands.
- * The maximal actions amount in FW is some constant, and it is 16 in the
- * latest releases. In some old releases, it will be limited to 8.
- * Since there is no interface to query the capacity, the maximal value should
- * be used to allow PMD to create the flow. The validation will be done in the
- * lower driver layer or FW. A failure will be returned if exceeds the maximal
- * supported actions number on the root table.
- * On non-root tables, there is no limitation, but 32 is enough right now.
- */
-#define MLX5_MAX_MODIFY_NUM                    32
-#define MLX5_ROOT_TBL_MODIFY_NUM               16
-
 /* Modify resource structure */
 struct mlx5_flow_dv_modify_hdr_resource {
        struct mlx5_list_entry entry;
        void *action; /**< Modify header action object. */
+       uint32_t idx;
        /* Key area for hash list matching: */
        uint8_t ft_type; /**< Flow table type, Rx or Tx. */
        uint8_t actions_num; /**< Number of modification actions. */
@@ -1221,7 +1209,7 @@ typedef int (*mlx5_flow_validate_mtr_acts_t)
                         struct rte_flow_attr *attr,
                         bool *is_rss,
                         uint8_t *domain_bitmap,
-                        bool *is_def_policy,
+                        uint8_t *policy_mode,
                         struct rte_mtr_error *error);
 typedef int (*mlx5_flow_create_mtr_acts_t)
                        (struct rte_eth_dev *dev,
@@ -1534,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,
@@ -1583,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);
@@ -1702,7 +1692,7 @@ int mlx5_flow_validate_mtr_acts(struct rte_eth_dev *dev,
                        struct rte_flow_attr *attr,
                        bool *is_rss,
                        uint8_t *domain_bitmap,
-                       bool *is_def_policy,
+                       uint8_t *policy_mode,
                        struct rte_mtr_error *error);
 void mlx5_flow_destroy_mtr_acts(struct rte_eth_dev *dev,
                      struct mlx5_flow_meter_policy *mtr_policy);