Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 08 Feb 2023 19:53:58 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 269418] ice(4): strips VLAN headers with netmap
Message-ID:  <bug-269418-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D269418

            Bug ID: 269418
           Summary: ice(4): strips VLAN headers with netmap
           Product: Base System
           Version: 12.4-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: brian90013@gmail.com

Hello,

I am testing the E810 NIC on FreeBSD 12.4 using netmap and observe VLAN hea=
ders
are stripped from incoming packets. I have -vlanhwtag set on the interface
(though below I show why this doesn't matter). I tested this scenario with =
the
same server, OS, and capture file using the e1000, ixgbe, and ixl drivers a=
nd
all three kept the VLAN headers when using netmap with -vlanhwtag set on the
interface.

A quick look at ice_set_default_vsi_ctx() shows
ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH is set in all cases. There are no
conditionals using IFCAP_VLAN_HWTAGGING in the ice driver. I would expect t=
he
code to check for that capability and set ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHI=
NG
if -vlanhwtag like ixl does in ixl_initialize_vsi().

I tried adding a conditional check but ran into the next issue.
ixl_initialize_vsi() is called from ixl_if_init() so it reinitializes the V=
LAN
setting every time iflib_if_ioctl() is run. On the ice driver,
ice_initialize_vsi() is called from ice_if_attach_post() and ice_rebuild() =
but
not ice_if_init(). So changing the VLAN capabilities using ifconfig doesn't
appear to change the driver settings.

I would like the ice driver to preserve VLAN headers when using netmap just
like the other Intel iflib drivers. I have experimented with adding a call =
to
ice_initialize_vsi() inside ice_if_init(), but there are other changes need=
ed
and I am looking for a solution with no side effects. Thank you for your ti=
me
and your help!

--=20
You are receiving this mail because:
You are the assignee for the bug.=



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