https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270736
Kristof Provost <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] Assignee|[email protected] |[email protected] Status|New |Open --- Comment #1 from Kristof Provost <[email protected]> --- That's a fun one. It looks like the problem is actually on the receive side, in that we don't clear the M_VLANTAG from m->m_flags and end up thinking there's an extra vlan on the RX side. if_epair already has some code to remove tags and such when handing a packet over to the receive path, but it didn't clear the vlan information. (Arguably we could also clear it on the network stack side, but this is pretty specific to if_epair.) I'm testing this now: diff --git a/sys/net/if_epair.c b/sys/net/if_epair.c index aeed993249f5..21c0c598e8d4 100644 --- a/sys/net/if_epair.c +++ b/sys/net/if_epair.c @@ -140,6 +140,11 @@ epair_clear_mbuf(struct mbuf *m) m->m_pkthdr.csum_flags &= ~CSUM_SND_TAG; } + /* Clear vlan information. */ + m->m_flags &= ~M_VLANTAG; + if (m->m_flags & M_PKTHDR) + m->m_pkthdr.ether_vtag = 0; + m_tag_delete_nonpersistent(m); } -- You are receiving this mail because: You are the assignee for the bug.
