Commit Graph

28 Commits

Author SHA1 Message Date
Théophile Bastian 3f4e5ee227 congestion: add leaky bucket, not interfaced yet. 2020-07-22 14:08:30 +02:00
Théophile Bastian c23741bea3 Measure real-time outbound throughput 2020-07-03 18:03:26 +02:00
Théophile Bastian 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
Théophile Bastian 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
Théophile Bastian a08808344e Measure RTT 2020-06-28 23:29:39 +02:00
Théophile Bastian c5541d1e79 Split data and control packets 2020-06-26 19:41:55 +02:00
Théophile Bastian f07f2a853d Add PacketLossManager 2020-06-23 15:36:49 +02:00
Théophile Bastian 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
Théophile Bastian 79dbf23784 Set tun MTU based on VpnPacket max payload 2020-06-16 18:57:08 +02:00
Théophile Bastian 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
Théophile Bastian 324d156cf3 Redefine VpnPackets as TLV containers 2020-06-12 17:36:55 +02:00
Théophile Bastian 20d0d3fc59 Send packets with timestamp and seqno 2020-06-10 18:49:36 +02:00
Théophile Bastian 5a7b108602 Set arbitrary assumed PMTU at 1460 2020-06-10 16:24:26 +02:00
Théophile Bastian f89cbb6981 Use new VpnPacket 2020-06-05 17:50:36 +02:00
Théophile Bastian 50d28c0506 Add VpnPacket class 2020-06-05 17:49:12 +02:00
Théophile Bastian b8bb6d2c5f Split UdpVpn in -Client and -Server flavour 2020-06-05 16:19:04 +02:00
Théophile Bastian 8b75660bbc Parse roughly IPv6 header 2020-06-05 16:18:14 +02:00
Théophile Bastian 55ada8abc1 Add class VpnPeer 2020-06-05 16:17:43 +02:00
Théophile Bastian c728aacb70 Add format_address 2020-06-05 16:17:10 +02:00
Théophile Bastian a497dade2e TUN: set flag IFF_NO_PI 2020-06-05 16:13:40 +02:00
Théophile Bastian 0332766f0d Bring up tun interface upon creation 2020-06-04 13:31:44 +02:00
Théophile Bastian ba2293e039 Implement basic UdpVpn 2020-06-04 11:47:00 +02:00
Théophile Bastian c88ee2d6e9 Add debugging constructs 2020-06-04 11:46:35 +02:00
Théophile Bastian a27e894fc1 TunDevice: separate poll and read 2020-06-04 11:46:09 +02:00
Théophile Bastian 8ec3f20513 Listen to tun and write back 2020-06-03 14:54:26 +02:00
Théophile Bastian 53444e725c TunDevice: add read/write, cleaner error handling 2020-06-03 14:54:01 +02:00
Théophile Bastian 1f96a34a37 Setup tun device 2020-06-02 13:11:31 +02:00
Théophile Bastian 5c4b52acc6 Initial commit 2020-06-02 11:22:28 +02:00