summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/appendRequestedVendorOptions.svg
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/uml/appendRequestedVendorOptions.svg')
-rw-r--r--doc/sphinx/uml/appendRequestedVendorOptions.svg63
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/sphinx/uml/appendRequestedVendorOptions.svg b/doc/sphinx/uml/appendRequestedVendorOptions.svg
new file mode 100644
index 0000000..2fe289a
--- /dev/null
+++ b/doc/sphinx/uml/appendRequestedVendorOptions.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1590px" preserveAspectRatio="none" style="width:509px;height:1590px;" version="1.1" viewBox="0 0 509 1590" width="509px" zoomAndPan="magnify"><defs><filter height="300%" id="f1fxs94y917cvd" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="485" x="12" y="27.4023">Append vendor requested options algorithm (Kea 1.8.0)</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="138.75" y="32.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="148.75" y="53.8008">get vendor id from query vivso option</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="128.75" y="86.332"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="237" x="138.75" y="107.9336">get vendor id from response vivso option</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="229.75" y="188.9424"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="35" x="239.75" y="210.5439">return</text><ellipse cx="257.25" cy="262.5088" fill="#FFFFFF" filter="url(#f1fxs94y917cvd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="257.25" cy="262.5088" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="231.75,140.4648,282.75,140.4648,294.75,152.4648,282.75,164.4648,231.75,164.4648,219.75,152.4648,231.75,140.4648" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="261.25" y="175.0996">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="51" x="231.75" y="156.6221">vendor id</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="294.75" y="150.1445">yes</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="175.75" y="315.5088"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="185.75" y="337.1104">get configured option list</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="381" x="66.75" y="369.6416"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="361" x="76.75" y="391.2432">get option request list (ORO) from query DOCSIS vendor option</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="127.25" y="467.7744"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="137.25" y="489.376">get configured options in vendor id space</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="158.75" y="565.9072"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="177" x="168.75" y="587.5088">push back option code to ORO</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="187.75,521.9072,326.75,521.9072,338.75,533.9072,326.75,545.9072,187.75,545.9072,175.75,533.9072,187.75,521.9072" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="187.75" y="538.0645">for each persistent option</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="148.25,423.7744,366.25,423.7744,378.25,435.7744,366.25,447.7744,148.25,447.7744,136.25,435.7744,148.25,423.7744" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="218" x="148.25" y="439.9316">for each item from configured option list</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="153.75" y="712.5176"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="187" x="163.75" y="734.1191">create vivso option for vendor id</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="197.75,664.04,316.75,664.04,328.75,676.04,316.75,688.04,197.75,688.04,185.75,676.04,197.75,664.04" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="261.25" y="698.6748">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="197.75" y="680.1973">response vivso option</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="328.75" y="673.7197">yes</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="257.25,766.6504,269.25,778.6504,257.25,790.6504,245.25,778.6504,257.25,766.6504" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="205.75" y="810.6504"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="83" x="215.75" y="832.252">added = false</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="127.25" y="1001.2607"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="137.25" y="1022.8623">get configured options in vendor id space</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="198" x="158.25" y="1103.8711"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="178" x="168.25" y="1125.4727">add sub-option to vivso option</text><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="207.75" y="1173.0039"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="217.75" y="1194.6055">added = true</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="241.25,1055.3936,273.25,1055.3936,285.25,1067.3936,273.25,1079.3936,241.25,1079.3936,229.25,1067.3936,241.25,1055.3936" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="261.25" y="1090.0283">first</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="241.25" y="1071.5508">found</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="285.25" y="1065.0732">not found or already found</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="257.25,1227.1367,269.25,1239.1367,257.25,1251.1367,245.25,1239.1367,257.25,1227.1367" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="148.25,957.2607,366.25,957.2607,378.25,969.2607,366.25,981.2607,148.25,981.2607,136.25,969.2607,148.25,957.2607" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="218" x="148.25" y="973.418">for each item from configured option list</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="159.75,908.7832,354.75,908.7832,366.75,920.7832,354.75,932.7832,159.75,932.7832,147.75,920.7832,159.75,908.7832" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="261.25" y="943.418">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="159.75" y="924.9404">sub-option is not set in vivso option</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="366.75" y="918.4629">no</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="257.25,1293.1367,269.25,1305.1367,257.25,1317.1367,245.25,1305.1367,257.25,1293.1367" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1fxs94y917cvd)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="186" x="164.25" y="1434.0918"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="166" x="174.25" y="1455.6934">add vivso option in response</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="191.25,1385.6143,323.25,1385.6143,335.25,1397.6143,323.25,1409.6143,191.25,1409.6143,179.25,1397.6143,191.25,1385.6143" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="261.25" y="1420.249">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="191.25" y="1401.7715">vivso option in response</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="335.25" y="1395.2939">yes</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="257.25,1488.2246,269.25,1500.2246,257.25,1512.2246,245.25,1500.2246,257.25,1488.2246" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="240.75,1337.1367,273.75,1337.1367,285.75,1349.1367,273.75,1361.1367,240.75,1361.1367,228.75,1349.1367,240.75,1337.1367" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="261.25" y="1371.7715">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="240.75" y="1353.2939">added</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="285.75" y="1346.8164">no</text><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="257.25,1532.2246,269.25,1544.2246,257.25,1556.2246,245.25,1544.2246,257.25,1532.2246" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1fxs94y917cvd)" points="200.25,864.7832,314.25,864.7832,326.25,876.7832,314.25,888.7832,200.25,888.7832,188.25,876.7832,200.25,864.7832" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="200.25" y="880.9404">for each code in ORO</text><ellipse cx="70.25" cy="919.7832" fill="#FFFFFF" filter="url(#f1fxs94y917cvd)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="70.25" cy="919.7832" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="66.332" y2="86.332"/><polygon fill="#A80036" points="253.25,76.332,257.25,86.332,261.25,76.332,257.25,80.332" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="223.0752" y2="251.5088"/><polygon fill="#A80036" points="253.25,241.5088,257.25,251.5088,261.25,241.5088,257.25,245.5088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="164.4648" y2="188.9424"/><polygon fill="#A80036" points="253.25,178.9424,257.25,188.9424,261.25,178.9424,257.25,182.9424" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="294.75" x2="306.75" y1="152.4648" y2="152.4648"/><polygon fill="#A80036" points="302.75,221.5088,306.75,231.5088,310.75,221.5088,306.75,225.5088" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.75" x2="306.75" y1="152.4648" y2="295.5088"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.75" x2="257.25" y1="295.5088" y2="295.5088"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="295.5088" y2="315.5088"/><polygon fill="#A80036" points="253.25,305.5088,257.25,315.5088,261.25,305.5088,257.25,309.5088" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="120.4648" y2="140.4648"/><polygon fill="#A80036" points="253.25,130.4648,257.25,140.4648,261.25,130.4648,257.25,134.4648" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="349.6416" y2="369.6416"/><polygon fill="#A80036" points="253.25,359.6416,257.25,369.6416,261.25,359.6416,257.25,363.6416" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="545.9072" y2="565.9072"/><polygon fill="#A80036" points="253.25,555.9072,257.25,565.9072,261.25,555.9072,257.25,559.9072" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="600.04" y2="610.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="367.75" y1="610.04" y2="610.04"/><polygon fill="#A80036" points="363.75,580.9736,367.75,570.9736,371.75,580.9736,367.75,576.9736" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="367.75" x2="367.75" y1="533.9072" y2="610.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="367.75" x2="338.75" y1="533.9072" y2="533.9072"/><polygon fill="#A80036" points="348.75,529.9072,338.75,533.9072,348.75,537.9072,344.75,533.9072" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="175.75" x2="146.75" y1="533.9072" y2="533.9072"/><polygon fill="#A80036" points="142.75,566.9736,146.75,576.9736,150.75,566.9736,146.75,570.9736" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="146.75" x2="146.75" y1="533.9072" y2="622.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="146.75" x2="399.25" y1="622.04" y2="622.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.25" x2="399.25" y1="435.7744" y2="622.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.25" x2="378.25" y1="435.7744" y2="435.7744"/><polygon fill="#A80036" points="388.25,431.7744,378.25,435.7744,388.25,439.7744,384.25,435.7744" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="501.9072" y2="521.9072"/><polygon fill="#A80036" points="253.25,511.9072,257.25,521.9072,261.25,511.9072,257.25,515.9072" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="447.7744" y2="467.7744"/><polygon fill="#A80036" points="253.25,457.7744,257.25,467.7744,261.25,457.7744,257.25,461.7744" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.25" x2="115.25" y1="435.7744" y2="435.7744"/><polygon fill="#A80036" points="111.25,524.4072,115.25,534.4072,119.25,524.4072,115.25,528.4072" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115.25" x2="115.25" y1="435.7744" y2="644.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115.25" x2="257.25" y1="644.04" y2="644.04"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="644.04" y2="664.04"/><polygon fill="#A80036" points="253.25,654.04,257.25,664.04,261.25,654.04,257.25,658.04" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="403.7744" y2="423.7744"/><polygon fill="#A80036" points="253.25,413.7744,257.25,423.7744,261.25,413.7744,257.25,417.7744" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="688.04" y2="712.5176"/><polygon fill="#A80036" points="253.25,702.5176,257.25,712.5176,261.25,702.5176,257.25,706.5176" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.75" x2="370.75" y1="676.04" y2="676.04"/><polygon fill="#A80036" points="366.75,719.584,370.75,729.584,374.75,719.584,370.75,723.584" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370.75" x2="370.75" y1="676.04" y2="778.6504"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370.75" x2="269.25" y1="778.6504" y2="778.6504"/><polygon fill="#A80036" points="279.25,774.6504,269.25,778.6504,279.25,782.6504,275.25,778.6504" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="746.6504" y2="766.6504"/><polygon fill="#A80036" points="253.25,756.6504,257.25,766.6504,261.25,756.6504,257.25,760.6504" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="790.6504" y2="810.6504"/><polygon fill="#A80036" points="253.25,800.6504,257.25,810.6504,261.25,800.6504,257.25,804.6504" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1138.0039" y2="1173.0039"/><polygon fill="#A80036" points="253.25,1163.0039,257.25,1173.0039,261.25,1163.0039,257.25,1167.0039" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1079.3936" y2="1103.8711"/><polygon fill="#A80036" points="253.25,1093.8711,257.25,1103.8711,261.25,1093.8711,257.25,1097.8711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="285.25" x2="366.25" y1="1067.3936" y2="1067.3936"/><polygon fill="#A80036" points="362.25,1145.5039,366.25,1155.5039,370.25,1145.5039,366.25,1149.5039" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366.25" x2="366.25" y1="1067.3936" y2="1239.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366.25" x2="269.25" y1="1239.1367" y2="1239.1367"/><polygon fill="#A80036" points="279.25,1235.1367,269.25,1239.1367,279.25,1243.1367,275.25,1239.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1207.1367" y2="1227.1367"/><polygon fill="#A80036" points="253.25,1217.1367,257.25,1227.1367,261.25,1217.1367,257.25,1221.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1035.3936" y2="1055.3936"/><polygon fill="#A80036" points="253.25,1045.3936,257.25,1055.3936,261.25,1045.3936,257.25,1049.3936" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="981.2607" y2="1001.2607"/><polygon fill="#A80036" points="253.25,991.2607,257.25,1001.2607,261.25,991.2607,257.25,995.2607" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1251.1367" y2="1261.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="399.25" y1="1261.1367" y2="1261.1367"/><polygon fill="#A80036" points="395.25,1118.9375,399.25,1108.9375,403.25,1118.9375,399.25,1114.9375" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.25" x2="399.25" y1="969.2607" y2="1261.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.25" x2="378.25" y1="969.2607" y2="969.2607"/><polygon fill="#A80036" points="388.25,965.2607,378.25,969.2607,388.25,973.2607,384.25,969.2607" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136.25" x2="115.25" y1="969.2607" y2="969.2607"/><polygon fill="#A80036" points="111.25,1104.9375,115.25,1114.9375,119.25,1104.9375,115.25,1108.9375" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115.25" x2="115.25" y1="969.2607" y2="1273.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="115.25" x2="257.25" y1="1273.1367" y2="1273.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1273.1367" y2="1293.1367"/><polygon fill="#A80036" points="253.25,1283.1367,257.25,1293.1367,261.25,1283.1367,257.25,1287.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="932.7832" y2="957.2607"/><polygon fill="#A80036" points="253.25,947.2607,257.25,957.2607,261.25,947.2607,257.25,951.2607" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="366.75" x2="409.25" y1="920.7832" y2="920.7832"/><polygon fill="#A80036" points="405.25,1098.9375,409.25,1108.9375,413.25,1098.9375,409.25,1102.9375" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.25" x2="409.25" y1="920.7832" y2="1305.1367"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="409.25" x2="269.25" y1="1305.1367" y2="1305.1367"/><polygon fill="#A80036" points="279.25,1301.1367,269.25,1305.1367,279.25,1309.1367,275.25,1305.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1409.6143" y2="1434.0918"/><polygon fill="#A80036" points="253.25,1424.0918,257.25,1434.0918,261.25,1424.0918,257.25,1428.0918" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="335.25" x2="360.25" y1="1397.6143" y2="1397.6143"/><polygon fill="#A80036" points="356.25,1441.1582,360.25,1451.1582,364.25,1441.1582,360.25,1445.1582" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="360.25" x2="360.25" y1="1397.6143" y2="1500.2246"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="360.25" x2="269.25" y1="1500.2246" y2="1500.2246"/><polygon fill="#A80036" points="279.25,1496.2246,269.25,1500.2246,279.25,1504.2246,275.25,1500.2246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1468.2246" y2="1488.2246"/><polygon fill="#A80036" points="253.25,1478.2246,257.25,1488.2246,261.25,1478.2246,257.25,1482.2246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1361.1367" y2="1385.6143"/><polygon fill="#A80036" points="253.25,1375.6143,257.25,1385.6143,261.25,1375.6143,257.25,1379.6143" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="285.75" x2="382.25" y1="1349.1367" y2="1349.1367"/><polygon fill="#A80036" points="378.25,1441.1582,382.25,1451.1582,386.25,1441.1582,382.25,1445.1582" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.25" x2="382.25" y1="1349.1367" y2="1544.2246"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.25" x2="269.25" y1="1544.2246" y2="1544.2246"/><polygon fill="#A80036" points="279.25,1540.2246,269.25,1544.2246,279.25,1548.2246,275.25,1544.2246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1512.2246" y2="1532.2246"/><polygon fill="#A80036" points="253.25,1522.2246,257.25,1532.2246,261.25,1522.2246,257.25,1526.2246" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1317.1367" y2="1337.1367"/><polygon fill="#A80036" points="253.25,1327.1367,257.25,1337.1367,261.25,1327.1367,257.25,1331.1367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="888.7832" y2="908.7832"/><polygon fill="#A80036" points="253.25,898.7832,257.25,908.7832,261.25,898.7832,257.25,902.7832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="1556.2246" y2="1566.2246"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="433.25" y1="1566.2246" y2="1566.2246"/><polygon fill="#A80036" points="429.25,1233.9814,433.25,1223.9814,437.25,1233.9814,433.25,1229.9814" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="433.25" x2="433.25" y1="876.7832" y2="1566.2246"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="433.25" x2="326.25" y1="876.7832" y2="876.7832"/><polygon fill="#A80036" points="336.25,872.7832,326.25,876.7832,336.25,880.7832,332.25,876.7832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="188.25" x2="70.25" y1="876.7832" y2="876.7832"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="70.25" x2="70.25" y1="876.7832" y2="908.7832"/><polygon fill="#A80036" points="66.25,898.7832,70.25,908.7832,74.25,898.7832,70.25,902.7832" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="257.25" x2="257.25" y1="844.7832" y2="864.7832"/><polygon fill="#A80036" points="253.25,854.7832,257.25,864.7832,261.25,854.7832,257.25,858.7832" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[1634ff79370ec127c2dd3f2d0c122eb8]
+@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
+
+PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg> \ No newline at end of file