aboutsummaryrefslogtreecommitdiffstats
path: root/include/rdma/iw_portmap.h
diff options
context:
space:
mode:
authorTatyana Nikolova <Tatyana.E.Nikolova@intel.com>2015-04-21 16:28:10 -0400
committerDoug Ledford <dledford@redhat.com>2015-05-05 09:18:01 -0400
commit6eec177461751f0fe191cf9977cde692b9481d0a (patch)
tree0e4eebf1d276bab4714bae1b846b6016f246ad6a /include/rdma/iw_portmap.h
parent4a75a86c8d04390f268d7237cc49fe9a8e36efe7 (diff)
RDMA/core: Enable the iWarp Port Mapper to provide the actual address of the connecting peer to its clients
Add functionality to enable the port mapper on the passive side to provide to its clients the actual (non-mapped) ip/tcp address information of the connecting peer 1) Adding remote_info_cb() to process the address info of the connecting peer The address info is provided by the user space port mapper service when the connection is initiated by the peer 2) Adding a hash list to store the remote address info 3) Adding functionality to add/remove the remote address info After the info has been provided to the port mapper client, it is removed from the hash list Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma/iw_portmap.h')
-rw-r--r--include/rdma/iw_portmap.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/rdma/iw_portmap.h b/include/rdma/iw_portmap.h
index 928b2775e992..fda31673a562 100644
--- a/include/rdma/iw_portmap.h
+++ b/include/rdma/iw_portmap.h
@@ -148,6 +148,16 @@ int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *);
148int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *); 148int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *);
149 149
150/** 150/**
151 * iwpm_remote_info_cb - Process remote connecting peer address info, which
152 * the port mapper has received from the connecting peer
153 *
154 * @cb: Contains the received message (payload and netlink header)
155 *
156 * Stores the IPv4/IPv6 address info in a hash table
157 */
158int iwpm_remote_info_cb(struct sk_buff *, struct netlink_callback *);
159
160/**
151 * iwpm_mapping_error_cb - Process port mapper notification for error 161 * iwpm_mapping_error_cb - Process port mapper notification for error
152 * 162 *
153 * @skb: 163 * @skb:
@@ -175,6 +185,21 @@ int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
175int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *); 185int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
176 186
177/** 187/**
188 * iwpm_get_remote_info - Get the remote connecting peer address info
189 *
190 * @mapped_loc_addr: Mapped local address of the listening peer
191 * @mapped_rem_addr: Mapped remote address of the connecting peer
192 * @remote_addr: To store the remote address of the connecting peer
193 * @nl_client: The index of the netlink client
194 *
195 * The remote address info is retrieved and provided to the client in
196 * the remote_addr. After that it is removed from the hash table
197 */
198int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr,
199 struct sockaddr_storage *mapped_rem_addr,
200 struct sockaddr_storage *remote_addr, u8 nl_client);
201
202/**
178 * iwpm_create_mapinfo - Store local and mapped IPv4/IPv6 address 203 * iwpm_create_mapinfo - Store local and mapped IPv4/IPv6 address
179 * info in a hash table 204 * info in a hash table
180 * @local_addr: Local ip/tcp address 205 * @local_addr: Local ip/tcp address