Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArchivalData ¶
type ArchivalData struct { // GitShortCommit is the Git commit (short form) of the running server code. GitShortCommit string // Version is the symbolic version (if any) of the running server code. Version string // ID is the unique identifier for this latency measurement. ID string // UUID is the unique identifier of the TCP connection that started this // latency measurement. UUID string // Client is the client's ip:port pair. Client string // Server is the server's ip:port pair. Server string // StartTime is the test's start time. StartTime time.Time // EndTime is the test's end time. Since there is no explicit termination // message in the protocol, this is set when the session expires. EndTime time.Time // RoundTrips is a list of roundtrips. RoundTrips []RoundTrip // PacketSent is the number of packets sent during this measurement. PacketsSent int // PacketsReceived is the number of packets received during this // measurement. PacketsReceived int }
ArchivalData is the archival data format for latency1 measurements.
type LatencyPacket ¶
type LatencyPacket struct { // Type is the message type. Possible values are "s2c" and "c2s". Type string // ID is this latency measurement's unique ID. ID string // Seq is the progressive sequence number for this measurement. Seq int // LastRTT is the previous RTT (if any) measured by the party sending this // message. When there is no previous RTT, this will be zero. LastRTT int `json:",omitempty"` }
LatencyPacket is the payload of a latency measurement UDP packet.
type RoundTrip ¶
type RoundTrip struct { // RTT is the round-trip time (microseconds). RTT int // Lost says if the packet was lost. Lost bool `json:",omitempty"` }
RoundTrip is a roundtrip. If the reply was lost, Lost will be true. If a reply was received, RTT will be populated with the round-trip time.
type Session ¶
type Session struct { // UUID is the unique identifier of the TCP connection that started // this latency measurement. UUID string // StartTime is the test's start time. StartTime time.Time // EndTime is the test's end time. EndTime time.Time // Client is the client's ip:port pair. Client string // Server is the server's ip:port pair. Server string // Started is true if this session's send loop has been started already. Started bool // StartedMu is the mutex associated to Started. StartedMu sync.Mutex // SendTimes is a slice of send times. The slice's index is the packet's // sequence number. SendTimes []time.Time // SendTimesMu is a mutex to synchronize access to SendTimes. SendTimesMu sync.Mutex // RoundTrips is a list of roundtrips. RoundTrips []RoundTrip // LastRTT contains the last observed RTT. LastRTT *atomic.Int64 }
Session is the in-memory structure holding information about a UDP latency measurement session.
func NewSession ¶
NewSession returns an empty Session with all the fields initialized.
func (*Session) Archive ¶
func (s *Session) Archive() *ArchivalData
Archive converts this Session to ArchivalData.
func (*Session) PacketsReceived ¶
PacketsReceived returns the number of received packets for this session.
type Summary ¶
type Summary struct { // ID is the unique identifier for this latency measurement. ID string // StartTime is the test's start time. StartTime time.Time // RoundTrips is a list of roundtrips. RoundTrips []RoundTrip // PacketSent is the number of packets sent during this measurement. PacketsSent int // PacketsReceived is the number of packets received during this // measurement. PacketsReceived int }
Summary is the measurement's summary.
Click to show internal directories.
Click to hide internal directories.