Kea: isc::perfdhcp::CommandOptions Class Reference

| Kea 3.2.0-git

isc::perfdhcp::CommandOptions Class Reference

Command Options. More...

`#include <command_options.h>`

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

## Classes
class | LeaseType
| A class encapsulating the type of lease being requested from the server. More...

## Public Types
enum | ExchangeMode { DO_SA , DORA_SARR }
| 2-way (cmd line param -i) or 4-way exchanges More...
typedef std::vector< std::vector< uint8_t > > | MacAddrsVector
| A vector holding MAC addresses.

## Public Member Functions
| CommandOptions ()
| Default Constructor.
bool | checkMultiSubnet ()
| Check if multi subnet mode is enabled.
void | extendedVersion () const
| Print extended program version.
bool | getAddrUnique () const
| Returns address uniqueness value.
std::vector< std::string > | getBase () const
| Returns base values.
int | getCleanReport () const
| Returns clean report mode.
std::string | getCleanReportSeparator () const
| Returns clean report separator.
uint32_t | getClientsNum () const
| Returns number of simulated clients.
std::string | getDiags () const
| Returns diagnostic selectors.
std::vector< double > | getDropTime () const
| Returns drop time.
std::vector< uint8_t > | getDuidTemplate () const
| Returns DUID template.
int | getElapsedTimeOffset () const
| Returns template offset for elapsed time.
ExchangeMode | getExchangeMode () const
| Returns packet exchange mode.
int | getExitWaitTime () const
| Returns the time in microseconds to delay the program by.
const isc::dhcp::OptionCollection & | getExtraOpts () const
| Returns extra options to be inserted.
int | getIncreaseElapsedTime () const
| Returns increased elapsed time.
uint8_t | getIpVersion () const
| Returns IP version.
LeaseType | getLeaseType () const
| \ brief Returns the type of lease being requested.
std::string | getLocalName () const
| Returns local address or interface name.
int | getLocalPort () const
| Returns local port number.
std::string | getMacListFile () const
| Returns location of the file containing list of MAC addresses.
const MacAddrsVector & | getMacsFromFile () const
| Returns reference to a vector of MAC addresses read from a file.
std::vector< uint8_t > | getMacTemplate () const
| Returns MAC address template.
std::vector< int > | getMaxDrop () const
| Returns maximum drops number.
std::vector< double > | getMaxDropPercentage () const
| Returns maximal percentage of drops.
std::vector< int > | getNumRequests () const
| Returns maximum number of exchanges.
int | getPeriod () const
| Returns test period.
int | getPreload () const
| Returns number of preload exchanges.
std::vector< int > | getRandomOffset () const
| Returns template offsets for rnd.
std::string | getRandRelayAddr ()
| Returns random relay address.
int | getRate () const
| Returns exchange rate.
std::vector< std::string > | getRelayAddrList () const
| Returns list of relay addresses.
std::string | getRelayAddrListFile () const
| Returns file location with set of relay addresses.
const isc::dhcp::OptionCollection & | getRelayOpts (uint8_t encapsulation_level=1) const
| Returns relay options to be inserted at given level of encapsulation.
int | getReleaseRate () const
| Returns a rate at which DHCPv6 Release messages are sent.
int | getRemotePort () const
| Returns remote port number.
int | getRenewRate () const
| Returns a rate at which DHCPv6 Renew messages are sent.
int | getReportDelay () const
| Returns delay between two performance reports.
int | getRequestedIpOffset () const
| Returns template offset for requested IP.
Scenario | getScenario () const
| Returns selected scenario.
uint32_t | getSeed () const
| Returns random seed.
int | getServerIdOffset () const
| Returns template offset for server-ID.
std::string | getServerName () const
| Returns server name.
std::vector< std::string > | getTemplateFiles () const
| Returns template file names.
std::vector< int > | getTransactionIdOffset () const
| brief Returns template offsets for xid.
int | getWaitForElapsedTime () const
| Returns time to wait for elapsed time increase.
std::string | getWrapped () const
| Returns wrapped command.
bool | isBroadcast () const
| Checks if broadcast address is to be used.
bool | isInterface () const
| Checks if interface name was used.
bool | isRapidCommit () const
| Check if rapid commit option used.
bool | isSeeded () const
| Checks if seed provided.
bool | isSingleThreaded () const
| Check if single-threaded mode is enabled.
bool | isUseFirst () const
| Check if server-ID to be taken from first package.
bool | isUseRelayedV6 () const
| Check if generated DHCPv6 messages should appear as relayed.
bool | parse (int argc, char **const argv, bool print_cmd_line=false)
| Parse command line.
void | printCommandLine () const
| Print command line arguments.
void | reset ()
| Reset to defaults.
bool | testDiags (const char diag)
| Find if diagnostic flag has been set.
void | version () const
| Print program version.

