wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_roam.cpp
changeset 17 41a8eba36f74
parent 13 ab7247ff6ef9
child 24 e717b8f55620
equal deleted inserted replaced
14:00032b836e76 17:41a8eba36f74
    14 * Description:  Statemachine for roaming
    14 * Description:  Statemachine for roaming
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 76 %
    19 * %version: 76.1.2 %
    20 */
    20 */
    21 
    21 
    22 #include "core_operation_roam.h"
    22 #include "core_operation_roam.h"
    23 #include "core_server.h"
    23 #include "core_server.h"
    24 #include "core_tools.h"
    24 #include "core_tools.h"
   462             }
   462             }
   463         case core_state_req_enable_userdata:
   463         case core_state_req_enable_userdata:
   464             {                        
   464             {                        
   465             DEBUG( "core_operation_roam_c::next_state() - connection done" );
   465             DEBUG( "core_operation_roam_c::next_state() - connection done" );
   466 
   466 
   467             server_m->get_connection_data()->set_last_rcp_class( core_rcp_normal );
       
   468             server_m->get_connection_data()->set_ssid( ssid_m );
   467             server_m->get_connection_data()->set_ssid( ssid_m );
   469             server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_enabled();
   468             server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_enabled();
   470             server_m->get_core_settings().roam_metrics().inc_roam_success_count();
   469             server_m->get_core_settings().roam_metrics().inc_roam_success_count();
   471 
   470 
   472             server_m->get_connection_data()->clear_ap_association_failure_count(
   471             server_m->get_connection_data()->clear_ap_association_failure_count(
   509                         buf );
   508                         buf );
   510                     
   509                     
   511                     server_m->get_connection_data()->set_last_connection_state(
   510                     server_m->get_connection_data()->set_last_connection_state(
   512                         state );
   511                         state );
   513                     }
   512                     }
       
   513                 }
       
   514 
       
   515             if ( server_m->get_connection_data()->last_rcp_class() != core_rcp_normal )
       
   516                 {
       
   517                 DEBUG( "core_operation_roam_c::next_state() - sending a notification about the normal signal level" );
       
   518 
       
   519                 u8_t buf[5];
       
   520                 buf[0] = static_cast<u8_t>( core_rcp_normal );
       
   521                 buf[1] = current_ap_m->rcpi();
       
   522 
       
   523                 adaptation_m->notify(
       
   524                     core_notification_rcp_changed,
       
   525                     sizeof( buf ),
       
   526                     buf );
       
   527                 server_m->get_connection_data()->set_last_rcp_class( core_rcp_normal );
   514                 }
   528                 }
   515 
   529 
   516             if ( current_ap_m->is_wpx() )
   530             if ( current_ap_m->is_wpx() )
   517                 {
   531                 {
   518                 server_m->get_wpx_adaptation_instance().handle_wpx_roam_success(
   532                 server_m->get_wpx_adaptation_instance().handle_wpx_roam_success(
  1207             server_m->get_connection_data()->iap_data().is_802dot1x_used() &&
  1221             server_m->get_connection_data()->iap_data().is_802dot1x_used() &&
  1208             entry->ap_data->is_wpx_fast_roam_available() &&
  1222             entry->ap_data->is_wpx_fast_roam_available() &&
  1209             is_security_association_available( *server_m->get_connection_data()->current_ap_data() ) )
  1223             is_security_association_available( *server_m->get_connection_data()->current_ap_data() ) )
  1210             {
  1224             {
  1211             DEBUG( "core_operation_roam_c::process_frame() - WPX fast-roam supported" );
  1225             DEBUG( "core_operation_roam_c::process_frame() - WPX fast-roam supported" );
  1212                 
  1226 
  1213             entry->is_cached_sa_available = true_t;
  1227             entry->is_cached_sa_available = true_t;
  1214             entry_score += CORE_ROAMING_LIST_BONUS_WPX_FAST_ROAM;
  1228             entry_score += CORE_ROAMING_LIST_BONUS_WPX_FAST_ROAM;
  1215             }
  1229             }
  1216         else if( server_m->get_connection_data()->iap_data().is_eap_used() &&
  1230         else if( server_m->get_connection_data()->iap_data().is_eap_used() &&
  1217                  is_security_association_available( *entry->ap_data ) )
  1231                  is_security_association_available( *entry->ap_data ) )