summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/uml/select4.svg
blob: a2b5ed68449f944a95a2fe10275d224c9e2e0106 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?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="2210px" preserveAspectRatio="none" style="width:1468px;height:2210px;" version="1.1" viewBox="0 0 1468 2210" width="1468px" zoomAndPan="magnify"><defs><filter height="300%" id="f5nw3f4rb2pkr" 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="317" x="566.5" y="17.4023">DHCPv4 subnet selection (Kea 1.8.0)</text><!--MD5=[73860abe08ab23c9b8e49eb23f18ae46]
cluster relayed--><rect fill="#FFFFFF" filter="url(#f5nw3f4rb2pkr)" height="374.86" style="stroke: #000000; stroke-width: 1.5;" width="445" x="7" y="329.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="201.5" y="344.7344">Relayed</text><!--MD5=[234613e222536af9475ae40e3492b0e6]
cluster set_address--><rect fill="#FFFFFF" filter="url(#f5nw3f4rb2pkr)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="803" x="227" y="769.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="546.5" y="784.5944">Set address for lookup</text><!--MD5=[a59c1d05a8f6fb54290705d41e67acbe]
cluster interface--><rect fill="#FFFFFF" filter="url(#f5nw3f4rb2pkr)" height="488" style="stroke: #000000; stroke-width: 1.5;" width="395" x="945" y="990.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="1060.5" y="1006.4544">Try incoming interface</text><!--MD5=[8f3f5adf9176dbd9c419c05d483ab0c6]
cluster address--><rect fill="#FFFFFF" filter="url(#f5nw3f4rb2pkr)" height="294" style="stroke: #000000; stroke-width: 1.5;" width="190" x="745" y="1527.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="797.5" y="1543.4544">Try address</text><!--MD5=[aeb2f621969028d4547d386ac1a1ba6d]
entity relay_subnet--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="172" y="418.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="206" x="182" y="441.5944">Relay address matches subnet</text><!--MD5=[bf459b32eaaf498e62edf6d622ac5891]
entity relay_network--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="142" y="531.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="266" x="152" y="554.5944">Relay address matches shared network</text><!--MD5=[076bfff500cab59e856b606fdf63ed5a]
entity relay_class--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="112" y="644.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="122" y="667.5944">Check client class</text><!--MD5=[467e96f12fdeb7da53b220e72b6eb1fc]
entity relay_address--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="136" x="251" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="116" x="261" y="897.4544">Set relay address</text><!--MD5=[a0e4201c97a623c3dfa593fb75aad03b]
entity client_address--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="553" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="563" y="897.4544">Set client address</text><!--MD5=[a2d7389029b0dd04029e629f1661a883]
entity source_address--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="856.5" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="866.5" y="897.4544">Set source address</text><!--MD5=[8eaa1e77cbee43fcac8de4e493864e04]
entity interface_subnet--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="997" y="1025.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="1007" y="1049.4544">Interface matches subnet</text><!--MD5=[44eac5a65cc5cd7e6cc1fc4b89b09f4d]
entity interface_network--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1072" y="1138.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="232" x="1082" y="1162.4544">Interface matches shared network</text><!--MD5=[8e51806cb27b2b60db022c6084a961c9]
entity interface_class--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="1022" y="1251.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="1032" y="1275.4544">Check client class</text><!--MD5=[953883d00ea10db133fca33539954fed]
entity interface_address--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="961.5" y="1426.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="143" x="971.5" y="1450.4544">Set interface address</text><!--MD5=[132ec46735878e55c0250b14c07769ad]
entity inRange--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="761" y="1562.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="138" x="771" y="1586.4544">Check subnet prefix</text><!--MD5=[a34f95003b379bc2f5b7f1af307bcb98]
entity address_class--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="779" y="1769.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="789" y="1793.4544">Check client class</text><!--MD5=[e3476fda087b0512b1cf4e3a66ca5e59]
entity entry--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="350.5" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="75" x="360.5" y="51.7344">Entry point</text><!--MD5=[a23c6b9dab1f8744947aaee2891e743e]
entity rai_link_select--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="327.5" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="337.5" y="148.7344">Try RAI link select</text><!--MD5=[6d8910fd8533ab76ffd986c0d960248c]
entity subnet_select--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="294.5" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="187" x="304.5" y="245.7344">Try subnet selection option</text><!--MD5=[6348f6d706001cc5dc6ed638bec44faf]
entity found--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="708.5" y="1946.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="718.5" y="1970.4544">Found a subnet</text><!--MD5=[7dc9e356e22f2f113ceeb6da807ce9ff]
entity not_found--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="870.5" y="1946.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="117" x="880.5" y="1970.4544">Found no subnet</text><!--MD5=[4a9142d0fee9ff77eb50a001ac7877e7]
entity subnet4_select--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="767.5" y="2043.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="155" x="777.5" y="2067.4544">Callout subnet4_select</text><!--MD5=[d0fdc5cb89e99cab1ccfec009231794d]
entity success--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="584.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="109" x="594.5" y="2180.4544">Return a subnet</text><!--MD5=[d0255a03afa46a62fe0c456dae837167]
entity no_subnet--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="139" x="785.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="119" x="795.5" y="2180.4544">Return no subnet</text><!--MD5=[c92710f32fe9c293a125fb7e80204a05]
entity drop--><rect fill="#FEFECE" filter="url(#f5nw3f4rb2pkr)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="97" x="986.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="77" x="996.5" y="2180.4544">Drop query</text><!--MD5=[732ffb0ffbc5cdc82abf95e46b9c6dc7]
link entry to rai_link_select--><path d="M398,64.6192 C398,80.1592 398,102.9792 398,119.8592 " fill="none" id="entry-&gt;rai_link_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398,124.8892,402,115.8892,398,119.8892,394,115.8892,398,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f0b6d7b08c058a6efc1e3a3886382c22]
link rai_link_select to subnet_select--><path d="M398,161.6192 C398,177.1592 398,199.9792 398,216.8592 " fill="none" id="rai_link_select-&gt;subnet_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398,221.8892,402,212.8892,398,216.8892,394,212.8892,398,221.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2989df9457f995d9ec76378f9e46e3a6]
link subnet_select to relayed--><path d="M389.65,258.5692 C382.075,274.3142 370.655,298.0567 361.01,318.1092 C359.8044,320.6158 358.6265,323.0647 357.4873,325.4331 C356.9177,326.6173 356.3578,327.7814 355.8089,328.9225 " fill="none" id="subnet_select-&gt;relayed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="355.8089,328.9225,363.3147,322.5458,357.9762,324.4167,356.1053,319.0781,355.8089,328.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="374" y="301.7676">relayed</text><!--MD5=[19a01d6111b1c934e32249a327a2afa6]
link subnet_select to set_address--><path d="M433.44,258.3692 C466.58,277.1792 511,310.7592 511,355.5592 C511,355.5592 511,355.5592 511,663.0592 C511,711.2292 468.365,744.0467 425.0638,764.9542 C422.3574,766.2609 419.6485,767.5211 416.9472,768.7356 " fill="none" id="subnet_select-&gt;set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="416.9472,768.7356,426.796,768.6933,421.5075,766.6853,423.5155,761.3968,416.9472,768.7356" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="512" y="497.6276">not relayed</text><!--MD5=[289599dfcd7d1f32272e42cc3c26c895]
link relayed to relay_subnet--><path d="M342.96,357.1192 C341.81,358.6492 317.61,391.2092 300.84,413.7592 " fill="none" id="relayed-&gt;relay_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="297.8,417.8392,306.3807,413.0049,300.784,413.8273,299.9616,408.2305,297.8,417.8392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[65c9b407d2d4ddf1b89c397faeac317e]
link relay_subnet to relay_network--><path d="M285,454.3992 C285,473.6292 285,504.6892 285,525.7192 " fill="none" id="relay_subnet-&gt;relay_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="285,530.8392,289,521.8392,285,525.8392,281,521.8392,285,530.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="286" y="497.6276">no match</text><!--MD5=[918f6d4a891df42092f9be64f359f985]
link relay_subnet to relay_class--><path d="M199.58,454.0892 C156.79,467.3892 108.74,490.6992 83,531.0592 C56.99,571.8592 109.58,615.9992 147.59,640.9192 " fill="none" id="relay_subnet-&gt;relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="152.15,643.8592,146.7424,635.6277,147.9441,641.1554,142.4164,642.3571,152.15,643.8592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="84" y="554.1276">match</text><!--MD5=[ec56da742308e5dcfe86ad0421278606]
link relay_network to set_address--><path d="M288.52,567.3092 C294.12,594.7992 305.4675,650.4892 315.5475,699.9592 C320.5875,724.6942 325.3106,747.8742 328.84,765.1967 C329.0606,766.2794 329.2765,767.3392 329.4876,768.375 " fill="none" id="relay_network-&gt;set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="329.4876,768.375,331.6103,758.7576,328.4893,763.4756,323.7713,760.3547,329.4876,768.375" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="319" y="667.1276">no match</text><!--MD5=[a30462b61ddf59585f12c8e1078496e0]
link relay_network to relay_class--><path d="M268.91,567.3992 C250.69,587.0392 221.02,619.0092 201.5,640.0392 " fill="none" id="relay_network-&gt;relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="197.98,643.8392,207.0376,639.9713,201.3844,640.1773,201.1785,634.5242,197.98,643.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="241" y="610.6276">match</text><!--MD5=[44feab40ce9c0df31465bdb13adac7ed]
link relay_class to found--><path d="M177.97,680.0792 C172.39,705.1692 163,753.6292 163,795.4192 C163,795.4192 163,795.4192 163,1878.4192 C163,1932.4492 543.78,1954.4892 703.15,1961.3492 " fill="none" id="relay_class-&gt;found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.26,1961.5692,699.4395,1957.1875,703.2646,1961.3551,699.097,1965.1802,708.26,1961.5692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="164" y="1362.4876">compatible</text><!--MD5=[d5e1893c7bc3c7589901f4b78d6439f0]
link relay_class to set_address--><path d="M185.6,680.2592 C190.22,698.4992 199.91,727.0992 218,745.0592 C222.9438,749.9667 228.4423,754.4291 234.2844,758.4815 C237.2054,760.5077 240.2123,762.4314 243.2786,764.2571 C244.8117,765.1699 246.3597,766.0582 247.9193,766.9226 C248.6991,767.3547 249.4818,767.7809 250.2669,768.2012 C250.6595,768.4113 251.0527,768.6199 251.4464,768.8271 " fill="none" id="relay_class-&gt;set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="251.4464,768.8271,245.3441,761.0965,247.0215,766.499,241.6191,768.1764,251.4464,768.8271" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="219" y="741.6276">not compatible</text><!--MD5=[3f679d64a1cccee12b0e824b1733c0ed]
link set_address to relay_address--><path d="M334.99,796.9892 C334.66,798.9192 327.44,841.3492 322.81,868.5092 " fill="none" id="set_address-&gt;relay_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="321.93,873.7292,327.3899,865.5323,322.7728,868.8008,319.5043,864.1837,321.93,873.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="330" y="840.4876">try the relay address</text><!--MD5=[9d0435cdb5bba0d446c223c46240db6f]
link relay_address to client_address--><path d="M387.22,891.9192 C434.95,891.9192 498.7,891.9192 547.88,891.9192 " fill="none" id="relay_address-&gt;client_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="552.9,891.9192,543.9,887.9192,547.9,891.9192,543.9,895.9192,552.9,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="405.5" y="885.4876">has no relay address</text><!--MD5=[4192df04ddbb3f1e00a57ee174f51cdb]
link client_address to source_address--><path d="M693.28,891.9192 C740.3,891.9192 802.28,891.9192 851.17,891.9192 " fill="none" id="client_address-&gt;source_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="856.46,891.9192,847.46,887.9192,851.46,891.9192,847.46,895.9192,856.46,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="127" x="711.25" y="885.4876">has no client address</text><!--MD5=[1cd4e848379fc555ffa76a6d3111f3fb]
link source_address to interface_subnet--><path d="M949.58,910.1292 C979.61,937.9292 1038.68,992.6192 1070.85,1022.4092 " fill="none" id="source_address-&gt;interface_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1074.63,1025.9092,1070.7255,1016.8674,1070.9543,1022.5196,1065.3021,1022.7484,1074.63,1025.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="1017" y="971.4876">no suitable address</text><!--MD5=[a29ca77fdc41863d51ecafa8e32dcb85]
link relay_address to inRange--><path d="M319,910.0192 C319,937.8592 319,994.7392 319,1042.9192 C319,1042.9192 319,1042.9192 319,1445.9192 C319,1534.9892 608.22,1565.7192 755.69,1575.5992 " fill="none" id="relay_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.87,1575.9392,752.1525,1571.356,755.8808,1575.6104,751.6264,1579.3387,760.87,1575.9392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="1274.9876">has a relay address</text><!--MD5=[bf38c5431748c4414750c7275409615d]
link client_address to inRange--><path d="M598.14,910.0992 C565.15,935.1492 511,985.0692 511,1042.9192 C511,1042.9192 511,1042.9192 511,1445.9192 C511,1498.7592 658.41,1540.8992 755.88,1562.9892 " fill="none" id="client_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.78,1564.0892,752.8657,1558.2272,755.8997,1563.0015,751.1254,1566.0356,760.78,1564.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="125" x="512" y="1274.9876">has a client address</text><!--MD5=[306377b471c1f30003804df3ba3e4280]
link source_address to inRange--><path d="M856.74,909.9992 C791.87,929.8492 708,969.6692 708,1042.9192 C708,1042.9192 708,1042.9192 708,1445.9192 C708,1498.6392 760.49,1538.1592 799.27,1560.1592 " fill="none" id="source_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="803.93,1562.7492,798.0248,1554.8671,799.5653,1560.3101,794.1222,1561.8506,803.93,1562.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="709" y="1274.9876">has source address and use unicast</text><!--MD5=[4c5f9760336ab58778079bb174cbf5f0]
link interface_subnet to not_found--><path d="M1183.41,1061.9192 C1267.54,1080.3992 1380,1113.1092 1380,1155.9192 C1380,1155.9192 1380,1155.9192 1380,1878.4192 C1380,1952.2692 1138.67,1963.6392 1013.06,1964.5692 " fill="none" id="interface_subnet-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.91,1964.5992,1016.9327,1968.5477,1012.9099,1964.5706,1016.887,1960.5479,1007.91,1964.5992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1381" y="1508.4876">no interface</text><!--MD5=[f6d146b568a537518d52dd0109d2cafd]
link interface_subnet to interface_class--><path d="M1071.84,1062.1092 C1052.58,1079.2392 1025.46,1107.4692 1014,1138.9192 C998.88,1180.3992 1037.07,1223.3392 1065.19,1248.0092 " fill="none" id="interface_subnet-&gt;interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1069.26,1251.5192,1065.0657,1242.6081,1065.4768,1248.25,1059.835,1248.6612,1069.26,1251.5192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1015" y="1161.9876">match</text><!--MD5=[8c73b6f253b7f8003f1aeec9d3e2c401]
link interface_subnet to interface_network--><path d="M1109.41,1062.2592 C1127.98,1081.8992 1158.22,1113.8692 1178.12,1134.8992 " fill="none" id="interface_subnet-&gt;interface_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1181.71,1138.6992,1178.417,1129.4172,1178.2685,1135.0721,1172.6136,1134.9236,1181.71,1138.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1152" y="1105.4876">no match</text><!--MD5=[8a490629b42afa0a067bde343f0409be]
link interface_network to interface_class--><path d="M1181.44,1175.2592 C1162.69,1194.8992 1132.15,1226.8692 1112.07,1247.8992 " fill="none" id="interface_network-&gt;interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1108.45,1251.6992,1117.5542,1247.9424,1111.899,1248.0792,1111.7622,1242.424,1108.45,1251.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1152" y="1218.4876">march</text><!--MD5=[e1288d340d0c431aabe10a4c239c74f7]
link interface_network to not_found--><path d="M1216.94,1175.1492 C1237.06,1195.4392 1266,1231.1792 1266,1268.9192 C1266,1268.9192 1266,1268.9192 1266,1878.4192 C1266,1930.4492 1109.1,1951.4192 1012.67,1959.3992 " fill="none" id="interface_network-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.55,1959.8192,1016.8511,1963.058,1012.5327,1959.404,1016.1867,1955.0856,1007.55,1959.8192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1267" y="1585.9876">no match</text><!--MD5=[9d13a96273b9c1dbfb8a7fbd997b0088]
link interface_class to found--><path d="M1111.94,1288.2092 C1127.1,1302.7092 1146.84,1324.8592 1156,1348.9192 C1203,1472.3792 1160.06,1514.0492 1168,1645.9192 C1169,1662.6092 1171,1666.6992 1171,1683.4192 C1171,1683.4192 1171,1683.4192 1171,1878.4192 C1171,1879.4592 954.79,1925.2992 840.68,1949.4192 " fill="none" id="interface_class-&gt;found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="835.66,1950.4792,845.2955,1952.5181,840.5505,1949.4384,843.6302,1944.6934,835.66,1950.4792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="1169" y="1642.4876">compatible</text><!--MD5=[d4a81a9eb6ae9754c2f91708a00f90ba]
link interface_class to interface_address--><path d="M1081.97,1287.9492 C1073.39,1303.3492 1061.43,1326.9092 1055,1348.9192 C1047.93,1373.1292 1045.02,1402.0192 1043.83,1421.5292 " fill="none" id="interface_class-&gt;interface_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1043.54,1426.7692,1048.0484,1418.0128,1043.8261,1421.7774,1040.0615,1417.5551,1043.54,1426.7692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="1056" y="1362.4876">not compatible</text><!--MD5=[18f0036984a219b8e279d39e6955cbb3]
link interface_address to inRange--><path d="M961.24,1454.9892 C910.72,1462.4692 852.64,1475.1192 837,1494.9192 C823.19,1512.3892 826.7,1538.7792 831.91,1557.5092 " fill="none" id="interface_address-&gt;inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="833.41,1562.5792,834.6953,1552.8146,831.993,1557.7842,827.0233,1555.0818,833.41,1562.5792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="838" y="1508.4876">has an interface address</text><!--MD5=[1be935c2e674a39bb491f742257146af]
link interface_address to not_found--><path d="M1037.7,1463.0692 C1030.36,1488.3792 1018,1537.3192 1018,1579.9192 C1018,1579.9192 1018,1579.9192 1018,1878.4192 C1018,1906.2692 995.11,1928.9092 973.97,1943.8892 " fill="none" id="interface_address-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="969.77,1946.7792,979.4482,1944.9538,973.8835,1943.9369,974.9005,1938.3722,969.77,1946.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1019" y="1736.4876">no interface address</text><!--MD5=[65c872516cd5acbef394f498ee60e6f6]
link inRange to address_class--><path d="M840.75,1599.0492 C842.38,1636.0492 846.21,1723.4492 848.02,1764.6692 " fill="none" id="inRange-&gt;address_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="848.24,1769.6992,851.8498,1760.5358,848.0253,1764.7038,843.8572,1760.8793,848.24,1769.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="845" y="1689.4876">match</text><!--MD5=[c6a81dd9b5c38fb7a31992aeb43efba5]
link inRange to not_found--><path d="M768.39,1598.9792 C726.98,1613.5792 683,1639.4392 683,1683.4192 C683,1683.4192 683,1683.4192 683,1878.4192 C683,1897.7892 789.82,1927.8092 865.46,1946.6392 " fill="none" id="inRange-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.4,1947.8692,862.6221,1941.8274,865.5459,1946.67,860.7033,1949.5938,870.4,1947.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="684" y="1792.9876">no match</text><!--MD5=[6bbdb059bb8431be14feb2edf9179bcc]
link address_class to found--><path d="M815.7,1805.9392 C765.48,1832.3692 674.36,1883.6192 657,1915.9192 C644.07,1939.9792 671.86,1951.9792 703.35,1957.9692 " fill="none" id="address_class-&gt;found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.43,1958.8792,700.2794,1953.3504,703.5088,1957.9948,698.8644,1961.2243,708.43,1958.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="708" y="1882.4876">compatible</text><!--MD5=[6fa859304e08ed6b1a2f69b396a973f6]
link address_class to not_found--><path d="M856.62,1805.9192 C865.47,1825.4292 880.68,1858.2892 895,1885.9192 C904.99,1905.1792 917.16,1926.6292 926.17,1942.1492 " fill="none" id="address_class-&gt;not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="928.86,1946.7592,927.7843,1936.9693,926.3424,1942.4393,920.8724,1940.9974,928.86,1946.7592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="896" y="1882.4876">not compatible</text><!--MD5=[920af236d2bfe8ac015294b6ec32c751]
link found to subnet4_select--><path d="M787.22,1983.3392 C801.03,1999.1492 821.43,2022.4892 836.24,2039.4392 " fill="none" id="found-&gt;subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="839.87,2043.6092,836.9563,2034.2012,836.5785,2039.8454,830.9343,2039.4676,839.87,2043.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[be5a985c5094547d1aa8a3dfda06631d]
link not_found to subnet4_select--><path d="M923.59,1983.3392 C909.62,1999.1492 888.98,2022.4892 873.99,2039.4392 " fill="none" id="not_found-&gt;subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.31,2043.6092,879.2712,2039.523,873.6247,2039.8659,873.2818,2034.2194,870.31,2043.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[085d72d70044aeb14e8d963046e88b11]
link found to not_found--><!--MD5=[d0da1e00427a0ca7837196c7dddb3af4]
link subnet4_select to success--><path d="M767.05,2070.2692 C735.7,2076.7092 702,2088.4992 677,2109.9192 C664.53,2120.5992 657.42,2137.8792 653.49,2151.7992 " fill="none" id="subnet4_select-&gt;success" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="652.18,2156.7492,658.3343,2149.0599,653.4497,2151.9131,650.5965,2147.0285,652.18,2156.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="678" y="2123.4876">CONTINUE and subnet set</text><!--MD5=[48d8edc0219dd4d7c3847b4159c280ef]
link subnet4_select to no_subnet--><path d="M853.62,2080.3192 C852.99,2089.1692 852.31,2100.1092 852,2109.9192 C851.56,2123.8292 852.26,2139.4292 853.1,2151.7492 " fill="none" id="subnet4_select-&gt;no_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="853.47,2156.8092,856.8167,2147.5464,853.1127,2151.822,848.8372,2148.118,853.47,2156.8092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="138" x="853" y="2123.4876">SKIP or subnet not set</text><!--MD5=[f590b573e48b5dfdcd1774729941f83a]
link subnet4_select to drop--><path d="M938.2,2080.0192 C958.54,2086.9392 979.25,2096.5792 996,2109.9192 C1009.78,2120.8892 1019.89,2138.1592 1026.36,2151.9892 " fill="none" id="subnet4_select-&gt;drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1028.58,2156.9192,1028.5229,2147.0705,1026.5228,2152.362,1021.2313,2150.362,1028.58,2156.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1012" y="2123.4876">DROP</text><!--MD5=[ac540f98c992b562d25c0989cf3dd0fa]
@startuml

