ipvs

package
v1.1.0-alpha.1....-1f45cd0 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2017 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// FlagPersistent specify IPVS service session affinity
	FlagPersistent = 0x1
	// FlagHashed specify IPVS service hash flag
	FlagHashed = 0x2
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface interface {
	// Flush clears all virtual servers in system. return occurred error immediately.
	Flush() error
	// EnsureVirtualServerAddressBind checks if virtual server's address is bound to dummy interface and, if not, binds it. If the address is already bound, return true.
	EnsureVirtualServerAddressBind(serv *VirtualServer, dev string) (exist bool, err error)
	// UnbindVirtualServerAddress checks if virtual server's address is bound to dummy interface and, if so, unbinds it.
	UnbindVirtualServerAddress(serv *VirtualServer, dev string) error
	// AddVirtualServer creates the specified virtual server.
	AddVirtualServer(*VirtualServer) error
	// UpdateVirtualServer updates an already existing virtual server.  If the virtual server does not exist, return error.
	UpdateVirtualServer(*VirtualServer) error
	// DeleteVirtualServer deletes the specified virtual server.  If the virtual server does not exist, return error.
	DeleteVirtualServer(*VirtualServer) error
	// Given a partial virtual server, GetVirtualServer will return the specified virtual server information in the system.
	GetVirtualServer(*VirtualServer) (*VirtualServer, error)
	// GetVirtualServers lists all virtual servers in the system.
	GetVirtualServers() ([]*VirtualServer, error)
	// AddRealServer creates the specified real server for the specified virtual server.
	AddRealServer(*VirtualServer, *RealServer) error
	// GetRealServers returns all real servers for the specified virtual server.
	GetRealServers(*VirtualServer) ([]*RealServer, error)
	// DeleteRealServer deletes the specified real server from the specified virtual server.
	DeleteRealServer(*VirtualServer, *RealServer) error
}

Interface is an injectable interface for running ipvs commands. Implementations must be goroutine-safe.

func New

func New(exec utilexec.Interface) Interface

New returns a new Interface which will call ipvs APIs.

type ProtoType

type ProtoType uint16

ProtoType is IPVS service protocol type

type RealServer

type RealServer struct {
	Address net.IP
	Port    uint16
	Weight  int
}

RealServer is an user-oriented definition of an IPVS real server in its entirety.

func (*RealServer) String

func (dest *RealServer) String() string

type ServiceFlags

type ServiceFlags uint32

ServiceFlags is used to specify session affinity, ip hash etc.

type VirtualServer

type VirtualServer struct {
	Address   net.IP
	Protocol  string
	Port      uint16
	Scheduler string
	Flags     ServiceFlags
	Timeout   uint32
}

VirtualServer is an user-oriented definition of an IPVS virtual server in its entirety.

func (*VirtualServer) Equal

func (svc *VirtualServer) Equal(other *VirtualServer) bool

Equal check the equality of virtual server. We don't use struct == since it doesn't work because of slice.

func (*VirtualServer) String

func (svc *VirtualServer) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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