Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
 - Variables
 - func DecodePayload(payload *Payload) ([]byte, bool)
 - func RespondToTraceRequest(headers channel.Headers, hopType, hopId string, response ControlReceiver)
 - func SetOriginatorFlag(flags uint32, originator Originator) uint32
 - func UnmarshallPacketPayload(buf []byte) (*channel.Message, error)
 - type AckSender
 - type Acknowledgement
 - func (ack *Acknowledgement) GetCircuitId() string
 - func (ack *Acknowledgement) GetFlags() uint32
 - func (ack *Acknowledgement) GetLoggerFields() logrus.Fields
 - func (ack *Acknowledgement) GetOriginator() Originator
 - func (ack *Acknowledgement) GetSequence() []int32
 - func (ack *Acknowledgement) Marshall() *channel.Message
 
- type Address
 - type BindHandler
 - type CircuitDetail
 - type CircuitInspectDetail
 - func (self *CircuitInspectDetail) AddError(err error)
 - func (self *CircuitInspectDetail) AddRelatedEntity(entityType string, id string, detail any)
 - func (self *CircuitInspectDetail) AddXgressDetail(xgressDetail *InspectDetail)
 - func (self *CircuitInspectDetail) IncludeGoroutines() bool
 - func (self *CircuitInspectDetail) SetIncludeGoroutines(includeGoroutines bool)
 
- type CircuitsDetail
 - type CloseHandler
 - type CloseHandlerF
 - type Connection
 - type Control
 - func (self *Control) CreateTraceResponse(hopType, hopId string) *Control
 - func (self *Control) DecrementAndGetHop() uint32
 - func (self *Control) GetLoggerFields() logrus.Fields
 - func (self *Control) IsTypeTraceRoute() bool
 - func (self *Control) IsTypeTraceRouteResponse() bool
 - func (self *Control) Marshall() *channel.Message
 
- type ControlReceiver
 - type ControlType
 - type DataPlaneAdapter
 - type Decoder
 - type Env
 - type Flag
 - type InspectDetail
 - type InvalidTerminatorError
 - type LinkReceiveBuffer
 - type LinkSendBuffer
 - func (buffer *LinkSendBuffer) BufferPayload(payload *Payload) (func(), error)
 - func (buffer *LinkSendBuffer) BufferPayloadWithDeadline(payload *Payload, ctx context.Context) (func(), error)
 - func (buffer *LinkSendBuffer) Close()
 - func (buffer *LinkSendBuffer) CloseWhenEmpty() bool
 - func (buffer *LinkSendBuffer) Inspect() *SendBufferDetail
 - func (buffer *LinkSendBuffer) IsClosed() bool
 - func (buffer *LinkSendBuffer) ReceiveAcknowledgement(ack *Acknowledgement)
 
- type Metrics
 - type MisconfiguredTerminatorError
 - type Options
 - type OptionsData
 - type Originator
 - type Payload
 - func (payload *Payload) GetCircuitId() string
 - func (payload *Payload) GetFlags() uint32
 - func (payload *Payload) GetLoggerFields() logrus.Fields
 - func (payload *Payload) GetOriginator() Originator
 - func (payload *Payload) GetSequence() int32
 - func (payload *Payload) IsCircuitEndFlagSet() bool
 - func (payload *Payload) IsCircuitStartFlagSet() bool
 - func (payload *Payload) IsFlagEOFSet() bool
 - func (payload *Payload) IsFlagWriteFailedSet() bool
 - func (payload *Payload) IsRetransmitFlagSet() bool
 - func (payload *Payload) MarkAsRetransmit()
 - func (payload *Payload) Marshall() *channel.Message
 
