The new qp type designated usage is from user-space in Ethernet environments,
e.g by applications that do TCP/IP offloading. Only processes with the NET_RAW
capability may open such qp. The name raw packet was selected to resemble the
similarity to AF_PACKET / SOL_RAW sockets. Applications that use this qp type
should deal with whole packets, including link level headers.

This series allows to create such QPs and send packets over them. To receive
packets, flow steering support has to be added to the verbs and low-level
drivers. Flow Steering is the ability to program the HCA to direct a packet
which matches a given flow specification to a given QP. Flow specs set by
applications are typically made of L3 (IP) and L4 (TCP/UDP) based tuples,
where network drivers typically use L2 based tuples. Core and mlx4 patches
for flow steering are expected in the coming weeks.

Signed-off-by: Or Gerlitz <[email protected]>
---

changes from previous posting (called "V3", December 2010):

pointers follow
        0/4 http://marc.info/?l=linux-rdma&m=129162076818154&w=2
        1/4 http://marc.info/?l=linux-rdma&m=129162091418289&w=2
        2/4 http://marc.info/?l=linux-rdma&m=129162097418418&w=2
        3/4 http://marc.info/?l=linux-rdma&m=129162104318490&w=2
        4/4 http://marc.info/?l=linux-rdma&m=129165436031094&w=2

 - at the verbs level, IBTA GIDs have nothing to do with Ethernet/IP/TCP flow
  specifications. Hence multicast attach for RAW Packet QPs, which was allowed 
there
  under the implicit assumption that GIDs contain Ethernet link level 
information
  was removed from the series.


Or Gerlitz (2):
  IB/core: add RAW Packet QP type
  IB/mlx4: add Raw Packet QP support

 drivers/infiniband/core/uverbs_cmd.c |    3 +++
 drivers/infiniband/core/verbs.c      |    1 +
 drivers/infiniband/hw/mlx4/qp.c      |   29 ++++++++++++++++++++++++++---
 include/rdma/ib_verbs.h              |    2 +-
 4 files changed, 31 insertions(+), 4 deletions(-)

for libibverbs:

Or Gerlitz (1):
 include/infiniband/verbs.h |    3 ++-
 man/ibv_create_qp.3        |    2 +-
 man/ibv_modify_qp.3        |   11 ++++++++++-
 3 files changed, 13 insertions(+), 3 deletions(-)

for libmlx4:

Or Gerlitz (1):
 qp.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to