mgmt_txn_prepare_cfg
mgmt_txn_prepare_cfg
MESSAGE_TXN_REQcreate
mgmt_txn_send_be_txn_create
mgmt_txn_send_be_txn_create
mgmt_be_send_txn_req
mgmt_be_send_txn_req
does nothing
cfg_data replys will cause next transition

does nothing...
next_phase = PHASE_TXN_DELETE
mgmt_txn_send_be_cfg_apply
mgmt_txn_send_be_cfg_apply
mgmt_be_send_cfgapply_req
mgmt_be_send_cfgapply_req
mgmt_txn_send_commit_cfg_reply
mgmt_txn_send_commit_cfg_reply
PHASE_TXN_CREATEPHASE_PREPARE_CFGPHASE_CFG_APPLYPHASE_TXN_DELETEPHASE_SEND_CFG
mgmt_txn_process_commit_cfg
mgmt_txn_process_commit_cfg
curr_phase =PHASE_TXN_CREATE
mgmt_txn_send_commit_config_req
mgmt_txn_send_commit_config_req
curr_phase ==MGMTD_COMMIT_PHASE_PREPARE_CFGnext_phase ==MGMTD_COMMIT_PHASE_PREPARE_CFG
TIMER:
MGMTD_TXN_PROC_COMCFG
TIMER:...
GET nb_config_change's
nb_config_diff(cand, run)
or 
txn->commit_cfg_req->req.commit_cfg.cfg_chgs

GET nb_config_change's...
mgmt_txn_create_config_batches
mgmt_txn_create_config_batches
TIMER:
MGMTD_TXN_
COMMITCFG_TIMEOUT
TIMER:...
MESSAGE_CFG_DATA_REPLYMESSAGE_CFG_APPLY_REPLY;
Backend Client
Backend Client
mgmt_txn_notify_be_txn_reply
mgmt_txn_notify_be_txn_reply
mgmt_txn_send_be_cfg_data
mgmt_txn_send_be_cfg_data
batch: PHASE_TXN_REQ -> PHASE_SEND_CFG
mgmt_be_send_cfgdata_req
mgmt_be_send_cfgdata_req
txn: PHASE_TXN_REQ -> PHASE_SEND_CFG
mgmt_move_txn_cfg_batch_to_next
mgmt_move_txn_cfg_batch_to_next
curr_phase = PHASE_SEND_CFG
mgmt_try_move_commit_to_next_phase
if all backend clients
have all been sent their batches
move to next phase and post EVENT/TIMER
mgmt_try_move_commit_to_next_phase...
MESSAGE_CFG_DATA_REQbatch: PHASE_SEND_CFG -> PHASE_APPLY_CFG
mgmt_txn_notify_be_cfgdata_reply
mgmt_txn_notify_be_cfgdata_reply
mgmt_move_txn_cfg_batch_to_next
mgmt_move_txn_cfg_batch_to_next
curr_phase = PHASE_APPLY_CFG
mgmt_try_move_commit_to_next_phase
mgmt_try_move_commit_to_next_phase
MESSAGE_TXN_REPLYcurr_phase =PHASE_TXN_CREATEnext_phase =PHASE_SEND_CFGFor each of thebatches of cfgdatasend msg and moveFor each of the batches of cfgdataMESSAGE_CFG_APPLYbatch: comm_phase =PHASE_TXN_CREATEbatch: comm_phase =PHASE_APPLY_CFGbatch: PHASE_APPLY_CFG -> PHASE_TXN_DELETE
mgmt_txn_notify_be_cfg_apply_reply
for each batch id in reply
mgmt_txn_notify_be_cfg_apply_reply...
mgmt_txn_send_be_txn_delete
mgmt_txn_send_be_txn_delete
mgmt_move_txn_cfg_batch_to_next
mgmt_move_txn_cfg_batch_to_next
MESSAGE_TXN_REQdelete
mgmt_try_move_commit_to_next_phase
mgmt_try_move_commit_to_next_phase
Text is not SVG - cannot display