Kea: isc::perfdhcp::AvalancheScen Class Reference

| Kea 2.2.0

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
isc::perfdhcp::AvalancheScen Class Reference

Avalanche Scenario class. More...

`#include <avalanche_scen.h>`

Inheritance diagram for isc::perfdhcp::AvalancheScen:
[legend]

## Public Member Functions
| AvalancheScen (CommandOptions &options, BasePerfSocket &socket)
| Default and the only constructor of AvalancheScen. More...
int | run () override
| brief\ Run performance test. More...
Public Member Functions inherited from isc::perfdhcp::AbstractScen
| AbstractScen (CommandOptions &options, BasePerfSocket &socket)
| Default and the only constructor of AbstractScen. More...
virtual | ~AbstractScen ()
| Trivial virtual destructor. More...
virtual int | run ()=0
| Run performance test. More...

## Protected Member Functions
int | resendPackets (ExchangeType xchg_type)
| \brief Resend packets. More...

## Protected Attributes
std::unordered_map< ExchangeType, std::unordered_map< uint32_t, int >, EnumClassHash > | retransmissions_
| A map xchg type -> (a map of trans id -> retransmissions count. More...
BasePerfSocket & | socket_
std::unordered_map< ExchangeType, std::unordered_map< uint32_t, boost::posix_time::ptime >, EnumClassHash > | start_times_
| A map xchg type -> (a map of trans id -> time of sending first packet. More...
int | total_resent_
| Total number of resent packets. More...
Protected Attributes inherited from isc::perfdhcp::AbstractScen
CommandOptions & | options_
| Reference to commandline options. More...
ExchangeType | stage1_xchg_
ExchangeType | stage2_xchg_
TestControl | tc_
| Object for controlling sending and receiving packets. More...

## Detailed Description

Avalanche Scenario class.

This class is used to run the performance test where DHCP server is first loaded with indicated buffer of Discover or Solicit messages and then the class is waiting till receiving all required responses. Full DORA and SARR message sequences are expected.

Definition at line 36 of file avalanche_scen.h.

## Constructor & Destructor Documentation

## ◆ AvalancheScen()

isc::perfdhcp::AvalancheScen::AvalancheScen | ( | CommandOptions & | options,
|  | BasePerfSocket & | socket
| ) |  |
| inline

Default and the only constructor of AvalancheScen.

Parameters

  options | reference to command options,
  socket | reference to a socket.

Definition at line 42 of file avalanche_scen.h.

## Member Function Documentation

## ◆ resendPackets()

int isc::perfdhcp::AvalancheScen::resendPackets | ( | ExchangeType | xchg_type | ) |
| protected

\brief Resend packets.

It resends packets for given exchange type that did not receive a response yet.

Parameters

  xchg_type | exchange type that should be looked for.

Returns
  number of packets still waiting for resending.

Definition at line 24 of file avalanche_scen.cc.

References isc::perfdhcp::CommandOptions::getIpVersion(), isc::perfdhcp::StatsMgr::getSentPackets(), isc::perfdhcp::TestControl::getStatsMgr(), isc::perfdhcp::AbstractScen::options_, isc::cryptolink::random(), retransmissions_, isc::perfdhcp::BasePerfSocket::send(), socket_, start_times_, isc::perfdhcp::AbstractScen::tc_, and total_resent_.

Referenced by run().

Here is the call graph for this function:

## ◆ run()

int isc::perfdhcp::AvalancheScen::run | ( |  | ) |
| overridevirtual

brief\ Run performance test.

Method runs whole performance test.

Returns
  execution status.

Implements isc::perfdhcp::AbstractScen.

Definition at line 96 of file avalanche_scen.cc.

References isc::perfdhcp::TestControl::consumeReceivedPackets(), isc::perfdhcp::CommandOptions::DORA_SARR, isc::perfdhcp::CommandOptions::getClientsNum(), isc::perfdhcp::CommandOptions::getExchangeMode(), isc::perfdhcp::StatsMgr::getRcvdPacketsNum(), isc::perfdhcp::StatsMgr::getSentPacketsNum(), isc::perfdhcp::TestControl::getServerId(), isc::perfdhcp::TestControl::getStatsMgr(), isc::perfdhcp::TestControl::interrupted(), isc::perfdhcp::AbstractScen::options_, isc::perfdhcp::StatsMgr::printLeases(), isc::perfdhcp::TestControl::printStats(), isc::perfdhcp::StatsMgr::printTimestamps(), resendPackets(), isc::perfdhcp::TestControl::sendPackets(), isc::perfdhcp::TestControl::serverIdReceived(), isc::perfdhcp::AbstractScen::stage1_xchg_, isc::perfdhcp::AbstractScen::stage2_xchg_, isc::perfdhcp::TestControl::start(), isc::perfdhcp::TestControl::stop(), isc::perfdhcp::AbstractScen::tc_, isc::perfdhcp::CommandOptions::testDiags(), and total_resent_.

Referenced by main().

Here is the call graph for this function:

## Member Data Documentation

## ◆ retransmissions_

std::unordered_map<ExchangeType, std::unordered_map<uint32_t, int>, EnumClassHash> isc::perfdhcp::AvalancheScen::retransmissions_
| protected

A map xchg type -> (a map of trans id -> retransmissions count.

Definition at line 60 of file avalanche_scen.h.

Referenced by resendPackets().

## ◆ socket_

BasePerfSocket& isc::perfdhcp::AvalancheScen::socket_
| protected

Definition at line 57 of file avalanche_scen.h.

Referenced by resendPackets().

## ◆ start_times_

std::unordered_map<ExchangeType, std::unordered_map<uint32_t, boost::posix_time::ptime>, EnumClassHash> isc::perfdhcp::AvalancheScen::start_times_
| protected

A map xchg type -> (a map of trans id -> time of sending first packet.

Definition at line 62 of file avalanche_scen.h.

Referenced by resendPackets().

## ◆ total_resent_

int isc::perfdhcp::AvalancheScen::total_resent_
| protected

Total number of resent packets.

Definition at line 65 of file avalanche_scen.h.

Referenced by resendPackets(), and run().

The documentation for this class was generated from the following files:

- avalanche_scen.h
- avalanche_scen.cc