]> git.meshlink.io Git - meshlink/blob - test/blackbox/run_blackbox_tests/test_optimal_pmtu.h
Add test cases for the PMTU discovery mechanism.
[meshlink] / test / blackbox / run_blackbox_tests / test_optimal_pmtu.h
1 #ifndef TEST_CASES_OPTIMAL_PMTU_H
2 #define TEST_CASES_OPTIMAL_PMTU_H
3
4 /*
5     test_optimal_pmtu.h -- Declarations for Individual Test Case implementation functions
6     Copyright (C) 2019  Guus Sliepen <guus@meshlink.io>
7
8     This program is free software; you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
10     the Free Software Foundation; either version 2 of the License, or
11     (at your option) any later version.
12
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
17
18     You should have received a copy of the GNU General Public License along
19     with this program; if not, write to the Free Software Foundation, Inc.,
20     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23 #include <stdbool.h>
24
25 #pragma pack(1)
26
27 extern int test_optimal_pmtu(void);
28 extern int total_tests;
29 extern char *lxc_path;
30
31 typedef struct pmtu_attr_para {
32         int    probes;
33         int    probes_total_len;
34         int    count;
35         time_t time;
36         time_t time_l;
37         time_t time_h;
38 } pmtu_attr_para_t;
39
40 typedef struct pmtu_attr {
41         pmtu_attr_para_t mtu_sent_probes;
42         pmtu_attr_para_t mtu_recv_probes;
43         pmtu_attr_para_t mtu_discovery;
44         pmtu_attr_para_t mtu_ping;
45         pmtu_attr_para_t mtu_increase;
46         pmtu_attr_para_t mtu_start;
47         int mtu_size;
48 } pmtu_attr_t;
49
50 #define NODE_PMTU_RELAY 0
51 #define NODE_PMTU_PEER 1
52
53 #define find_node_index(i, node_name) if(!strcasecmp(node_name, "peer")) {          \
54                 i = NODE_PMTU_PEER;                        \
55         } else if(!strcasecmp(node_name, "relay")) {  \
56                 i = NODE_PMTU_RELAY;                        \
57         } else {                                      \
58                 abort();                                    \
59         }
60
61 #define PING_TRACK_TIMEOUT 500
62
63 #endif // TEST_CASES_OPTIMAL_PMTU_H