From: Alice Michael <alice.michael@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [next PATCH S4 01/11] i40e: VF's promiscuous attribute is not kept
Date: Fri, 29 Mar 2019 15:08:30 -0700 [thread overview]
Message-ID: <20190329220840.51187-1-alice.michael@intel.com> (raw)
From: Grzegorz Siwik <grzegorz.siwik@intel.com>
This patch fixes a bug where the promiscuous mode was not being
kept when the VF switched to a new VLAN.
Now we are config two times a promiscuous mode when we switch VLAN.
Without this change when we change VF VLAN we still receive
all the packets from previous VLAN and only unicast from new VLAN.
Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
---
.../ethernet/intel/i40e/i40e_virtchnl_pf.c | 23 +++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 8a6fb9c03955..00345bbf68ec 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -4016,6 +4016,7 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev, int vf_id,
{
u16 vlanprio = vlan_id | (qos << I40E_VLAN_PRIORITY_SHIFT);
struct i40e_netdev_priv *np = netdev_priv(netdev);
+ bool allmulti = false, alluni = false;
struct i40e_pf *pf = np->vsi->back;
struct i40e_vsi *vsi;
struct i40e_vf *vf;
@@ -4100,6 +4101,15 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev, int vf_id,
}
spin_unlock_bh(&vsi->mac_filter_hash_lock);
+
+ /* disable promisc modes in case they were enabled */
+ ret = i40e_config_vf_promiscuous_mode(vf, vf->lan_vsi_id,
+ allmulti, alluni);
+ if (ret) {
+ dev_err(&pf->pdev->dev, "Unable to config VF promiscuous mode\n");
+ goto error_pvid;
+ }
+
if (vlan_id || qos)
ret = i40e_vsi_add_pvid(vsi, vlanprio);
else
@@ -4126,6 +4136,12 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev, int vf_id,
spin_unlock_bh(&vsi->mac_filter_hash_lock);
+ if (test_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states))
+ alluni = true;
+
+ if (test_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states))
+ allmulti = true;
+
/* Schedule the worker thread to take care of applying changes */
i40e_service_event_schedule(vsi->back);
@@ -4138,6 +4154,13 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev, int vf_id,
* default LAN MAC address.
*/
vf->port_vlan_id = le16_to_cpu(vsi->info.pvid);
+
+ ret = i40e_config_vf_promiscuous_mode(vf, vsi->id, allmulti, alluni);
+ if (ret) {
+ dev_err(&pf->pdev->dev, "Unable to config vf promiscuous mode\n");
+ goto error_pvid;
+ }
+
ret = 0;
error_pvid:
--
2.19.2
next reply other threads:[~2019-03-29 22:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-29 22:08 Alice Michael [this message]
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 02/11] i40e: add new pci id for X710/XXV710 N3000 cards Alice Michael
2019-04-03 21:55 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 03/11] i40e: Setting VF to VLAN 0 requires restart Alice Michael
2019-04-03 21:56 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 04/11] i40e: add functions stubs to support EEE Alice Michael
2019-04-03 21:56 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 05/11] i40e: fix wrapping around netif_set_real_num_tx_queues Alice Michael
2019-04-03 21:57 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 06/11] i40e: Fix the typo in adding 40GE KR4 mode Alice Michael
2019-04-03 21:57 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 07/11] i40e: add num_vectors checker in iwarp handler Alice Michael
2019-04-03 21:58 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 08/11] i40e: Wrong truncation from u16 to u8 Alice Michael
2019-04-03 21:58 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 09/11] i40e: Add support for X710 B/P & SFP+ cards Alice Michael
2019-04-03 21:59 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 10/11] i40e: missing input validation on VF message handling by the PF Alice Michael
2019-04-03 21:59 ` Bowers, AndrewX
2019-03-29 22:08 ` [Intel-wired-lan] [next PATCH S4 11/11] i40e: Revert ShadowRAM checksum calculation change Alice Michael
2019-04-03 22:00 ` Bowers, AndrewX
2019-04-03 21:54 ` [Intel-wired-lan] [next PATCH S4 01/11] i40e: VF's promiscuous attribute is not kept Bowers, AndrewX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190329220840.51187-1-alice.michael@intel.com \
--to=alice.michael@intel.com \
--cc=intel-wired-lan@osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox