summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2026-09-22 18:10:57 +0000
committerJakub Kicinski <kuba@kernel.org>2026-09-28 16:42:57 -0700
commit0e75889596aa6edcf884b0079299213213fc9611 (patch)
treec519f44f6db0047200d692bbf86267b34c52ea17 /tools/lib/python/kdoc
parentd10b7b93c5e781e1fdf159d072a787583229387b (diff)
vxlan: vnifilter: signal interrupted RTM_GETTUNNEL dumps
vxlan_vnifilter_dump() walks all vxlan devices of a netns, and for each one walks vg->vni_list. Both cursors are plain ordinals stored in cb->args[0] and cb->args[1], and RTNL is released between dump skbs. A concurrent __vxlan_vni_add_list(), which inserts sorted by VNI, __vxlan_vni_del_list(), or an in-place group update in vxlan_vni_update() (which splits or merges coalesced VNI ranges) shifts the second cursor, duplicating or skipping entries. Unregistering a vxlan device shifts the first one, and the partially dumped device is then skipped altogether by the "if (idx < s_idx)" test, silently losing the rest of its VNIs. Add a per-netns generation counter, bumped whenever the set of vxlan devices in the netns or any vni_list changes, and feed it to nl_dump_check_consistent() so that user space gets NLM_F_DUMP_INTR and can retry, as vxlan_mdb_dump() already does. The counter is keyed on dev_net(vxlan->dev) rather than vxlan->net, because the dump enumerates devices with for_each_netdev_rcu() in the netns the netdevice lives in, which differs from the packet i/o netns when the device was created with a separate link netns. Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260922181102.3989489-4-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc')
0 files changed, 0 insertions, 0 deletions