Commit c34d3761 authored by Mark Bloch's avatar Mark Bloch Committed by Doug Ledford

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: default avatarMark Bloch <markb@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent c2e49c92
...@@ -135,10 +135,12 @@ enum { ...@@ -135,10 +135,12 @@ enum {
* Local service operations: * Local service operations:
* RESOLVE - The client requests the local service to resolve a path. * RESOLVE - The client requests the local service to resolve a path.
* SET_TIMEOUT - The local service requests the client to set the timeout. * 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 { enum {
RDMA_NL_LS_OP_RESOLVE = 0, RDMA_NL_LS_OP_RESOLVE = 0,
RDMA_NL_LS_OP_SET_TIMEOUT, RDMA_NL_LS_OP_SET_TIMEOUT,
RDMA_NL_LS_OP_IP_RESOLVE,
RDMA_NL_LS_NUM_OPS RDMA_NL_LS_NUM_OPS
}; };
...@@ -176,6 +178,10 @@ struct rdma_ls_resolve_header { ...@@ -176,6 +178,10 @@ struct rdma_ls_resolve_header {
__u8 path_use; __u8 path_use;
}; };
struct rdma_ls_ip_resolve_header {
__u32 ifindex;
};
/* Local service attribute type */ /* Local service attribute type */
#define RDMA_NLA_F_MANDATORY (1 << 13) #define RDMA_NLA_F_MANDATORY (1 << 13)
#define RDMA_NLA_TYPE_MASK (~(NLA_F_NESTED | NLA_F_NET_BYTEORDER | \ #define RDMA_NLA_TYPE_MASK (~(NLA_F_NESTED | NLA_F_NET_BYTEORDER | \
...@@ -193,6 +199,8 @@ struct rdma_ls_resolve_header { ...@@ -193,6 +199,8 @@ struct rdma_ls_resolve_header {
* TCLASS u8 * TCLASS u8
* PKEY u16 cpu * PKEY u16 cpu
* QOS_CLASS u16 cpu * QOS_CLASS u16 cpu
* IPV4 u32 BE
* IPV6 u8[16] BE
*/ */
enum { enum {
LS_NLA_TYPE_UNSPEC = 0, LS_NLA_TYPE_UNSPEC = 0,
...@@ -204,6 +212,8 @@ enum { ...@@ -204,6 +212,8 @@ enum {
LS_NLA_TYPE_TCLASS, LS_NLA_TYPE_TCLASS,
LS_NLA_TYPE_PKEY, LS_NLA_TYPE_PKEY,
LS_NLA_TYPE_QOS_CLASS, LS_NLA_TYPE_QOS_CLASS,
LS_NLA_TYPE_IPV4,
LS_NLA_TYPE_IPV6,
LS_NLA_TYPE_MAX LS_NLA_TYPE_MAX
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment