' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
' Unless required by  applicable law or agreed to in writing, software distributed under the License is distributed
' on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and limitations under the License.

@startuml

actor user
box "traffic_ctl address space" #DDFFDD
entity traffic_ctl
end box
collections "Remote RPC API" as remote_rpc
box "traffic_manager address space" #DDDDFF
entity traffic_manager
end box
collections "Local RPC API" as local_rpc
box "traffic_server address space" #FFDB99
entity traffic_server
end box
entity plugin

traffic_manager -> traffic_server : traffic_server registers\ncallback for ""MGMT_EVENT_LIFECYCLE_EVENT""
traffic_server -> plugin : register to ""TS_LIFECYCLE_MSG_HOOK""
user -> traffic_ctl : "traffic_ctl plugin msg TAG hello"
traffic_ctl -> remote_rpc : lifecycle message
note left : msd id ""MGMT_EVENT_LIFECYCLE_MESSAGE""
remote_rpc -[#blue]-> remote_rpc : <font color="blue">//serialize message//</font>
remote_rpc -> traffic_manager : sent over sockets
note over traffic_ctl, traffic_manager : Using remote RPC functions\n""CoreAPIRemote, NetworkUtilsRemote""

traffic_manager -[#blue]-> local_rpc: <font color="blue">//serialized message//</font>
local_rpc -> traffic_server : resent over sockets
note over traffic_manager, traffic_server : Local RPC functions\n""CoreAPI, NetworkUtilsLocal""
traffic_server -> traffic_server : callback function selected based on msg id\n""MGMT_EVENT_LIFECYCLE_MESSAGE""
traffic_server -[#blue]-> local_rpc : <font color="blue">//unserialize message//</font>
traffic_server -> plugin : invoke hook and attach ""TSPluginMsg""
plugin -> plugin : hooks ""TS_LIFECYCLE_MSG_HOOK""\nand reads ""TSPluginMsg""
traffic_manager -[#green]-> remote_rpc : <font color="green">TS_ERR_OK</font>
note right : traffic_manager has no idea if\nplugin actually received message
remote_rpc -> traffic_ctl : parse response


@enduml
