X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_prm.h;h=651006bd3900ae94f6b4ff5eae54bb4aa43cc320;hb=b7e5f647e24b52b3f6c73dd3be56f8907abedc70;hp=c17ba66c7407883a20245b097d4ebb83656d8072;hpb=5e61bcdd24293cee804e5cd17f6907cfe5adb514;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h index c17ba66c74..651006bd39 100644 --- a/drivers/net/mlx5/mlx5_prm.h +++ b/drivers/net/mlx5/mlx5_prm.h @@ -226,6 +226,9 @@ /* Default mark value used when none is provided. */ #define MLX5_FLOW_MARK_DEFAULT 0xffffff +/* Default mark mask for metadata legacy mode. */ +#define MLX5_FLOW_MARK_MASK 0xffffff + /* Maximum number of DS in WQE. Limited by 6-bit field. */ #define MLX5_DSEG_MAX 63 @@ -354,12 +357,14 @@ struct mlx5_cqe { uint16_t hdr_type_etc; uint16_t vlan_info; uint8_t lro_num_seg; - uint8_t rsvd3[11]; + uint8_t rsvd3[3]; + uint32_t flow_table_metadata; + uint8_t rsvd4[4]; uint32_t byte_cnt; uint64_t timestamp; uint32_t sop_drop_qpn; uint16_t wqe_counter; - uint8_t rsvd4; + uint8_t rsvd5; uint8_t op_own; }; @@ -1740,6 +1745,38 @@ struct mlx5_ifc_create_sq_in_bits { struct mlx5_ifc_sqc_bits ctx; }; +enum { + MLX5_FLOW_METER_OBJ_MODIFY_FIELD_ACTIVE = (1ULL << 0), + MLX5_FLOW_METER_OBJ_MODIFY_FIELD_CBS = (1ULL << 1), + MLX5_FLOW_METER_OBJ_MODIFY_FIELD_CIR = (1ULL << 2), + MLX5_FLOW_METER_OBJ_MODIFY_FIELD_EBS = (1ULL << 3), + MLX5_FLOW_METER_OBJ_MODIFY_FIELD_EIR = (1ULL << 4), +}; + +struct mlx5_ifc_flow_meter_parameters_bits { + u8 valid[0x1]; // 00h + u8 bucket_overflow[0x1]; + u8 start_color[0x2]; + u8 both_buckets_on_green[0x1]; + u8 meter_mode[0x2]; + u8 reserved_at_1[0x19]; + u8 reserved_at_2[0x20]; //04h + u8 reserved_at_3[0x3]; + u8 cbs_exponent[0x5]; // 08h + u8 cbs_mantissa[0x8]; + u8 reserved_at_4[0x3]; + u8 cir_exponent[0x5]; + u8 cir_mantissa[0x8]; + u8 reserved_at_5[0x20]; // 0Ch + u8 reserved_at_6[0x3]; + u8 ebs_exponent[0x5]; // 10h + u8 ebs_mantissa[0x8]; + u8 reserved_at_7[0x3]; + u8 eir_exponent[0x5]; + u8 eir_mantissa[0x8]; + u8 reserved_at_8[0x60]; // 14h-1Ch +}; + /* CQE format mask. */ #define MLX5E_CQE_FORMAT_MASK 0xc @@ -1763,6 +1800,19 @@ struct mlx5_mini_cqe8 { uint32_t byte_cnt; }; +/* srTCM PRM flow meter parameters. */ +enum { + MLX5_FLOW_COLOR_RED = 0, + MLX5_FLOW_COLOR_YELLOW, + MLX5_FLOW_COLOR_GREEN, + MLX5_FLOW_COLOR_UNDEFINED, +}; + +/* Maximum value of srTCM metering parameters. */ +#define MLX5_SRTCM_CBS_MAX (0xFF * (1ULL << 0x1F)) +#define MLX5_SRTCM_CIR_MAX (8 * (1ULL << 30) * 0xFF) +#define MLX5_SRTCM_EBS_MAX 0 + /** * Convert a user mark to flow mark. *