Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 May 2023 07:49:06 GMT
From:      Kristof Provost <kp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 0229fab2fe0e - main - e1000: fix VLAN 0
Message-ID:  <202305110749.34B7n6og099984@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=0229fab2fe0eed843ebec98fd31b7d49bb2e8438

commit 0229fab2fe0eed843ebec98fd31b7d49bb2e8438
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2023-05-10 16:26:29 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-05-11 07:48:50 +0000

    e1000: fix VLAN 0
    
    VLAN 0 essentially means "Treat as untagged, but with priority bits",
    and is used by some ISPs.
    
    On igb/em interfaces we did not receive packets with VLAN tag 0 unless
    vlanhwfilter was disabled.
    
    This can be fixed by explicitly listing VLAN 0 in the hardware VLAN
    filter (VFTA). Do this from em_setup_vlan_hw_support(), where we already
    (re-)write the VFTA.
    
    Reviewed by:    kbowling
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision:  https://reviews.freebsd.org/D40046
---
 sys/dev/e1000/if_em.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 89186767bc60..0b664b155872 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -3681,8 +3681,10 @@ em_setup_vlan_hw_support(if_ctx_t ctx)
 	/*
 	 * A soft reset zero's out the VFTA, so
 	 * we need to repopulate it now.
+	 * We also insert VLAN 0 in the filter list, so we pass VLAN 0 tagged
+	 * traffic through. This will write the entire table.
 	 */
-	em_if_vlan_filter_write(sc);
+	em_if_vlan_register(ctx, 0);
 
 	/* Enable the Filter Table */
 	em_if_vlan_filter_enable(sc);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305110749.34B7n6og099984>