Kea 3.3.3
command_creator.h
Go to the documentation of this file.
1// Copyright (C) 2018-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#ifndef HA_COMMAND_CREATOR_H
8#define HA_COMMAND_CREATOR_H
9
10#include <cc/data.h>
11#include <dhcpsrv/lease.h>
14
15#include <string>
16#include <unordered_set>
17
18namespace isc {
19namespace ha {
20
24public:
25
36 createDHCPDisable(const unsigned int origin_id,
37 const unsigned int max_period,
38 const HAServerType& server_type);
39
48 createDHCPEnable(const unsigned int origin_id,
49 const HAServerType& server_type);
50
58 createHAReset(const std::string& server_name,
59 const HAServerType& server_type);
60
68 createHeartbeat(const std::string& server_name,
69 const HAServerType& server_type);
70
82 createLease4Update(const dhcp::Lease4& lease4);
83
91 createLease4Delete(const dhcp::Lease4& lease4);
92
98
110 const uint32_t limit);
111
121 const dhcp::Lease6CollectionPtr& deleted_leases);
122
132
144 createLease6Update(const dhcp::Lease6& lease6);
145
153 createLease6Delete(const dhcp::Lease6& lease6);
154
160
172 const uint32_t limit);
173
184 createMaintenanceNotify(const std::string& server_name,
185 const bool cancel,
186 const int state,
187 const HAServerType& server_type);
188
198 createSyncCompleteNotify(const unsigned int origin_id,
199 const std::string& server_name,
200 const HAServerType& server_type);
201
203 static std::unordered_set<std::string> ha_commands4_;
204
206 static std::unordered_set<std::string> ha_commands6_;
207
208private:
209
221 static void insertLeaseExpireTime(data::ElementPtr& lease);
222
240 static void
241 insertService(data::ConstElementPtr& command,
242 const HAServerType& server_type);
243};
244
245} // end of namespace ha
246} // end of namespace isc
247
248#endif
Holds a collection of functions which generate commands used for High Availability.
static data::ConstElementPtr createLease4Delete(const dhcp::Lease4 &lease4)
Creates lease4-del command.
static data::ConstElementPtr createHeartbeat(const std::string &server_name, const HAServerType &server_type)
Creates ha-heartbeat command for DHCP server.
static std::unordered_set< std::string > ha_commands4_
List of commands used by the High Availability in v4.
static data::ConstElementPtr createLease4Update(const dhcp::Lease4 &lease4)
Creates lease4-update command.
static data::ConstElementPtr createLease6Update(const dhcp::Lease6 &lease6)
Creates lease6-update command.
static data::ConstElementPtr createSyncCompleteNotify(const unsigned int origin_id, const std::string &server_name, const HAServerType &server_type)
Creates ha-sync-complete-notify command.
static data::ConstElementPtr createLease6Delete(const dhcp::Lease6 &lease6)
Creates lease6-del command.
static data::ConstElementPtr createLease6BulkApply(const dhcp::Lease6CollectionPtr &leases, const dhcp::Lease6CollectionPtr &deleted_leases)
Creates lease6-bulk-apply command.
static data::ConstElementPtr createLease4GetAll()
Creates lease4-get-all command.
static data::ConstElementPtr createLease6GetPage(const dhcp::Lease6Ptr &lease6, const uint32_t limit)
Creates lease6-get-page command.
static data::ConstElementPtr createDHCPDisable(const unsigned int origin_id, const unsigned int max_period, const HAServerType &server_type)
Creates dhcp-disable command for DHCP server.
static data::ConstElementPtr createDHCPEnable(const unsigned int origin_id, const HAServerType &server_type)
Creates dhcp-enable command for DHCP server.
static data::ConstElementPtr createMaintenanceNotify(const std::string &server_name, const bool cancel, const int state, const HAServerType &server_type)
Creates ha-maintenance-notify command.
static std::unordered_set< std::string > ha_commands6_
List of commands used by the High Availability in v6.
static data::ConstElementPtr createHAReset(const std::string &server_name, const HAServerType &server_type)
Creates ha-reset command.
static data::ConstElementPtr createLease6GetAll()
Creates lease6-get-all command.
static data::ConstElementPtr createLease4GetPage(const dhcp::Lease4Ptr &lease4, const uint32_t limit)
Creates lease4-get-page command.
Queue holding a backlog of unsent lease updates.
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:30
boost::shared_ptr< Element > ElementPtr
Definition data.h:29
boost::shared_ptr< Lease6 > Lease6Ptr
Pointer to a Lease6 structure.
Definition lease.h:556
boost::shared_ptr< Lease6Collection > Lease6CollectionPtr
A shared pointer to the collection of IPv6 leases.
Definition lease.h:724
boost::shared_ptr< Lease4 > Lease4Ptr
Pointer to a Lease4 structure.
Definition lease.h:343
HAServerType
Lists possible server types for which HA service is created.
Defines the logger used by the top-level component of kea-lfc.
Structure that holds a lease for IPv4 address.
Definition lease.h:351
Structure that holds a lease for IPv6 address and/or prefix.
Definition lease.h:564