netlink

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2021 License: MIT Imports: 8 Imported by: 4

Documentation

Index

Constants

View Source
const (
	RT_SCOPE_UNIVERSE = 0
	RT_SCOPE_SITE     = 200
	RT_SCOPE_LINK     = 253
	RT_SCOPE_HOST     = 254
	RT_SCOPE_NOWHERE  = 255
)
View Source
const (
	LINK_TYPE_BRIDGE = "bridge"
	LINK_TYPE_VETH   = "veth"
	LINK_TYPE_IPVLAN = "ipvlan"
	LINK_TYPE_DUMMY  = "dummy"
)

Link types.

View Source
const (
	ADD = iota
	REMOVE
)
View Source
const (
	NDA_UNSPEC = iota
	NDA_DST
	NDA_LLADDR
	NDA_CACHEINFO
	NDA_PROBES
	NDA_VLAN
	NDA_PORT
	NDA_VNI
	NDA_IFINDEX
	NDA_MAX = NDA_IFINDEX
)
View Source
const (
	NUD_NONE       = 0x00
	NUD_INCOMPLETE = 0x01
	NUD_REACHABLE  = 0x02
	NUD_STALE      = 0x04
	NUD_DELAY      = 0x08
	NUD_PROBE      = 0x10
	NUD_FAILED     = 0x20
	NUD_NOARP      = 0x40
	NUD_PERMANENT  = 0x80
)

Neighbor Cache Entry States.

View Source
const (
	NTF_USE    = 0x01
	NTF_SELF   = 0x02
	NTF_MASTER = 0x04
	NTF_PROXY  = 0x08
	NTF_ROUTER = 0x80
)

Neighbor Flags

View Source
const (
	IFLA_INFO_KIND   = 1
	IFLA_INFO_DATA   = 2
	IFLA_NET_NS_FD   = 28
	IFLA_IPVLAN_MODE = 1
	IFLA_BRPORT_MODE = 4
	VETH_INFO_PEER   = 1
	DEFAULT_CHANGE   = 0xFFFFFFFF
)

Netlink protocol constants that are not already defined in unix package.

View Source
const (
	RTPROT_KERNEL = 2
)

Variables

This section is empty.

Functions

func AddIpAddress added in v1.0.0

func AddIpAddress(ifName string, ipAddress net.IP, ipNet *net.IPNet) error

AddIpAddress adds an IP address to a network interface.

func AddIpRoute added in v1.0.0

func AddIpRoute(route *Route) error

AddIpRoute adds an IP route to the route table.

func AddLink(link Link) error

AddLink adds a new network interface of a specified type.

func AddOrRemoveStaticArp added in v1.0.15

func AddOrRemoveStaticArp(mode int, name string, ipaddr net.IP, mac net.HardwareAddr, isProxy bool) error

AddOrRemoveStaticArp sets/removes static arp entry based on mode

func DeleteIpAddress added in v1.0.0

func DeleteIpAddress(ifName string, ipAddress net.IP, ipNet *net.IPNet) error

DeleteIpAddress deletes an IP address from a network interface.

func DeleteIpRoute added in v1.0.0

func DeleteIpRoute(route *Route) error

DeleteIpRoute deletes an IP route from the route table.

func DeleteLink(name string) error

DeleteLink deletes a network interface.

func Echo

func Echo(text string) error

Echo sends a netlink echo request message.

func GetIpAddressFamily added in v1.0.0

func GetIpAddressFamily(ip net.IP) int

GetIpAddressFamily returns the address family of an IP address.

func ResetSocket

func ResetSocket()

ResetSocket deletes the default netlink socket.

func SetLinkAddress added in v1.0.0

func SetLinkAddress(ifName string, hwAddress net.HardwareAddr) error

SetLinkAddress sets the link layer hardware address of a network interface.

func SetLinkHairpin added in v1.0.0

func SetLinkHairpin(bridgeName string, on bool) error

SetLinkHairpin sets the hairpin (reflective relay) mode of a bridged interface.

func SetLinkMaster added in v1.0.0

func SetLinkMaster(name string, master string) error

SetLinkMaster sets the master (upper) device of a network interface.

func SetLinkName added in v1.0.0

func SetLinkName(name string, newName string) error

SetLinkName sets the name of a network interface.

func SetLinkNetNs added in v1.0.0

func SetLinkNetNs(name string, fd uintptr) error

SetLinkNetNs sets the network namespace of a network interface.

func SetLinkPromisc added in v1.0.0

func SetLinkPromisc(ifName string, on bool) error

SetLinkPromisc sets the promiscuous mode of a network interface.

func SetLinkState added in v1.0.0

func SetLinkState(name string, up bool) error

SetLinkState sets the operational state of a network interface.

Types

type BridgeLink struct {
	LinkInfo
}

BridgeLink represents an ethernet bridge.

type DummyLink struct {
	LinkInfo
}

DummyLink represents a dummy network interface.

type IPVlanLink struct {
	LinkInfo
	Mode IPVlanMode
}

IPVlanLink represents an IPVlan network interface.

type IPVlanMode

type IPVlanMode uint16

IPVLAN link attributes.

const (
	IPVLAN_MODE_L2 IPVlanMode = iota
	IPVLAN_MODE_L3
	IPVLAN_MODE_L3S
	IPVLAN_MODE_MAX
)
type Link interface {
	Info() *LinkInfo
}

Link represents a network interface.

type LinkInfo

type LinkInfo struct {
	Type        string
	Name        string
	Flags       net.Flags
	MTU         uint
	TxQLen      uint
	ParentIndex int
}

LinkInfo respresents the common properties of all network interfaces.

func (*LinkInfo) Info

func (linkInfo *LinkInfo) Info() *LinkInfo

type Route

type Route struct {
	Family     int
	Dst        *net.IPNet
	Src        net.IP
	Gw         net.IP
	Tos        int
	Table      int
	Protocol   int
	Scope      int
	Type       int
	Flags      int
	Priority   int
	LinkIndex  int
	ILinkIndex int
}

Route represents a netlink route.

func GetIpRoute added in v1.0.0

func GetIpRoute(filter *Route) ([]*Route, error)

GetIpRoute returns a list of IP routes matching the given filter.

type VEthLink struct {
	LinkInfo
	PeerName string
}

VEthLink represents a virtual ethernet network interface.

Jump to

Keyboard shortcuts

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