net/mlx5: add C++ include guard to public header
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index 1f54649..7fec79a 100644 (file)
@@ -598,7 +598,7 @@ struct mlx5_flow_tbl_data_entry {
        const struct mlx5_flow_tunnel *tunnel;
        uint32_t group_id;
        uint32_t external:1;
-       uint32_t tunnel_offload:1; /* Tunnel offlod table or not. */
+       uint32_t tunnel_offload:1; /* Tunnel offload table or not. */
        uint32_t is_egress:1; /**< Egress table. */
        uint32_t is_transfer:1; /**< Transfer table. */
        uint32_t dummy:1; /**<  DR table. */
@@ -696,8 +696,7 @@ struct mlx5_flow_handle {
        /**< Bit-fields of present layers, see MLX5_FLOW_LAYER_*. */
        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; /**< Indate if flow_id is for meter. */
-       uint32_t mark:1; /**< Metadate rxq mark flag. */
+       uint32_t is_meter_flow_id:1; /**< Indicate if flow_id is for meter. */
        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,