- type PayloadIngester
 - type PayloadTransformer
 - type PayloadType
 - type PeekHandler
 - type RecvBufferDetail
 - type Retransmitter
 - type RetransmitterFaultReporter
 - type SendBufferDetail
 - type SignalConnection
 - type WriteAdapter
 - func (self *WriteAdapter) Deadline() (deadline time.Time, ok bool)
 - func (self *WriteAdapter) Done() <-chan struct{}
 - func (self *WriteAdapter) Err() error
 - func (self *WriteAdapter) SetWriteDeadline(t time.Time) error
 - func (self *WriteAdapter) Value(any) any
 - func (self *WriteAdapter) Write(b []byte) (n int, err error)
 - func (self *WriteAdapter) WriteToXgress(b []byte, header map[uint8][]byte) (n int, err error)
 
- type Xgress
 - func (self *Xgress) AddCloseHandler(closeHandler CloseHandler)
 - func (self *Xgress) AddPeekHandler(peekHandler PeekHandler)
 - func (self *Xgress) Address() Address
 - func (self *Xgress) CircuitId() string
 - func (self *Xgress) Close()
 - func (self *Xgress) CloseRxTimeout()
 - func (self *Xgress) CloseSendBuffer()
 - func (self *Xgress) CloseXgToClient()
 - func (self *Xgress) Closed() bool
 - func (self *Xgress) CtrlId() string
 - func (self *Xgress) ForwardEndOfCircuit(sendF func(payload *Payload) bool)
 - func (self *Xgress) GetDestinationType() string
 - func (self *Xgress) GetEndCircuit() *Payload
 - func (self *Xgress) GetInspectDetail(includeGoroutines bool) *InspectDetail
 - func (self *Xgress) GetIntervalId() string
 - func (self *Xgress) GetSequence() uint64
 - func (self *Xgress) GetStartCircuit() *Payload
 - func (self *Xgress) GetTags() map[string]string
 - func (self *Xgress) GetTimeOfLastRxFromLink() int64
 - func (self *Xgress) HandleControlReceive(controlType ControlType, headers channel.Headers)
 - func (self *Xgress) InspectCircuit(detail *CircuitInspectDetail)
 - func (self *Xgress) IsCircuitStarted() bool
 - func (self *Xgress) IsClosed() bool
 - func (self *Xgress) IsEndOfCircuitReceived() bool
 - func (self *Xgress) IsEndOfCircuitSent() bool
 - func (self *Xgress) IsTerminator() bool
 - func (self *Xgress) Label() string
 - func (self *Xgress) NewWriteAdapter() *WriteAdapter
 - func (self *Xgress) Originator() Originator
 - func (self *Xgress) PayloadReceived(payload *Payload)
 - func (self *Xgress) PeerClosed()
 - func (self *Xgress) SendAcknowledgement(acknowledgement *Acknowledgement) error
 - func (self *Xgress) SendControl(control *Control) error
 - func (self *Xgress) SendEmptyAck()
 - func (self *Xgress) SendPayload(payload *Payload, _ time.Duration, _ PayloadType) error
 - func (self *Xgress) SetDataPlaneAdapter(dataPlaneAdapter DataPlaneAdapter)
 - func (self *Xgress) Start()
 - func (self *Xgress) Unrouted()
 - func (self *Xgress) Write(buffer []byte, headers map[uint8][]byte, ctx context.Context) error
 
Constants ¶
const ( MinHeaderKey = 2000 MaxHeaderKey = MinHeaderKey + int32(math.MaxUint8) HeaderKeyCircuitId = 2256 HeaderKeySequence = 2257 HeaderKeyFlags = 2258 HeaderKeyRecvBufferSize = 2259 HeaderKeyRTT = 2260 HeaderPayloadRaw = 2261 ContentTypePayloadType = 1100 ContentTypeAcknowledgementType = 1101 ContentTypeControlType = 1102 )
const ( ControlHopCount = 20 ControlHopType = 21 ControlHopId = 22 ControlTimestamp = 23 ControlUserVal = 24 ControlError = 25 )
const ( VersionMask byte = 0b00000110 TerminatorFlagMask byte = 0b00001000 RttFlagMask byte = 0b00010000 ChunkFlagMask byte = 0b00100000 HeadersFlagMask byte = 0b01000000 HeartbeatFlagMask byte = 0b10000000 CircuitIdSizeMask byte = 0b00001111 PayloadProtocolV1 byte = 1 PayloadProtocolOffset byte = 1 )
const DECODER = "data"
    const (
	HeaderKeyUUID = 0
)
    Variables ¶