title DHCPv4 subnet selection (Kea 1.8.0)

agent "Entry point" as entry

agent "Try RAI link select" as rai_link_select

agent "Try subnet selection option" as subnet_select

rectangle "Relayed" as relayed {
 agent "Relay address matches subnet" as relay_subnet
 agent "Relay address matches shared network" as relay_network
 agent "Check client class" as relay_class
}

rectangle "Set address for lookup" as set_address {
 agent "Set relay address" as relay_address
 agent "Set client address" as client_address
 agent "Set source address" as source_address
}

rectangle "Try incoming interface" as interface {
 agent "Interface matches subnet" as interface_subnet
 agent "Interface matches shared network" as interface_network
 agent "Check client class" as interface_class
 agent "Set interface address" as interface_address
}

rectangle "Try address" as address {
 agent "Check subnet prefix" as inRange
 agent "Check client class" as address_class
}

agent "Found a subnet" as found

agent "Found no subnet" as not_found

agent "Callout subnet4_select" as subnet4_select

agent "Return a subnet" as success

agent "Return no subnet" as no_subnet

agent "Drop query" as drop

entry - -> rai_link_select
rai_link_select - -> subnet_select
subnet_select - -> relayed : relayed
subnet_select - -> set_address : not relayed
relayed - -> relay_subnet
relay_subnet - -> relay_network : no match
relay_subnet - -> relay_class : match
relay_network - -> set_address : no match
relay_network - -> relay_class : match
relay_class - - -> found : compatible
relay_class - -> set_address : not compatible
set_address - -> relay_address : try the relay address
relay_address -r-> client_address : has no relay address
client_address -r-> source_address : has no client address
source_address - -> interface_subnet : no suitable address
relay_address - -> inRange : has a relay address
client_address - -> inRange : has a client address
source_address - -> inRange : has source address and use unicast
interface_subnet - - -> not_found : no interface
interface_subnet - -> interface_class : match
interface_subnet - -> interface_network : no match
interface_network - -> interface_class : march
interface_network - - -> not_found : no match
interface_class - - -> found : compatible
interface_class - - -> interface_address : not compatible
interface_address - -> inRange : has an interface address
interface_address - - -> not_found : no interface address
inRange - - -> address_class : match
inRange - - -> not_found : no match
address_class - - -> found : compatible
address_class - - -> not_found : not compatible
found - -> subnet4_select
not_found - -> subnet4_select
found -[hidden]> not_found
subnet4_select - -> success : CONTINUE and subnet set
subnet4_select - -> no_subnet : SKIP or subnet not set
subnet4_select - -> drop : DROP

@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>