Hi, as documented below, pairs in bridges can lead to a loop.
I looked at "fixing" it but came to the conclusion a) there is no satisfying way with mbuf flags/tags to prevent the loop, b) it would limit the use cases of pair(4) for network testing in many ways, c) the bridge loop causes heavy load but does not lock the system (our stack is already preventing this), and d) it can be documented - so it is a feature, and not a bug ;) Thoughts? OK? Reyk Index: share/man/man4/pair.4 =================================================================== RCS file: /cvs/src/share/man/man4/pair.4,v retrieving revision 1.3 diff -u -p -u -p -r1.3 pair.4 --- share/man/man4/pair.4 24 Oct 2015 15:46:10 -0000 1.3 +++ share/man/man4/pair.4 30 Oct 2015 10:09:34 -0000 @@ -47,6 +47,25 @@ Set up a pair of interfaces where each o # ifconfig pair1 patch pair2 # route -T 1 exec ping 10.1.1.2 .Ed +.Pp +When adding multiple +.Nm +to multiple +.Xr bridge 4 +interfaces, it is possible to create a loop; +the system load will go up while it is busy sending packets from one +bridge to another and back. +By design, the driver does not prevent such loops by itself, but it is +possible to use the Spanning Tree Protocol (STP) to detect and remove +loops in the virtual network topology: +.Bd -literal -offset indent +# ifconfig pair0 up +# ifconfig pair1 rdomain 1 patch pair0 up +# ifconfig pair2 up +# ifconfig pair3 rdomain 1 patch pair2 up +# ifconfig bridge0 add pair0 add pair2 stp pair0 stp pair2 up +# ifconfig bridge1 add pair1 add pair3 stp pair1 stp pair3 up +.Ed .Sh SEE ALSO .Xr bridge 4 , .Xr inet 4 ,
