Messages in this thread | | | From | Michael Wang <> | Subject | Re: [PATCH RESEND] infiniband:core:Add needed error path in cm_init_av_by_path | Date | Wed, 16 Dec 2015 11:26:39 +0100 |
| |
On 12/15/2015 06:30 PM, Jason Gunthorpe wrote: > On Tue, Dec 15, 2015 at 05:38:34PM +0100, Michael Wang wrote: >> The hop_limit is only suggest that the package allowed to be >> routed, not have to, correct? > > If the hop limit is >= 2 (?) then the GRH is mandatory. The > SM will return this information in the PathRecord if it determines a > GRH is required. The whole stack follows this protocol. > > The GRH is optional for in-subnet communications.
Thanks for the explain :-)
I've rechecked the ib_init_ah_from_path() again, and found it still set IB_AH_GRH when the GID cache missing, but with:
grh.sgid_index = 0 grh.flow_label = 0 grh.hop_limit = 0 grh.traffic_class = 0
Not sure if it's just coincidence, hop_limit is 0, so router will discard the pkg and GRH won't be used, the transaction in subnet still works.
Could this by designed as an optimization for the case like when SM reassigning the GID?
BTW, cma_sidr_rep_handler() also call ib_init_ah_from_path() with out a check on return.
Regards, Michael Wang
> > Jason >
| |