Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751850AbbDPPMV (ORCPT ); Thu, 16 Apr 2015 11:12:21 -0400 Received: from mga02.intel.com ([134.134.136.20]:3661 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750715AbbDPPMP (ORCPT ); Thu, 16 Apr 2015 11:12:15 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,588,1422950400"; d="scan'208";a="557142180" From: "Hefty, Sean" To: Hal Rosenstock , Or Gerlitz CC: Michael Wang , Roland Dreier , Hal Rosenstock , "linux-rdma@vger.kernel.org" , Linux Kernel , Tom Tucker , Steve Wise , Hoang-Nam Nguyen , Christoph Raisch , infinipath , Eli Cohen , "Latif, Faisal" , Jack Morgenstein , "Or Gerlitz" , Haggai Eran , "Weiny, Ira" , Tom Talpey , Jason Gunthorpe , Doug Ledford Subject: RE: [PATCH v3 25/28] IB/Verbs: Use management helper cap_af_ib() Thread-Topic: [PATCH v3 25/28] IB/Verbs: Use management helper cap_af_ib() Thread-Index: AQHQdeZSWCFBeA2hN0Ogsam8SscokJ1QJDOAgAAFOoD//5eVgA== Date: Thu, 16 Apr 2015 15:09:21 +0000 Message-ID: <1828884A29C6694DAF28B7E6B8A82373A8FC23BF@ORSMSX109.amr.corp.intel.com> References: <552BB470.4090407@profitbricks.com> <552BB801.2010506@profitbricks.com> <552FC441.5070500@dev.mellanox.co.il> In-Reply-To: <552FC441.5070500@dev.mellanox.co.il> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id t3GFCPnJ022127 Content-Length: 2357 Lines: 51 > >> diff --git a/drivers/infiniband/core/cma.c > b/drivers/infiniband/core/cma.c > >> index 65e41f4..7f5815d 100644 > >> --- a/drivers/infiniband/core/cma.c > >> +++ b/drivers/infiniband/core/cma.c > >> @@ -470,7 +470,7 @@ static int cma_resolve_ib_dev(struct > rdma_id_private *id_priv) > >> > >> list_for_each_entry(cur_dev, &dev_list, list) { > >> for (p = 1; p <= cur_dev->device->phys_port_cnt; ++p) { > >> - if (!rdma_ib_or_iboe(cur_dev->device, p)) > >> + if (!cap_af_ib(cur_dev->device, p)) > >> continue; > >> > >> if (ib_find_cached_pkey(cur_dev->device, p, > pkey, &index)) > >> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > >> index 29ddd14..dfe33f3 100644 > >> --- a/include/rdma/ib_verbs.h > >> +++ b/include/rdma/ib_verbs.h > >> @@ -1879,6 +1879,21 @@ static inline int cap_ipoib(struct ib_device > *device, u8 port_num) > >> } > >> > >> /** > >> + * cap_af_ib - Check if the port of device has the capability > >> + * Native Infiniband Address. > >> + * > >> + * @device: Device to be checked > >> + * @port_num: Port number of the device > >> + * > >> + * Return 0 when port of the device don't support > >> + * Native Infiniband Address. > >> + */ > >> +static inline int cap_af_ib(struct ib_device *device, u8 port_num) > >> +{ > >> + return rdma_ib_or_iboe(device, port_num); > >> +} > > > > Sean, can you please put a precise writeup what does it take to > > support AF_IB... I am a bit > > confused here and wasn't sure if this can be supported with RoCE. > > I think this means IB GID addressing is checked (Native Infiniband > Address) and not AF_IB (which is socket address/protocol family like > INET and INET6). > > I think this naming is confusing and maybe cap_ib_gid is better ? I need to trace back through the code to see where this is used, but I thought the check was determining if an address conveyed using sockaddr_ib applied to the port. Sockaddr_ib was intended to target IB-classic specifically. It should apply to RoCE/IBoE as well. I don't think it applies to RoCEv2/IBoUDP without a translation. ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?