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.
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?
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.
But if that is the case, why are vlan tag stripping in hardware an option in the Intel nic datasheet?
Chapter 18.104.22.168, 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.
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.
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:
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
RX bytes:56160 (54.8 KiB) TX bytes:59596 (58.1 KiB)
the guest driver is:
# ethtool -i eth0
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.