abs_eap_base_type_c Class Reference
class abs_eap_base_type_c |
The class is the interface to partner class of the eap_base_type class. This declares the pure virtual member functions EAP-type class could call.
Public Member Functions |
---|
| abs_eap_base_type_c() |
| ~abs_eap_base_type_c() |
eap_status_e
| add_rogue_ap(eap_array_c< eap_rogue_ap_entry_c > &) |
eap_status_e
| cancel_all_timers() |
eap_status_e
| cancel_timer(abs_eap_base_timer_c *const , const u32_t) |
eap_status_e
| check_is_valid_eap_type(const eap_type_value_e) |
eap_status_e
| complete_eap_identity_query(const eap_am_network_id_c *const , const eap_variable_data_c *const , const u8_t) |
eap_status_e
| get_eap_type_list(eap_array_c< eap_type_value_e > *const ) |
u32_t
| get_header_offset(u32_t *const , u32_t *const ) |
bool | get_is_tunneled_eap() |
eap_status_e
| get_saved_eap_identity(eap_variable_data_c *const ) |
eap_status_e
| load_module(const eap_type_value_e, const , abs_eap_base_type_c *const , eap_base_type_c **const , const bool, const eap_am_network_id_c *const ) |
eap_status_e
| packet_data_crypto_keys(const eap_am_network_id_c *const , const eap_master_session_key_c *const ) |
eap_status_e
| packet_send(const eap_am_network_id_c *const , eap_buf_chain_wr_c *const , const u32_t, const u32_t, const u32_t) |
eap_status_e
| read_configure(const eap_configuration_field_c *const , eap_variable_data_c *const ) |
eap_status_e
| restart_authentication(const eap_am_network_id_c *const , const bool) |
eap_status_e
| set_authentication_role(const bool) |
eap_status_e
| set_session_timeout(const u32_t) |
eap_status_e
| set_timer(abs_eap_base_timer_c *const , const u32_t, void *const , const u32_t) |
void | state_notification(const abs_eap_state_notification_c *const ) |
eap_status_e
| unload_module(const eap_type_value_e) |
eap_status_e
| write_configure(const eap_configuration_field_c *const , eap_variable_data_c *const ) |
Constructor & Destructor Documentation
abs_eap_base_type_c()
abs_eap_base_type_c | ( | ) | [inline] |
~abs_eap_base_type_c()
~abs_eap_base_type_c | ( | ) | [inline, virtual] |
Member Functions Documentation
add_rogue_ap(eap_array_c< eap_rogue_ap_entry_c > &)
cancel_all_timers()
The cancel_all_timers() function cancels all timers. User should use this in termination of the stack before the adaptation module of tools is deleted. Preferred mode is to cancel each timer directly using cancel_timer() function.
Adaptation module internally implements the timer.
cancel_timer(abs_eap_base_timer_c *const, const u32_t)
The cancel_timer() function cancels the timer id initiated by initializer. Adaptation module internally implements the timer.
Parameters
abs_eap_base_timer_c *const initializer | is pointer to object which set the cancelled timer. |
const u32_t id | is identifier which will be returned in timer_expired() function. The user selects and interprets the id for this timer. |
check_is_valid_eap_type(const eap_type_value_e)
This is needed by PEAP type. This function queries the validity of EAP-type. Lower layer should return eap_status_ok if this EAP-type is supported.
complete_eap_identity_query(const eap_am_network_id_c *const, const eap_variable_data_c *const, const u8_t)
Client object of EAP-type calls this function. This function completes asyncronously query_eap_identity() function call.
Parameters
const eap_am_network_id_c *const send_network_id | is network identity of target. |
const eap_variable_data_c *const identity | is pointer to object that includes the identity. |
const u8_t eap_identifier | is EAP-Identifier for EAP-Response/Identity packet. |
get_eap_type_list(eap_array_c< eap_type_value_e > *const)
This function queries the list of supported EAP-types. Lower layer should return eap_status_ok if this call succeeds.
Parameters
eap_array_c< eap_type_value_e > *const eap_type_list | will include the list of supported EAP-types. Each value in list is type of u32_t and represent one supported EAP-type. List consists of subsequent u32_t type values. |
get_header_offset(u32_t *const, u32_t *const)
u32_t
| get_header_offset | ( | u32_t *const | MTU_length, |
| u32_t *const | trailer_length |
| ) | [pure virtual] |
The get_header_offset() function obtains the header offset of EAP-packet. The needed buffer length is ((offset) + (EAP-packet length) + (trailer)) bytes. Each layer adds the length of the header to offset. Each layer removes the length of the header and trailer from MTU.
Now some ascii graphics follows.
|<-------------------------buffer length----------------------------------------->|
| |
| +-----+---------------------------------------+ |
| | EAP | data | |
| +-----+---------------------------------------+ |
|<----offset--------->|<----MTU------------------------------------>|<--trailer-->|
| | | |
| +-------+---------------------------------------------+ |
| | EAPOL | data | |
| +-------+---------------------------------------------+ |
|<--offset--->|<----MTU-------------------------------------------->|<--trailer-->|
| | | |
+-------------+-----------------------------------------------------+-------------+
| ETHERNET | data | trailer |
+-------------+-----------------------------------------------------+-------------+
|<----MTU------------------------------------------------------------------------>|
Parameters
u32_t *const MTU_length | is pointer to variable to store the maximum transfer unit (MTU). MTU is the maximum EAP-packet length in bytes |
u32_t *const trailer_length | is pointer to the variable to store length of trailer needed by lower levels. |
get_is_tunneled_eap()
bool | get_is_tunneled_eap | ( | ) | const [pure virtual] |
get_saved_eap_identity(eap_variable_data_c *const)
Client object of EAP-type calls this function. This function gets the EAP-identity queried from previous EAP-type.
First EAP-type A is default. The eap_core_c object queries EAP-identity from EAP-type A. Server process EAP-Response/Identity but there the default EAP-type is B. Server sends EAP-Request/B. Client loads new EAP-type B and forwards EAP-Request/B to it. EAP-Request/B is the first EAP-packet EAP-type B receive. It must continue using the EAP-identity obtained with EAP-type A. Now EAP-type B could get the EAP-identity obtained with EAP-type A with this function.
load_module(const eap_type_value_e, const, abs_eap_base_type_c *const, eap_base_type_c **const, const bool, const eap_am_network_id_c *const)
This is needed by PEAP type. The load_module() function function indicates the lower level to load new module of EAP-type.
Parameters
const eap_type_value_e type | is the requested EAP-type. |
const eap_type_value_e | |
abs_eap_base_type_c *const partner | is pointer to the caller object. The partner of the new created EAP-type object is the caller object. |
eap_base_type_c **const eap_type | is a pointer to a pointer of EAP-type object. Adaptation module sets eap_type pointer to created EAP-type object. |
const bool is_client_when_true | parameter indicates whether the network entity should act as a client (true) or server (false), in terms of EAP-protocol whether this network entity is EAP-supplicant (true) or EAP-authenticator (false). |
const eap_am_network_id_c *const receive_network_id | includes the addresses (network identity) and packet type. |
packet_data_crypto_keys(const eap_am_network_id_c *const, const eap_master_session_key_c *const)
Note this function is just an example. Parameters will change later. The packet_data_crypto_keys() function gives the generated keys to lower level. After EAP-authentication has generated the keys it calls this function to offer the keys to lower level.
packet_send(const eap_am_network_id_c *const, eap_buf_chain_wr_c *const, const u32_t, const u32_t, const u32_t)
The derived class could send packets to partner class with this function. Now some ascii graphics follows.
+---------------------+-----+---------------------------------------+-------------+
| | EAP | data | |
+---------------------+-----+---------------------------------------+-------------+
| | | |
|<---header_offset--->|<-------------data_length------------------->|<--trailer-->|
| |
|<------------------------buffer_length------------------------------------------>|
trailer is the free space in the end of the packet buffer.
Parameters
const eap_am_network_id_c *const network_id | carries the addresses (network identity) and type of the packet. |
eap_buf_chain_wr_c *const sent_packet | includes the buffer for the whole packet and initialized EAP-packet in correct offset. |
const u32_t header_offset | is offset of the EAP-header within the sent_packet. |
const u32_t data_length | is length in bytes of the EAP-packet. |
const u32_t buffer_length | is length in bytes of the whole packet buffer. |
read_configure(const eap_configuration_field_c *const, eap_variable_data_c *const)
The read_configure() function reads the configuration data identified by the field string of field_length bytes length. Adaptation module must direct the query to some persistent store. EAP-type should store it's parameters to an own database. The own database should be accessed through adaptation module of EAP-type. See eap_am_type_gsmsim_simulator_c::type_configure_read.
restart_authentication(const eap_am_network_id_c *const, const bool)
This function restarts authentication to send_network_id.
Parameters
const eap_am_network_id_c *const send_network_id | is network identity of target. |
const bool is_client_when_true | indicates whether this object should act as a client (true) or server (false), in terms of EAP-protocol whether this network entity is EAP-supplicant (true) or EAP-authenticator (false). |
set_authentication_role(const bool)
eap_status_e
| set_authentication_role | ( | const bool | when_true_set_client | ) | [pure virtual] |
Parameters
const bool when_true_set_client | |
set_session_timeout(const u32_t)
The set_session_timeout() function changes the session timeout timer to be elapsed after session_timeout_ms milliseconds.
Parameters
const u32_t session_timeout_ms | |
set_timer(abs_eap_base_timer_c *const, const u32_t, void *const, const u32_t)
The set_timer() function initializes timer to be elapsed after time_ms milliseconds. Adaptation module internally implements the timer.
Parameters
abs_eap_base_timer_c *const initializer | is pointer to object which timer_expired() function will be called after timer elapses. |
const u32_t id | is identifier which will be returned in timer_expired() function. The user selects and interprets the id for this timer. |
void *const data | is pointer to any user selected data which will be returned in timer_expired() function. |
const u32_t time_ms | is the time of timer in milli seconds. |
state_notification(const abs_eap_state_notification_c *const)
unload_module(const eap_type_value_e)
This is needed by PEAP type. The unload_module() function unloads the module of a EAP-type.
write_configure(const eap_configuration_field_c *const, eap_variable_data_c *const)
The write_configure() function writes the configuration data identified by the field string of field_length bytes length. Adaptation module must direct the action to some persistent store. EAP-type should store it's parameters to an own database. The own database should be accessed through adaptation module of EAP-type. See eap_am_type_gsmsim_simulator_c::type_configure_write.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.