summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/buildCfgOptionList.uml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/uml/buildCfgOptionList.uml')
-rw-r--r--doc/sphinx/uml/buildCfgOptionList.uml52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/sphinx/uml/buildCfgOptionList.uml b/doc/sphinx/uml/buildCfgOptionList.uml
new file mode 100644
index 0000000..1df19f8
--- /dev/null
+++ b/doc/sphinx/uml/buildCfgOptionList.uml
@@ -0,0 +1,52 @@
+@startuml
+
+title buildCfgOptionList: build configured option list algorithm (Kea 1.8.0)
+
+start
+:Get (empty) configured option list;
+
+if (no subnet) then (yes)
+ :return;
+ stop
+else (no)
+endif
+
+if (current host reservation) then (yes)
+ :push back host configured options;
+else (no)
+endif
+
+if (assigned address) then (yes)
+ :get pool of assigned address;
+ if (pool) then (yes)
+ :push back pool configured options;
+ else (no)
+ endif
+else (no)
+endif
+
+:push back subnet configured options;
+
+:get shared network from subnet;
+if (shared network) then (yes)
+ :push back shared network configured options;
+else (no)
+endif
+
+while (for each query client class)
+ :get client class definition from current configuration;
+ if (found) then (no)
+ if (built-in client class) then (yes)
+ else (no)
+ :log debug "class unconfigured";
+ endif
+ else (yes)
+ :push back client class definition configured options;
+ endif
+endwhile
+
+:push back global configured options;
+:return;
+stop
+
+@enduml