var ContentTypeValue = map[string]int32{ "PayloadType": ContentTypePayloadType, "AcknowledgementType": ContentTypeAcknowledgementType, "ControlType": ContentTypeControlType, }
var ErrPeerClosed = errors.New("peer closed")
    var ErrWriteClosed = errors.New("write closed")
    Functions ¶
func DecodePayload ¶
func RespondToTraceRequest ¶
func RespondToTraceRequest(headers channel.Headers, hopType, hopId string, response ControlReceiver)
func SetOriginatorFlag ¶
func SetOriginatorFlag(flags uint32, originator Originator) uint32
func UnmarshallPacketPayload ¶
Types ¶
type AckSender ¶
type AckSender interface {
	SendAck(ack *Acknowledgement, address Address)
}
    type Acknowledgement ¶
type Acknowledgement struct {
	CircuitId      string
	Flags          uint32
	RecvBufferSize uint32
	RTT            uint16
	Sequence       []int32
}
    func NewAcknowledgement ¶
func NewAcknowledgement(circuitId string, originator Originator) *Acknowledgement
func UnmarshallAcknowledgement ¶
func UnmarshallAcknowledgement(msg *channel.Message) (*Acknowledgement, error)
func (*Acknowledgement) GetCircuitId ¶
func (ack *Acknowledgement) GetCircuitId() string
func (*Acknowledgement) GetFlags ¶
func (ack *Acknowledgement) GetFlags() uint32
func (*Acknowledgement) GetLoggerFields ¶
func (ack *Acknowledgement) GetLoggerFields() logrus.Fields
func (*Acknowledgement) GetOriginator ¶
func (ack *Acknowledgement) GetOriginator() Originator
func (*Acknowledgement) GetSequence ¶
func (ack *Acknowledgement) GetSequence() []int32
func (*Acknowledgement) Marshall ¶
func (ack *Acknowledgement) Marshall() *channel.Message
type BindHandler ¶
type BindHandler interface {
	HandleXgressBind(x *Xgress)
}
    BindHandler is an interface invoked to install the appropriate handlers.
type CircuitDetail ¶
type CircuitInspectDetail ¶
type CircuitInspectDetail struct {
	CircuitId       string                    `json:"circuitId"`
	Forwards        map[string]string         `json:"forwards"`
	XgressDetails   map[string]*InspectDetail `json:"xgressDetails"`
	RelatedEntities map[string]map[string]any `json:"relatedEntities"`
	Errors          []string                  `json:"errors"`
	// contains filtered or unexported fields
}
    func (*CircuitInspectDetail) AddError ¶
func (self *CircuitInspectDetail) AddError(err error)
func (*CircuitInspectDetail) AddRelatedEntity ¶
func (self *CircuitInspectDetail) AddRelatedEntity(entityType string, id string, detail any)
func (*CircuitInspectDetail) AddXgressDetail ¶
func (self *CircuitInspectDetail) AddXgressDetail(xgressDetail *InspectDetail)
func (*CircuitInspectDetail) IncludeGoroutines ¶
func (self *CircuitInspectDetail) IncludeGoroutines() bool
func (*CircuitInspectDetail) SetIncludeGoroutines ¶
func (self *CircuitInspectDetail) SetIncludeGoroutines(includeGoroutines bool)
type CircuitsDetail ¶
type CircuitsDetail struct {
	Circuits map[string]*CircuitDetail `json:"circuits"`
}
    type CloseHandler ¶
