Created attachment 224454 [details]
When for some reason (including legitimate) sending manycast (in my case DHCP reply broadcast) packet to one of multiple links of ng_bridge fails (for example eiface is administratively brought down) the original packet isn't send via first found link. This makes no sense for me as other links are tolerated for errors. Attached patch changes this behavior as send the packet to all links and keeps the logic to return the last seen error.
Thank you for pointing out this issue.
I chosed a different and more general solution.
May you please check this patch?
I don't see any change in patch semantics, it's just rephrasing so it should works. Will provide feedback when have time to test your patch.
Made some basic testing with the new patch, no issues were observed so far.
I'll wait for reviews from others before commiting it.
A commit in branch main references this bug:
Author: Lutz Donnerhacke <donner@FreeBSD.org>
AuthorDate: 2021-04-27 07:49:50 +0000
Commit: Lutz Donnerhacke <donner@FreeBSD.org>
CommitDate: 2021-05-13 19:49:20 +0000
netgraph/ng_bridge: Handle send errors during loop handling
If sending out a packet fails during the loop over all links, the
allocated memory is leaked and not all links receive a copy. This
patch fixes those problems, clarifies a premature abort of the loop,
and fixes a minory style(9) bug.
Submitted by: Dancho Penev
Tested by: Dancho Penev
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D30008
sys/netgraph/ng_bridge.c | 55 ++++++++++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 25 deletions(-)
^Triage: Re-open pending MFC