Message ID | 51266F1F.608@dev.mellanox.co.il (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Hal Rosenstock |
Headers | show |
What about QP1? It was my understanding that CM was still required for RoCE. Ira On Thu, 21 Feb 2013 14:01:51 -0500 Hal Rosenstock <hal@dev.mellanox.co.il> wrote: > > Signed-off-by: Ilya Nelkenbaum <ilyan@mellanox.com> > --- > diff --git a/src/umad.c b/src/umad.c > index 8f817d2..8ab5e80 100644 > --- a/src/umad.c > +++ b/src/umad.c > @@ -256,6 +256,11 @@ static int resolve_ca_port(char *ca_name, int *port) > ret = -1; > goto Exit; > } > + if (strcmp(ca.ports[*port]->link_layer, "InfiniBand") && > + strcmp(ca.ports[*port]->link_layer, "IB")) { > + ret = -1; > + goto Exit; > + } > if (ca.ports[*port]->state == 4) { > ret = 1; > goto Exit; > @@ -270,6 +275,9 @@ static int resolve_ca_port(char *ca_name, int *port) > DEBUG("checking port %d", i); > if (!ca.ports[i]) > continue; > + if (strcmp(ca.ports[i]->link_layer, "InfiniBand") && > + strcmp(ca.ports[i]->link_layer, "IB")) > + continue; > if (up < 0 && ca.ports[i]->phys_state == 5) > up = *port = i; > if (ca.ports[i]->state == 4) { > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2/21/2013 2:44 PM, Ira Weiny wrote: > What about QP1? It was my understanding that CM was still required for RoCE. Yes, RoCE requires CM support but AFAIK CM doesn't use/require these interfaces to get send or receive it's MADs. RoCE is a weird animal in terms of IB management as SM/QP0 is not used/deprecated and QP1 is only required for CM with most other QP1 things beyond the spec with the exception of SA which is also not used/deprecated. -- Hal > > Ira > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> On 2/21/2013 2:44 PM, Ira Weiny wrote: > > What about QP1? It was my understanding that CM was still required for RoCE. > > Yes, RoCE requires CM support but AFAIK CM doesn't use/require these > interfaces to get send or receive it's MADs. > > RoCE is a weird animal in terms of IB management as SM/QP0 is not > used/deprecated and QP1 is only required for CM with most other QP1 > things beyond the spec with the exception of SA which is also not > used/deprecated. Does the kernel expose QP1 for RoCE to user space? -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2/21/2013 3:08 PM, Hefty, Sean wrote: >> On 2/21/2013 2:44 PM, Ira Weiny wrote: >>> What about QP1? It was my understanding that CM was still required for RoCE. >> >> Yes, RoCE requires CM support but AFAIK CM doesn't use/require these >> interfaces to get send or receive it's MADs. >> >> RoCE is a weird animal in terms of IB management as SM/QP0 is not >> used/deprecated and QP1 is only required for CM with most other QP1 >> things beyond the spec with the exception of SA which is also not >> used/deprecated. > > Does the kernel expose QP1 for RoCE to user space? kernel MAD does not create QP0 for ethernet link layer ports but it does create QP1. There's no link layer specific code in kernel user MAD so I presume that QP1 is exposed to user space. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/src/umad.c b/src/umad.c index 8f817d2..8ab5e80 100644 --- a/src/umad.c +++ b/src/umad.c @@ -256,6 +256,11 @@ static int resolve_ca_port(char *ca_name, int *port) ret = -1; goto Exit; } + if (strcmp(ca.ports[*port]->link_layer, "InfiniBand") && + strcmp(ca.ports[*port]->link_layer, "IB")) { + ret = -1; + goto Exit; + } if (ca.ports[*port]->state == 4) { ret = 1; goto Exit; @@ -270,6 +275,9 @@ static int resolve_ca_port(char *ca_name, int *port) DEBUG("checking port %d", i); if (!ca.ports[i]) continue; + if (strcmp(ca.ports[i]->link_layer, "InfiniBand") && + strcmp(ca.ports[i]->link_layer, "IB")) + continue; if (up < 0 && ca.ports[i]->phys_state == 5) up = *port = i; if (ca.ports[i]->state == 4) {
Signed-off-by: Ilya Nelkenbaum <ilyan@mellanox.com> --- -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html