kern/83011: nge vlans broken

Yuriy N. Shkandybin jura at networks.ru
Fri Jul 8 14:01:01 GMT 2005


I've invistigated that m_head mbuf doesn't have M_VLANTAG when performing 
VLAN_OUTPUT()

next diff for /usr/src/sys/net/if_vlan_var.h make it work:
--- 1.h Fri Jul  8 17:34:31 2005
+++ if_vlan_var.h       Fri Jul  8 17:35:53 2005
@@ -111,7 +111,7 @@
 } while (0)

 #define        VLAN_OUTPUT_TAG(_ifp, _m)                               \
-       ((_m)->m_flags & M_VLANTAG ?                            \
+       ((_ifp)->if_nvlans != 0 ?                               \
                m_tag_locate((_m), MTAG_VLAN, MTAG_VLAN_TAG, NULL) : NULL)
 #define        VLAN_TAG_VALUE(_mt)     (*(u_int *)((_mt)+1))
 #endif /* _KERNEL */


Actually this is partial backout ru@ commit
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/if_vlan_var.h.diff?r1=1.20&r2=1.21&f=h

Since it's not adressed to if_nge itself, so it's possible same problems for 
another interfaces.

Jura




More information about the freebsd-net mailing list