 |
Flowgrind
Advanced TCP traffic generator
|
Flowgrind controller.
More...
#include "config.h"
#include <stdbool.h>
#include <limits.h>
#include "common.h"
#include "fg_list.h"
Go to the source code of this file.
|
enum | column_id {
COL_FLOW_ID = 0,
COL_BEGIN,
COL_END,
COL_THROUGH,
COL_TRANSAC,
COL_BLOCK_REQU,
COL_BLOCK_RESP,
COL_RTT_MIN,
COL_RTT_AVG,
COL_RTT_MAX,
COL_IAT_MIN,
COL_IAT_AVG,
COL_IAT_MAX,
COL_DLY_MIN,
COL_DLY_AVG,
COL_DLY_MAX,
COL_TCP_CWND,
COL_TCP_SSTH,
COL_TCP_UACK,
COL_TCP_SACK,
COL_TCP_LOST,
COL_TCP_RETR,
COL_TCP_TRET,
COL_TCP_FACK,
COL_TCP_REOR,
COL_TCP_BKOF,
COL_TCP_RTT,
COL_TCP_RTTVAR,
COL_TCP_RTO,
COL_TCP_CA_STATE,
COL_SMSS,
COL_PMTU,
COL_STATUS,
NUM_COL
} |
| IDs to explicit address an intermediated interval report column. More...
|
|
enum | long_opt_only { LOG_FILE_OPTION = CHAR_MAX + 1
} |
| For long options with no equivalent short option, use pseudo short option. More...
|
|
enum | mutex_context_t { MUTEX_CONTEXT_CONTROLLER = 0,
MUTEX_CONTEXT_TWO_SIDED,
MUTEX_CONTEXT_SOURCE,
MUTEX_CONTEXT_DESTINATION
} |
| Mutual exclusion contexts for options. More...
|
|
enum | option_t { OPT_CONTROLLER,
OPT_SELECTOR,
OPT_FLOW,
OPT_FLOW_ENDPOINT
} |
| Option types in flowgrind controller. More...
|
|
enum | os_t { LINUX = 0,
FREEBSD,
DARWIN,
NUM_OSes
} |
| Supported operating systems. More...
|
|
enum | protocol_t { PROTO_TCP = 1,
PROTO_UDP
} |
| Transport protocols. More...
|
|
enum | tcp_stack_t { SEGMENT_BASED = 0,
BYTE_BASED
} |
| Unit of the TCP Stack. More...
|
|
Flowgrind controller.
Definition in file flowgrind.h.
◆ GUARDBAND
Number of whitespaces between to two interval report columns.
Definition at line 44 of file flowgrind.h.
◆ MAX_COLUM_TOO_LARGE
#define MAX_COLUM_TOO_LARGE 5 |
How often an interval report column can be too large before get shrinked.
Definition at line 47 of file flowgrind.h.
◆ MAX_REPORTS_IN_ROW
#define MAX_REPORTS_IN_ROW 25 |
Number of emited reports before interval header is printed again.
Definition at line 50 of file flowgrind.h.
◆ column_id
IDs to explicit address an intermediated interval report column.
Enumerator |
---|
COL_FLOW_ID | Flow ID.
|
COL_BEGIN | Report interval.
|
COL_END | Report interval.
|
COL_THROUGH | Throughput per seconds.
|
COL_TRANSAC | Transactions per second.
|
COL_BLOCK_REQU | Blocks per second.
|
COL_BLOCK_RESP | Blocks per second.
|
COL_RTT_MIN | Application level round-trip time.
|
COL_RTT_AVG | Application level round-trip time.
|
COL_RTT_MAX | Application level round-trip time.
|
COL_IAT_MIN | Application level inter-arrival time.
|
COL_IAT_AVG | Application level inter-arrival time.
|
COL_IAT_MAX | Application level inter-arrival time.
|
COL_DLY_MIN | Application level one-way delay.
|
COL_DLY_AVG | Application level one-way delay.
|
COL_DLY_MAX | Application level one-way delay.
|
COL_TCP_CWND | Metric from the Linux / BSD TCP stack.
|
COL_TCP_SSTH | Metric from the Linux / BSD TCP stack.
|
COL_TCP_UACK | Metric from the Linux / BSD TCP stack.
|
COL_TCP_SACK | Metric from the Linux / BSD TCP stack.
|
COL_TCP_LOST | Metric from the Linux / BSD TCP stack.
|
COL_TCP_RETR | Metric from the Linux / BSD TCP stack.
|
COL_TCP_TRET | Metric from the Linux / BSD TCP stack.
|
COL_TCP_FACK | Metric from the Linux / BSD TCP stack.
|
COL_TCP_REOR | Metric from the Linux / BSD TCP stack.
|
COL_TCP_BKOF | Metric from the Linux / BSD TCP stack.
|
COL_TCP_RTT | Metric from the Linux / BSD TCP stack.
|
COL_TCP_RTTVAR | Metric from the Linux / BSD TCP stack.
|
COL_TCP_RTO | Metric from the Linux / BSD TCP stack.
|
COL_TCP_CA_STATE | Metric from the Linux / BSD TCP stack.
|
COL_SMSS | Metric from the Linux / BSD TCP stack.
|
COL_PMTU | Metric from the Linux / BSD TCP stack.
|
COL_STATUS | Read / write status.
|
NUM_COL | Number of elements in enum.
Must be last element.
|
Definition at line 97 of file flowgrind.h.
◆ long_opt_only
For long options with no equivalent short option, use pseudo short option.
Enumerator |
---|
LOG_FILE_OPTION | Pseudo short option for option –log-file.
|
Definition at line 172 of file flowgrind.h.
◆ mutex_context_t
Mutual exclusion contexts for options.
Enumerator |
---|
MUTEX_CONTEXT_CONTROLLER | Context for controller options.
|
MUTEX_CONTEXT_TWO_SIDED | Context for flow options for both endpoints.
|
MUTEX_CONTEXT_SOURCE | Context for flow options on source side.
|
MUTEX_CONTEXT_DESTINATION | Context for flow options on destination side.
|
Definition at line 160 of file flowgrind.h.
◆ option_t
Option types in flowgrind controller.
Enumerator |
---|
OPT_CONTROLLER | General controller options.
|
OPT_SELECTOR | Selects a subset of flows to apply options to (-F).
|
OPT_FLOW | Flow option without endpoint string.
|
OPT_FLOW_ENDPOINT | Flow option with endpoint string.
|
Definition at line 148 of file flowgrind.h.
◆ os_t
Supported operating systems.
Enumerator |
---|
LINUX | Linux.
|
FREEBSD | FreeBSD.
|
DARWIN | Apple OS X.
|
NUM_OSes | Number of elements in enum.
Must be last element.
|
Definition at line 61 of file flowgrind.h.
◆ protocol_t
Transport protocols.
Enumerator |
---|
PROTO_TCP | Transmission Control Protocol.
|
PROTO_UDP | User Datagram Protocol.
|
Definition at line 53 of file flowgrind.h.
◆ tcp_stack_t
Unit of the TCP Stack.
Enumerator |
---|
SEGMENT_BASED | Linux is a segment-based stack.
|
BYTE_BASED | FreeBSD and OS X stack is a bytes-based stack.
|
Definition at line 73 of file flowgrind.h.
@ COL_TCP_LOST
Metric from the Linux / BSD TCP stack.
@ COL_BLOCK_REQU
Blocks per second.
@ MUTEX_CONTEXT_DESTINATION
Context for flow options on destination side.
@ MUTEX_CONTEXT_CONTROLLER
Context for controller options.
@ COL_IAT_AVG
Application level inter-arrival time.
@ COL_TCP_UACK
Metric from the Linux / BSD TCP stack.
@ LOG_FILE_OPTION
Pseudo short option for option –log-file.
@ COL_STATUS
Read / write status.
@ COL_TCP_TRET
Metric from the Linux / BSD TCP stack.
@ COL_IAT_MAX
Application level inter-arrival time.
@ COL_RTT_MIN
Application level round-trip time.
@ COL_RTT_AVG
Application level round-trip time.
@ COL_TCP_RTTVAR
Metric from the Linux / BSD TCP stack.
@ COL_TCP_REOR
Metric from the Linux / BSD TCP stack.
@ COL_THROUGH
Throughput per seconds.
@ NUM_COL
Number of elements in enum.
@ OPT_FLOW_ENDPOINT
Flow option with endpoint string.
@ COL_BLOCK_RESP
Blocks per second.
@ COL_TCP_SSTH
Metric from the Linux / BSD TCP stack.
@ OPT_SELECTOR
Selects a subset of flows to apply options to (-F).
@ COL_TCP_RETR
Metric from the Linux / BSD TCP stack.
@ COL_IAT_MIN
Application level inter-arrival time.
@ OPT_FLOW
Flow option without endpoint string.
@ COL_SMSS
Metric from the Linux / BSD TCP stack.
@ COL_BEGIN
Report interval.
@ MUTEX_CONTEXT_SOURCE
Context for flow options on source side.
@ COL_END
Report interval.
@ OPT_CONTROLLER
General controller options.
@ COL_TCP_BKOF
Metric from the Linux / BSD TCP stack.
@ PROTO_TCP
Transmission Control Protocol.
@ COL_PMTU
Metric from the Linux / BSD TCP stack.
@ COL_TCP_CA_STATE
Metric from the Linux / BSD TCP stack.
@ NUM_OSes
Number of elements in enum.
@ MUTEX_CONTEXT_TWO_SIDED
Context for flow options for both endpoints.
@ COL_TCP_SACK
Metric from the Linux / BSD TCP stack.
@ COL_DLY_AVG
Application level one-way delay.
@ COL_RTT_MAX
Application level round-trip time.
@ COL_DLY_MIN
Application level one-way delay.
@ PROTO_UDP
User Datagram Protocol.
@ COL_TCP_RTO
Metric from the Linux / BSD TCP stack.
@ COL_DLY_MAX
Application level one-way delay.
@ BYTE_BASED
FreeBSD and OS X stack is a bytes-based stack.
@ COL_TCP_FACK
Metric from the Linux / BSD TCP stack.
@ COL_TCP_CWND
Metric from the Linux / BSD TCP stack.
@ COL_TCP_RTT
Metric from the Linux / BSD TCP stack.
@ SEGMENT_BASED
Linux is a segment-based stack.
@ COL_TRANSAC
Transactions per second.