Subject: Re: [PATCH net v2 6/8] veth: take into account device reconfiguration for xdp_features flag

From: Martin KaFai Lau <[email-masked]>
Date: Wed, 5 Apr 2023 17:56:45 -0700

On 3/9/23 4:25 AM, Lorenzo Bianconi wrote:
> +static void veth_set_xdp_features(struct net_device *dev)
> +{
> +	struct veth_priv *priv = netdev_priv(dev);
> +	struct net_device *peer;
> +
> +	peer = rcu_dereference(priv->peer);
> +	if (peer && peer->real_num_tx_queues <= dev->real_num_rx_queues) {
> +		xdp_features_t val = NETDEV_XDP_ACT_BASIC |
> +				     NETDEV_XDP_ACT_REDIRECT |
> +				     NETDEV_XDP_ACT_RX_SG;
> +
> +		if (priv->_xdp_prog || veth_gro_requested(dev))
> +			val |= NETDEV_XDP_ACT_NDO_XMIT |
> +			       NETDEV_XDP_ACT_NDO_XMIT_SG;

This broke the xdp_do_redirect selftest. The bpf CI is consistently failing at:

test_xdp_do_redirect:FAIL:veth_src query_opts.feature_flags unexpected veth_src 
query_opts.feature_flags: actual 35 != expected 103

Please address it asap.