copy of vty->cfg_changes
to protobuf msg
copy of vty->cfg_changes...
N
N
N+1
N+1
user cmd:
 "ip route 10.0.0.0/24 null0"
-------------------------------

user cmd:...
1
1
nb_cli_enqueue_change
nb_cli_enqueue_change
nb_cli_enqueue_change
nb_cli_enqueue_change
file or !mgmtd
file or !mgmtd
nb_cli_apply_changes
nb_cli_apply_changes
candidate
ds
candidate...
candidate
ds
candidate...
nb_cli_apply_changes_internal
nb_cli_apply_changes_internal
socket connection
FE client -> adapter SETCFG_REQ

socket connection...
implicit_commit
(legacy CLI)
implicit_commit...
vty_mgmt_send_config_data
vty_mgmt_send_config_data
mgmt_fe_send_setcfg_req
mgmt_fe_send_setcfg_req
mgmtd
mgmtd
validates input and creates TXN (CONFIG)
can happen multiple times
validates input and creates TXN (CONFIG)...
mgmt_fe_session_handle_setcfg_req_msg
mgmt_fe_session_handle_setcfg_req_msg
copy protobuf -> txn_req.set_cfg.cfg_changes
TIMER: MGMTD_TXN_PROC_SETCFG
copy protobuf -> txn_req.set_cfg.cfg_changes...
mgmt_txn_send_set_config_req
mgmt_txn_send_set_config_req
1
1
implicit_commit
implicit_commit
2
2
2
2
mgmt_txn_process_set_cfg
mgmt_txn_process_set_cfg
nb_candidate_edit
nb_candidate_edit
struct
nb_cfg_change
struct...
mgmt_txn_send_commit_config_req
mgmt_txn_send_commit_config_req
user cmd:
 "ip route 10.0.1.0/24 null0"
user cmd:...
user cmd:
 "ip route 10.0.2.0/24 null0"
user cmd:...
user cmd:
 "ip route 10.0.3.0/24 null0"
user cmd:...
user cmd:
"XFRR_end_configuration"
 config or EOF
user cmd:...
vty_mgmt_send_commit_config
vty_mgmt_send_commit_config
socket connection
FE client -> adapter COMMCFG_REQ
socket connection...
mgmt_fe_send_commitcfg_req
mgmt_fe_send_commitcfg_req
mgmt_fe_session_handle_commit_config_req_msg
create txn if none yet
if running DS not locked, lock
mgmt_fe_session_handle_commit_config_req_msg...
curr_phase == MGMTD_COMMIT_PHASE_PREPARE_CFG
curr_phase == MGMTD_COMMIT_PHASE_PREPARE_CFG
next_phase == MGMTD_COMMIT_PHASE_PREPARE_CFG
next_phase == MGMTD_COMMIT_PHASE_PREPARE_CFG
TIMER:
MGMTD_TXN_PROC_COMCFG
TIMER:...
does nothing more:
when
not implicit_commit:
 mgmt (set|delete)-config CLI
(no_implicit_commit == true)
inside XFRR_{start,end}_config
(pending_allowed == true)
does nothing more:...
user cmd:
"XFRR_start_configuration"
 config file read indicator
user cmd:...
NO implicit commit
(vtysh -f file)
NO implicit commit...
user cmd:
"configure terminal"
user cmd:...
socket connection
FE client -> adapter LOCKDS_REQ
socket connection...
vty_mgmt_lock_cand_inline
vty_mgmt_lock_cand_inline
LOCK CANDIDATE
LOCK CANDIDATE
EVENT: VTYSH_READ
EVENT: VTYSH_READ
UNLOCK CANDIDATE
UNLOCK CANDIDATE
NO implicit commit
NO implicit commit
user cmd:
"end/exit"
user cmd:...
vty_mgmt_lock_cand_inline
vty_mgmt_lock_cand_inline
vty_mgmt_set_config_result_notified
vty_mgmt_set_config_result_notified
socket connection
FE client -> adapter LOCKDS_REQ
socket connection...
EVENT: REPLY NOTIFICATIONS
EVENT: REPLY NOTIFICATIONS
VTYSH
VTYSH
vty_mgmt_commit_config_result_notified
vty_mgmt_commit_config_result_notified
socket async
socket async
timer/event async
timer/event async
socket  sync (short-circuit)
socket  sync (short-circuit)
function sync
function sync
Text is not SVG - cannot display