server

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2024 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloseProject

func CloseProject(prjId string) error

func GetAllProjects

func GetAllProjects() map[string]*NetemProject

func GetProjectConfigs added in v0.1.4

func GetProjectConfigs(prjId string) (*bytes.Buffer, error)

func IdProjectExist

func IdProjectExist(prjID string) bool

func IsProjectExist

func IsProjectExist(prjName string) bool

func NewServer

func NewServer() *netemServer

func SaveProject

func SaveProject(prjId string) (*bytes.Buffer, error)

Types

type BridgeConfig

type BridgeConfig struct {
	Host       string
	Interfaces []string
}

type INetemNode

type INetemNode interface {
	GetName() string
	GetShortName() string
	GetType() string
	IsRunning() bool
	Start() error
	Stop() error
	GetNetns() (netns.NsHandle, error)
	GetInterfaceName(ifIndex int) string
	AddInterface(ifName string, ifIndex int, ns netns.NsHandle) error
	LoadConfig(confPath string) ([]string, error)
	CanRunConsole() error
	Console(shell bool, in io.ReadCloser, out io.Writer, resizeCh chan term.Winsize) error
	Capture(ifIndex int, out io.Writer) error
	CopyFrom(srcPath, destPath string) error
	CopyTo(srcPath, destPath string) error
	ReadConfigFiles(confDir string) (map[string][]byte, error)
	Save(dstPath string) error
	GetInterfacesState() map[string]link.IfState
	SetInterfaceState(ifIndex int, state link.IfState) error
	Close() error
}

func CreateNode

func CreateNode(prjID string, name string, shortName string, config NodeConfig) (INetemNode, error)

type LinkConfig

type LinkConfig struct {
	Peer1  string
	Peer2  string
	Loss   float64 // percent
	Delay  int     // ms
	Jitter int     // ms
	Rate   int     // kbps
	Buffer float64 // BDP scale factor
}

type NetemBridge

type NetemBridge struct {
	Name          string
	HostInterface string
	Peers         []NetemLinkPeer
}
type NetemLink struct {
	Peer1  NetemLinkPeer
	Peer2  NetemLinkPeer
	Loss   float64
	Delay  int
	Jitter int     // ms
	Rate   int     // kbps
	Buffer float64 // BDP scale factor
}

type NetemLinkPeer

type NetemLinkPeer struct {
	Node    INetemNode
	IfIndex int
}

type NetemProject

type NetemProject struct {
	Id       string
	Name     string
	Dir      string
	OpenAt   time.Time
	Topology *NetemTopologyManager
}

func GetProject

func GetProject(prjID string) *NetemProject

func OpenProject

func OpenProject(prjId, name string, data []byte) (*NetemProject, error)

type NetemTopology

type NetemTopology struct {
	Nodes   map[string]NodeConfig
	Links   []LinkConfig
	Bridges map[string]BridgeConfig
}

func CheckTopology

func CheckTopology(filepath string) (*NetemTopology, []error)

type NetemTopologyManager

type NetemTopologyManager struct {
	IdGenerator *NodeIdentifierGenerator
	// contains filtered or unexported fields
}

func LoadTopology

func LoadTopology(prjID, prjPath string) (*NetemTopologyManager, error)

func (*NetemTopologyManager) Check

func (t *NetemTopologyManager) Check() error

func (*NetemTopologyManager) Close

func (t *NetemTopologyManager) Close() error

func (*NetemTopologyManager) GetAllNodes

func (t *NetemTopologyManager) GetAllNodes() []INetemNode

func (*NetemTopologyManager) GetNetFilePath

func (t *NetemTopologyManager) GetNetFilePath() string

func (*NetemTopologyManager) GetNode

func (t *NetemTopologyManager) GetNode(name string) INetemNode

func (*NetemTopologyManager) IsRunning

func (t *NetemTopologyManager) IsRunning() bool

func (*NetemTopologyManager) Load

func (t *NetemTopologyManager) Load() error

func (*NetemTopologyManager) ReadConfigFiles added in v0.2.0

func (t *NetemTopologyManager) ReadConfigFiles(nodeName string) (map[string][]byte, error)

func (*NetemTopologyManager) ReadNetworkFile

func (t *NetemTopologyManager) ReadNetworkFile() ([]byte, error)

func (*NetemTopologyManager) Reload

func (*NetemTopologyManager) Run

func (*NetemTopologyManager) Save

func (t *NetemTopologyManager) Save() error

func (*NetemTopologyManager) Start

func (t *NetemTopologyManager) Start(nodeName string) ([]string, error)

func (*NetemTopologyManager) Stop

func (t *NetemTopologyManager) Stop(nodeName string) error

func (*NetemTopologyManager) WriteNetworkFile

func (t *NetemTopologyManager) WriteNetworkFile(data []byte) error

type NodeConfig

type NodeConfig struct {
	Type    string
	IPv6    bool
	Mpls    bool
	Vrfs    []string
	Vrrps   []VrrpOptions
	Volumes []string
	Image   string
}

type NodeIdentifierGenerator added in v0.1.1

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

func (*NodeIdentifierGenerator) Close added in v0.1.1

func (nIdGen *NodeIdentifierGenerator) Close()

func (*NodeIdentifierGenerator) GetId added in v0.1.1

func (nIdGen *NodeIdentifierGenerator) GetId(name string) (string, error)

type NodeNotFoundError

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

func (*NodeNotFoundError) Error

func (e *NodeNotFoundError) Error() string

type ProjectNotFoundError

type ProjectNotFoundError struct {
	Id string
}

func (*ProjectNotFoundError) Error

func (e *ProjectNotFoundError) Error() string

type VrrpOptions added in v0.1.1

type VrrpOptions struct {
	Interface int
	Group     int
	Address   string
}

Jump to

Keyboard shortcuts

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