Re: Need to set if_index in ib_init_ah_from_wc() ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 19, 2017 at 10:02:17AM +0530, Devesh Sharma wrote:

> > Before I post the patch,
> > We found that bnx_re driver doesn't set IB_WC_WITH_VLAN in the QP1 wc.
> > Fail to set vlan id and IB_WC_WITH_VLAN flag when incoming QP1 packet in vlan, will fail to search the right GID.
> 
> I am under impression that IB_WC_WITH_VLAN flags was supposed to be
> set only if any vendor's WC reports VLAN-ID, otherwise it had to be
> derived from somewhere else. Are we moving away from this notion?

If your hardware does not report the VLAN, then it cannot set the
flag.

The issue here, is that we need a 100% reliable way to go from a WC to
the gid table index that was used to recieve the packet in the
hardware. The spec is defective here, IMHO, because it does not define
how this case should work.

Ideally hardware will report the index directly in the WC, but AFAIK,
no hardware does this.

Parav is looking at mlx hardware which reports the headers, and I
guess, he is planning to search the GID table in software using the
headers from the WC, GRH, etc.

Not sure what broadcom hardware can do here.

But, the basic principle holds, we *MUST* recover the rx GID index the
hardware used. Tell Parav how to do that for your chip.

If brodcom hardware cannot report the GID index directly, and does not
report all the headers (eg vlan) then it *MUST* reject GID table
configurations that create an ambiguity, eg it cannot allow the same
IP on different VLANs. This is horrible and you should try to avoid
that by having a sensible WC..

Jason
--
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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux