forwarder

package
v0.24.46 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: Apache-2.0 Imports: 20 Imported by: 1

Documentation

Index

Constants

View Source
const (
	DefaultXgressCloseCheckInterval    = 5 * time.Second
	DefaultXgressDialDwellTime         = 0
	DefaultFaultTxInterval             = 15 * time.Second
	DefaultIdleTxInterval              = 60 * time.Second
	DefaultIdleCircuitTimeout          = 60 * time.Second
	DefaultXgressDialWorkerQueueLength = 1000
	MinXgressDialWorkerQueueLength     = 1
	MaxXgressDialWorkerQueueLength     = 10000
	DefaultXgressDialWorkerCount       = 128
	MinXgressDialWorkerCount           = 1
	MaxXgressDialWorkerCount           = 10000

	DefaultLinkDialQueueLength   = 1000
	MinLinkDialWorkerQueueLength = 1
	MaxLinkDialWorkerQueueLength = 10000
	DefaultLinkDialWorkerCount   = 32
	MinLinkDialWorkerCount       = 1
	MaxLinkDialWorkerCount       = 10000

	DefaultRateLimiterQueueLength   = 5000
	MinRateLimiterWorkerQueueLength = 1
	MaxRateLimiterWorkerQueueLength = 50000
	DefaultRateLimiterWorkerCount   = 5
	MinRateLimiterWorkerCount       = 1
	MaxRateLimiterWorkerCount       = 10000

	DefaultUnresponsiveLinkTimeout = time.Minute
	MinUnresponsiveLinkTimeout     = 5 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Destination

type Destination interface {
	SendPayload(payload *xgress.Payload) error
	SendAcknowledgement(acknowledgement *xgress.Acknowledgement) error
	SendControl(control *xgress.Control) error
	InspectCircuit(detail *inspect.CircuitInspectDetail)
}

type Faulter added in v0.15.24

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

func NewFaulter added in v0.15.24

func NewFaulter(ctrls env.NetworkControllers, interval time.Duration, closeNotify chan struct{}) *Faulter

type Forwarder

type Forwarder struct {
	Options     *Options
	CloseNotify <-chan struct{}
	// contains filtered or unexported fields
}

func NewForwarder

func NewForwarder(metricsRegistry metrics.UsageRegistry, faulter *Faulter, scanner *Scanner, options *Options, closeNotify <-chan struct{}) *Forwarder

func (*Forwarder) Debug

func (forwarder *Forwarder) Debug() string

func (*Forwarder) EndCircuit added in v0.16.92

func (forwarder *Forwarder) EndCircuit(circuitId string)

func (*Forwarder) ForwardAcknowledgement

func (forwarder *Forwarder) ForwardAcknowledgement(srcAddr xgress.Address, acknowledgement *xgress.Acknowledgement) error

func (*Forwarder) ForwardControl added in v0.16.114

func (forwarder *Forwarder) ForwardControl(srcAddr xgress.Address, control *xgress.Control) error

func (*Forwarder) ForwardPayload

func (forwarder *Forwarder) ForwardPayload(srcAddr xgress.Address, payload *xgress.Payload) error

func (*Forwarder) HasDestination

func (forwarder *Forwarder) HasDestination(address xgress.Address) bool

func (*Forwarder) InspectCircuit added in v0.17.78

func (forwarder *Forwarder) InspectCircuit(circuitId string, getRelatedGoroutines bool) *inspect.CircuitInspectDetail

func (*Forwarder) MetricsRegistry

func (forwarder *Forwarder) MetricsRegistry() metrics.UsageRegistry

func (*Forwarder) RegisterDestination

func (forwarder *Forwarder) RegisterDestination(circuitId string, address xgress.Address, destination Destination)
func (forwarder *Forwarder) RegisterLink(link xlink.LinkDestination) error

func (*Forwarder) ReportForwardingFault added in v0.15.24

func (forwarder *Forwarder) ReportForwardingFault(circuitId string, ctrlId string)

func (*Forwarder) RetransmitPayload added in v0.24.24

func (forwarder *Forwarder) RetransmitPayload(srcAddr xgress.Address, payload *xgress.Payload) error

func (*Forwarder) Route

func (forwarder *Forwarder) Route(ctrlId string, route *ctrl_pb.Route) error

func (*Forwarder) TraceController

func (forwarder *Forwarder) TraceController() trace.Controller

func (*Forwarder) UnregisterDestinations

func (forwarder *Forwarder) UnregisterDestinations(circuitId string)
func (forwarder *Forwarder) UnregisterLink(link xlink.LinkDestination)

func (*Forwarder) Unroute

func (forwarder *Forwarder) Unroute(circuitId string, now bool)

type Options

type Options struct {
	FaultTxInterval          time.Duration
	IdleCircuitTimeout       time.Duration
	IdleTxInterval           time.Duration
	LinkDial                 WorkerPoolOptions
	RateLimiter              WorkerPoolOptions
	UnresponsiveLinkTimeout  time.Duration
	XgressCloseCheckInterval time.Duration
	XgressDial               WorkerPoolOptions
	XgressDialDwellTime      time.Duration
}

func DefaultOptions

func DefaultOptions() *Options

func LoadOptions

func LoadOptions(src map[interface{}]interface{}) (*Options, error)

type Scanner added in v0.16.26

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

func NewScanner added in v0.16.26

func NewScanner(ctrls env.NetworkControllers, options *Options, closeNotify <-chan struct{}) *Scanner

type WorkerPoolOptions added in v0.11.59

type WorkerPoolOptions struct {
	QueueLength uint16
	WorkerCount uint16
}

type XgressDestination

type XgressDestination interface {
	Destination
	Unrouted()
	Start()
	IsTerminator() bool
	Label() string
	GetTimeOfLastRxFromLink() int64
}

Jump to

Keyboard shortcuts

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