summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/appendRequestedVendorOptions.uml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/uml/appendRequestedVendorOptions.uml')
-rw-r--r--doc/sphinx/uml/appendRequestedVendorOptions.uml53
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/sphinx/uml/appendRequestedVendorOptions.uml b/doc/sphinx/uml/appendRequestedVendorOptions.uml
new file mode 100644
index 0000000..65d3d54
--- /dev/null
+++ b/doc/sphinx/uml/appendRequestedVendorOptions.uml
@@ -0,0 +1,53 @@
+@startuml
+
+Title Append vendor requested options algorithm (Kea 1.8.0)
+
+:get vendor id from query vivso option;
+:get vendor id from response vivso option;
+if (vendor id) then (no)
+ :return;
+ stop
+else (yes)
+endif
+
+:get configured option list;
+
+:get option request list (ORO) from query DOCSIS vendor option;
+
+while (for each item from configured option list)
+ :get configured options in vendor id space;
+ while (for each persistent option)
+ :push back option code to ORO;
+ endwhile
+endwhile
+
+if (response vivso option) then (no)
+ :create vivso option for vendor id;
+else (yes)
+endif
+
+:added = false;
+while (for each code in ORO)
+ if (sub-option is not set in vivso option) then (yes)
+ while (for each item from configured option list)
+ :get configured options in vendor id space;
+ if (found) then (first)
+ :add sub-option to vivso option;
+ :added = true;
+ else (not found or already found)
+ endif
+ endwhile
+ else (no)
+ endif
+ if (added) then (yes)
+ if (vivso option in response) then (no)
+ :add vivso option in response;
+ else (yes)
+ endif
+ else (no)
+ endif
+endwhile
+->done;
+stop
+
+@enduml