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