Documentation
¶
Index ¶
- func AddNeighbour(neigh net.IP) error
- type Kernel
- type NetworkInterface
- type RealKernel
- func (rk *RealKernel) CreateRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
- func (rk *RealKernel) DeleteRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
- func (rk *RealKernel) EnableIPForwarding() error
- func (rk *RealKernel) EnsureGatewaysOnInterfaceInNeighTable(ifKey NetworkInterface) error
- func (rk *RealKernel) InterfaceExists(ifKey NetworkInterface) (bool, error)
- func (rk *RealKernel) IsIPForwardingEnabled() (bool, error)
- func (rk *RealKernel) RouteExists(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) (bool, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddNeighbour ¶ added in v0.6.0
AddNeighbour adds the provided IP as a neighbour on all links that have an address in the same subnet.
Types ¶
type Kernel ¶
type Kernel interface {
EnableIPForwarding() error
IsIPForwardingEnabled() (bool, error)
CreateRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
DeleteRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
InterfaceExists(ifKey NetworkInterface) (bool, error)
RouteExists(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) (bool, error)
EnsureGatewaysOnInterfaceInNeighTable(ifKey NetworkInterface) error
}
Kernel defines the interface for kernel route management.
type NetworkInterface ¶
type NetworkInterface int
NetworkInterface is an enum for network interface keys.
const ( N3 NetworkInterface = iota N6 )
type RealKernel ¶
type RealKernel struct {
// contains filtered or unexported fields
}
RealKernel is the production implementation of the Kernel interface.
func NewRealKernel ¶
func NewRealKernel(n3Interface, n6Interface string) *RealKernel
NewRealKernel creates a new RealKernel instance. The user must supply the interface names for the n3 and n6 interfaces.
func (*RealKernel) CreateRoute ¶
func (rk *RealKernel) CreateRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
CreateRoute adds a route to the kernel for the interface defined by ifKey.
func (*RealKernel) DeleteRoute ¶
func (rk *RealKernel) DeleteRoute(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) error
DeleteRoute removes a route from the kernel for the interface defined by ifKey.
func (*RealKernel) EnableIPForwarding ¶
func (rk *RealKernel) EnableIPForwarding() error
EnableIPForwarding enables IP forwarding on the host.
func (*RealKernel) EnsureGatewaysOnInterfaceInNeighTable ¶ added in v0.4.0
func (rk *RealKernel) EnsureGatewaysOnInterfaceInNeighTable(ifKey NetworkInterface) error
func (*RealKernel) InterfaceExists ¶
func (rk *RealKernel) InterfaceExists(ifKey NetworkInterface) (bool, error)
InterfaceExists checks if the interface corresponding to ifKey exists.
func (*RealKernel) IsIPForwardingEnabled ¶
func (rk *RealKernel) IsIPForwardingEnabled() (bool, error)
IsIPForwardingEnabled checks if IP forwarding is enabled on the host.
func (*RealKernel) RouteExists ¶
func (rk *RealKernel) RouteExists(destination *net.IPNet, gateway net.IP, priority int, ifKey NetworkInterface) (bool, error)
RouteExists checks if a route exists for the interface defined by ifKey.