Thank you, Ferruh. You have been most helpful.
On Mon, 31 Oct 2022, Ferruh Yigit wrote:
On 10/31/2022 6:46 PM, Ivan Malov wrote:
Hi!
We have a hard time figuring out what the API contract of
RX_OFFLOAD_VLAN_EXTEND might be. The best educated guess
we can make is that the feature might have something to
do with identifying VLAN packets and extracting TCI
without stripping the tags from incoming packets.
Is this understanding correct?
You see, things aren't helped by the offload bit having
almost no commentary. Such could've shed light on its
meaning. Perhaps this gap in documentation should
be addressed somehow. Any opinions?
Thank you.
Hi Ivan,
It is legacy from ixgbe driver, you can find more details on the ixgbe
(82599) datasheet [1].
RX_OFFLOAD_VLAN_EXTEND is *like*, QinQ but not, that is why we have
'QINQ_STRIP' offload.
And RX_OFFLOAD_VLAN_EXTEND is more a configuration option, briefly you can
ignore it.
But in detail that is to configure device in a mode that it knows that
received packets always has at least one VLAN tag, I assume it is for a case
that some in the middle networking device inserts/requires VLAN tags. But
optionally packet can have two VLAN tags. But as far as I can see this is not
for to strip the VLAN tag or to filter packet based on it, this is just to
configure device for this environment.
[1] copy/paste from a public datasheet
(http://iommu.com/datasheets/ixgbe-datasheets/82599-datasheet-v3-4.pdf), not
sure if this is up to date version, but I think it is OK for this context:
Double VLAN and Single VLAN Support
The 82599 supports a mode where all received and sent packets have at least
one VLAN tag in addition to the regular tagging that might optionally be
added. In this document, when a packet carries two VLAN headers, the first
header is referred to as an outer VLAN and the second header as an inner VLAN
header (as listed in the table that follows). This mode is used for systems
where the near end switch adds the outer VLAN header containing switching
information. This mode is enabled by the following configuration:
• This mode is activated by setting the DMATXCTL.GDV and the Extended VLAN
bit in the CTRL_EXT register.
• The EtherType of the VLAN tag used for the additional VLAN is defined in
the VET EXT field in the EXVET register.