OSDN Git Service

IB/netlink: Add a new local service operation
authorMark Bloch <markb@mellanox.com>
Thu, 19 May 2016 14:12:34 +0000 (17:12 +0300)
committerDoug Ledford <dledford@redhat.com>
Tue, 24 May 2016 18:42:48 +0000 (14:42 -0400)
This commits adds a new RDMA local service operation:
- IP to GID resolution.

The client request would include the ifindex of the outgoing interface
and would place in an attribute (LS_NLA_TYPE_IPV4 or LS_NLA_TYPE_IPV6)
the destnation IP.

The local service would answer with a message that has the attribute:
- LS_NLA_TYPE_DGID - The destination GID.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/uapi/rdma/rdma_netlink.h

index 6e373d1..02fe839 100644 (file)
@@ -135,10 +135,12 @@ enum {
  * Local service operations:
  *   RESOLVE - The client requests the local service to resolve a path.
  *   SET_TIMEOUT - The local service requests the client to set the timeout.
+ *   IP_RESOLVE - The client requests the local service to resolve an IP to GID.
  */
 enum {
        RDMA_NL_LS_OP_RESOLVE = 0,
        RDMA_NL_LS_OP_SET_TIMEOUT,
+       RDMA_NL_LS_OP_IP_RESOLVE,
        RDMA_NL_LS_NUM_OPS
 };
 
@@ -176,6 +178,10 @@ struct rdma_ls_resolve_header {
        __u8 path_use;
 };
 
+struct rdma_ls_ip_resolve_header {
+       __u32 ifindex;
+};
+
 /* Local service attribute type */
 #define RDMA_NLA_F_MANDATORY   (1 << 13)
 #define RDMA_NLA_TYPE_MASK     (~(NLA_F_NESTED | NLA_F_NET_BYTEORDER | \
@@ -193,6 +199,8 @@ struct rdma_ls_resolve_header {
  *   TCLASS          u8
  *   PKEY            u16                        cpu
  *   QOS_CLASS       u16                        cpu
+ *   IPV4            u32                        BE
+ *   IPV6            u8[16]                     BE
  */
 enum {
        LS_NLA_TYPE_UNSPEC = 0,
@@ -204,6 +212,8 @@ enum {
        LS_NLA_TYPE_TCLASS,
        LS_NLA_TYPE_PKEY,
        LS_NLA_TYPE_QOS_CLASS,
+       LS_NLA_TYPE_IPV4,
+       LS_NLA_TYPE_IPV6,
        LS_NLA_TYPE_MAX
 };