Kea 1.5.0
generic_lease_mgr_benchmark.h
Go to the documentation of this file.
1// Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
2// Copyright (C) 2017 Deutsche Telekom AG.
3//
4// Authors: Andrei Pavel <andrei.pavel@qualitance.com>
5//
6// Licensed under the Apache License, Version 2.0 (the "License");
7// you may not use this file except in compliance with the License.
8// You may obtain a copy of the License at
9//
10// http://www.apache.org/licenses/LICENSE-2.0
11//
12// Unless required by applicable law or agreed to in writing, software
13// distributed under the License is distributed on an "AS IS" BASIS,
14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15// See the License for the specific language governing permissions and
16// limitations under the License.
17
18#ifndef GENERIC_LEASE_MGR_BENCHMARK_H
19#define GENERIC_LEASE_MGR_BENCHMARK_H
20
21#include <benchmark/benchmark.h>
22
23#include <dhcpsrv/lease_mgr.h>
24
25namespace isc {
26namespace dhcp {
27namespace bench {
28
30class GenericLeaseMgrBenchmark : public benchmark::Fixture {
31public:
32
34 enum Universe { V4, V6 };
35
38
41
46 void setUp4(::benchmark::State& state, size_t const& lease_count);
47
53 void setUpWithInserts4(::benchmark::State& state, size_t const& lease_count);
54
59 void setUp6(::benchmark::State& state, size_t const& lease_count);
60
66 void setUpWithInserts6(::benchmark::State& state, size_t const& lease_count);
67
72 void prepareLeases4(size_t const& lease_count);
73
75 void benchInsertLeases4();
76
78 void benchUpdateLeases4();
79
82
85
88
91
94
97
102 void prepareLeases6(size_t const& lease_count);
103
105 void benchInsertLeases6();
106
108 void benchUpdateLeases6();
109
112
115
118
121
124
127
130};
131
132} // namespace bench
133} // namespace dhcp
134} // namespace isc
135
136#endif
Abstract Lease Manager.
Definition: lease_mgr.h:222
A base class for a fixture for specific lease manager benchmarks.
void benchInsertLeases4()
This step inserts all IPv4 leases stored in lease4_ into the LeaseMgr.
void benchGetLease4_clientid_subnetid()
This step retrieves IPv4 leases by (client-id, subnet-id) tuple.
void prepareLeases4(size_t const &lease_count)
Prepares specified number of IPv4 leases.
Lease6Collection leases6_
List of IPv6 leases (useful during benchmarks)
void benchUpdateLeases4()
This step updates all IPv4 leases stored in lease4_ in the LeaseMgr.
LeaseMgr * lmptr_
Pointer to the lease manager being under evaluation.
void benchUpdateLeases6()
This step updates all IPv6 leases stored in lease6_ in the LeaseMgr.
void benchGetLease4_hwaddr()
This step retrieves IPv4 leases by hardware address.
void benchGetLease6_type_duid_iaid_subnetid()
This step retrieves IPv6 leases by (type, duid, iaid, subnet-id) tuple.
void setUpWithInserts6(::benchmark::State &state, size_t const &lease_count)
set up code (with lease preinsertion) for initializing IPv6 version of a benchmark.
void benchGetLease4_address()
This step retrieves IPv4 leases by IP address.
void benchGetExpiredLeases6()
This step retrieves all expired IPv6 leases.
void benchGetLease4_clientid()
This step retrieves IPv4 leases by client-id.
void benchGetLease6_type_duid_iaid()
This step retrieves IPv6 leases by (type, duid, iaid) tuple.
void setUpWithInserts4(::benchmark::State &state, size_t const &lease_count)
set up code (with lease preinsertion) for initializing IPv4 version of a benchmark.
Lease4Collection leases4_
List of IPv4 leases (useful during benchmarks)
void benchGetExpiredLeases4()
This step retrieves all expired IPv4 leases.
void benchGetLease6_type_address()
This step retrieves IPv6 leases by IP address.
Universe
Specifies the IP protocol family to be bested.
void setUp6(::benchmark::State &state, size_t const &lease_count)
set up code for initializing IPv6 version of a benchmark
void benchGetLease4_hwaddr_subnetid()
This step retrieves IPv4 leases by (hwaddr, subnet-id) tuple.
void prepareLeases6(size_t const &lease_count)
Prepares specified number of IPv6 leases.
void setUp4(::benchmark::State &state, size_t const &lease_count)
set up code for initializing IPv4 version of a benchmark
void benchInsertLeases6()
This step inserts all IPv6 leases stored in lease6_ into the LeaseMgr.
An abstract API for lease database.
std::vector< Lease6Ptr > Lease6Collection
A collection of IPv6 leases.
Definition: lease.h:604
std::vector< Lease4Ptr > Lease4Collection
A collection of IPv4 leases.
Definition: lease.h:455
Defines the logger used by the top-level component of kea-dhcp-ddns.