Mark Zhang 5a37494933 RDMA/cma: Multiple path records support with netlink channel
Support receiving inbound and outbound IB path records (along with GMP
PathRecord) from user-space service through the RDMA netlink channel.
The LIDs in these 3 PRs can be used in this way:
1. GMP PR: used as the standard local/remote LIDs;
2. DLID of outbound PR: Used as the "dlid" field for outbound traffic;
3. DLID of inbound PR: Used as the "dlid" field for outbound traffic in
   responder side.

This is aimed to support adaptive routing. With current IB routing
solution when a packet goes out it's assigned with a fixed DLID per
target, meaning a fixed router will be used.
The LIDs in inbound/outbound path records can be used to identify group
of routers that allow communication with another subnet's entity. With
them packets from an inter-subnet connection may travel through any
router in the set to reach the target.

As confirmed with Jason, when sending a netlink request, kernel uses
LS_RESOLVE_PATH_USE_ALL so that the service knows kernel supports
multiple PRs.

Signed-off-by: Mark Zhang <markzhang@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Link: https://lore.kernel.org/r/2fa2b6c93c4c16c8915bac3cfc4f27be1d60519d.1662631201.git.leonro@nvidia.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2022-09-22 12:35:21 +03:00
..
2022-08-11 13:26:09 -07:00
2022-08-06 16:38:17 -07:00
2022-08-04 12:12:54 -07:00
2022-08-04 12:12:54 -07:00
2022-08-06 17:05:21 -07:00
2022-08-04 19:30:35 -07:00
2022-08-04 19:30:35 -07:00
2022-08-03 19:52:08 -07:00
2022-08-06 16:38:17 -07:00
2022-08-04 18:34:05 -07:00
2022-08-11 19:12:15 -07:00
2022-08-04 18:19:14 -07:00
2022-08-05 10:07:23 -07:00
2022-08-07 17:52:35 -07:00
2022-08-04 19:41:09 -07:00
2022-08-06 10:25:16 -07:00
2022-08-04 19:41:09 -07:00
2022-08-05 14:13:45 -07:00
2022-08-12 09:50:34 -07:00
2022-08-13 13:37:36 -07:00
2022-08-04 12:12:54 -07:00
2022-08-03 17:49:38 +02:00
2022-08-04 19:30:35 -07:00
2022-08-12 09:50:34 -07:00
2022-08-04 12:12:54 -07:00
2022-08-04 12:12:54 -07:00
2022-08-12 09:50:34 -07:00
2022-08-05 10:02:33 -07:00
2022-08-09 00:56:41 +02:00
2022-08-13 13:41:48 -07:00
2022-08-13 13:41:48 -07:00
2022-08-06 10:19:51 -07:00
2022-08-06 16:38:17 -07:00
2022-08-13 13:41:48 -07:00
2022-08-13 13:41:48 -07:00
2022-08-08 14:33:41 -06:00
2022-08-12 09:50:34 -07:00
2022-08-12 09:50:34 -07:00
2022-08-08 15:04:04 -07:00
2022-08-14 09:28:54 -07:00
2022-08-04 12:01:42 -07:00