From 6e07721794a1331981c43be269b6e4adf8b4b88da5d56db05f8a1d52fdd39099 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 14 Apr 2024 11:41:21 +0300 Subject: [PATCH] Consider overhead length in statistics --- cmd/client/main.go | 6 +++--- cmd/server/main.go | 4 ++-- internal/var.go | 12 +++++++++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cmd/client/main.go b/cmd/client/main.go index 71fe10f..c745dea 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -501,7 +501,7 @@ func main() { continue } stream.stats.pkts++ - stream.stats.bytes += uint64(n) + stream.stats.bytes += vors.IPHdrLen(from.IP) + 8 + uint64(n) ctr = binary.BigEndian.Uint32(buf) if ctr <= stream.ctr { stream.stats.reorder++ @@ -519,7 +519,7 @@ func main() { continue } OurStats.pkts++ - OurStats.bytes += 1 + OurStats.bytes += vors.IPHdrLen(srvAddrUDP.IP) + 8 + 1 if _, err = conn.Write([]byte{sid}); err != nil { log.Println("send:", err) Finish <- struct{}{} @@ -584,7 +584,7 @@ func main() { pkt = buf[:4+n+vors.TagLen] OurStats.pkts++ - OurStats.bytes += uint64(len(pkt)) + OurStats.bytes += vors.IPHdrLen(srvAddrUDP.IP) + 8 + uint64(len(pkt)) OurStats.last = time.Now() OurStats.AddRMS(pcm) if _, err = conn.Write(pkt); err != nil { diff --git a/cmd/server/main.go b/cmd/server/main.go index 37efdfb..354de6c 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -406,7 +406,7 @@ func main() { } peer.stats.pktsRx++ - peer.stats.bytesRx += uint64(n) + peer.stats.bytesRx += vors.IPHdrLen(from.IP) + 8 + uint64(n) if n == 1 { continue } @@ -442,7 +442,7 @@ func main() { continue } p.stats.pktsTx++ - p.stats.bytesTx += uint64(n) + p.stats.bytesTx += vors.IPHdrLen(p.addr.IP) + 8 + uint64(n) if _, err = lnUDP.WriteToUDP(buf[:n], p.addr); err != nil { slog.Warn("sendto", "peer", peer.name, "err", err) } diff --git a/internal/var.go b/internal/var.go index b4cb3ff..8236a4d 100644 --- a/internal/var.go +++ b/internal/var.go @@ -1,6 +1,9 @@ package internal -import "time" +import ( + "net" + "time" +) const ( TagLen = 8 @@ -15,3 +18,10 @@ var ( PingTime = 10 * time.Second ScreenRefresh = 200 * time.Millisecond ) + +func IPHdrLen(ip net.IP) uint64 { + if ip.To4() == nil { + return 40 + } + return 20 +} -- 2.48.1