diff options
author | Andrei Pavel <andrei@isc.org> | 2023-07-26 17:58:13 +0200 |
---|---|---|
committer | Andrei Pavel <andrei@isc.org> | 2023-08-01 11:43:54 +0200 |
commit | f3e0dde23c701d6afc806d501eb93554d1c16b8e (patch) | |
tree | 1c25ca1ba42e38c0fc046ed8447ab8454e1c2955 /doc/sphinx/uml/recognizing-same-client.uml | |
parent | [#1356] fix generating UML images (diff) | |
download | kea-f3e0dde23c701d6afc806d501eb93554d1c16b8e.tar.xz kea-f3e0dde23c701d6afc806d501eb93554d1c16b8e.zip |
[#1356] add recognizing-same-client.uml
Diffstat (limited to 'doc/sphinx/uml/recognizing-same-client.uml')
-rw-r--r-- | doc/sphinx/uml/recognizing-same-client.uml | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/doc/sphinx/uml/recognizing-same-client.uml b/doc/sphinx/uml/recognizing-same-client.uml new file mode 100644 index 0000000000..15b7c4fab6 --- /dev/null +++ b/doc/sphinx/uml/recognizing-same-client.uml @@ -0,0 +1,113 @@ +@startuml + +/' +This UML uses the new syntax of activity diagrams from plantuml. +Unfortunately, it also results in a more wide spread of the resulting +visual diagram, so wide that it becomes unreadable when automatically +scaled down in the ARM. This is the reason for the aggressive word +wrapping below - to force the diagram to be longer and less wide, and +as a result - more readable. +'/ + +start + +title How Kea Recognizes the Same Client In Different DHCP Messages (Kea 2.4.0) + +if (libdhcp_flex_id.so is used) then (yes) + if (replace-client-id is true (the default)) then (yes) + #palegreen:Client is recognized + by the result of the + identifier + expression in + libdhcp_flex_id.so.; + stop + else (no) + if (client has a reservation) then (yes) + if () then (for the purpose +of acquiring a reservation) + #palegreen:Client is recognized + by the result of the + identifier + expression in + libdhcp_flex_id.so.; + stop + else (for the purpose +of leasing outside a +reservation or acquiring +any other value outside +of reservations) + :Go through the + diagram from the + beginning as if + libdhcp_flex_id.so + is unused.; + stop + endif + else (no) + :Go through the + diagram from the + beginning as if + libdhcp_flex_id.so + is unused.; + stop + endif + endif +else (no) + if (DHCPv4 +or +DHCPv6?) then (DHCPv4) + if (MAC +address is +present) then (yes) + if (match-client-id +is true +(the default)) then (yes) + if (client ID option (code 61) is present) then (yes) + #palegreen:Client is recognized + by the client ID + option (code 61).; + stop + else + #palegreen:Client is recognized + by the MAC address.; + stop + endif + else + #palegreen:Client is recognized + by the MAC address.; + stop + endif + else (no) + #pink:DHCP message is not + well formed.; + stop + endif + else (DHCPv6) + if (client ID +option (code 1) is +present) then (yes) + if (interested in +identifying as a +single client - +the device or +the lease) then (device) + #palegreen:Client is recognized + by the client ID + option (code 1) aka + DUID.; + stop + else (lease) + #palegreen:Client is recognized + by the tuple + <DUID, IA-type, IAID>.; + stop + endif + else (no) + #pink:DHCP message is not + well formed.; + stop + endif + endif +endif + +@enduml |