mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH net-next v7 0/5] rtnetlink: dump link-layer multicast addresses
@ 2026-09-24  1:15 Yuyang Huang
  2026-09-24  1:15 ` [PATCH net-next v7 1/5] netlink: specs: rt-addr: fix the type of target-netnsid Yuyang Huang
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Yuyang Huang @ 2026-09-24  1:15 UTC (permalink / raw)
  To: Yuyang Huang
  Cc: Aleksandr Loktionov, Andrew Lunn, David S. Miller, David Ahern,
	Donald Hunter, Eric Dumazet, Ido Schimmel, Jacob Keller,
	Jakub Kicinski, Kuniyuki Iwashima, Nicolas Dichtel,
	Nikolaos Gkarlis, Paolo Abeni, Sabrina Dubroca, Shuah Khan,
	Simon Horman, Stanislav Fomichev, Willem de Bruijn, linux-kernel,
	linux-kselftest, netdev

"ip maddr show" prints link-layer, IPv4 and IPv6 entries. The IPv4 and
IPv6 ones come over netlink today, with IFA_MC_USERS for the user count.
The link-layer list, dev->mc, is only exported via /proc/net/dev_mcast,
so iproute2 and other users still parse procfs for it.

This series adds the AF_PACKET family to RTM_GETMULTICAST so that the
link-layer multicast addresses are reported the same way. Patch 3 dumps
dev->mc in the ifaddrmsg format of the IPv4 and IPv6 dumps: IFA_MULTICAST
carries the address, IFA_MC_USERS the reference count and a new
IFA_F_GLOBAL flag marks entries added explicitly, the "static" column of
/proc/net/dev_mcast. ifa_index limits the dump to one device and
IFA_TARGET_NETNSID selects another netns. Patch 2 adds a generation
counter for dev->mc changes so a multi-part dump reports
NLM_F_DUMP_INTR like the IPv4 and IPv6 ones. Patches 1 and 4 update the
rt-addr spec and patch 5 adds a selftest.

AF_PACKET dumps returned -EOPNOTSUPP before, so iproute2 can keep the
procfs fallback for older kernels. The iproute2 side is ready and will
be posted once this is in.

Changes in v7:
- Add a per netns generation counter bumped on dev->mc changes and fold
  it into cb->seq, dev_base_seq alone did not cover the dumped entries
- Sample cb->seq under the address lock of each device and again when a
  dump round ends, so the NLMSG_DONE check sees a change too
- Drop the Reviewed-by tag of patch 3 after these changes

Changes in v6:
- Move the dump to net/core/dev_addr_lists.c next to the dev->mc
  helpers
- Stamp cb->seq from dev_base_seq and check dump consistency
- Let an unexpected dump error propagate instead of skipping
- Check for an address only present in the peer netns in the
  target-netnsid selftest, the peer and local ifindex can be equal
- Document the ifa-index filter and the zero header fields in the spec

Changes in v5:
- Filter the target-netnsid selftest dump by ifa-index, a new netns
  also contains the fallback tunnel devices

Changes in v4:
- Reset the resume offset when the device the dump stopped at is gone
- Use a tracked netns reference (put_net_track)
- Say ifa-family must be set in the spec doc, drop the AF_UNSPEC remark
- Close the netlink socket and guard the checks in the selftest
- Drop the Fixes tag

Changes in v3:
- Report the static bit as a new IFA_F_GLOBAL flag in IFA_FLAGS
  instead of IFA_F_PERMANENT
- Support IFA_TARGET_NETNSID and test it
- Describe global_use accurately, it is also set by dev_mc_add_excl()
- Fix the target-netnsid type in the rt-addr spec, as its own patch

Changes in v2:
- Always validate the request header, not only with strict checking
- Use a single "with" statement in the selftest (ruff)

Yuyang Huang (5):
  netlink: specs: rt-addr: fix the type of target-netnsid
  net: add a generation counter for dev->mc changes
  net: add AF_PACKET multicast dumps
  netlink: specs: rt-addr: document AF_PACKET multicast dumps
  selftests: net: test AF_PACKET multicast dumps

 Documentation/netlink/specs/rt-addr.yaml |  19 +-
 include/linux/netdevice.h                |   4 +
 include/net/net_namespace.h              |   1 +
 include/uapi/linux/if_addr.h             |   1 +
 net/core/dev_addr_lists.c                | 216 +++++++++++++++++++++++
 net/core/rtnetlink.c                     |   2 +
 tools/testing/selftests/net/rtnetlink.py |  73 +++++++-
 7 files changed, 311 insertions(+), 5 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-24  1:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-24  1:15 [PATCH net-next v7 0/5] rtnetlink: dump link-layer multicast addresses Yuyang Huang
2026-09-24  1:15 ` [PATCH net-next v7 1/5] netlink: specs: rt-addr: fix the type of target-netnsid Yuyang Huang
2026-09-24  1:15 ` [PATCH net-next v7 2/5] net: add a generation counter for dev->mc changes Yuyang Huang
2026-09-24  1:15 ` [PATCH net-next v7 3/5] net: add AF_PACKET multicast dumps Yuyang Huang
2026-09-24  1:15 ` [PATCH net-next v7 4/5] netlink: specs: rt-addr: document " Yuyang Huang
2026-09-24  1:15 ` [PATCH net-next v7 5/5] selftests: net: test " Yuyang Huang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®