From e5bcfe42072cf8db9d0be8a2a7dfa50202a11532 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 9 Nov 2016 21:08:21 +0000 Subject: [PATCH] Transport: Add stats for inbound v4/v6 connections (ticket #1854) --- .../src/net/i2p/router/transport/ntcp/NTCPTransport.java | 9 +++++++-- .../src/net/i2p/router/transport/udp/UDPTransport.java | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index 13cba50f5..90138313b 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -150,6 +150,8 @@ public class NTCPTransport extends TransportImpl { //_context.statManager().createRateStat("ntcp.inboundCheckConnection", "", "ntcp", RATES); _context.statManager().createRateStat("ntcp.inboundEstablished", "", "ntcp", RATES); _context.statManager().createRateStat("ntcp.inboundEstablishedDuplicate", "", "ntcp", RATES); + _context.statManager().createRateStat("ntcp.inboundIPv4Conn", "Inbound IPv4 NTCP Connection", "ntcp", RATES); + _context.statManager().createRateStat("ntcp.inboundIPv6Conn", "Inbound IPv6 NTCP Connection", "ntcp", RATES); //_context.statManager().createRateStat("ntcp.infoMessageEnqueued", "", "ntcp", RATES); //_context.statManager().createRateStat("ntcp.floodInfoMessageEnqueued", "", "ntcp", RATES); _context.statManager().createRateStat("ntcp.invalidDH", "", "ntcp", RATES); @@ -213,10 +215,13 @@ public class NTCPTransport extends TransportImpl { synchronized (_conLock) { old = _conByIdent.put(peer, con); } - if (con.isIPv6()) + if (con.isIPv6()) { _lastInboundIPv6 = con.getCreated(); - else + _context.statManager().addRateData("ntcp.inboundIPv6Conn", 1); + } else { _lastInboundIPv4 = con.getCreated(); + _context.statManager().addRateData("ntcp.inboundIPv4Conn", 1); + } return old; } diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index 064e1497a..09ec5a897 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -289,6 +289,8 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority _context.statManager().createRateStat("udp.proactiveReestablish", "How long a session was idle for when we proactively reestablished it", "udp", RATES); _context.statManager().createRateStat("udp.dropPeerDroplist", "How many peers currently have their packets dropped outright when a new peer is added to the list?", "udp", RATES); _context.statManager().createRateStat("udp.dropPeerConsecutiveFailures", "How many consecutive failed sends to a peer did we attempt before giving up and reestablishing a new session (lifetime is inactivity perood)", "udp", RATES); + _context.statManager().createRateStat("udp.inboundIPv4Conn", "Inbound IPv4 UDP Connection", "udp", RATES); + _context.statManager().createRateStat("udp.inboundIPv6Conn", "Inbound IPv4 UDP Connection", "udp", RATES); // following are for PacketBuider //_context.statManager().createRateStat("udp.packetAuthTime", "How long it takes to encrypt and MAC a packet for sending", "udp", RATES); //_context.statManager().createRateStat("udp.packetAuthTimeSlow", "How long it takes to encrypt and MAC a packet for sending (when its slow)", "udp", RATES); @@ -780,6 +782,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority void inboundConnectionReceived(boolean isIPv6) { if (isIPv6) { _lastInboundIPv6 = _context.clock().now(); + _context.statManager().addRateData("udp.inboundIPv6Conn", 1); // former workaround for lack of IPv6 peer testing //if (_currentOurV6Address != null) // setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_OK, true); @@ -788,6 +791,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority // that we are not firewalled. // use OS clock since its an ordering thing, not a time thing _lastInboundReceivedOn = System.currentTimeMillis(); + _context.statManager().addRateData("udp.inboundIPv4Conn", 1); } }