22 #if !defined(_EAP_RADIUS_SESSION_H_) |
22 #if !defined(_EAP_RADIUS_SESSION_H_) |
23 #define _EAP_RADIUS_SESSION_H_ |
23 #define _EAP_RADIUS_SESSION_H_ |
24 |
24 |
25 #include "eap_tools.h" |
25 #include "eap_tools.h" |
26 #include "eap_am_export.h" |
26 #include "eap_am_export.h" |
|
27 // Start: added by script change_export_macros.sh. |
|
28 #if defined(EAP_NO_EXPORT_EAP_RADIUS_SESSION_H) |
|
29 #define EAP_CLASS_VISIBILITY_EAP_RADIUS_SESSION_H EAP_NONSHARABLE |
|
30 #define EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H |
|
31 #define EAP_C_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H |
|
32 #define EAP_FUNC_EXPORT_EAP_RADIUS_SESSION_H |
|
33 #define EAP_C_FUNC_EXPORT_EAP_RADIUS_SESSION_H |
|
34 #elif defined(EAP_EXPORT_EAP_RADIUS_SESSION_H) |
|
35 #define EAP_CLASS_VISIBILITY_EAP_RADIUS_SESSION_H EAP_EXPORT |
|
36 #define EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H EAP_FUNC_EXPORT |
|
37 #define EAP_C_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H EAP_C_FUNC_EXPORT |
|
38 #define EAP_FUNC_EXPORT_EAP_RADIUS_SESSION_H EAP_FUNC_EXPORT |
|
39 #define EAP_C_FUNC_EXPORT_EAP_RADIUS_SESSION_H EAP_C_FUNC_EXPORT |
|
40 #else |
|
41 #define EAP_CLASS_VISIBILITY_EAP_RADIUS_SESSION_H EAP_IMPORT |
|
42 #define EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H EAP_FUNC_IMPORT |
|
43 #define EAP_C_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H EAP_C_FUNC_IMPORT |
|
44 #define EAP_FUNC_EXPORT_EAP_RADIUS_SESSION_H |
|
45 #define EAP_C_FUNC_EXPORT_EAP_RADIUS_SESSION_H |
|
46 #endif |
|
47 // End: added by script change_export_macros.sh. |
27 #include "abs_eap_core.h" |
48 #include "abs_eap_core.h" |
28 #include "eap_core_map.h" |
49 #include "eap_core_map.h" |
29 #include "abs_eap_stack_interface.h" |
50 #include "abs_eap_stack_interface.h" |
30 #include "eap_core.h" |
51 #include "eap_core.h" |
31 #include "eap_radius_payloads.h" |
52 #include "eap_radius_payloads.h" |
52 const u32_t EAP_RADIUS_SESSION_REMOVE_SESSION_TIMEOUT = 0u; |
73 const u32_t EAP_RADIUS_SESSION_REMOVE_SESSION_TIMEOUT = 0u; |
53 |
74 |
54 |
75 |
55 /// A eap_radius_session_c class implements mapping of EAP authentication sessions. |
76 /// A eap_radius_session_c class implements mapping of EAP authentication sessions. |
56 /// Network identity separates parallel EAP authentication sessions. |
77 /// Network identity separates parallel EAP authentication sessions. |
57 class EAP_EXPORT eap_radius_session_c |
78 class EAP_CLASS_VISIBILITY_EAP_RADIUS_SESSION_H eap_radius_session_c |
58 : public abs_eap_core_c |
79 : public abs_eap_core_c |
59 , public abs_eap_core_map_c |
80 , public abs_eap_core_map_c |
60 , public abs_eap_base_timer_c |
81 , public abs_eap_base_timer_c |
61 , public abs_eap_stack_interface_c |
82 , public abs_eap_stack_interface_c |
62 { |
83 { |
102 |
123 |
103 |
124 |
104 /** |
125 /** |
105 * Function creates a new session. |
126 * Function creates a new session. |
106 */ |
127 */ |
107 EAP_FUNC_IMPORT eap_core_c * create_new_session( |
128 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_core_c * create_new_session( |
108 const eap_am_network_id_c * const receive_network_id); |
129 const eap_am_network_id_c * const receive_network_id); |
109 |
130 |
110 EAP_FUNC_IMPORT static eap_status_e shutdown_operation( |
131 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H static eap_status_e shutdown_operation( |
111 eap_core_c * const core, |
132 eap_core_c * const core, |
112 abs_eap_am_tools_c * const m_am_tools); |
133 abs_eap_am_tools_c * const m_am_tools); |
113 |
134 |
114 EAP_FUNC_IMPORT eap_status_e reset(); |
135 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e reset(); |
115 |
136 |
116 //-------------------------------------------------- |
137 //-------------------------------------------------- |
117 protected: |
138 protected: |
118 //-------------------------------------------------- |
139 //-------------------------------------------------- |
119 |
140 |
122 //-------------------------------------------------- |
143 //-------------------------------------------------- |
123 |
144 |
124 /** |
145 /** |
125 * The destructor of the eap_core class does nothing special. |
146 * The destructor of the eap_core class does nothing special. |
126 */ |
147 */ |
127 EAP_FUNC_IMPORT virtual ~eap_radius_session_c(); |
148 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H virtual ~eap_radius_session_c(); |
128 |
149 |
129 /** |
150 /** |
130 * The constructor initializes member attributes using parameters passed to it. |
151 * The constructor initializes member attributes using parameters passed to it. |
131 * @param tools is pointer to the tools class. @see abs_eap_am_tools_c. |
152 * @param tools is pointer to the tools class. @see abs_eap_am_tools_c. |
132 * @param partner is back pointer to object which created this object. |
153 * @param partner is back pointer to object which created this object. |
133 * @param is_client_when_true indicates whether the network entity should act |
154 * @param is_client_when_true indicates whether the network entity should act |
134 * as a client (true) or server (false), in terms of EAP-protocol |
155 * as a client (true) or server (false), in terms of EAP-protocol |
135 * whether this network entity is EAP-supplicant (true) or EAP-authenticator (false). |
156 * whether this network entity is EAP-supplicant (true) or EAP-authenticator (false). |
136 */ |
157 */ |
137 EAP_FUNC_IMPORT eap_radius_session_c( |
158 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_radius_session_c( |
138 abs_eap_am_tools_c * const tools, |
159 abs_eap_am_tools_c * const tools, |
139 abs_eap_radius_session_c * const partner, |
160 abs_eap_radius_session_c * const partner, |
140 const bool is_client_when_true, |
161 const bool is_client_when_true, |
141 const eap_radius_variable_data_c * const user_name, |
162 const eap_radius_variable_data_c * const user_name, |
142 const eap_radius_variable_data_c * const nas_ip_address); |
163 const eap_radius_variable_data_c * const nas_ip_address); |
143 |
164 |
144 EAP_FUNC_IMPORT eap_status_e save_request_data( |
165 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e save_request_data( |
145 const void * const data, |
166 const void * const data, |
146 const u32_t data_length, |
167 const u32_t data_length, |
147 const u8_t identifier); |
168 const u8_t identifier); |
148 |
169 |
149 EAP_FUNC_IMPORT u8_t get_identifier(); |
170 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H u8_t get_identifier(); |
150 |
171 |
151 EAP_FUNC_IMPORT const eap_variable_data_c * get_shared_secret() const; |
172 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H const eap_variable_data_c * get_shared_secret() const; |
152 |
173 |
153 EAP_FUNC_IMPORT const eap_variable_data_c * get_request_authenticator(); |
174 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H const eap_variable_data_c * get_request_authenticator(); |
154 |
175 |
155 EAP_FUNC_IMPORT const eap_radius_variable_data_c * get_user_name(); |
176 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H const eap_radius_variable_data_c * get_user_name(); |
156 |
177 |
157 EAP_FUNC_IMPORT eap_state_variable_e get_state(); |
178 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_state_variable_e get_state(); |
158 |
179 |
159 EAP_FUNC_IMPORT eap_variable_data_c * get_master_session_key(); |
180 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_variable_data_c * get_master_session_key(); |
160 |
181 |
161 // This is documented in abs_eap_stack_interface_c::packet_process(). |
182 // This is documented in abs_eap_stack_interface_c::packet_process(). |
162 EAP_FUNC_IMPORT eap_status_e packet_process( |
183 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e packet_process( |
163 const eap_am_network_id_c * const receive_network_id, |
184 const eap_am_network_id_c * const receive_network_id, |
164 eap_general_header_base_c * const packet_data, |
185 eap_general_header_base_c * const packet_data, |
165 const u32_t packet_length); |
186 const u32_t packet_length); |
166 |
187 |
167 /** |
188 /** |
171 * EAP-packet in correct offset. |
192 * EAP-packet in correct offset. |
172 * @param header_offset is offset of the EAP-header within the sent_packet. |
193 * @param header_offset is offset of the EAP-header within the sent_packet. |
173 * @param data_length is length in bytes of the EAP-packet. |
194 * @param data_length is length in bytes of the EAP-packet. |
174 * @param buffer_length is length in bytes of the whole packet buffer. |
195 * @param buffer_length is length in bytes of the whole packet buffer. |
175 */ |
196 */ |
176 EAP_FUNC_IMPORT eap_status_e packet_send( |
197 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e packet_send( |
177 const eap_am_network_id_c * const send_network_id, |
198 const eap_am_network_id_c * const send_network_id, |
178 eap_buf_chain_wr_c * const sent_packet, |
199 eap_buf_chain_wr_c * const sent_packet, |
179 const u32_t header_offset, |
200 const u32_t header_offset, |
180 const u32_t data_length, |
201 const u32_t data_length, |
181 const u32_t buffer_length); |
202 const u32_t buffer_length); |
182 |
203 |
183 EAP_FUNC_IMPORT void object_increase_reference_count(); |
204 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H void object_increase_reference_count(); |
184 |
205 |
185 EAP_FUNC_IMPORT u32_t object_decrease_reference_count(); |
206 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H u32_t object_decrease_reference_count(); |
186 |
207 |
187 /** |
208 /** |
188 * The get_partner() function returns pointer to partner class. |
209 * The get_partner() function returns pointer to partner class. |
189 */ |
210 */ |
190 EAP_FUNC_IMPORT abs_eap_radius_session_c * get_partner(); |
211 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H abs_eap_radius_session_c * get_partner(); |
191 |
212 |
192 /** |
213 /** |
193 * The get_header_offset() function obtains the header offset of EAP-packet. |
214 * The get_header_offset() function obtains the header offset of EAP-packet. |
194 * @param MTU_length is pointer to variable to store the maximum transfer unit (MTU). |
215 * @param MTU_length is pointer to variable to store the maximum transfer unit (MTU). |
195 * MTU is the maximum EAP-packet length in bytes |
216 * MTU is the maximum EAP-packet length in bytes |
196 * @param trailer_length is pointer to the variable to store length |
217 * @param trailer_length is pointer to the variable to store length |
197 * of trailer needed by lower levels. |
218 * of trailer needed by lower levels. |
198 * @return Function returns the offset of EAP-header. |
219 * @return Function returns the offset of EAP-header. |
199 * @see abs_eap_base_type_c::get_header_offset(). |
220 * @see abs_eap_base_type_c::get_header_offset(). |
200 */ |
221 */ |
201 EAP_FUNC_IMPORT u32_t get_header_offset( |
222 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H u32_t get_header_offset( |
202 u32_t * const MTU, |
223 u32_t * const MTU, |
203 u32_t * const trailer_length); |
224 u32_t * const trailer_length); |
204 |
225 |
205 /** |
226 /** |
206 * The unload_module() function initializes un-load of desired EAP-type. |
227 * The unload_module() function initializes un-load of desired EAP-type. |
207 * After the EAP-type is not needed this function should be called. |
228 * After the EAP-type is not needed this function should be called. |
208 */ |
229 */ |
209 EAP_FUNC_IMPORT eap_status_e unload_module( |
230 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e unload_module( |
210 const eap_type_value_e type); |
231 const eap_type_value_e type); |
211 |
232 |
212 /** |
233 /** |
213 * The adaptation module calls the eap_acknowledge() function after |
234 * The adaptation module calls the eap_acknowledge() function after |
214 * any Network Protocol packet is received. This is used as a success indication. |
235 * any Network Protocol packet is received. This is used as a success indication. |
216 * @param connection_handle separates the context of the acknowledged session. |
237 * @param connection_handle separates the context of the acknowledged session. |
217 * Mostly there is only one session in the client. |
238 * Mostly there is only one session in the client. |
218 * The server does not need eap_acknowledge() function because |
239 * The server does not need eap_acknowledge() function because |
219 * server (EAP-authenticator) sends the EAP-success message. |
240 * server (EAP-authenticator) sends the EAP-success message. |
220 */ |
241 */ |
221 EAP_FUNC_IMPORT eap_status_e eap_acknowledge( |
242 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e eap_acknowledge( |
222 const eap_am_network_id_c * const receive_network_id); |
243 const eap_am_network_id_c * const receive_network_id); |
223 |
244 |
224 /** |
245 /** |
225 * This function restarts authentication using current object. |
246 * This function restarts authentication using current object. |
226 * This is used for testing. |
247 * This is used for testing. |
227 */ |
248 */ |
228 EAP_FUNC_IMPORT eap_status_e restart_authentication( |
249 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e restart_authentication( |
229 const eap_am_network_id_c * const send_network_id, |
250 const eap_am_network_id_c * const send_network_id, |
230 const bool is_client_when_true); |
251 const bool is_client_when_true); |
231 |
252 |
232 #if defined(USE_EAP_CORE_SERVER) |
253 #if defined(USE_EAP_CORE_SERVER) |
233 /** |
254 /** |
234 * The EAP Core calls the send_eap_identity_request() function |
255 * The EAP Core calls the send_eap_identity_request() function |
235 * when EAP-authentication is needed with another peer. |
256 * when EAP-authentication is needed with another peer. |
236 * @param network_id includes the addresses (network identity) and packet type. |
257 * @param network_id includes the addresses (network identity) and packet type. |
237 */ |
258 */ |
238 EAP_FUNC_IMPORT eap_status_e send_eap_identity_request( |
259 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e send_eap_identity_request( |
239 const eap_am_network_id_c * const network_id); |
260 const eap_am_network_id_c * const network_id); |
240 #endif //#if defined(USE_EAP_CORE_SERVER) |
261 #endif //#if defined(USE_EAP_CORE_SERVER) |
241 |
262 |
242 /** |
263 /** |
243 * The EAP Core calls the send_eap_nak_response() function |
264 * The EAP Core calls the send_eap_nak_response() function |
244 * when EAP-authentication with requested EAP type is not possible. |
265 * when EAP-authentication with requested EAP type is not possible. |
245 * @param network_id includes the addresses (network identity) and packet type. |
266 * @param network_id includes the addresses (network identity) and packet type. |
246 * @param eap_identifier is the EAP-Identifier to be used with EAP-Nak message. |
267 * @param eap_identifier is the EAP-Identifier to be used with EAP-Nak message. |
247 * @param preferred_eap_type is the acceptable EAP-Type to be informed with an other peer. |
268 * @param preferred_eap_type is the acceptable EAP-Type to be informed with an other peer. |
248 */ |
269 */ |
249 EAP_FUNC_IMPORT eap_status_e send_eap_nak_response( |
270 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e send_eap_nak_response( |
250 const eap_am_network_id_c * const receive_network_id, |
271 const eap_am_network_id_c * const receive_network_id, |
251 const u8_t eap_identifier, |
272 const u8_t eap_identifier, |
252 const eap_type_value_e preferred_eap_type); |
273 const eap_type_value_e preferred_eap_type); |
253 |
274 |
254 /** |
275 /** |
259 * @param authentication_key is pointer to the first byte of the authentication key. |
280 * @param authentication_key is pointer to the first byte of the authentication key. |
260 * @param auth_key_length is count of bytes in the authentication key. |
281 * @param auth_key_length is count of bytes in the authentication key. |
261 * @param encryption_key is pointer to the first byte of the encryption key. |
282 * @param encryption_key is pointer to the first byte of the encryption key. |
262 * @param encr_key_length is count of bytes in the encryption key. |
283 * @param encr_key_length is count of bytes in the encryption key. |
263 */ |
284 */ |
264 EAP_FUNC_IMPORT eap_status_e packet_data_crypto_keys( |
285 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e packet_data_crypto_keys( |
265 const eap_am_network_id_c * const send_network_id, |
286 const eap_am_network_id_c * const send_network_id, |
266 const eap_master_session_key_c * const master_session_key |
287 const eap_master_session_key_c * const master_session_key |
267 ); |
288 ); |
268 |
289 |
269 // This is documented in abs_eap_stack_interface_c::configure(). |
290 // This is documented in abs_eap_stack_interface_c::configure(). |
270 EAP_FUNC_IMPORT eap_status_e configure(); |
291 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e configure(); |
271 |
292 |
272 // This is documented in abs_eap_stack_interface_c::shutdown(). |
293 // This is documented in abs_eap_stack_interface_c::shutdown(). |
273 EAP_FUNC_IMPORT eap_status_e shutdown(); |
294 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e shutdown(); |
274 |
295 |
275 /** |
296 /** |
276 * The read_configure() function reads the configuration data identified |
297 * The read_configure() function reads the configuration data identified |
277 * by the field string of field_length bytes length. Adaptation module must direct |
298 * by the field string of field_length bytes length. Adaptation module must direct |
278 * the query to some persistent store. |
299 * the query to some persistent store. |
279 * @param field is generic configure string idenfying the required configure data. |
300 * @param field is generic configure string idenfying the required configure data. |
280 * @param field_length is length of the field string. |
301 * @param field_length is length of the field string. |
281 * @param data is pointer to existing eap_variable_data object. |
302 * @param data is pointer to existing eap_variable_data object. |
282 */ |
303 */ |
283 EAP_FUNC_IMPORT virtual eap_status_e read_configure( |
304 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H virtual eap_status_e read_configure( |
284 const eap_configuration_field_c * const field, |
305 const eap_configuration_field_c * const field, |
285 eap_variable_data_c * const data); |
306 eap_variable_data_c * const data); |
286 |
307 |
287 /** |
308 /** |
288 * The write_configure() function writes the configuration data identified |
309 * The write_configure() function writes the configuration data identified |
290 * the action to some persistent store. |
311 * the action to some persistent store. |
291 * @param field is generic configure string idenfying the required configure data. |
312 * @param field is generic configure string idenfying the required configure data. |
292 * @param field_length is length of the field string. |
313 * @param field_length is length of the field string. |
293 * @param data is pointer to existing eap_variable_data object. |
314 * @param data is pointer to existing eap_variable_data object. |
294 */ |
315 */ |
295 EAP_FUNC_IMPORT virtual eap_status_e write_configure( |
316 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H virtual eap_status_e write_configure( |
296 const eap_configuration_field_c * const field, |
317 const eap_configuration_field_c * const field, |
297 eap_variable_data_c * const data); |
318 eap_variable_data_c * const data); |
298 |
319 |
299 // This is documented in abs_eap_stack_interface_c::set_is_valid(). |
320 // This is documented in abs_eap_stack_interface_c::set_is_valid(). |
300 EAP_FUNC_IMPORT void set_is_valid(); |
321 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H void set_is_valid(); |
301 |
322 |
302 // This is documented in abs_eap_stack_interface_c::get_is_valid(). |
323 // This is documented in abs_eap_stack_interface_c::get_is_valid(). |
303 EAP_FUNC_IMPORT bool get_is_valid(); |
324 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H bool get_is_valid(); |
304 |
325 |
305 // See abs_eap_base_type_c::state_notification(). |
326 // See abs_eap_base_type_c::state_notification(). |
306 EAP_FUNC_IMPORT void state_notification( |
327 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H void state_notification( |
307 const abs_eap_state_notification_c * const state); |
328 const abs_eap_state_notification_c * const state); |
308 |
329 |
309 // See abs_eap_base_timer_c::timer_expired(). |
330 // See abs_eap_base_timer_c::timer_expired(). |
310 EAP_FUNC_IMPORT eap_status_e timer_expired( |
331 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e timer_expired( |
311 const u32_t id, void *data); |
332 const u32_t id, void *data); |
312 |
333 |
313 // See abs_eap_base_timer_c::timer_delete_data(). |
334 // See abs_eap_base_timer_c::timer_delete_data(). |
314 EAP_FUNC_IMPORT eap_status_e timer_delete_data( |
335 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e timer_delete_data( |
315 const u32_t id, void *data); |
336 const u32_t id, void *data); |
316 |
337 |
317 /** |
338 /** |
318 * The load_module() function function indicates the lower level to |
339 * The load_module() function function indicates the lower level to |
319 * load new module of EAP-type. |
340 * load new module of EAP-type. |
320 * @see abs_eap_core_c::load_module(). |
341 * @see abs_eap_core_c::load_module(). |
321 */ |
342 */ |
322 EAP_FUNC_IMPORT eap_status_e load_module( |
343 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e load_module( |
323 const eap_type_value_e type, |
344 const eap_type_value_e type, |
324 const eap_type_value_e /* tunneling_type */, |
345 const eap_type_value_e /* tunneling_type */, |
325 abs_eap_base_type_c * const partner, |
346 abs_eap_base_type_c * const partner, |
326 eap_base_type_c ** const eap_type, |
347 eap_base_type_c ** const eap_type, |
327 const bool is_client_when_true, |
348 const bool is_client_when_true, |
330 /** |
351 /** |
331 * The adaptation module calls the restart_authentication() function |
352 * The adaptation module calls the restart_authentication() function |
332 * when EAP-authentication is needed with another peer. |
353 * when EAP-authentication is needed with another peer. |
333 * @see abs_eap_core_c::restart_authentication(). |
354 * @see abs_eap_core_c::restart_authentication(). |
334 */ |
355 */ |
335 EAP_FUNC_IMPORT eap_status_e restart_authentication( |
356 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e restart_authentication( |
336 const eap_am_network_id_c * const receive_network_id, |
357 const eap_am_network_id_c * const receive_network_id, |
337 const bool is_client_when_true, |
358 const bool is_client_when_true, |
338 const bool force_clean_restart, |
359 const bool force_clean_restart, |
339 const bool from_timer = false); |
360 const bool from_timer = false); |
340 |
361 |
341 /** |
362 /** |
342 * This function removes EAP session object synchronously. |
363 * This function removes EAP session object synchronously. |
343 * @param receive_network_id identifies the removed EAP session. |
364 * @param receive_network_id identifies the removed EAP session. |
344 */ |
365 */ |
345 EAP_FUNC_IMPORT eap_status_e remove_eap_session( |
366 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e remove_eap_session( |
346 const bool complete_to_lower_layer, |
367 const bool complete_to_lower_layer, |
347 const eap_am_network_id_c * const receive_network_id); |
368 const eap_am_network_id_c * const receive_network_id); |
348 |
369 |
349 /** |
370 /** |
350 * This function removes EAP session object asynchronously. |
371 * This function removes EAP session object asynchronously. |
355 |
376 |
356 /** |
377 /** |
357 * This function tells lower layer to remove EAP session object asynchronously. |
378 * This function tells lower layer to remove EAP session object asynchronously. |
358 * @param eap_type is pointer to selector that identifies the removed EAP session. |
379 * @param eap_type is pointer to selector that identifies the removed EAP session. |
359 */ |
380 */ |
360 EAP_FUNC_IMPORT eap_status_e asynchronous_init_remove_eap_session( |
381 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e asynchronous_init_remove_eap_session( |
361 const eap_network_id_selector_c * const state_selector); |
382 const eap_network_id_selector_c * const state_selector); |
362 |
383 |
363 // |
384 // |
364 EAP_FUNC_IMPORT eap_status_e set_timer( |
385 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e set_timer( |
365 abs_eap_base_timer_c * const p_initializer, |
386 abs_eap_base_timer_c * const p_initializer, |
366 const u32_t p_id, |
387 const u32_t p_id, |
367 void * const p_data, |
388 void * const p_data, |
368 const u32_t p_time_ms); |
389 const u32_t p_time_ms); |
369 |
390 |
370 EAP_FUNC_IMPORT eap_status_e cancel_timer( |
391 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e cancel_timer( |
371 abs_eap_base_timer_c * const p_initializer, |
392 abs_eap_base_timer_c * const p_initializer, |
372 const u32_t p_id); |
393 const u32_t p_id); |
373 |
394 |
374 // |
395 // |
375 EAP_FUNC_IMPORT eap_status_e cancel_all_timers(); |
396 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e cancel_all_timers(); |
376 |
397 |
377 // |
398 // |
378 EAP_FUNC_IMPORT eap_status_e check_is_valid_eap_type(const eap_type_value_e eap_type); |
399 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e check_is_valid_eap_type(const eap_type_value_e eap_type); |
379 |
400 |
380 /// @see abs_eap_core_c::get_eap_type_list(). |
401 /// @see abs_eap_core_c::get_eap_type_list(). |
381 EAP_FUNC_IMPORT eap_status_e get_eap_type_list( |
402 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e get_eap_type_list( |
382 eap_array_c<eap_type_value_e> * const eap_type_list); |
403 eap_array_c<eap_type_value_e> * const eap_type_list); |
383 |
404 |
384 /// @see abs_eap_core_c::add_rogue_ap(). |
405 /// @see abs_eap_core_c::add_rogue_ap(). |
385 EAP_FUNC_IMPORT eap_status_e add_rogue_ap(eap_array_c<eap_rogue_ap_entry_c> & rogue_ap_list); |
406 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e add_rogue_ap(eap_array_c<eap_rogue_ap_entry_c> & rogue_ap_list); |
386 |
407 |
387 // This is documented in abs_eap_core_c::set_session_timeout(). |
408 // This is documented in abs_eap_core_c::set_session_timeout(). |
388 EAP_FUNC_IMPORT eap_status_e set_session_timeout( |
409 EAP_FUNC_VISIBILITY_EAP_RADIUS_SESSION_H eap_status_e set_session_timeout( |
389 const u32_t session_timeout_ms); |
410 const u32_t session_timeout_ms); |
390 |
411 |
391 //-------------------------------------------------- |
412 //-------------------------------------------------- |
392 }; // class eap_radius_session_c |
413 }; // class eap_radius_session_c |
393 |
414 |