tor_multipath_voip/src/measure.h

45 lines
1.1 KiB
C
Raw Normal View History

2019-09-24 13:37:12 +00:00
#pragma once
2019-09-23 14:32:59 +00:00
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <time.h>
#include <string.h>
2021-01-26 11:13:03 +00:00
#include <uuid/uuid.h>
2019-09-23 14:32:59 +00:00
#include "utils.h"
2021-01-13 10:25:50 +00:00
struct measure_params {
2019-09-23 14:32:59 +00:00
uint64_t max_measure;
uint64_t payload_size;
uint64_t interval;
2021-01-08 17:30:22 +00:00
uint8_t is_server;
2021-01-26 11:13:03 +00:00
char* tag;
2019-09-23 14:32:59 +00:00
};
2021-01-13 10:25:50 +00:00
struct measure_state {
2021-01-26 11:13:03 +00:00
uuid_t uuid;
uint64_t* log;
2021-01-13 10:25:50 +00:00
struct measure_packet* mp_out;
struct measure_packet* mp_in;
ssize_t mp_nin;
int fd;
};
2021-01-14 16:43:38 +00:00
#pragma pack(1)
2019-09-23 14:32:59 +00:00
struct measure_packet {
uint64_t counter;
2019-10-09 15:07:51 +00:00
uint8_t flag;
2019-09-23 14:32:59 +00:00
struct timespec emit_time;
};
2021-01-13 10:25:50 +00:00
void measure_params_init(struct measure_params* mp);
2021-01-26 11:13:03 +00:00
void measure_params_setpl (struct measure_params* mp, size_t plsize);
2021-01-13 10:25:50 +00:00
void measure_state_init(struct measure_params* mp, struct measure_state* ms);
2021-01-26 11:13:03 +00:00
void measure_state_free(struct measure_state* ms);
2021-01-13 10:25:50 +00:00
2021-01-26 11:13:03 +00:00
void measure_parse(struct measure_params* mp, struct measure_state* ms, uint8_t verbose);
2021-01-13 10:25:50 +00:00
struct measure_packet* measure_generate(struct measure_params* mp, struct measure_state* ms);
void measure_next_tick(struct measure_params *mp, struct measure_state* ms, struct timespec *next);
2021-01-26 11:13:03 +00:00
void measure_summary(struct measure_params* mp, struct measure_state* ms);