Subject: Re: [xdp-hints] [PATCH bpf-next v2 8/8] selftests/bpf: Simple program to dump XDP RX metadata

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Wed, 23 Nov 2022 15:26:50 +0100

Stanislav Fomichev <[email-masked]> writes:

> +static int rxq_num(const char *ifname)
> +{
> +	struct ethtool_channels ch = {
> +		.cmd = ETHTOOL_GCHANNELS,
> +	};
> +
> +	struct ifreq ifr = {
> +		.ifr_data = (void *)&ch,
> +	};
> +	strcpy(ifr.ifr_name, ifname);
> +	int fd, ret;
> +
> +	fd = socket(AF_UNIX, SOCK_DGRAM, 0);
> +	if (fd < 0)
> +		error(-1, errno, "socket");
> +
> +	ret = ioctl(fd, SIOCETHTOOL, &ifr);
> +	if (ret < 0)
> +		error(-1, errno, "socket");
> +
> +	close(fd);
> +
> +	return ch.rx_count;
> +}

mlx5 uses 'combined' channels, so this returns 0. Changing it to just:

return ch.rx_count ?: ch.combined_count; 

works though :)

-Toke