tools: ynl: Print xsk-features from the sample
authorStanislav Fomichev <sdf@google.com>
Mon, 27 Nov 2023 19:03:09 +0000 (11:03 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 29 Nov 2023 22:59:40 +0000 (14:59 -0800)
In a similar fashion we do for the other bit masks.
Fix mask parsing (>= vs >) while we are it.

Signed-off-by: Stanislav Fomichev <sdf@google.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20231127190319.1190813-4-sdf@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/net/ynl/samples/netdev.c

index b828225daad041136524013e2595fae285f636a1..591b90e21890c32310c46fd900cd13c8c13f66f3 100644 (file)
@@ -33,17 +33,23 @@ static void netdev_print_device(struct netdev_dev_get_rsp *d, unsigned int op)
                return;
 
        printf("xdp-features (%llx):", d->xdp_features);
-       for (int i = 0; d->xdp_features > 1U << i; i++) {
+       for (int i = 0; d->xdp_features >= 1U << i; i++) {
                if (d->xdp_features & (1U << i))
                        printf(" %s", netdev_xdp_act_str(1 << i));
        }
 
        printf(" xdp-rx-metadata-features (%llx):", d->xdp_rx_metadata_features);
-       for (int i = 0; d->xdp_rx_metadata_features > 1U << i; i++) {
+       for (int i = 0; d->xdp_rx_metadata_features >= 1U << i; i++) {
                if (d->xdp_rx_metadata_features & (1U << i))
                        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++) {
+               if (d->xsk_features & (1U << i))
+                       printf(" %s", netdev_xsk_flags_str(1 << i));
+       }
+
        printf(" xdp-zc-max-segs=%u", d->xdp_zc_max_segs);
 
        name = netdev_op_str(op);