Hi Leon, On Tue, Jun 13, 2017 at 11:33 AM, Leon Romanovsky <leon@xxxxxxxxxx> wrote: > On Tue, Jun 13, 2017 at 08:24:51AM +0530, Somnath Kotur wrote: >> Currently sgid_index is of type 'u8' so we can't really go beyond 128 >> unique GID entries(one for each type so total of 256 GID entries). >> Change it to u16 so atleast 4k GID entries (as many VLANs that can be added) >> can be accomodated. >> >> Signed-off-by: Somnath Kotur <somnath.kotur@xxxxxxxxxxxx> >> --- >> drivers/infiniband/core/verbs.c | 2 +- >> include/rdma/ib_verbs.h | 4 ++-- >> 2 files changed, 3 insertions(+), 3 deletions(-) > > What type of testing did this change get? > According to spec, "The maximum number (N) of unicast GIDs supported per endport is > implementation specific". > > mlx5 and mlx4 are limited to 128 GIDs and user will get errors if he try to set > more than that. > Agree with your points, and yes this was tested against an adapter that could support more than 128 GIDs Thanks Som >> >> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c >> index 4792f52..3161e2c 100644 >> --- a/drivers/infiniband/core/verbs.c >> +++ b/drivers/infiniband/core/verbs.c >> @@ -549,7 +549,7 @@ int ib_init_ah_from_wc(struct ib_device *device, u8 port_num, >> flow_class = be32_to_cpu(grh->version_tclass_flow); >> rdma_ah_set_grh(ah_attr, &sgid, >> flow_class & 0xFFFFF, >> - (u8)gid_index, hoplimit, >> + (u16)gid_index, hoplimit, >> (flow_class >> 20) & 0xFF); >> >> } >> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h >> index ba8314e..30ce942 100644 >> --- a/include/rdma/ib_verbs.h >> +++ b/include/rdma/ib_verbs.h >> @@ -639,7 +639,7 @@ struct ib_event_handler { >> struct ib_global_route { >> union ib_gid dgid; >> u32 flow_label; >> - u8 sgid_index; >> + u16 sgid_index; >> u8 hop_limit; >> u8 traffic_class; >> }; >> @@ -3612,7 +3612,7 @@ static inline void rdma_ah_set_interface_id(struct rdma_ah_attr *attr, >> >> static inline void rdma_ah_set_grh(struct rdma_ah_attr *attr, >> union ib_gid *dgid, u32 flow_label, >> - u8 sgid_index, u8 hop_limit, >> + u16 sgid_index, u8 hop_limit, >> u8 traffic_class) >> { >> struct ib_global_route *grh = rdma_ah_retrieve_grh(attr); >> -- >> 1.8.3.1 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html