We have the same issue with DPDK. We cannot receive any packets which are tagged with 0x88a8. Any other is ok. So it seems that they are filtrated inside your firmware? Furthermore, we can see that they are received but then disappear somewhere; For example, this statistics from registers:
rx_good_packets = 127 rx_good_bytes = 98087 rx_unicast_packets = 127 rx_unknown_protocol_packets = 127 rx_size_65_to_127_packets = 6 rx_size_128_to_255_packets = 12 rx_size_256_to_511_packets = 24 rx_size_512_to_1023_packets = 43 rx_size_1024_to_1522_packets = 42
But DPDK don't received any packets, so I can't get them to analyse.
The same APP is working perfectly now with 82599 cards. Please clarify this situation and possible fix dates cause we have our project stalling due to this issue.
Here is an option you can try if you want to make changes to the device registers:
1) It is recommended you try this first with J3 Jumper installed on Intel NIC as GL_SWT_L2TAGCTRL is RO to PF driver.
2) Then perform the following:
-Clear bit 1 of PRT_L2TAGSEN.ENABLE.
-Set GL_SWT_L2TAGCTRL.ETHERTYPE to 0x88A8. Note that this is a global setting for the device. All ports must use the same TPID.
3) you may refer to the registers in v2.5 of the datasheet below:
Hope this could be of help.
We tried your advice but nothing changed.
First of all, we tested without Jumper installed cause we could rewrite register. Additionally, we tested with installed Jumper.
We cleared bit 1 (which represents STAG (?) in register PRT_L2TAGSEN.ENABLE), so there bit 3 only was set (Inner VLAN).
As you mentioned we changed Ethertype value for Outer Vlan (?) from 0x8100 to 0x88a8. And that didn't help again.
As we see, bytes increase on each packet but amount of packets is 0:
0 packets input, 23824395988 bytes, 3 input errors
0 64 bytes size packets, 10145870 65-127 bytes size packets
0 128-255 bytes size packets, 0 256-511 bytes size packets
10016066 512-1023 bytes size packets, 0 1024-1522 bytes size packets
0 local MAC error, 1 remote MAC errors
0 no buffer (RX queue is full), 0 no buffer alloc (RX buffer allocation failure)
Should notice, we have Intel X710DA4 card. But I think there is no difference. And we use DPDK 16.07.
And one more question, can we completely disable any firmware handling of any tags?
We have played a little with registers and found the correct way to enable handling. It is neccessary to clear bit 1 in PRT_L2TAGSEN.ENABLE (for STag handling). It was completely dependent on the function of register write call. We used incorrect function for pci register writing using admin queue instead of direct register writing. So now it's working as you noticed.
Thanks for your help!
wb, (from Intel)
I just received a customer survey email from Intel regarding this issue and the fact that this issue has been resolved? What?! I have a hard time believing that this issue has been resolved. At best, it has been recreated, verified, and a workaround has been confirmed. The ability to process VLANs that have an S-TAG TPID is fundamental. If the only way to process these TPIDs is to use some register hacks that you provided, then we have a very different opinion of a functional device.
Please provide us the status on the real fix for this issue and the timeline for such a fix.