Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Or Gerlitz wrote: I don't see any mentioning of IBoE open issues, e.g depicted in ofa bz cases such as: bz 2005 Rocce fails when 1 port is IB and the other is Ethernet bz 2024 clients fail when global pauses or PPP enabled on switch bz 2043 OFED 1.5.1 crashes after running Mcast over RoCE Hi Tziporet, I didn't see any response from you, can this be addressed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v3] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETY QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v3] MLX4: RAW ETH support
This patch adds RAW ETH support to mlx4 driver. diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..66a1c54 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,251 @@ +Add RAW ETH QP support to Mellanox adapters +This patch relies on the RAW ETH patch to the ib core. + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 22 ++ + drivers/net/mlx4/mcg.c| 22 +- + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev-dev, mqp-mqp, gid-raw, !!(mqp-flags +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw); ++ mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev-dev, +- mqp-mqp, gid-raw); ++ err = mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 422d367..c50e110 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: + case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1064,8 +1066,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || ++ if (ibqp-qp_type == IB_QPT_RAW_ETH) ++ context-mtu_msgmax = 0xff; ++ else if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || + ibqp-qp_type == IB_QPT_RAW_ETY) + context-mtu_msgmax = (IB_MTU_4096 5) | 11; + else if (ibqp-qp_type == IB_QPT_UD) { +@@ -1237,7 +1240,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT + new_state == IB_QPS_RTR + (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || +- ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY)) { ++ ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY || ++ ibqp-qp_type == IB_QPT_RAW_ETH)) { + context-pri_path.sched_queue = (qp-port - 1) 6; + if (is_qp0(dev, qp)) + context-pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1356,7 +1360,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask IB_QP_PORT) ++ if ((attr_mask IB_QP_PORT) (ibqp-qp_type != IB_QPT_RAW_ETH) + (attr-port_num == 0 || attr-port_num dev-num_ports)) { + mlx4_ib_dbg(qpn 0x%x: invalid port number (%d) specified + for transition %d to %d. qp_type %d, +@@ -1365,6 +1369,16 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + ++ if ((attr_mask IB_QP_PORT) (ibqp-qp_type
Re: [ewg] [PATCH v3] IB Core: RAW ETH support
Alekseys Senin wrote: + Add new RAW_ETY QP type in order to build RAW Ethernet packets over iWARP and RoCEE. +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY I got confused here, the change log say you add RAW_ETY wheres the patch adds RAW_ETH, which is correct? can you please fix that. Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v4] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v4] MLX4: RAW ETH support
This patch adds RAW ETH support to mlx4 driver. diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..66a1c54 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,251 @@ +Add RAW ETH QP support to Mellanox adapters +This patch relies on the RAW ETH patch to the ib core. + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 22 ++ + drivers/net/mlx4/mcg.c| 22 +- + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev-dev, mqp-mqp, gid-raw, !!(mqp-flags +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw); ++ mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev-dev, +- mqp-mqp, gid-raw); ++ err = mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 422d367..c50e110 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: + case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1064,8 +1066,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || ++ if (ibqp-qp_type == IB_QPT_RAW_ETH) ++ context-mtu_msgmax = 0xff; ++ else if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || + ibqp-qp_type == IB_QPT_RAW_ETY) + context-mtu_msgmax = (IB_MTU_4096 5) | 11; + else if (ibqp-qp_type == IB_QPT_UD) { +@@ -1237,7 +1240,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT + new_state == IB_QPS_RTR + (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || +- ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY)) { ++ ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY || ++ ibqp-qp_type == IB_QPT_RAW_ETH)) { + context-pri_path.sched_queue = (qp-port - 1) 6; + if (is_qp0(dev, qp)) + context-pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1356,7 +1360,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask IB_QP_PORT) ++ if ((attr_mask IB_QP_PORT) (ibqp-qp_type != IB_QPT_RAW_ETH) + (attr-port_num == 0 || attr-port_num dev-num_ports)) { + mlx4_ib_dbg(qpn 0x%x: invalid port number (%d) specified + for transition %d to %d. qp_type %d, +@@ -1365,6 +1369,16 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + ++ if ((attr_mask IB_QP_PORT) (ibqp-qp_type ==
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Vlad, please push to OFED. On Mon, Jun 14, 2010 at 11:48 AM, Alekseys Senin aleks...@voltaire.com wrote: This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h | 1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] MLX4: RAW ETH support
On Mon, Jun 14, 2010 at 11:56 AM, Alekseys Senin aleks...@voltaire.com wrote: +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: + case IB_QPT_GSI: return MLX4_QP_ST_MLX; ++ case IB_QPT_RAW_ETH: return MLX4_QP_ST_MLX; It would look cleaner if you'd remove the first return above let it fallback to the later. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Alekseys Senin wrote: This patch adds support to RAW ETH QP in ib core. are these patches applicable to the mainstream kernel code or would only apply/function over ofed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
The patches can't be applies to upstream kernel. An attempt to do this failed about a week or 2 ago. I guess that some of RoCEE patches are still missing in kernel upstream. -Original Message- From: Or Gerlitz Sent: Monday, June 14, 2010 12:15 PM To: Aleksey Senin Cc: Vladimir Sokolovsky; v...@dev.mellanox.co.il; e...@openfabrics.org; e...@mellanox.co.il; Moni Shoua Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support Alekseys Senin wrote: This patch adds support to RAW ETH QP in ib core. are these patches applicable to the mainstream kernel code or would only apply/function over ofed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] ofa_1_5_kernel 20100614-0200 daily build status
This email was generated automatically, please do not reply git_url: git://git.openfabrics.org/ofed_1_5/linux-2.6.git git_branch: ofed_kernel_1_5 Common build parameters: Passed: Passed on i686 with linux-2.6.21.1 Passed on i686 with linux-2.6.18 Passed on i686 with linux-2.6.19 Passed on i686 with linux-2.6.26 Passed on i686 with linux-2.6.24 Passed on i686 with linux-2.6.22 Passed on i686 with linux-2.6.27 Passed on x86_64 with linux-2.6.16.60-0.54.5-smp Passed on x86_64 with linux-2.6.16.60-0.21-smp Passed on x86_64 with linux-2.6.18 Passed on x86_64 with linux-2.6.18-128.el5 Passed on x86_64 with linux-2.6.18-164.el5 Passed on x86_64 with linux-2.6.18-194.el5 Passed on x86_64 with linux-2.6.19 Passed on x86_64 with linux-2.6.18-93.el5 Passed on x86_64 with linux-2.6.20 Passed on x86_64 with linux-2.6.21.1 Passed on x86_64 with linux-2.6.22 Passed on x86_64 with linux-2.6.26 Passed on x86_64 with linux-2.6.24 Passed on x86_64 with linux-2.6.25 Passed on x86_64 with linux-2.6.27 Passed on x86_64 with linux-2.6.27.19-5-smp Passed on x86_64 with linux-2.6.9-67.ELsmp Passed on x86_64 with linux-2.6.9-78.ELsmp Passed on x86_64 with linux-2.6.9-89.ELsmp Passed on ia64 with linux-2.6.19 Passed on ia64 with linux-2.6.18 Passed on ia64 with linux-2.6.21.1 Passed on ia64 with linux-2.6.23 Passed on ia64 with linux-2.6.22 Passed on ia64 with linux-2.6.26 Passed on ia64 with linux-2.6.24 Passed on ia64 with linux-2.6.25 Passed on ppc64 with linux-2.6.18 Passed on ppc64 with linux-2.6.19 Failed: ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Moni Shoua wrote: The patches can't be applies to upstream kernel. An attempt to do this failed. I guess that some of RoCEE patches are still missing in kernel upstream. Eli, can you elaborate on that? is there any real dependence between the RoCE patches to the raw qp ones? what is this dependence in high level, is it placement of change sets in the code or actual flows? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v5] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v5] MLX: RAW ETH support
RAW ETH Mellanox support Diffs from V4: Removed unnecessary 'return' from to_mlx4_st function Signed-off-by: Aleksey Senin aleks...@voltaire.com --- kernel_patches/fixes/mlx4_x_0050_raw_eth.patch | 255 1 files changed, 255 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/mlx4_x_0050_raw_eth.patch diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..8e72d3c --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,255 @@ +From 37e6adf1ff039e13242636e988299e53099798d1 Mon Sep 17 00:00:00 2001 +From: Aleksey Senin aleks...@voltaire.com +Date: Mon, 14 Jun 2010 13:32:37 +0300 +Subject: [PATCH] Mellanox RAW ETH support + +This patch adds RAW ETH support for Mellanox drivers + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 24 +++- + drivers/net/mlx4/mcg.c| 20 + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev-dev, mqp-mqp, gid-raw, !!(mqp-flags +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw); ++ mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev-dev, +- mqp-mqp, gid-raw); ++ err = mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 1fe4d77..a0dd1d5 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -901,7 +902,8 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_XRC:return MLX4_QP_ST_XRC; + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: +- case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_GSI: ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1066,8 +1068,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || ++ if (ibqp-qp_type == IB_QPT_RAW_ETH) ++ context-mtu_msgmax = 0xff; ++ else if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || + ibqp-qp_type == IB_QPT_RAW_ETY) + context-mtu_msgmax = (IB_MTU_4096 5) | 11; + else if (ibqp-qp_type == IB_QPT_UD) { +@@ -1239,7 +1242,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT + new_state == IB_QPS_RTR + (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || +- ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY)) { ++ ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY || ++ ibqp-qp_type == IB_QPT_RAW_ETH)) { + context-pri_path.sched_queue = (qp-port - 1) 6; + if (is_qp0(dev, qp)) + context-pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1358,7 +1362,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, +
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
I don't think there is a substantial dependence between RoCEE and raw ethernet. I don't know what Moni meant. Moni? -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 1:42 PM To: Moni Shoua; Eli Cohen Cc: Aleksey Senin; Vladimir Sokolovsky; v...@dev.mellanox.co.il; e...@openfabrics.org Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support Moni Shoua wrote: The patches can't be applies to upstream kernel. An attempt to do this failed. I guess that some of RoCEE patches are still missing in kernel upstream. Eli, can you elaborate on that? is there any real dependence between the RoCE patches to the raw qp ones? what is this dependence in high level, is it placement of change sets in the code or actual flows? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v5] IB Core: RAW ETH support
Alekseys Senin wrote: This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch Hi Aleksey, This patches do not pass scripts/checkpatch.pl: ERROR: patch seems to be corrupt (line wrapped?) #54: FILE: kernel_patches/fixes/mlx4_x_0050_raw_eth.patch:13: 4/main.c Please send them in text format (not HTML) and not from Microsoft Outlook. Thanks, Vladimir new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++[IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +-if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++if (qp-qp_type == IB_QPT_RAW_ETH) { ++/* In raw Etherent mgids the 63 msb's should be 0 */ ++if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++return -EINVAL; ++} else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +-if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++if (qp-qp_type == IB_QPT_RAW_ETH) { ++/* In raw Etherent mgids the 63 msb's should be 0 */ ++if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++return -EINVAL; ++} else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
I tested it before on the Roland tree ( iboe branch ) and it fails, because it writen in the way suitable for OFED. If adapt the patch to the Roland tree, then appling Mellanox OFED patches will fail, because it changes the same functions in the code. Here is one example: Look at __mlx4_ib_modify_qp at the Roland tree - there is no RAW_ETY support. But in the OFED version of the same function this support is present. RAW_ETH patch modify this function and looking for RAW_ETY word and without this RAW_ETH Mellanox patch will fail. The similar thing happens with patch for the verbs. There is no iWARP present in the Roland tree. On Mon, 2010-06-14 at 13:50 +0300, Eli Cohen wrote: I don't think there is a substantial dependence between RoCEE and raw ethernet. I don't know what Moni meant. Moni? -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 1:42 PM To: Moni Shoua; Eli Cohen Cc: Aleksey Senin; Vladimir Sokolovsky; v...@dev.mellanox.co.il; e...@openfabrics.org Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support Moni Shoua wrote: The patches can't be applies to upstream kernel. An attempt to do this failed. I guess that some of RoCEE patches are still missing in kernel upstream. Eli, can you elaborate on that? is there any real dependence between the RoCE patches to the raw qp ones? what is this dependence in high level, is it placement of change sets in the code or actual flows? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
On 6/14/2010 10:30 AM, Or Gerlitz wrote: Or Gerlitz wrote: I don't see any mentioning of IBoE open issues, e.g depicted in ofa bz cases such as: bz 2005 Rocce fails when 1 port is IB and the other is Ethernet bz 2024 clients fail when global pauses or PPP enabled on switch bz 2043 OFED 1.5.1 crashes after running Mcast over RoCE Hi Tziporet, I didn't see any response from you, can this be addressed? Or. Hi Or Sorry for not answering before Issue 2043 - is already fixed Issue 2005 - We released 2.7.700 FW that solve this issue. Issue 2024 - Eli just answered in bugzilla. Tziporet ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Tziporet Koren wrote: Hi Or, sorry for not answering before Issue 2043 - is already fixed Issue 2005 - We released 2.7.700 FW that solve this issue. Issue 2024 - Eli just answered in bugzilla. Hi Tziporet, 1st and most, good to hear from you... thanks for the detailed answer. Still, for bz 2024, Eli's reply was addressing a case where the Cisco switch was instrumented for PFC, but not the case of global pause under which the problem still happens, per the original description. Did someone from Mellanox actually got to validate bz 2043, it was declared fixed and verified in the very same minute and by the same person... Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
On 6/14/2010 2:17 PM, Or Gerlitz wrote: Did someone from Mellanox actually got to validate bz 2043, it was declared fixed and verified in the very same minute and by the same person... I will check Tziporet ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Or, I don't know what you're talking about WRT 2043. It's status is RESOLVED, not VERIFIED. And you may address me directly, we've met a few times, haven't we? We'll check about the global frames case. -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 2:17 PM To: tzipo...@dev.mellanox.co.il Cc: OpenFabrics EWG; Eli Cohen Subject: Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available Tziporet Koren wrote: Hi Or, sorry for not answering before Issue 2043 - is already fixed Issue 2005 - We released 2.7.700 FW that solve this issue. Issue 2024 - Eli just answered in bugzilla. Hi Tziporet, 1st and most, good to hear from you... thanks for the detailed answer. Still, for bz 2024, Eli's reply was addressing a case where the Cisco switch was instrumented for PFC, but not the case of global pause under which the problem still happens, per the original description. Did someone from Mellanox actually got to validate bz 2043, it was declared fixed and verified in the very same minute and by the same person... Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Eli Cohen wrote: I don't know what you're talking about WRT 2043. It's status is RESOLVED, not VERIFIED. And you may address me directly [...] we'll check about the global frames case Hi Eli, please hold the horses... I was confusing between resolved to verified, mistakes happen, you know. Saying all that, thanks for looking into validating the case! Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
OK, no problem. -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 3:10 PM To: Eli Cohen Cc: tzipo...@dev.mellanox.co.il; OpenFabrics EWG Subject: Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available Eli Cohen wrote: I don't know what you're talking about WRT 2043. It's status is RESOLVED, not VERIFIED. And you may address me directly [...] we'll check about the global frames case Hi Eli, please hold the horses... I was confusing between resolved to verified, mistakes happen, you know. Saying all that, thanks for looking into validating the case! Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v6] IB CORE: RAW ETH support
This patch add RAW ETH support to IB core. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- .../fixes/core_0560_raw_eth_common.patch | 66 1 files changed, 66 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/core_0560_raw_eth_common.patch diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..52d7be7 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,66 @@ +From b76993213461212cfdb40817b454513a91ee4e6e Mon Sep 17 00:00:00 2001 +From: Aleksey Senin aleks...@voltaire.com +Date: Mon, 14 Jun 2010 15:20:40 +0300 +Subject: [PATCH 1/2] Verbs RAW ETH support + +This patch add RAW ETH support in IB core. + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + -- 1.6.5.2 ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v6] MLX: RAW ETH support
This patch add RAW ETH support in mlx4 driver. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- kernel_patches/fixes/mlx4_x_0050_raw_eth.patch | 255 1 files changed, 255 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/mlx4_x_0050_raw_eth.patch diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..c8f89c0 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,255 @@ +From fb0b22d037f469b8f052ec650aeed78f4d21cec9 Mon Sep 17 00:00:00 2001 +From: Aleksey Senin aleks...@voltaire.com +Date: Mon, 14 Jun 2010 15:26:25 +0300 +Subject: [PATCH 2/2] Mellanox RAW ETH support. + Add RAW ETH support in mlx4 drivers. + + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 24 +++- + drivers/net/mlx4/mcg.c| 20 + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev-dev, mqp-mqp, gid-raw, !!(mqp-flags +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw); ++ mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev-dev, +- mqp-mqp, gid-raw); ++ err = mlx4_multicast_detach(mdev-dev, mqp-mqp, gid-raw, ++ (ibqp-qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 1fe4d77..a0dd1d5 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -901,7 +902,8 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_XRC:return MLX4_QP_ST_XRC; + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: +- case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_GSI: ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1066,8 +1068,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || ++ if (ibqp-qp_type == IB_QPT_RAW_ETH) ++ context-mtu_msgmax = 0xff; ++ else if (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || + ibqp-qp_type == IB_QPT_RAW_ETY) + context-mtu_msgmax = (IB_MTU_4096 5) | 11; + else if (ibqp-qp_type == IB_QPT_UD) { +@@ -1239,7 +1242,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT + new_state == IB_QPS_RTR + (ibqp-qp_type == IB_QPT_GSI || ibqp-qp_type == IB_QPT_SMI || +- ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY)) { ++ ibqp-qp_type == IB_QPT_UD || ibqp-qp_type == IB_QPT_RAW_ETY || ++ ibqp-qp_type == IB_QPT_RAW_ETH)) { + context-pri_path.sched_queue = (qp-port - 1) 6; + if (is_qp0(dev, qp)) + context-pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1358,7 +1362,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask
Re: [ewg] [PATCH v6] IB CORE: RAW ETH support
Aleksey Senin wrote: This patch add RAW ETH support to IB core. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v6] MLX: RAW ETH support
Aleksey Senin wrote: This patch add RAW ETH support in mlx4 driver. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] RAW ETH for NES
Hi, Miroslaw. My patches for new RAW ETH was applied to the OFED kernel so can you fix your code to use RAW ETH instead of RAW ETY and push changes to OFED? thanks. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH] ofa_kernel madeye.c
Thanks! From: Vladimir Sokolovsky [v...@dev.mellanox.co.il] Sent: Sunday, June 13, 2010 5:01 AM To: Mike Heinz Cc: e...@openfabrics.org Subject: Re: [ewg] [PATCH] ofa_kernel madeye.c Mike Heinz wrote: This is a simple fix. Several of the snoop filters in ./drivers/infiniband/util/madeye.c don't switch the attribute id to host byte order before checking it. Signed-off-by: Michael Heinz michael.he...@qlogic.com Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 1/2]
Hi Vlad Please apply this patch. Now, when RAW patches that you accepted today are applied, RAW ETH QP support is broken for NE driver unless this patch is applied. thanks Aleksey Senin wrote: This patch will fix existing NES code to support RAW_ETH instead of RAW_ETY type. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- kernel_patches/fixes/nes_0033_ima.patch | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel_patches/fixes/nes_0033_ima.patch b/kernel_patches/fixes/nes_0033_ima.patch index ed21edd..304fe73 100755 --- a/kernel_patches/fixes/nes_0033_ima.patch +++ b/kernel_patches/fixes/nes_0033_ima.patch @@ -1,8 +1,8 @@ RDMA/nes: add support of iWARP multicast acceleration over - IB_QPT_RAW_ETY QP type + IB_QPT_RAW_ETH QP type This patch implements iWarp multicast acceleration (IMA) -over IB_QPT_RAW_ETY QP type in nes driver. +over IB_QPT_RAW_ETH QP type in nes driver. Application creates a raw eth QP (IBV_QPT_RAW_ETH in user-space) and manages the multicast via ibv_attach_mcast and ibv_detach_mcast calls. @@ -2301,7 +2301,7 @@ index 098b56f..1801a54 100644 -nes_debug(NES_DBG_QP, Invalid QP type: %d\n, init_attr-qp_type); -return ERR_PTR(-EINVAL); + -+case IB_QPT_RAW_ETY: ++case IB_QPT_RAW_ETH: +if (!ibpd-uobject) +return ERR_PTR(-EINVAL); + @@ -2428,7 +2428,7 @@ index 098b56f..1801a54 100644 atomic_inc(sw_qps_destroyed); nesqp-destroyed = 1; -+if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETY) { ++if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETH) { +/* check the QP refernece count */ +if (atomic_read(nesqp-refcount) == 0) +BUG(); @@ -2558,7 +2558,7 @@ index 098b56f..1801a54 100644 nesqp-hwqp.qp_id, attr-qp_state, nesqp-ibqp_state, nesqp-iwarp_state, atomic_read(nesqp-refcount)); -+if (ibqp-qp_type == IB_QPT_RAW_ETY) ++if (ibqp-qp_type == IB_QPT_RAW_ETH) +return 0; + spin_lock_irqsave(nesqp-lock, qplockflags); ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 1/2]
Moni Shoua wrote: Hi Vlad Please apply this patch. Now, when RAW patches that you accepted today are applied, RAW ETH QP support is broken for NE driver unless this patch is applied. thanks Applied, Regards, Vladimir Aleksey Senin wrote: This patch will fix existing NES code to support RAW_ETH instead of RAW_ETY type. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- kernel_patches/fixes/nes_0033_ima.patch | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel_patches/fixes/nes_0033_ima.patch b/kernel_patches/fixes/nes_0033_ima.patch index ed21edd..304fe73 100755 --- a/kernel_patches/fixes/nes_0033_ima.patch +++ b/kernel_patches/fixes/nes_0033_ima.patch @@ -1,8 +1,8 @@ RDMA/nes: add support of iWARP multicast acceleration over -IB_QPT_RAW_ETY QP type +IB_QPT_RAW_ETH QP type This patch implements iWarp multicast acceleration (IMA) -over IB_QPT_RAW_ETY QP type in nes driver. +over IB_QPT_RAW_ETH QP type in nes driver. Application creates a raw eth QP (IBV_QPT_RAW_ETH in user-space) and manages the multicast via ibv_attach_mcast and ibv_detach_mcast calls. @@ -2301,7 +2301,7 @@ index 098b56f..1801a54 100644 - nes_debug(NES_DBG_QP, Invalid QP type: %d\n, init_attr-qp_type); - return ERR_PTR(-EINVAL); + -+ case IB_QPT_RAW_ETY: ++ case IB_QPT_RAW_ETH: + if (!ibpd-uobject) + return ERR_PTR(-EINVAL); + @@ -2428,7 +2428,7 @@ index 098b56f..1801a54 100644 atomic_inc(sw_qps_destroyed); nesqp-destroyed = 1; -+ if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETY) { ++ if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETH) { + /* check the QP refernece count */ + if (atomic_read(nesqp-refcount) == 0) + BUG(); @@ -2558,7 +2558,7 @@ index 098b56f..1801a54 100644 nesqp-hwqp.qp_id, attr-qp_state, nesqp-ibqp_state, nesqp-iwarp_state, atomic_read(nesqp-refcount)); -+ if (ibqp-qp_type == IB_QPT_RAW_ETY) ++ if (ibqp-qp_type == IB_QPT_RAW_ETH) + return 0; + spin_lock_irqsave(nesqp-lock, qplockflags); ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] 2.6.32 patch has carriage returns in it that are causing rejects
I cloned ofed_1_5/linux-2.6.git and tried to do: ./ofed_scripts/ofed_patch.sh --with-backport=2.6.32 It rejected kernel_patches/backport/2.6.32/mlx4_semaphore_include.patch because the latter ends lines with carriage return and newline. I checked other patches and they only have newline. Should I submit a patch to the patch? Thanks. -jeff ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] 2.6.32 patch has carriage returns in it that are causing rejects
On 06/14/10 11:16, Jeff Becker wrote: I cloned ofed_1_5/linux-2.6.git and tried to do: ./ofed_scripts/ofed_patch.sh --with-backport=2.6.32 It rejected kernel_patches/backport/2.6.32/mlx4_semaphore_include.patch because the latter ends lines with carriage return and newline. I checked other patches and they only have newline. Should I submit a patch to the patch? Thanks. I find the ^M's in: kernel_patches/backport/2.6.32/new_frags_interface.patch kernel_patches/backport/2.6.32/net_skb-dst_accessors.patch as well. Is there a special option I need to give to ofed_checkout.sh? Thanks. -jeff -jeff ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg