diff options
Diffstat (limited to 'doc/sphinx/uml/appendRequestedVendorOptions.uml')
-rw-r--r-- | doc/sphinx/uml/appendRequestedVendorOptions.uml | 53 |
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 |