## Static Public Member Functions
static void | usage ()
| Print usage.

## Static Public Attributes
static const uint8_t | RELAY_OPTIONS_MAX_ENCAPSULATION = 1
| Maximum allowed level of encapsulation of added relay options.

## Detailed Description

Command Options.

This class is responsible for parsing the command-line and storing the specified options.

Definition at line 30 of file command_options.h.

## Member Typedef Documentation

## ◆ MacAddrsVector

typedef std::vector<std::vector<uint8_t> > isc::perfdhcp::CommandOptions::MacAddrsVector

A vector holding MAC addresses.

Definition at line 42 of file command_options.h.

## Member Enumeration Documentation

## ◆ ExchangeMode

enum isc::perfdhcp::CommandOptions::ExchangeMode

2-way (cmd line param -i) or 4-way exchanges

Enumerator
DO_SA |
DORA_SARR |

Definition at line 120 of file command_options.h.

## Constructor & Destructor Documentation

## ◆ CommandOptions()

isc::perfdhcp::CommandOptions::CommandOptions | ( |  | ) |
| inline

Default Constructor.

Private constructor as this is a singleton class. Use CommandOptions::instance() to get instance of it.

Definition at line 37 of file command_options.h.

References reset().

Here is the call graph for this function:

## Member Function Documentation

## ◆ checkMultiSubnet()

bool isc::perfdhcp::CommandOptions::checkMultiSubnet | ( |  | ) |
| inline

Check if multi subnet mode is enabled.

Returns
  true if multi subnet mode is enabled.

Definition at line 426 of file command_options.h.

## ◆ extendedVersion()

void isc::perfdhcp::CommandOptions::extendedVersion | ( |  | ) | const

Print extended program version.

Definition at line 1269 of file command_options.cc.

## ◆ getAddrUnique()

bool isc::perfdhcp::CommandOptions::getAddrUnique | ( |  | ) | const
| inline

Returns address uniqueness value.

Returns
  address uniqueness specified value.

Definition at line 212 of file command_options.h.

## ◆ getBase()

std::vector< std::string > isc::perfdhcp::CommandOptions::getBase | ( |  | ) | const
| inline

Returns base values.

Returns
  all base values specified.

Definition at line 207 of file command_options.h.

## ◆ getCleanReport()

int isc::perfdhcp::CommandOptions::getCleanReport | ( |  | ) | const
| inline

Returns clean report mode.

Returns
  true if cleaner report is enabled.

Definition at line 182 of file command_options.h.

## ◆ getCleanReportSeparator()

std::string isc::perfdhcp::CommandOptions::getCleanReportSeparator | ( |  | ) | const
| inline

Returns clean report separator.

Returns
  returns string which is used as separator for report..

Definition at line 187 of file command_options.h.

## ◆ getClientsNum()

uint32_t isc::perfdhcp::CommandOptions::getClientsNum | ( |  | ) | const
| inline

Returns number of simulated clients.

Returns
  number of simulated clients.

Definition at line 192 of file command_options.h.

## ◆ getDiags()

std::string isc::perfdhcp::CommandOptions::getDiags | ( |  | ) | const
| inline

