summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/uts/common/io/i40e/i40e_gld.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/usr/src/uts/common/io/i40e/i40e_gld.c b/usr/src/uts/common/io/i40e/i40e_gld.c
index e1be82581a..401bbc8e7c 100644
--- a/usr/src/uts/common/io/i40e/i40e_gld.c
+++ b/usr/src/uts/common/io/i40e/i40e_gld.c
@@ -228,6 +228,25 @@ i40e_m_promisc(void *arg, boolean_t on)
}
+#if 1
+ /*
+ * XXX KEBE SAYS try this from Linux...
+ *
+ * Their comment says:
+ *
+ * set defport ON for Main VSI instead of true promisc
+ * this way we will get all unicast/multicast and VLAN
+ * promisc behavior but will not get VF or VMDq traffic
+ * replicated on the Main VSI.
+ */
+
+ ret = on ? i40e_aq_set_default_vsi(hw, I40E_DEF_VSI_SEID(i40e), NULL) :
+ i40e_aq_clear_default_vsi(hw, I40E_DEF_VSI_SEID(i40e), NULL);
+ if (ret == I40E_SUCCESS)
+ i40e->i40e_promisc_on = on;
+ else
+ err = EIO;
+#else
ret = i40e_aq_set_vsi_unicast_promiscuous(hw, I40E_DEF_VSI_SEID(i40e),
on, NULL, B_FALSE);
if (ret != I40E_SUCCESS) {
@@ -271,6 +290,7 @@ i40e_m_promisc(void *arg, boolean_t on)
} else {
i40e->i40e_promisc_on = on;
}
+#endif
done:
mutex_exit(&i40e->i40e_general_lock);