From eb79711e0a1db390a66afe99b9226c1addf6be46 Mon Sep 17 00:00:00 2001 From: Alvaro Saurin Date: Thu, 19 Nov 2015 15:05:16 +0100 Subject: [PATCH 1/2] Added flow misses count --- router/fastdp.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/router/fastdp.go b/router/fastdp.go index b4e7eeff..c1d30fa2 100644 --- a/router/fastdp.go +++ b/router/fastdp.go @@ -40,6 +40,7 @@ type FastDatapath struct { dpif *odp.Dpif dp odp.DatapathHandle deleteFlowsCount uint64 + missCount uint64 missHandlers map[odp.VportID]missHandler localPeer *mesh.Peer peers *mesh.Peers @@ -216,8 +217,10 @@ func (fastdp fastDatapathBridge) String() string { return fmt.Sprint(fastdp.dpname, " (via ODP)") } -func (fastDatapathBridge) Stats() map[string]int { - return nil +func (fastdp fastDatapathBridge) Stats() map[string]int { + return map[string]int{ + "FlowMisses": int(fastdp.missCount), + } } var routerBridgePortID = bridgePortID{router: true} @@ -937,6 +940,8 @@ func (fastdp *FastDatapath) Miss(packet []byte, fks odp.FlowKeys) error { lock := fastdp.startLock() defer lock.unlock() + fastdp.missCount++ + handler := fastdp.getMissHandler(ingress) if handler == nil { return nil From 8ac745b4e5d3d45bd024a0522cd5aea4682168fa Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Wed, 25 Nov 2015 17:05:19 +0000 Subject: [PATCH 2/2] Lock read of miss counter --- router/fastdp.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/router/fastdp.go b/router/fastdp.go index c1d30fa2..571fb10c 100644 --- a/router/fastdp.go +++ b/router/fastdp.go @@ -218,6 +218,9 @@ func (fastdp fastDatapathBridge) String() string { } func (fastdp fastDatapathBridge) Stats() map[string]int { + lock := fastdp.startLock() + defer lock.unlock() + return map[string]int{ "FlowMisses": int(fastdp.missCount), }