Change:
} return value } <ins> // IPerf2EnhancedCSVResults models the results produced by iperf2 when run with the -e (--enhancedreports) flag. type IPerf2EnhancedCSVResults struct { Intervals []*IPerfCSVResult Total     *IPerfCSVResult } // ParseIPerf2EnhancedResultsFromCSV parses results from iperf2 when given the -e (--enhancedreports) // and `--reportstyle C` options. // Example output: // 20201210141800.884,10.244.2.24,47880,10.96.114.79,6789,3,0.0-1.0,1677852672,13422821376 // 20201210141801.881,10.244.2.24,47880,10.96.114.79,6789,3,1.0-2.0,1980760064,15846080512 // 20201210141802.883,10.244.2.24,47880,10.96.114.79,6789,3,2.0-3.0,1886650368,15093202944 // 20201210141803.882,10.244.2.24,47880,10.96.114.79,6789,3,3.0-4.0,2035417088,16283336704 // 20201210141804.879,10.244.2.24,47880,10.96.114.79,6789,3,4.0-5.0,1922957312,15383658496 // 20201210141805.881,10.244.2.24,47880,10.96.114.79,6789,3,5.0-6.0,2095316992,16762535936 // 20201210141806.882,10.244.2.24,47880,10.96.114.79,6789,3,6.0-7.0,1741291520,13930332160 // 20201210141807.879,10.244.2.24,47880,10.96.114.79,6789,3,7.0-8.0,1862926336,14903410688 // 20201210141808.878,10.244.2.24,47880,10.96.114.79,6789,3,8.0-9.0,1821245440,14569963520 // 20201210141809.849,10.244.2.24,47880,10.96.114.79,6789,3,0.0-10.0,18752208896,15052492511 func ParseIPerf2EnhancedResultsFromCSV(output string) (*IPerf2EnhancedCSVResults, error) { var parsedResults []*IPerfCSVResult for _, line := range strings.Split(output, "n") { parsed, err := NewIPerf(line) if err != nil { return nil, err } parsedResults = append(parsedResults, parsed) } if parsedResults == nil || len(parsedResults) == 0 { return nil, errors.New("no results parsed from iperf2 output") } // format: // all but last lines are intervals intervals := parsedResults[:len(parsedResults)-1] // last line is an aggregation total := parsedResults[len(parsedResults)-1] return &IPerf2EnhancedCSVResults{ Intervals: intervals, Total:     total, }, nil } // IPerf2NodeToNodeCSVResults models the results of running iperf2 between a daemonset of clients and // a single server.  The node name of the server is captured, along with a map of client node name // to iperf2 results. type IPerf2NodeToNodeCSVResults struct { ServerNode string Results    map[string]*IPerf2EnhancedCSVResults } </ins>

Discussion:
What happened: The iperf tests were written a while ago but i think havent been updated. They measure bandwidth over multiple pods, but they probably should also have a test which reports individual pod's bandwidth between one pod over a SEP. They should pretty print a table so its easy to see exactly what is going on with the bandwidth They should use iperf3 (need to check that) Maybe we should have permutations for udp and tcp? The current output is something like: What you expected to happen: That running the tests would result in a table such as those that you can get from iperf3, i.e. How to reproduce it: run the e2es on any cluster, Environment: Kubernetes version (use ): master, any version
/sig network
/assign
/assign
/triage unresolved Comment when the issue is assessed and confirmed. I am a bot run by vllry. ‍
/remove-triage unresolved
I've taken a first pass at this , working on resolving a couple issues then we can circle back to determine how else it could be improved!
Cool c/p the new test output so we can compare when u get a chance
ah yess. much better then what we have now.
Issues go stale after 90d of inactivity. Mark the issue as fresh with . Stale issues rot after an additional 30d of inactivity and eventually close. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
/remove-lifecycle stale