type CloseHandler interface {
	// HandleXgressClose is invoked when the connected peer terminates the communication.
	//
	HandleXgressClose(x *Xgress)
}
    CloseHandler is invoked by an xgress when the connected peer terminates the communication.
type CloseHandlerF ¶
type CloseHandlerF func(x *Xgress)
CloseHandlerF is the function version of CloseHandler
func (CloseHandlerF) HandleXgressClose ¶
func (self CloseHandlerF) HandleXgressClose(x *Xgress)
type Connection ¶
type Control ¶
type Control struct {
	Type      ControlType
	CircuitId string
	Headers   channel.Headers
}
    func UnmarshallControl ¶
func (*Control) CreateTraceResponse ¶
func (*Control) DecrementAndGetHop ¶
func (*Control) GetLoggerFields ¶
func (*Control) IsTypeTraceRoute ¶
func (*Control) IsTypeTraceRouteResponse ¶
type ControlReceiver ¶
type ControlReceiver interface {
	HandleControlReceive(controlType ControlType, headers channel.Headers)
}
    type ControlType ¶
type ControlType byte
const ( ControlTypeTraceRoute ControlType = 1 ControlTypeTraceRouteResponse ControlType = 2 )
func (ControlType) String ¶
func (self ControlType) String() string
type DataPlaneAdapter ¶
type DataPlaneAdapter interface {
	// ForwardPayload is used to forward data payloads onto the data-plane from an xgress
	ForwardPayload(payload *Payload, x *Xgress, ctx context.Context)
	// RetransmitPayload is used to retransmit data payloads onto the data-plane from an xgress
	RetransmitPayload(srcAddr Address, payload *Payload) error
	// ForwardControlMessage is used to forward control messages onto the data-plane from an xgress
	ForwardControlMessage(control *Control, x *Xgress)
	// ForwardAcknowledgement is used to forward acks onto the data-plane from an xgress
	ForwardAcknowledgement(ack *Acknowledgement, address Address)
	Env
}
    DataPlaneAdapter is invoked by an xgress whenever messages need to be sent to the data plane. Generally a DataPlaneAdapter is implemented to connect the xgress to a data plane data transmission system.
type Env ¶
type Env interface {
	GetRetransmitter() *Retransmitter
	GetPayloadIngester() *PayloadIngester
	GetMetrics() Metrics
}
    type InspectDetail ¶
type InspectDetail struct {
	Address               string            `json:"address"`
	Originator            string            `json:"originator"`
	TimeSinceLastLinkRx   string            `json:"timeSinceLastLinkRx"`
	SendBufferDetail      *SendBufferDetail `json:"sendBufferDetail"`
	RecvBufferDetail      *RecvBufferDetail `json:"recvBufferDetail"`
	XgressPointer         string            `json:"xgressPointer"`
	LinkSendBufferPointer string            `json:"linkSendBufferPointer"`
	Goroutines            []string          `json:"goroutines"`
	Sequence              uint64            `json:"sequence"`
	Flags                 string            `json:"flags"`
	LastSizeSent          uint32            `json:"lastSizeSent"`
}
    type InvalidTerminatorError ¶
type InvalidTerminatorError struct {
	InnerError error
}
    func (InvalidTerminatorError) Error ¶
func (e InvalidTerminatorError) Error() string
func (InvalidTerminatorError) Unwrap ¶
func (e InvalidTerminatorError) Unwrap() error
type LinkReceiveBuffer ¶
func NewLinkReceiveBuffer ¶
func NewLinkReceiveBuffer(txQueueSize int32) *LinkReceiveBuffer
func (*LinkReceiveBuffer) Inspect ¶
func (buffer *LinkReceiveBuffer) Inspect() *RecvBufferDetail
func (*LinkReceiveBuffer) NextPayload ¶ added in v1.2.0
func (buffer *LinkReceiveBuffer) NextPayload(closeNotify <-chan struct{}) *Payload
func (*LinkReceiveBuffer) ReceiveUnordered ¶
func (buffer *LinkReceiveBuffer) ReceiveUnordered(x *Xgress, payload *Payload, maxSize uint32) bool
func (*LinkReceiveBuffer) Size ¶
func (buffer *LinkReceiveBuffer) Size() uint32
type LinkSendBuffer ¶
type LinkSendBuffer struct {
	// contains filtered or unexported fields
}
    Note: if altering this struct, be sure to account for 64 bit alignment on 32 bit arm arch https://pkg.go.dev/sync/atomic#pkg-note-BUG https://github.com/golang/go/issues/36606
