public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next 0/4] IP based RoCE GID Addressing
@ 2013-06-13 15:01 Or Gerlitz
       [not found] ` <1371135704-5712-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 10+ messages in thread
From: Or Gerlitz @ 2013-06-13 15:01 UTC (permalink / raw)
  To: roland-DgEjT+Ai2ygdnm+yROfE0A
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, monis-VPRAkNaXOzVWk0Htik3J/w,
	matanb-VPRAkNaXOzVWk0Htik3J/w, Or Gerlitz

Currently, the IB stack (core + drivers) handle RoCE (IBoE) gids as
they encode related Ethernet net-device interface MAC address and 
possibly VLAN id.

This series changes RoCE GIDs to encode IP addresses (IPv4 + IPv6)
of the that Ethernet interface, under the following reasoning:

1. There are environments where the compute entity that runs the RoCE 
stack is not aware that its traffic is vlan-tagged. This results with that 
node to create/assume wrong GIDs from the view point of a peer node which 
is aware to vlans. 

Note that "node" here can be physical node connected to Ethernet switch acting in 
access mode talking to another node which does vlan insertion/stripping by itself.

Or another example is SRIOV Virtual Function which is configured to work in "VST" 
mode (Virtual-Switch-Tagging) such that the hypervisor configures the HW eSWitch 
to do vlan insertion for the vPORT representing that function.

2. When RoCE traffic is inspected (mirrored/trapped) in Ethernet switches for 
monitoring and security purposes. It is much more natural for both humans and 
automated utilities (...) to observe IP addresses in a certain offset into RoCE 
frames L3 header vs. MAC/VLANs (which are there anyway in the L2 header of that 
frame, so they are not gone by this change).

3. Some Bonding/Teaming advanced mode such as balance-alb and balance-tlb 
are using multiple underlying devices in parallel, and hence packets always 
carry the bond IP address but different streams have different source MACs.
The approach brought by this series is part from what would allow to 
support that for RoCE traffic too.

The 1st patch modified the IB core to cope with the new scheme, and the 2nd does that 
for the mlx4_ib driver. The 3rd patch sets the foundation for extending uverbs to
the new scheme which was introduced lately, and the fourth patch adds two extended
uCMA commands and two extended uVERBS commands which are now exported to user space.

These extended verbs will allow to enhance user space libraries such that they work 
OK over the modified scheme. All RC applications using librdmacm will not need to be 
modified at all, since the change will be encapsulated into that library.

The ocrdma driver needs to go through a similar patch as the mlx4_ib one, we can
surely do that patch, just need to dig there a little further. 

Or.

Igor Ivanov (1):
  IB/core: Infra-structure to support verbs extensions through uverbs

Matan Barak (1):
  IB/core: Add RoCE IP based addressing extensions towards user space

Moni Shoua (2):
  IB/core: RoCE IP based GID addressing
  IB/mlx4: RoCE IP based GID addressing

 drivers/infiniband/core/cm.c              |    3 +
 drivers/infiniband/core/cma.c             |   39 ++-
 drivers/infiniband/core/sa_query.c        |    5 +
 drivers/infiniband/core/ucma.c            |  190 +++++++++++--
 drivers/infiniband/core/uverbs.h          |    2 +
 drivers/infiniband/core/uverbs_cmd.c      |  330 ++++++++++++++++-----
 drivers/infiniband/core/uverbs_main.c     |   33 ++-
 drivers/infiniband/core/uverbs_marshall.c |   94 ++++++-
 drivers/infiniband/core/verbs.c           |    7 +
 drivers/infiniband/hw/mlx4/ah.c           |   21 +-
 drivers/infiniband/hw/mlx4/cq.c           |    5 +
 drivers/infiniband/hw/mlx4/main.c         |  461 ++++++++++++++++++++---------
 drivers/infiniband/hw/mlx4/mlx4_ib.h      |    3 +
 drivers/infiniband/hw/mlx4/qp.c           |   19 +-
 include/linux/mlx4/cq.h                   |   14 +-
 include/rdma/ib_addr.h                    |   45 ++--
 include/rdma/ib_marshall.h                |   12 +
 include/rdma/ib_sa.h                      |    3 +
 include/rdma/ib_verbs.h                   |    4 +
 include/uapi/rdma/ib_user_sa.h            |   34 ++-
 include/uapi/rdma/ib_user_verbs.h         |  130 ++++++++-
 include/uapi/rdma/rdma_user_cm.h          |   21 ++-
 22 files changed, 1157 insertions(+), 318 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-07-16  3:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-13 15:01 [PATCH for-next 0/4] IP based RoCE GID Addressing Or Gerlitz
     [not found] ` <1371135704-5712-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-13 15:01   ` [PATCH for-next 1/4] IB/core: RoCE IP based GID addressing Or Gerlitz
2013-06-13 15:01   ` [PATCH for-next 2/4] IB/mlx4: " Or Gerlitz
2013-06-13 15:01   ` [PATCH for-next 3/4] IB/core: Infra-structure to support verbs extensions through uverbs Or Gerlitz
2013-06-13 15:01   ` [PATCH for-next 4/4] IB/core: Add RoCE IP based addressing extensions towards user space Or Gerlitz
     [not found]     ` <1371135704-5712-5-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-13 17:09       ` Jason Gunthorpe
     [not found]         ` <20130613170939.GB21570-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-14 20:42           ` Or Gerlitz
2013-06-13 17:00   ` [PATCH for-next 0/4] IP based RoCE GID Addressing Jason Gunthorpe
     [not found]     ` <20130613170011.GA21570-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-14 20:35       ` Or Gerlitz
     [not found]         ` <CALsNU1PdjV2N4c3j9gQ0BRrd4GhOypDMMjmHEgF1ffCYOXeC1g@mail.gmail.com>
     [not found]           ` <CALsNU1PdjV2N4c3j9gQ0BRrd4GhOypDMMjmHEgF1ffCYOXeC1g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-07-16  3:30             ` Or Gerlitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox