[dpdk-dev] ixgbevf: support multicast packets from PF to VF
Lu, Wenzhuo
wenzhuo.lu at intel.com
Tue Dec 6 00:34:48 CET 2016
Hi Dey,
I'm confused.
rte_eth_allmulticast_enable means the port can receive all the multicast packets. In another word, it's multicast promiscuous mode.
rte_eth_dev_set_mc_addr_list means adding a series of multicast addresses to the filter, so the port can receive these specific multicast packets. It's not promiscuous.
During your test, I think only rte_eth_dev_set_mc_addr_list is working. rte_eth_allmulticast_enable has no effect.
As you mentioned the PF driver version, I'm afraid the problem is the PF. When you call rte_eth_allmulticast_enable on VF, VF only sends a message to PF. PF need to take action. So you must have a PF which can support this feature.
From: Dey, Souvik [mailto:sodey at sonusnet.com]
Sent: Tuesday, December 6, 2016 3:01 AM
To: Lu, Wenzhuo <wenzhuo.lu at intel.com>; dev at dpdk.org
Subject: RE: ixgbevf: support multicast packets from PF to VF
Hi Wenzhuo,
There is nothing set with the rte_eth_dev_set_mc_addr_list and we are trying to receive the NS packet which has the destination MAC set as 33 33 ff 00 00 14. Also what I saw is that the handling of allmulticast_enable message in the kernel has happened after 4.0 version and the PF drivers which earlier kernel version will not support this. How should handle those scenarios ?
In my case too I tried 2 experiments :
1. Only set the rte_eth_allmulticast_enable from the DPDK app and I patched the ixgbevf_pmd with our patch. The function was returning SUCCESS but the NS packets were received in the application.
2. Then along with rte_eth_allmulticast_enable, I used the rte_eth_dev_set_mc_addr_list to set the MAC 33 33 ff 00 00 14 from my app to the pmd. After this I was successfully receiving the NS packets. But then the bigger question is how to automate the addition of mc_addr in rte_eth_dev_set_mc_addr_list as in the kni we are currently not using the kni_net_set_rx_mode() function which is called by the net_device whenever the new mc_addr is assigned to the net_device.
--
Regards,
Souvik
From: Lu, Wenzhuo [mailto:wenzhuo.lu at intel.com]
Sent: Sunday, December 4, 2016 9:02 PM
To: Dey, Souvik <sodey at sonusnet.com<mailto:sodey at sonusnet.com>>; dev at dpdk.org<mailto:dev at dpdk.org>
Subject: RE: ixgbevf: support multicast packets from PF to VF
Hi Souvik,
To my opinion, rte_eth_dev_set_mc_addr_list has nothing to do with rte_eth_allmulticast_enable. rte_eth_allmulticast_enable is enough for the multicast packets.
I'm curious about the 1, what MAC addresses are set by rte_eth_dev_set_mc_addr_list? 2, What multicast packets are sent?
Thanks.
Best regards
Wenzhuo Lu
From: Dey, Souvik [mailto:sodey at sonusnet.com]
Sent: Saturday, December 3, 2016 1:28 AM
To: dev at dpdk.org<mailto:dev at dpdk.org>; Lu, Wenzhuo
Subject: RE: ixgbevf: support multicast packets from PF to VF
Adding wenzhuo.lu at intel.com<mailto:wenzhuo.lu at intel.com>
From: Dey, Souvik
Sent: Friday, December 2, 2016 12:27 PM
To: 'dev at dpdk.org' <dev at dpdk.org<mailto:dev at dpdk.org>>
Subject: ixgbevf: support multicast packets from PF to VF
Hi All,
I am trying to support multicast packet over SRIOV using kernel PF + DPDK VF(ixgbevf) drivers for ipv6. I am currently using 2.1 DPDK and found that there was a patch in 16.04 for "ixgbe: support multicast promiscuous mode on VF". So I have backported the patch to the 2.1 DPDK but still multicast packets were not coming up to the DPDK app. Then I tried to enable the rte_eth_dev_set_mc_addr_list and with the the packets were coming up properly. Now I have some doubts :
1. Do we have to use both rte_eth_dev_set_mc_addr_list and rte_eth_allmulticast_enable to get the multicast packets.
2. How do we get the mc_addr_list dynamically as I don't see we are using the kni_net_set_rx_mode in rte_kni. Without this the DPDK app will not have any idea to update the mc_addr_list in the PF.
3. Is there any other patches which I should be using to get this functionality working.
I am using : DPDK -2.1
Host kernel - 4.4 ( ubuntu)
Guest kernel - 3.2 (Debian)
Drivers - ixgbe ( for both pf and vf).
Thanks in advance for the help and support.
--
Regards,
Souvik
More information about the dev
mailing list