diff options
author | Mark Bloch <markb@mellanox.com> | 2016-05-19 17:12:34 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-05-24 14:42:48 -0400 |
commit | c34d3761872a2784d7bae2a0bb6205e8ee07a7f7 (patch) | |
tree | 081c434d1aff5b22606a5df155c83d92f2389e28 | |
parent | c2e49c92326f9baaa490492c48bea5a7f49d3244 (diff) | |
download | blackbird-op-linux-c34d3761872a2784d7bae2a0bb6205e8ee07a7f7.tar.gz blackbird-op-linux-c34d3761872a2784d7bae2a0bb6205e8ee07a7f7.zip |
IB/netlink: Add a new local service operation
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>
-rw-r--r-- | include/uapi/rdma/rdma_netlink.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/uapi/rdma/rdma_netlink.h b/include/uapi/rdma/rdma_netlink.h index 6e373d151cad..02fe8390c18f 100644 --- a/include/uapi/rdma/rdma_netlink.h +++ b/include/uapi/rdma/rdma_netlink.h @@ -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 }; |