]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1329] Added pool setting subnet
authorFrancis Dupont <fdupont@isc.org>
Sat, 1 Aug 2020 11:24:06 +0000 (13:24 +0200)
committerFrancis Dupont <fdupont@isc.org>
Tue, 4 Aug 2020 08:45:38 +0000 (10:45 +0200)
doc/devel/images/currentHost4.png
doc/devel/images/currentHost4.svg
doc/devel/images/currentHost4.uml

index 301a1d5c8b091d7ba4080dee2e5fc910d18ff077..1e6e379f77d381874ec9770959c5cb0afb810e61 100644 (file)
Binary files a/doc/devel/images/currentHost4.png and b/doc/devel/images/currentHost4.png differ
index 5855335d76292d84ce6be856ab91f837ac914684..f41db828d75596014ffcc5714fbb18246731b96e 100644 (file)
@@ -1,19 +1,22 @@
-<?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="1516px" preserveAspectRatio="none" style="width:969px;height:1516px;" version="1.1" viewBox="0 0 969 1516" width="969px" zoomAndPan="magnify"><defs><filter height="300%" id="f8c46mlwpeali" 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="288" x="331.75" y="17.4023">currentHost DHCPv4 (Kea 1.7.11)</text><!--MD5=[e3476fda087b0512b1cf4e3a66ca5e59]
-entity entry--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="314.5" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="324.5" y="51.7344">Subnet Selection</text><!--MD5=[f65ad2d20ed779f8ee7fa3e9ca8ab4c3]
-entity setSelected--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="247" x="258" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="227" x="268" y="148.7344">Set subnet to the selected subnet</text><!--MD5=[c0678c1aaf89874ea821e39d7ef5404f]
-entity clientid_lookup--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="259" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="225" x="269" y="245.7344">Has client a lease for its client id?</text><!--MD5=[a51c27fcfb0c2b9388b266a7e30efdf3]
-entity clientid_iterate--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="7" y="319.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="263" x="17" y="342.7344">Iterate on allowed subnets for client id</text><!--MD5=[96d14c76c72fae1f84c71c464af0f0e6]
-entity found_clientid--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="253" x="22" y="498.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="233" x="32" y="521.7344">Set subnet to the by client id lease</text><!--MD5=[9f5518b92d1482f0724c659635bb4f8f]
-entity hwaddr_lookup--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="211" x="449" y="432.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="191" x="459" y="455.7344">Has client a matching lease?</text><!--MD5=[7366630e5488cbc20c26d829a87e86ca]
-entity hwaddr_iterate--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="201.5" y="564.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="332" x="211.5" y="587.7344">Iterate on allowed subnets for hardware address</text><!--MD5=[096d593c9a7e1a0b5ae2681804d4217f]
-entity found_hwaddr--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="243" x="229" y="677.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="223" x="239" y="700.7344">Set subnet to the matching lease</text><!--MD5=[f1bd864ca92b3a59ad91e15b6c278a16]
-entity hasAddressReservation--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="211" x="375" y="930.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="191" x="385" y="953.7344">Has an address reservation?</text><!--MD5=[0af8b8cc29117b7db26a4bf8fde82b62]
-entity setAddressReservation--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="300" x="220.5" y="1043.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="280" x="230.5" y="1066.7344">Set subnet to address reservation subnet</text><!--MD5=[a2ab21a8d09e419da8ba4e22e422b87f]
-entity getHRmode--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="354.5" y="1140.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="232" x="364.5" y="1163.7344">Get subnet host reservation mode</text><!--MD5=[9e66760393f24350dd53d10577644815]
-entity checkHRmode--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="293" x="334" y="1237.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="273" x="344" y="1260.7344">Is subnet host reservation mode global?</text><!--MD5=[9225881c05e5dcc29801826dc3c4a44b]
-entity global--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="205" x="258" y="1350.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="185" x="268" y="1373.7344">Get global host reservation</text><!--MD5=[fb2193611fca68211907294b61bd1772]
-entity bySubnet--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="498" y="1350.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="189" x="508" y="1373.7344">Get subnet host reservation</text><!--MD5=[c13398c59c328d6fcc544c8c17f5b117]
-entity return--><rect fill="#FEFECE" filter="url(#f8c46mlwpeali)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="235" x="363" y="1463.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="215" x="373" y="1486.7344">Return current host reservation</text><!--MD5=[4190d3dcd511d21b11bd238065bcb30b]
+<?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="1823px" preserveAspectRatio="none" style="width:969px;height:1823px;" version="1.1" viewBox="0 0 969 1823" width="969px" zoomAndPan="magnify"><defs><filter height="300%" id="f162kmmt1mna5z" 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="288" x="331.75" y="17.4023">currentHost DHCPv4 (Kea 1.7.11)</text><!--MD5=[e3476fda087b0512b1cf4e3a66ca5e59]
+entity entry--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="314.5" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="324.5" y="51.7344">Subnet Selection</text><!--MD5=[f65ad2d20ed779f8ee7fa3e9ca8ab4c3]
+entity setSelected--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="247" x="258" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="227" x="268" y="148.7344">Set subnet to the selected subnet</text><!--MD5=[c0678c1aaf89874ea821e39d7ef5404f]
+entity clientid_lookup--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="259" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="225" x="269" y="245.7344">Has client a lease for its client id?</text><!--MD5=[a51c27fcfb0c2b9388b266a7e30efdf3]
+entity clientid_iterate--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="7" y="319.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="263" x="17" y="342.7344">Iterate on allowed subnets for client id</text><!--MD5=[96d14c76c72fae1f84c71c464af0f0e6]
+entity found_clientid--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="253" x="22" y="498.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="233" x="32" y="521.7344">Set subnet to the by client id lease</text><!--MD5=[9f5518b92d1482f0724c659635bb4f8f]
+entity hwaddr_lookup--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="211" x="449" y="432.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="191" x="459" y="455.7344">Has client a matching lease?</text><!--MD5=[7366630e5488cbc20c26d829a87e86ca]
+entity hwaddr_iterate--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="201.5" y="564.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="332" x="211.5" y="587.7344">Iterate on allowed subnets for hardware address</text><!--MD5=[096d593c9a7e1a0b5ae2681804d4217f]
+entity found_hwaddr--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="243" x="229" y="677.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="223" x="239" y="700.7344">Set subnet to the matching lease</text><!--MD5=[f1bd864ca92b3a59ad91e15b6c278a16]
+entity hasAddressReservation--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="211" x="375" y="930.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="191" x="385" y="953.7344">Has an address reservation?</text><!--MD5=[0af8b8cc29117b7db26a4bf8fde82b62]
+entity setAddressReservation--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="300" x="220.5" y="1043.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="280" x="230.5" y="1066.7344">Set subnet to address reservation subnet</text><!--MD5=[42a0a2711e18aa980e3ea9f910af1c90]
+entity pool--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="355" y="1140.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="231" x="365" y="1163.7344">Is the address in an allowed pool?</text><!--MD5=[ec337e6f6831b541235537d1c5125816]
+entity pool_iterate--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="269" x="141" y="1237.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="249" x="151" y="1260.7344">Iterate on allowed subnets with pool</text><!--MD5=[8426a0f58e3c900bd89aafdc516c0a64]
+entity inAllowedPool--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="148.5" y="1350.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="234" x="158.5" y="1373.7344">Set subnet to address pool subnet</text><!--MD5=[a2ab21a8d09e419da8ba4e22e422b87f]
+entity getHRmode--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="346.5" y="1447.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="232" x="356.5" y="1470.7344">Get subnet host reservation mode</text><!--MD5=[9e66760393f24350dd53d10577644815]
+entity checkHRmode--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="293" x="326" y="1544.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="273" x="336" y="1567.7344">Is subnet host reservation mode global?</text><!--MD5=[9225881c05e5dcc29801826dc3c4a44b]
+entity global--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="205" x="250" y="1657.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="185" x="260" y="1680.7344">Get global host reservation</text><!--MD5=[fb2193611fca68211907294b61bd1772]
+entity bySubnet--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="490" y="1657.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="189" x="500" y="1680.7344">Get subnet host reservation</text><!--MD5=[c13398c59c328d6fcc544c8c17f5b117]
+entity return--><rect fill="#FEFECE" filter="url(#f162kmmt1mna5z)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="235" x="355" y="1770.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="215" x="365" y="1793.7344">Return current host reservation</text><!--MD5=[4190d3dcd511d21b11bd238065bcb30b]
 link entry to setSelected--><path d="M381.5,64.6192 C381.5,80.1592 381.5,102.9792 381.5,119.8592 " fill="none" id="entry-&gt;setSelected" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="381.5,124.8892,385.5,115.8892,381.5,119.8892,377.5,115.8892,381.5,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e08d915304835ed62ca4e0728c34eef1]
 link setSelected to clientid_lookup--><path d="M381.5,161.6192 C381.5,177.1592 381.5,199.9792 381.5,216.8592 " fill="none" id="setSelected-&gt;clientid_lookup" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="381.5,221.8892,385.5,212.8892,381.5,216.8892,377.5,212.8892,381.5,221.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6be1f2e9e03fb1c5265b47f0fe05d4fb]
 link clientid_lookup to hwaddr_lookup--><path d="M450.66,258.2792 C487.31,270.2592 530.95,289.5492 561.5,319.1992 C589.76,346.6192 605.63,365.0792 592.5,402.1992 C589.19,411.5492 583.15,420.3992 576.84,427.8492 " fill="none" id="clientid_lookup-&gt;hwaddr_lookup" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="573.32,431.8292,582.2724,427.7238,576.6267,428.0788,576.2717,422.4331,573.32,431.8292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="591.5" y="342.2676">no client id option</text><!--MD5=[e88e8ce2e61ddfe0f17d6f35f9f4b567]
