ice: Disable sniffing VF traffic on PF
Delete code that add default Tx rule on PF. With this rule PF can see Tx VF traffic that should go outside. For traffic from VF to another VF default Tx rule on PF doesn't apply because of lower priority than VF mac rule. With this change on PF in promisc mode we can see only Rx traffic that doesn't match any other rule (mac etc.). We can't see Tx traffic from other VSI. Signed-off-by: Michal Swiatkowski <michal.swiatkowski@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
0690527014
commit
64439f8f0b
@ -317,42 +317,22 @@ static int ice_vsi_sync_fltr(struct ice_vsi *vsi)
|
||||
test_bit(ICE_VSI_FLAG_PROMISC_CHANGED, vsi->flags)) {
|
||||
clear_bit(ICE_VSI_FLAG_PROMISC_CHANGED, vsi->flags);
|
||||
if (vsi->current_netdev_flags & IFF_PROMISC) {
|
||||
/* Apply Tx filter rule to get traffic from VMs */
|
||||
status = ice_cfg_dflt_vsi(hw, vsi->idx, true,
|
||||
ICE_FLTR_TX);
|
||||
if (status) {
|
||||
netdev_err(netdev, "Error setting default VSI %i tx rule\n",
|
||||
vsi->vsi_num);
|
||||
vsi->current_netdev_flags &= ~IFF_PROMISC;
|
||||
err = -EIO;
|
||||
goto out_promisc;
|
||||
}
|
||||
/* Apply Rx filter rule to get traffic from wire */
|
||||
status = ice_cfg_dflt_vsi(hw, vsi->idx, true,
|
||||
ICE_FLTR_RX);
|
||||
if (status) {
|
||||
netdev_err(netdev, "Error setting default VSI %i rx rule\n",
|
||||
netdev_err(netdev, "Error setting default VSI %i Rx rule\n",
|
||||
vsi->vsi_num);
|
||||
vsi->current_netdev_flags &= ~IFF_PROMISC;
|
||||
err = -EIO;
|
||||
goto out_promisc;
|
||||
}
|
||||
} else {
|
||||
/* Clear Tx filter rule to stop traffic from VMs */
|
||||
status = ice_cfg_dflt_vsi(hw, vsi->idx, false,
|
||||
ICE_FLTR_TX);
|
||||
if (status) {
|
||||
netdev_err(netdev, "Error clearing default VSI %i tx rule\n",
|
||||
vsi->vsi_num);
|
||||
vsi->current_netdev_flags |= IFF_PROMISC;
|
||||
err = -EIO;
|
||||
goto out_promisc;
|
||||
}
|
||||
/* Clear Rx filter to remove traffic from wire */
|
||||
status = ice_cfg_dflt_vsi(hw, vsi->idx, false,
|
||||
ICE_FLTR_RX);
|
||||
if (status) {
|
||||
netdev_err(netdev, "Error clearing default VSI %i rx rule\n",
|
||||
netdev_err(netdev, "Error clearing default VSI %i Rx rule\n",
|
||||
vsi->vsi_num);
|
||||
vsi->current_netdev_flags |= IFF_PROMISC;
|
||||
err = -EIO;
|
||||
|
Loading…
Reference in New Issue
Block a user