net/ixgbe: fix over using multicast table for VF
authorWei Zhao <wei.zhao1@intel.com>
Mon, 7 Jan 2019 07:22:56 +0000 (15:22 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 14 Jan 2019 16:44:29 +0000 (17:44 +0100)
commitdc5a6e74224094ae702fa971c4ce039b4a2e3560
treeb9610bde1ade0f544cf67214f4060704dbd08a81
parentf5bf91de738a3eeebb262c5cccc2eb6e7f4245a5
net/ixgbe: fix over using multicast table for VF

According to the current implementation, all VFs will set bit
IXGBE_VMOLR_ROMPE during initialization, this cause any VF
will accept packets that match the MTA table. Since the MTA
table is shared by all VFs which means if one VF update MTA
table in function ixgbe_vf_set_multicast, then all other VFs
will receive multicast packets which cause unnecessary
performance overhead.

So it's better to set VF's ROPE bit of register VMOLR only
if multicast address filter is required on that VF.
Also, the ROPE bit should be reset when multicast address
filter is requested to clean.

This patch also aligns to the related fix on ixgbe
kernel driver 5.3.7.

Fixes: 00e30184daa0 ("ixgbe: add PF support")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ixgbe/ixgbe_pf.c