Lines Matching defs:mdev

59 static bool ipsec_fs_create_alias_supported_one(struct mlx5_core_dev *mdev)
61 u64 obj_allowed = MLX5_CAP_GEN_2_64(mdev, allowed_object_for_other_vhca_access);
62 u32 obj_supp = MLX5_CAP_GEN_2(mdev, cross_vhca_object_to_object_supported);
74 static bool ipsec_fs_create_alias_supported(struct mlx5_core_dev *mdev,
77 if (ipsec_fs_create_alias_supported_one(mdev) &&
131 ipsec_fs_roce_rx_rule_setup(struct mlx5_core_dev *mdev,
135 bool is_mpv_slave = mlx5_core_is_mp_slave(mdev);
159 mlx5_core_err(mdev, "Fail to add RX RoCE IPsec rule err=%d\n",
170 mlx5_core_err(mdev, "Fail to add RX RoCE IPsec miss rule err=%d\n",
187 mlx5_core_err(mdev, "Fail to add RX RoCE IPsec rule for alias err=%d\n",
205 static int ipsec_fs_roce_tx_rule_setup(struct mlx5_core_dev *mdev,
221 mlx5_core_err(mdev, "Fail to add TX RoCE IPsec rule err=%d\n",
231 static int ipsec_fs_roce_tx_mpv_rule_setup(struct mlx5_core_dev *mdev,
248 MLX5_CAP_GEN(mdev, native_port_num));
256 mlx5_core_err(mdev, "Fail to add TX RoCE IPsec rule err=%d\n",
276 static int ipsec_fs_roce_tx_mpv_create_ft(struct mlx5_core_dev *mdev,
288 roce_ns = mlx5_get_flow_namespace(peer_priv->mdev, MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC);
292 nic_ns = mlx5_get_flow_namespace(peer_priv->mdev, MLX5_FLOW_NAMESPACE_EGRESS_IPSEC);
296 err = ipsec_fs_create_aliased_ft(mdev, peer_priv->mdev, pol_ft, &roce->alias_id, roce->key,
309 mlx5_core_err(mdev, "Fail to create RoCE IPsec goto alias ft err=%d\n", err);
321 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx ft err=%d\n", err);
332 mlx5_cmd_alias_obj_destroy(peer_priv->mdev, roce->alias_id,
337 static int ipsec_fs_roce_tx_mpv_create_group_rules(struct mlx5_core_dev *mdev,
357 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx group err=%d\n", err);
362 err = ipsec_fs_roce_tx_mpv_rule_setup(mdev, roce, pol_ft);
364 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx rules err=%d\n", err);
375 static int ipsec_fs_roce_tx_mpv_create(struct mlx5_core_dev *mdev,
396 err = ipsec_fs_roce_tx_mpv_create_ft(mdev, roce, pol_ft, peer_priv, from_event);
398 mlx5_core_err(mdev, "Fail to create RoCE IPsec tables err=%d\n", err);
402 err = ipsec_fs_roce_tx_mpv_create_group_rules(mdev, roce, pol_ft, in);
404 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx group/rule err=%d\n", err);
414 mlx5_cmd_alias_obj_destroy(peer_priv->mdev, roce->alias_id,
421 static void roce_rx_mpv_destroy_tables(struct mlx5_core_dev *mdev, struct mlx5_ipsec_rx_roce *roce)
424 mlx5_cmd_alias_obj_destroy(mdev, roce->alias_id,
434 static int ipsec_fs_roce_rx_mpv_create(struct mlx5_core_dev *mdev,
463 roce_ns = mlx5_get_flow_namespace(peer_priv->mdev, MLX5_FLOW_NAMESPACE_RDMA_RX_IPSEC);
469 nic_ns = mlx5_get_flow_namespace(peer_priv->mdev, MLX5_FLOW_NAMESPACE_KERNEL);
487 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx ft at rdma master err=%d\n", err);
499 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx ft at NIC master err=%d\n", err);
510 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx group aliased err=%d\n", err);
515 err = ipsec_fs_create_aliased_ft(peer_priv->mdev, mdev, roce->nic_master_ft,
518 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx alias FT err=%d\n", err);
531 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx ft at NIC slave err=%d\n", err);
541 mlx5_cmd_alias_obj_destroy(mdev, roce->alias_id,
557 struct mlx5_core_dev *mdev)
575 if (!mlx5_core_is_mp_slave(mdev))
588 mlx5_cmd_alias_obj_destroy(peer_priv->mdev, tx_roce->alias_id,
594 int mlx5_ipsec_fs_roce_tx_create(struct mlx5_core_dev *mdev,
616 if (mlx5_core_is_mp_slave(mdev)) {
617 err = ipsec_fs_roce_tx_mpv_create(mdev, ipsec_roce, pol_ft, in, from_event);
627 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx ft err=%d\n", err);
639 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx group err=%d\n", err);
644 err = ipsec_fs_roce_tx_rule_setup(mdev, roce, pol_ft);
646 mlx5_core_err(mdev, "Fail to create RoCE IPsec tx rules err=%d\n", err);
676 struct mlx5_core_dev *mdev)
678 bool is_mpv_slave = mlx5_core_is_mp_slave(mdev);
694 roce_rx_mpv_destroy_tables(mdev, rx_roce);
702 int mlx5_ipsec_fs_roce_rx_create(struct mlx5_core_dev *mdev,
708 bool is_mpv_slave = mlx5_core_is_mp_slave(mdev);
731 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx ft at nic err=%d\n", err);
755 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx group at nic err=%d\n", err);
767 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx miss group at nic err=%d\n", err);
773 err = ipsec_fs_roce_rx_mpv_create(mdev, ipsec_roce, ns, family, level, prio);
775 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx alias err=%d\n", err);
786 mlx5_core_err(mdev,
794 err = ipsec_fs_roce_rx_rule_setup(mdev, default_dst, roce);
796 mlx5_core_err(mdev, "Fail to create RoCE IPsec rx rules err=%d\n", err);
805 roce_rx_mpv_destroy_tables(mdev, roce);
819 bool mlx5_ipsec_fs_is_mpv_roce_supported(struct mlx5_core_dev *mdev)
821 if (!mlx5_core_mp_enabled(mdev))
824 if (ipsec_fs_create_alias_supported_one(mdev))
835 struct mlx5_ipsec_fs *mlx5_ipsec_fs_roce_init(struct mlx5_core_dev *mdev,
841 ns = mlx5_get_flow_namespace(mdev, MLX5_FLOW_NAMESPACE_RDMA_RX_IPSEC);
843 mlx5_core_err(mdev, "Failed to get RoCE rx ns\n");
854 ns = mlx5_get_flow_namespace(mdev, MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC);
856 mlx5_core_err(mdev, "Failed to get RoCE tx ns\n");