@startuml
controller->backhaul_manager: handle_cmdu_control_ieee1905_1_message\n(CHANNEL_SELECTION_REQUEST_MESSAGE)
backhaul_manager->son_slave_wlan0: handle_cmdu_control_ieee1905_1_message\n(CHANNEL_SELECTION_REQUEST_MESSAGE)
son_slave_wlan0->son_slave_wlan0: channel_selection_get_transmit_power_limit()
son_slave_wlan0->son_slave_wlan0: channel_selection_current_channel_restricted()
son_slave_wlan0->son_slave_wlan0: channel_selection_get_channel_preference()
son_slave_wlan0->son_slave_wlan0: channel_selection_select_channel()
son_slave_wlan0->backhaul_manager: send_cmdu\n(CHANNEL_SELECTION_RESPONSE_MESSAGE)
son_slave_wlan0->controller: If channel switch\nis not required\nsend_cmdu_to_controller\n(OPERATING_CHANNEL_REPORT_MESSAGE)
son_slave_wlan0->ap_manager_wlan0: \nElse\nsend_cmdu\n(cACTION_APMANAGER_HOSTAP_CHANNEL_SWITCH_ACS_START)
ap_manager_wlan0->son_slave_wlan0:handle_cmdu_ap_manager_message\n(cACTION_APMANAGER_HOSTAP_CSA_NOTIFICATION)
son_slave_wlan0->controller: send_vs_cmdu\n(cACTION_CONTROL_HOSTAP_CSA_NOTIFICATION)
son_slave_wlan0->controller: send_cmdu_to_controller\n(OPERATING_CHANNEL_REPORT_MESSAGE)
controller->backhaul_manager: \n\nhandle_cmdu_control_ieee1905_1_message\n(CHANNEL_SELECTION_REQUEST_MESSAGE)
backhaul_manager->son_slave_wlan2: handle_cmdu_control_ieee1905_1_message\n(CHANNEL_SELECTION_REQUEST_MESSAGE)
son_slave_wlan2->son_slave_wlan2: channel_selection_get_transmit_power_limit()
son_slave_wlan2->son_slave_wlan2: channel_selection_current_channel_restricted()
son_slave_wlan2->son_slave_wlan2: channel_selection_get_channel_preference()
son_slave_wlan2->son_slave_wlan2: channel_selection_select_channel()
son_slave_wlan2->backhaul_manager: send_cmdu\n(CHANNEL_SELECTION_RESPONSE_MESSAGE)
son_slave_wlan2->controller: If channel switch\nis not required\nsend_cmdu_to_controller\n   (OPERATING_CHANNEL_REPORT_MESSAGE)
son_slave_wlan2->ap_manager_wlan2: \nElse\nsend_cmdu\n(ap_manager_socket,\ncACTION_APMANAGER_HOSTAP_CHANNEL_SWITCH_ACS_START)
ap_manager_wlan2->son_slave_wlan2:handle_cmdu_ap_manager_message\n(cACTION_APMANAGER_HOSTAP_CSA_NOTIFICATION)
son_slave_wlan2->controller: send_vs_cmdu\n(cACTION_CONTROL_HOSTAP_CSA_NOTIFICATION)
son_slave_wlan2->controller: send_cmdu_to_controller\n(OPERATING_CHANNEL_REPORT_MESSAGE)
backhaul_manager->backhaul_manager: collect responses from radios
backhaul_manager->controller: send_cmdu\n(CHANNEL_SELECTION_RESPONSE_MESSAGE)
@enduml