func NewLinkSendBuffer ¶
func NewLinkSendBuffer(x *Xgress) *LinkSendBuffer
func (*LinkSendBuffer) BufferPayload ¶
func (buffer *LinkSendBuffer) BufferPayload(payload *Payload) (func(), error)
func (*LinkSendBuffer) BufferPayloadWithDeadline ¶ added in v1.2.0
func (buffer *LinkSendBuffer) BufferPayloadWithDeadline(payload *Payload, ctx context.Context) (func(), error)
func (*LinkSendBuffer) Close ¶
func (buffer *LinkSendBuffer) Close()
func (*LinkSendBuffer) CloseWhenEmpty ¶
func (buffer *LinkSendBuffer) CloseWhenEmpty() bool
func (*LinkSendBuffer) Inspect ¶
func (buffer *LinkSendBuffer) Inspect() *SendBufferDetail
func (*LinkSendBuffer) IsClosed ¶ added in v1.2.0
func (buffer *LinkSendBuffer) IsClosed() bool
func (*LinkSendBuffer) ReceiveAcknowledgement ¶
func (buffer *LinkSendBuffer) ReceiveAcknowledgement(ack *Acknowledgement)
type Metrics ¶
type Metrics interface {
	MarkAckReceived()
	MarkPayloadDropped()
	MarkDuplicateAck()
	MarkDuplicatePayload()
	BufferBlockedByLocalWindow()
	BufferUnblockedByLocalWindow()
	BufferBlockedByRemoteWindow()
	BufferUnblockedByRemoteWindow()
	PayloadWritten(duration time.Duration)
	BufferUnblocked(duration time.Duration)
	SendPayloadBuffered(payloadSize int64)
	SendPayloadDelivered(payloadSize int64)
}
    func NewMetrics ¶
type MisconfiguredTerminatorError ¶
type MisconfiguredTerminatorError struct {
	InnerError error
}
    func (MisconfiguredTerminatorError) Error ¶
func (e MisconfiguredTerminatorError) Error() string
func (MisconfiguredTerminatorError) Unwrap ¶
func (e MisconfiguredTerminatorError) Unwrap() error
type Options ¶
type Options struct {
	Mtu         int32
	RandomDrops bool
	Drop1InN    int32
	TxQueueSize int32
	TxPortalStartSize      uint32
	TxPortalMaxSize        uint32
	TxPortalMinSize        uint32
	TxPortalIncreaseThresh uint32
	TxPortalIncreaseScale  float64
	TxPortalRetxThresh     uint32
	TxPortalRetxScale      float64
	TxPortalDupAckThresh   uint32
	TxPortalDupAckScale    float64
	RxBufferSize uint32
	RetxStartMs  uint32
	RetxScale    float64
	RetxAddMs    uint32
	MaxCloseWait        time.Duration
	GetCircuitTimeout   time.Duration
	CircuitStartTimeout time.Duration
	ConnectTimeout      time.Duration
}
    Options contains common Xgress configuration options
func DefaultOptions ¶
func DefaultOptions() *Options
func LoadOptions ¶
func LoadOptions(data OptionsData) (*Options, error)
type OptionsData ¶
type OptionsData map[interface{}]interface{}
    type Originator ¶
