DPDK patches and discussions
 help / color / mirror / Atom feed
From: Vikash Kumar <vikash@noida.interrasystems.com>
To: dev@dpdk.org
Subject: [dpdk-dev] KNI Module (multiple) to handle IGMP requests
Date: Tue, 6 Aug 2019 19:42:01 +0530	[thread overview]
Message-ID: <b2410d21-d293-240d-5676-5d6b42c95188@noida.interrasystems.com> (raw)

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	other threads:[~2019-08-06 22:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b2410d21-d293-240d-5676-5d6b42c95188@noida.interrasystems.com \
    --to=vikash@noida.interrasystems.com \
    --cc=dev@dpdk.org \
    --cc=vikash@interrasystems.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).