1 // Copyright (C) 2019-2021 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 #ifndef CONFIG_BACKEND_POOL_DHCP6_H 8 #define CONFIG_BACKEND_POOL_DHCP6_H 9 10 #include <cc/server_tag.h> 11 #include <cc/stamped_value.h> 12 #include <config_backend/base_config_backend_pool.h> 13 #include <database/backend_selector.h> 14 #include <database/server_selector.h> 15 #include <dhcp/option.h> 16 #include <dhcp/option_definition.h> 17 #include <dhcpsrv/cfg_option.h> 18 #include <dhcpsrv/client_class_def.h> 19 #include <dhcpsrv/config_backend_dhcp6.h> 20 #include <dhcpsrv/shared_network.h> 21 #include <dhcpsrv/subnet.h> 22 #include <boost/date_time/posix_time/ptime.hpp> 23 #include <string> 24 25 namespace isc { 26 namespace dhcp { 27 28 /// @brief Implementation of the Configuration Backend Pool for DHCPv6. 29 /// 30 /// All POSIX times specified in the methods belonging to this 31 /// class must be local times. 32 class ConfigBackendPoolDHCPv6 : public cb::BaseConfigBackendPool<ConfigBackendDHCPv6> { 33 public: 34 35 /// @brief Retrieves a single subnet by subnet_prefix. 36 /// 37 /// @param backend_selector Backend selector. 38 /// @param server_selector Server selector. 39 /// @param subnet_prefix Prefix of the subnet to be retrieved. 40 /// @return Pointer to the retrieved subnet or NULL if not found. 41 virtual Subnet6Ptr 42 getSubnet6(const db::BackendSelector& backend_selector, 43 const db::ServerSelector& server_selector, 44 const std::string& subnet_prefix) const; 45 46 /// @brief Retrieves a single subnet by subnet identifier. 47 /// 48 /// @param backend_selector Backend selector. 49 /// @param server_selector Server selector. 50 /// @param subnet_id Identifier of a subnet to be retrieved. 51 /// @return Pointer to the retrieved subnet or NULL if not found. 52 virtual Subnet6Ptr 53 getSubnet6(const db::BackendSelector& backend_selector, 54 const db::ServerSelector& server_selector, 55 const SubnetID& subnet_id) const; 56 57 /// @brief Retrieves all subnets. 58 /// 59 /// @param backend_selector Backend selector. 60 /// @param server_selector Server selector. 61 /// @return Collection of subnets or empty collection if no subnet found. 62 virtual Subnet6Collection 63 getAllSubnets6(const db::BackendSelector& backend_selector, 64 const db::ServerSelector& server_selector) const; 65 66 /// @brief Retrieves subnets modified after specified time. 67 /// 68 /// @param backend_selector Backend selector. 69 /// @param server_selector Server selector. 70 /// @param modification_time Lower bound subnet modification time. 71 /// @return Collection of subnets or empty collection if no subnet found. 72 virtual Subnet6Collection 73 getModifiedSubnets6(const db::BackendSelector& backend_selector, 74 const db::ServerSelector& server_selector, 75 const boost::posix_time::ptime& modification_time) const; 76 77 /// @brief Retrieves all subnets belonging to a specified shared network. 78 /// 79 /// @param backend_selector Backend selector. 80 /// @param server_selector Server selector. 81 /// @param shared_network_name Name of the shared network for which the 82 /// subnets should be retrieved. 83 /// @return Collection of subnets or empty collection if no subnet found. 84 virtual Subnet6Collection 85 getSharedNetworkSubnets6(const db::BackendSelector& backend_selector, 86 const db::ServerSelector& server_selector, 87 const std::string& shared_network_name) const; 88 89 /// @brief Retrieves shared network by name. 90 /// 91 /// @param backend_selector Backend selector. 92 /// @param server_selector Server selector. 93 /// @param name Name of the shared network to be retrieved. 94 /// @return Pointer to the shared network or NULL if not found. 95 virtual SharedNetwork6Ptr 96 getSharedNetwork6(const db::BackendSelector& backend_selector, 97 const db::ServerSelector& server_selector, 98 const std::string& name) const; 99 100 /// @brief Retrieves all shared networks. 101 /// 102 /// @param backend_selector Backend selector. 103 /// @param server_selector Server selector. 104 /// @return Collection of shared network or empty collection if 105 /// no shared network found. 106 virtual SharedNetwork6Collection 107 getAllSharedNetworks6(const db::BackendSelector& backend_selector, 108 const db::ServerSelector& server_selector) const; 109 110 /// @brief Retrieves shared networks modified after specified time. 111 /// 112 /// @param backend_selector Backend selector. 113 /// @param server_selector Server selector. 114 /// @param modification_time Lower bound shared network modification time. 115 /// @return Collection of shared network or empty collection if 116 /// no shared network found. 117 virtual SharedNetwork6Collection 118 getModifiedSharedNetworks6(const db::BackendSelector& backend_selector, 119 const db::ServerSelector& server_selector, 120 const boost::posix_time::ptime& modification_time) const; 121 122 /// @brief Retrieves single option definition by code and space. 123 /// 124 /// @param backend_selector Backend selector. 125 /// @param server_selector Server selector. 126 /// @param code Code of the option to be retrieved. 127 /// @param space Option space of the option to be retrieved. 128 /// @return Pointer to the option definition or NULL if not found. 129 virtual OptionDefinitionPtr 130 getOptionDef6(const db::BackendSelector& backend_selector, 131 const db::ServerSelector& server_selector, 132 const uint16_t code, 133 const std::string& space) const; 134 135 /// @brief Retrieves all option definitions. 136 /// 137 /// @param backend_selector Backend selector. 138 /// @param server_selector Server selector. 139 /// @return Collection of option definitions or empty collection if 140 /// no option definition found. 141 virtual OptionDefContainer 142 getAllOptionDefs6(const db::BackendSelector& backend_selector, 143 const db::ServerSelector& server_selector) const; 144 145 /// @brief Retrieves option definitions modified after specified time. 146 /// 147 /// @param backend_selector Backend selector. 148 /// @param server_selector Server selector. 149 /// @param modification_time Lower bound option definition modification 150 /// time. 151 /// @return Collection of option definitions or empty collection if 152 /// no option definition found. 153 virtual OptionDefContainer 154 getModifiedOptionDefs6(const db::BackendSelector& backend_selector, 155 const db::ServerSelector& server_selector, 156 const boost::posix_time::ptime& modification_time) const; 157 158 /// @brief Retrieves single option by code and space. 159 /// 160 /// @param backend_selector Backend selector. 161 /// @param server_selector Server selector. 162 /// @param code Option code. 163 /// @param space Option space. 164 /// @return Pointer to the retrieved option descriptor or null if 165 /// no option was found. 166 virtual OptionDescriptorPtr 167 getOption6(const db::BackendSelector& backend_selector, 168 const db::ServerSelector& server_selector, 169 const uint16_t code, 170 const std::string& space) const; 171 172 /// @brief Retrieves all global options. 173 /// 174 /// @param backend_selector Backend selector. 175 /// @param server_selector Server selector. 176 /// @return Collection of global options or empty collection if no 177 /// option found. 178 virtual OptionContainer 179 getAllOptions6(const db::BackendSelector& backend_selector, 180 const db::ServerSelector& server_selector) const; 181 182 /// @brief Retrieves option modified after specified time. 183 /// 184 /// @param backend_selector Backend selector. 185 /// @param server_selector Server selector. 186 /// @param modification_time Lower bound option modification time. 187 /// @return Collection of global options or empty collection if no 188 /// option found. 189 virtual OptionContainer 190 getModifiedOptions6(const db::BackendSelector& backend_selector, 191 const db::ServerSelector& server_selector, 192 const boost::posix_time::ptime& modification_time) const; 193 194 /// @brief Retrieves global parameter value. 195 /// 196 /// @param backend_selector Backend selector. 197 /// @param server_selector Server selector. 198 /// @param name Name of the global parameter to be retrieved. 199 /// @return Value of the global parameter. 200 virtual data::StampedValuePtr 201 getGlobalParameter6(const db::BackendSelector& backend_selector, 202 const db::ServerSelector& server_selector, 203 const std::string& name) const; 204 205 /// @brief Retrieves all global parameters. 206 /// 207 /// @param backend_selector Backend selector. 208 /// @param server_selector Server selector. 209 virtual data::StampedValueCollection 210 getAllGlobalParameters6(const db::BackendSelector& backend_selector, 211 const db::ServerSelector& server_selector) const; 212 213 /// @brief Retrieves global parameters modified after specified time. 214 /// 215 /// @param backend_selector Backend selector. 216 /// @param server_selector Server selector. 217 /// @param modification_time Lower bound subnet modification time. 218 /// @return Collection of modified global parameters. 219 virtual data::StampedValueCollection 220 getModifiedGlobalParameters6(const db::BackendSelector& backend_selector, 221 const db::ServerSelector& server_selector, 222 const boost::posix_time::ptime& modification_time) const; 223 224 /// @brief Retrieves a client class by name. 225 /// 226 /// @param backend_selector Backend selector. 227 /// @param server_selector Server selector. 228 /// @param name Client class name. 229 /// @return Pointer to the retrieved client class. 230 virtual ClientClassDefPtr 231 getClientClass6(const db::BackendSelector& backend_selector, 232 const db::ServerSelector& server_selector, 233 const std::string& name) const; 234 235 /// @brief Retrieves all client classes. 236 /// 237 /// @param backend_selector Backend selector. 238 /// @param server_selector Server selector. 239 /// @return Collection of client classes. 240 virtual ClientClassDictionary 241 getAllClientClasses6(const db::BackendSelector& backend_selector, 242 const db::ServerSelector& server_selector) const; 243 244 /// @brief Retrieves client classes modified after specified time. 245 /// 246 /// @param backend_selector Backend selector. 247 /// @param server_selector Server selector. 248 /// @param modification_time Modification time. 249 /// @return Collection of client classes. 250 virtual ClientClassDictionary 251 getModifiedClientClasses6(const db::BackendSelector& backend_selector, 252 const db::ServerSelector& server_selector, 253 const boost::posix_time::ptime& modification_time) const; 254 255 /// @brief Retrieves the most recent audit entries. 256 /// 257 /// @param backend_selector Backend selector. 258 /// @param server_selector Server selector. 259 /// @param modification_time Timestamp being a lower limit for the returned 260 /// result set, i.e. entries later than specified time are returned. 261 /// @param modification_id Identifier being a lower limit for the returned 262 /// result set, used when two (or more) entries have the same 263 /// modification_time. 264 /// @return Collection of audit entries. 265 virtual db::AuditEntryCollection 266 getRecentAuditEntries(const db::BackendSelector& backend_selector, 267 const db::ServerSelector& server_selector, 268 const boost::posix_time::ptime& modification_time, 269 const uint64_t& modification_id) const; 270 271 /// @brief Retrieves all servers from the particular backend. 272 /// 273 /// This method returns the list of servers excluding the logical server 274 /// 'all'. 275 /// 276 /// @param backend_selector Backend selector. 277 /// @return Collection of servers from the backend. 278 virtual db::ServerCollection 279 getAllServers6(const db::BackendSelector& backend_selector) const; 280 281 /// @brief Retrieves a server from the particular backend. 282 /// 283 /// @param backend_selector Backend selector. 284 /// @param server_tag Tag of the server to be retrieved. 285 /// @return Pointer to the server instance or null pointer if no server 286 /// with the particular tag was found. 287 virtual db::ServerPtr 288 getServer6(const db::BackendSelector& backend_selector, 289 const data::ServerTag& server_tag) const; 290 291 /// @brief Creates or updates a subnet. 292 /// 293 /// @param backend_selector Backend selector. 294 /// @param server_selector Server selector. 295 /// @param subnet Subnet to be added or updated. 296 virtual void 297 createUpdateSubnet6(const db::BackendSelector& backend_selector, 298 const db::ServerSelector& server_selector, 299 const Subnet6Ptr& subnet); 300 301 /// @brief Creates or updates a shared network. 302 /// 303 /// @param backend_selector Backend selector. 304 /// @param server_selector Server selector. 305 /// @param shared_network Shared network to be added or updated. 306 virtual void 307 createUpdateSharedNetwork6(const db::BackendSelector& backend_selector, 308 const db::ServerSelector& server_selector, 309 const SharedNetwork6Ptr& shared_network); 310 311 /// @brief Creates or updates an option definition. 312 /// 313 /// @param backend_selector Backend selector. 314 /// @param server_selector Server selector. 315 /// @param option_def Option definition to be added or updated. 316 virtual void 317 createUpdateOptionDef6(const db::BackendSelector& backend_selector, 318 const db::ServerSelector& server_selector, 319 const OptionDefinitionPtr& option_def); 320 321 /// @brief Creates or updates global option. 322 /// 323 /// @param backend_selector Backend selector. 324 /// @param server_selector Server selector. 325 /// @param option Option to be added or updated. 326 virtual void 327 createUpdateOption6(const db::BackendSelector& backend_selector, 328 const db::ServerSelector& server_selector, 329 const OptionDescriptorPtr& option); 330 331 /// @brief Creates or updates shared network level option. 332 /// 333 /// @param backend_selector Backend selector. 334 /// @param server_selector Server selector. 335 /// @param shared_network_name Name of a shared network to which option 336 /// belongs. 337 /// @param option Option to be added or updated. 338 virtual void 339 createUpdateOption6(const db::BackendSelector& backend_selector, 340 const db::ServerSelector& server_selector, 341 const std::string& shared_network_name, 342 const OptionDescriptorPtr& option); 343 344 /// @brief Creates or updates subnet level option. 345 /// 346 /// @param backend_selector Backend selector. 347 /// @param server_selector Server selector. 348 /// @param subnet_id Identifier of a subnet to which option belongs. 349 /// @param option Option to be added or updated. 350 virtual void 351 createUpdateOption6(const db::BackendSelector& backend_selector, 352 const db::ServerSelector& server_selector, 353 const SubnetID& subnet_id, 354 const OptionDescriptorPtr& option); 355 356 /// @brief Creates or updates pool level option. 357 /// 358 /// @param backend_selector Backend selector. 359 /// @param server_selector Server selector. 360 /// @param pool_start_address Lower bound address of the pool to which 361 /// the option belongs. 362 /// @param pool_end_address Upper bound address of the pool to which the 363 /// option belongs. 364 /// @param option Option to be added or updated. 365 virtual void 366 createUpdateOption6(const db::BackendSelector& backend_selector, 367 const db::ServerSelector& server_selector, 368 const asiolink::IOAddress& pool_start_address, 369 const asiolink::IOAddress& pool_end_address, 370 const OptionDescriptorPtr& option); 371 372 /// @brief Creates or updates prefix delegation pool level option. 373 /// 374 /// @param backend_selector Backend selector. 375 /// @param server_selector Server selector. 376 /// @param pd_pool_prefix Address part of the prefix of the prefix 377 /// delegation pool to which the option belongs. 378 /// @param pd_pool_prefix_length Prefix length of the prefix 379 /// delegation pool to which the option belongs. 380 /// @param option Option to be added or updated. 381 virtual void 382 createUpdateOption6(const db::BackendSelector& backend_selector, 383 const db::ServerSelector& server_selector, 384 const asiolink::IOAddress& pd_pool_prefix, 385 const uint8_t pd_pool_prefix_length, 386 const OptionDescriptorPtr& option); 387 388 /// @brief Creates or updates global string parameter. 389 /// 390 /// @param backend_selector Backend selector. 391 /// @param server_selector Server selector. 392 /// @param value Value of the global parameter. 393 virtual void 394 createUpdateGlobalParameter6(const db::BackendSelector& backend_selector, 395 const db::ServerSelector& server_selector, 396 const data::StampedValuePtr& value); 397 398 /// @brief Creates or updates DHCPv6 client class. 399 /// 400 /// @param backend_selector Backend selector. 401 /// @param server_selector Server selector. 402 /// @param client_class Client class to be added or updated. 403 /// @param follow_class_name name of the class after which the 404 /// new or updated class should be positioned. An empty value 405 /// causes the class to be appended at the end of the class 406 /// hierarchy. 407 virtual void 408 createUpdateClientClass6(const db::BackendSelector& backend_selector, 409 const db::ServerSelector& server_selector, 410 const ClientClassDefPtr& client_class, 411 const std::string& follow_class_name); 412 413 /// @brief Creates or updates a server. 414 /// 415 /// @param backend_selector Backend selector. 416 /// @param server Instance of the server to be stored. 417 virtual void 418 createUpdateServer6(const db::BackendSelector& backend_selector, 419 const db::ServerPtr& server); 420 421 /// @brief Deletes subnet by prefix. 422 /// 423 /// @param backend_selector Backend selector. 424 /// @param server_selector Server selector. 425 /// @param subnet_prefix Prefix of the subnet to be deleted. 426 /// @return Number of deleted subnets. 427 virtual uint64_t 428 deleteSubnet6(const db::BackendSelector& backend_selector, 429 const db::ServerSelector& server_selector, 430 const std::string& subnet_prefix); 431 432 /// @brief Deletes subnet by identifier. 433 /// 434 /// @param backend_selector Backend selector. 435 /// @param server_selector Server selector. 436 /// @param subnet_id Identifier of the subnet to be deleted. 437 /// @return Number of deleted subnets. 438 virtual uint64_t 439 deleteSubnet6(const db::BackendSelector& backend_selector, 440 const db::ServerSelector& server_selector, 441 const SubnetID& subnet_id); 442 443 /// @brief Deletes all subnets. 444 /// 445 /// @param backend_selector Backend selector. 446 /// @param server_selector Server selector. 447 /// @return Number of deleted subnets. 448 virtual uint64_t 449 deleteAllSubnets6(const db::BackendSelector& backend_selector, 450 const db::ServerSelector& server_selector); 451 452 /// @brief Deletes all subnets belonging to a specified shared network. 453 /// 454 /// @param backend_selector Backend selector. 455 /// @param server_selector Server selector. 456 /// @param shared_network_name Name of the shared network for which the 457 /// subnets should be deleted. 458 /// @return Number of deleted subnets. 459 virtual uint64_t 460 deleteSharedNetworkSubnets6(const db::BackendSelector& backend_selector, 461 const db::ServerSelector& server_selector, 462 const std::string& shared_network_name); 463 464 /// @brief Deletes shared network by name. 465 /// 466 /// @param backend_selector Backend selector. 467 /// @param server_selector Server selector. 468 /// @param name Name of the shared network to be deleted. 469 /// @return Number of deleted shared networks. 470 virtual uint64_t 471 deleteSharedNetwork6(const db::BackendSelector& backend_selector, 472 const db::ServerSelector& server_selector, 473 const std::string& name); 474 475 /// @brief Deletes all shared networks. 476 /// 477 /// @param backend_selector Backend selector. 478 /// @param server_selector Server selector. 479 /// @return Number of deleted shared networks. 480 virtual uint64_t 481 deleteAllSharedNetworks6(const db::BackendSelector& backend_selector, 482 const db::ServerSelector& server_selector); 483 484 /// @brief Deletes option definition. 485 /// 486 /// @param backend_selector Backend selector. 487 /// @param server_selector Server selector. 488 /// @param code Code of the option to be deleted. 489 /// @param space Option space of the option to be deleted. 490 /// @return Number of deleted option definitions. 491 virtual uint64_t 492 deleteOptionDef6(const db::BackendSelector& backend_selector, 493 const db::ServerSelector& server_selector, 494 const uint16_t code, 495 const std::string& space); 496 497 /// @brief Deletes all option definitions. 498 /// 499 /// @param backend_selector Backend selector. 500 /// @param server_selector Server selector. 501 /// @return Number of deleted option definitions. 502 virtual uint64_t 503 deleteAllOptionDefs6(const db::BackendSelector& backend_selector, 504 const db::ServerSelector& server_selector); 505 506 /// @brief Deletes global option. 507 /// 508 /// @param backend_selector Backend selector. 509 /// @param server_selector Server selector. 510 /// @param code Code of the option to be deleted. 511 /// @param space Option space of the option to be deleted. 512 /// @return Number of deleted options. 513 virtual uint64_t 514 deleteOption6(const db::BackendSelector& backend_selector, 515 const db::ServerSelector& server_selector, 516 const uint16_t code, 517 const std::string& space); 518 519 /// @brief Deletes shared network level option. 520 /// 521 /// @param backend_selector Backend selector. 522 /// @param server_selector Server selector. 523 /// @param shared_network_name Name of the shared network which option 524 /// belongs to. 525 /// @param code Code of the option to be deleted. 526 /// @param space Option space of the option to be deleted. 527 virtual uint64_t 528 deleteOption6(const db::BackendSelector& backend_selector, 529 const db::ServerSelector& server_selector, 530 const std::string& shared_network_name, 531 const uint16_t code, 532 const std::string& space); 533 534 /// @brief Deletes subnet level option. 535 /// 536 /// @param backend_selector Backend selector. 537 /// @param server_selector Server selector. 538 /// @param subnet_id Identifier of the subnet to which deleted option 539 /// belongs. 540 /// @param code Code of the deleted option. 541 /// @param space Option space of the deleted option. 542 /// @return Number of deleted options. 543 virtual uint64_t 544 deleteOption6(const db::BackendSelector& backend_selector, 545 const db::ServerSelector& server_selector, 546 const SubnetID& subnet_id, 547 const uint16_t code, const std::string& space); 548 549 /// @brief Deletes pool level option. 550 /// 551 /// @param backend_selector Backend selector. 552 /// @param server_selector Server selector. 553 /// @param pool_start_address Lower bound address of the pool to which 554 /// deleted option belongs. 555 /// @param pool_end_address Upper bound address of the pool to which the 556 /// deleted option belongs. 557 /// @param code Code of the deleted option. 558 /// @param space Option space of the deleted option. 559 /// @return Number of deleted options. 560 virtual uint64_t 561 deleteOption6(const db::BackendSelector& backend_selector, 562 const db::ServerSelector& server_selector, 563 const asiolink::IOAddress& pool_start_address, 564 const asiolink::IOAddress& pool_end_address, 565 const uint16_t code, 566 const std::string& space); 567 568 /// @brief Deletes prefix delegation pool level option. 569 /// 570 /// @param backend_selector Backend selector. 571 /// @param server_selector Server selector. 572 /// @param pd_pool_prefix Address part of the prefix of the prefix 573 /// delegation pool to which the deleted option belongs. 574 /// @param pd_pool_prefix_length Prefix length of the prefix delegation 575 /// pool to which the deleted option belongs. 576 /// @param code Code of the deleted option. 577 /// @param space Option space of the deleted option. 578 /// @return Number of deleted options. 579 virtual uint64_t 580 deleteOption6(const db::BackendSelector& backend_selector, 581 const db::ServerSelector& server_selector, 582 const asiolink::IOAddress& pd_pool_prefix, 583 const uint8_t pd_pool_prefix_length, 584 const uint16_t code, 585 const std::string& space); 586 587 /// @brief Deletes global parameter. 588 /// 589 /// @param backend_selector Backend selector. 590 /// @param server_selector Server selector. 591 /// @param name Name of the global parameter to be deleted. 592 /// @return Number of deleted global parameters. 593 virtual uint64_t 594 deleteGlobalParameter6(const db::BackendSelector& backend_selector, 595 const db::ServerSelector& server_selector, 596 const std::string& name); 597 598 /// @brief Deletes all global parameters. 599 /// 600 /// @param backend_selector Backend selector. 601 /// @param server_selector Server selector. 602 /// @return Number of deleted global parameters. 603 virtual uint64_t 604 deleteAllGlobalParameters6(const db::BackendSelector& backend_selector, 605 const db::ServerSelector& server_selector); 606 607 /// @brief Deletes DHCPv6 client class. 608 /// 609 /// @param backend_selector Backend selector. 610 /// @param server_selector Server selector. 611 /// @param name Name of the class to be deleted. 612 /// @return Number of deleted client classes. 613 virtual uint64_t 614 deleteClientClass6(const db::BackendSelector& backend_selector, 615 const db::ServerSelector& server_selector, 616 const std::string& name); 617 618 /// @brief Deletes all client classes. 619 /// 620 /// @param backend_selector Backend selector. 621 /// @param server_selector Server selector. 622 /// @return Number of deleted client classes. 623 virtual uint64_t 624 deleteAllClientClasses6(const db::BackendSelector& backend_selector, 625 const db::ServerSelector& server_selector); 626 627 /// @brief Deletes a server from the backend. 628 /// 629 /// @param backend_selector Backend selector. 630 /// @param server_tag Tag of the server to be deleted. 631 /// @return Number of deleted servers. 632 virtual uint64_t 633 deleteServer6(const db::BackendSelector& backend_selector, 634 const data::ServerTag& server_tag); 635 636 /// @brief Deletes all servers from the backend except the logical 637 /// server 'all'. 638 /// 639 /// @param backend_selector Backend selector. 640 /// @return Number of deleted servers. 641 virtual uint64_t 642 deleteAllServers6(const db::BackendSelector& backend_selector); 643 }; 644 645 646 } // end of namespace isc::dhcp 647 } // end of namespace isc 648 649 #endif // CONFIG_BACKEND_POOL_DHCP6_H 650