inet

package
v0.0.0-...-23e6066 Latest Latest
Warning

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

Go to latest
Published: May 3, 2018 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package inet defines semantics for IP stacks.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface struct {

	// DeviceType is the device type, a Linux ARPHRD_* constant.
	DeviceType uint16

	// Flags is the device flags; see netdevice(7), under "Ioctls",
	// "SIOCGIFFLAGS, SIOCSIFFLAGS".
	Flags uint32

	// Name is the device name.
	Name string

	// Addr is the hardware device address.
	Addr []byte
}

Interface contains information about a network interface.

type InterfaceAddr

type InterfaceAddr struct {

	// Family is the address family, a Linux AF_* constant.
	Family uint8

	// PrefixLen is the address prefix length.
	PrefixLen uint8

	// Flags is the address flags.
	Flags uint8

	// Addr is the actual address.
	Addr []byte
}

InterfaceAddr contains information about a network interface address.

type Stack

type Stack interface {
	// Interfaces returns all network interfaces as a mapping from interface
	// indexes to interface properties. Interface indices are strictly positive
	// integers.
	Interfaces() map[int32]Interface

	// InterfaceAddrs returns all network interface addresses as a mapping from
	// interface indexes to a slice of associated interface address properties.
	InterfaceAddrs() map[int32][]InterfaceAddr

	// SupportsIPv6 returns true if the stack supports IPv6 connectivity.
	SupportsIPv6() bool

	// TCPReceiveBufferSize returns TCP receive buffer size settings.
	TCPReceiveBufferSize() (TCPBufferSize, error)

	// SetTCPReceiveBufferSize attempts to change TCP receive buffer size
	// settings.
	SetTCPReceiveBufferSize(size TCPBufferSize) error

	// TCPSendBufferSize returns TCP send buffer size settings.
	TCPSendBufferSize() (TCPBufferSize, error)

	// SetTCPSendBufferSize attempts to change TCP send buffer size settings.
	SetTCPSendBufferSize(size TCPBufferSize) error

	// TCPSACKEnabled returns true if RFC 2018 TCP Selective Acknowledgements
	// are enabled.
	TCPSACKEnabled() (bool, error)

	// SetTCPSACKEnabled attempts to change TCP selective acknowledgement
	// settings.
	SetTCPSACKEnabled(enabled bool) error
}

Stack represents a TCP/IP stack.

type TCPBufferSize

type TCPBufferSize struct {
	// Min is the minimum size.
	Min int

	// Default is the default size.
	Default int

	// Max is the maximum size.
	Max int
}

TCPBufferSize contains settings controlling TCP buffer sizing.

type TestStack

type TestStack struct {
	InterfacesMap     map[int32]Interface
	InterfaceAddrsMap map[int32][]InterfaceAddr
	SupportsIPv6Flag  bool
	TCPRecvBufSize    TCPBufferSize
	TCPSendBufSize    TCPBufferSize
	TCPSACKFlag       bool
}

TestStack is a dummy implementation of Stack for tests.

func NewTestStack

func NewTestStack() *TestStack

NewTestStack returns a TestStack with no network interfaces. The value of all other options is unspecified; tests that rely on specific values must set them explicitly.

func (*TestStack) InterfaceAddrs

func (s *TestStack) InterfaceAddrs() map[int32][]InterfaceAddr

InterfaceAddrs implements Stack.InterfaceAddrs.

func (*TestStack) Interfaces

func (s *TestStack) Interfaces() map[int32]Interface

Interfaces implements Stack.Interfaces.

func (*TestStack) SetTCPReceiveBufferSize

func (s *TestStack) SetTCPReceiveBufferSize(size TCPBufferSize) error

SetTCPReceiveBufferSize implements Stack.SetTCPReceiveBufferSize.

func (*TestStack) SetTCPSACKEnabled

func (s *TestStack) SetTCPSACKEnabled(enabled bool) error

SetTCPSACKEnabled implements Stack.SetTCPSACKEnabled.

func (*TestStack) SetTCPSendBufferSize

func (s *TestStack) SetTCPSendBufferSize(size TCPBufferSize) error

SetTCPSendBufferSize implements Stack.SetTCPSendBufferSize.

func (*TestStack) SupportsIPv6

func (s *TestStack) SupportsIPv6() bool

SupportsIPv6 implements Stack.SupportsIPv6.

func (*TestStack) TCPReceiveBufferSize

func (s *TestStack) TCPReceiveBufferSize() (TCPBufferSize, error)

TCPReceiveBufferSize implements Stack.TCPReceiveBufferSize.

func (*TestStack) TCPSACKEnabled

func (s *TestStack) TCPSACKEnabled() (bool, error)

TCPSACKEnabled implements Stack.TCPSACKEnabled.

func (*TestStack) TCPSendBufferSize

func (s *TestStack) TCPSendBufferSize() (TCPBufferSize, error)

TCPSendBufferSize implements Stack.TCPSendBufferSize.

Jump to

Keyboard shortcuts

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