I am targeting to capture only udp data over ipv4 using ConnectX5 device and DPDK dpdk-21.11.1.
Card Details:
Device Type: ConnectX5
Part Number: MCX512A-ACA_Ax_Bx
Description: ConnectX-5 EN network interface card; 10/25GbE dual-port SFP28; PCIe3.0 x8; tall bracket; ROHS R6
PSID: MT_0000000080
PCI Device Name: 0000:03:00.0
Base GUID: 043f720300b05496
Base MAC: 043f72b05496
Versions: Current Available
FW 16.31.1014 N/A
PXE 3.6.0403 N/A
UEFI 14.24.0013 N/A
As per my understanding, mlx5_core allows the PMD to coexist with kernel network interfaces which remain functional (https://doc.dpdk.org/guides/nics/mlx5.html).
So, in our code as soon as we call rte_eth_dev_start(port_num), we are able to capture the udp and other data packets available over the interface.
But, now the problem is that the dpdk pmd is also capturing igmp, arp and icmp packets as well and the data is not available to the corresponding kernel network interface.
This in turn further leads to the problem that we are not able to ping this interface from the other host(s) connected in the network.
So, is there a way in dpdk mlx5_core pmd, we can skip all other types of data packets except UDP, so that the kernel network interface will take care of icmp, arp and igmp packets?