Documentation
¶
Overview ¶
Package networking provides abstraction layers for accessing networking resources both across platform specific details, and for virtual / mock configurations for testing
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Environment ¶
type Environment interface {
io.Closer
// Interfaces is typically a wrapper for net.Interfaces()
Interfaces() ([]Interface, error)
// InterfaceByName looks up an interface by its name
InterfaceByName(string) (Interface, error)
// ListenUDP abstracts net.ListenUDP
ListenUDP(network string, laddr *net.UDPAddr) (UDPConn, error)
// NewWgClient creates a wireguard client interface for the host
NewWgClient() (internal.WgClient, error)
}
Environment represents the top level abstraction of the system's networking environment.
type Interface ¶
type Interface interface {
Name() string
IsUp() bool
Addrs() ([]net.IPNet, error)
AddAddr(net.IPNet) error
}
Interface represents a single network interface
type UDPConn ¶ added in v0.9.1
type UDPConn interface {
io.Closer
SetReadDeadline(t time.Time) error
SetWriteDeadline(t time.Time) error
ReadFromUDP(b []byte) (n int, addr *net.UDPAddr, err error)
WriteToUDP(p []byte, addr *net.UDPAddr) (n int, err error)
// ReadPackets reads packets from the connection until it is either closed,
// or the passed context is cancelled.
// Packets or errors (other than the connection being closed) will be sent
// to the output channel, which will be closed when this routine finishes.
// Closing the connection is always the responsibility of the caller.
ReadPackets(
ctx context.Context,
maxSize int,
output chan<- *UDPPacket,
) error
}
UDPConn abstracts net.UDPConn
Directories
¶
| Path | Synopsis |
|---|---|
|
Package host provides a generic accessor factory to create the appropriate platform-specific interface to the host networking APIs.
|
Package host provides a generic accessor factory to create the appropriate platform-specific interface to the host networking APIs. |
|
Package linux provides an implementation of networking.Environment for the host Linux system, leveraging the Go native package, and then filling in the gaps using netlink APIs.
|
Package linux provides an implementation of networking.Environment for the host Linux system, leveraging the Go native package, and then filling in the gaps using netlink APIs. |
|
Package mocks provides mock implementations of the networking apis, for the testify mock library, generated via go generate and mockery.
|
Package mocks provides mock implementations of the networking apis, for the testify mock library, generated via go generate and mockery. |
|
Package native provdies common base implementations of the networking.Environment and related interfaces, or at least the portions that can be implemented using common native Go APIs.
|
Package native provdies common base implementations of the networking.Environment and related interfaces, or at least the portions that can be implemented using common native Go APIs. |
|
Package vnet provides a virtual (as opposed to mocked) implementation of the abstracted UDP networking stack.
|
Package vnet provides a virtual (as opposed to mocked) implementation of the abstracted UDP networking stack. |
Click to show internal directories.
Click to hide internal directories.