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:so...@sonusnet.com] Sent: Tuesday, December 6, 2016 3:01 AM To: Lu, Wenzhuo <wenzhuo...@intel.com>; dev@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...@intel.com] Sent: Sunday, December 4, 2016 9:02 PM To: Dey, Souvik <so...@sonusnet.com<mailto:so...@sonusnet.com>>; dev@dpdk.org<mailto:dev@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:so...@sonusnet.com] Sent: Saturday, December 3, 2016 1:28 AM To: dev@dpdk.org<mailto:dev@dpdk.org>; Lu, Wenzhuo Subject: RE: ixgbevf: support multicast packets from PF to VF Adding wenzhuo...@intel.com<mailto:wenzhuo...@intel.com> From: Dey, Souvik Sent: Friday, December 2, 2016 12:27 PM To: 'dev@dpdk.org' <dev@dpdk.org<mailto:dev@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