Kea 3.3.4
cb_cmds_dhcp4.cc
Go to the documentation of this file.
1// Copyright (C) 2026 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#include <config.h>
8
11#include <hooks/hooks.h>
12
14#include <cb_cmds/cb_parsers.h>
15
16using namespace isc::config;
17using namespace isc::data;
18using namespace isc::dhcp;
19using namespace isc::db;
20using namespace isc::hooks;
21
22namespace isc {
23namespace cb {
24
26 { "compatibility.ignore-dhcp-server-identifier", Element::boolean },
27 { "compatibility.ignore-rai-link-selection", Element::boolean },
28 { "compatibility.lenient-option-parsing", Element::boolean },
29 { "compatibility.exclude-first-last-24", Element::boolean },
30 { "dhcp-ddns.enable-updates", Element::boolean },
31 { "dhcp-ddns.max-queue-size", Element::integer },
32 { "dhcp-ddns.ncr-format", Element::string },
33 { "dhcp-ddns.ncr-protocol", Element::string },
34 { "dhcp-ddns.sender-ip", Element::string },
35 { "dhcp-ddns.sender-port", Element::integer },
36 { "dhcp-ddns.server-ip", Element::string },
37 { "dhcp-ddns.server-port", Element::integer },
38 { "expired-leases-processing.flush-reclaimed-timer-wait-time", Element::integer },
39 { "expired-leases-processing.hold-reclaimed-time", Element::integer },
40 { "expired-leases-processing.max-reclaim-leases", Element::integer },
41 { "expired-leases-processing.max-reclaim-time", Element::integer },
42 { "expired-leases-processing.reclaim-timer-wait-time", Element::integer },
43 { "expired-leases-processing.unwarned-reclaim-cycles", Element::integer },
44 { "multi-threading.enable-multi-threading", Element::boolean },
45 { "multi-threading.thread-pool-size", Element::integer },
46 { "multi-threading.packet-queue-size", Element::integer },
47 { "sanity-checks.lease-checks", Element::string },
48 { "sanity-checks.extended-info-checks", Element::string },
49 { "dhcp-queue-control.enable-queue", Element::boolean },
50 { "dhcp-queue-control.queue-type", Element::string },
51 { "dhcp-queue-control.capacity", Element::integer },
52 /* not yet supported
53 { "interfaces-config.dhcp-socket-type", Element::string },
54 { "interfaces-config.outbound-interface", Element::string },
55 { "interfaces-config.re-detect", Element::boolean },
56 { "interfaces-config.interfaces", Element::list },
57 { "interfaces-config.service-sockets-require-all", Element::boolean },
58 { "interfaces-config.service-sockets-max-retries", Element::integer },
59 { "interfaces-config.service-sockets-retry-wait-time", Element::integer },
60 { "lease-database.lfc-interval", Element::integer },
61 { "lease-database.max-row-errors", Element::integer },
62 { "lease-database.name", Element::string },
63 { "lease-database.persist", Element::boolean },
64 { "lease-database.type", Element::string },
65 { "lease-database.host", Element::string },
66 { "lease-database.password", Element::string },
67 { "lease-database.port", Element::integer },
68 { "lease-database.user", Element::string },
69 { "lease-database.readonly", Element::boolean },
70 { "lease-database.trust-anchor", Element::string },
71 { "lease-database.cert-file", Element::string },
72 { "lease-database.key-file", Element::string },
73 { "lease-database.ssl-mode", Element::string },
74 { "lease-database.cipher-list", Element::string },
75 { "lease-database.reconnect-wait-time", Element::integer },
76 { "lease-database.max-reconnect-tries", Element::integer },
77 { "lease-database.on-fail", Element::string },
78 { "lease-database.retry-on-startup", Element::boolean },
79 { "lease-database.connect-timeout", Element::integer },
80 { "lease-database.read-timeout", Element::integer },
81 { "lease-database.write-timeout", Element::integer },
82 { "lease-database.tcp-user-timeout", Element::integer },
83 { "config-control.config-fetch-wait-time", Element::integer },
84 */
85};
86
88ConfigCmdsDhcp4Impl::initGlobalContainersParameters() {
90 // Add supported top level map parameters.
93 // Remove unsupported top level list parameters.
94 auto globals_copy = globals;
95 for (auto const& key : globals_copy) {
96 if (key.second == Element::list &&
99 globals.erase(key.first);
100 }
101 }
102
103 return (globals);
104}
105
107ConfigCmdsDhcp4Impl::getGlobalContainersParameters() {
108 static SimpleKeywords parameters = ConfigCmdsDhcp4Impl::initGlobalContainersParameters();
109 return (parameters);
110}
111
112void
114 auto create_update_fun = [] (const BackendSelector& backend_selector,
115 const ServerSelector& server_selector,
116 const StampedValuePtr& stamped_value) {
118 createUpdateGlobalParameter4(backend_selector, server_selector,
119 stamped_value);
120 };
121 auto const& globals = ConfigCmdsDhcp4Impl::getGlobalContainersParameters();
122 setGlobalParameter(callout_handle, globals, SimpleParser4::GLOBAL4_LIST_PARAMETER_TYPES, AF_INET, create_update_fun);
123}
124
125void
127 auto delete_fun = [] (const BackendSelector& backend_selector,
128 const ServerSelector& server_selector,
129 const std::string& name) {
130 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
131 deleteGlobalParameter4(backend_selector, server_selector, name));
132 };
133 auto const& globals = ConfigCmdsDhcp4Impl::getGlobalContainersParameters();
134 delGlobalParameter(callout_handle, globals, AF_INET, delete_fun);
135}
136
137void
139 auto get_fun = [] (const BackendSelector& backend_selector,
140 const ServerSelector& server_selector,
141 const std::string& name) {
142 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
143 getGlobalParameter4(backend_selector, server_selector, name));
144 };
145 auto const& globals = ConfigCmdsDhcp4Impl::getGlobalContainersParameters();
146 getGlobalParameter(callout_handle, globals, AF_INET, get_fun);
147}
148
149void
151 auto get_all_fun = [] (const BackendSelector& backend_selector,
152 const ServerSelector& server_selector) {
153 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
154 getAllGlobalParameters4(backend_selector, server_selector));
155 };
156 auto const& globals = ConfigCmdsDhcp4Impl::getGlobalContainersParameters();
157 getAllGlobalParameters(callout_handle, globals, AF_INET, get_all_fun);
158}
159
160void
162 auto create_update_fun = [] (const BackendSelector& backend_selector,
163 const ServerSelector& server_selector,
164 const Subnet4Ptr& subnet) {
166 createUpdateSubnet4(backend_selector, server_selector, subnet);
167 };
169 AF_INET,
170 create_update_fun);
171}
172
173void
175 auto delete_fun = [] (const BackendSelector& backend_selector,
176 const ServerSelector& server_selector,
177 const SubnetID& subnet_id) {
178 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
179 deleteSubnet4(backend_selector, server_selector, subnet_id));
180 };
181 delSubnetId(callout_handle, AF_INET, delete_fun);
182}
183
184void
186 auto delete_fun = [] (const BackendSelector& backend_selector,
187 const ServerSelector& server_selector,
188 const std::string& subnet_prefix) {
189 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
190 deleteSubnet4(backend_selector, server_selector, subnet_prefix));
191 };
192 delSubnetPrefix(callout_handle, AF_INET, delete_fun);
193}
194
195void
197 auto get_fun = [] (const BackendSelector& backend_selector,
198 const ServerSelector& server_selector,
199 const SubnetID& subnet_id) {
200 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
201 getSubnet4(backend_selector, server_selector, subnet_id));
202 };
203 getSubnetId<Subnet4Ptr>(callout_handle, AF_INET, get_fun);
204}
205
206void
208 auto get_fun = [] (const BackendSelector& backend_selector,
209 const ServerSelector& server_selector,
210 const std::string& subnet_prefix) {
211 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
212 getSubnet4(backend_selector, server_selector, subnet_prefix));
213 };
214 getSubnetPrefix<Subnet4Ptr>(callout_handle, AF_INET, get_fun);
215}
216
217void
219 auto get_all_fun = [] (const BackendSelector& backend_selector,
220 const ServerSelector& server_selector) {
221 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
222 getAllSubnets4(backend_selector, server_selector));
223 };
224 listSubnets<Subnet4Collection>(callout_handle, AF_INET, get_all_fun);
225}
226
227void
229 auto create_update_fun = [] (const BackendSelector& backend_selector,
230 const ServerSelector& server_selector,
231 const SharedNetwork4Ptr& shared_network) {
233 createUpdateSharedNetwork4(backend_selector, server_selector, shared_network);
234 };
236 (callout_handle, AF_INET, create_update_fun);
237}
238
239void
241 auto delete_fun = [] (const BackendSelector& backend_selector,
242 const ServerSelector& server_selector,
243 const std::string& name) {
244 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
245 deleteSharedNetwork4(backend_selector, server_selector, name));
246 };
247 auto delete_all_fun = [] (const BackendSelector& backend_selector,
248 const ServerSelector& server_selector,
249 const std::string& name) {
251 deleteSharedNetworkSubnets4(backend_selector, server_selector, name);
252 };
253 delSharedNetwork(callout_handle, AF_INET, delete_fun, delete_all_fun);
254}
255
256void
258 auto get_fun = [] (const BackendSelector& backend_selector,
259 const ServerSelector& server_selector,
260 const std::string& name) {
261 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
262 getSharedNetwork4(backend_selector, server_selector, name));
263
264 };
265 auto get_all_fun = [] (const BackendSelector& backend_selector,
266 const ServerSelector& server_selector,
267 const std::string& name) {
268 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
269 getSharedNetworkSubnets4(backend_selector, server_selector, name));
270 };
272 (callout_handle, AF_INET, get_fun, get_all_fun);
273}
274
275void
277 auto get_all_fun = [] (const BackendSelector& backend_selector,
278 const ServerSelector& server_selector) {
279 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
280 getAllSharedNetworks4(backend_selector, server_selector));
281 };
283 (callout_handle, AF_INET, get_all_fun);
284}
285
286void
288 auto create_update_fun = [] (const BackendSelector& backend_selector,
289 const ServerSelector& server_selector,
290 const ClientClassDefPtr& client_class,
291 const std::string& follow_class_name) {
293 createUpdateClientClass4(backend_selector, server_selector, client_class,
294 follow_class_name);
295 };
296 setClientClass(callout_handle, AF_INET, create_update_fun);
297}
298
299void
301 auto delete_fun = [] (const BackendSelector& backend_selector,
302 const ServerSelector& server_selector,
303 const std::string& name) {
304 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
305 deleteClientClass4(backend_selector, server_selector, name));
306 };
307 delClientClass(callout_handle, AF_INET, delete_fun);
308}
309
310void
312 auto get_fun = [] (const BackendSelector& backend_selector,
313 const ServerSelector& server_selector,
314 const std::string& name) {
315 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
316 getClientClass4(backend_selector, server_selector, name));
317
318 };
319 getClientClass(callout_handle, AF_INET, get_fun);
320}
321
322void
324 auto get_all_fun = [] (const BackendSelector& backend_selector,
325 const ServerSelector& server_selector) {
326 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
327 getAllClientClasses4(backend_selector, server_selector));
328 };
329 getAllClientClasses(callout_handle, AF_INET, get_all_fun);
330}
331
332void
334 auto create_update_fun = [] (const BackendSelector& backend_selector,
335 const ServerSelector& server_selector,
336 const OptionDefinitionPtr& option_def) {
338 createUpdateOptionDef4(backend_selector, server_selector, option_def);
339 };
340 setOptionDef(callout_handle, AF_INET, create_update_fun);
341}
342
343void
345 auto delete_fun = [] (const BackendSelector& backend_selector,
346 const ServerSelector& server_selector,
347 const uint16_t code,
348 const std::string& space,
349 bool force) {
350 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
351 deleteOptionDef4(backend_selector, server_selector,
352 code, space, force));
353 };
354 delOptionDef(callout_handle, AF_INET, delete_fun);
355}
356
357void
359 auto get_fun = [] (const BackendSelector& backend_selector,
360 const ServerSelector& server_selector,
361 const uint16_t code,
362 const std::string& space) {
363 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
364 getOptionDef4(backend_selector, server_selector,
365 code, space));
366 };
367 getOptionDef(callout_handle, AF_INET, get_fun);
368}
369
370void
372 auto get_all_fun = [] (const BackendSelector& backend_selector,
373 const ServerSelector& server_selector) {
374 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
375 getAllOptionDefs4(backend_selector, server_selector));
376
377 };
378 getAllOptionDefs(callout_handle, AF_INET, get_all_fun);
379}
380
381void
383 auto create_update_fun = [] (const BackendSelector& backend_selector,
384 const ServerSelector& server_selector,
385 OptionDescriptor option_descriptor) {
386 const OptionDescriptorPtr& option =
387 OptionDescriptorPtr(new OptionDescriptor(option_descriptor));
389 createUpdateOption4(backend_selector, server_selector, option);
390 };
391 setGlobalOption(callout_handle, AF_INET, create_update_fun);
392}
393
394void
396 auto delete_fun = [] (const BackendSelector& backend_selector,
397 const ServerSelector& server_selector,
398 const uint16_t code,
399 const std::string& space,
400 const ClientClassesPtr client_classes) {
401 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
402 deleteOption4(backend_selector, server_selector, code, space,
403 client_classes));
404 };
405 delGlobalOption(callout_handle, AF_INET, delete_fun);
406}
407
408void
410 auto get_fun = [] (const BackendSelector& backend_selector,
411 const ServerSelector& server_selector,
412 const uint16_t code,
413 const std::string& space,
414 const ClientClassesPtr client_classes) {
415 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
416 getOption4(backend_selector, server_selector, code, space,
417 client_classes));
418 };
419 getGlobalOption(callout_handle, AF_INET, get_fun);
420}
421
422void
424 auto get_all_fun = [] (const BackendSelector& backend_selector,
425 const ServerSelector& server_selector) {
426 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
427 getAllOptions4(backend_selector, server_selector));
428 };
429 getAllGlobalOptions(callout_handle, AF_INET, get_all_fun);
430}
431
432void
434 auto create_update_fun = [] (const BackendSelector& backend_selector,
435 const ServerPtr& server) {
437 createUpdateServer4(backend_selector, server);
438 };
439 setServer(callout_handle, AF_INET, create_update_fun);
440}
441
442void
444 auto delete_fun = [] (const BackendSelector& backend_selector,
445 const ServerTag& server_tag) {
446 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
447 deleteServer4(backend_selector, server_tag));
448 };
449 delServer(callout_handle, AF_INET, delete_fun);
450}
451
452void
454 auto get_fun = [] (const BackendSelector& backend_selector,
455 const ServerTag& server_tag) {
456 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
457 getServer4(backend_selector, server_tag));
458 };
459 getServer(callout_handle, AF_INET, get_fun);
460}
461
462void
464 auto get_all_fun = [] (const BackendSelector& backend_selector) {
465 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
466 getAllServers4(backend_selector));
467 };
468 getAllServers(callout_handle, AF_INET, get_all_fun);
469}
470
471void
473 auto create_update_fun = [] (const BackendSelector& backend_selector,
474 const ServerSelector& server_selector,
475 const std::string& shared_network_name,
476 OptionDescriptor option_descriptor) {
477 const OptionDescriptorPtr& option =
478 OptionDescriptorPtr(new OptionDescriptor(option_descriptor));
480 createUpdateOption4(backend_selector, server_selector,
481 shared_network_name, option);
482 };
483 setSharedNetworkOption(callout_handle, AF_INET, create_update_fun);
484}
485
486void
488 auto delete_fun = [] (const BackendSelector& backend_selector,
489 const ServerSelector& server_selector,
490 const std::string& shared_network_name,
491 const uint16_t code,
492 const std::string& space,
493 const ClientClassesPtr client_classes) {
494 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
495 deleteOption4(backend_selector, server_selector,
496 shared_network_name, code, space, client_classes));
497 };
498 delSharedNetworkOption(callout_handle, AF_INET, delete_fun);
499}
500
501void
503 auto create_update_fun = [] (const BackendSelector& backend_selector,
504 const ServerSelector& server_selector,
505 const SubnetID& subnet_id,
506 OptionDescriptor option_descriptor) {
507 const OptionDescriptorPtr& option =
508 OptionDescriptorPtr(new OptionDescriptor(option_descriptor));
510 createUpdateOption4(backend_selector, server_selector,
511 subnet_id, option);
512 };
513 setSubnetOption(callout_handle, AF_INET, create_update_fun);
514}
515
516void
518 auto delete_fun = [] (const BackendSelector& backend_selector,
519 const ServerSelector& server_selector,
520 const SubnetID& subnet_id,
521 const uint16_t code,
522 const std::string& space,
523 const ClientClassesPtr client_classes) {
524 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
525 deleteOption4(backend_selector, server_selector,
526 subnet_id, code, space, client_classes));
527 };
528 delSubnetOption(callout_handle, AF_INET, delete_fun);
529}
530
531void
533 auto create_update_fun = [] (const BackendSelector& backend_selector,
534 const ServerSelector& server_selector,
535 const asiolink::IOAddress& pool_start_address,
536 const asiolink::IOAddress& pool_end_address,
537 OptionDescriptor option_descriptor) {
538 const OptionDescriptorPtr& option =
539 OptionDescriptorPtr(new OptionDescriptor(option_descriptor));
541 createUpdateOption4(backend_selector, server_selector,
542 pool_start_address, pool_end_address,
543 option);
544 };
545 setPoolOption(callout_handle, AF_INET, create_update_fun);
546}
547
548void
550 auto delete_fun = [] (const BackendSelector& backend_selector,
551 const ServerSelector& server_selector,
552 const asiolink::IOAddress& pool_start_address,
553 const asiolink::IOAddress& pool_end_address,
554 const uint16_t code,
555 const std::string& space,
556 const ClientClassesPtr client_classes) {
557 return (ConfigBackendDHCPv4Mgr::instance().getPool()->
558 deleteOption4(backend_selector, server_selector,
559 pool_start_address, pool_end_address,
560 code, space, client_classes));
561 };
562 delPoolOption(callout_handle, AF_INET, delete_fun);
563}
564
565} // end of namespace isc::cb
566} // end of namespace isc
Parsers for a subset of an object specification, e.g.
@ integer
Definition data.h:153
@ boolean
Definition data.h:155
@ list
Definition data.h:159
@ string
Definition data.h:157
ConfigBackendPoolPtr getPool() const
Returns underlying config backend pool.
void delSharedNetworkOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-network-del command.
void getServer4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-server4-get command.
void setGlobalOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-global-set command.
void getAllOptionDefs4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option-def4-get-all command.
void delSharedNetwork4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-shared-network4-del command.
void setSubnet4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-set command.
void getAllGlobalOptions4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-global-get-all command.
void setPoolOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-pool-set command.
void delSubnetOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-subnet-del command.
void getGlobalParameter4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-global-parameter4-get command.
void getGlobalOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-global-get command.
void delOptionDef4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option-def4-del command.
void delPoolOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-pool-del command.
void setClientClass4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-class4-set command.
void delClientClass4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-class4-del command.
void getSubnet4Id(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-get-by-id command.
void setGlobalParameter4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-global-parameter4-set command.
void getAllGlobalParameters4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-global-parameter4-get-all command.
void getSharedNetwork4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-shared-network4-get command.
void setSharedNetwork4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-shared-network4-set command.
void getSubnet4Prefix(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-get-by-prefix command.
void delSubnet4Id(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-del-by-id command.
void listSharedNetworks4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-shared-network4-list command.
void delGlobalOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-global-del command.
void setSharedNetworkOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-network-set command.
static const data::SimpleKeywords GLOBAL4_MAP_PARAMETERS
Supported global maps parameters (scalars only).
void getAllServers4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-server4-get-all command.
void delServer4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-server4-del command.
void setServer4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-server4-set command.
void getOptionDef4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option-def4-get command.
void listSubnets4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-list command.
void getClientClass4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-class4-get command.
void delSubnet4Prefix(hooks::CalloutHandle &callout_handle)
Implements handler for remote-subnet4-del-by-prefix command.
void delGlobalParameter4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-global-parameter4-del command.
void getAllClientClasses4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-class4-get-all command.
void setOptionDef4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option-def4-set command.
void setSubnetOption4(hooks::CalloutHandle &callout_handle)
Implements handler for remote-option4-subnet-set command.
void setClientClass(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-class[46]-set command.
void getSubnetId(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-subnet[46]-get-by-id command.
void getGlobalOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-option[46]-global-get command.
void delPoolOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-option[46]-pool-del command.
void getClientClass(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-class[46]-get command.
void getSharedNetwork(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun, FunType2 get_all)
Implements handler for remote-shared-network[46]-get command.
void setSharedNetworkOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-option[46]-network-set command.
void setSubnetOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-option[46]-subnet-set command.
void getAllServers(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all_fun)
Implements handler for remote-server[46]-get-all command.
void setServer(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-server[46]-set command.
void delGlobalParameter(hooks::CalloutHandle &callout_handle, const data::SimpleKeywords &keywords, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-global-parameter[46]-del command.
void delSharedNetwork(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun, FunType2 delete_all_fun)
Implements handler for remote-shared-network[46]-del command.
void getGlobalParameter(hooks::CalloutHandle &callout_handle, const data::SimpleKeywords &keywords, const uint16_t address_family, FunType get_fun)
Implements handler for remote-global-parameter[46]-get command.
void getServer(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-server[46]-get command.
void delSubnetOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-option[46]-subnet-del command.
void getOptionDef(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-option-def[46]-get command.
void setGlobalOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-option[46]-global-set command.
void getAllGlobalParameters(hooks::CalloutHandle &callout_handle, const data::SimpleKeywords &keywords, const uint16_t address_family, FunType get_all_fun)
Implements handler for remote-global-parameter[46]-get-all command.
void delOptionDef(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-option-def[46]-del command.
void delSubnetPrefix(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-subnet[46]-del-by-prefix command.
void delSharedNetworkOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-option[46]-network-del command.
void delClientClass(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-class[46]-del command.
void getSubnetPrefix(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_fun)
Implements handler for remote-subnet[46]-get-by-prefix command.
void setPoolOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-option[46]-pool-set command.
void listSubnets(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all_fun)
Implements handler for remote-subnet[46]-list command.
void getAllClientClasses(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all)
Implements handler for remote-class[46]-get-all command.
void getAllOptionDefs(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all_fun)
Implements handler for remote-option-def[46]-get-all command.
void getAllGlobalOptions(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all_fun)
Implements handler for remote-option[46]-global-get-all command.
void delGlobalOption(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-option[46]-global-del command.
void delSubnetId(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-subnet[46]-del-by-id command.
void setSharedNetwork(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-shared-network[46]-set command.
void delServer(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType delete_fun)
Implements handler for remote-server[46]-del command.
void listSharedNetworks(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType get_all)
Implements handler for remote-shared-network[46]-list command.
void setSubnet(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-subnet[46]-set command.
void setGlobalParameter(hooks::CalloutHandle &callout_handle, const data::SimpleKeywords &keywords, const data::SimpleKeywords &list_keywords, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-global-parameter[46]-set command.
void setOptionDef(hooks::CalloutHandle &callout_handle, const uint16_t address_family, FunType create_update_fun)
Implements handler for remote-option-def[46]-set command.
Represents a server tag.
Definition server_tag.h:25
Config Backend selector.
Server selector for associating objects in a database with specific servers.
static ConfigBackendDHCPv4Mgr & instance()
Returns a sole instance of the ConfigBackendDHCPv4Mgr.
Option descriptor.
Definition cfg_option.h:50
static const isc::data::SimpleKeywords GLOBAL4_PARAMETERS
This table defines all global parameters in DHCPv4.
static const isc::data::SimpleKeywords GLOBAL4_LIST_PARAMETERS
static const isc::data::SimpleKeywords GLOBAL4_LIST_PARAMETER_TYPES
Per-packet callout handle.
boost::shared_ptr< StampedValue > StampedValuePtr
Pointer to the stamped value.
std::map< std::string, isc::data::Element::types > SimpleKeywords
This specifies all accepted keywords with their types.
boost::shared_ptr< Server > ServerPtr
Shared pointer to the Server class.
Definition server.h:22
boost::shared_ptr< Subnet4 > Subnet4Ptr
A pointer to a Subnet4 object.
Definition subnet.h:458
boost::shared_ptr< ClientClasses > ClientClassesPtr
Smart pointer to ClientClasses object.
Definition classify.h:304
boost::shared_ptr< ClientClassDef > ClientClassDefPtr
a pointer to an ClientClassDef
boost::shared_ptr< OptionDefinition > OptionDefinitionPtr
Pointer to option definition object.
boost::shared_ptr< OptionDescriptor > OptionDescriptorPtr
A pointer to option descriptor.
Definition cfg_option.h:39
uint32_t SubnetID
Defines unique IPv4 or IPv6 subnet identifier.
Definition subnet_id.h:25
boost::shared_ptr< SharedNetwork4 > SharedNetwork4Ptr
Pointer to SharedNetwork4 object.
Defines the logger used by the top-level component of kea-lfc.