Merge pull request #1283 from weaveworks/1185_report_pcap_stats

add pcap stats to `weave report`
This commit is contained in:
Adam Harrison committed 2015-08-11 13:09:34 +01:00
commit c2147f80b7
3 files changed
+21

No files matched your search

+12
View File
@@ -84,3 +84,15 @@ func (pio *PcapIO) ReadPacket() (data []byte, err error) {
func (pio *PcapIO) WritePacket(data []byte) error {
return pio.handle.WritePacketData(data)
}
func (pio *PcapIO) Stats() map[string]int {
stats, err := pio.handle.Stats()
if err != nil {
return nil
}
res := make(map[string]int)
res["PacketsReceived"] = stats.PacketsReceived
res["PacketsDropped"] = stats.PacketsDropped
res["PacketsIfDropped"] = stats.PacketsIfDropped
return res
}
+3
View File
@@ -47,12 +47,14 @@ type Router struct {
gossipLock sync.RWMutex
gossipChannels GossipChannels
TopologyGossip Gossip
PacketSource PacketSource
UDPListener *net.UDPConn
acceptLimiter *TokenBucket
}
type PacketSource interface {
ReadPacket() ([]byte, error)
Stats() map[string]int
}
type PacketSink interface {
@@ -102,6 +104,7 @@ func (router *Router) Start() {
router.UDPListener = router.listenUDP(router.Port, po)
router.listenTCP(router.Port)
if pio != nil {
router.PacketSource = pio
router.sniff(pio)
}
}
+6
View File
@@ -14,6 +14,7 @@ type Status struct {
NickName string
Port int
Interface string
CaptureStats map[string]int
MACs []MACStatus
Peers []PeerStatus
UnicastRoutes []UnicastRouteStatus
@@ -66,6 +67,10 @@ func NewStatus(router *Router) *Status {
if router.Iface != nil {
ifaceName = router.Iface.Name
}
var captureStats map[string]int
if router.PacketSource != nil {
captureStats = router.PacketSource.Stats()
}
return &Status{
Protocol,
ProtocolMinVersion,
@@ -76,6 +81,7 @@ func NewStatus(router *Router) *Status {
router.Ourself.NickName,
router.Port,
ifaceName,
captureStats,
NewMACStatusSlice(router.Macs),
NewPeerStatusSlice(router.Peers),
NewUnicastRouteStatusSlice(router.Routes),