transport

package
v0.0.0-...-26ed1f2 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2021 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetDatagramEnabled

func SetDatagramEnabled(enabled bool) func(*QUICServer)

func SetPacketHandler

func SetPacketHandler(ph PacketHandler) func(*UDPServer)

func SetQLOGTracer

func SetQLOGTracer(tracer logging.Tracer) func(server *QUICServer)

func SetSessionHandler

func SetSessionHandler(sh SessionHandler) func(*QUICServer)

Types

type CCFeedback

type CCFeedback struct {
	Header          *rtcp.Header
	SenderSSRC      uint32
	Reports         []*SSRCReport
	ReportTimestamp uint32
}

func (*CCFeedback) String

func (c *CCFeedback) String() string

func (*CCFeedback) UnmarshalBinary

func (c *CCFeedback) UnmarshalBinary(data []byte) error

type ConnectionTracer

type ConnectionTracer struct {
	// contains filtered or unexported fields
}

func (ConnectionTracer) BufferedPacket

func (c ConnectionTracer) BufferedPacket(packetType logging.PacketType)

func (ConnectionTracer) Close

func (c ConnectionTracer) Close()

func (ConnectionTracer) ClosedConnection

func (c ConnectionTracer) ClosedConnection(reason logging.CloseReason)

func (ConnectionTracer) Debug

func (c ConnectionTracer) Debug(name, msg string)

func (ConnectionTracer) DroppedEncryptionLevel

func (c ConnectionTracer) DroppedEncryptionLevel(level logging.EncryptionLevel)

func (ConnectionTracer) DroppedKey

func (c ConnectionTracer) DroppedKey(generation logging.KeyPhase)

func (ConnectionTracer) DroppedPacket

func (c ConnectionTracer) DroppedPacket(packetType logging.PacketType, count logging.ByteCount, reason logging.PacketDropReason)

func (ConnectionTracer) LossTimerCanceled

func (c ConnectionTracer) LossTimerCanceled()

func (ConnectionTracer) LossTimerExpired

func (c ConnectionTracer) LossTimerExpired(timerType logging.TimerType, level logging.EncryptionLevel)

func (ConnectionTracer) LostPacket

func (*ConnectionTracer) ReceivedPacket

func (c *ConnectionTracer) ReceivedPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, frames []logging.Frame)

func (ConnectionTracer) ReceivedRetry

func (c ConnectionTracer) ReceivedRetry(header *logging.Header)

func (ConnectionTracer) ReceivedTransportParameters

func (c ConnectionTracer) ReceivedTransportParameters(parameters *logging.TransportParameters)

func (ConnectionTracer) ReceivedVersionNegotiationPacket

func (c ConnectionTracer) ReceivedVersionNegotiationPacket(header *logging.Header, numbers []logging.VersionNumber)

func (*ConnectionTracer) RestoredTransportParameters

func (c *ConnectionTracer) RestoredTransportParameters(parameters *logging.TransportParameters)

func (*ConnectionTracer) SentPacket

func (c *ConnectionTracer) SentPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, ack *logging.AckFrame, frames []logging.Frame)

func (ConnectionTracer) SentTransportParameters

func (c ConnectionTracer) SentTransportParameters(parameters *logging.TransportParameters)

func (ConnectionTracer) SetLossTimer

func (c ConnectionTracer) SetLossTimer(timerType logging.TimerType, level logging.EncryptionLevel, time time.Time)

func (ConnectionTracer) StartedConnection

func (c ConnectionTracer) StartedConnection(local, remote net.Addr, version logging.VersionNumber, srcConnID, destConnID logging.ConnectionID)

func (ConnectionTracer) UpdatedCongestionState

func (c ConnectionTracer) UpdatedCongestionState(state logging.CongestionState)

func (ConnectionTracer) UpdatedKey

func (c ConnectionTracer) UpdatedKey(generation logging.KeyPhase, remote bool)

func (ConnectionTracer) UpdatedKeyFromTLS

func (c ConnectionTracer) UpdatedKeyFromTLS(level logging.EncryptionLevel, perspective logging.Perspective)

func (*ConnectionTracer) UpdatedMetrics

func (c *ConnectionTracer) UpdatedMetrics(rttStats *logging.RTTStats, cwnd, bytesInFlight logging.ByteCount, packetsInFlight int)

func (ConnectionTracer) UpdatedPTOCount

func (c ConnectionTracer) UpdatedPTOCount(value uint32)

type DatagramHandler

type DatagramHandler struct {
	// contains filtered or unexported fields
}

func NewDatagramHandler

func NewDatagramHandler(src SrcFactory) *DatagramHandler

type DatagramSession

