summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/assign-lease4.uml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:15:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:15:43 +0000
commitf5f56e1a1c4d9e9496fcb9d81131066a964ccd23 (patch)
tree49e44c6f87febed37efb953ab5485aa49f6481a7 /doc/sphinx/uml/assign-lease4.uml
parentInitial commit. (diff)
downloadisc-kea-upstream.tar.xz
isc-kea-upstream.zip
Adding upstream version 2.4.1.upstream/2.4.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--doc/sphinx/uml/assign-lease4.uml64
1 files changed, 64 insertions, 0 deletions
diff --git a/doc/sphinx/uml/assign-lease4.uml b/doc/sphinx/uml/assign-lease4.uml
new file mode 100644
index 0000000..de19ed7
--- /dev/null
+++ b/doc/sphinx/uml/assign-lease4.uml
@@ -0,0 +1,64 @@
+@startuml
+
+title DHCPv4 Assign Lease (Kea 1.8.0)
+
+agent "Check Subnet" as subnet
+note left : entry point
+
+agent "Get server id" as server_id
+
+agent "Get hint" as hint
+
+agent "Get hardware address and client id" as ident
+
+rectangle "INIT-REBOOT state" as init_reboot {
+ agent "Get existing lease by client id" as by_client_id
+
+ agent "Get existing lease by hardware address" as by_hw_addr
+
+ agent "Get authoritative" as authoritative
+}
+
+agent "Process hostname" as hostname
+
+agent "Request lease" as allocate
+
+rectangle "Lease allocated" as allocated {
+ agent "update DDNS" as ddns
+ agent "Send ACK" as ack
+}
+
+agent "No lease allocated" as failed
+note right : exit point
+
+agent "Send NAK" as nak
+note right : exit point
+
+agent "No response" as no_response
+note right : exit point
+
+subnet --> server_id
+subnet ---> nak : no subnet
+server_id --> hint
+hint --> ident : use requested address option
+hint --> ident : use client address
+hint --> ident : no hint
+ident --> init_reboot : requested address and no server id
+ident ---> hostname
+init_reboot --> by_client_id : has a client id
+init_reboot --> by_hw_addr : no client id
+by_client_id ---> authoritative : found
+by_client_id --> by_hw_addr : not found
+by_hw_addr --> authoritative
+authoritative ---> no_response : not authoritative and no owned lease
+authoritative --> nak : owned lease with hint mismatch
+authoritative --> nak : authoritative and no owned lease
+authoritative --> hostname : other cases
+hostname --> allocate
+allocate --> allocated : lease allocated
+allocated --> ddns
+ddns --> ack
+allocate --> failed : no lease allocated
+failed --> nak
+
+@enduml