mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-18 02:48:40 +00:00
net/tunstats: add Counts.Add (#5848)
The Counts.Add method merges two Counts together. Signed-off-by: Joe Tsai <joetsai@digital-static.net>
This commit is contained in:
parent
3af0d4d0f2
commit
a73c423c8a
@ -29,6 +29,15 @@ type Counts struct {
|
||||
RxBytes uint64 `json:"rxBytes,omitempty"`
|
||||
}
|
||||
|
||||
// Add adds the counts from both c1 and c2.
|
||||
func (c1 Counts) Add(c2 Counts) Counts {
|
||||
c1.TxPackets += c2.TxPackets
|
||||
c1.TxBytes += c2.TxBytes
|
||||
c1.RxPackets += c2.RxPackets
|
||||
c1.RxBytes += c2.RxBytes
|
||||
return c1
|
||||
}
|
||||
|
||||
// UpdateTx updates the counters for a transmitted IP packet
|
||||
// The source and destination of the packet directly correspond with
|
||||
// the source and destination in flowtrack.Tuple.
|
||||
|
@ -111,13 +111,8 @@ func TestConcurrent(t *testing.T) {
|
||||
|
||||
func mergeMaps(dst map[flowtrack.Tuple]Counts, srcs ...map[flowtrack.Tuple]Counts) {
|
||||
for _, src := range srcs {
|
||||
for tuple, cntsSrc := range src {
|
||||
cntsDst := dst[tuple]
|
||||
cntsDst.TxPackets += cntsSrc.TxPackets
|
||||
cntsDst.TxBytes += cntsSrc.TxBytes
|
||||
cntsDst.RxPackets += cntsSrc.RxPackets
|
||||
cntsDst.RxBytes += cntsSrc.RxBytes
|
||||
dst[tuple] = cntsDst
|
||||
for tuple, cnts := range src {
|
||||
dst[tuple] = dst[tuple].Add(cnts)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user