mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-03 12:35:02 +00:00
Back out rev. 1.107 because it introduced as many problems
as it tried to solve: - it smuggled hidden 802.1q details into otherwise protocol-neutral code; - it put an important code consistency check under DEBUG, which was never defined by anyone but a developer hacking this file for the moment; - lastly, the former bcopy() call had been correct as long as the "dead" code was there. (A new version of the fix for tag of -1 to come in the next commit.) Agreed by: qingli
This commit is contained in:
parent
66ebe2912f
commit
db8b5973e7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=160950
@ -917,15 +917,21 @@ vlan_input(struct ifnet *ifp, struct mbuf *m)
|
||||
__func__, ntohs(evl->evl_encap_proto)));
|
||||
|
||||
tag = EVL_VLANOFTAG(ntohs(evl->evl_tag));
|
||||
|
||||
/*
|
||||
* Restore the original ethertype. We'll remove
|
||||
* the encapsulation after we've found the vlan
|
||||
* interface corresponding to the tag.
|
||||
*/
|
||||
evl->evl_encap_proto = evl->evl_proto;
|
||||
break;
|
||||
default:
|
||||
#ifdef DEBUG
|
||||
/* XXX rate limit? */
|
||||
if_printf(ifp, "unsupported if_type %u", ifp->if_type);
|
||||
tag = (uint16_t) -1;
|
||||
#ifdef INVARIANTS
|
||||
panic("%s: unsupported if_type (%u)",
|
||||
__func__, ifp->if_type);
|
||||
#endif
|
||||
m_freem(m);
|
||||
ifp->if_noproto++; /* XXX? */
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -946,12 +952,12 @@ vlan_input(struct ifnet *ifp, struct mbuf *m)
|
||||
if (mtag == NULL) {
|
||||
/*
|
||||
* Packet had an in-line encapsulation header;
|
||||
* remove it. Note that we leave the type field
|
||||
* unchanged; we only copy up the mac addresses.
|
||||
* remove it. The original header has already
|
||||
* been fixed up above.
|
||||
*/
|
||||
bcopy(mtod(m, caddr_t),
|
||||
mtod(m, caddr_t) + ETHER_VLAN_ENCAP_LEN,
|
||||
ETHER_HDR_LEN - ETHER_TYPE_LEN);
|
||||
ETHER_HDR_LEN);
|
||||
m_adj(m, ETHER_VLAN_ENCAP_LEN);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user