2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 18:08:16 +00:00
kea/doc/sphinx/uml/recognizing-same-client.uml
Andrei Pavel 374747be9f
[#2969] add two missing branch labels to an UML
- slightly unrelated, but still on the topic of documentation
2023-10-26 16:34:22 +03:00

114 lines
2.5 KiB
Plaintext

@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 (no)
#palegreen:Client is recognized
by the MAC address.;
stop
endif
else (no)
#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