type Originator int32
const ( Initiator Originator = 0 Terminator Originator = 1 )
func (Originator) Invert ¶
func (o Originator) Invert() Originator
func (Originator) String ¶
func (o Originator) String() string
type Payload ¶
type Payload struct {
	CircuitId string
	Flags     uint32
	RTT       uint16
	Sequence  int32
	Headers   map[uint8][]byte
	Data      []byte
	// contains filtered or unexported fields
}
    func UnmarshallPayload ¶
func (*Payload) GetCircuitId ¶
func (*Payload) GetLoggerFields ¶
func (*Payload) GetOriginator ¶
func (payload *Payload) GetOriginator() Originator
func (*Payload) GetSequence ¶
func (*Payload) IsCircuitEndFlagSet ¶
func (*Payload) IsCircuitStartFlagSet ¶
func (*Payload) IsFlagEOFSet ¶ added in v1.2.0
func (*Payload) IsFlagWriteFailedSet ¶ added in v1.2.0
func (*Payload) IsRetransmitFlagSet ¶
func (*Payload) MarkAsRetransmit ¶
func (payload *Payload) MarkAsRetransmit()
type PayloadIngester ¶
type PayloadIngester struct {
	// contains filtered or unexported fields
}
    func NewPayloadIngester ¶
func NewPayloadIngester(closeNotify <-chan struct{}) *PayloadIngester
    func NewPayloadIngesterWithConfig ¶ added in v1.2.0
func NewPayloadIngesterWithConfig(maxWorkers uint32, closeNotify <-chan struct{}) *PayloadIngester
type PayloadTransformer ¶
type PayloadTransformer struct {
}
    func (PayloadTransformer) Rx ¶
func (self PayloadTransformer) Rx(*channel.Message, channel.Channel)
func (PayloadTransformer) Tx ¶
func (self PayloadTransformer) Tx(m *channel.Message, ch channel.Channel)
type PayloadType ¶
type PayloadType byte
const ( PayloadTypeXg PayloadType = 1 PayloadTypeRtx PayloadType = 2 PayloadTypeFwd PayloadType = 3 )
type PeekHandler ¶
type PeekHandler interface {
	Rx(x *Xgress, payload *Payload)
	Tx(x *Xgress, payload *Payload)
	Close(x *Xgress)
}
    PeekHandler allows registering watcher to react to data flowing an xgress instance
type RecvBufferDetail ¶
type Retransmitter ¶
type Retransmitter struct {
	// contains filtered or unexported fields
}
    func NewRetransmitter ¶
func NewRetransmitter(faultReporter RetransmitterFaultReporter, metrics metrics.Registry, closeNotify <-chan struct{}) *Retransmitter
type SendBufferDetail ¶
type SendBufferDetail struct {
	WindowSize            uint32  `json:"windowSize"`
	QueuedPayloadCount    int     `json:"queuedPayloadCount"`
	LinkSendBufferSize    uint32  `json:"linkSendBufferSize"`
	LinkRecvBufferSize    uint32  `json:"linkRecvBufferSize"`
	Accumulator           uint32  `json:"accumulator"`
	SuccessfulAcks        uint32  `json:"successfulAcks"`
	DuplicateAcks         uint32  `json:"duplicateAcks"`
	Retransmits           uint32  `json:"retransmits"`
	Closed                bool    `json:"closed"`
	BlockedByLocalWindow  bool    `json:"blockedByLocalWindow"`
	BlockedByRemoteWindow bool    `json:"blockedByRemoteWindow"`
	RetxScale             float64 `json:"retxScale"`
	RetxThreshold         uint32  `json:"retxThreshold"`
	TimeSinceLastRetx     string  `json:"timeSinceLastRetx"`
	CloseWhenEmpty        bool    `json:"closeWhenEmpty"`
	AcquiredSafely        bool    `json:"acquiredSafely"`
}
    type SignalConnection ¶ added in v1.2.0
type SignalConnection interface {
	Connection
	FlowFromFabricToXgressClosed()
}
    type WriteAdapter ¶ added in v1.2.0