@@ -28,14 +31,20 @@ link hwaddr_iterate to hwaddr_iterate--><path d="M553.73,573.1792 C574.76,574.81
 link hwaddr_iterate to found_hwaddr--><path d="M373.28,600.5392 C368.61,619.7692 361.05,650.8292 355.93,671.8592 " fill="none" id="hwaddr_iterate-&gt;found_hwaddr" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="354.69,676.9792,360.6886,669.1679,355.8623,672.1186,352.9116,667.2923,354.69,676.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="367.5" y="643.7676">found a lease</text><!--MD5=[49806d919f2e8f347acf33d16af6c958]
 link found_hwaddr to hasAddressReservation--><path d="M359.44,713.4492 C382.5,757.9792 443.99,876.6992 469.34,925.6492 " fill="none" id="found_hwaddr-&gt;hasAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="471.67,930.1592,471.0846,920.3278,469.3713,925.7189,463.9802,924.0056,471.67,930.1592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[419c32f3c11394d82c4ebd3db00104c7]
 link hwaddr_iterate to hasAddressReservation--><path d="M433.87,600.2492 C475.7,616.7892 525.5,646.4992 525.5,694.1992 C525.5,694.1992 525.5,694.1992 525.5,869.1992 C525.5,890.4892 512.76,911.2092 500.84,925.9292 " fill="none" id="hwaddr_iterate-&gt;hasAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="497.51,929.9192,506.343,925.5627,500.7095,926.0769,500.1953,920.4435,497.51,929.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="526.5" y="803.7676">not found</text><!--MD5=[1a9e971bc87c9d378000ad9b2e367c91]