Returns diagnostic selectors.

Returns
  diagnostics selector.

Definition at line 371 of file command_options.h.

Referenced by main(), and testDiags().

## ◆ getDropTime()

std::vector< double > isc::perfdhcp::CommandOptions::getDropTime | ( |  | ) | const
| inline

Returns drop time.

The method returns maximum time elapsed from sending the packet before it is assumed dropped.

Returns
  return time before request is assumed dropped.

Definition at line 242 of file command_options.h.

## ◆ getDuidTemplate()

std::vector< uint8_t > isc::perfdhcp::CommandOptions::getDuidTemplate | ( |  | ) | const
| inline

Returns DUID template.

Returns
  DUID template to simulate different clients.

Definition at line 202 of file command_options.h.

## ◆ getElapsedTimeOffset()

int isc::perfdhcp::CommandOptions::getElapsedTimeOffset | ( |  | ) | const
| inline

Returns template offset for elapsed time.

Returns
  template offset for elapsed time.

Definition at line 356 of file command_options.h.

## ◆ getExchangeMode()

ExchangeMode isc::perfdhcp::CommandOptions::getExchangeMode | ( |  | ) | const
| inline

Returns packet exchange mode.

Returns
  packet exchange mode.

Definition at line 152 of file command_options.h.

## ◆ getExitWaitTime()

int isc::perfdhcp::CommandOptions::getExitWaitTime | ( |  | ) | const
| inline

Returns the time in microseconds to delay the program by.

Returns
  the time in microseconds to delay the program by.

Definition at line 291 of file command_options.h.

## ◆ getExtraOpts()

const isc::dhcp::OptionCollection & isc::perfdhcp::CommandOptions::getExtraOpts | ( |  | ) | const
| inline

Returns extra options to be inserted.

Returns
  container with options.

Definition at line 381 of file command_options.h.

## ◆ getIncreaseElapsedTime()

int isc::perfdhcp::CommandOptions::getIncreaseElapsedTime | ( |  | ) | const
| inline

Returns increased elapsed time.

Returns
  how long perfdhcp will send messages with increased elapsed time.

Definition at line 234 of file command_options.h.

## ◆ getIpVersion()

uint8_t isc::perfdhcp::CommandOptions::getIpVersion | ( |  | ) | const
| inline

Returns IP version.

Returns
  IP version to be used.

Definition at line 147 of file command_options.h.

Referenced by isc::perfdhcp::StatsMgr::StatsMgr(), and isc::perfdhcp::PerfSocket::openSocket().

## ◆ getLeaseType()

LeaseType isc::perfdhcp::CommandOptions::getLeaseType | ( |  | ) | const
| inline

\ brief Returns the type of lease being requested.

Returns
  type of lease being requested by perfdhcp.

Definition at line 157 of file command_options.h.

Referenced by printCommandLine().

## ◆ getLocalName()

std::string isc::perfdhcp::CommandOptions::getLocalName | ( |  | ) | const
| inline

Returns local address or interface name.

Returns
  local address or interface name.

Definition at line 263 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket().

## ◆ getLocalPort()

int isc::perfdhcp::CommandOptions::getLocalPort | ( |  | ) | const
| inline

Returns local port number.

Returns
  local port number.

Definition at line 281 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket(), and printCommandLine().

## ◆ getMacListFile()

std::string isc::perfdhcp::CommandOptions::getMacListFile | ( |  | ) | const
| inline

Returns location of the file containing list of MAC addresses.

MAC addresses read from the file are used by the perfdhcp in message exchanges with the DHCP server.

Returns
  Location of the file containing list of MAC addresses.

Definition at line 334 of file command_options.h.

## ◆ getMacsFromFile()

const MacAddrsVector & isc::perfdhcp::CommandOptions::getMacsFromFile | ( |  | ) | const
| inline

Returns reference to a vector of MAC addresses read from a file.

Every MAC address is represented as a vector.

Returns
  Reference to a vector of vectors.

