<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">You can make global reservations:<br><a href="https://kea.readthedocs.io/en/stable/arm/hooks.html#std-isccmd-reservation-add">https://kea.readthedocs.io/en/stable/arm/hooks.html#std-isccmd-reservation-add</a><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">Quote:<br>"The <code class="gmail-docutils gmail-literal gmail-notranslate" style="font-family:monospace"><span class="gmail-pre" style="font-family:monospace">subnet-id</span></code> is mandatory. Use a
value of zero (0) to add a global reservation, or the ID of the subnet
to which the reservation should be added."<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">It is important to enable global reservations in config:<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">This is what works for me:<br> "reservations-global": true,<br> "reservations-in-subnet": true,<br><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">If I'm not mistaken "reservations-global" is disabled by default:<br><a href="https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#global-reservations-in-dhcpv4">https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#global-reservations-in-dhcpv4</a><br><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;font-size:small">Either you add record to host table manually (remembering how mac is encoded in db) or with libdhcp_host_cmds.so just call API:<br><pre style="font-family:monospace"><span class="gmail-p" style="font-family:monospace">{</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-nt" style="font-family:monospace">"command"</span><span class="gmail-p" style="font-family:monospace">:</span><span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-s2" style="font-family:monospace">"reservation-add"</span><span class="gmail-p" style="font-family:monospace">,</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-nt" style="font-family:monospace">"arguments"</span><span class="gmail-p" style="font-family:monospace">:</span><span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-p" style="font-family:monospace">{</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-nt" style="font-family:monospace">"reservation"</span><span class="gmail-p" style="font-family:monospace">:</span><span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-p" style="font-family:monospace">{</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-nt" style="font-family:monospace">"subnet-id"</span><span class="gmail-p" style="font-family:monospace">:</span><span class="gmail-w" style="font-family:monospace"> 0</span><span class="gmail-p" style="font-family:monospace">,</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-nt" style="font-family:monospace">"hw-address"</span><span class="gmail-p" style="font-family:monospace">:</span><span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-s2" style="font-family:monospace">"1a:1b:1c:1d:1e:1f",<br> </span><span class="gmail-w" style="font-family:monospace">"boot-file-name": </span>"modemcfg.bin"
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-p" style="font-family:monospace">}</span>
<span class="gmail-w" style="font-family:monospace"> </span><span class="gmail-p" style="font-family:monospace">}</span>
<span class="gmail-p" style="font-family:monospace">}<br></span></pre><pre style="font-family:monospace">Regards,<br></pre><pre style="font-family:monospace">Marcin</pre></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">wt., 9 gru 2025 o 18:49 Skyler Blumer <<a href="mailto:skyler.blumer@zitomedia.com">skyler.blumer@zitomedia.com</a>> napisał(a):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<p>Are you saying that you're making static host reservations in a
DB, and are they global reservations? From what I'm seeing you can
only make reservations at the subnet level in 3.0.</p>
<div>On 12/8/25 1:55 PM, Marcin Jurczuk
wrote:<br>
</div>
<blockquote type="cite">
<div dir="auto">Hi,</div>
<div dir="auto">Please look into historical thread past month from
myself. Been there done that. I’ve tried for exactly the same
reason for cable modem provisioning. </div>
<div dir="auto">As of today flex option only sets “real” dhcp
options and can’t set field in dhcp header. </div>
<div dir="auto">I’ve end up with cross db syncing by adding
records to hosts table with db host backend. This table has
column named dhcp4_boot_filename which is exactly that field.
Modems work with that. </div>
<div dir="auto"><br>
</div>
<div dir="auto">Regards </div>
<div><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Dec 8, 2025 at 19:50
Skyler Blumer <<a href="mailto:skyler.blumer@zitomedia.com" target="_blank">skyler.blumer@zitomedia.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I'm
Currently testing with kea 3.0. My end goal is to
dynamically set <br>
the boot-file-name (legacy BOOTP FNAME field not DHCP option
67) to the <br>
CHADDR sent in the request.<br>
<br>
Using the below it will set option 67 to
cm/<CHADDR>.bin<br>
<br>
{ "library": "libdhcp_flex_option.so",<br>
<br>
"parameters": {<br>
"options": [<br>
{<br>
"name": "boot-file-name",<br>
"supersede":
"lcase(concat('cm/', <br>
concat(relay4[2].hex, '.bin')))",<br>
"csv-format": false,<br>
"client-class": "docsis"<br>
}<br>
<br>
However when I try to do this in a subnet or class the FNAME
is set to a <br>
string literal "'cm/', concat(relay4[2].hex, '.bin'"<br>
<br>
"boot-file-name": "lcase(concat('cm/', concat(relay4[2].hex,
'.bin')))"<br>
<br>
Is there a way to do this for the legacy FNAME field?<br>
<br>
-- <br>
ISC funds the development of this software with paid support
subscriptions. Contact us at <a href="https://www.isc.org/contact/" rel="noreferrer" target="_blank">https://www.isc.org/contact/</a>
for more information.<br>
<br>
To unsubscribe visit <a href="https://lists.isc.org/mailman/listinfo/kea-users.Kea-users@lists.isc.org" rel="noreferrer" target="_blank">https://lists.isc.org/mailman/listinfo/kea-users.<br>
Kea-users@lists.isc.org</a><br>
</blockquote>
</div>
</div>
<br>
<fieldset></fieldset>
</blockquote>
</div>
</blockquote></div>