Message ID | 20240226214019.1255242-1-kuba@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | b6c65eb20ffa8e3bd89f551427dbeee2876d72ca |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] tools: ynl: fix handling of multiple mcast groups | expand |
Jakub Kicinski <kuba@kernel.org> writes: > We never increment the group number iterator, so all groups > get recorded into index 0 of the mcast_groups[] array. > > As a result YNL can only handle using the last group. > For example using the "netdev" sample on kernel with > page pool commands results in: > > $ ./samples/netdev > YNL: Multicast group 'mgmt' not found > > Most families have only one multicast group, so this hasn't > been noticed. Plus perhaps developers usually test the last > group which would have worked. > > Fixes: 86878f14d71a ("tools: ynl: user space helpers") > Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Le 26/02/2024 à 22:40, Jakub Kicinski a écrit : > We never increment the group number iterator, so all groups > get recorded into index 0 of the mcast_groups[] array. > > As a result YNL can only handle using the last group. > For example using the "netdev" sample on kernel with > page pool commands results in: > > $ ./samples/netdev > YNL: Multicast group 'mgmt' not found > > Most families have only one multicast group, so this hasn't > been noticed. Plus perhaps developers usually test the last > group which would have worked. > > Fixes: 86878f14d71a ("tools: ynl: user space helpers") > Signed-off-by: Jakub Kicinski <kuba@kernel.org> Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 26 Feb 2024 13:40:18 -0800 you wrote: > We never increment the group number iterator, so all groups > get recorded into index 0 of the mcast_groups[] array. > > As a result YNL can only handle using the last group. > For example using the "netdev" sample on kernel with > page pool commands results in: > > [...] Here is the summary with links: - [net] tools: ynl: fix handling of multiple mcast groups https://git.kernel.org/netdev/net/c/b6c65eb20ffa You are awesome, thank you!
diff --git a/tools/net/ynl/lib/ynl.c b/tools/net/ynl/lib/ynl.c index c2ba72f68028..6bc95f07dc8f 100644 --- a/tools/net/ynl/lib/ynl.c +++ b/tools/net/ynl/lib/ynl.c @@ -585,6 +585,7 @@ ynl_get_family_info_mcast(struct ynl_sock *ys, const struct nlattr *mcasts) ys->mcast_groups[i].name[GENL_NAMSIZ - 1] = 0; } } + i++; } return 0;
We never increment the group number iterator, so all groups get recorded into index 0 of the mcast_groups[] array. As a result YNL can only handle using the last group. For example using the "netdev" sample on kernel with page pool commands results in: $ ./samples/netdev YNL: Multicast group 'mgmt' not found Most families have only one multicast group, so this hasn't been noticed. Plus perhaps developers usually test the last group which would have worked. Fixes: 86878f14d71a ("tools: ynl: user space helpers") Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- CC: nicolas.dichtel@6wind.com CC: willemb@google.com --- tools/net/ynl/lib/ynl.c | 1 + 1 file changed, 1 insertion(+)