 |
Flowgrind
Advanced TCP traffic generator
|
Go to the documentation of this file.
35 #include <sys/types.h>
36 #include <sys/socket.h>
39 #include <gsl/gsl_rng.h>
45 #include <xmlrpc-c/base.h>
46 #include <xmlrpc-c/server.h>
47 #include <xmlrpc-c/server_abyss.h>
48 #include <xmlrpc-c/util.h>
51 #define DEFAULT_SELECT_TIMEOUT 10000000
123 #ifdef HAVE_UNSIGNED_LONG_LONG_INT
173 #define REQUEST_ADD_DESTINATION 0
174 #define REQUEST_ADD_SOURCE 1
175 #define REQUEST_START_FLOWS 2
176 #define REQUEST_STOP_FLOW 3
177 #define REQUEST_GET_STATUS 4
178 #define REQUEST_GET_UUID 5
261 extern pthread_mutex_t
mutex;
unsigned response_blocks_read
pthread_cond_t * add_source_condition
double delay_sum
Accumulated one-way delay.
unsigned current_read_block_size
struct flow_source_settings source_settings
double iat_min
Minimum interarrival time.
struct report * get_reports(int *has_more)
int real_send_buffer_size
int real_listen_read_buffer_size
struct flow_settings settings
char destination_host[256]
int real_read_buffer_size
double rtt_sum
Accumulated round-trip time.
void add_report(struct report *report)
struct flow_settings settings
char cc_alg[TCP_CA_NAME_MAX]
int real_listen_send_buffer_size
struct fg_tcp_info tcp_info
double delay_max
Maximum one-way delay.
struct flow_source_settings source_settings
struct request * requests
struct timespec next_write_block_timestamp
double delay_min
Minimum one-way delay.
struct flow_settings settings
struct pcap_dumper_t * pcap_dumper
struct timespec last_report_time
int set_flow_tcp_options(struct flow *flow)
unsigned long long bytes_written
double rtt_max
Maximum round-trip time.
unsigned current_block_bytes_read
unsigned response_blocks_written
unsigned current_write_block_size
void flow_error(struct flow *flow, const char *fmt,...)
endpoint_t
Flow endpoint types.
unsigned real_listen_receive_buffer_size
void get_uuid_string(char *uuid_str)
To generate daemon UUID.
unsigned request_blocks_read
Generic doubly linked list implementation.
unsigned real_listen_send_buffer_size
struct timespec last_block_read
unsigned congestion_counter
pthread_cond_t * condition
structure for getting the UUID.
Data structures used by the Flowgrind daemon and controller.
struct timespec last_block_written
struct request * requests_last
void * daemon_main(void *ptr)
struct request r
Daemon thread process the request r.
struct timespec stop_timestamp[2]
unsigned long long bytes_read
struct timespec start_timestamp[2]
struct timespec next_report_time
enum report_t type
Report type - either INTERVAL or FINAL report.
unsigned request_blocks_written
double iat_max
Maximum interarrival time.
double rtt_min
Minimum round-trip time.
unsigned short requested_server_test_port
int dispatch_request(struct request *request, int type)
Dispatch a request to daemon loop.
struct timespec first_report_time
#define TCP_CA_NAME_MAX
Max size of the congestion control algorithm specifier string.
struct pcap_t * pcap_handle
unsigned current_block_bytes_written
void request_error(struct request *request, const char *fmt,...)
double iat_sum
Accumulated interarrival time.
char server_uuid[38]
UUID from the daemon.
struct report * reports_last
Settings that describe a flow between from a endpoint's perspective.