 |
Kea
1.5.0
|
Go to the documentation of this file.
23 #include <dhcpsrv/testutils/cql_schema.h>
34 using namespace std::chrono;
40 GenericLeaseMgrBenchmark::GenericLeaseMgrBenchmark()
57 size_t const& lease_count) {
75 size_t const& lease_count) {
86 for (
size_t i = 0x0001u; i < 0x0001u + lease_count; ++i) {
91 lease->valid_lft_ = i;
93 lease->subnet_id_ = i;
94 lease->fqdn_rev_ = (i % 2) ?
true :
false;
95 lease->fqdn_fwd_ = (i % 2) ?
true :
false;
96 lease->hostname_ = to_string(i) +
".host.com";
158 if (lease_count > 0xfffdu) {
159 cerr <<
"lease_count <= 0xfffd or change address generation in "
160 "GenericLeaseMgrBenchmark::prepareLeases6()"
164 for (
size_t i = 0x0001u; i < 0x0001u + lease_count; ++i) {
169 const string prefix = string(
"2001:db8::") + n_lease;
175 lease->prefixlen_ = i % 128;
177 lease->duid_ =
DuidPtr(
new DUID(vector<uint8_t>(8, i)));
178 lease->preferred_lft_ = i;
179 lease->valid_lft_ = i;
181 lease->subnet_id_ = i;
182 lease->fqdn_fwd_ = (i % 2 == 0) ?
true :
false;
183 lease->fqdn_rev_ = (i % 2 == 0) ?
true :
false;
184 lease->hostname_ = n_lease +
".host.com";
void benchInsertLeases6()
This step inserts all IPv6 leases stored in lease6_ into the LeaseMgr.
virtual ~GenericLeaseMgrBenchmark()
Virtual destructor.
void setUpWithInserts4(::benchmark::State &state, size_t const &lease_count)
set up code (with lease preinsertion) for initializing IPv4 version of a benchmark.
Lease6Collection leases6_
List of IPv6 leases (useful during benchmarks)
void benchUpdateLeases6()
This step updates all IPv6 leases stored in lease6_ in the LeaseMgr.
void benchGetLease4_clientid_subnetid()
This step retrieves IPv4 leases by (client-id, subnet-id) tuple.
void benchGetLease4_clientid()
This step retrieves IPv4 leases by client-id.
virtual Lease6Collection getLeases6(Lease::Type type, const DUID &duid, uint32_t iaid) const =0
Returns existing IPv6 leases for a given DUID+IA combination.
boost::shared_ptr< Lease4 > Lease4Ptr
Pointer to a Lease4 structure.
virtual Lease4Ptr getLease4(const isc::asiolink::IOAddress &addr) const =0
Returns an IPv4 lease for specified IPv4 address.
The IOAddress class represents an IP addresses (version agnostic)
boost::shared_ptr< DUID > DuidPtr
void benchUpdateLeases4()
This step updates all IPv4 leases stored in lease4_ in the LeaseMgr.
boost::shared_ptr< Lease6 > Lease6Ptr
Pointer to a Lease6 structure.
Type
Type of lease or pool.
Hardware type that represents information from DHCPv4 packet.
void benchGetLease4_address()
This step retrieves IPv4 leases by IP address.
virtual void getExpiredLeases6(Lease6Collection &expired_leases, const size_t max_leases) const =0
Returns a collection of expired DHCPv6 leases.
Defines the logger used by the top-level component of kea-dhcp-ddns.
LeaseMgr * lmptr_
Pointer to the lease manager being under evaluation.
void prepareLeases4(size_t const &lease_count)
Prepares specified number of IPv4 leases.
Structure that holds a lease for IPv6 address and/or prefix.
void setUp6(::benchmark::State &state, size_t const &lease_count)
set up code for initializing IPv6 version of a benchmark
Holds Client identifier or client IPv4 address.
Lease4Collection leases4_
List of IPv4 leases (useful during benchmarks)
void benchGetLease4_hwaddr()
This step retrieves IPv4 leases by hardware address.
void prepareLeases6(size_t const &lease_count)
Prepares specified number of IPv6 leases.
void setUpWithInserts6(::benchmark::State &state, size_t const &lease_count)
set up code (with lease preinsertion) for initializing IPv6 version of a benchmark.
virtual void updateLease4(const Lease4Ptr &lease4)=0
Updates IPv4 lease.
void benchGetExpiredLeases6()
This step retrieves all expired IPv6 leases.
boost::shared_ptr< ClientId > ClientIdPtr
Shared pointer to a Client ID.
void benchGetLease6_type_address()
This step retrieves IPv6 leases by IP address.
void benchGetExpiredLeases4()
This step retrieves all expired IPv4 leases.
void benchGetLease6_type_duid_iaid()
This step retrieves IPv6 leases by (type, duid, iaid) tuple.
std::vector< Lease4Ptr > Lease4Collection
A collection of IPv4 leases.
@ HTYPE_ETHER
Ethernet 10Mbps.
Holds DUID (DHCPv6 Unique Identifier)
virtual void getExpiredLeases4(Lease4Collection &expired_leases, const size_t max_leases) const =0
Returns a collection of expired DHCPv4 leases.
std::vector< Lease6Ptr > Lease6Collection
A collection of IPv6 leases.
virtual bool addLease(const Lease4Ptr &lease)=0
Adds an IPv4 lease.
virtual void updateLease6(const Lease6Ptr &lease6)=0
Updates IPv6 lease.
void benchGetLease4_hwaddr_subnetid()
This step retrieves IPv4 leases by (hwaddr, subnet-id) tuple.
void benchInsertLeases4()
This step inserts all IPv4 leases stored in lease4_ into the LeaseMgr.
void setUp4(::benchmark::State &state, size_t const &lease_count)
set up code for initializing IPv4 version of a benchmark
virtual Lease6Ptr getLease6(Lease::Type type, const isc::asiolink::IOAddress &addr) const =0
Returns existing IPv6 lease for a given IPv6 address.
void benchGetLease6_type_duid_iaid_subnetid()
This step retrieves IPv6 leases by (type, duid, iaid, subnet-id) tuple.
Structure that holds a lease for IPv4 address.