From c5904b080b97a1d20a5a9f4afefb171e3265e721 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 20 Dec 2019 12:15:32 +0000 Subject: [PATCH] SSU: Reduce log level on packet size error (ticket #2675) --- .../net/i2p/router/transport/udp/PacketBuilder.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java index c594a7222b..3dbf0192b9 100644 --- a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java +++ b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java @@ -550,11 +550,14 @@ class PacketBuilder { authenticate(packet, peer.getCurrentCipherKey(), peer.getCurrentMACKey()); setTo(packet, peer.getRemoteIPAddress(), peer.getRemotePort()); + // FIXME ticket #2675 // the packet could have been built before the current mtu got lowered, so // compare to LARGE_MTU - int maxMTU = peer.isIPv6() ? PeerState.MAX_IPV6_MTU : PeerState.LARGE_MTU; - if (off + (ipHeaderSize + UDP_HEADER_SIZE) > maxMTU) { - _log.error("Size is " + off + " for " + packet + + // Also happens on switch between IPv4 and IPv6 + if (_log.shouldWarn()) { + int maxMTU = peer.isIPv6() ? PeerState.MAX_IPV6_MTU : PeerState.LARGE_MTU; + if (off + (ipHeaderSize + UDP_HEADER_SIZE) > maxMTU) { + _log.warn("Size is " + off + " for " + packet + " data size " + dataSize + " pkt size " + (off + (ipHeaderSize + UDP_HEADER_SIZE)) + " MTU " + currentMTU + @@ -563,6 +566,7 @@ class PacketBuilder { explicitToSend + " full acks included, " + partialAcksToSend + " partial acks included, " + " Fragments: " + DataHelper.toString(fragments), new Exception()); + } } return packet;