Re: [E1000-devel] [PATCH v3 3/3] ixgbe: Add new ndo to allow VF multicast promiscuous mode

From: Alexander Duyck
Date: Wed Apr 08 2015 - 18:15:29 EST


On 04/07/2015 10:38 PM, Hiroshi Shimamoto wrote:
> From: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
>
> Implements the new netdev op to allow VF multicast promiscuous mode.
>
> The multicast promiscuous mode is not allowed for all VFs by default.
>
> The administrator can allow to VF multicast promiscuous mode for only
> trusted VM. After allowing multicast promiscuous mode from the host,
> we can use over 30 IPv6 addresses on VM.
> # ip link set dev eth0 vf 1 mc_promisc on
>
> When disallowing multicast promiscuous mode, ixgbevf can only handle 30
> IPv6 addresses at most.
> # ip link set dev eth0 vf 1 mc_promisc off
>
> Signed-off-by: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
> Reviewed-by: Hayato Momma <h-momma@xxxxxxxxxxxxx>
> CC: Choi, Sy Jong <sy.jong.choi@xxxxxxxxx>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 +
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 ++++++
> drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 32 ++++++++++++++++++++++++--
> drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 2 ++
> 4 files changed, 40 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
> index 08e65b6..4a9f74d 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
> @@ -153,6 +153,7 @@ struct vf_data_storage {
> u16 vlan_count;
> u8 spoofchk_enabled;
> bool rss_query_enabled;
> + u8 mc_promisc_allowed;
> unsigned int vf_api;
> };
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 2f41403..c0e07c5 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -3663,6 +3663,12 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter)
> ixgbe_ndo_set_vf_rss_query_en(adapter->netdev, i,
> adapter->vfinfo[i].rss_query_enabled);
> }
> +
> + /* Reconfigure multicast promiscuous mode */
> + for (i = 0; i < adapter->num_vfs; i++) {
> + ixgbe_ndo_set_vf_mc_promisc(adapter->netdev, i,
> + adapter->vfinfo[i].mc_promisc_allowed);
> + }
> }
>
> static void ixgbe_set_rx_buffer_len(struct ixgbe_adapter *adapter)

This doesn't need to be a separate loop. You can push it up into the
block above since it is already looping through all VFs.

Once that is fixed the rest of this patch and the other two looked fine
to me.

- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/