Subject: Re: [PATCH bpf-next v4 03/11] tools: ynl: Print xsk-features from the sample

From: Stanislav Fomichev <[email-masked]>
Date: Mon, 23 Oct 2023 10:27:30 -0700

On 10/20, Jakub Kicinski wrote:
> On Thu, 19 Oct 2023 10:49:36 -0700 Stanislav Fomichev wrote:
> > Regenerate the userspace specs and print xsk-features bitmask.
> 
> I'm afraid you regenerated in previous patch already :]
> Perhaps we should add an easy-to-use flag to ynl-regen to skip tools/ ?

Oops, leftover :-(

I do find it useful that we now regenerate everything, so not sure the
flag is needed (I'm probably missing the intent). I hope we eventually can
drop those generated files altogether from the tree and generate everything
during the build.

> > diff --git a/tools/net/ynl/samples/netdev.c b/tools/net/ynl/samples/netdev.c
> > index b828225daad0..da7c2848f773 100644
> > --- a/tools/net/ynl/samples/netdev.c
> > +++ b/tools/net/ynl/samples/netdev.c
> > @@ -44,6 +44,12 @@ static void netdev_print_device(struct netdev_dev_get_rsp *d, unsigned int op)
> >  			printf(" %s", netdev_xdp_rx_metadata_str(1 << i));
> >  	}
> >  
> > +	printf(" xsk-features (%llx):", d->xsk_features);
> > +	for (int i = 0; d->xsk_features > 1U << i; i++) {
> 
> Shouldn't this be >= ?

Oh, good catch, will fix the other ones as well. But this is subtle and
still mostly works during my tests.

For bits 1 and 2 we get 3 and 'd->xsk_features > 1U << i' is always
true for both 1 and 2.