In vlan_transmit the IFCAP_VLAN_HWTAGGING cases uses sc->sc_tag + (prio << EVL_PRIO_BITS) while the non IFCAP_VLAN_HWTAGGING cases uses sc->sc_tag | (prio << EVL_PRIO_BITS)
Lets use the same logic in both cases. IMO using '|' is more correct than '+' so switch to that. -- :wq Claudio Index: net/if_vlan.c =================================================================== RCS file: /cvs/src/sys/net/if_vlan.c,v retrieving revision 1.210 diff -u -p -r1.210 if_vlan.c --- net/if_vlan.c 10 Aug 2022 09:01:48 -0000 1.210 +++ net/if_vlan.c 2 Feb 2023 11:41:03 -0000 @@ -270,7 +270,7 @@ vlan_transmit(struct vlan_softc *sc, str */ if ((ifp0->if_capabilities & IFCAP_VLAN_HWTAGGING) && (sc->sc_type == ETHERTYPE_VLAN)) { - m->m_pkthdr.ether_vtag = sc->sc_tag + + m->m_pkthdr.ether_vtag = sc->sc_tag | (prio << EVL_PRIO_BITS); m->m_flags |= M_VLANTAG; } else {