ha/service-mgmt/sm-1.0.0/src
Bin Qian 133da10b08 split-brain avoidance improvement
This change enables one way communication via BMC (if configured)
through mtce.
when 2 controllers lost all communications to each other.
The algorithm is:
when communications all lost,
both active and standby controllers, verify its interfaces (mgmt,
infra, and oam)
if active controller is healthy, it will request a bmc reset
thorugh mtce, against standby controller.
if standby controller is healthy, it will active itself and wait
a total 45 seconds before requesting a bmc reset through mtce,
against the active controller.

Changes also include:
1. adding new initial failover state.
   initial state is a state before the node is enabled
2. remove failover thread.
   using worker thread action to perform time consuming operations
3. remove entire failover action table

Story: 2003577
Task:  24901
Change-Id: I7d294d40e84469df6b6a6f6dd490cf3c4557b711
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2018-11-08 20:18:43 +00:00
..
Makefile split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
fm_api_wrapper.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
fm_api_wrapper.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
main.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
service_status StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_alarm.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_alarm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_alarm_defs.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_alarm_thread.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_alarm_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_configuration_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_configuration_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_failover.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_fail_pending_state.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_fail_pending_state.h Fix service groups on controller-1 stuck in initial 2018-10-16 10:14:29 -04:00
sm_failover_failed_state.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_failed_state.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_fsm.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_fsm.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_initial_state.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_initial_state.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_normal_state.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_normal_state.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_ss.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_ss.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_survived_state.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_survived_state.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_utils.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_failover_utils.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_heartbeat.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_heartbeat.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_heartbeat_msg.c Introduce failover FSM 2018-09-18 08:08:40 -04:00
sm_heartbeat_msg.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_heartbeat_thread.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_heartbeat_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_log.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_log.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_log_defs.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_log_thread.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_log_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_main_event_handler.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_main_event_handler.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_msg.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_msg.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_api.cpp Introduce failover FSM 2018-09-18 08:08:40 -04:00
sm_node_api.h Introduce failover FSM 2018-09-18 08:08:40 -04:00
sm_node_disabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_disabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_enabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_enabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_fsm.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_swact_monitor.cpp Cleanup internal references 2018-07-23 12:15:39 -04:00
sm_node_swact_monitor.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_unknown_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_unknown_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_notify_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_notify_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_process.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_process.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_process_death.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_process_death.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action_result_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action_result_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_action_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_audit.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_audit.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_dependency.c Controller Services swact/failover time reduction 2018-06-28 15:43:19 -04:00
sm_service_dependency.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_dependency_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_dependency_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disable.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disable.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disabling_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_disabling_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_assignment_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_assignment_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_backup_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_backup_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_filter.c remove incorrect logging when standby controller failed 2018-08-29 10:20:03 -04:00
sm_service_domain_filter.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_fsm.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_initial_state.c split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_service_domain_initial_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_disabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_disabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_enabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_enabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_fsm.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_not_in_use_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_not_in_use_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_unknown_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_interface_unknown_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_leader_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_leader_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_member_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_member_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_down_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_down_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_exchange_start_state.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_service_domain_neighbor_exchange_start_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_exchange_state.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_service_domain_neighbor_exchange_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_fsm.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_service_domain_neighbor_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_full_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_full_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_neighbor_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_other_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_other_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_scheduler.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_service_domain_scheduler.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_utils.c Controller Services swact/failover time reduction 2018-06-28 15:43:19 -04:00
sm_service_domain_utils.h Controller Services swact/failover time reduction 2018-06-28 15:43:19 -04:00
sm_service_domain_waiting_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_waiting_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_weight.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_domain_weight.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enable.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enable.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_active_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_active_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_go_active_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_go_active_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_go_standby_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_go_standby_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_standby_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabled_standby_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabling_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabling_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabling_throttle_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_enabling_throttle_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_engine.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_engine.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_fsm.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_service_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_go_active.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_go_active.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_go_standby.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_go_standby.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_active_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_active_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_audit.c Fix minor impact alarm in SM service group audit 2018-07-23 12:15:39 -04:00
sm_service_group_audit.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disable.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disable.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disabled_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disabled_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disabling_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_disabling_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_enable.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_enable.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_engine.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_engine.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_fsm.c remove incorrect logging when standby controller failed 2018-08-24 14:20:08 -04:00
sm_service_group_fsm.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_active.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_active.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_active_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_active_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_standby.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_standby.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_standby_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_go_standby_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_health.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_health.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_initial_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_initial_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_member_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_member_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_notification.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_notification.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_shutdown_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_shutdown_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_standby_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_standby_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_table.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_group_table.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat_api.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat_api.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat_thread.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_heartbeat_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_initial_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_initial_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_shutdown_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_shutdown_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_table.c Controller Services swact/failover time reduction 2018-06-28 15:43:19 -04:00
sm_service_table.h Controller Services swact/failover time reduction 2018-06-28 15:43:19 -04:00
sm_service_unknown_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_service_unknown_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_swact_state.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_swact_state.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_task_affining_thread.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_task_affining_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_troubleshoot.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_troubleshoot.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_worker_thread.cpp split-brain avoidance improvement 2018-11-08 20:18:43 +00:00
sm_worker_thread.h split-brain avoidance improvement 2018-11-08 20:18:43 +00:00