[netstack] Add IPStats.PacketsSent
This change adds a PacketsSent field to the tcpip.IPStats structs which
counts the total number of IP packets sent via the WritePacket method.
Change-Id: I1700d54bb26b9c42466ad64279014e8069f298d6
diff --git a/tcpip/network/ipv4/ipv4.go b/tcpip/network/ipv4/ipv4.go
index 6617998..1cace79 100644
--- a/tcpip/network/ipv4/ipv4.go
+++ b/tcpip/network/ipv4/ipv4.go
@@ -114,6 +114,7 @@
DstAddr: r.RemoteAddress,
})
ip.SetChecksum(^ip.CalculateChecksum())
+ atomic.AddUint64(&r.MutableStats().IP.PacketsSent, 1)
return e.linkEP.WritePacket(r, hdr, payload, ProtocolNumber)
}
diff --git a/tcpip/network/ipv6/ipv6.go b/tcpip/network/ipv6/ipv6.go
index 8e462e4..217d4de 100644
--- a/tcpip/network/ipv6/ipv6.go
+++ b/tcpip/network/ipv6/ipv6.go
@@ -86,6 +86,7 @@
SrcAddr: r.LocalAddress,
DstAddr: r.RemoteAddress,
})
+ atomic.AddUint64(&r.MutableStats().IP.PacketsSent, 1)
return e.linkEP.WritePacket(r, hdr, payload, ProtocolNumber)
}
diff --git a/tcpip/stack/stack.go b/tcpip/stack/stack.go
index 5ed467a..3805818 100644
--- a/tcpip/stack/stack.go
+++ b/tcpip/stack/stack.go
@@ -153,6 +153,7 @@
DroppedPackets: atomic.LoadUint64(&s.stats.DroppedPackets),
IP: tcpip.IPStats{
PacketsReceived: atomic.LoadUint64(&s.stats.IP.PacketsReceived),
+ PacketsSent: atomic.LoadUint64(&s.stats.IP.PacketsSent),
},
TCP: tcpip.TCPStats{
ActiveConnectionOpenings: atomic.LoadUint64(&s.stats.TCP.ActiveConnectionOpenings),
diff --git a/tcpip/tcpip.go b/tcpip/tcpip.go
index 646d5df..7d39fc9 100644
--- a/tcpip/tcpip.go
+++ b/tcpip/tcpip.go
@@ -415,6 +415,8 @@
// PacketsReceived is the total number of IP packets received via
// HandlePacket.
PacketsReceived uint64
+ // PacketsSent is the total number of IP packets sent via WritePacket.
+ PacketsSent uint64
}
// TCPStats collects TCP-specific stats.