Commit a33682e4 authored by Lama Kayal's avatar Lama Kayal Committed by Saeed Mahameed
Browse files

net/mlx5e: Expose catastrophic steering error counters



Add generated_pkt_steering_fail and handled_pkt_steering_fail to devlink
heatlth reporter.
generated_pkt_steering_fail indicates the number of packets dropped due to
illegal steering operation within the vport steering domain.
handled_pkt_steering_fail indicates the number of packets dropped due to
illegal steering operation, originated by the vport.

Also, update devlink reporter functionality documentation with the newly
exposed counters.

Signed-off-by: default avatarLama Kayal <lkayal@nvidia.com>
Reviewed-by: default avatarRahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 6ec0b55e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -290,6 +290,13 @@ Description of the vnic counters:
- nic_receive_steering_discard
        number of packets that completed RX flow
        steering but were discarded due to a mismatch in flow table.
- generated_pkt_steering_fail
	number of packets generated by the VNIC experiencing unexpected steering
	failure (at any point in steering flow).
- handled_pkt_steering_fail
	number of packets handled by the VNIC experiencing unexpected steering
	failure (at any point in steering flow owned by the VNIC, including the FDB
	for the eswitch owner).

User commands examples:

+10 −0
Original line number Diff line number Diff line
@@ -76,6 +76,16 @@ int mlx5_reporter_vnic_diagnose_counters(struct mlx5_core_dev *dev,
	if (err)
		return err;

	err = devlink_fmsg_u64_pair_put(fmsg, "generated_pkt_steering_fail",
					VNIC_ENV_GET64(&vnic, generated_pkt_steering_fail));
	if (err)
		return err;

	err = devlink_fmsg_u64_pair_put(fmsg, "handled_pkt_steering_fail",
					VNIC_ENV_GET64(&vnic, handled_pkt_steering_fail));
	if (err)
		return err;

	err = devlink_fmsg_obj_nest_end(fmsg);
	if (err)
		return err;
+10 −2
Original line number Diff line number Diff line
@@ -1755,7 +1755,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
	u8         reserved_at_328[0x2];
	u8	   relaxed_ordering_read[0x1];
	u8         log_max_pd[0x5];
	u8         reserved_at_330[0x9];
	u8         reserved_at_330[0x7];
	u8         vnic_env_cnt_steering_fail[0x1];
	u8         reserved_at_338[0x1];
	u8         q_counter_aggregation[0x1];
	u8         q_counter_other_vport[0x1];
	u8         log_max_xrcd[0x5];
@@ -3673,7 +3675,13 @@ struct mlx5_ifc_vnic_diagnostic_statistics_bits {

	u8         eth_wqe_too_small[0x20];

	u8         reserved_at_220[0xdc0];
	u8         reserved_at_220[0xc0];

	u8         generated_pkt_steering_fail[0x40];

	u8         handled_pkt_steering_fail[0x40];

	u8         reserved_at_360[0xc80];
};

struct mlx5_ifc_traffic_counter_bits {