-
Notifications
You must be signed in to change notification settings - Fork 682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pcap++ test issue related to the RSS hash function 0x41 #158
Comments
Hi, @sabhishepalc
About 3: I don't know the PcapPP way to provide this arguments with same reason as 4. But i gave to you the DPDK functions to search in PcapPP code base, be curious abot it. |
Thank you for the prompt response, the first one where I specified the command, my question was: "If my command is correct, the way I have specified the port in the cmd args". Digressing from the topic a bit but it's about the port only, if you could help: With this command I can get the list of DPDK enabled ports:root@ubuntu:~/PcapPlusPlus/Examples/DpdkExample-FilterTraffic# Bin/DpdkTrafficFilter -l
|
@sabhishepalc
And please can You use Preview button. It is realy hard to understand what You are writing with all this GitHub formatting. Thanks. |
Thank you it worked fine for me regarding this. Sorry for the bad formatting, I will preview from here on: root@ubuntu:~/PcapPlusPlus/Examples/DpdkExample-FilterTraffic# Bin/DpdkTrafficFilter -d 0 So, I wil go ahead and look into DPDK functions which you suggested and can we let this thread be open till the weekend, for future queries regarding the same. |
@sabhishepalc
Regarding issue management in this repo ask @seladb. I am contributor not maintainer. |
I think @echo-Mike answered most of your questions (thanks @echo-Mike !), please let me know if you have further questions |
Well, thank you guys for helping me out, I am trying to check the live traffic (Mainly ARP), I am trying to run the tutorial example: Tutorial-LiveTraffic run snippet: root@ubuntu: @seladb and @echo-Mike : Can you tell me what am I missing here? Thanks. |
@sabhishepalc
If it has none, then you forgot to build your DPDK distribution |
Ohh, it worked nicely, I have one confusion regarding the igb_uio driver. PcapPlusPlus setup DPDK script Network devices using DPDK-compatible driver 0000:04:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' drv=uio_pci_generic unused=vfio-pci Network devices using kernel driver 0000:01:00.0 '82574L Gigabit Network Connection' if=eth0 drv=e1000e unused=vfio-pci,uio_pci_generic Active Other network devices Crypto devices using DPDK-compatible driver Crypto devices using kernel driver Other crypto devices Running the following command: root@ubuntu:~/PcapPlusPlus/Examples/DpdkExample-FilterTraffic# Bin/DpdkTrafficFilter -l My query: "Is igb_uio required to run the packetplusplus or it can run with the current binding driver: "uio_pci_generic" ? Thanks for all the help. |
@sabhishepalc |
@sabhishepalc |
as @echo-Mike said, currently PcapPlusPlus only works with igb_uio driver. Please let me know if "uio_pci_generic" is a critical requirement for you. If it is then can check if this option is feasible |
Thanks for the quick response. PcapPlusPlus setup DPDK script
Network devices using DPDK-compatible driver 0000:04:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' drv=igb_uio unused=vfio-pci,uio_pci_generic Network devices using kernel driver 0000:01:00.0 '82574L Gigabit Network Connection' if=eth0 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic Active Other network devices Crypto devices using DPDK-compatible driver Crypto devices using kernel driver Other crypto devices **Setup completed.As shidaoxuan mentioned, we have commented the RSS hash function of 0x41 and used the RSS hash of 0x4 root@ubuntu:~/PcapPlusPlus# lsmod | grep vfio ./DpdkTrafficFilter -d 0 -c 7 -f /root/PcapPlusPlus/ -m 1023 Successfully called rte_eth_dev_configure for device [DPDK_0] with 4 RX queues and 4 TX queues Request you to shed light on the above. root@ubuntu:~/PcapPlusPlus# grep HugePages /proc/meminfo We have added a few debug comments to see if the code is hitting specific points. Thanks in advance. @seladb @echo-Mike @shidaoxuan |
Something is wrong with the RX queues configuration, it doesn't make sense that your device has more than 300 RX queues. Could you please try to get a stack trace of the segmentation fault? |
I believe this can help: root@ubuntu:~/PcapPlusPlus/Examples/DpdkExample-FilterTraffic# valgrind -v --tool=memcheck --leak-check=full --show-reachable=yes Bin/DpdkTrafficFilter -d 0 -f /root/PcapPlusPlus/ -r UDP Will this one work? |
I'm not sure where I can see the stack trace that caused the segmentation fault. Could you please point me to it? |
The issue is very close to this one : http://mails.dpdk.org/archives/dev/2014-December/009234.html Ran the leak-check on valgrind: root@ubuntu:~/PcapPlusPlus# valgrind -v --leak-check=yes --leak-check=full --show-leak-kinds=all Examples/DpdkExample-FilterTraffic/Bin/DpdkTrafficFilter -d 0 -f /root/PcapPlusPlus/ -r UDP ========================================================= EAL: PCI device 0000:04:00.1 on NUMA socket -1 Please let me know if you need any other kind of trace. |
I think running the app with Also, did you try to run the examples shipped with dpdk on that machine? do they work? |
(gdb) r Successfully called rte_eth_dev_configure for device [DPDK_0] with 4 RX queues and 4 TX queues Program received signal SIGSEGV, Segmentation fault. ======================================================== Network devices using DPDK-compatible driver 0000:04:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' drv=igb_uio unused=vfio-pci,uio_pci_generic Network devices using kernel driver 0000:01:00.0 '82574L Gigabit Network Connection' if=eth0 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic Active root@ubuntu:/home/administrator/dpdk-stable-16.11.1/examples/ethtool/ethtool-app/ethtool-app/x86_64-native-linuxapp-gcc# ./ethtool -l 6-11 ..... Here, the driver for the DPDK port is net_i40e but the devbind status shows that the driver is igb_uio. Is this the expected behavior? |
From the stack trace you printed it seems the PMD is crashing in
|
@sabhishepalc @seladb @shidaoxuan First:
I suppose that this is caused by running the valgrind on DPDK as provoded log identifies problem:
Second:
Is caused by currently unknown problem. Recommendations:
And just a general trend - the |
Thanks a lot @echo-Mike and @seladb . ======================================================= Successfully called rte_eth_dev_configure for device [DPDK_0] with 4 RX queues and 4 TX queues Application stopped| Core ID | Packet Cnt | Eth Cnt | ARP Cnt | IPv4 Cnt | IPv6 Cnt | TCP Cnt | UDP Cnt | HTTP Cnt | Matched TCP Flows | Matched UDP Flows | Matched Packets || 1 | 17 | 17 | 17 | 17 | 0 | 0 | 17 | 0 | 0 | 17 | 17 |
|
Do you still need this issue open? If not, can you close it? |
@seladb Certainly you have helped a lot and kudos to you and other contributors. I will happily close this issue. Thanks and cheers. |
Here is the snippet of when we are trying to run the Bin/Pcap++ test.EAL: Detected 24 lcore(s)
EAL: Probing VFIO support...
EAL: PCI device 0000:01:00.0 on NUMA socket -1
EAL: probe driver: 8086:10d3 net_e1000_em
EAL: PCI device 0000:04:00.0 on NUMA socket -1
EAL: probe driver: 8086:1583 net_i40e
EAL: PCI device 0000:04:00.1 on NUMA socket -1
EAL: probe driver: 8086:1583 net_i40e
PMD: eth_i40e_dev_init(): FW 6.0 API 1.7 NVM 06.00.01 eetrack 800035da
[src/DpdkDeviceList.cpp : initDpdkDevices : line:164 ] Found 1 DPDK ports. Constructing DpdkDevice for each one
[src/DpdkDevice.cpp : initMemPool : line:623 ] Successfully initialized packets pool of size [16383] for device [DPDK_0]
[src/DpdkDevice.cpp : setDeviceInfo : line:722 ] Device [DPDK_0] has 320 RX queues
[src/DpdkDevice.cpp : setDeviceInfo : line:723 ] Device [DPDK_0] has 320 TX queues
[src/DpdkDeviceList.cpp : initDpdkDevices : line:175 ] DpdkDevice #0: Name='DPDK_0', PCI-slot='0000:04:00.1', PMD='net_i40e', MAC Addr='3c:fd:fe:c3:38:d9'
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkDevice : FAILED. assertion failed: Cannot open DPDK device
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkMultiThread : FAILED. assertion failed: Cannot open DPDK device 'DPDK_0' with 16 RX queues
[src/DpdkDevice.cpp : close : line:455 ] Trying to close device [DPDK_0] but device is already closed
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkDeviceSendPackets : FAILED. assertion failed: Cannot open DPDK device 'DPDK_0' with 320 TX queues
[src/DpdkDevice.cpp : close : line:455 ] Trying to close device [DPDK_0] but device is already closed
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkMbufRawPacket : FAILED. assertion failed: Cannot open DPDK device
TestDpdkDeviceWorkerThreads : FAILED. assertion failed: Couldn't open DPDK device
Also, about the setup script, I did the setup complete. Here is the current status:
root@ubuntu:~/PcapPlusPlus# ./setup-dpdk.sh -s
PcapPlusPlus setup DPDK script
Network devices using DPDK-compatible driver
0000:04:00.1 'Ethernet Controller XL710 for 40GbE QSFP+' drv=igb_uio unused=uio_pci_generic
Network devices using kernel driver
0000:01:00.0 '82574L Gigabit Network Connection' if=eth0 drv=e1000e unused=igb_uio,uio_pci_generic Active
Other network devices
0000:04:00.0 'Ethernet Controller XL710 for 40GbE QSFP+' unused=igb_uio,uio_pci_generic
Crypto devices using DPDK-compatible driver
Crypto devices using kernel driver
Other crypto devices
And we are planning to use one port for now, and we are getting this error:
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkDevice : FAILED. assertion failed: Cannot open DPDK device
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkMultiThread : FAILED. assertion failed: Cannot open DPDK device 'DPDK_0' with 16 RX queues
[src/DpdkDevice.cpp : close : line:455 ] Trying to close device [DPDK_0] but device is already closed
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkDeviceSendPackets : FAILED. assertion failed: Cannot open DPDK device 'DPDK_0' with 320 TX queues
[src/DpdkDevice.cpp : close : line:455 ] Trying to close device [DPDK_0] but device is already closed
PMD 'net_i40e' doesn't support the request RSS hash functions 0x41
TestDpdkMbufRawPacket : FAILED. assertion failed: Cannot open DPDK device
TestDpdkDeviceWorkerThreads : FAILED. assertion failed: Couldn't open DPDK device
I have few queries:
root@ubuntu:~/PcapPlusPlus/Tests/Pcap++Test# Bin/Pcap++Test -i x.x.x.x -r x.x.x.x -k p1p2 -d
Need ur help in this scenario.
The text was updated successfully, but these errors were encountered: