We (Stormshield) found an issue with the black hole detection. First, some context :
- We use QUIC to tunnel network traffic
- The traffic is captured on a TUN interface
- It is sent using QUIC datagrams
- The TUN is configured with a MTU of 1412
- The QUIC initial max UDP payload size is configured at 1472
The bug was found during an iperf3 bench between two peers. After an unknown amount of time, the upload traffic reaches 0Mbits/s and never goes up again. After some digging, we found this code, which reset the MTU to 1200 when a black hole is detected, whether PLPMTUD is enabled or not.
Using #1529 fixes the issue because no black hole is detected during the iperf3 bench. We think an issue remains because, if a black hole is detected in another situation, the MTU is still reset. See the line 148 of mtud.rs of #1529 self.current_mtu = BASE_UDP_PAYLOAD_SIZE;.
It would be nice to control the reset value. If you need any additional information, you can ask.
We (Stormshield) found an issue with the black hole detection. First, some context :
The bug was found during an
iperf3bench between two peers. After an unknown amount of time, the upload traffic reaches 0Mbits/s and never goes up again. After some digging, we found this code, which reset the MTU to 1200 when a black hole is detected, whether PLPMTUD is enabled or not.Using #1529 fixes the issue because no black hole is detected during the
iperf3bench. We think an issue remains because, if a black hole is detected in another situation, the MTU is still reset. See the line 148 ofmtud.rsof #1529self.current_mtu = BASE_UDP_PAYLOAD_SIZE;.It would be nice to control the reset value. If you need any additional information, you can ask.