I think that Eli was referring to the MLX4 specific patches but we'll send the common and specific patches together once again
-----Original Message----- From: Vladimir Sokolovsky [mailto:v...@dev.mellanox.co.il] Sent: Sunday, June 13, 2010 5:28 PM To: Aleksey Senin Cc: Moni Shoua; ewg@lists.openfabrics.org; Eli Cohen; Walukiewicz, Miroslaw Subject: Re: [ewg] RAW_ETH support [PATCH 1/1] Alekseys Senin wrote: > Vlad, > apply this patch. It will add new RAW_ETH enum and used by NES/Intel driver in their code. > > This patch add RAW_ETH QP type to verbs layer. > > Signed-off-by: Aleksey Senin <aleks...@voltaire.com> > --- Hi Aleksey, I understand from Eli that there are issues with this patch. So, please send the fixed version. Regards, Vladimir > kernel_patches/fixes/core_0560_raw_eth.patch | 63 ++++++++++++++++++++++++++ > 1 files changed, 63 insertions(+), 0 deletions(-) create mode 100644 > kernel_patches/fixes/core_0560_raw_eth.patch > > diff --git a/kernel_patches/fixes/core_0560_raw_eth.patch > b/kernel_patches/fixes/core_0560_raw_eth.patch > new file mode 100644 > index 0000000..2a8b30f > --- /dev/null > +++ b/kernel_patches/fixes/core_0560_raw_eth.patch > @@ -0,0 +1,63 @@ > + Add new RAW_ETY QP type in order to build RAW Ethernet packets over > + iWARP and RDMAOE protocols. > + > + > +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