Get NDT test to run via gooni
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package performance
|
||||
|
||||
import (
|
||||
"github.com/measurement-kit/go-measurement-kit"
|
||||
"github.com/openobservatory/gooni/nettests"
|
||||
)
|
||||
|
||||
// NDT test implementation
|
||||
type NDT struct {
|
||||
}
|
||||
|
||||
// Run starts the test
|
||||
func (n NDT) Run(ctl *nettests.Controller) error {
|
||||
nt := mk.Nettest{Name: "Ndt"}
|
||||
ctl.Init(&nt)
|
||||
return nt.Run()
|
||||
}
|
||||
|
||||
// NDTSummary for the test
|
||||
type NDTSummary struct {
|
||||
Upload int64
|
||||
Download int64
|
||||
Ping int64
|
||||
MaxRTT int64
|
||||
AvgRTT int64
|
||||
MinRTT int64
|
||||
MSS int64
|
||||
OutOfOrder int64
|
||||
PacketLoss float32
|
||||
Timeouts int64
|
||||
}
|
||||
|
||||
// Summary generates a summary for a test run
|
||||
func (n NDT) Summary(tk map[string]interface{}) interface{} {
|
||||
simple := tk["simple"].(map[string]interface{})
|
||||
advanced := tk["advanced"].(map[string]interface{})
|
||||
|
||||
return NDTSummary{
|
||||
Upload: simple["upload"].(int64),
|
||||
Download: simple["download"].(int64),
|
||||
Ping: simple["ping"].(int64),
|
||||
MaxRTT: advanced["max_rtt"].(int64),
|
||||
AvgRTT: advanced["avg_rtt"].(int64),
|
||||
MinRTT: advanced["min_rtt"].(int64),
|
||||
MSS: advanced["mss"].(int64),
|
||||
OutOfOrder: advanced["out_of_order"].(int64),
|
||||
PacketLoss: advanced["packet_loss"].(float32),
|
||||
Timeouts: advanced["timeouts"].(int64),
|
||||
}
|
||||
}
|
||||
|
||||
// LogSummary writes the summary to the standard output
|
||||
func (n NDT) LogSummary(s string) error {
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user