 |
Flowgrind
Advanced TCP traffic generator
|
Go to the documentation of this file.
44 #define FLOWGRIND_VERSION GITVERSION
45 #elif defined PACKAGE_VERSION
46 #define FLOWGRIND_VERSION PACKAGE_VERSION
48 #define FLOWGRIND_VERSION "(n/a)"
52 #define FLOWGRIND_API_VERSION 3
55 #define DEFAULT_LISTEN_PORT 5999
58 #define MAX_FLOWS_CONTROLLER 2048
65 #define MAX_FLOWS_DAEMON FD_SETSIZE >> 1
68 #define MAX_EXTRA_SOCKET_OPTIONS 10
71 #define MAX_EXTRA_SOCKET_OPTION_VALUE_LENGTH 100
73 #ifndef TCP_CA_NAME_MAX
75 #define TCP_CA_NAME_MAX 16
79 #define MIN_BLOCK_SIZE (signed) sizeof (struct block)
82 #define FLOWGRIND_COPYRIGHT "Copyright (C) 2007 - 2021 Flowgrind authors."
85 #define FLOWGRIND_COPYING \
86 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n" \
87 "This is free software: you are free to change and redistribute it.\n" \
88 "There is NO WARRANTY, to the extent permitted by law."
91 #define FLOWGRIND_AUTHORS \
92 "Written by Arnd Hannemann, Tim Kosse, Christian Samsel, Daniel Schaffrath\n" \
93 "and Alexander Zimmermann."
294 #ifdef HAVE_UNSIGNED_LONG_LONG_INT
@ UNIFORM
Uniform distribution.
@ INTERVAL
Intermediated interval report.
enum distribution_t distribution
The stochastic distribution to draw values from.
#define MAX_EXTRA_SOCKET_OPTIONS
Max number of arbitrary extra socket options which may sent to the deamon.
unsigned random_seed
Random seed to use (default: read /dev/urandom) (option -J).
int32_t request_block_size
Size of the response block we request.
double rtt_max
Maximum round-trip time.
double rtt_sum
Accumulated round-trip time.
#define MAX_EXTRA_SOCKET_OPTION_VALUE_LENGTH
Ensures extra options are limited in length on both controller and deamon.
int32_t this_block_size
Size of our request or response block.
int dscp
DSCP value for TOS byte (option -D).
int requested_read_buffer_size
Request receiver buffer, advertised window in bytes (option -W).
double delay_max
Maximum one-way delay.
unsigned request_blocks_written
unsigned long long bytes_read
double iat_sum
Accumulated inter-arrival time.
@ DESTINATION
Endpoint that accepts the connection.
double duration[2]
Duration of flow in seconds (option -T).
int cork
Sets SO_DEBUG on test socket (option -O).
double delay_min
Minimum one-way delay.
@ PARETO
Pareto distribution.
double param_two
Second mathematical parameter of the distribution, if required.
int byte_counting
Enumerate bytes in payload instead of sending zeros (option -E).
char cc_alg[TCP_CA_NAME_MAX]
Set congestion control algorithm ALG on test socket (option -O).
struct trafgen_options response_trafgen_options
Stochastic traffic generation settings for the response size.
struct trafgen_options interpacket_gap_trafgen_options
Stochastic traffic generation settings for the interpacket gap.
int traffic_dump
Dump traffic using libpcap (option -M).
distribution_t
Stochastic distributions for traffic generation.
int ipmtudiscover
Set IP_MTU_DISCOVER on test socket (option -O).
int maximum_block_size
Application buffer size in bytes (option -U).
@ LOGNORMAL
Log Normal distribution.
int flow_control
Stop flow if it is experiencing local congestion (option -C).
@ CONSTANT
No stochastic distribution.
int flow_id
Flow ID maintained by controller.
@ WEIBULL
Weibull distribution.
double iat_max
Maximum inter-arrival time.
int num_extra_socket_options
int pushy
Do not iterate through select() to continue sending in case block size did not suffice to fill sendin...
int nonagle
Disable nagle algorithm on test socket (option -O).
endpoint_t
Flow endpoint types.
Options for stochastic traffic generation.
unsigned long long bytes_written
double reporting_interval
Interval to report flow on screen (option -i).
int write_rate
The actual rate we should send.
@ SOURCE
Endpoint that opens the connection.
int elcn
Set TCP_ELCN (20) on test socket (option -O).
@ EXPONENTIAL
Exponential distribution.
unsigned pmtu
Discovered Path MTU.
Flowgrind's data block layout.
double delay[2]
Delay of flow in seconds (option -Y).
int lcd
Set TCP_LCD (21) on test socket (option -O).
extra_socket_option_level
double delay_sum
Accumulated one-way delay.
unsigned response_blocks_written
struct timespec data
Sending timestap for calculating delay and RTT.
enum report_t type
Report type - either INTERVAL or FINAL report.
int shutdown
Shutdown socket after test flow (option -N).
struct timespec data2
Used to access 64bit timespec on 32bit arch.
enum endpoint_t endpoint
Daemon endpoint - either source or destination.
unsigned imtu
Interface MTU.
#define TCP_CA_NAME_MAX
Max size of the congestion control algorithm specifier string.
struct fg_tcp_info tcp_info
unsigned request_blocks_read
int mtcp
Set TCP_MTCP (15) on test socket (option -O).
const char * write_rate_str
Send at specified rate per second (option -R).
double rtt_min
Minimum round-trip time.
double param_one
First mathemathical parameter of the distribution.
@ NORMAL
Normal distribution.
struct trafgen_options request_trafgen_options
Stochastic traffic generation settings for the request size.
char bind_address[1000]
The interface address for the flow (used by daemon).
int so_debug
Sets SO_DEBUG on test socket (option -O).
double iat_min
Minimum inter-arrival time.
int requested_send_buffer_size
Request sender buffer in bytes (option -B).
unsigned response_blocks_read
int route_record
Sets ROUTE_RECORD on test socket (option -O).
Settings that describe a flow between from a endpoint's perspective.