--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_connection_data.cpp Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,909 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Class holding all connection related data
+*
+*/
+
+/*
+* %version: 37 %
+*/
+
+#include "core_connection_data.h"
+#include "core_tools.h"
+#include "am_debug.h"
+
+const u8_t CORE_FAILURE_NONE = 0;
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_connection_data_c::core_connection_data_c(
+ const core_iap_data_s& iap_data,
+ const core_device_settings_s& device_settings ) :
+ iap_data_m( iap_data ),
+ device_settings_m( device_settings ),
+ connect_status_m( core_connect_undefined ),
+ previous_ap_m( NULL ),
+ current_ap_m( NULL ),
+ ssid_m( BROADCAST_SSID ),
+ temp_blacklist_m( ),
+ last_rcp_class_m( core_rcp_normal ),
+ last_tx_level_m( MAX_TX_POWER_LEVEL_NOT_DEFINED ),
+ last_bssid_m( ZERO_MAC_ADDR ),
+ last_connection_state_m( core_connection_state_notconnected ),
+ association_failure_count_m( ),
+ deauthentication_count_m( ),
+ last_eap_type_m( EAP_TYPE_NONE ),
+ last_eap_error_code_m( EAP_ERROR_NONE ),
+ adjacent_ap_channels_m( ),
+ is_eapol_authentication_started_m( false_t ),
+ is_eapol_authenticating_m( false_t ),
+ eapol_auth_bssid_m( ZERO_MAC_ADDR ),
+ traffic_stream_list_m( ),
+ virtual_traffic_stream_list_m( ),
+ is_eapol_connecting_m( false_t ),
+ is_disconnecting_m( false_t ),
+ last_roam_reason_m( core_roam_reason_none ),
+ last_roam_failed_reason_m( core_roam_failed_reason_none ),
+ is_eapol_require_immediate_reconnect_m( false_t ),
+ is_voice_call_on_m( false_t ),
+ previous_rrm_measurement_request_time_m( 0 )
+ {
+ DEBUG( "core_connection_data_c::core_connection_data_c()" );
+
+ for( u8_t idx( 0 ); idx < MAX_QOS_ACCESS_CLASS; ++idx )
+ {
+ ac_traffic_status_m[idx] = core_access_class_traffic_status_admitted;
+ ac_traffic_mode_m[idx] = core_access_class_traffic_mode_automatic;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_connection_data_c::~core_connection_data_c()
+ {
+ DEBUG( "core_connection_data_c::~core_connection_data_c()" );
+ delete current_ap_m;
+ delete previous_ap_m;
+ temp_blacklist_m.clear();
+ association_failure_count_m.clear();
+ deauthentication_count_m.clear();
+ power_save_test_verdict_m.clear();
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_iap_data_c& core_connection_data_c::iap_data()
+ {
+ return iap_data_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_connect_status_e core_connection_data_c::connect_status() const
+ {
+ return connect_status_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_connect_status(
+ core_connect_status_e connect_status )
+ {
+ connect_status_m = connect_status;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_current_ap_data(
+ const core_ap_data_c& ap_data )
+ {
+ DEBUG( "core_connection_data_c::set_current_ap_data()" );
+
+ delete current_ap_m;
+ current_ap_m = NULL;
+
+ current_ap_m = core_ap_data_c::instance( ap_data );
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_ap_data_c* core_connection_data_c::current_ap_data()
+ {
+ return current_ap_m;
+ }
+
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_previous_ap_data(
+ const core_ap_data_c& ap_data )
+ {
+ delete previous_ap_m;
+ previous_ap_m = NULL;
+
+ previous_ap_m = core_ap_data_c::instance( ap_data );
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_ap_data_c* core_connection_data_c::previous_ap_data()
+ {
+ return previous_ap_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const core_ssid_s& core_connection_data_c::ssid() const
+ {
+ return ssid_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_ssid(
+ const core_ssid_s& ssid )
+ {
+ ssid_m = ssid;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_mac_in_temporary_blacklist(
+ const core_mac_address_s& mac )
+ {
+ core_ap_blacklist_entry_s* addr = temp_blacklist_m.first();
+ while ( addr )
+ {
+ if ( addr->bssid == mac )
+ {
+ return true_t;
+ }
+
+ addr = temp_blacklist_m.next();
+ }
+
+ return false_t;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::add_mac_to_temporary_blacklist(
+ const core_mac_address_s& mac,
+ core_ap_blacklist_reason_e reason )
+ {
+ if ( !is_mac_in_temporary_blacklist( mac ) )
+ {
+ core_ap_blacklist_entry_s* entry = new core_ap_blacklist_entry_s;
+ if ( entry )
+ {
+ entry->bssid = mac;
+ entry->reason = reason;
+ temp_blacklist_m.append( entry );
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::remove_mac_from_temporary_blacklist(
+ const core_mac_address_s& mac )
+ {
+ core_ap_blacklist_entry_s* addr = temp_blacklist_m.first();
+ while ( addr )
+ {
+ if ( addr->bssid == mac )
+ {
+ temp_blacklist_m.remove( addr );
+ delete addr;
+ addr = NULL;
+
+ return;
+ }
+
+ addr = temp_blacklist_m.next();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_type_list_c<core_ap_blacklist_entry_s>& core_connection_data_c::temporary_blacklist()
+ {
+ return temp_blacklist_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::remove_temporary_blacklist_entries(
+ u32_t reasons )
+ {
+ core_ap_blacklist_entry_s* addr = temp_blacklist_m.first();
+ while( addr )
+ {
+ if( reasons & addr->reason )
+ {
+ DEBUG6( "core_connection_data_c::remove_temporary_blacklist_entries() - removing entry with BSSID %02X:%02X:%02X:%02X:%02X:%02X",
+ addr->bssid.addr[0], addr->bssid.addr[1], addr->bssid.addr[2],
+ addr->bssid.addr[3], addr->bssid.addr[4], addr->bssid.addr[5] );
+
+ temp_blacklist_m.remove( addr );
+ delete addr;
+ addr = NULL;
+
+ return;
+ }
+
+ addr = temp_blacklist_m.next();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_rcp_class_e core_connection_data_c::last_rcp_class() const
+ {
+ return last_rcp_class_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_rcp_class(
+ core_rcp_class_e type )
+ {
+ last_rcp_class_m = type;
+ };
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u32_t core_connection_data_c::last_tx_level() const
+ {
+ return last_tx_level_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_tx_level(
+ u32_t tx_level )
+ {
+ last_tx_level_m = tx_level;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const core_mac_address_s& core_connection_data_c::last_bssid() const
+ {
+ return last_bssid_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_bssid(
+ const core_mac_address_s& bssid )
+ {
+ last_bssid_m = bssid;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_connection_state_e core_connection_data_c::connection_state() const
+ {
+ core_operating_mode_e mode =
+ iap_data_m.operating_mode();
+
+ if( mode == core_operating_mode_ibss )
+ {
+ if( iap_data_m.security_mode() == core_security_mode_allow_unsecure )
+ {
+ return core_connection_state_ibss;
+ }
+ else
+ {
+ return core_connection_state_secureibss;
+ }
+ }
+ else
+ {
+ if( iap_data_m.security_mode() == core_security_mode_allow_unsecure )
+ {
+ return core_connection_state_infrastructure;
+ }
+ else
+ {
+ return core_connection_state_secureinfra;
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_connection_state_e core_connection_data_c::last_connection_state() const
+ {
+ return last_connection_state_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_connection_state(
+ core_connection_state_e state )
+ {
+ last_connection_state_m = state;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u8_t core_connection_data_c::ap_association_failure_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_failure_count_s* iter = association_failure_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ return iter->count;
+ }
+
+ iter = association_failure_count_m.next();
+ }
+
+ return CORE_FAILURE_NONE;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::increase_ap_association_failure_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_failure_count_s* iter = association_failure_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ iter->count++;
+ return;
+ }
+
+ iter = association_failure_count_m.next();
+ }
+
+ iter = new core_ap_failure_count_s;
+ if ( iter )
+ {
+ iter->bssid = bssid;
+ iter->count = CORE_FAILURE_NONE + 1;
+ association_failure_count_m.append( iter );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::clear_ap_association_failure_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_failure_count_s* iter = association_failure_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ DEBUG1( "core_connection_data_c::clear_ap_failure_count() - this AP had %u previous failures",
+ iter->count );
+
+ association_failure_count_m.remove( iter );
+
+ delete iter;
+ iter = NULL;
+
+ return;
+ }
+
+ iter = association_failure_count_m.next();
+ }
+
+ DEBUG( "core_connection_data_c::clear_ap_failure_count() - this AP had no previous failures" );
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u8_t core_connection_data_c::ap_authentication_failure_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_auth_failure_count_s* iter = authentication_failure_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ return iter->count;
+ }
+
+ iter = authentication_failure_count_m.next();
+ }
+
+ return CORE_FAILURE_NONE;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::increase_ap_authentication_failure_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_auth_failure_count_s* iter = authentication_failure_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ iter->count++;
+ return;
+ }
+
+ iter = authentication_failure_count_m.next();
+ }
+
+ iter = new core_ap_auth_failure_count_s;
+ if ( iter )
+ {
+ iter->bssid = bssid;
+ iter->count = CORE_FAILURE_NONE + 1;
+ authentication_failure_count_m.append( iter );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::clear_all_authentication_failure_counts()
+ {
+ DEBUG( "core_connection_data_c::clear_all_authentication_failure_counts()" );
+
+ core_ap_auth_failure_count_s* iter = authentication_failure_count_m.first();
+ while ( iter )
+ {
+ DEBUG1( "core_connection_data_c::clear_all_authentication_failure_counts() - this AP had %u previous failures",
+ iter->count );
+
+ authentication_failure_count_m.remove( iter );
+
+ delete iter;
+ iter = NULL;
+
+ iter = authentication_failure_count_m.next();
+ }
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u8_t core_connection_data_c::ap_deauthentication_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_failure_count_s* iter = deauthentication_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ return iter->count;
+ }
+
+ iter = deauthentication_count_m.next();
+ }
+
+ return CORE_FAILURE_NONE;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::increase_ap_deauthentication_count(
+ const core_mac_address_s& bssid )
+ {
+ core_ap_failure_count_s* iter = deauthentication_count_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ iter->count++;
+ return;
+ }
+
+ iter = deauthentication_count_m.next();
+ }
+
+ iter = new core_ap_failure_count_s;
+ if ( iter )
+ {
+ iter->bssid = bssid;
+ iter->count = CORE_FAILURE_NONE + 1;
+ deauthentication_count_m.append( iter );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u32_t core_connection_data_c::last_failed_eap_type() const
+ {
+ return last_eap_type_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_failed_eap_type(
+ u32_t type )
+ {
+ last_eap_type_m = type;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+u32_t core_connection_data_c::last_eap_error() const
+ {
+ return last_eap_error_code_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_eap_error(
+ u32_t error )
+ {
+ last_eap_error_code_m = error;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const core_scan_channels_c& core_connection_data_c::adjacent_ap_channels() const
+ {
+ return adjacent_ap_channels_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_adjacent_ap_channels(
+ const core_scan_channels_c& channels )
+ {
+ adjacent_ap_channels_m.set( channels );
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::merge_adjacent_ap_channels(
+ const core_scan_channels_c& channels )
+ {
+ adjacent_ap_channels_m.merge( channels );
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_eapol_authentication_started() const
+ {
+ return is_eapol_authentication_started_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_eapol_authentication_started(
+ bool_t is_authentication_started )
+ {
+ is_eapol_authentication_started_m = is_authentication_started;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_eapol_authenticating() const
+ {
+ return is_eapol_authenticating_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_eapol_authenticating(
+ bool_t is_authenticating )
+ {
+ is_eapol_authenticating_m = is_authenticating;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const core_mac_address_s& core_connection_data_c::eapol_auth_bssid() const
+ {
+ return eapol_auth_bssid_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_eapol_auth_bssid(
+ const core_mac_address_s& bssid )
+ {
+ eapol_auth_bssid_m = bssid;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_traffic_stream_list_c& core_connection_data_c::traffic_stream_list()
+ {
+ return traffic_stream_list_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_virtual_traffic_stream_list_c& core_connection_data_c::virtual_traffic_stream_list()
+ {
+ return virtual_traffic_stream_list_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_eapol_connecting() const
+ {
+ return is_eapol_connecting_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_eapol_connecting(
+ bool_t is_eapol_connecting )
+ {
+ is_eapol_connecting_m = is_eapol_connecting;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_disconnecting() const
+ {
+ return is_disconnecting_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_disconnecting(
+ bool_t is_disconnecting )
+ {
+ is_disconnecting_m = is_disconnecting;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const core_rcpi_roam_interval_s& core_connection_data_c::rcpi_roam_interval() const
+ {
+ return rcpi_roam_interval_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::reset_rcpi_roam_interval()
+ {
+ rcpi_roam_interval_m.count = 0;
+ rcpi_roam_interval_m.interval = device_settings_m.rcpi_roam_min_interval;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_core_rcpi_roam_interval(
+ const core_rcpi_roam_interval_s& interval )
+ {
+ rcpi_roam_interval_m = interval;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_roam_reason_e core_connection_data_c::last_roam_reason() const
+ {
+ return last_roam_reason_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_roam_reason(
+ core_roam_reason_e reason )
+ {
+ last_roam_reason_m = reason;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_roam_failed_reason_e core_connection_data_c::last_roam_failed_reason() const
+ {
+ return last_roam_failed_reason_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_last_roam_failed_reason(
+ core_roam_failed_reason_e reason )
+ {
+ last_roam_failed_reason_m = reason;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_ap_power_save_test_run(
+ const core_mac_address_s& bssid,
+ bool_t& is_success )
+ {
+ core_ap_power_save_test_verdict_s* iter = power_save_test_verdict_m.first();
+ while ( iter )
+ {
+ if ( iter->bssid == bssid )
+ {
+ is_success = iter->is_success;
+
+ return true_t;
+ }
+
+ iter = power_save_test_verdict_m.next();
+ }
+
+ return false_t;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::add_ap_power_save_test_verdict(
+ const core_mac_address_s& bssid,
+ bool_t is_success )
+ {
+ core_ap_power_save_test_verdict_s* iter = new core_ap_power_save_test_verdict_s;
+ if ( iter )
+ {
+ iter->bssid = bssid;
+ iter->is_success = is_success;
+
+ power_save_test_verdict_m.append( iter );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::is_eapol_require_immediate_reconnect() const
+ {
+ return is_eapol_require_immediate_reconnect_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_eapol_require_immediate_reconnect(
+ bool_t is_immediate_reconnect_required )
+ {
+ is_eapol_require_immediate_reconnect_m = is_immediate_reconnect_required;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+bool_t core_connection_data_c::voice_call_state() const
+ {
+ DEBUG1( "core_connection_data_c::voice_call_state() - returning %u", is_voice_call_on_m );
+ return is_voice_call_on_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_voice_call_state( const bool_t& is_voice_call_on )
+ {
+ DEBUG1( "core_connection_data_c::set_voice_call_state( %u )", is_voice_call_on );
+ is_voice_call_on_m = is_voice_call_on;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+const u64_t& core_connection_data_c::get_previous_rrm_measurement_request_time() const
+ {
+ return previous_rrm_measurement_request_time_m;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_previous_rrm_measurement_request_time( const u64_t& timestamp)
+ {
+ previous_rrm_measurement_request_time_m = timestamp;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_access_class_traffic_status_e core_connection_data_c::ac_traffic_status(
+ core_access_class_e access_class ) const
+ {
+ return ac_traffic_status_m[access_class];
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_ac_traffic_status(
+ core_access_class_e access_class,
+ core_access_class_traffic_status_e status )
+ {
+ ac_traffic_status_m[access_class] = status;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+core_access_class_traffic_mode_e core_connection_data_c::ac_traffic_mode(
+ core_access_class_e access_class ) const
+ {
+ return ac_traffic_mode_m[access_class];
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void core_connection_data_c::set_ac_traffic_mode(
+ core_access_class_e access_class,
+ core_access_class_traffic_mode_e mode )
+ {
+ ac_traffic_mode_m[access_class] = mode;
+ }