type WriteAdapter struct {
	// contains filtered or unexported fields
}
    func NewWriteAdapter ¶ added in v1.2.0
func NewWriteAdapter(x *Xgress) *WriteAdapter
func (*WriteAdapter) Deadline ¶ added in v1.2.0
func (self *WriteAdapter) Deadline() (deadline time.Time, ok bool)
func (*WriteAdapter) Done ¶ added in v1.2.0
func (self *WriteAdapter) Done() <-chan struct{}
func (*WriteAdapter) Err ¶ added in v1.2.0
func (self *WriteAdapter) Err() error
func (*WriteAdapter) SetWriteDeadline ¶ added in v1.2.0
func (self *WriteAdapter) SetWriteDeadline(t time.Time) error
func (*WriteAdapter) Value ¶ added in v1.2.0
func (self *WriteAdapter) Value(any) any
func (*WriteAdapter) Write ¶ added in v1.2.0
func (self *WriteAdapter) Write(b []byte) (n int, err error)
func (*WriteAdapter) WriteToXgress ¶ added in v1.2.0
type Xgress ¶
type Xgress struct {
	Options *Options
	// contains filtered or unexported fields
}
    func NewXgress ¶
func NewXgress(circuitId string, ctrlId string, address Address, peer Connection, originator Originator, options *Options, tags map[string]string) *Xgress
func (*Xgress) AddCloseHandler ¶
func (self *Xgress) AddCloseHandler(closeHandler CloseHandler)
func (*Xgress) AddPeekHandler ¶
func (self *Xgress) AddPeekHandler(peekHandler PeekHandler)
func (*Xgress) Close ¶
func (self *Xgress) Close()
Close should only be called once both sides of the circuit are complete.
func (*Xgress) CloseRxTimeout ¶ added in v1.2.0
func (self *Xgress) CloseRxTimeout()
func (*Xgress) CloseSendBuffer ¶
func (self *Xgress) CloseSendBuffer()
func (*Xgress) CloseXgToClient ¶ added in v1.2.0
func (self *Xgress) CloseXgToClient()
func (*Xgress) ForwardEndOfCircuit ¶
func (*Xgress) GetDestinationType ¶ added in v1.1.2
func (*Xgress) GetEndCircuit ¶
func (*Xgress) GetInspectDetail ¶
func (self *Xgress) GetInspectDetail(includeGoroutines bool) *InspectDetail
func (*Xgress) GetIntervalId ¶
func (*Xgress) GetSequence ¶
func (*Xgress) GetStartCircuit ¶
func (*Xgress) GetTimeOfLastRxFromLink ¶
func (*Xgress) HandleControlReceive ¶
func (self *Xgress) HandleControlReceive(controlType ControlType, headers channel.Headers)
func (*Xgress) InspectCircuit ¶
func (self *Xgress) InspectCircuit(detail *CircuitInspectDetail)
func (*Xgress) IsCircuitStarted ¶
func (*Xgress) IsEndOfCircuitReceived ¶
func (*Xgress) IsEndOfCircuitSent ¶
func (*Xgress) IsTerminator ¶
func (*Xgress) NewWriteAdapter ¶ added in v1.2.0
func (self *Xgress) NewWriteAdapter() *WriteAdapter
func (*Xgress) Originator ¶
func (self *Xgress) Originator() Originator
func (*Xgress) PayloadReceived ¶
func (*Xgress) PeerClosed ¶ added in v1.2.0
func (self *Xgress) PeerClosed()
func (*Xgress) SendAcknowledgement ¶
func (self *Xgress) SendAcknowledgement(acknowledgement *Acknowledgement) error
func (*Xgress) SendControl ¶
func (*Xgress) SendEmptyAck ¶
func (self *Xgress) SendEmptyAck()
func (*Xgress) SendPayload ¶
func (*Xgress) SetDataPlaneAdapter ¶
func (self *Xgress) SetDataPlaneAdapter(dataPlaneAdapter DataPlaneAdapter)