I have an XL710 VSI that is running in a VF. I have added a vlan filter for a tag of '2' to my vsi using the I40E_VIRTCHNL_OP_ADD_VLAN message. The vsi is the default one created by the PF driver when the VF is created. When an appropriately tagged frame is sent to the VF (eg a ping with vlan tag '2'), the receive descriptor shows the tag correctly in the L2TAG1 field and the L2TAG1P bit is set. I want the vlan tag to be stripped from the frame. However it is not. A dump of the vsi shows the port_vlan_flags field (which was created from the ADD_VSI command) to contain 0x3. This would seem to equate to byte 12, bits 0:4 of the VLAN handling section of ADD_VSI command (see 22.214.171.124.4.1 Table 7-80 of the Datasheet). 0x3 indicates
0:1 = 3 - allow all packets
3:4 = 0 - show VLAN, DEI and UP in descriptor
Is there something more I need to do to achieve stripping on the tag?
Good day. Further checking ,how did you manage to know the VLAN is not stripped? When using TCP DUMP to say that the VLAN tag isn't stripped that
doesn't mean anything – tcpdump works at the upper network layer and retrieves VLAN information from meta data in the skb. So it will
display VLAN tag information.
Hope this clarifies.
On our application that implements the VF, I used gdb to halt the VF driver after it had retrieved a frame from the Rcv ring and I dumped the contents of the frame. The VLAN was in the dumped frame.
Hope this helps.