-link hasAddressReservation to setAddressReservation--><path d="M463.31,966.5392 C443.86,986.1792 412.17,1018.1492 391.33,1039.1792 " fill="none" id="hasAddressReservation-&gt;setAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="387.57,1042.9792,396.7481,1039.4066,391.0912,1039.4295,391.0684,1033.7726,387.57,1042.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="432.5" y="1009.7676">yes</text><!--MD5=[7a0b79a2d77284ba08ebcdbbf3b31aeb]
-link hasAddressReservation to getHRmode--><path d="M497.22,966.4192 C518.88,990.8992 552.33,1037.4392 538.5,1079.1992 C531.33,1100.8692 515.54,1121.4192 502.24,1135.9792 " fill="none" id="hasAddressReservation-&gt;getHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="498.57,1139.9292,507.6356,1136.0803,501.9821,1136.2744,501.7879,1130.6209,498.57,1139.9292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="542.5" y="1066.2676">no</text><!--MD5=[43715e9794885370efc4ea00c7a93574]
-link setAddressReservation to getHRmode--><path d="M390.42,1079.3992 C409.11,1095.5392 437.07,1119.6992 456.88,1136.7992 " fill="none" id="setAddressReservation-&gt;getHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="460.73,1140.1192,456.5357,1131.2081,456.9468,1136.85,451.305,1137.2612,460.73,1140.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9e14dd0054774aedb71cf602d40d12b7]
-link getHRmode to checkHRmode--><path d="M480.5,1176.6192 C480.5,1192.1592 480.5,1214.9792 480.5,1231.8592 " fill="none" id="getHRmode-&gt;checkHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="480.5,1236.8892,484.5,1227.8892,480.5,1231.8892,476.5,1227.8892,480.5,1236.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a84b25cfb30efcca4b707749deb6e97a]
-link checkHRmode to global--><path d="M462.01,1273.2992 C440.76,1292.9592 405.87,1325.2292 383.04,1346.3492 " fill="none" id="checkHRmode-&gt;global" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="379.21,1349.8992,388.5379,1346.7384,382.8857,1346.5096,383.1145,1340.8574,379.21,1349.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="428.5" y="1316.7676">yes</text><!--MD5=[a6bc61640de244f08df3cca17a4f2365]
-link checkHRmode to bySubnet--><path d="M499.3,1273.2992 C520.9,1292.9592 556.37,1325.2292 579.58,1346.3492 " fill="none" id="checkHRmode-&gt;bySubnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="583.48,1349.8992,579.5026,1340.8892,579.7771,1346.5394,574.1269,1346.8139,583.48,1349.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="549.5" y="1316.7676">no</text><!--MD5=[b516e9f33f07fd0923019528919312cb]
-link global to return--><path d="M357.59,1386.3892 C356.2,1400.3392 356.61,1419.8292 366.5,1433.1992 C375.42,1445.2592 388,1454.2392 401.56,1460.9292 " fill="none" id="global-&gt;return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="406.2,1463.1092,399.7564,1455.6607,401.6749,1460.9823,396.3533,1462.9008,406.2,1463.1092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="187" x="367.5" y="1429.7676">return global host reservation</text><!--MD5=[31ce4acb5044d12c75fb908f2994650f]
-link bySubnet to return--><path d="M593.84,1386.2092 C586.18,1400.0592 573.99,1419.4892 559.5,1433.1992 C548.25,1443.8392 534.18,1453.1692 521.05,1460.6492 " fill="none" id="bySubnet-&gt;return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="516.63,1463.1192,526.4378,1462.2206,520.9947,1460.6801,522.5352,1455.2371,516.63,1463.1192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="191" x="574.5" y="1429.7676">return subnet host reservation</text><!--MD5=[928db00539b884c4c4e53734a6832c6a]
+link hasAddressReservation to setAddressReservation--><path d="M463.31,966.5392 C443.86,986.1792 412.17,1018.1492 391.33,1039.1792 " fill="none" id="hasAddressReservation-&gt;setAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="387.57,1042.9792,396.7481,1039.4066,391.0912,1039.4295,391.0684,1033.7726,387.57,1042.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="432.5" y="1009.7676">yes</text><!--MD5=[d42a4bd24fb375c431deb7abe8a74e17]
+link hasAddressReservation to pool--><path d="M497.22,966.4192 C518.88,990.8992 552.33,1037.4392 538.5,1079.1992 C531.33,1100.8692 515.54,1121.4192 502.24,1135.9792 " fill="none" id="hasAddressReservation-&gt;pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="498.57,1139.9292,507.6356,1136.0803,501.9821,1136.2744,501.7879,1130.6209,498.57,1139.9292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="542.5" y="1066.2676">no</text><!--MD5=[791581dff43cc3b6477c496805383c47]
+link setAddressReservation to pool--><path d="M390.42,1079.3992 C409.11,1095.5392 437.07,1119.6992 456.88,1136.7992 " fill="none" id="setAddressReservation-&gt;pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="460.73,1140.1192,456.5357,1131.2081,456.9468,1136.85,451.305,1137.2612,460.73,1140.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7a1241998e61cc09e6a084344a13ee40]
+link pool to pool_iterate--><path d="M443.38,1176.3992 C407.82,1192.8792 354.25,1217.7092 317.23,1234.8592 " fill="none" id="pool-&gt;pool_iterate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="312.35,1237.1192,322.1978,1236.9736,316.8885,1235.0212,318.841,1229.712,312.35,1237.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[599eb954f991ec4c35dac5f50073ed5c]
+link pool to getHRmode--><path d="M562.27,1176.2592 C595.56,1187.6592 630.78,1206.4492 650.5,1237.1992 C659.14,1250.6692 654.47,1257.6992 650.5,1273.1992 C636.28,1328.6892 627.14,1343.9092 588.5,1386.1992 C566.39,1410.3992 535.31,1430.7792 510.89,1444.6292 " fill="none" id="pool-&gt;getHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="506.41,1447.1392,516.2178,1446.2406,510.7747,1444.7001,512.3152,1439.2571,506.41,1447.1392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="205" x="642.5" y="1316.7676">pool check is not in all branches</text><!--MD5=[f92712dd8e32c9acdf8619de922fc5cb]
+link pool_iterate to pool_iterate--><path d="M410.12,1246.9692 C430.88,1248.2192 445,1250.9592 445,1255.1992 C445,1259.0792 433.2,1261.6992 415.32,1263.0692 " fill="none" id="pool_iterate-&gt;pool_iterate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="410.12,1263.4292,419.3732,1266.8023,415.1082,1263.0862,418.8244,1258.8212,410.12,1263.4292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="193" x="451" y="1260.2676">address not in an allowed pool</text><!--MD5=[89f40702130c31205e20b7afecbe9ed1]
+link pool_iterate to inAllowedPool--><path d="M275.5,1273.5392 C275.5,1292.7692 275.5,1323.8292 275.5,1344.8592 " fill="none" id="pool_iterate-&gt;inAllowedPool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="275.5,1349.9792,279.5,1340.9792,275.5,1344.9792,271.5,1340.9792,275.5,1349.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="276.5" y="1316.7676">address in an allowed pool</text><!--MD5=[2404f6c7b2ff699f3cb852b0289ecfae]
+link pool_iterate to getHRmode--><path d="M375.89,1273.2492 C408.78,1280.8692 439.69,1290.9192 450.5,1303.1992 C484.66,1341.9792 481.2,1407.7092 476.46,1441.9492 " fill="none" id="pool_iterate-&gt;getHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="475.7,1447.1692,480.9697,1438.8487,476.4291,1442.2227,473.0552,1437.6821,475.7,1447.1692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="479.5" y="1373.2676">no allowed pool</text><!--MD5=[7343ba745f039e5847ae3e5f0fd83d75]
+link inAllowedPool to getHRmode--><path d="M311.18,1386.3992 C345.34,1402.8792 396.82,1427.7092 432.4,1444.8592 " fill="none" id="inAllowedPool-&gt;getHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="437.09,1447.1192,430.7227,1439.6054,432.5869,1444.9463,427.246,1446.8104,437.09,1447.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9e14dd0054774aedb71cf602d40d12b7]
+link getHRmode to checkHRmode--><path d="M472.5,1483.6192 C472.5,1499.1592 472.5,1521.9792 472.5,1538.8592 " fill="none" id="getHRmode-&gt;checkHRmode" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="472.5,1543.8892,476.5,1534.8892,472.5,1538.8892,468.5,1534.8892,472.5,1543.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a84b25cfb30efcca4b707749deb6e97a]
+link checkHRmode to global--><path d="M454.01,1580.2992 C432.76,1599.9592 397.87,1632.2292 375.04,1653.3492 " fill="none" id="checkHRmode-&gt;global" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="371.21,1656.8992,380.5379,1653.7384,374.8857,1653.5096,375.1145,1647.8574,371.21,1656.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="421.5" y="1623.7676">yes</text><!--MD5=[a6bc61640de244f08df3cca17a4f2365]
+link checkHRmode to bySubnet--><path d="M491.3,1580.2992 C512.9,1599.9592 548.37,1632.2292 571.58,1653.3492 " fill="none" id="checkHRmode-&gt;bySubnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="575.48,1656.8992,571.5026,1647.8892,571.7771,1653.5394,566.1269,1653.8139,575.48,1656.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="541.5" y="1623.7676">no</text><!--MD5=[b516e9f33f07fd0923019528919312cb]
+link global to return--><path d="M349.59,1693.3892 C348.2,1707.3392 348.61,1726.8292 358.5,1740.1992 C367.42,1752.2592 380,1761.2392 393.56,1767.9292 " fill="none" id="global-&gt;return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398.2,1770.1092,391.7564,1762.6607,393.6749,1767.9823,388.3533,1769.9008,398.2,1770.1092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="187" x="359.5" y="1736.7676">return global host reservation</text><!--MD5=[31ce4acb5044d12c75fb908f2994650f]
+link bySubnet to return--><path d="M585.84,1693.2092 C578.18,1707.0592 565.99,1726.4892 551.5,1740.1992 C540.25,1750.8392 526.18,1760.1692 513.05,1767.6492 " fill="none" id="bySubnet-&gt;return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="508.63,1770.1192,518.4378,1769.2206,512.9947,1767.6801,514.5352,1762.2371,508.63,1770.1192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="191" x="566.5" y="1736.7676">return subnet host reservation</text><!--MD5=[a6820fb97738092a09d9f170f6e00dae]
 @startuml\r
 \r
 title currentHost DHCPv4 (Kea 1.7.11)\r