type DatagramSession struct {
	// contains filtered or unexported fields
}

func (*DatagramSession) AcceptFeedback

func (d *DatagramSession) AcceptFeedback()

func (*DatagramSession) Close

func (d *DatagramSession) Close() error

func (*DatagramSession) Write

func (d *DatagramSession) Write(b []byte) (int, error)

type Feedback

type Feedback struct {
	// contains filtered or unexported fields
}

type FeedbackAlgorithm

type FeedbackAlgorithm string
const (
	Receive      FeedbackAlgorithm = "receive"
	StaticDelay  FeedbackAlgorithm = "static-delay"
	ACKTimestamp FeedbackAlgorithm = "ack-timestamp"
	RTTArrival   FeedbackAlgorithm = "rtt"
)

func (FeedbackAlgorithm) String

func (f FeedbackAlgorithm) String() string

type FeedbackWriter

type FeedbackWriter chan []byte

func (FeedbackWriter) Write

func (f FeedbackWriter) Write(b []byte) (int, error)

type InferReceiveTime

type InferReceiveTime func(p *Packet, ts uint32) uint32

type InferReceiveTimeFnFactory

type InferReceiveTimeFnFactory interface {
	// contains filtered or unexported methods
}

type Packet

type Packet struct {
	// contains filtered or unexported fields
}

type PacketHandler

type PacketHandler interface {
	// contains filtered or unexported methods
}

type QUICClient

type QUICClient struct {
	// contains filtered or unexported fields
}

func NewQUICClient

func NewQUICClient(addr string, w io.Writer, dgram bool, qlogFile string) *QUICClient

func (*QUICClient) CloseChan

func (c *QUICClient) CloseChan() chan struct{}

func (*QUICClient) Run

func (c *QUICClient) Run() error

func (*QUICClient) RunDgram

func (c *QUICClient) RunDgram() error

func (*QUICClient) RunFeedbackSender

func (c *QUICClient) RunFeedbackSender() (io.Writer, chan<- struct{}, error)

func (*QUICClient) RunStreamPerFrame

func (c *QUICClient) RunStreamPerFrame() error

type QUICServer

type QUICServer struct {
	SessionHandler
	// contains filtered or unexported fields
}

func NewQUICServer

func NewQUICServer(addr string, tlsc *tls.Config, options ...func(*QUICServer)) (*QUICServer, error)

func (*QUICServer) Run

func (s *QUICServer) Run() error

type QUICTracer

type QUICTracer struct {
	// contains filtered or unexported fields
}

func NewTracer

func NewTracer(getLogWriter func(p logging.Perspective, connectionID []byte) io.WriteCloser) *QUICTracer

func (QUICTracer) DroppedPacket

func (q QUICTracer) DroppedPacket(addr net.Addr, packetType logging.PacketType, count logging.ByteCount, reason logging.PacketDropReason)

func (*QUICTracer) GetACKChan

func (q *QUICTracer) GetACKChan() chan []*Packet

func (QUICTracer) SentPacket

func (q QUICTracer) SentPacket(addr net.Addr, header *logging.Header, count logging.ByteCount, frames []logging.Frame)

func (*QUICTracer) TracerForConnection

func (q *QUICTracer) TracerForConnection(p logging.Perspective, odcid logging.ConnectionID) logging.ConnectionTracer

type Queue

type Queue struct {
	// contains filtered or unexported fields
}

func NewQueue

func NewQueue() *Queue

func (*Queue) BytesInQueue

func (q *Queue) BytesInQueue() int

func (*Queue) Clear

func (q *Queue) Clear()

func (*Queue) GetDelay

func (q *Queue) GetDelay(f float64) float64

func (*Queue) GetSizeOfLastFrame

func (q *Queue) GetSizeOfLastFrame() int

func (*Queue) Len

func (q *Queue) Len() int

func (*Queue) Pop

func (q *Queue) Pop() *RTPQueueItem

func (*Queue) Push

func (q *Queue) Push(p *RTPQueueItem)

func (*Queue) SeqNrOfNextRTP

func (q *Queue) SeqNrOfNextRTP() int

func (*Queue) SizeOfNextRTP

func (q *Queue) SizeOfNextRTP() int

func (*Queue) SizeOfQueue

func (q *Queue) SizeOfQueue() int

type RTPQueueItem

type RTPQueueItem struct {
	Packet    *rtp.Packet
	Timestamp float64
}

type SSRCReport

type SSRCReport struct {
	StreamSSRC uint32
	BeginSeq   uint16
	NumReports uint16
	Reports    []*StreamReport
}

func (*SSRCReport) String

func (s *SSRCReport) String() string

func (*SSRCReport) UnmarshalBinary

func (s *SSRCReport) UnmarshalBinary(data []byte) error

type ScreamReadWriter

type ScreamReadWriter struct {
	CloseChan chan struct{}
	// contains filtered or unexported fields
}

func NewScreamReadWriter

func NewScreamReadWriter(w io.Writer, feedbackFrequency time.Duration, sendImmediateFeedback bool) *ScreamReadWriter

func (*ScreamReadWriter) RunFullFeedback

func (s *ScreamReadWriter) RunFullFeedback(fbw io.Writer)

func (*ScreamReadWriter) RunMinimalFeedback

func (s *ScreamReadWriter) RunMinimalFeedback(fbw io.Writer)

func (*ScreamReadWriter) Write

func (s *ScreamReadWriter) Write(b []byte) (int, error)

type ScreamSendWriter

type ScreamSendWriter struct {
	// contains filtered or unexported fields
}

func NewScreamWriter

func NewScreamWriter(ssrc uint, bitrate int, w io.WriteCloser, fb <-chan []byte, screamLogWriter io.Writer) *ScreamSendWriter

func (*ScreamSendWriter) Close

func (s *ScreamSendWriter) Close() error

func (ScreamSendWriter) RunBitrate

func (s ScreamSendWriter) RunBitrate(setBitrate func(uint))

func (*ScreamSendWriter) RunInferFeedback

func (s *ScreamSendWriter) RunInferFeedback(ackChan <-chan []*Packet)

func (*ScreamSendWriter) RunReceiveFeedback

func (s *ScreamSendWriter) RunReceiveFeedback()

func (*ScreamSendWriter) SetKeyFrameRequester

func (s *ScreamSendWriter) SetKeyFrameRequester(requestKeyFrame func())

func (*ScreamSendWriter) SetReceiveTimeInferFn

func (s *ScreamSendWriter) SetReceiveTimeInferFn(fn InferReceiveTimeFnFactory)

func (*ScreamSendWriter) Write

func (s *ScreamSendWriter) Write(b []byte) (int, error)

type SessionHandler

type SessionHandler interface {
	// contains filtered or unexported methods
}

type SrcFactory

type SrcFactory interface {
	MakeSrc(writer io.WriteCloser, feedback <-chan []byte) func()
}

type StreamPerFrameHandler

type StreamPerFrameHandler struct {
	// contains filtered or unexported fields
}

func NewStreamPerFrameHandler

func NewStreamPerFrameHandler(src SrcFactory) *StreamPerFrameHandler

type StreamPerFrameSession

type StreamPerFrameSession struct {
	// contains filtered or unexported fields
}

func (*StreamPerFrameSession) AcceptFeedback

func (m *StreamPerFrameSession) AcceptFeedback() error

func (*StreamPerFrameSession) Close

func (m *StreamPerFrameSession) Close() error

func (*StreamPerFrameSession) Write

func (m *StreamPerFrameSession) Write(b []byte) (int, error)

type StreamReport

type StreamReport struct {
	L                 bool
	ECN               byte
	ArrivalTimeOffset uint16
}

func (*StreamReport) UnmarshalBinary

func (s *StreamReport) UnmarshalBinary(data []byte) error

type UDPClient

type UDPClient struct {
	// contains filtered or unexported fields
}

func NewUDPClient

func NewUDPClient(addr string, w io.Writer) *UDPClient

func (*UDPClient) CloseChan

func (c *UDPClient) CloseChan() chan struct{}

func (*UDPClient) Run

func (c *UDPClient) Run() error

func (*UDPClient) RunFeedbackSender

func (c *UDPClient) RunFeedbackSender() (io.Writer, chan<- struct{}, error)

type UDPPacketHandler

type UDPPacketHandler struct {
	// contains filtered or unexported fields
}

func NewUDPPacketHandler

func NewUDPPacketHandler(src SrcFactory) *UDPPacketHandler

type UDPPacketSession

type UDPPacketSession struct {
	// contains filtered or unexported fields
}

func (*UDPPacketSession) AcceptFeedback

func (s *UDPPacketSession) AcceptFeedback(msg []byte)

func (*UDPPacketSession) Close

func (s *UDPPacketSession) Close() error

func (*UDPPacketSession) Write

func (s *UDPPacketSession) Write(p []byte) (int, error)

type UDPServer

type UDPServer struct {
	PacketHandler
	// contains filtered or unexported fields
}

func NewUDPServer

func NewUDPServer(addr string, options ...func(*UDPServer)) *UDPServer

func (*UDPServer) Run

func (s *UDPServer) Run() error

Jump to

Keyboard shortcuts

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