Date: Mon, 10 Apr 2023 12:39:00 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 270736] if_epair(4): Unexpected double tagged ICMP requests Message-ID: <bug-270736-227-HisAc7Q96T@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-270736-227@https.bugs.freebsd.org/bugzilla/> References: <bug-270736-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270736 Kristof Provost <kp@freebsd.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kp@freebsd.org Assignee|bugs@FreeBSD.org |kp@freebsd.org Status|New |Open --- Comment #1 from Kristof Provost <kp@freebsd.org> --- 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.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-270736-227-HisAc7Q96T>
