* Martin Pieuchot <[email protected]> [03.11.2015 17:55]:
> I'm not sure it applies on 5.8 though...
Nope, but I found the following changes to be sufficient on 5.8. It just
keeps the vlan tagged packets away from the bridge.
Index: net/if.c
===================================================================
RCS file: /cvs/src/sys/net/if.c,v
retrieving revision 1.357
diff -u -p -u -r1.357 if.c
--- net/if.c 13 Aug 2015 07:19:58 -0000 1.357
+++ net/if.c 4 Nov 2015 10:35:07 -0000
@@ -432,7 +432,7 @@ if_enqueue(struct ifnet *ifp, struct mbu
unsigned short mflags;
#if NBRIDGE > 0
- if (ifp->if_bridgeport && (m->m_flags & M_PROTO1) == 0)
+ if (ifp->if_bridgeport && (m->m_flags & (M_PROTO1 | M_VLANTAG)) == 0)
return (bridge_output(ifp, m, NULL, NULL));
m->m_flags &= ~M_PROTO1; /* Loop prevention */
#endif
@@ -522,7 +522,8 @@ if_input_process(void *xmq)
}
#if NBRIDGE > 0
- if (ifp->if_bridgeport && (m->m_flags & M_PROTO1) == 0) {
+ if (ifp->if_bridgeport &&
+ (m->m_flags & (M_PROTO1 | M_VLANTAG)) == 0) {
m = bridge_input(ifp, m);
if (m == NULL)
continue;