> Ethernet link layer has well defined L2 headers. > So there is intention to create such headers in user space without > actually netdev->ifindex attached to UD or SRC QP, CAP_NET_RAW must be > added. I haven't seen anything in the reviews that indicate that user space is able to create its own headers over Ethernet. It looks like it uses a proprietary addressing scheme with one address per device, and my guess is it relies on the SRD/UD QP to generate the headers. > > This is what I mean when I talked about evolution earlier. If want > to > > do non- verbs then do it right, not as a special QP hack like usnic > did. These are the verbs that EFA appears to support based on what is actually being passed to the HW: Create/destroy QP Create/destroy CQ Create/destroy MR Create/destroy AH It supports PD calls, but I'm unsure if that's really a thing. On the surface it looks like EFA is a simplified verbs-like device that supports a proprietary transport, somewhat equivalent to an IB/RoCE device that only supports UD QPs. Adding a new QP type looks sensible. I think the mistake in the tree is either having different protocols map to the same QP type value, or not having a separate protocol field provided as part of create QP. - Sean