Re: [PATCH net-next v10 4/6] net: add AF_PACKET multicast dumps

From: Nicolas Dichtel

Date: Fri Oct 09 2026 - 05:58:00 EST


Le 07/10/2026 à 13:58, Yuyang Huang a écrit :
> RTM_GETMULTICAST dumps IPv4 and IPv6 multicast group memberships, but
> the device multicast list (dev->mc) is only available through
> /proc/net/dev_mcast, so "ip maddr show" still has to parse procfs for
> its link-layer entries.
>
> Handle RTM_GETMULTICAST dumps with ifa_family set to AF_PACKET next to
> the dev->mc helpers in dev_addr_lists.c and report every entry of
> dev->mc in the existing ifaddrmsg format:
>
> - IFA_MULTICAST carries the raw link-layer address
> - IFA_MC_USERS carries the entry reference count
> - IFA_F_GLOBAL in IFA_FLAGS reports netdev_hw_addr::global_use, set
> by dev_mc_add_global() (SIOCADDMULTI) and dev_mc_add_excl()
> ("bridge fdb add ... self"), i.e. entries added explicitly rather
> than by a protocol join. This is the static column of
> /proc/net/dev_mcast
> - ifa_scope is RT_SCOPE_LINK
>
> This covers every column of /proc/net/dev_mcast. AF_PACKET is the
> family iproute2 already uses for link-layer addresses ("ip -0").
>
> The default FDB dump also walks dev->mc, but only for Ethernet devices
> and only if the driver uses it, vxlan for example does not, and it has
> no users count or global_use bit. Extending it would change "bridge fdb
> show" output and add NDA_* attributes.
>
> Requests are always validated, there are no legacy users: prefixlen,
> flags and scope must be zero, ifa_index selects one device and
> IFA_TARGET_NETNSID is the only attribute accepted. The dump runs under
> RCU and netif_addr_lock_bh() without RTNL. After each round cb->seq is
> set from the dev->mc generation counter and dev_base_seq and checked
> like rtnl_dump_ifinfo() does, so an entry added or removed since the
> previous round sets NLM_F_DUMP_INTR.
>
> Signed-off-by: Yuyang Huang <sigefriedhyy@xxxxxxxxx>
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>