Commit graph

34 commits

Author SHA1 Message Date
46473a060e C rewrite: phase out std::string 2020-07-22 19:38:14 +02:00
ecc996f3f0 C rewrite: phase out exceptions 2020-07-22 19:09:27 +02:00
7c1e5562f2 C rewrite: phase out smart pointers 2020-07-22 17:04:22 +02:00
b012375427 C rewrite: phase out bitset 2020-07-22 16:17:38 +02:00
8f5d3b9805 C rewrite: C-ify includes (cstdio -> stdio.h) 2020-07-22 15:52:55 +02:00
99f14b84c1 C rewrite: phase out std::chrono 2020-07-22 15:45:16 +02:00
3f4e5ee227 congestion: add leaky bucket, not interfaced yet. 2020-07-22 14:08:30 +02:00
c23741bea3 Measure real-time outbound throughput 2020-07-03 18:03:26 +02:00
7b5ffa4d46 Implement loss-based congestion controller
Still lacks an outbound bandwidth limiter and outbound actual emission
bitrate, to avoid increasing the available bandwidth when the bandwidth
is not saturated.
2020-07-03 16:13:47 +02:00
15f9625a6d Only keep track of total packet loss so far
Remove the packet loss history for last 128 packets
2020-07-02 20:41:56 +02:00
a08808344e Measure RTT 2020-06-28 23:29:39 +02:00
c5541d1e79 Split data and control packets 2020-06-26 19:41:55 +02:00
f07f2a853d Add PacketLossManager 2020-06-23 15:36:49 +02:00
0b8cf0edc1 Tun: reject packets with bad length
Those packets are probably packets truncated because the buffer is not
large enough.
2020-06-16 20:24:59 +02:00
79dbf23784 Set tun MTU based on VpnPacket max payload 2020-06-16 18:57:08 +02:00
94f42d08c0 Switch to single connection paradigm, use TLVs.
Clean up dramatically the codebase by assuming the server has only a
single connection at any time.
2020-06-15 20:39:25 +02:00
324d156cf3 Redefine VpnPackets as TLV containers 2020-06-12 17:36:55 +02:00
20d0d3fc59 Send packets with timestamp and seqno 2020-06-10 18:49:36 +02:00
5a7b108602 Set arbitrary assumed PMTU at 1460 2020-06-10 16:24:26 +02:00
f89cbb6981 Use new VpnPacket 2020-06-05 17:50:36 +02:00
50d28c0506 Add VpnPacket class 2020-06-05 17:49:12 +02:00
b8bb6d2c5f Split UdpVpn in -Client and -Server flavour 2020-06-05 16:19:04 +02:00
8b75660bbc Parse roughly IPv6 header 2020-06-05 16:18:14 +02:00
55ada8abc1 Add class VpnPeer 2020-06-05 16:17:43 +02:00
c728aacb70 Add format_address 2020-06-05 16:17:10 +02:00
a497dade2e TUN: set flag IFF_NO_PI 2020-06-05 16:13:40 +02:00
0332766f0d Bring up tun interface upon creation 2020-06-04 13:31:44 +02:00
ba2293e039 Implement basic UdpVpn 2020-06-04 11:47:00 +02:00
c88ee2d6e9 Add debugging constructs 2020-06-04 11:46:35 +02:00
a27e894fc1 TunDevice: separate poll and read 2020-06-04 11:46:09 +02:00
8ec3f20513 Listen to tun and write back 2020-06-03 14:54:26 +02:00
53444e725c TunDevice: add read/write, cleaner error handling 2020-06-03 14:54:01 +02:00
1f96a34a37 Setup tun device 2020-06-02 13:11:31 +02:00
5c4b52acc6 Initial commit 2020-06-02 11:22:28 +02:00