On Thursday, 1 October 2020 09:59:35 CEST Sabrina Dubroca wrote:
device has the same ifindex as its link. Let's use
the presence of a
ndo_get_iflink operation, rather than the value it returns, to detect
a device without a link.
There wasn't any activity in this patchset since a while, it doesn't apply
anymore and the assumptions made here doesn't seem to be reflect the current
situation in the kernel. See commit 6c1f41afc1db ("batman-adv: Don't expect
inter-netns unique iflink indices"):
But only checking for
dev->netdev_ops->ndo_get_iflink is also not an option
because ipoib_get_iflink implements it even when it sometimes returns an
iflink != ifindex and sometimes iflink == ifindex. The caller must
therefore make sure itself to check both netns and iflink + ifindex for
equality. Only when they are equal, a "physical" interface was detected
which should stop the traversal. On the other hand, vxcan_get_iflink can
also return 0 in case there was currently no valid peer. In this case, it
is still necessary to stop.
It would would be nice when the situation would be better but the proposed
patches don't solve it. So I will mark the two patches as "Rejected" (from
"Changes requested") in batadv's patchwork. It is not meant as sign of
disapproval of someone working in this area to improve the situation - I just
don't want to wait for the v2  anymore.