summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/appendRequestedVendorOptions.uml
blob: 65d3d54087f47269d5921161722643fdbc1b7479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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