<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<div>Hi Razvan,</div>
<div><br>
</div>
<div><br>
</div>
<div>I run the API and now I got the return code “0” which according to the document should mean success. However, when I checked the kea-dhcp6.conf file on the target host, I still see the original configuration. I restarted the kea-dhcp6 service, but the
configuration still hasn’t changed. I also tested the “subnet6-del” command and observed the same behaviors. </div>
<div><br>
</div>
<div>Did I miss something else? </div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "subnet6-update",
<b>"service": ["dhcp6"]</b>, "arguments": {"subnet6": [{"id": 1,"subnet": "fd74:5656:15e2:20::/64"}] } }' http://192.168.100.112:<b>8000</b>/ -s | jq</div>
<div>[</div>
<div> {</div>
<div> "arguments": {</div>
<div> "subnets": [</div>
<div> {</div>
<div> "id": 1,</div>
<div> "subnet": "fd74:5656:15e2:20::/64"</div>
<div> }</div>
<div> ]</div>
<div> },</div>
<div><b> "result": 0,</b></div>
<div><b> "text": "IPv6 subnet updated"</b></div>
<div> }</div>
<div>]</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "subnet6-del", "service": ["dhcp6"],"arguments": {"id": 1} }' http://192.168.100.112:<b>8000</b>/ -s | jq</div>
<div>[</div>
<div> {</div>
<div> "arguments": {</div>
<div> "subnets": [</div>
<div> {</div>
<div> "id": 1,</div>
<div> "subnet": "fd74:5656:15e2:10::/64"</div>
<div> }</div>
<div> ]</div>
<div> },</div>
<div><b> "result": 0,</b></div>
<div><b> "text": "IPv6 subnet fd74:5656:15e2:10::/64 (id 1) deleted"</b></div>
<div> }</div>
<div>]</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div># Finally, we list the subnets from which we will be leasing addresses.</div>
<div> "subnet6": [</div>
<div> {</div>
<div> "id": 1,</div>
<div> "subnet": "fd74:5656:15e2:10::/64",</div>
<div> "pools": [</div>
<div> {</div>
<div> "pool": "fd74:5656:15e2:10::200-fd74:5656:15e2:10::9999"</div>
<div> }</div>
<div> ],</div>
<div> "interface": "ens18"</div>
<div> }</div>
<div> ],</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
<blockquote type="cite">
<div>On Apr 10, 2025, at 9:22 AM, Razvan Becheriu <razvan@isc.org> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
<div>In this file you can find the CA endpoint : address and port.</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
Please use these for commands.</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
Regards,</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;" data-attr="forced_root_block_attrs">
Razvan</div>
<div id="signature-content-no-signature" data-marker="__SIG_PRE__"></div>
<div> </div>
<div>
<div id="OLK_SRC_BODY_SECTION">
<blockquote style="margin: 0 0 0 .8em; border-left: 1px #ccc solid; padding-left: 1em;">
<hr id="MESSAGE_DATA_MARKER">
<strong>From: </strong>Razvan <razvan@isc.org><br>
<strong>To: </strong>Kea <kea-users@lists.isc.org><br>
<strong>Cc: </strong>Kea <kea-users@lists.isc.org><br>
<strong>Date: </strong>Thursday, 10 April 2025 4:08 PM EEST<br>
<strong>Subject: </strong>Re: [Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 2.7.7<br>
<br>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">
<div>can you please attach/paste the content of</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;"> </div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">/etc/kea/kea-ctrl-agent.conf</div>
<div id="signature-content-no-signature"></div>
<div> </div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;"> </div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">Thank you,</div>
<div style="font-size: 12pt; font-family: arial, helvetica, sans-serif;">Razvan</div>
<div>
<div id="OLK_SRC_BODY_SECTION">
<blockquote style="margin: 0 0 0 0.8em; border-left: 1px #ccc solid; padding-left: 1em;">
<hr id="MESSAGE_DATA_MARKER">
<strong>From: </strong>tachibanashita <tachibanashita@outlook.com><br>
<strong>To: </strong>Kea <kea-users@lists.isc.org><br>
<strong>Date: </strong>Thursday, 10 April 2025 3:53 PM EEST<br>
<strong>Subject: </strong>Re: [Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 2.7.7<br>
<br>
Hi Raven,
<div> </div>
<div>Thank you for your response! I run the curl command from my laptop which is in the same LAN as both kea hosts, both have the control-agent running. I just tried to put standby node kea02 with .112 IP in “in-maintenance” mode and tried to send API again,
but still got the same error. </div>
<div>
<div> </div>
<div> </div>
<div>
<div> </div>
<div>
<div>systemctl status kea-ctrl-agent.service</div>
<div>● kea-ctrl-agent.service - Kea Control Agent</div>
<div> Loaded: loaded (/usr/lib/systemd/system/kea-ctrl-agent.service; enabled; vendor preset: disabled)</div>
<div> <strong>Active: active (running) since Tue 2025-04-08 21:04:55 EDT; 1 day 11h ago</strong></div>
<div> Docs: man:kea-ctrl-agent(8)</div>
<div> Main PID: 1178 (kea-ctrl-agent)</div>
<div> Tasks: 1 (limit: 11016)</div>
<div> Memory: 8.1M</div>
<div> CGroup: /system.slice/kea-ctrl-agent.service</div>
<div> └─1178 /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf</div>
</div>
<div> </div>
<div>
<div>● kea-ctrl-agent.service - Kea Control Agent</div>
<div> Loaded: loaded (/usr/lib/systemd/system/kea-ctrl-agent.service; enabled; vendor preset: disabled)</div>
<div> <strong>Active: active (running) since Tue 2025-04-08 21:12:34 EDT; 1 day 11h ago</strong></div>
<div> Docs: man:kea-ctrl-agent(8)</div>
<div> Main PID: 2523 (kea-ctrl-agent)</div>
<div> Tasks: 1 (limit: 11016)</div>
<div> Memory: 2.2M</div>
<div> CGroup: /system.slice/kea-ctrl-agent.service</div>
<div> └─2523 /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf</div>
</div>
<div> </div>
<div> </div>
<div>
<div>~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "status-get", "service": [ "dhcp6" ] }' http://192.168.100.111:8001/ -s | jq</div>
<div>[</div>
<div> {</div>
<div> "arguments": {</div>
<div> "dhcp-state": {</div>
<div> "disabled-by-db-connection": [],</div>
<div> "disabled-by-local-command": [],</div>
<div> "disabled-by-remote-command": [],</div>
<div> "disabled-by-user": false,</div>
<div> "globally-disabled": false</div>
<div> },</div>
<div> "extended-info-tables": false,</div>
<div> "high-availability": [</div>
<div> {</div>
<div> "ha-mode": "hot-standby",</div>
<div> "ha-servers": {</div>
<div> "local": {</div>
<div> "role": "primary",</div>
<div> "scopes": [</div>
<div> "kea01"</div>
<div> ],</div>
<div> <strong>"server-name": "kea01",</strong></div>
<div> <strong>"state": "partner-in-maintenance",</strong></div>
<div> "system-time": "2025-04-10 12:46:22"</div>
<div> },</div>
<div> "remote": {</div>
<div> "age": 1,</div>
<div> "analyzed-packets": 0,</div>
<div> "clock-skew": 0,</div>
<div> "communication-interrupted": false,</div>
<div> "connecting-clients": 0,</div>
<div> "in-touch": true,</div>
<div> "last-scopes": [],</div>
<div> <strong> "last-state": "in-maintenance",</strong></div>
<div> "role": "standby",</div>
<div> "<strong>server-name": "kea02",</strong></div>
<div> "system-time": "2025-04-10 12:46:22",</div>
<div> "unacked-clients": 0,</div>
<div> "unacked-clients-left": 0</div>
<div> }</div>
<div> }</div>
<div> }</div>
<div> ],</div>
<div> "multi-threading-enabled": true,</div>
<div> "packet-queue-size": 64,</div>
<div> "packet-queue-statistics": [</div>
<div> 1.0,</div>
<div> 0.999629,</div>
<div> 0.546155</div>
<div> ],</div>
<div> "pid": 3342,</div>
<div> "reload": 124098,</div>
<div> "sockets": {</div>
<div> "status": "ready"</div>
<div> },</div>
<div> "thread-pool-size": 4,</div>
<div> "uptime": 124098</div>
<div> },</div>
<div> "result": 0</div>
<div> }</div>
<div>]</div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "subnet6-del", "arguments": {"id": 1} }' http://192.168.100.112:8001/ -s | jq</div>
<div>[</div>
<div> {</div>
<div> "result": 1,</div>
<div> "text": "invalid thread pool state change to paused performed by worker thread"</div>
<div> }</div>
<div>]</div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "subnet6-del", "arguments": {"id": 1} }' http://192.168.100.111:8001/ -s | jq</div>
<div>[</div>
<div> {</div>
<div> "result": 1,</div>
<div> "text": "invalid thread pool state change to paused performed by worker thread"</div>
<div> }</div>
<div>]</div>
</div>
<div> </div>
<div> </div>
<div> </div>
<div><br>
<blockquote>
<div>On Apr 9, 2025, at 11:40 PM, Razvan Becheriu <razvan@isc.org> wrote:</div>
<div>
<div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;">
<div>Hi,</div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;"> </div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;">I think you are sending the command to the HA endpoint. That is reserved for HA commands.</div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;"> </div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;">Please use the control channel endpoint or CA endpoint instead.</div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;"> </div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;">Regards,</div>
<div style="font-size: 12pt; font-family: 'arial' , 'helvetica' , sans-serif;">Razvan</div>
<div id="signature-content-no-signature"></div>
<div> </div>
<div>
<div id="OLK_SRC_BODY_SECTION">
<div id="OLK_SRC_BODY_SECTION">
<blockquote style="margin: 0 0 0 0.8em; border-left: 1px #ccc solid; padding-left: 1em;">
<hr id="MESSAGE_DATA_MARKER">
<strong>From: </strong>tachibanashita <tachibanashita@outlook.com><br>
<strong>To: </strong>kea-users <kea-users@lists.isc.org><br>
<strong>Date: </strong>Wednesday, 9 April 2025 9:28 PM EEST<br>
<strong>Subject: </strong>[Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 2.7.7<br>
<br>
Greetings,
<div><br>
<div> </div>
<div>I have upgraded my kea lab from 2.6.1 to 2.7.7 and installed the package for hooks. Now I am testing the
<a href="http://libdhcp_subnet_cmds.so/" target="_blank" rel="noopener noreferrer">
libdhcp_subnet_cmds.so</a> library. </div>
<div> </div>
<div>But I found that I could only run those status check commands successfully, but I am not able to modify any configurations as you can see the examples below. It happened to all the commands which could modify the configuration.</div>
<div> </div>
<div>I adjusted the format of my arguments to match the example in your document, but it didn’t work. I added the -u option to curl as the root user, but still not working. Instead of running the curl command remotely, I run it in the same Linux host but still
the same. I tried to Google this error but couldn’t find any match including your kea message documentation. I run the curl command against both primary and standby nodes, but still not working.</div>
<div> </div>
<div>When I used -v mode for curl command, I can see it does return code 200, so I don’t think it’s other issue than kea hook function itself. </div>
<div> </div>
<div>Can you let me know if I missed anything? </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div>Successful tests:</div>
<div> </div>
<div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "<strong>subnet6-list</strong>" }' http://192.168.100.111:8001/ -s | jq</div>
<div><span style="color: #77bb41;">[</span></div>
<div><span style="color: #77bb41;"> {</span></div>
<div><span style="color: #77bb41;"> "arguments": {</span></div>
<div><span style="color: #77bb41;"> "subnets": [</span></div>
<div><span style="color: #77bb41;"> {</span></div>
<div><span style="color: #77bb41;"> "id": 1,</span></div>
<div><span style="color: #77bb41;"> "subnet": "ff12:5656:15e2:10::/64"</span></div>
<div><span style="color: #77bb41;"> }</span></div>
<div><span style="color: #77bb41;"> ]</span></div>
<div><span style="color: #77bb41;"> },</span></div>
<div><span style="color: #77bb41;"> "result": 0,</span></div>
<div><span style="color: #77bb41;"> "text": "1 IPv6 subnet found"</span></div>
<div><span style="color: #77bb41;"> }</span></div>
<div><span style="color: #77bb41;">]</span></div>
</div>
<div> </div>
<div>Unsuccessful tests:</div>
<div> </div>
<div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "<strong>subnet6-del</strong>", "arguments": {"id": 1} }' http://192.168.100.111:8001/ -s | jq</div>
<div><span style="color: #ff2600;">[</span></div>
<div><span style="color: #ff2600;"> {</span></div>
<div><span style="color: #ff2600;"> "result": 1,</span></div>
<div><span style="color: #ff2600;"> "text": "invalid thread pool state change to paused performed by worker thread"</span></div>
<div><span style="color: #ff2600;"> }</span></div>
<div><span style="color: #ff2600;">]</span></div>
</div>
<div> </div>
<div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "<strong>subnet6-add</strong>", "arguments": {"subnet6": [{"id": 2,"subnet": "ff12:5656:15e2:10::/64"}] } }' http://192.168.100.111:8001/ -s | jq</div>
<div><span style="color: #ff2600;">[</span></div>
<div><span style="color: #ff2600;"> {</span></div>
<div><span style="color: #ff2600;"> "result": 1,</span></div>
<div><span style="color: #ff2600;"> "text": "invalid thread pool state change to paused performed by worker thread"</span></div>
<div><span style="color: #ff2600;"> }</span></div>
<div><span style="color: #ff2600;">]</span></div>
<div>➜ ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": "<strong>subnet6-update</strong>", "arguments": {"subnet6": [{"id": 1,"subnet": "ff12:5656:15e2:20::/64"}] } }' http://192.168.100.111:8001/ -s | jq</div>
<div><span style="color: #ff2600;">[</span></div>
<div><span style="color: #ff2600;"> {</span></div>
<div><span style="color: #ff2600;"> "result": 1,</span></div>
<div><span style="color: #ff2600;"> "text": "invalid thread pool state change to paused performed by worker thread"</span></div>
<div><span style="color: #ff2600;"> }</span></div>
<div><span style="color: #ff2600;">]</span></div>
</div>
<div><span style="color: #ff2600;"> </span></div>
<div>Verbose mode:</div>
<div>
<div>➜ ~ curl -v -X POST -H "Content-Type: application/json" -d '{ "command": "subnet6-update", "arguments": {"id": 1} }' http://192.168.100.112:8001/ -s | jq</div>
<div>* Trying 192.168.100.112:8001...</div>
<div>* Connected to 192.168.100.112 (192.168.100.112) port 8001</div>
<div>> POST / HTTP/1.1</div>
<div>> Host: 192.168.100.112:8001</div>
<div>> User-Agent: curl/8.7.1</div>
<div>> Accept: */*</div>
<div>> Content-Type: application/json</div>
<div>> Content-Length: 56</div>
<div>></div>
<div>} [56 bytes data]</div>
<div>* upload completely sent off: 56 bytes</div>
<div><strong>< HTTP/1.1 200 OK</strong></div>
<div>< Content-Length: 100</div>
<div>< Content-Type: application/json</div>
<div>< Date: Wed, 09 Apr 2025 18:21:37 GMT</div>
<div><</div>
<div>{ [100 bytes data]</div>
<div>* Connection #0 to host 192.168.100.112 left intact</div>
<div>[</div>
<div> {</div>
<div> "result": 1,</div>
<div> "text": "invalid thread pool state change to paused performed by worker thread"</div>
<div> }</div>
<div>]</div>
</div>
<div> </div>
<div> </div>
<div> </div>
<div>Best Regards,</div>
<div>Yu</div>
<div> </div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
-- <br>
ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.<br>
<br>
To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.<br>
<br>
Kea-users mailing list<br>
Kea-users@lists.isc.org<br>
https://lists.isc.org/mailman/listinfo/kea-users</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
-- <br>
ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.<br>
<br>
To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.<br>
<br>
Kea-users mailing list<br>
Kea-users@lists.isc.org<br>
https://lists.isc.org/mailman/listinfo/kea-users<br>
</div>
</blockquote>
</div>
<br>
</body>
</html>