aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Wise <swise@opengridcomputing.com>2019-02-05 14:33:22 -0500
committerJason Gunthorpe <jgg@mellanox.com>2019-02-05 17:40:41 -0500
commita2bfd708b17adb6e597e70d4eca824667f2d4e3c (patch)
treedfed40219a668c1d9b3f8f9ff099dc9b869b82e7
parenta78e8723a50530d15faa25cc0b6f009bcd251c20 (diff)
RDMA/iwpm: move kdoc comments to functions
Move the iwpm kdoc comments from the prototype declarations to above the function bodies. There are no functional changes in this patch. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
-rw-r--r--drivers/infiniband/core/iwpm_msg.c116
-rw-r--r--drivers/infiniband/core/iwpm_util.c40
-rw-r--r--include/rdma/iw_portmap.h149
3 files changed, 123 insertions, 182 deletions
diff --git a/drivers/infiniband/core/iwpm_msg.c b/drivers/infiniband/core/iwpm_msg.c
index 2e30e65b0816..2452b0ddcf0d 100644
--- a/drivers/infiniband/core/iwpm_msg.c
+++ b/drivers/infiniband/core/iwpm_msg.c
@@ -38,14 +38,21 @@ u16 iwpm_ulib_version = IWPM_UABI_VERSION_MIN;
38static int iwpm_user_pid = IWPM_PID_UNDEFINED; 38static int iwpm_user_pid = IWPM_PID_UNDEFINED;
39static atomic_t echo_nlmsg_seq; 39static atomic_t echo_nlmsg_seq;
40 40
41/**
42 * iwpm_valid_pid - Check if the userspace iwarp port mapper pid is valid
43 *
44 * Returns true if the pid is greater than zero, otherwise returns false
45 */
41int iwpm_valid_pid(void) 46int iwpm_valid_pid(void)
42{ 47{
43 return iwpm_user_pid > 0; 48 return iwpm_user_pid > 0;
44} 49}
45 50
46/* 51/**
47 * iwpm_register_pid - Send a netlink query to user space 52 * iwpm_register_pid - Send a netlink query to userspace
48 * for the iwarp port mapper pid 53 * to get the iwarp port mapper pid
54 * @pm_msg: Contains driver info to send to the userspace port mapper
55 * @nl_client: The index of the netlink client
49 * 56 *
50 * nlmsg attributes: 57 * nlmsg attributes:
51 * [IWPM_NLA_REG_PID_SEQ] 58 * [IWPM_NLA_REG_PID_SEQ]
@@ -124,13 +131,19 @@ pid_query_error:
124 return ret; 131 return ret;
125} 132}
126 133
127/* 134/**
128 * iwpm_add_mapping - Send a netlink add mapping message 135 * iwpm_add_mapping - Send a netlink add mapping request to
129 * to the port mapper 136 * the userspace port mapper
137 * @pm_msg: Contains the local ip/tcp address info to send
138 * @nl_client: The index of the netlink client
139 *
130 * nlmsg attributes: 140 * nlmsg attributes:
131 * [IWPM_NLA_MANAGE_MAPPING_SEQ] 141 * [IWPM_NLA_MANAGE_MAPPING_SEQ]
132 * [IWPM_NLA_MANAGE_ADDR] 142 * [IWPM_NLA_MANAGE_ADDR]
133 * [IWPM_NLA_MANAGE_FLAGS] 143 * [IWPM_NLA_MANAGE_FLAGS]
144 *
145 * If the request is successful, the pm_msg stores
146 * the port mapper response (mapped address info)
134 */ 147 */
135int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client) 148int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client)
136{ 149{
@@ -208,9 +221,12 @@ add_mapping_error_nowarn:
208 return ret; 221 return ret;
209} 222}
210 223
211/* 224/**
212 * iwpm_add_and_query_mapping - Send a netlink add and query 225 * iwpm_add_and_query_mapping - Process the port mapper response to
213 * mapping message to the port mapper 226 * iwpm_add_and_query_mapping request
227 * @pm_msg: Contains the local ip/tcp address info to send
228 * @nl_client: The index of the netlink client
229 *
214 * nlmsg attributes: 230 * nlmsg attributes:
215 * [IWPM_NLA_QUERY_MAPPING_SEQ] 231 * [IWPM_NLA_QUERY_MAPPING_SEQ]
216 * [IWPM_NLA_QUERY_LOCAL_ADDR] 232 * [IWPM_NLA_QUERY_LOCAL_ADDR]
@@ -299,9 +315,13 @@ query_mapping_error_nowarn:
299 return ret; 315 return ret;
300} 316}
301 317
302/* 318/**
303 * iwpm_remove_mapping - Send a netlink remove mapping message 319 * iwpm_remove_mapping - Send a netlink remove mapping request
304 * to the port mapper 320 * to the userspace port mapper
321 *
322 * @local_addr: Local ip/tcp address to remove
323 * @nl_client: The index of the netlink client
324 *
305 * nlmsg attributes: 325 * nlmsg attributes:
306 * [IWPM_NLA_MANAGE_MAPPING_SEQ] 326 * [IWPM_NLA_MANAGE_MAPPING_SEQ]
307 * [IWPM_NLA_MANAGE_ADDR] 327 * [IWPM_NLA_MANAGE_ADDR]
@@ -372,9 +392,14 @@ static const struct nla_policy resp_reg_policy[IWPM_NLA_RREG_PID_MAX] = {
372 [IWPM_NLA_RREG_PID_ERR] = { .type = NLA_U16 } 392 [IWPM_NLA_RREG_PID_ERR] = { .type = NLA_U16 }
373}; 393};
374 394
375/* 395/**
376 * iwpm_register_pid_cb - Process a port mapper response to 396 * iwpm_register_pid_cb - Process the port mapper response to
377 * iwpm_register_pid() 397 * iwpm_register_pid query
398 * @skb:
399 * @cb: Contains the received message (payload and netlink header)
400 *
401 * If successful, the function receives the userspace port mapper pid
402 * which is used in future communication with the port mapper
378 */ 403 */
379int iwpm_register_pid_cb(struct sk_buff *skb, struct netlink_callback *cb) 404int iwpm_register_pid_cb(struct sk_buff *skb, struct netlink_callback *cb)
380{ 405{
@@ -443,9 +468,11 @@ static const struct nla_policy resp_add_policy[IWPM_NLA_RMANAGE_MAPPING_MAX] = {
443 [IWPM_NLA_RMANAGE_MAPPING_ERR] = { .type = NLA_U16 } 468 [IWPM_NLA_RMANAGE_MAPPING_ERR] = { .type = NLA_U16 }
444}; 469};
445 470
446/* 471/**
447 * iwpm_add_mapping_cb - Process a port mapper response to 472 * iwpm_add_mapping_cb - Process the port mapper response to
448 * iwpm_add_mapping() 473 * iwpm_add_mapping request
474 * @skb:
475 * @cb: Contains the received message (payload and netlink header)
449 */ 476 */
450int iwpm_add_mapping_cb(struct sk_buff *skb, struct netlink_callback *cb) 477int iwpm_add_mapping_cb(struct sk_buff *skb, struct netlink_callback *cb)
451{ 478{
@@ -518,9 +545,11 @@ static const struct nla_policy resp_query_policy[IWPM_NLA_RQUERY_MAPPING_MAX] =
518 [IWPM_NLA_RQUERY_MAPPING_ERR] = { .type = NLA_U16 } 545 [IWPM_NLA_RQUERY_MAPPING_ERR] = { .type = NLA_U16 }
519}; 546};
520 547
521/* 548/**
522 * iwpm_add_and_query_mapping_cb - Process a port mapper response to 549 * iwpm_add_and_query_mapping_cb - Process the port mapper response to
523 * iwpm_add_and_query_mapping() 550 * iwpm_add_and_query_mapping request
551 * @skb:
552 * @cb: Contains the received message (payload and netlink header)
524 */ 553 */
525int iwpm_add_and_query_mapping_cb(struct sk_buff *skb, 554int iwpm_add_and_query_mapping_cb(struct sk_buff *skb,
526 struct netlink_callback *cb) 555 struct netlink_callback *cb)
@@ -598,9 +627,13 @@ query_mapping_response_exit:
598 return 0; 627 return 0;
599} 628}
600 629
601/* 630/**
602 * iwpm_remote_info_cb - Process a port mapper message, containing 631 * iwpm_remote_info_cb - Process remote connecting peer address info, which
603 * the remote connecting peer address info 632 * the port mapper has received from the connecting peer
633 * @skb:
634 * @cb: Contains the received message (payload and netlink header)
635 *
636 * Stores the IPv4/IPv6 address info in a hash table
604 */ 637 */
605int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb) 638int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb)
606{ 639{
@@ -673,8 +706,14 @@ static const struct nla_policy resp_mapinfo_policy[IWPM_NLA_MAPINFO_REQ_MAX] = {
673 [IWPM_NLA_MAPINFO_ULIB_VER] = { .type = NLA_U16 } 706 [IWPM_NLA_MAPINFO_ULIB_VER] = { .type = NLA_U16 }
674}; 707};
675 708
676/* 709/**
677 * iwpm_mapping_info_cb - Process a port mapper request for mapping info 710 * iwpm_mapping_info_cb - Process a notification that the userspace
711 * port mapper daemon is started
712 * @skb:
713 * @cb: Contains the received message (payload and netlink header)
714 *
715 * Using the received port mapper pid, send all the local mapping
716 * info records to the userspace port mapper
678 */ 717 */
679int iwpm_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb) 718int iwpm_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb)
680{ 719{
@@ -727,9 +766,11 @@ static const struct nla_policy ack_mapinfo_policy[IWPM_NLA_MAPINFO_NUM_MAX] = {
727 [IWPM_NLA_MAPINFO_ACK_NUM] = { .type = NLA_U32 } 766 [IWPM_NLA_MAPINFO_ACK_NUM] = { .type = NLA_U32 }
728}; 767};
729 768
730/* 769/**
731 * iwpm_ack_mapping_info_cb - Process a port mapper ack for 770 * iwpm_ack_mapping_info_cb - Process the port mapper ack for
732 * the provided mapping info records 771 * the provided local mapping info records
772 * @skb:
773 * @cb: Contains the received message (payload and netlink header)
733 */ 774 */
734int iwpm_ack_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb) 775int iwpm_ack_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb)
735{ 776{
@@ -755,8 +796,11 @@ static const struct nla_policy map_error_policy[IWPM_NLA_ERR_MAX] = {
755 [IWPM_NLA_ERR_CODE] = { .type = NLA_U16 }, 796 [IWPM_NLA_ERR_CODE] = { .type = NLA_U16 },
756}; 797};
757 798
758/* 799/**
759 * iwpm_mapping_error_cb - Process a port mapper error message 800 * iwpm_mapping_error_cb - Process port mapper notification for error
801 *
802 * @skb:
803 * @cb: Contains the received message (payload and netlink header)
760 */ 804 */
761int iwpm_mapping_error_cb(struct sk_buff *skb, struct netlink_callback *cb) 805int iwpm_mapping_error_cb(struct sk_buff *skb, struct netlink_callback *cb)
762{ 806{
@@ -797,8 +841,14 @@ static const struct nla_policy hello_policy[IWPM_NLA_HELLO_MAX] = {
797 [IWPM_NLA_HELLO_ABI_VERSION] = { .type = NLA_U16 } 841 [IWPM_NLA_HELLO_ABI_VERSION] = { .type = NLA_U16 }
798}; 842};
799 843
800/* 844/**
801 * iwpm_hello_cb - Process a port mapper hello request 845 * iwpm_hello_cb - Process a hello message from iwpmd
846 *
847 * @skb:
848 * @cb: Contains the received message (payload and netlink header)
849 *
850 * Using the received port mapper pid, send the kernel's abi_version
851 * after adjusting it to support the iwpmd version.
802 */ 852 */
803int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb) 853int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb)
804{ 854{
diff --git a/drivers/infiniband/core/iwpm_util.c b/drivers/infiniband/core/iwpm_util.c
index 363938435476..7b97f6e2075f 100644
--- a/drivers/infiniband/core/iwpm_util.c
+++ b/drivers/infiniband/core/iwpm_util.c
@@ -51,6 +51,12 @@ static DEFINE_SPINLOCK(iwpm_reminfo_lock);
51static DEFINE_MUTEX(iwpm_admin_lock); 51static DEFINE_MUTEX(iwpm_admin_lock);
52static struct iwpm_admin_data iwpm_admin; 52static struct iwpm_admin_data iwpm_admin;
53 53
54/**
55 * iwpm_init - Allocate resources for the iwarp port mapper
56 * @nl_client: The index of the netlink client
57 *
58 * Should be called when network interface goes up.
59 */
54int iwpm_init(u8 nl_client) 60int iwpm_init(u8 nl_client)
55{ 61{
56 int ret = 0; 62 int ret = 0;
@@ -87,6 +93,12 @@ init_exit:
87static void free_hash_bucket(void); 93static void free_hash_bucket(void);
88static void free_reminfo_bucket(void); 94static void free_reminfo_bucket(void);
89 95
96/**
97 * iwpm_exit - Deallocate resources for the iwarp port mapper
98 * @nl_client: The index of the netlink client
99 *
100 * Should be called when network interface goes down.
101 */
90int iwpm_exit(u8 nl_client) 102int iwpm_exit(u8 nl_client)
91{ 103{
92 104
@@ -112,6 +124,14 @@ int iwpm_exit(u8 nl_client)
112static struct hlist_head *get_mapinfo_hash_bucket(struct sockaddr_storage *, 124static struct hlist_head *get_mapinfo_hash_bucket(struct sockaddr_storage *,
113 struct sockaddr_storage *); 125 struct sockaddr_storage *);
114 126
127/**
128 * iwpm_create_mapinfo - Store local and mapped IPv4/IPv6 address
129 * info in a hash table
130 * @local_addr: Local ip/tcp address
131 * @mapped_addr: Mapped local ip/tcp address
132 * @nl_client: The index of the netlink client
133 * @map_flags: IWPM mapping flags
134 */
115int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr, 135int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr,
116 struct sockaddr_storage *mapped_sockaddr, 136 struct sockaddr_storage *mapped_sockaddr,
117 u8 nl_client, u32 map_flags) 137 u8 nl_client, u32 map_flags)
@@ -151,6 +171,15 @@ int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr,
151 return ret; 171 return ret;
152} 172}
153 173
174/**
175 * iwpm_remove_mapinfo - Remove local and mapped IPv4/IPv6 address
176 * info from the hash table
177 * @local_addr: Local ip/tcp address
178 * @mapped_local_addr: Mapped local ip/tcp address
179 *
180 * Returns err code if mapping info is not found in the hash table,
181 * otherwise returns 0
182 */
154int iwpm_remove_mapinfo(struct sockaddr_storage *local_sockaddr, 183int iwpm_remove_mapinfo(struct sockaddr_storage *local_sockaddr,
155 struct sockaddr_storage *mapped_local_addr) 184 struct sockaddr_storage *mapped_local_addr)
156{ 185{
@@ -251,6 +280,17 @@ void iwpm_add_remote_info(struct iwpm_remote_info *rem_info)
251 spin_unlock_irqrestore(&iwpm_reminfo_lock, flags); 280 spin_unlock_irqrestore(&iwpm_reminfo_lock, flags);
252} 281}
253 282
283/**
284 * iwpm_get_remote_info - Get the remote connecting peer address info
285 *
286 * @mapped_loc_addr: Mapped local address of the listening peer
287 * @mapped_rem_addr: Mapped remote address of the connecting peer
288 * @remote_addr: To store the remote address of the connecting peer
289 * @nl_client: The index of the netlink client
290 *
291 * The remote address info is retrieved and provided to the client in
292 * the remote_addr. After that it is removed from the hash table
293 */
254int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr, 294int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr,
255 struct sockaddr_storage *mapped_rem_addr, 295 struct sockaddr_storage *mapped_rem_addr,
256 struct sockaddr_storage *remote_addr, 296 struct sockaddr_storage *remote_addr,
diff --git a/include/rdma/iw_portmap.h b/include/rdma/iw_portmap.h
index 84fac196ef80..b9fee7feeeb5 100644
--- a/include/rdma/iw_portmap.h
+++ b/include/rdma/iw_portmap.h
@@ -61,177 +61,28 @@ struct iwpm_sa_data {
61 u32 flags; 61 u32 flags;
62}; 62};
63 63
64/**
65 * iwpm_init - Allocate resources for the iwarp port mapper
66 *
67 * Should be called when network interface goes up.
68 */
69int iwpm_init(u8); 64int iwpm_init(u8);
70
71/**
72 * iwpm_exit - Deallocate resources for the iwarp port mapper
73 *
74 * Should be called when network interface goes down.
75 */
76int iwpm_exit(u8); 65int iwpm_exit(u8);
77
78/**
79 * iwpm_valid_pid - Check if the userspace iwarp port mapper pid is valid
80 *
81 * Returns true if the pid is greater than zero, otherwise returns false
82 */
83int iwpm_valid_pid(void); 66int iwpm_valid_pid(void);
84
85/**
86 * iwpm_register_pid - Send a netlink query to userspace
87 * to get the iwarp port mapper pid
88 * @pm_msg: Contains driver info to send to the userspace port mapper
89 * @nl_client: The index of the netlink client
90 */
91int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client); 67int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client);
92
93/**
94 * iwpm_add_mapping - Send a netlink add mapping request to
95 * the userspace port mapper
96 * @pm_msg: Contains the local ip/tcp address info to send
97 * @nl_client: The index of the netlink client
98 *
99 * If the request is successful, the pm_msg stores
100 * the port mapper response (mapped address info)
101 */
102int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client); 68int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
103
104/**
105 * iwpm_add_and_query_mapping - Send a netlink add and query mapping request
106 * to the userspace port mapper
107 * @pm_msg: Contains the local and remote ip/tcp address info to send
108 * @nl_client: The index of the netlink client
109 *
110 * If the request is successful, the pm_msg stores the
111 * port mapper response (mapped local and remote address info)
112 */
113int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client); 69int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
114
115/**
116 * iwpm_remove_mapping - Send a netlink remove mapping request
117 * to the userspace port mapper
118 *
119 * @local_addr: Local ip/tcp address to remove
120 * @nl_client: The index of the netlink client
121 */
122int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client); 70int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client);
123
124/**
125 * iwpm_register_pid_cb - Process the port mapper response to
126 * iwpm_register_pid query
127 * @skb:
128 * @cb: Contains the received message (payload and netlink header)
129 *
130 * If successful, the function receives the userspace port mapper pid
131 * which is used in future communication with the port mapper
132 */
133int iwpm_register_pid_cb(struct sk_buff *, struct netlink_callback *); 71int iwpm_register_pid_cb(struct sk_buff *, struct netlink_callback *);
134
135/**
136 * iwpm_add_mapping_cb - Process the port mapper response to
137 * iwpm_add_mapping request
138 * @skb:
139 * @cb: Contains the received message (payload and netlink header)
140 */
141int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *); 72int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *);
142
143/**
144 * iwpm_add_and_query_mapping_cb - Process the port mapper response to
145 * iwpm_add_and_query_mapping request
146 * @skb:
147 * @cb: Contains the received message (payload and netlink header)
148 */
149int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *); 73int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *);
150
151/**
152 * iwpm_remote_info_cb - Process remote connecting peer address info, which
153 * the port mapper has received from the connecting peer
154 *
155 * @cb: Contains the received message (payload and netlink header)
156 *
157 * Stores the IPv4/IPv6 address info in a hash table
158 */
159int iwpm_remote_info_cb(struct sk_buff *, struct netlink_callback *); 74int iwpm_remote_info_cb(struct sk_buff *, struct netlink_callback *);
160
161/**
162 * iwpm_mapping_error_cb - Process port mapper notification for error
163 *
164 * @skb:
165 * @cb: Contains the received message (payload and netlink header)
166 */
167int iwpm_mapping_error_cb(struct sk_buff *, struct netlink_callback *); 75int iwpm_mapping_error_cb(struct sk_buff *, struct netlink_callback *);
168
169/**
170 * iwpm_mapping_info_cb - Process a notification that the userspace
171 * port mapper daemon is started
172 * @skb:
173 * @cb: Contains the received message (payload and netlink header)
174 *
175 * Using the received port mapper pid, send all the local mapping
176 * info records to the userspace port mapper
177 */
178int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *); 76int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
179
180/**
181 * iwpm_ack_mapping_info_cb - Process the port mapper ack for
182 * the provided local mapping info records
183 * @skb:
184 * @cb: Contains the received message (payload and netlink header)
185 */
186int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *); 77int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
187
188/**
189 * iwpm_get_remote_info - Get the remote connecting peer address info
190 *
191 * @mapped_loc_addr: Mapped local address of the listening peer
192 * @mapped_rem_addr: Mapped remote address of the connecting peer
193 * @remote_addr: To store the remote address of the connecting peer
194 * @nl_client: The index of the netlink client
195 *
196 * The remote address info is retrieved and provided to the client in
197 * the remote_addr. After that it is removed from the hash table
198 */
199int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr, 78int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr,
200 struct sockaddr_storage *mapped_rem_addr, 79 struct sockaddr_storage *mapped_rem_addr,
201 struct sockaddr_storage *remote_addr, u8 nl_client); 80 struct sockaddr_storage *remote_addr, u8 nl_client);
202
203/**
204 * iwpm_create_mapinfo - Store local and mapped IPv4/IPv6 address
205 * info in a hash table
206 * @local_addr: Local ip/tcp address
207 * @mapped_addr: Mapped local ip/tcp address
208 * @nl_client: The index of the netlink client
209 * @map_flags: IWPM mapping flags
210 */
211int iwpm_create_mapinfo(struct sockaddr_storage *local_addr, 81int iwpm_create_mapinfo(struct sockaddr_storage *local_addr,
212 struct sockaddr_storage *mapped_addr, u8 nl_client, 82 struct sockaddr_storage *mapped_addr, u8 nl_client,
213 u32 map_flags); 83 u32 map_flags);
214
215/**
216 * iwpm_remove_mapinfo - Remove local and mapped IPv4/IPv6 address
217 * info from the hash table
218 * @local_addr: Local ip/tcp address
219 * @mapped_addr: Mapped local ip/tcp address
220 *
221 * Returns err code if mapping info is not found in the hash table,
222 * otherwise returns 0
223 */
224int iwpm_remove_mapinfo(struct sockaddr_storage *local_addr, 84int iwpm_remove_mapinfo(struct sockaddr_storage *local_addr,
225 struct sockaddr_storage *mapped_addr); 85 struct sockaddr_storage *mapped_addr);
226 86
227/**
228 * iwpm_hello_cb - Process a hello message from iwpmd
229 *
230 * @skb:
231 * @cb: Contains the received message (payload and netlink header)
232 *
233 * Using the received port mapper pid, send the kernel's abi_version
234 * after adjusting it to support the iwpmd version.
235 */
236int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb); 87int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb);
237#endif /* _IW_PORTMAP_H */ 88#endif /* _IW_PORTMAP_H */