Author: np
Date: Fri Aug 24 21:48:13 2018
New Revision: 338305
URL: https://svnweb.freebsd.org/changeset/base/338305

Log:
  Unbreak VLANs after r337943.
  
  ether_set_pcp should not be called from ether_output_frame for VLAN
  interfaces -- the vid + pcp will be inserted during vlan_transmit in
  that case. r337943 sets the VLAN's ifnet's if_pcp to a proper PCP value
  and this led to double encapsulation (once with vid 0 and second time
  with vid+pcp).
  
  PR: 230794
  Reviewed by:  kib@
  Approved by:  re@ (gjb@)
  Sponsored by: Chelsio Communications
  Differential Revision:        https://reviews.freebsd.org/D16887

Modified:
  head/sys/net/if_ethersubr.c

Modified: head/sys/net/if_ethersubr.c
==============================================================================
--- head/sys/net/if_ethersubr.c Fri Aug 24 21:08:05 2018        (r338304)
+++ head/sys/net/if_ethersubr.c Fri Aug 24 21:48:13 2018        (r338305)
@@ -461,7 +461,8 @@ ether_output_frame(struct ifnet *ifp, struct mbuf *m)
        uint8_t pcp;
 
        pcp = ifp->if_pcp;
-       if (pcp != IFNET_PCP_NONE && !ether_set_pcp(&m, ifp, pcp))
+       if (pcp != IFNET_PCP_NONE && ifp->if_type != IFT_L2VLAN &&
+           !ether_set_pcp(&m, ifp, pcp))
                return (0);
 
        if (PFIL_HOOKED(&V_link_pfil_hook)) {
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to