stream

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetInterfaceNamePrefix

func GetInterfaceNamePrefix() string

GetInterfaceNamePrefix -

func New

func New(
	stream *nspAPI.Stream,
	targetRegistryClient nspAPI.TargetRegistryClient,
	configurationManagerClient nspAPI.ConfigurationManagerClient,
	nfqueue int,
	netUtils networking.Utils,
	lbFactory types.NFQueueLoadBalancerFactory,
	identifierOffset int,
) (types.Stream, error)

func NewTarget

func NewTarget(nspTarget *nspAPI.Target, netUtils networking.Utils) (types.Target, error)

func SetInterfaceNamePrefix

func SetInterfaceNamePrefix(ns string)

SetInterfaceNamePrefix - Derives the NSM v1.2-rc1 (same as v1.1.1) interface name prefix based on the Network Service name of the NSE.

Note: By letting NSM name the NSE interface there's no need for a custom interfacename.NewServer chain component.

Types

type Defrag

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

func NewDefrag

func NewDefrag(excludedIfPrefix string) (*Defrag, error)

NewDefrag - -Load kernel's defragmentation via conntrack. Needed by Flow rules to match L4 information - applied on packets arriving from outside world. -Do not allow defragmentation of packets from the direction of targets. Thus outbound IPv4 packets can leave the LB reflecting their originating source's PMTU information. -Forbid conntrack to do "book-keeping" in order to not "litter" memory.

func (*Defrag) Delete

func (d *Defrag) Delete() error

type LoadBalancer

type LoadBalancer struct {
	*nspAPI.Stream
	TargetRegistryClient       nspAPI.TargetRegistryClient
	ConfigurationManagerClient nspAPI.ConfigurationManagerClient
	IdentifierOffset           int
	// contains filtered or unexported fields
}

LoadBalancer -

func (*LoadBalancer) AddTarget

func (lb *LoadBalancer) AddTarget(target types.Target) error

AddTarget -

func (*LoadBalancer) Delete

func (lb *LoadBalancer) Delete() error

func (*LoadBalancer) GetTargets

func (lb *LoadBalancer) GetTargets() []types.Target

func (*LoadBalancer) InterfaceCreated

func (lb *LoadBalancer) InterfaceCreated(intf networking.Iface)

InterfaceCreated - When a new NSM interface of interest appears trigger processPendingTargets() to attempt configuring pending Targets (missing route could have become available)

func (*LoadBalancer) InterfaceDeleted

func (lb *LoadBalancer) InterfaceDeleted(intf networking.Iface)

InterfaceDeleted - When a NSM interface of interest disappears trigger processPendingTargets() to verify if configured Targets still have working routes

func (*LoadBalancer) RemoveTarget

func (lb *LoadBalancer) RemoveTarget(identifier int) error

RemoveTarget -

func (*LoadBalancer) Start

func (lb *LoadBalancer) Start(ctx context.Context) error

func (*LoadBalancer) TargetExists

func (lb *LoadBalancer) TargetExists(identifier int) bool

TargetExists -

type Target

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

func (*Target) Configure

func (t *Target) Configure(identifierOffset int) error

func (*Target) Delete

func (t *Target) Delete() error

func (*Target) GetIdentifier

func (t *Target) GetIdentifier() int

func (*Target) GetIps

func (t *Target) GetIps() []string

func (*Target) Verify

func (t *Target) Verify() bool

Jump to

Keyboard shortcuts

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