Definition at line 341 of file command_options.h.

## ◆ getMacTemplate()

std::vector< uint8_t > isc::perfdhcp::CommandOptions::getMacTemplate | ( |  | ) | const
| inline

Returns MAC address template.

Returns
  MAC address template to simulate different clients.

Definition at line 197 of file command_options.h.

## ◆ getMaxDrop()

std::vector< int > isc::perfdhcp::CommandOptions::getMaxDrop | ( |  | ) | const
| inline

Returns maximum drops number.

Returns maximum number of packet drops before aborting a test.

Returns
  maximum number of dropped requests.

Definition at line 250 of file command_options.h.

## ◆ getMaxDropPercentage()

std::vector< double > isc::perfdhcp::CommandOptions::getMaxDropPercentage | ( |  | ) | const
| inline

Returns maximal percentage of drops.

Returns maximal percentage of packet drops before aborting a test.

Returns
  maximum percentage of lost requests.

Definition at line 258 of file command_options.h.

## ◆ getNumRequests()

std::vector< int > isc::perfdhcp::CommandOptions::getNumRequests | ( |  | ) | const
| inline

Returns maximum number of exchanges.

Returns
  number of exchange requests before test is aborted.

Definition at line 217 of file command_options.h.

## ◆ getPeriod()

int isc::perfdhcp::CommandOptions::getPeriod | ( |  | ) | const
| inline

Returns test period.

Returns
  test period before it is aborted.

Definition at line 222 of file command_options.h.

## ◆ getPreload()

int isc::perfdhcp::CommandOptions::getPreload | ( |  | ) | const
| inline

Returns number of preload exchanges.

Returns
  number of preload exchanges.

Definition at line 276 of file command_options.h.

## ◆ getRandomOffset()

std::vector< int > isc::perfdhcp::CommandOptions::getRandomOffset | ( |  | ) | const
| inline

Returns template offsets for rnd.

Returns
  template offsets for rnd.

Definition at line 351 of file command_options.h.

## ◆ getRandRelayAddr()

std::string isc::perfdhcp::CommandOptions::getRandRelayAddr | ( |  | ) |
| inline

Returns random relay address.

Returns
  single string containing relay address.

Definition at line 421 of file command_options.h.

## ◆ getRate()

int isc::perfdhcp::CommandOptions::getRate | ( |  | ) | const
| inline

Returns exchange rate.

Returns
  exchange rate per second.

Definition at line 162 of file command_options.h.

## ◆ getRelayAddrList()

std::vector< std::string > isc::perfdhcp::CommandOptions::getRelayAddrList | ( |  | ) | const
| inline

Returns list of relay addresses.

Returns
  list of relay addresses.

Definition at line 416 of file command_options.h.

## ◆ getRelayAddrListFile()

std::string isc::perfdhcp::CommandOptions::getRelayAddrListFile | ( |  | ) | const
| inline

Returns file location with set of relay addresses.

Returns
  relay addresses list file location.

Definition at line 411 of file command_options.h.

## ◆ getRelayOpts()

const isc::dhcp::OptionCollection & isc::perfdhcp::CommandOptions::getRelayOpts | ( | uint8_t | encapsulation_level = 1 | ) | const

Returns relay options to be inserted at given level of encapsulation.

Parameters

  encapsulation_level | level of encapsulation, by default 1

Exceptions

  isc::OutOfRange | When trying to access relay options at encapsulation level that doesn't exist.

Returns
  container with options.

Definition at line 911 of file command_options.cc.

References isc_throw, and RELAY_OPTIONS_MAX_ENCAPSULATION.

## ◆ getReleaseRate()

int isc::perfdhcp::CommandOptions::getReleaseRate | ( |  | ) | const
| inline

Returns a rate at which DHCPv6 Release messages are sent.

Returns
  A rate at which DHCPv6 Release messages are sent.

Definition at line 172 of file command_options.h.

Referenced by isc::perfdhcp::StatsMgr::StatsMgr(), and printCommandLine().

