DPDK usage discussions
 help / color / Atom feed
* [dpdk-users] [dpdk-dev] KNI Module (multiple) to handle IGMP requests
@ 2019-08-06 12:21 Vikash Kumar
  2019-08-06 14:29 ` dave seddon
  0 siblings, 1 reply; 2+ messages in thread
From: Vikash Kumar @ 2019-08-06 12:21 UTC (permalink / raw)
  To: users

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



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-users] [dpdk-dev] KNI Module (multiple) to handle IGMP requests
  2019-08-06 12:21 [dpdk-users] [dpdk-dev] KNI Module (multiple) to handle IGMP requests Vikash Kumar
@ 2019-08-06 14:29 ` dave seddon
  0 siblings, 0 replies; 2+ messages in thread
From: dave seddon @ 2019-08-06 14:29 UTC (permalink / raw)
  To: vikash; +Cc: users

*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.*

Are you saying that traffic does arrive on both ports briefly, and then
stops on port1?  This would imply that an IGMP join did initially go out
both ports.

On Tue, Aug 6, 2019 at 5:21 AM Vikash Kumar <vikash@noida.interrasystems.com>
wrote:

> 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
>
>
>

-- 
Regards,
Dave Seddon
+1 415 310 4086

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-06 12:21 [dpdk-users] [dpdk-dev] KNI Module (multiple) to handle IGMP requests Vikash Kumar
2019-08-06 14:29 ` dave seddon

DPDK usage discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/users/0 users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 users users/ http://inbox.dpdk.org/users \
		users@dpdk.org
	public-inbox-index users


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.users


AGPL code for this site: git clone https://public-inbox.org/ public-inbox