Hi all,

It seems that the "Receive classification filters" defined in X710 datasheet 
chapter 7.1 couldn't the parse the IP header carried in dot1q packets.

Here is our setup


     VM1
    SRIOV   OPENSTACK
  NIC0 P1 P2
      /\ 
       | double tag openstack need extra tag to find tenant
      TOR
      |
      \/
IP carried in 802.1q packets(single tag)
     

The VM1 is created from the Windriver openstack running on this server. The 
port P1 and P2 on NIC0 are attached to VM1 using SRIOV.


Here is the ip link result on P1, we can see the 2011 is assigned to vf 1 as 
tenent vlan id. 
10: enp131s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP 
mode DEFAULT qlen 1000
    link/ether 3c:fd:fe:2f:ca:40 brd ff:ff:ff:ff:ff:ff
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 1 MAC fa:16:3e:88:10:71, vlan 2011, spoof checking on, link-state enable
    vf 2 MAC 00:00:00:00:00:00, spoof checking on, link-state auto


When dot1q packets are received on vf 1 P1, they are all assigned to queue 0 
and recognized as L2_ETHER packets.

port 0/queue 0: received 1 packets
  src=FA:16:3E:5E:EC:DA - dst=FA:16:3E:77:4A:4D - type=0x8100 - length=102 - 
nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER_VLAN L3_IPV4  - l2_len=18 
- l3_len=20 - Receive queue=0x0
  ol_flags: PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD

If removing the dot1q encapulation, the nic can recognize the ip header and do 
the rss based on destination and source address.


This bug http://patchwork.dpdk.org/patch/15765/ seems related my issue. Because 
our dpdk application running on vm, I changed the ort and pit reg manually on 
host. After the change, x710 still can’t find the ipv4 header in qinq packets.

We are using the dpdk 17.05 now.

Ruinan Hu
[email protected]
Software Engineer

Reply via email to