Hello Everyone,

Currently I am working on a project in which I need to capture the ipv4 multicast data from a managed (igmp enabled) switch.

In order achieve this, I am currently using below configuration:

dpdk-18.05.1.

*Hardware Description:*

Operating System: CentOS Linux 7 (Core)

CPE OS Name: cpe:/o:centos:centos:7

Kernel: Linux 3.10.0-957.12.1.el7.x86_64

Architecture: x86-64

NIC: Ethernet 10G 2P X520 Adapter 154d (ixgbe)

IG Huge Page available.

Changes made in grub: isolcpus=0-1 default_hugepagesz=1G hugepagesz=1G transparent_hugepage=never"

KNI Module successfully loaded as : sudo /sbin/insmod $RTE_SDK/$RTE_TARGET/kmod/rte_kni.ko kthread_mode=multiple

Successfully created 16 hugepages.

Successfully created hugepage filesystem. (using 'sudo mount -t hugetlbfs nodev /mnt/huge')

Static IPs given to both ports of NIC.

Successfully binded both the ports with igb_uio driver.

Referring to KNI sample application, allocated 1 KNI module for each port. Used same MAC address, IP address, ifname same as the original NIC.

Able to join multicast feeds using these kni interfaces ( setsockoptIP_ADD_SOURCE_MEMBERSHIP )

Using 1 lcore for each port. lcore 0 to capture the data over port 0 and lcore 1 to capture the data over port 1.

Each of these 2 eal thread running on lcore does the below operations:

rte_eth_rx_burst() -> keep copy of required multicast data and free the mbuff if copied. Else all other packets passed to kni tx (including igmp packets)

rte_kni_tx_burst()

rte_kni_handle_request()

rte_kni_rx_burst()

rte_eth_tx_burst()

*_Problem Statement:_*

Everything works fine with port 0. But for Port 1, I observe that there is no output from rte_kni_rx_burst, which in turn leads to multicast drop by switch.

I am relying on KNI TCP/IP stack to handle the igmp - Membership Query to send the igmp - Membership Report, port-1 never send the report and hence switch drops the multicast data within few minutes.

I have seen this behaviour on 2-3 machines of almost similar configuration. However, strangly on one another similar machine, the behaviour was totally opposite. There Port1 was working fine and port0 was dropping the multicast.

*Please advice, what I am missing here and what can I do to debug this issue further.*

**

Thanks & Regards,

Vix


Reply via email to