iperf

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewTask

func NewTask() perf.Task

NewTask creates a new iperf test

Types

type CPUUtilizationPercent

type CPUUtilizationPercent struct {
	HostTotal    float64 `json:"host_total"`
	HostUser     float64 `json:"host_user"`
	HostSystem   float64 `json:"host_system"`
	RemoteTotal  float64 `json:"remote_total"`
	RemoteUser   float64 `json:"remote_user"`
	RemoteSystem float64 `json:"remote_system"`
}

type Connected

type Connected struct {
	Socket     int64  `json:"socket"`
	LocalHost  string `json:"local_host"`
	LocalPort  int64  `json:"local_port"`
	RemoteHost string `json:"remote_host"`
	RemotePort int64  `json:"remote_port"`
}

type ConnectingTo

type ConnectingTo struct {
	Host string `json:"host"`
	Port int64  `json:"port"`
}

type End

type End struct {
	Streams               []EndStream           `json:"streams"`
	SumSent               Sum                   `json:"sum_sent"`
	SumReceived           Sum                   `json:"sum_received"`
	CPUUtilizationPercent CPUUtilizationPercent `json:"cpu_utilization_percent"`
	SenderTCPCongestion   string                `json:"sender_tcp_congestion"`
	ReceiverTCPCongestion string                `json:"receiver_tcp_congestion"`
}

type EndStream

type EndStream struct {
	Sender   Sum    `json:"sender"`
	Receiver Sum    `json:"receiver"`
	UDP      UDPSum `json:"udp"`
}

type Interval

type Interval struct {
	Streams []IntervalStream `json:"streams"`
	Sum     Sum              `json:"sum"`
}

type IntervalStream

type IntervalStream struct {
	Socket        int64   `json:"socket"`
	Start         float64 `json:"start"`
	End           float64 `json:"end"`
	Seconds       float64 `json:"seconds"`
	Bytes         int64   `json:"bytes"`
	BitsPerSecond float64 `json:"bits_per_second"`
	Retransmits   int64   `json:"retransmits"`
	SndCwnd       int64   `json:"snd_cwnd"`
	SndWnd        int64   `json:"snd_wnd"`
	Rtt           int64   `json:"rtt"`
	Rttvar        int64   `json:"rttvar"`
	Pmtu          int64   `json:"pmtu"`
	Omitted       bool    `json:"omitted"`
	Sender        bool    `json:"sender"`
}

type IperfResult

type IperfResult struct {
	UploadSpeed   float64               `json:"upload_speed"`   // in bit/sec
	DownloadSpeed float64               `json:"download_speed"` // in bit/sec
	NodeID        uint32                `json:"node_id"`
	NodeIpv4      string                `json:"node_ip"`
	TestType      string                `json:"test_type"`
	Error         string                `json:"error"`
	CpuReport     CPUUtilizationPercent `json:"cpu_report"`
}

IperfResult for iperf test results

type IperfTest

type IperfTest struct{}

IperfTest for iperf tcp/udp tests

func (*IperfTest) Cron

func (t *IperfTest) Cron() string

Cron returns the schedule for the tcp task

func (*IperfTest) Description

func (t *IperfTest) Description() string

Description returns the task description

func (*IperfTest) ID

func (t *IperfTest) ID() string

ID returns the ID of the tcp task

func (*IperfTest) Jitter

func (t *IperfTest) Jitter() uint32

Jitter returns the max number of seconds the job can sleep before actual execution.

func (*IperfTest) Run

func (t *IperfTest) Run(ctx context.Context) (interface{}, error)

Run runs the tcp test and returns the result

type Start

type Start struct {
	Connected     []Connected  `json:"connected"`
	Version       string       `json:"version"`
	SystemInfo    string       `json:"system_info"`
	Timestamp     Timestamp    `json:"timestamp"`
	ConnectingTo  ConnectingTo `json:"connecting_to"`
	Cookie        string       `json:"cookie"`
	TCPMssDefault int64        `json:"tcp_mss_default"`
	TargetBitrate int64        `json:"target_bitrate"`
	FqRate        int64        `json:"fq_rate"`
	SockBufsize   int64        `json:"sock_bufsize"`
	SndbufActual  int64        `json:"sndbuf_actual"`
	RcvbufActual  int64        `json:"rcvbuf_actual"`
	TestStart     TestStart    `json:"test_start"`
}

type Sum

type Sum struct {
	Socket        int64   `json:"socket"`
	Start         float64 `json:"start"`
	End           float64 `json:"end"`
	Seconds       float64 `json:"seconds"`
	Bytes         int64   `json:"bytes"`
	BitsPerSecond float64 `json:"bits_per_second"`
	Retransmits   int64   `json:"retransmits"`
	MaxSndCwnd    int64   `json:"max_snd_cwnd"`
	MaxSndWnd     int64   `json:"max_snd_wnd"`
	MaxRtt        int64   `json:"max_rtt"`
	MinRtt        int64   `json:"min_rtt"`
	MeanRtt       int64   `json:"mean_rtt"`
	Sender        bool    `json:"sender"`
}

type TestStart

type TestStart struct {
	Protocol      string `json:"protocol"`
	NumStreams    int64  `json:"num_streams"`
	Blksize       int64  `json:"blksize"`
	Omit          int64  `json:"omit"`
	Duration      int64  `json:"duration"`
	Bytes         int64  `json:"bytes"`
	Blocks        int64  `json:"blocks"`
	Reverse       int64  `json:"reverse"`
	Tos           int64  `json:"tos"`
	TargetBitrate int64  `json:"target_bitrate"`
	Bidir         int64  `json:"bidir"`
	Fqrate        int64  `json:"fqrate"`
}

type Timestamp

type Timestamp struct {
	Time     string `json:"time"`
	Timesecs int64  `json:"timesecs"`
}

type UDPSum

type UDPSum struct {
	Socket        int64   `json:"socket"`
	Start         float64 `json:"start"`
	End           float64 `json:"end"`
	Seconds       float64 `json:"seconds"`
	Bytes         int64   `json:"bytes"`
	BitsPerSecond float64 `json:"bits_per_second"`
	JitterMS      float64 `json:"jitter_ms"`
	LostPackets   int64   `json:"lost_packets"`
	Packets       int64   `json:"packets"`
	LostPercent   float64 `json:"lost_percent"`
	OutOfOrder    int64   `json:"out_of_order"`
	Sender        bool    `json:"sender"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL