Versions in this module Expand all Collapse all v1 v1.0.0 Oct 10, 2023 Changes in this version + const HandshakeIdleTimeout + const MaxDatagramFrameSize + const MaxIdlePingPeriod + const MaxIdleTimeout + const MaxIncomingStreams + var DataStreamProtocolSignature = ProtocolSignature + var RPCStreamProtocolSignature = ProtocolSignature + func GenerateTLSConfig() *tls.Config + func NewClientTracer(logger *zerolog.Logger, index uint8) ... + func NewServerTracer(logger *zerolog.Logger) logging.Tracer + func SuffixSessionID(sessionID uuid.UUID, b []byte) ([]byte, error) + func SuffixType(b []byte, datagramType DatagramV2Type) ([]byte, error) + type BaseDatagramMuxer interface + SendToSession func(session *packet.Session) error + ServeReceive func(ctx context.Context) error + type ConnectRequest struct + Dest string + Metadata []Metadata + Type ConnectionType + func (r *ConnectRequest) MetadataMap() map[string]string + type ConnectResponse struct + Error string + Metadata []Metadata + type ConnectionType uint16 + const ConnectionTypeHTTP + const ConnectionTypeTCP + const ConnectionTypeWebsocket + func (c ConnectionType) String() string + type DatagramMuxer struct + func NewDatagramMuxer(quicSession quic.Connection, log *zerolog.Logger, ...) *DatagramMuxer + func (dm *DatagramMuxer) SendToSession(session *packet.Session) error + func (dm *DatagramMuxer) ServeReceive(ctx context.Context) error + type DatagramMuxerV2 struct + func NewDatagramMuxerV2(quicSession quic.Connection, log *zerolog.Logger, ...) *DatagramMuxerV2 + func (dm *DatagramMuxerV2) ReceivePacket(ctx context.Context) (pk Packet, err error) + func (dm *DatagramMuxerV2) SendPacket(pk Packet) error + func (dm *DatagramMuxerV2) SendToSession(session *packet.Session) error + func (dm *DatagramMuxerV2) ServeReceive(ctx context.Context) error + type DatagramV2Type byte + const DatagramTypeIP + const DatagramTypeIPWithTrace + const DatagramTypeTracingSpan + const DatagramTypeUDP + type Metadata struct + Key string + Val string + type MetricsCollector interface + type Packet interface + Metadata func() []byte + Payload func() []byte + Type func() DatagramV2Type + type ProtocolSignature [6]byte + func DetermineProtocol(stream io.Reader) (ProtocolSignature, error) + type RPCClientStream struct + func NewRPCClientStream(ctx context.Context, stream io.ReadWriteCloser, ...) (*RPCClientStream, error) + func (rcs *RPCClientStream) Close() + func (rcs *RPCClientStream) RegisterUdpSession(ctx context.Context, sessionID uuid.UUID, dstIP net.IP, dstPort uint16, ...) (*tunnelpogs.RegisterUdpSessionResponse, error) + func (rcs *RPCClientStream) UnregisterUdpSession(ctx context.Context, sessionID uuid.UUID, message string) error + func (rcs *RPCClientStream) UpdateConfiguration(ctx context.Context, version int32, config []byte) (*tunnelpogs.UpdateConfigurationResponse, error) + type RPCServerStream struct + func NewRPCServerStream(stream io.ReadWriteCloser, protocol ProtocolSignature) (*RPCServerStream, error) + func (s *RPCServerStream) Serve(sessionManager tunnelpogs.SessionManager, ...) error + type RawPacket packet.RawPacket + func (rw RawPacket) Metadata() []byte + func (rw RawPacket) Payload() []byte + func (rw RawPacket) Type() DatagramV2Type + type RequestClientStream struct + func (rcs *RequestClientStream) ReadConnectResponseData() (*ConnectResponse, error) + func (rcs *RequestClientStream) WriteConnectRequestData(dest string, connectionType ConnectionType, metadata ...Metadata) error + type RequestServerStream struct + func NewRequestServerStream(stream io.ReadWriteCloser, signature ProtocolSignature) (*RequestServerStream, error) + func (rss *RequestServerStream) ReadConnectRequestData() (*ConnectRequest, error) + func (rss *RequestServerStream) WriteConnectResponseData(respErr error, metadata ...Metadata) error + type SafeStreamCloser struct + func NewSafeStreamCloser(stream quic.Stream) *SafeStreamCloser + func (s *SafeStreamCloser) Close() error + func (s *SafeStreamCloser) CloseWrite() error + func (s *SafeStreamCloser) Read(p []byte) (n int, err error) + func (s *SafeStreamCloser) SetDeadline(deadline time.Time) error + func (s *SafeStreamCloser) Write(p []byte) (n int, err error) + type TracedPacket struct + Packet packet.RawPacket + TracingIdentity []byte + func (tp *TracedPacket) Metadata() []byte + func (tp *TracedPacket) Payload() []byte + func (tp *TracedPacket) Type() DatagramV2Type + type TracingSpanPacket struct + Spans []byte + TracingIdentity []byte + func (tsp *TracingSpanPacket) Metadata() []byte + func (tsp *TracingSpanPacket) Payload() []byte + func (tsp *TracingSpanPacket) Type() DatagramV2Type