diff options
author | Steve Wise <swise@opengridcomputing.com> | 2019-02-05 14:33:22 -0500 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-02-05 17:40:41 -0500 |
commit | a2bfd708b17adb6e597e70d4eca824667f2d4e3c (patch) | |
tree | dfed40219a668c1d9b3f8f9ff099dc9b869b82e7 | |
parent | a78e8723a50530d15faa25cc0b6f009bcd251c20 (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.c | 116 | ||||
-rw-r--r-- | drivers/infiniband/core/iwpm_util.c | 40 | ||||
-rw-r--r-- | include/rdma/iw_portmap.h | 149 |
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; | |||
38 | static int iwpm_user_pid = IWPM_PID_UNDEFINED; | 38 | static int iwpm_user_pid = IWPM_PID_UNDEFINED; |
39 | static atomic_t echo_nlmsg_seq; | 39 | static 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 | */ | ||
41 | int iwpm_valid_pid(void) | 46 | int 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 | */ |
135 | int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client) | 148 | int 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 | */ |
379 | int iwpm_register_pid_cb(struct sk_buff *skb, struct netlink_callback *cb) | 404 | int 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 | */ |
450 | int iwpm_add_mapping_cb(struct sk_buff *skb, struct netlink_callback *cb) | 477 | int 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 | */ |
525 | int iwpm_add_and_query_mapping_cb(struct sk_buff *skb, | 554 | int 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 | */ |
605 | int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb) | 638 | int 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 | */ |
679 | int iwpm_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb) | 718 | int 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 | */ |
734 | int iwpm_ack_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb) | 775 | int 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 | */ |
761 | int iwpm_mapping_error_cb(struct sk_buff *skb, struct netlink_callback *cb) | 805 | int 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 | */ |
803 | int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb) | 853 | int 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); | |||
51 | static DEFINE_MUTEX(iwpm_admin_lock); | 51 | static DEFINE_MUTEX(iwpm_admin_lock); |
52 | static struct iwpm_admin_data iwpm_admin; | 52 | static 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 | */ | ||
54 | int iwpm_init(u8 nl_client) | 60 | int iwpm_init(u8 nl_client) |
55 | { | 61 | { |
56 | int ret = 0; | 62 | int ret = 0; |
@@ -87,6 +93,12 @@ init_exit: | |||
87 | static void free_hash_bucket(void); | 93 | static void free_hash_bucket(void); |
88 | static void free_reminfo_bucket(void); | 94 | static 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 | */ | ||
90 | int iwpm_exit(u8 nl_client) | 102 | int iwpm_exit(u8 nl_client) |
91 | { | 103 | { |
92 | 104 | ||
@@ -112,6 +124,14 @@ int iwpm_exit(u8 nl_client) | |||
112 | static struct hlist_head *get_mapinfo_hash_bucket(struct sockaddr_storage *, | 124 | static 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 | */ | ||
115 | int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr, | 135 | int 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 | */ | ||
154 | int iwpm_remove_mapinfo(struct sockaddr_storage *local_sockaddr, | 183 | int 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 | */ | ||
254 | int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr, | 294 | int 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 | */ | ||
69 | int iwpm_init(u8); | 64 | int 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 | */ | ||
76 | int iwpm_exit(u8); | 65 | int 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 | */ | ||
83 | int iwpm_valid_pid(void); | 66 | int 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 | */ | ||
91 | int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client); | 67 | int 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 | */ | ||
102 | int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client); | 68 | int 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 | */ | ||
113 | int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client); | 69 | int 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 | */ | ||
122 | int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client); | 70 | int 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 | */ | ||
133 | int iwpm_register_pid_cb(struct sk_buff *, struct netlink_callback *); | 71 | int 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 | */ | ||
141 | int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *); | 72 | int 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 | */ | ||
149 | int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *); | 73 | int 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 | */ | ||
159 | int iwpm_remote_info_cb(struct sk_buff *, struct netlink_callback *); | 74 | int 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 | */ | ||
167 | int iwpm_mapping_error_cb(struct sk_buff *, struct netlink_callback *); | 75 | int 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 | */ | ||
178 | int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *); | 76 | int 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 | */ | ||
186 | int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *); | 77 | int 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 | */ | ||
199 | int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr, | 78 | int 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 | */ | ||
211 | int iwpm_create_mapinfo(struct sockaddr_storage *local_addr, | 81 | int 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 | */ | ||
224 | int iwpm_remove_mapinfo(struct sockaddr_storage *local_addr, | 84 | int 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 | */ | ||
236 | int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb); | 87 | int iwpm_hello_cb(struct sk_buff *skb, struct netlink_callback *cb); |
237 | #endif /* _IW_PORTMAP_H */ | 88 | #endif /* _IW_PORTMAP_H */ |