mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-14 12:37:32 +00:00
mlx4: Match DMFS promiscuous field names to firmware spec
Align the names used by enum mlx4_net_trans_promisc_mode with the actual firmware specification. The patch doesn't introduce any functional change or API change towards the firmware. Remove MLX4_FS_PROMISC_FUNCTION_PORT which isn't of use. Add new enums MLX4_FS_{UC/MC}_SNIFFER as a preparation step for sniffer support. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
3cd0e1789a
commit
f91625398a
4 changed files with 25 additions and 25 deletions
|
@ -889,7 +889,7 @@ static int mlx4_en_flow_replace(struct net_device *dev,
|
|||
.queue_mode = MLX4_NET_TRANS_Q_FIFO,
|
||||
.exclusive = 0,
|
||||
.allow_loopback = 1,
|
||||
.promisc_mode = MLX4_FS_PROMISC_NONE,
|
||||
.promisc_mode = MLX4_FS_REGULAR,
|
||||
};
|
||||
|
||||
rule.port = priv->port;
|
||||
|
|
|
@ -127,7 +127,7 @@ static void mlx4_en_filter_work(struct work_struct *work)
|
|||
.queue_mode = MLX4_NET_TRANS_Q_LIFO,
|
||||
.exclusive = 1,
|
||||
.allow_loopback = 1,
|
||||
.promisc_mode = MLX4_FS_PROMISC_NONE,
|
||||
.promisc_mode = MLX4_FS_REGULAR,
|
||||
.port = priv->port,
|
||||
.priority = MLX4_DOMAIN_RFS,
|
||||
};
|
||||
|
@ -446,7 +446,7 @@ static int mlx4_en_uc_steer_add(struct mlx4_en_priv *priv,
|
|||
.queue_mode = MLX4_NET_TRANS_Q_FIFO,
|
||||
.exclusive = 0,
|
||||
.allow_loopback = 1,
|
||||
.promisc_mode = MLX4_FS_PROMISC_NONE,
|
||||
.promisc_mode = MLX4_FS_REGULAR,
|
||||
.priority = MLX4_DOMAIN_NIC,
|
||||
};
|
||||
|
||||
|
@ -793,7 +793,7 @@ static void mlx4_en_set_promisc_mode(struct mlx4_en_priv *priv,
|
|||
err = mlx4_flow_steer_promisc_add(mdev->dev,
|
||||
priv->port,
|
||||
priv->base_qpn,
|
||||
MLX4_FS_PROMISC_UPLINK);
|
||||
MLX4_FS_ALL_DEFAULT);
|
||||
if (err)
|
||||
en_err(priv, "Failed enabling promiscuous mode\n");
|
||||
priv->flags |= MLX4_EN_FLAG_MC_PROMISC;
|
||||
|
@ -856,7 +856,7 @@ static void mlx4_en_clear_promisc_mode(struct mlx4_en_priv *priv,
|
|||
case MLX4_STEERING_MODE_DEVICE_MANAGED:
|
||||
err = mlx4_flow_steer_promisc_remove(mdev->dev,
|
||||
priv->port,
|
||||
MLX4_FS_PROMISC_UPLINK);
|
||||
MLX4_FS_ALL_DEFAULT);
|
||||
if (err)
|
||||
en_err(priv, "Failed disabling promiscuous mode\n");
|
||||
priv->flags &= ~MLX4_EN_FLAG_MC_PROMISC;
|
||||
|
@ -917,7 +917,7 @@ static void mlx4_en_do_multicast(struct mlx4_en_priv *priv,
|
|||
err = mlx4_flow_steer_promisc_add(mdev->dev,
|
||||
priv->port,
|
||||
priv->base_qpn,
|
||||
MLX4_FS_PROMISC_ALL_MULTI);
|
||||
MLX4_FS_MC_DEFAULT);
|
||||
break;
|
||||
|
||||
case MLX4_STEERING_MODE_B0:
|
||||
|
@ -940,7 +940,7 @@ static void mlx4_en_do_multicast(struct mlx4_en_priv *priv,
|
|||
case MLX4_STEERING_MODE_DEVICE_MANAGED:
|
||||
err = mlx4_flow_steer_promisc_remove(mdev->dev,
|
||||
priv->port,
|
||||
MLX4_FS_PROMISC_ALL_MULTI);
|
||||
MLX4_FS_MC_DEFAULT);
|
||||
break;
|
||||
|
||||
case MLX4_STEERING_MODE_B0:
|
||||
|
@ -1598,10 +1598,10 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)
|
|||
MLX4_EN_FLAG_MC_PROMISC);
|
||||
mlx4_flow_steer_promisc_remove(mdev->dev,
|
||||
priv->port,
|
||||
MLX4_FS_PROMISC_UPLINK);
|
||||
MLX4_FS_ALL_DEFAULT);
|
||||
mlx4_flow_steer_promisc_remove(mdev->dev,
|
||||
priv->port,
|
||||
MLX4_FS_PROMISC_ALL_MULTI);
|
||||
MLX4_FS_MC_DEFAULT);
|
||||
} else if (priv->flags & MLX4_EN_FLAG_PROMISC) {
|
||||
priv->flags &= ~MLX4_EN_FLAG_PROMISC;
|
||||
|
||||
|
|
|
@ -649,10 +649,11 @@ static void trans_rule_ctrl_to_hw(struct mlx4_net_trans_rule *ctrl,
|
|||
struct mlx4_net_trans_rule_hw_ctrl *hw)
|
||||
{
|
||||
static const u8 __promisc_mode[] = {
|
||||
[MLX4_FS_PROMISC_NONE] = 0x0,
|
||||
[MLX4_FS_PROMISC_UPLINK] = 0x1,
|
||||
[MLX4_FS_PROMISC_FUNCTION_PORT] = 0x2,
|
||||
[MLX4_FS_PROMISC_ALL_MULTI] = 0x3,
|
||||
[MLX4_FS_REGULAR] = 0x0,
|
||||
[MLX4_FS_ALL_DEFAULT] = 0x1,
|
||||
[MLX4_FS_MC_DEFAULT] = 0x3,
|
||||
[MLX4_FS_UC_SNIFFER] = 0x4,
|
||||
[MLX4_FS_MC_SNIFFER] = 0x5,
|
||||
};
|
||||
|
||||
u32 dw = 0;
|
||||
|
@ -1153,7 +1154,7 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
|
|||
struct mlx4_net_trans_rule rule = {
|
||||
.queue_mode = MLX4_NET_TRANS_Q_FIFO,
|
||||
.exclusive = 0,
|
||||
.promisc_mode = MLX4_FS_PROMISC_NONE,
|
||||
.promisc_mode = MLX4_FS_REGULAR,
|
||||
.priority = MLX4_DOMAIN_NIC,
|
||||
};
|
||||
|
||||
|
@ -1222,11 +1223,10 @@ int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port,
|
|||
u64 *regid_p;
|
||||
|
||||
switch (mode) {
|
||||
case MLX4_FS_PROMISC_UPLINK:
|
||||
case MLX4_FS_PROMISC_FUNCTION_PORT:
|
||||
case MLX4_FS_ALL_DEFAULT:
|
||||
regid_p = &dev->regid_promisc_array[port];
|
||||
break;
|
||||
case MLX4_FS_PROMISC_ALL_MULTI:
|
||||
case MLX4_FS_MC_DEFAULT:
|
||||
regid_p = &dev->regid_allmulti_array[port];
|
||||
break;
|
||||
default:
|
||||
|
@ -1253,11 +1253,10 @@ int mlx4_flow_steer_promisc_remove(struct mlx4_dev *dev, u8 port,
|
|||
u64 *regid_p;
|
||||
|
||||
switch (mode) {
|
||||
case MLX4_FS_PROMISC_UPLINK:
|
||||
case MLX4_FS_PROMISC_FUNCTION_PORT:
|
||||
case MLX4_FS_ALL_DEFAULT:
|
||||
regid_p = &dev->regid_promisc_array[port];
|
||||
break;
|
||||
case MLX4_FS_PROMISC_ALL_MULTI:
|
||||
case MLX4_FS_MC_DEFAULT:
|
||||
regid_p = &dev->regid_allmulti_array[port];
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -896,11 +896,12 @@ static inline int map_hw_to_sw_id(u16 header_id)
|
|||
}
|
||||
|
||||
enum mlx4_net_trans_promisc_mode {
|
||||
MLX4_FS_PROMISC_NONE = 0,
|
||||
MLX4_FS_PROMISC_UPLINK,
|
||||
/* For future use. Not implemented yet */
|
||||
MLX4_FS_PROMISC_FUNCTION_PORT,
|
||||
MLX4_FS_PROMISC_ALL_MULTI,
|
||||
MLX4_FS_REGULAR = 1,
|
||||
MLX4_FS_ALL_DEFAULT,
|
||||
MLX4_FS_MC_DEFAULT,
|
||||
MLX4_FS_UC_SNIFFER,
|
||||
MLX4_FS_MC_SNIFFER,
|
||||
|
||||
};
|
||||
|
||||
struct mlx4_spec_eth {
|
||||
|
|
Loading…
Reference in a new issue