## ◆ getRemotePort()

int isc::perfdhcp::CommandOptions::getRemotePort | ( |  | ) | const
| inline

Returns remote port number.

Returns
  remote port number.

Definition at line 286 of file command_options.h.

Referenced by printCommandLine().

## ◆ getRenewRate()

int isc::perfdhcp::CommandOptions::getRenewRate | ( |  | ) | const
| inline

Returns a rate at which DHCPv6 Renew messages are sent.

Returns
  A rate at which IPv6 Renew messages are sent.

Definition at line 167 of file command_options.h.

Referenced by isc::perfdhcp::StatsMgr::StatsMgr(), and printCommandLine().

## ◆ getReportDelay()

int isc::perfdhcp::CommandOptions::getReportDelay | ( |  | ) | const
| inline

Returns delay between two performance reports.

Returns
  delay between two consecutive performance reports.

Definition at line 177 of file command_options.h.

## ◆ getRequestedIpOffset()

int isc::perfdhcp::CommandOptions::getRequestedIpOffset | ( |  | ) | const
| inline

Returns template offset for requested IP.

Returns
  template offset for requested IP.

Definition at line 366 of file command_options.h.

## ◆ getScenario()

Scenario isc::perfdhcp::CommandOptions::getScenario | ( |  | ) | const
| inline

Returns selected scenario.

Returns
  enum Scenario.

Definition at line 401 of file command_options.h.

Referenced by main().

## ◆ getSeed()

uint32_t isc::perfdhcp::CommandOptions::getSeed | ( |  | ) | const
| inline

Returns random seed.

Returns
  random seed.

Definition at line 301 of file command_options.h.

## ◆ getServerIdOffset()

int isc::perfdhcp::CommandOptions::getServerIdOffset | ( |  | ) | const
| inline

Returns template offset for server-ID.

Returns
  template offset for server-ID.

Definition at line 361 of file command_options.h.

## ◆ getServerName()

std::string isc::perfdhcp::CommandOptions::getServerName | ( |  | ) | const
| inline

Returns server name.

Returns
  server name.

Definition at line 406 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket().

## ◆ getTemplateFiles()

std::vector< std::string > isc::perfdhcp::CommandOptions::getTemplateFiles | ( |  | ) | const
| inline

Returns template file names.

Returns
  template file names.

Definition at line 326 of file command_options.h.

## ◆ getTransactionIdOffset()

std::vector< int > isc::perfdhcp::CommandOptions::getTransactionIdOffset | ( |  | ) | const
| inline

brief Returns template offsets for xid.

Returns
  template offsets for xid.

Definition at line 346 of file command_options.h.

## ◆ getWaitForElapsedTime()

int isc::perfdhcp::CommandOptions::getWaitForElapsedTime | ( |  | ) | const
| inline

Returns time to wait for elapsed time increase.

Returns
  how long perfdhcp will wait before start sending messages with increased elapsed time.

Definition at line 228 of file command_options.h.

## ◆ getWrapped()

std::string isc::perfdhcp::CommandOptions::getWrapped | ( |  | ) | const
| inline

Returns wrapped command.

Returns
  wrapped command (start/stop).

Definition at line 376 of file command_options.h.

## ◆ isBroadcast()

bool isc::perfdhcp::CommandOptions::isBroadcast | ( |  | ) | const
| inline

Checks if broadcast address is to be used.

Returns
  true if broadcast address is to be used.

Definition at line 306 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket().

## ◆ isInterface()

bool isc::perfdhcp::CommandOptions::isInterface | ( |  | ) | const
| inline

Checks if interface name was used.

The method checks if interface name was used rather than address.

Returns
  true if interface name was used.

Definition at line 271 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket().

## ◆ isRapidCommit()

bool isc::perfdhcp::CommandOptions::isRapidCommit | ( |  | ) | const
| inline

Check if rapid commit option used.

Returns
  true if rapid commit option is used.

Definition at line 311 of file command_options.h.