@@ -60,6 +69,12 @@ agent "Has an address reservation?" as hasAddressReservation
 \r
 agent "Set subnet to address reservation subnet" as setAddressReservation\r
 \r
+agent "Is the address in an allowed pool?" as pool\r
+\r
+agent "Iterate on allowed subnets with pool" as pool_iterate\r
+\r
+agent "Set subnet to address pool subnet" as inAllowedPool\r
+\r
 agent "Get subnet host reservation mode" as getHRmode\r
 \r
 agent "Is subnet host reservation mode global?" as checkHRmode\r
@@ -85,8 +100,14 @@ hwaddr_iterate - -> found_hwaddr : found a lease
 found_hwaddr - - - -> hasAddressReservation\r
 hwaddr_iterate - -> hasAddressReservation : not found\r
 hasAddressReservation - -> setAddressReservation : yes\r
-hasAddressReservation - -> getHRmode : no\r
-setAddressReservation - -> getHRmode\r
+hasAddressReservation - -> pool : no\r
+setAddressReservation - -> pool\r
+pool - -> pool_iterate\r
+pool - - -> getHRmode : pool check is not in all branches\r
+pool_iterate -> pool_iterate : address not in an allowed pool\r
+pool_iterate - -> inAllowedPool : address in an allowed pool\r
+pool_iterate - - -> getHRmode : no allowed pool\r
+inAllowedPool - -> getHRmode\r
 getHRmode - -> checkHRmode\r
 checkHRmode - -> global : yes\r
 checkHRmode - -> bySubnet : no\r
