2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 18:08:16 +00:00
kea/doc/sphinx/uml/main-loop.uml

60 lines
1.2 KiB
Plaintext
Raw Normal View History

2020-07-17 12:56:16 +02:00
@startuml
2020-08-21 15:19:53 +02:00
title DHCP server main loop (Kea 1.8.0)
2020-07-17 12:56:16 +02:00
skinparam linetype ortho
rectangle "Main Loop" {
agent "Wait for next event" as run
rectangle "Event Loop" as run_one {
together {
agent "Signal" as signal
agent "Handle Signal" as handleSignal
}
together {
agent "External Socket" as external_socket
agent "Handle External Socket" as handleExternalSocket
}
together {
agent "DHCP Query" as query
agent "Process Query" as processQuery
}
agent "Timeout" as timeout
}
together {
agent "I/O Service" as poll
agent "Execute ready handler" as ready
}
agent "Check Shutdown" as shutdown
}
run --> run_one : get next event
run_one --> signal
signal -right-> handleSignal : got signal
handleSignal --> poll
signal -[dashed]-> external_socket
external_socket -right-> handleExternalSocket : external socket ready
handleExternalSocket --> poll
external_socket -[dashed]-> query
query -right-> processQuery : DHCP socket ready
processQuery --> poll
query -[dashed]-> timeout
timeout --> poll : timeout expired
poll -> ready : handler ready
poll ---> shutdown : no ready handler
ready -> ready : execute ready handler
shutdown -u-> run
2020-07-21 22:27:50 +02:00
footer dashed arrow means priority
2020-07-17 12:56:16 +02:00
@enduml