Hi Wenzhuo,
                Now I am using rte_eth_dev_set_mc_addr_list to configure the PF 
with the list of mc_addr supported by the VF, but interestingly only 1 of the 
mc_addr works and for other mc_addr packets does not even come up to the 
VF/DPDK PMD.

PMD: ixgbe_update_mc_addr_list_vf(): ixgbe_update_mc_addr_list_vf
PMD: ixgbe_update_mc_addr_list_vf(): MC Addr Count = 5
PMD: ixgbe_mta_vector(): MC Addr0  = 0,MC Addr1  = 1,mc_filter_type =0
PMD: ixgbe_update_mc_addr_list_vf(): Hash value = 0x010
PMD: ixgbe_mta_vector(): MC Addr0  = 0,MC Addr1  = 33,mc_filter_type =0
PMD: ixgbe_update_mc_addr_list_vf(): Hash value = 0x210
PMD: ixgbe_mta_vector(): MC Addr0  = 0,MC Addr1  = 213,mc_filter_type =0
PMD: ixgbe_update_mc_addr_list_vf(): Hash value = 0xD50
PMD: ixgbe_mta_vector(): MC Addr0  = 0,MC Addr1  = 14,mc_filter_type =0
PMD: ixgbe_update_mc_addr_list_vf(): Hash value = 0x0E0
PMD: ixgbe_mta_vector(): MC Addr0  = 0,MC Addr1  = 78,mc_filter_type =0
PMD: ixgbe_update_mc_addr_list_vf(): Hash value = 0x4E0

In the above list only  the mc_aadr hash D50 works and the other 2 in RED fails 
to receive any multicast packets. Is there any other setting or reconfiguration 
that is required to be done (both in DPDK or on PF) to get this working all the 
configured MC_ADDRs ?

I am using 2.1 DPDK on the guest and kernel 4.4 ixgbe PF drivers on the host .

--
Regards,
Souvik

From: Lu, Wenzhuo [mailto:wenzhuo...@intel.com]
Sent: Monday, December 5, 2016 6:35 PM
To: Dey, Souvik <so...@sonusnet.com>; dev@dpdk.org
Cc: Dai, Wei <wei....@intel.com>
Subject: RE: ixgbevf: support multicast packets from PF to VF

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<mailto:wenzhuo...@intel.com>>; 
dev@dpdk.org<mailto: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

Reply via email to