On Mon, 24 Sep 2018 16:49:24 +0100 Ferruh Yigit <ferruh.yi...@intel.com> wrote:
> On 9/21/2018 5:54 PM, Stephen Hemminger wrote: > > Provide API's to enable allmulticast and promiscuous in Netvsc PMD > > with VF. This keeps the VF and PV path in sync. > > VF and PF? > > > > > Signed-off-by: Stephen Hemminger <sthem...@microsoft.com> > > --- > > Patch against dpdk-net-next > > > > drivers/net/netvsc/hn_ethdev.c | 14 +++++++++++++ > > drivers/net/netvsc/hn_var.h | 9 +++++++++ > > drivers/net/netvsc/hn_vf.c | 37 ++++++++++++++++++++++++++++++++++ > > 3 files changed, 60 insertions(+) > > > > diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c > > index b67cce1ba8f5..3092066ada36 100644 > > --- a/drivers/net/netvsc/hn_ethdev.c > > +++ b/drivers/net/netvsc/hn_ethdev.c > > @@ -255,6 +255,7 @@ hn_dev_promiscuous_enable(struct rte_eth_dev *dev) > > struct hn_data *hv = dev->data->dev_private; > > > > hn_rndis_set_rxfilter(hv, NDIS_PACKET_TYPE_PROMISCUOUS); > > + hn_vf_promiscuous_enable(dev); > > This VF approach is confusing to me, is this calling a underlay device a VF > device? Yes. This driver supports the Hyper-V/Azure accelerated networking model where the synthetic para-virtual device has a associated SR-IOV VF device. It is a less general version of what failsafe supports. The choice of hn_vf_XXX naming is to identify those functions which do operations on the underlying device. > > > +static int > > +hn_dev_mc_addr_list(struct rte_eth_dev *dev, > > + struct ether_addr *mc_addr_set, > > + uint32_t nb_mc_addr) > > Just to double check, this dev_ops to add MAC multicast filters, to add MAC > filters it is mac_addr_set, mac_addr_add, mac_addr_remove. Many HW seems can > set > the multicast MAC filters via "mac_addr_add" too. > > If this is the intention please enable "Multicast MAC filter" in netvsc.ini Maybe, the para-virtual device doesn't do MC filtering, only the VF device does. The RNDIS API to host does not support filtering, only the VF path does. I am unsure. Perhaps best not to advertise MC address filtering. It doesn't matter for Azure (it does not support real Multicast); only for local Hyper-V.