Ethernet Products
Determine ramifications of Intel® Ethernet products and technologies
4811 Discussions

Strip vlan tag on receiving packets (in hardware)

TPede2
Beginner
4,241 Views

Hi.

I want to strip the vlan tags on all receiving 802.1q packets in hardware. I'm using the Intel 82599 10Gigabit Ethernet Controller, and from what I have found out this can be done by modifying bits, like RXDCTL.VME. Is this correct? If so, where can I find the header files containing the bits I need to modify on my Ubuntu (I'm guessing on a default location)?

Or can this be done using IPMI?

All help appreciated.

0 Kudos
15 Replies
st4
New Contributor III
1,688 Views

Hi nuflowt,

Thank you for the post. I will check on this.

rgds,

wb

0 Kudos
st4
New Contributor III
1,688 Views

Hi Nuflowt,

Good day. I need additional information to check, please confirm if you are trying to strip the VLAN for a given VF (that is in SR-IOV mode) or trying to strip the VLAN tags for the host traffic?

Thanks,

wb

0 Kudos
TPede2
Beginner
1,688 Views

I am not using SR-IOV mode. All traffic received at the host (server) coming from a VLAN must have their VLAN tags stripped in hw before sending the packets to the next layer.

The 82599 datasheet explains that changing the value of IXGBE_RXDCTL_VME in the driver header file ixgbe_type.h from 0x40000000 to 0x1b would do the trick, but when i do this, compile and install the driver, nothing happens. It doesn't work.

Thanks,

nuflowt

0 Kudos
st4
New Contributor III
1,688 Views

Hi nuflowt,

Thank you for the clarification. I will check on this.

rgds,

wb

0 Kudos
st4
New Contributor III
1,688 Views

Hi Nuflowt,

Here is the update hopefully can clarify your concern. Stripping VLAN tags by the hardware will not work. Network stack will get confused and will not deliver the packets to correct entity. Typically a receiving station has to participate in a VLAN. Network stack in the OS keeps track of which VLAN is in use and frames with correct VALN tags are being received/ transmitted. So if the NIC hardware in a receiving station start stripping VLAN tags then how would OS Network stack know which interface the packet belongs to.

Can you provide more detail what you are trying to accomplish in this network?

Thanks,

wb

0 Kudos
TPede2
Beginner
1,688 Views

The NIC is attached to a network monitor, and is therefore not part of any VLANs, or network transmission in general. VLAN tags are causing trouble with the cooperation between some of the analyzing tools, and must be stripped before reaching any software. In regards to performance, stripping in the OS is not an option.

Thank you,

Nuflowt

0 Kudos
st4
New Contributor III
1,688 Views

Hi nuflowt,

Thank you for the information.

rgds,

wb

0 Kudos
st4
New Contributor III
1,688 Views

Hi Nuflowt,

It's not possible to strip VLAN tags for the arriving packets in hardware since this will confuse operating system's network stack and none of the packets will be

delivered to the intended destination.

rgds,

wb

0 Kudos
TPede2
Beginner
1,688 Views

But if that is the case, why are vlan tag stripping in hardware an option in the Intel nic datasheet?

http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf

 

Chapter 7.4.3.2, page 382.

The NIC is only recieving a copy of the network traffic (mirroring), and the packets will reach its destination independent of what is done here.

Regards,

Nuflowt

0 Kudos
st4
New Contributor III
1,688 Views

Hi nuflowt,

Thank you for the additional information. I will check on this.

rgds,

wb

0 Kudos
st4
New Contributor III
1,688 Views

Hi Nuflowt,

With regards the VLAN tags can be stripped for arriving ethernet frames, this functionality has not been tested for non IOV mode. VLAN stripping only make logical sense in IOV mode, where each VF is assigned a VLAN tag and on transmit Hardware inserts a VLAN tag and on receive hardware strips the VLAN tag. VM/VF is not aware of it's traffic being tagged. Intel 82599 drivers only use this functionality in IOV mode. You may look at our open source Linux driver to see how VLAN tagging/stripping is being implemented and try to experiment with your own driver

Hope this clarifies.

rgds,

wb

0 Kudos
fluo3
Beginner
1,688 Views

Hi,

I have a issue with SR-IOV vlan, I want to know how to stripe vlan on guest layer, the vlan has pass to host layer as below

ip link show ens1f0:

...

vf 60 MAC fa:16:3e:3e:09:39, vlan 202, spoof checking on, link-state auto

on guest the interface like below:

# ifconfig

eth0 Link encap:Ethernet HWaddr FA:16:3E:3E:09:39

inet addr:xx.xx.xx.xx Bcast:xx.xx.xx.xx Mask:255.255.224.0

inet6 addr: fe80::f816:3eff:fe3e:939/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:936 errors:0 dropped:0 overruns:0 frame:0

TX packets:1272 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:56160 (54.8 KiB) TX bytes:59596 (58.1 KiB)

the guest driver is:

# ethtool -i eth0

driver: rte_ixgbevf_pmd

version:

firmware-version:

bus-info: 0000:00:07.0

supports-statistics: yes

supports-test: no

supports-eeprom-access: no

supports-register-dump: no

supports-priv-flags: no

my current problem is the host send package with vlan 202 to guest, but the guest can't recognize vlan 202, so I think guest driver need to stripe the vlan, right?

would you please help to give a solution, thanks a lot.

0 Kudos
st4
New Contributor III
1,688 Views

Hi Frankluo,

Let me check on this.

rgds,

wb

 

0 Kudos
st4
New Contributor III
1,688 Views
0 Kudos
fluo3
Beginner
1,688 Views

thanks, its useful for me and I will try to fixed it follow this guide.

0 Kudos
Reply