net/mlx5: add C++ include guard to public header
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index 8c131d6..7fec79a 100644 (file)
@@ -697,7 +697,6 @@ struct mlx5_flow_handle {
        void *drv_flow; /**< pointer to driver flow object. */
        uint32_t split_flow_id:27; /**< Sub flow unique match flow id. */
        uint32_t is_meter_flow_id:1; /**< Indicate if flow_id is for meter. */
-       uint32_t mark:1; /**< Metadata rxq mark flag. */
        uint32_t fate_action:3; /**< Fate action type. */
        uint32_t flex_item; /**< referenced Flex Item bitmask. */
        union {
@@ -1108,6 +1107,7 @@ struct mlx5_flow_workspace {
        /* The final policy when meter policy is hierarchy. */
        uint32_t skip_matcher_reg:1;
        /* Indicates if need to skip matcher register in translate. */
+       uint32_t mark:1; /* Indicates if flow contains mark action. */
 };
 
 struct mlx5_flow_split_info {
@@ -1450,6 +1450,20 @@ flow_aso_ct_get_by_idx(struct rte_eth_dev *dev, uint32_t own_idx)
        return ct;
 }
 
+static inline uint16_t
+mlx5_translate_tunnel_etypes(uint64_t pattern_flags)
+{
+       if (pattern_flags & MLX5_FLOW_LAYER_INNER_L2)
+               return RTE_ETHER_TYPE_TEB;
+       else if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV4)
+               return RTE_ETHER_TYPE_IPV4;
+       else if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV6)
+               return RTE_ETHER_TYPE_IPV6;
+       else if (pattern_flags & MLX5_FLOW_LAYER_MPLS)
+               return RTE_ETHER_TYPE_MPLS;
+       return 0;
+}
+
 int mlx5_flow_group_to_table(struct rte_eth_dev *dev,
                             const struct mlx5_flow_tunnel *tunnel,
                             uint32_t group, uint32_t *table,