## ◆ isSeeded()

bool isc::perfdhcp::CommandOptions::isSeeded | ( |  | ) | const
| inline

Checks if seed provided.

Returns
  true if seed was provided.

Definition at line 296 of file command_options.h.

## ◆ isSingleThreaded()

bool isc::perfdhcp::CommandOptions::isSingleThreaded | ( |  | ) | const
| inline

Check if single-threaded mode is enabled.

Returns
  true if single-threaded mode is enabled.

Definition at line 396 of file command_options.h.

## ◆ isUseFirst()

bool isc::perfdhcp::CommandOptions::isUseFirst | ( |  | ) | const
| inline

Check if server-ID to be taken from first package.

Returns
  true if server-iD to be taken from first package.

Definition at line 316 of file command_options.h.

## ◆ isUseRelayedV6()

bool isc::perfdhcp::CommandOptions::isUseRelayedV6 | ( |  | ) | const
| inline

Check if generated DHCPv6 messages should appear as relayed.

Returns
  true if generated traffic should appear as relayed.

Definition at line 321 of file command_options.h.

Referenced by isc::perfdhcp::PerfSocket::openSocket().

## ◆ parse()

bool isc::perfdhcp::CommandOptions::parse | ( | int | argc,
|  | char **const | argv,
|  | bool | print_cmd_line = false )

Parse command line.

Parses the command line and stores the selected options in class data members.

Parameters

  argc | Argument count passed to main().
  argv | Argument value array passed to main().
  print_cmd_line | Print the command line being run to the console.

Exceptions

  isc::InvalidParameter | if parse fails.

Returns
  true if program has been run in help or version mode ('h' or 'v' flag).

Definition at line 174 of file command_options.cc.

References reset().

Referenced by main().

Here is the call graph for this function:

## ◆ printCommandLine()

void isc::perfdhcp::CommandOptions::printCommandLine | ( |  | ) | const

Print command line arguments.

Definition at line 1149 of file command_options.cc.

References DO_SA, getLeaseType(), getLocalPort(), getReleaseRate(), getRemotePort(), getRenewRate(), and isc::perfdhcp::CommandOptions::LeaseType::toText().

Here is the call graph for this function:

## ◆ reset()

void isc::perfdhcp::CommandOptions::reset | ( |  | ) |

Reset to defaults.

Reset data members to default values. This is specifically useful when unit tests are performed using different command line options.

Definition at line 100 of file command_options.cc.

References isc::perfdhcp::CommandOptions::LeaseType::ADDRESS, isc::perfdhcp::BASIC, DORA_SARR, and RELAY_OPTIONS_MAX_ENCAPSULATION.

Referenced by CommandOptions(), and parse().

## ◆ testDiags()

bool isc::perfdhcp::CommandOptions::testDiags | ( | const char | diag | ) |
| inline

Find if diagnostic flag has been set.

Parameters

  diag | diagnostic flag (a,e,i,s,r,t,T).

Returns
  true if diagnostics flag has been set.

Definition at line 432 of file command_options.h.

References getDiags().

Referenced by isc::perfdhcp::StatsMgr::StatsMgr().

Here is the call graph for this function:

## ◆ usage()

void isc::perfdhcp::CommandOptions::usage | ( |  | ) |
| static

Print usage.

Prints perfdhcp usage.

Definition at line 1258 of file command_options.cc.

Referenced by main().

## ◆ version()

void isc::perfdhcp::CommandOptions::version | ( |  | ) | const

Print program version.

Definition at line 1264 of file command_options.cc.

## Member Data Documentation

## ◆ RELAY_OPTIONS_MAX_ENCAPSULATION

const uint8_t isc::perfdhcp::CommandOptions::RELAY_OPTIONS_MAX_ENCAPSULATION = 1
| static

Maximum allowed level of encapsulation of added relay options.

Definition at line 45 of file command_options.h.

Referenced by getRelayOpts(), and reset().

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

- command_options.h
- command_options.cc