diff options
author | Francis Dupont <fdupont@isc.org> | 2020-08-02 16:24:54 +0200 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2020-08-04 10:45:38 +0200 |
commit | e49a6ac348fd043fdb6190f19f20aeaa287bf60a (patch) | |
tree | d3bf73a29625507ed075ca13922609e86adbaf61 | |
parent | [#1329] Added allocating subnet change (diff) | |
download | kea-e49a6ac348fd043fdb6190f19f20aeaa287bf60a.tar.xz kea-e49a6ac348fd043fdb6190f19f20aeaa287bf60a.zip |
[#1329] Moved UML to ARM
-rw-r--r-- | doc/devel/Makefile.am | 45 | ||||
-rw-r--r-- | doc/devel/images/assign-lease4.png | bin | 110780 -> 0 bytes | |||
-rw-r--r-- | doc/devel/images/assign-lease4.svg | 111 | ||||
-rw-r--r-- | doc/sphinx/Makefile.am | 48 | ||||
-rw-r--r-- | doc/sphinx/index.rst | 2 | ||||
-rw-r--r-- | doc/sphinx/uml/appendRequestedOptions.png (renamed from doc/devel/images/appendRequestedOptions.png) | bin | 51235 -> 51235 bytes | |||
-rw-r--r-- | doc/sphinx/uml/appendRequestedOptions.svg (renamed from doc/devel/images/appendRequestedOptions.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/appendRequestedOptions.uml (renamed from doc/devel/images/appendRequestedOptions.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/appendRequestedVendorOptions.png (renamed from doc/devel/images/appendRequestedVendorOptions.png) | bin | 94690 -> 94690 bytes | |||
-rw-r--r-- | doc/sphinx/uml/appendRequestedVendorOptions.svg (renamed from doc/devel/images/appendRequestedVendorOptions.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/appendRequestedVendorOptions.uml (renamed from doc/devel/images/appendRequestedVendorOptions.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/assign-lease4.png | bin | 0 -> 112647 bytes | |||
-rw-r--r-- | doc/sphinx/uml/assign-lease4.svg | 113 | ||||
-rw-r--r-- | doc/sphinx/uml/assign-lease4.uml (renamed from doc/devel/images/assign-lease4.uml) | 3 | ||||
-rw-r--r-- | doc/sphinx/uml/buildCfgOptionList.png (renamed from doc/devel/images/buildCfgOptionList.png) | bin | 87753 -> 87753 bytes | |||
-rw-r--r-- | doc/sphinx/uml/buildCfgOptionList.svg (renamed from doc/devel/images/buildCfgOptionList.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/buildCfgOptionList.uml (renamed from doc/devel/images/buildCfgOptionList.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/currentHost4.png (renamed from doc/devel/images/currentHost4.png) | bin | 146371 -> 146371 bytes | |||
-rw-r--r-- | doc/sphinx/uml/currentHost4.svg (renamed from doc/devel/images/currentHost4.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/currentHost4.uml (renamed from doc/devel/images/currentHost4.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/lease-states.png (renamed from doc/devel/images/lease-states.png) | bin | 51204 -> 51204 bytes | |||
-rw-r--r-- | doc/sphinx/uml/lease-states.svg (renamed from doc/devel/images/lease-states.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/lease-states.uml (renamed from doc/devel/images/lease-states.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/main-loop.png (renamed from doc/devel/images/main-loop.png) | bin | 44244 -> 44244 bytes | |||
-rw-r--r-- | doc/sphinx/uml/main-loop.svg (renamed from doc/devel/images/main-loop.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/main-loop.uml (renamed from doc/devel/images/main-loop.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/packet4.png (renamed from doc/devel/images/packet4.png) | bin | 220267 -> 220267 bytes | |||
-rw-r--r-- | doc/sphinx/uml/packet4.svg (renamed from doc/devel/images/packet4.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/packet4.uml (renamed from doc/devel/images/packet4.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/request4-lease.png (renamed from doc/devel/images/request4-lease.png) | bin | 278247 -> 278247 bytes | |||
-rw-r--r-- | doc/sphinx/uml/request4-lease.svg (renamed from doc/devel/images/request4-lease.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/request4-lease.uml (renamed from doc/devel/images/request4-lease.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/request4.png (renamed from doc/devel/images/request4.png) | bin | 89741 -> 89741 bytes | |||
-rw-r--r-- | doc/sphinx/uml/request4.svg (renamed from doc/devel/images/request4.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/request4.uml (renamed from doc/devel/images/request4.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/requestLease4.png (renamed from doc/devel/images/requestLease4.png) | bin | 248713 -> 248713 bytes | |||
-rw-r--r-- | doc/sphinx/uml/requestLease4.svg (renamed from doc/devel/images/requestLease4.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/requestLease4.uml (renamed from doc/devel/images/requestLease4.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/select4.png (renamed from doc/devel/images/select4.png) | bin | 179130 -> 179130 bytes | |||
-rw-r--r-- | doc/sphinx/uml/select4.svg (renamed from doc/devel/images/select4.svg) | 0 | ||||
-rw-r--r-- | doc/sphinx/uml/select4.uml (renamed from doc/devel/images/select4.uml) | 0 | ||||
-rw-r--r-- | doc/sphinx/umls.rst | 109 |
42 files changed, 273 insertions, 158 deletions
diff --git a/doc/devel/Makefile.am b/doc/devel/Makefile.am index 6562151616..9b740be71b 100644 --- a/doc/devel/Makefile.am +++ b/doc/devel/Makefile.am @@ -11,43 +11,6 @@ EXTRA_DIST += mainpage.dox EXTRA_DIST += terminology.dox EXTRA_DIST += unit-tests.dox -EXTRA_DIST += images/appendRequestedOptions.png -EXTRA_DIST += images/appendRequestedOptions.svg -EXTRA_DIST += images/appendRequestedOptions.uml -EXTRA_DIST += images/appendRequestedVendorOptions.png -EXTRA_DIST += images/appendRequestedVendorOptions.svg -EXTRA_DIST += images/appendRequestedVendorOptions.uml -EXTRA_DIST += images/assign-lease4.png -EXTRA_DIST += images/assign-lease4.svg -EXTRA_DIST += images/assign-lease4.uml -EXTRA_DIST += images/buildCfgOptionList.png -EXTRA_DIST += images/buildCfgOptionList.svg -EXTRA_DIST += images/buildCfgOptionList.uml -EXTRA_DIST += images/currentHost4.png -EXTRA_DIST += images/currentHost4.svg -EXTRA_DIST += images/currentHost4.uml -EXTRA_DIST += images/lease-states.png -EXTRA_DIST += images/lease-states.svg -EXTRA_DIST += images/lease-states.uml -EXTRA_DIST += images/main-loop.png -EXTRA_DIST += images/main-loop.svg -EXTRA_DIST += images/main-loop.uml -EXTRA_DIST += images/packet4.png -EXTRA_DIST += images/packet4.svg -EXTRA_DIST += images/packet4.uml -EXTRA_DIST += images/request4-lease.png -EXTRA_DIST += images/request4-lease.svg -EXTRA_DIST += images/request4-lease.uml -EXTRA_DIST += images/request4.png -EXTRA_DIST += images/request4.svg -EXTRA_DIST += images/request4.uml -EXTRA_DIST += images/requestLease4.png -EXTRA_DIST += images/requestLease4.svg -EXTRA_DIST += images/requestLease4.uml -EXTRA_DIST += images/select4.png -EXTRA_DIST += images/select4.svg -EXTRA_DIST += images/select4.uml - all: # do nothing, used only by developers manually devel: @@ -57,11 +20,3 @@ devel: clean-local: rm -rf html - -if HAVE_PLANTUML -.uml.png: - @PLANTUML@ $< - -.uml.svg: - @PLANTUML@ -svg $< -endif diff --git a/doc/devel/images/assign-lease4.png b/doc/devel/images/assign-lease4.png Binary files differdeleted file mode 100644 index c9f85fcb1a..0000000000 --- a/doc/devel/images/assign-lease4.png +++ /dev/null diff --git a/doc/devel/images/assign-lease4.svg b/doc/devel/images/assign-lease4.svg deleted file mode 100644 index da95e2fb74..0000000000 --- a/doc/devel/images/assign-lease4.svg +++ /dev/null @@ -1,111 +0,0 @@ -<?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="1372px" preserveAspectRatio="none" style="width:1375px;height:1372px;" version="1.1" viewBox="0 0 1375 1372" width="1375px" zoomAndPan="magnify"><defs><filter height="300%" id="f1gmw8d9konsly" 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="298" x="529.5" y="17.4023">DHCPv4 Assign Lease (Kea 1.7.11)</text><!--MD5=[96a966798826de6e056b38ba6b9482ca] -cluster init_reboot--><rect fill="#FFFFFF" filter="url(#f1gmw8d9konsly)" height="374.86" style="stroke: #000000; stroke-width: 1.5;" width="395" x="447" y="442.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="142" x="573.5" y="457.7344">INIT-REBOOT state</text><!--MD5=[71835f3367ed481a89f53801b2fdf617] -cluster allocated--><rect fill="#FFFFFF" filter="url(#f1gmw8d9konsly)" height="263.36" style="stroke: #000000; stroke-width: 1.5;" width="158" x="7" y="1092.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="31" y="1107.5944">Lease allocated</text><!--MD5=[b13a83736ea85c18a1991bca4dbe863b] -entity by_client_id--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="219" x="471.5" y="547.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="199" x="481.5" y="570.5944">Get existing lease by client id</text><!--MD5=[6b610307314e3774f091112845a2df2b] -entity by_hw_addr--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="288" x="471" y="660.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="268" x="481" y="683.5944">Get existing lease by hardware address</text><!--MD5=[ef5397f1455a008291e257fb65cb453b] -entity authoritative--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="548" y="757.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="558" y="780.5944">Get authoritative</text><!--MD5=[a54398e3d2c0f7657eea7ade058e1e7f] -entity ddns--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="31" y="1198.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="90" x="41" y="1221.9544">update DDNS</text><!--MD5=[8edf83f1bb568d804760d31cec2ffb3b] -entity ack--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="42.5" y="1295.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="67" x="52.5" y="1318.9544">Send ACK</text><!--MD5=[7f6071cca9390999bbf4a53289faea1c] -entity subnet--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1205" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="1215" y="51.7344">Check Subnet</text><path d="M1080,33.6992 L1080,59.0098 A0,0 0 0 0 1080,59.0098 L1170,59.0098 A0,0 0 0 0 1170,59.0098 L1170,51.6992 L1205,46.1992 L1170,43.6992 L1170,43.6992 L1160,33.6992 L1080,33.6992 A0,0 0 0 0 1080,33.6992 " fill="#FBFB77" filter="url(#f1gmw8d9konsly)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1160,33.6992 L1160,43.6992 L1170,43.6992 L1160,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="1086" y="51.2676">entry point</text><!--MD5=[d9ce3005481b6be8203f0e568049ebfd] -entity server_id--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="1033" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="86" x="1043" y="148.7344">Get server id</text><!--MD5=[ee598753b08e093ad1dc6a89dd6a274b] -entity hint--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="790" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="800" y="245.7344">Get hint</text><!--MD5=[fdc0ebc2726a1e25611a217b1a9cdddd] -entity ident--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="540" y="335.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="238" x="550" y="358.7344">Get hardware address and client id</text><!--MD5=[9b403e692b0a4a2d394ce21b0c8a8b18] -entity hostname--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="276" y="888.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="286" y="911.5944">Process hostname</text><!--MD5=[c7571992746652353b375880ae850124] -entity allocate--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="204" y="985.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="214" y="1008.5944">Request lease</text><!--MD5=[18d4eff7c560e0870d2f30d7f8649cf3] -entity failed--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="189" y="1101.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="199" y="1124.9544">No lease allocated</text><path d="M368,1106.9192 L368,1115.4192 L333.27,1119.4192 L368,1123.4192 L368,1132.2298 A0,0 0 0 0 368,1132.2298 L450,1132.2298 A0,0 0 0 0 450,1132.2298 L450,1116.9192 L440,1106.9192 L368,1106.9192 A0,0 0 0 0 368,1106.9192 " fill="#FBFB77" filter="url(#f1gmw8d9konsly)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M440,1106.9192 L440,1116.9192 L450,1116.9192 L440,1106.9192 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="374" y="1124.4876">exit point</text><!--MD5=[6dac4c34c80be6dabf811d62e9db4883] -entity nak--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="728.5" y="1198.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="67" x="738.5" y="1221.9544">Send NAK</text><path d="M851,1203.9192 L851,1212.4192 L815.59,1216.4192 L851,1220.4192 L851,1229.2298 A0,0 0 0 0 851,1229.2298 L933,1229.2298 A0,0 0 0 0 933,1229.2298 L933,1213.9192 L923,1203.9192 L851,1203.9192 A0,0 0 0 0 851,1203.9192 " fill="#FBFB77" filter="url(#f1gmw8d9konsly)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M923,1203.9192 L923,1213.9192 L933,1213.9192 L923,1203.9192 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="857" y="1221.4876">exit point</text><!--MD5=[be0cad0b32609f2a377600c2fd818d08] -entity no_response--><rect fill="#FEFECE" filter="url(#f1gmw8d9konsly)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="748" y="985.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="86" x="758" y="1008.5944">No response</text><path d="M889,990.5592 L889,999.0592 L854.16,1003.0592 L889,1007.0592 L889,1015.8698 A0,0 0 0 0 889,1015.8698 L971,1015.8698 A0,0 0 0 0 971,1015.8698 L971,1000.5592 L961,990.5592 L889,990.5592 A0,0 0 0 0 889,990.5592 " fill="#FBFB77" filter="url(#f1gmw8d9konsly)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M961,990.5592 L961,1000.5592 L971,1000.5592 L961,990.5592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="895" y="1008.1276">exit point</text><!--MD5=[359b6ca0b36d81a4e33a25f71e3b7c61] -link subnet to server_id--><path d="M1230.13,64.3992 C1199.73,80.8092 1153.98,105.4992 1122.22,122.6492 " fill="none" id="subnet->server_id" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1117.64,125.1192,1127.4584,124.3457,1122.0355,122.736,1123.6452,117.313,1117.64,125.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7db9f4f0423b43d622896ef15525c632] -link subnet to nak--><path d="M1273.1,64.2792 C1284,82.7192 1299,113.3492 1299,142.1992 C1299,142.1992 1299,142.1992 1299,1120.4192 C1299,1224.6692 934.24,1153.7892 834,1182.4192 C823.22,1185.4992 812.19,1190.6192 802.48,1195.9192 " fill="none" id="subnet->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="798.11,1198.3592,807.9178,1197.4606,802.4747,1195.9201,804.0152,1190.4771,798.11,1198.3592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="63" x="1300" y="626.6276">no subnet</text><!--MD5=[a38dfb09b1bcb8b95a969df0005f111d] -link server_id to hint--><path d="M1039.4,161.2892 C990.82,179.1092 915.39,206.7792 868.72,223.8992 " fill="none" id="server_id->hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="864.01,225.6192,873.8375,226.2668,868.7027,223.8933,871.0761,218.7585,864.01,225.6192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[34fbc802059013c2537c0989625530bb] -link hint to ident--><path d="M789.9,249.7492 C765.22,256.8692 733.18,269.0092 710,288.1992 C696.21,299.6192 685.52,316.9092 678.52,330.6392 " fill="none" id="hint->ident" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="676.29,335.1392,683.8605,328.8395,678.5032,330.6557,676.6869,325.2984,676.29,335.1392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="711" y="301.7676">use requested address option</text><!--MD5=[34fbc802059013c2537c0989625530bb] -link hint to ident--><path d="M864.08,255.1692 C890.28,267.1392 918.1,285.5292 902,305.1992 C888.38,321.8392 847.22,332.7292 803.21,339.7792 " fill="none" id="hint->ident-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="798.11,340.5792,807.6192,343.1436,803.0502,339.8082,806.3855,335.2392,798.11,340.5792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="114" x="907" y="301.7676">use client address</text><!--MD5=[34fbc802059013c2537c0989625530bb] -link hint to ident--><path d="M789.99,245.1092 C740.65,251.1692 657.38,264.6692 639,288.1992 C628.94,301.0892 637.47,317.8892 647.97,331.0492 " fill="none" id="hint->ident-2" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="651.28,335.0092,648.5947,325.5335,648.0805,331.1669,642.447,330.6527,651.28,335.0092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="640" y="301.7676">no hint</text><!--MD5=[65f067d78ef63afdf91771d9a656ad03] -link ident to init_reboot--><path d="M669,371.5692 C669,387.3142 669,411.0567 669,431.1092 C669,433.6158 669,436.0647 669,438.4331 C669,439.6173 669,440.7814 669,441.9225 " fill="none" id="ident->init_reboot" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="669,441.9225,673,432.9225,669,436.9225,665,432.9225,669,441.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="220" x="670" y="414.7676">requested address and no server id</text><!--MD5=[14830c65b2a034d88d53d1ea466689d7] -link ident to hostname--><path d="M563,371.2692 C469.5,389.4192 348,421.9692 348,468.5592 C348,468.5592 348,468.5592 348,776.0592 C348,813.4892 348,857.0192 348,882.7392 " fill="none" id="ident->hostname" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="348,887.9492,352,878.9492,348,882.9492,344,878.9492,348,887.9492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f67bf50fbab8c942c3b4d7a43dc78f8a] -link init_reboot to by_client_id--><path d="M668.94,470.1292 C667.1,472.0892 626.08,515.9092 600.72,542.9992 " fill="none" id="init_reboot->by_client_id" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="597.1,546.8692,606.1731,543.038,600.5192,543.2211,600.3361,537.5672,597.1,546.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="641" y="513.6276">has a client id</text><!--MD5=[e73d6babdacfd6f192eca91886274ed0] -link init_reboot to by_hw_addr--><path d="M669.15,470.0692 C672.13,470.2092 720.24,472.9692 738,500.0592 C742.14,506.3792 739.6,509.6792 738,517.0592 C725.15,576.3792 673.37,628.6792 641.23,656.2992 " fill="none" id="init_reboot->by_hw_addr" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="637.03,659.8692,646.4838,657.1077,640.8464,656.6389,641.3152,651.0015,637.03,659.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="71" x="735" y="570.1276">no client id</text><!--MD5=[81a28d33e53a361ab0f9b1ac80511604] -link by_client_id to by_hw_addr--><path d="M562.09,583.1492 C550.23,596.0192 538.64,614.1292 547,630.0592 C552.77,641.0692 562.43,650.0092 572.67,657.0192 " fill="none" id="by_client_id->by_hw_addr" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="577.09,659.9092,571.7349,651.6435,572.9014,657.1788,567.3661,658.3453,577.09,659.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="548" y="626.6276">not fount</text><!--MD5=[996213fdf844dcf095df5ccc9b89cdbf] -link by_hw_addr to authoritative--><path d="M615,696.4792 C615,712.0192 615,734.8392 615,751.7192 " fill="none" id="by_hw_addr->authoritative" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="615,756.7492,619,747.7492,615,751.7492,611,747.7492,615,756.7492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cc7ba6fbd1fdcf375abf61565bb8cbda] -link authoritative to no_response--><path d="M629.29,793.4192 C662.91,834.2692 746.95,936.3892 783.53,980.8292 " fill="none" id="authoritative->no_response" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="786.92,984.9492,784.2938,975.457,783.7445,981.0871,778.1143,980.5378,786.92,984.9492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="736" y="911.1276">not authoritative and no owned lease</text><!--MD5=[f287a43fa002547e84e3e2517c1b3af8] -link authoritative to nak--><path d="M682.03,782.3592 C802,795.4992 1041,830.9692 1041,905.0592 C1041,905.0592 1041,905.0592 1041,1120.4192 C1041,1216.4592 922.82,1145.8992 834,1182.4192 C824.67,1186.2492 814.91,1191.0492 805.95,1195.7992 " fill="none" id="authoritative->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="801.07,1198.4192,810.8922,1197.6951,805.4774,1196.0581,807.1144,1190.6433,801.07,1198.4192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="203" x="1042" y="1008.1276">owned lease with hint mismatch</text><!--MD5=[f287a43fa002547e84e3e2517c1b3af8] -link authoritative to nak--><path d="M585.28,793.0692 C552.1,814.5292 503,854.7892 503,905.0592 C503,905.0592 503,905.0592 503,1120.4192 C503,1166.6392 646,1195.9592 723.48,1208.4592 " fill="none" id="authoritative->nak-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="728.48,1209.2592,720.2196,1203.8959,723.542,1208.4743,718.9636,1211.7967,728.48,1209.2592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="504" y="1008.1276">authoritative and no owned lease</text><!--MD5=[b7c0267f2f455dcd84cdca29c5404c83] -link authoritative to hostname--><path d="M547.81,786.6292 C503.91,795.8492 446.82,812.3992 403,841.0592 C386.11,852.1092 371.47,869.7892 361.55,883.7792 " fill="none" id="authoritative->hostname" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="358.63,887.9892,367.049,882.8785,361.482,883.8824,360.4781,878.3153,358.63,887.9892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="72" x="404" y="854.6276">other cases</text><!--MD5=[986a8f86ec6d7417d34c7fd351c484dc] -link hostname to allocate--><path d="M332.04,924.4792 C317.45,940.4192 295.83,964.0292 280.28,981.0092 " fill="none" id="hostname->allocate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="276.86,984.7492,285.886,980.8082,280.2347,981.0599,279.9831,975.4086,276.86,984.7492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c34dad786bb94ff8f8cc439f61a5c35f] -link allocate to allocated--><path d="M212.16,1021.1492 C194.16,1028.7392 174.22,1038.7792 158,1051.0592 C150.43,1056.7942 143.1831,1063.7023 136.5469,1070.8789 C133.2288,1074.4672 130.0633,1078.1226 127.0864,1081.732 C125.598,1083.5367 124.1567,1085.3299 122.767,1087.0975 C122.0722,1087.9813 121.3903,1088.8587 120.7219,1089.7279 C120.3876,1090.1625 120.0568,1090.595 119.7294,1091.0253 C119.5657,1091.2405 119.4028,1091.4551 119.2408,1091.6691 C119.1598,1091.7761 119.0791,1091.8829 118.9985,1091.9896 " fill="none" id="allocate->allocated" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="118.9985,1091.9896,127.6138,1087.2171,122.0113,1087.9992,121.2292,1082.3967,118.9985,1091.9896" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="159" y="1064.6276">lease allocated</text><!--MD5=[539a3348c1089415ce435c139bd22f41] -link allocated to ddns--><path d="M100.99,1120.4892 C100.68,1122.4392 93.91,1165.3192 89.58,1192.7692 " fill="none" id="allocated->ddns" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="88.74,1198.0392,94.1033,1189.7788,89.5249,1193.1012,86.2025,1188.5229,88.74,1198.0392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d51d97a60fea492264b409c209ca1ef] -link ddns to ack--><path d="M86,1234.8392 C86,1250.3792 86,1273.1992 86,1290.0792 " fill="none" id="ddns->ack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="86,1295.1092,90,1286.1092,86,1290.1092,82,1286.1092,86,1295.1092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[dd12c52c80378d18331ab530a0ed76ab] -link allocate to failed--><path d="M261,1021.4292 C261,1041.4392 261,1074.3792 261,1096.2292 " fill="none" id="allocate->failed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="261,1101.2592,265,1092.2592,261,1096.2592,257,1092.2592,261,1101.2592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="262" y="1064.6276">no lease allocated</text><!--MD5=[e8032f725f00abe81d7341b4b6fe8340] -link failed to nak--><path d="M332.77,1137.5192 C374.7,1147.2092 428.7,1159.2092 477,1168.4192 C563.29,1184.8692 664.54,1200.1292 723.18,1208.5692 " fill="none" id="failed->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="728.37,1209.3092,720.0325,1204.0665,723.4211,1208.5961,718.8915,1211.9848,728.37,1209.3092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eeaac936123f608bb48186e17072a1be] -@startuml
-
-title DHCPv4 Assign Lease (Kea 1.7.11)
-
-agent "Check Subnet" as subnet
-note left : entry point
-
-agent "Get server id" as server_id
-
-agent "Get hint" as hint
-
-agent "Get hardware address and client id" as ident
-
-rectangle "INIT-REBOOT state" as init_reboot {
- agent "Get existing lease by client id" as by_client_id
-
- agent "Get existing lease by hardware address" as by_hw_addr
-
- agent "Get authoritative" as authoritative
-}
-
-agent "Process hostname" as hostname
-
-agent "Request lease" as allocate
-
-rectangle "Lease allocated" as allocated {
- agent "update DDNS" as ddns
- agent "Send ACK" as ack
-}
-
-agent "No lease allocated" as failed
-note right : exit point
-
-agent "Send NAK" as nak
-note right : exit point
-
-agent "No response" as no_response
-note right : exit point
-
-subnet - -> server_id
-subnet - - -> nak : no subnet
-server_id - -> hint
-hint - -> ident : use requested address option
-hint - -> ident : use client address
-hint - -> ident : no hint
-ident - -> init_reboot : requested address and no server id
-ident - - -> hostname
-init_reboot - -> by_client_id : has a client id
-init_reboot - -> by_hw_addr : no client id
-by_client_id - -> by_hw_addr : not fount
-by_hw_addr - -> authoritative
-authoritative - - -> no_response : not authoritative and no owned lease
-authoritative - -> nak : owned lease with hint mismatch
-authoritative - -> nak : authoritative and no owned lease
-authoritative - -> hostname : other cases
-hostname - -> allocate
-allocate - -> allocated : lease allocated
-allocated - -> ddns
-ddns - -> ack
-allocate - -> failed : no lease allocated
-failed - -> nak
-
-@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 diff --git a/doc/sphinx/Makefile.am b/doc/sphinx/Makefile.am index 2ebe069e81..ed524b4404 100644 --- a/doc/sphinx/Makefile.am +++ b/doc/sphinx/Makefile.am @@ -21,6 +21,7 @@ EXTRA_DIST += static/static_sources.mk rst_arm_sources = rst_arm_sources += index.rst rst_arm_sources += manpages.rst +rst_arm_sources += umls.rst include arm/rst_arm_sources.mk EXTRA_DIST += arm/rst_arm_sources.mk @@ -90,6 +91,53 @@ $(srcdir)/arm/platforms.rst: rm -f $(srcdir)/arm/platforms.rst cp $(srcdir)/../../platforms.rst $(srcdir)/arm/platforms.rst +# UML files + +if HAVE_PLANTUML +.uml.png: + @PLANTUML@ $< + +.uml.svg: + @PLANTUML@ -svg $< +endif + +EXTRA_DIST += uml/appendRequestedOptions.png +EXTRA_DIST += uml/appendRequestedOptions.svg +EXTRA_DIST += uml/appendRequestedOptions.uml +EXTRA_DIST += uml/appendRequestedVendorOptions.png +EXTRA_DIST += uml/appendRequestedVendorOptions.svg +EXTRA_DIST += uml/appendRequestedVendorOptions.uml +EXTRA_DIST += uml/assign-lease4.png +EXTRA_DIST += uml/assign-lease4.svg +EXTRA_DIST += uml/assign-lease4.uml +EXTRA_DIST += uml/buildCfgOptionList.png +EXTRA_DIST += uml/buildCfgOptionList.svg +EXTRA_DIST += uml/buildCfgOptionList.uml +EXTRA_DIST += uml/currentHost4.png +EXTRA_DIST += uml/currentHost4.svg +EXTRA_DIST += uml/currentHost4.uml +EXTRA_DIST += uml/lease-states.png +EXTRA_DIST += uml/lease-states.svg +EXTRA_DIST += uml/lease-states.uml +EXTRA_DIST += uml/main-loop.png +EXTRA_DIST += uml/main-loop.svg +EXTRA_DIST += uml/main-loop.uml +EXTRA_DIST += uml/packet4.png +EXTRA_DIST += uml/packet4.svg +EXTRA_DIST += uml/packet4.uml +EXTRA_DIST += uml/request4-lease.png +EXTRA_DIST += uml/request4-lease.svg +EXTRA_DIST += uml/request4-lease.uml +EXTRA_DIST += uml/request4.png +EXTRA_DIST += uml/request4.svg +EXTRA_DIST += uml/request4.uml +EXTRA_DIST += uml/requestLease4.png +EXTRA_DIST += uml/requestLease4.svg +EXTRA_DIST += uml/requestLease4.uml +EXTRA_DIST += uml/select4.png +EXTRA_DIST += uml/select4.svg +EXTRA_DIST += uml/select4.uml + PDFLATEX_AND_OPTS=$(PDFLATEX) -interaction nonstopmode pdf: $(main_sources) api-files.txt mes-files.txt $(srcdir)/arm/platforms.rst diff --git a/doc/sphinx/index.rst b/doc/sphinx/index.rst index 79a6c97e56..8ea10dd255 100644 --- a/doc/sphinx/index.rst +++ b/doc/sphinx/index.rst @@ -50,7 +50,7 @@ Kea, can be found in ISC's `Knowledgebase <https://kb.isc.org/docs/kea-administr manpages kea-messages arm/acknowledgments - + umls diff --git a/doc/devel/images/appendRequestedOptions.png b/doc/sphinx/uml/appendRequestedOptions.png Binary files differindex 943dc6f9bc..943dc6f9bc 100644 --- a/doc/devel/images/appendRequestedOptions.png +++ b/doc/sphinx/uml/appendRequestedOptions.png diff --git a/doc/devel/images/appendRequestedOptions.svg b/doc/sphinx/uml/appendRequestedOptions.svg index 5b3079e3ee..5b3079e3ee 100644 --- a/doc/devel/images/appendRequestedOptions.svg +++ b/doc/sphinx/uml/appendRequestedOptions.svg diff --git a/doc/devel/images/appendRequestedOptions.uml b/doc/sphinx/uml/appendRequestedOptions.uml index 50ad7e8147..50ad7e8147 100644 --- a/doc/devel/images/appendRequestedOptions.uml +++ b/doc/sphinx/uml/appendRequestedOptions.uml diff --git a/doc/devel/images/appendRequestedVendorOptions.png b/doc/sphinx/uml/appendRequestedVendorOptions.png Binary files differindex fe7266d07d..fe7266d07d 100644 --- a/doc/devel/images/appendRequestedVendorOptions.png +++ b/doc/sphinx/uml/appendRequestedVendorOptions.png diff --git a/doc/devel/images/appendRequestedVendorOptions.svg b/doc/sphinx/uml/appendRequestedVendorOptions.svg index 142f7958d4..142f7958d4 100644 --- a/doc/devel/images/appendRequestedVendorOptions.svg +++ b/doc/sphinx/uml/appendRequestedVendorOptions.svg diff --git a/doc/devel/images/appendRequestedVendorOptions.uml b/doc/sphinx/uml/appendRequestedVendorOptions.uml index 15f31b903b..15f31b903b 100644 --- a/doc/devel/images/appendRequestedVendorOptions.uml +++ b/doc/sphinx/uml/appendRequestedVendorOptions.uml diff --git a/doc/sphinx/uml/assign-lease4.png b/doc/sphinx/uml/assign-lease4.png Binary files differnew file mode 100644 index 0000000000..e8e6e62ad4 --- /dev/null +++ b/doc/sphinx/uml/assign-lease4.png diff --git a/doc/sphinx/uml/assign-lease4.svg b/doc/sphinx/uml/assign-lease4.svg new file mode 100644 index 0000000000..1a7d529f98 --- /dev/null +++ b/doc/sphinx/uml/assign-lease4.svg @@ -0,0 +1,113 @@ +<?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="1372px" preserveAspectRatio="none" style="width:1375px;height:1372px;" version="1.1" viewBox="0 0 1375 1372" width="1375px" zoomAndPan="magnify"><defs><filter height="300%" id="f1p3l6kosi5qna" 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="298" x="529.5" y="17.4023">DHCPv4 Assign Lease (Kea 1.7.11)</text><!--MD5=[96a966798826de6e056b38ba6b9482ca] +cluster init_reboot--><rect fill="#FFFFFF" filter="url(#f1p3l6kosi5qna)" height="374.86" style="stroke: #000000; stroke-width: 1.5;" width="445" x="493" y="442.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="142" x="644.5" y="457.7344">INIT-REBOOT state</text><!--MD5=[71835f3367ed481a89f53801b2fdf617] +cluster allocated--><rect fill="#FFFFFF" filter="url(#f1p3l6kosi5qna)" height="263.36" style="stroke: #000000; stroke-width: 1.5;" width="158" x="7" y="1092.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="110" x="31" y="1107.5944">Lease allocated</text><!--MD5=[b13a83736ea85c18a1991bca4dbe863b] +entity by_client_id--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="219" x="517.5" y="547.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="199" x="527.5" y="570.5944">Get existing lease by client id</text><!--MD5=[6b610307314e3774f091112845a2df2b] +entity by_hw_addr--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="288" x="626" y="660.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="268" x="636" y="683.5944">Get existing lease by hardware address</text><!--MD5=[ef5397f1455a008291e257fb65cb453b] +entity authoritative--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="528" y="757.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="538" y="780.5944">Get authoritative</text><!--MD5=[a54398e3d2c0f7657eea7ade058e1e7f] +entity ddns--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="31" y="1198.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="90" x="41" y="1221.9544">update DDNS</text><!--MD5=[8edf83f1bb568d804760d31cec2ffb3b] +entity ack--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="42.5" y="1295.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="67" x="52.5" y="1318.9544">Send ACK</text><!--MD5=[7f6071cca9390999bbf4a53289faea1c] +entity subnet--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1205" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="1215" y="51.7344">Check Subnet</text><path d="M1080,33.6992 L1080,59.0098 A0,0 0 0 0 1080,59.0098 L1170,59.0098 A0,0 0 0 0 1170,59.0098 L1170,51.6992 L1205,46.1992 L1170,43.6992 L1170,43.6992 L1160,33.6992 L1080,33.6992 A0,0 0 0 0 1080,33.6992 " fill="#FBFB77" filter="url(#f1p3l6kosi5qna)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1160,33.6992 L1160,43.6992 L1170,43.6992 L1160,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="1086" y="51.2676">entry point</text><!--MD5=[d9ce3005481b6be8203f0e568049ebfd] +entity server_id--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="1046" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="86" x="1056" y="148.7344">Get server id</text><!--MD5=[ee598753b08e093ad1dc6a89dd6a274b] +entity hint--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="849" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="859" y="245.7344">Get hint</text><!--MD5=[fdc0ebc2726a1e25611a217b1a9cdddd] +entity ident--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="565" y="335.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="238" x="575" y="358.7344">Get hardware address and client id</text><!--MD5=[9b403e692b0a4a2d394ce21b0c8a8b18] +entity hostname--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="276" y="888.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="286" y="911.5944">Process hostname</text><!--MD5=[c7571992746652353b375880ae850124] +entity allocate--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="204" y="985.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="214" y="1008.5944">Request lease</text><!--MD5=[18d4eff7c560e0870d2f30d7f8649cf3] +entity failed--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="189" y="1101.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="199" y="1124.9544">No lease allocated</text><path d="M368,1106.9192 L368,1115.4192 L333.27,1119.4192 L368,1123.4192 L368,1132.2298 A0,0 0 0 0 368,1132.2298 L450,1132.2298 A0,0 0 0 0 450,1132.2298 L450,1116.9192 L440,1106.9192 L368,1106.9192 A0,0 0 0 0 368,1106.9192 " fill="#FBFB77" filter="url(#f1p3l6kosi5qna)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M440,1106.9192 L440,1116.9192 L450,1116.9192 L440,1106.9192 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="374" y="1124.4876">exit point</text><!--MD5=[6dac4c34c80be6dabf811d62e9db4883] +entity nak--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="599.5" y="1198.4192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="67" x="609.5" y="1221.9544">Send NAK</text><path d="M722,1203.9192 L722,1212.4192 L686.59,1216.4192 L722,1220.4192 L722,1229.2298 A0,0 0 0 0 722,1229.2298 L804,1229.2298 A0,0 0 0 0 804,1229.2298 L804,1213.9192 L794,1203.9192 L722,1203.9192 A0,0 0 0 0 722,1203.9192 " fill="#FBFB77" filter="url(#f1p3l6kosi5qna)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M794,1203.9192 L794,1213.9192 L804,1213.9192 L794,1203.9192 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="728" y="1221.4876">exit point</text><!--MD5=[be0cad0b32609f2a377600c2fd818d08] +entity no_response--><rect fill="#FEFECE" filter="url(#f1p3l6kosi5qna)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="1023" y="985.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="86" x="1033" y="1008.5944">No response</text><path d="M1164,990.5592 L1164,999.0592 L1129.16,1003.0592 L1164,1007.0592 L1164,1015.8698 A0,0 0 0 0 1164,1015.8698 L1246,1015.8698 A0,0 0 0 0 1246,1015.8698 L1246,1000.5592 L1236,990.5592 L1164,990.5592 A0,0 0 0 0 1164,990.5592 " fill="#FBFB77" filter="url(#f1p3l6kosi5qna)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1236,990.5592 L1236,1000.5592 L1246,1000.5592 L1236,990.5592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="1170" y="1008.1276">exit point</text><!--MD5=[359b6ca0b36d81a4e33a25f71e3b7c61] +link subnet to server_id--><path d="M1232.48,64.3992 C1204.44,80.7492 1162.31,105.2992 1132.9,122.4392 " fill="none" id="subnet->server_id" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1128.3,125.1192,1138.0915,124.0576,1132.6235,122.6079,1134.0733,117.1399,1128.3,125.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7db9f4f0423b43d622896ef15525c632] +link subnet to nak--><path d="M1273.1,64.2792 C1284,82.7192 1299,113.3492 1299,142.1992 C1299,142.1992 1299,142.1992 1299,1120.4192 C1299,1186.7792 768.46,1163.0292 705,1182.4192 C694.58,1185.5992 683.88,1190.5892 674.36,1195.7292 " fill="none" id="subnet->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="669.79,1198.2492,679.6021,1197.3996,674.1668,1195.8319,675.7345,1190.3966,669.79,1198.2492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="63" x="1300" y="626.6276">no subnet</text><!--MD5=[a38dfb09b1bcb8b95a969df0005f111d] +link server_id to hint--><path d="M1060.43,161.3992 C1022.99,178.0992 966.32,203.3692 927.82,220.5492 " fill="none" id="server_id->hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="923.21,222.5992,933.0589,222.5935,927.7779,220.5659,929.8055,215.2849,923.21,222.5992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[34fbc802059013c2537c0989625530bb] +link hint to ident--><path d="M848.75,241.0892 C774.38,241.7392 611.66,247.8692 577,288.1992 C559.81,308.1992 581.08,323.0792 609.99,333.4192 " fill="none" id="hint->ident" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="615.08,335.1692,607.8731,328.4565,610.3525,333.541,605.268,336.0204,615.08,335.1692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="578" y="301.7676">use requested address option</text><!--MD5=[34fbc802059013c2537c0989625530bb] +link hint to ident--><path d="M856.42,258.2992 C821.75,278.3392 764.41,311.4992 727.95,332.5692 " fill="none" id="hint->ident-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="723.61,335.0792,733.4041,334.0418,727.9397,332.5785,729.403,327.1142,723.61,335.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="114" x="802" y="301.7676">use client address</text><!--MD5=[34fbc802059013c2537c0989625530bb] +link hint to ident--><path d="M908.07,258.3492 C922.64,271.7392 937.02,290.4892 925,305.1992 C911.63,321.5592 871.46,332.3692 828.28,339.4492 " fill="none" id="hint->ident-2" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="823.28,340.2492,832.7964,342.7867,828.218,339.4643,831.5404,334.8859,823.28,340.2492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="930" y="301.7676">no hint</text><!--MD5=[65f067d78ef63afdf91771d9a656ad03] +link ident to init_reboot--><path d="M694,371.5692 C694,387.3142 694,411.0567 694,431.1092 C694,433.6158 694,436.0647 694,438.4331 C694,439.6173 694,440.7814 694,441.9225 " fill="none" id="ident->init_reboot" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="694,441.9225,698,432.9225,694,436.9225,690,432.9225,694,441.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="220" x="695" y="414.7676">requested address and no server id</text><!--MD5=[14830c65b2a034d88d53d1ea466689d7] +link ident to hostname--><path d="M571.53,371.2492 C471.99,388.6592 348,420.0792 348,468.5592 C348,468.5592 348,468.5592 348,776.0592 C348,813.4892 348,857.0192 348,882.7392 " fill="none" id="ident->hostname" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="348,887.9492,352,878.9492,348,882.9492,344,878.9492,348,887.9492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f67bf50fbab8c942c3b4d7a43dc78f8a] +link init_reboot to by_client_id--><path d="M693.95,470.1292 C692.56,472.0792 661.57,515.5492 642.25,542.6592 " fill="none" id="init_reboot->by_client_id" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="639.25,546.8692,647.7294,541.8593,642.1508,542.7967,641.2134,537.218,639.25,546.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="673" y="513.6276">has a client id</text><!--MD5=[e73d6babdacfd6f192eca91886274ed0] +link init_reboot to by_hw_addr--><path d="M694.16,470.0592 C697.44,470.0892 750.21,470.9692 770,500.0592 C802.04,547.1592 787.68,618.8592 777.31,654.8392 " fill="none" id="init_reboot->by_hw_addr" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="775.82,659.8792,782.2006,652.3767,777.2331,655.0831,774.5268,650.1156,775.82,659.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="71" x="790" y="570.1276">no client id</text><!--MD5=[0bee13a6f2540e80d374adb5c9fde696] +link by_client_id to authoritative--><path d="M612.69,583.0592 C598.68,600.9192 578.27,630.4692 570,660.0592 C561.14,691.7592 573.59,729.1292 583.87,752.2092 " fill="none" id="by_client_id->authoritative" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="586.03,756.9092,585.9217,747.061,583.9492,752.3628,578.6474,750.3903,586.03,756.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="37" x="571" y="683.1276">found</text><!--MD5=[81a28d33e53a361ab0f9b1ac80511604] +link by_client_id to by_hw_addr--><path d="M622.24,583.2592 C619.47,597.2192 618.2,616.7092 628,630.0592 C636.84,642.0992 648.87,651.0992 662.21,657.8192 " fill="none" id="by_client_id->by_hw_addr" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="666.79,660.0092,660.4134,652.5033,662.2842,657.8419,656.9456,659.7126,666.79,660.0092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="629" y="626.6276">not found</text><!--MD5=[996213fdf844dcf095df5ccc9b89cdbf] +link by_hw_addr to authoritative--><path d="M738.31,696.2592 C708.08,712.6692 662.6,737.3592 631.01,754.5092 " fill="none" id="by_hw_addr->authoritative" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="626.46,756.9792,636.2784,756.2057,630.8555,754.596,632.4652,749.173,626.46,756.9792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[cc7ba6fbd1fdcf375abf61565bb8cbda] +link authoritative to no_response--><path d="M662.09,791.8592 C705.06,803.0892 761.47,819.8992 809,841.0592 C901.17,882.0792 1000.65,948.7092 1047.95,981.9092 " fill="none" id="authoritative->no_response" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1052.08,984.8292,1047.0166,976.3816,1047.9892,981.9542,1042.4166,982.9269,1052.08,984.8292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="960" y="911.1276">not authoritative and no owned lease</text><!--MD5=[f287a43fa002547e84e3e2517c1b3af8] +link authoritative to nak--><path d="M662.08,792.5792 C716.07,810.3592 783,844.5992 783,905.0592 C783,905.0592 783,905.0592 783,1120.4192 C783,1133.0992 719.28,1171.9092 677.82,1195.8192 " fill="none" id="authoritative->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="673.38,1198.3692,683.178,1197.37,677.7195,1195.8855,679.204,1190.4269,673.38,1198.3692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="203" x="784" y="1008.1276">owned lease with hint mismatch</text><!--MD5=[f287a43fa002547e84e3e2517c1b3af8] +link authoritative to nak--><path d="M571.78,793.3292 C544.53,815.7792 503,857.7492 503,905.0592 C503,905.0592 503,905.0592 503,1120.4192 C503,1165.8592 554.13,1191.0792 594.59,1203.9092 " fill="none" id="authoritative->nak-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="599.47,1205.4192,592.043,1198.9509,594.6908,1203.9498,589.6919,1206.5976,599.47,1205.4192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="208" x="504" y="1008.1276">authoritative and no owned lease</text><!--MD5=[b7c0267f2f455dcd84cdca29c5404c83] +link authoritative to hostname--><path d="M527.91,789.4292 C489.09,799.3592 440.63,815.6592 403,841.0592 C386.38,852.2692 371.81,869.7892 361.85,883.6592 " fill="none" id="authoritative->hostname" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="358.91,887.8392,367.3694,882.7956,361.7945,883.7552,360.8349,878.1803,358.91,887.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="72" x="404" y="854.6276">other cases</text><!--MD5=[986a8f86ec6d7417d34c7fd351c484dc] +link hostname to allocate--><path d="M332.04,924.4792 C317.45,940.4192 295.83,964.0292 280.28,981.0092 " fill="none" id="hostname->allocate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="276.86,984.7492,285.886,980.8082,280.2347,981.0599,279.9831,975.4086,276.86,984.7492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c34dad786bb94ff8f8cc439f61a5c35f] +link allocate to allocated--><path d="M212.16,1021.1492 C194.16,1028.7392 174.22,1038.7792 158,1051.0592 C150.43,1056.7942 143.1831,1063.7023 136.5469,1070.8789 C133.2288,1074.4672 130.0633,1078.1226 127.0864,1081.732 C125.598,1083.5367 124.1567,1085.3299 122.767,1087.0975 C122.0722,1087.9813 121.3903,1088.8587 120.7219,1089.7279 C120.3876,1090.1625 120.0568,1090.595 119.7294,1091.0253 C119.5657,1091.2405 119.4028,1091.4551 119.2408,1091.6691 C119.1598,1091.7761 119.0791,1091.8829 118.9985,1091.9896 " fill="none" id="allocate->allocated" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="118.9985,1091.9896,127.6138,1087.2171,122.0113,1087.9992,121.2292,1082.3967,118.9985,1091.9896" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="159" y="1064.6276">lease allocated</text><!--MD5=[539a3348c1089415ce435c139bd22f41] +link allocated to ddns--><path d="M100.99,1120.4892 C100.68,1122.4392 93.91,1165.3192 89.58,1192.7692 " fill="none" id="allocated->ddns" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="88.74,1198.0392,94.1033,1189.7788,89.5249,1193.1012,86.2025,1188.5229,88.74,1198.0392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d51d97a60fea492264b409c209ca1ef] +link ddns to ack--><path d="M86,1234.8392 C86,1250.3792 86,1273.1992 86,1290.0792 " fill="none" id="ddns->ack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="86,1295.1092,90,1286.1092,86,1290.1092,82,1286.1092,86,1295.1092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[dd12c52c80378d18331ab530a0ed76ab] +link allocate to failed--><path d="M261,1021.4292 C261,1041.4392 261,1074.3792 261,1096.2292 " fill="none" id="allocate->failed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="261,1101.2592,265,1092.2592,261,1096.2592,257,1092.2592,261,1101.2592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="262" y="1064.6276">no lease allocated</text><!--MD5=[e8032f725f00abe81d7341b4b6fe8340] +link failed to nak--><path d="M329.74,1137.5092 C406.04,1156.4892 527.27,1186.6392 594.35,1203.3192 " fill="none" id="failed->nak" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="599.48,1204.5992,591.7189,1198.5358,594.6293,1203.3865,589.7786,1206.297,599.48,1204.5992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[07326153c0e0bad8363d01291957b705] +@startuml
+
+title DHCPv4 Assign Lease (Kea 1.7.11)
+
+agent "Check Subnet" as subnet
+note left : entry point
+
+agent "Get server id" as server_id
+
+agent "Get hint" as hint
+
+agent "Get hardware address and client id" as ident
+
+rectangle "INIT-REBOOT state" as init_reboot {
+ agent "Get existing lease by client id" as by_client_id
+
+ agent "Get existing lease by hardware address" as by_hw_addr
+
+ agent "Get authoritative" as authoritative
+}
+
+agent "Process hostname" as hostname
+
+agent "Request lease" as allocate
+
+rectangle "Lease allocated" as allocated {
+ agent "update DDNS" as ddns
+ agent "Send ACK" as ack
+}
+
+agent "No lease allocated" as failed
+note right : exit point
+
+agent "Send NAK" as nak
+note right : exit point
+
+agent "No response" as no_response
+note right : exit point
+
+subnet - -> server_id
+subnet - - -> nak : no subnet
+server_id - -> hint
+hint - -> ident : use requested address option
+hint - -> ident : use client address
+hint - -> ident : no hint
+ident - -> init_reboot : requested address and no server id
+ident - - -> hostname
+init_reboot - -> by_client_id : has a client id
+init_reboot - -> by_hw_addr : no client id
+by_client_id - - -> authoritative : found
+by_client_id - -> by_hw_addr : not found
+by_hw_addr - -> authoritative
+authoritative - - -> no_response : not authoritative and no owned lease
+authoritative - -> nak : owned lease with hint mismatch
+authoritative - -> nak : authoritative and no owned lease
+authoritative - -> hostname : other cases
+hostname - -> allocate
+allocate - -> allocated : lease allocated
+allocated - -> ddns
+ddns - -> ack
+allocate - -> failed : no lease allocated
+failed - -> nak
+
+@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 diff --git a/doc/devel/images/assign-lease4.uml b/doc/sphinx/uml/assign-lease4.uml index 8382d97a99..5b29b77f0d 100644 --- a/doc/devel/images/assign-lease4.uml +++ b/doc/sphinx/uml/assign-lease4.uml @@ -47,7 +47,8 @@ ident --> init_reboot : requested address and no server id ident ---> hostname init_reboot --> by_client_id : has a client id init_reboot --> by_hw_addr : no client id -by_client_id --> by_hw_addr : not fount +by_client_id ---> authoritative : found +by_client_id --> by_hw_addr : not found by_hw_addr --> authoritative authoritative ---> no_response : not authoritative and no owned lease authoritative --> nak : owned lease with hint mismatch diff --git a/doc/devel/images/buildCfgOptionList.png b/doc/sphinx/uml/buildCfgOptionList.png Binary files differindex ddf6f96e51..ddf6f96e51 100644 --- a/doc/devel/images/buildCfgOptionList.png +++ b/doc/sphinx/uml/buildCfgOptionList.png diff --git a/doc/devel/images/buildCfgOptionList.svg b/doc/sphinx/uml/buildCfgOptionList.svg index 9c75d30209..9c75d30209 100644 --- a/doc/devel/images/buildCfgOptionList.svg +++ b/doc/sphinx/uml/buildCfgOptionList.svg diff --git a/doc/devel/images/buildCfgOptionList.uml b/doc/sphinx/uml/buildCfgOptionList.uml index 719770f17c..719770f17c 100644 --- a/doc/devel/images/buildCfgOptionList.uml +++ b/doc/sphinx/uml/buildCfgOptionList.uml diff --git a/doc/devel/images/currentHost4.png b/doc/sphinx/uml/currentHost4.png Binary files differindex 577e61b3d8..577e61b3d8 100644 --- a/doc/devel/images/currentHost4.png +++ b/doc/sphinx/uml/currentHost4.png diff --git a/doc/devel/images/currentHost4.svg b/doc/sphinx/uml/currentHost4.svg index ec300489ec..ec300489ec 100644 --- a/doc/devel/images/currentHost4.svg +++ b/doc/sphinx/uml/currentHost4.svg diff --git a/doc/devel/images/currentHost4.uml b/doc/sphinx/uml/currentHost4.uml index c61eb6cd32..c61eb6cd32 100644 --- a/doc/devel/images/currentHost4.uml +++ b/doc/sphinx/uml/currentHost4.uml diff --git a/doc/devel/images/lease-states.png b/doc/sphinx/uml/lease-states.png Binary files differindex 192d93600a..192d93600a 100644 --- a/doc/devel/images/lease-states.png +++ b/doc/sphinx/uml/lease-states.png diff --git a/doc/devel/images/lease-states.svg b/doc/sphinx/uml/lease-states.svg index 3956f34106..3956f34106 100644 --- a/doc/devel/images/lease-states.svg +++ b/doc/sphinx/uml/lease-states.svg diff --git a/doc/devel/images/lease-states.uml b/doc/sphinx/uml/lease-states.uml index 0382709688..0382709688 100644 --- a/doc/devel/images/lease-states.uml +++ b/doc/sphinx/uml/lease-states.uml diff --git a/doc/devel/images/main-loop.png b/doc/sphinx/uml/main-loop.png Binary files differindex f4348dffa0..f4348dffa0 100644 --- a/doc/devel/images/main-loop.png +++ b/doc/sphinx/uml/main-loop.png diff --git a/doc/devel/images/main-loop.svg b/doc/sphinx/uml/main-loop.svg index bc9b8f8776..bc9b8f8776 100644 --- a/doc/devel/images/main-loop.svg +++ b/doc/sphinx/uml/main-loop.svg diff --git a/doc/devel/images/main-loop.uml b/doc/sphinx/uml/main-loop.uml index 2511ca7d47..2511ca7d47 100644 --- a/doc/devel/images/main-loop.uml +++ b/doc/sphinx/uml/main-loop.uml diff --git a/doc/devel/images/packet4.png b/doc/sphinx/uml/packet4.png Binary files differindex 85adb4d6ef..85adb4d6ef 100644 --- a/doc/devel/images/packet4.png +++ b/doc/sphinx/uml/packet4.png diff --git a/doc/devel/images/packet4.svg b/doc/sphinx/uml/packet4.svg index bba5ab7a77..bba5ab7a77 100644 --- a/doc/devel/images/packet4.svg +++ b/doc/sphinx/uml/packet4.svg diff --git a/doc/devel/images/packet4.uml b/doc/sphinx/uml/packet4.uml index f74715156c..f74715156c 100644 --- a/doc/devel/images/packet4.uml +++ b/doc/sphinx/uml/packet4.uml diff --git a/doc/devel/images/request4-lease.png b/doc/sphinx/uml/request4-lease.png Binary files differindex 02ab48f66f..02ab48f66f 100644 --- a/doc/devel/images/request4-lease.png +++ b/doc/sphinx/uml/request4-lease.png diff --git a/doc/devel/images/request4-lease.svg b/doc/sphinx/uml/request4-lease.svg index 1eb8587237..1eb8587237 100644 --- a/doc/devel/images/request4-lease.svg +++ b/doc/sphinx/uml/request4-lease.svg diff --git a/doc/devel/images/request4-lease.uml b/doc/sphinx/uml/request4-lease.uml index 00d4844ce9..00d4844ce9 100644 --- a/doc/devel/images/request4-lease.uml +++ b/doc/sphinx/uml/request4-lease.uml diff --git a/doc/devel/images/request4.png b/doc/sphinx/uml/request4.png Binary files differindex 86f1cf6161..86f1cf6161 100644 --- a/doc/devel/images/request4.png +++ b/doc/sphinx/uml/request4.png diff --git a/doc/devel/images/request4.svg b/doc/sphinx/uml/request4.svg index 86a5d8e9f8..86a5d8e9f8 100644 --- a/doc/devel/images/request4.svg +++ b/doc/sphinx/uml/request4.svg diff --git a/doc/devel/images/request4.uml b/doc/sphinx/uml/request4.uml index 977dc59f2a..977dc59f2a 100644 --- a/doc/devel/images/request4.uml +++ b/doc/sphinx/uml/request4.uml diff --git a/doc/devel/images/requestLease4.png b/doc/sphinx/uml/requestLease4.png Binary files differindex a27c8741dc..a27c8741dc 100644 --- a/doc/devel/images/requestLease4.png +++ b/doc/sphinx/uml/requestLease4.png diff --git a/doc/devel/images/requestLease4.svg b/doc/sphinx/uml/requestLease4.svg index 24eeb2bd0f..24eeb2bd0f 100644 --- a/doc/devel/images/requestLease4.svg +++ b/doc/sphinx/uml/requestLease4.svg diff --git a/doc/devel/images/requestLease4.uml b/doc/sphinx/uml/requestLease4.uml index a079b572fb..a079b572fb 100644 --- a/doc/devel/images/requestLease4.uml +++ b/doc/sphinx/uml/requestLease4.uml diff --git a/doc/devel/images/select4.png b/doc/sphinx/uml/select4.png Binary files differindex 08c12eb850..08c12eb850 100644 --- a/doc/devel/images/select4.png +++ b/doc/sphinx/uml/select4.png diff --git a/doc/devel/images/select4.svg b/doc/sphinx/uml/select4.svg index c5b5e25d12..c5b5e25d12 100644 --- a/doc/devel/images/select4.svg +++ b/doc/sphinx/uml/select4.svg diff --git a/doc/devel/images/select4.uml b/doc/sphinx/uml/select4.uml index 79488969b7..79488969b7 100644 --- a/doc/devel/images/select4.uml +++ b/doc/sphinx/uml/select4.uml diff --git a/doc/sphinx/umls.rst b/doc/sphinx/umls.rst new file mode 100644 index 0000000000..af1c6787dd --- /dev/null +++ b/doc/sphinx/umls.rst @@ -0,0 +1,109 @@ +.. + Copyright (C) 2020 Internet Systems Consortium, Inc. ("ISC") + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + + See the COPYRIGHT file distributed with this work for additional + information regarding copyright ownership. + +.. _umls: + +UML files +========= + +These UML files describe the DHCPv4 server implementation. They are +provided in UML (source), PNG and SVG formats. + +The main loop is common to DHCPv4 and DHPCv6 servers. + +.. figure:: uml/main-loop.* + + DHCP server main loop + +Next is the DHCPv4 packet processing. + +.. figure:: uml/packet4.* + + DHCPv4 packet processing + +With more details for DHCPREQUEST processing. + +.. figure:: uml/request4.* + + DHCPREQUEST processing + +Packet processing begins by the subnet selection i.e. the localization +of the sender of the query. Note that when the selected subnet is a +member of a shared network in fact the whole shared network was selected. + +.. figure:: uml/select4.* + + DHCPv4 subnet selection + +After the subnet selection and before the lease allocation the DHCPv4 +server handles specific case as the INIT-REBOOT client state. + +.. note:: + + The "Request lease" box will be expanded below as lease allocation. + +.. figure:: uml/assign-lease4.* + + DHCPv4 Assign Lease + +The allocation of a lease (or not) to an incoming request is very complex +so is given too as an algorithm summary. + +.. figure:: uml/request4-lease.* + + Allocate a lease for DHCPREQUEST + +.. figure:: uml/requestLease4.* + + requestLease4 algorithm + +The different lease states including the free one where no lease object exists. + +.. note:: + + In statistics declined addresses are counted with the assigned addresses + so the :math:`assigned + free = total` equation stands. + +.. figure:: uml/lease-states.* + + lease states + +The allocation engine maintains a notion of current subnet and host +reservation. + +.. note:: + + Beware that to find a free lease the allocation engine starts from + the *preferred* subnet i.e. the last used one so the current subnet + can depend on the history, not only from the incoming query... + +.. figure:: uml/currentHost4.* + + currentHost + +Before sending a response options are added: + - evaluate required client classes + - build the configured option list + - append requested options + - append requested vendor options + - append basic options + +.. figure:: uml/buildCfgOptionList.* + + buildCfgOptionList (build configured option list) algorithm + +.. figure:: uml/appendRequestedOptions.* + + appendRequestedOptions (append requested options) algorithm + +.. figure:: uml/appendRequestedVendorOptions.* + + appendRequestedVendorOptions (append vendor requested options) algorithm + |