index 688c5b96b6cfeaf1fbceab223ccf1ea5d4e48481..68c2dd06cfc39038254681167f12d228693700ed 100644 (file)
@@ -22,6 +22,12 @@ agent "Has an address reservation?" as hasAddressReservation
 
 agent "Set subnet to address reservation subnet" as setAddressReservation
 
+agent "Is the address in an allowed pool?" as pool
+
+agent "Iterate on allowed subnets with pool" as pool_iterate
+
+agent "Set subnet to address pool subnet" as inAllowedPool
+
 agent "Get subnet host reservation mode" as getHRmode
 
 agent "Is subnet host reservation mode global?" as checkHRmode
@@ -47,8 +53,14 @@ hwaddr_iterate --> found_hwaddr : found a lease
 found_hwaddr ----> hasAddressReservation
 hwaddr_iterate --> hasAddressReservation : not found
 hasAddressReservation --> setAddressReservation : yes
-hasAddressReservation --> getHRmode : no
-setAddressReservation --> getHRmode
+hasAddressReservation --> pool : no
+setAddressReservation --> pool
+pool --> pool_iterate
+pool ---> getHRmode : pool check is not in all branches
+pool_iterate -> pool_iterate : address not in an allowed pool
+pool_iterate --> inAllowedPool : address in an allowed pool
+pool_iterate ---> getHRmode : no allowed pool
+inAllowedPool --> getHRmode
 getHRmode --> checkHRmode
 checkHRmode --> global : yes
 checkHRmode --> bySubnet : no