]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/mellanox/mlx5/core/lag.c
net/mlx5: Vport LAG creation support
[karo-tx-linux.git] / drivers / net / ethernet / mellanox / mlx5 / core / lag.c
index 3cb570ac2b80cd6428b6c95e147ea2775c8f19af..5fe320c5a60ec11b8ea257fb9b8aae6cb5e8eb72 100644 (file)
@@ -110,6 +110,28 @@ static int mlx5_cmd_destroy_lag(struct mlx5_core_dev *dev)
        return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out));
 }
 
+int mlx5_cmd_create_vport_lag(struct mlx5_core_dev *dev)
+{
+       u32  in[MLX5_ST_SZ_DW(create_vport_lag_in)]  = {0};
+       u32 out[MLX5_ST_SZ_DW(create_vport_lag_out)] = {0};
+
+       MLX5_SET(create_vport_lag_in, in, opcode, MLX5_CMD_OP_CREATE_VPORT_LAG);
+
+       return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out));
+}
+EXPORT_SYMBOL(mlx5_cmd_create_vport_lag);
+
+int mlx5_cmd_destroy_vport_lag(struct mlx5_core_dev *dev)
+{
+       u32  in[MLX5_ST_SZ_DW(destroy_vport_lag_in)]  = {0};
+       u32 out[MLX5_ST_SZ_DW(destroy_vport_lag_out)] = {0};
+
+       MLX5_SET(destroy_vport_lag_in, in, opcode, MLX5_CMD_OP_DESTROY_VPORT_LAG);
+
+       return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out));
+}
+EXPORT_SYMBOL(mlx5_cmd_destroy_vport_lag);
+
 static struct mlx5_lag *mlx5_lag_dev_get(struct mlx5_core_dev *dev)
 {
        return dev->priv.lag;