pkg/netlinkwrapper/netlink.go (76 lines of code) (raw):
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package netlinkwrapper
import "github.com/vishvananda/netlink"
type Interface interface {
// LinkByName finds a link by name
LinkByName(name string) (netlink.Link, error)
// LinkAdd adds a new link device
LinkAdd(link netlink.Link) error
// LinkList lists all link devices
LinkList() ([]netlink.Link, error)
// LinkDel deletes link device
LinkDel(link netlink.Link) error
// LinkSetUp enables the link device
LinkSetUp(link netlink.Link) error
// LinkSetDown disables the link device
LinkSetDown(link netlink.Link) error
// LinkSetNsFd puts the device into a new network namespace
LinkSetNsFd(link netlink.Link, fd int) error
// LinkSetName sets the name of the link device
LinkSetName(link netlink.Link, name string) error
// LinkSetAlias sets the alias of the link device
LinkSetAlias(link netlink.Link, name string) error
// AddrList gets a list of IP addresses in the system
AddrList(link netlink.Link, family int) ([]netlink.Addr, error)
// AddrAdd adds an IP address to a link device
AddrAdd(link netlink.Link, addr *netlink.Addr) error
// AddrDel deletes an IP address from a link device
AddrDel(link netlink.Link, addr *netlink.Addr) error
// AddrReplace replaces (or, if not present, adds) an IP address on a link device
AddrReplace(link netlink.Link, addr *netlink.Addr) error
// RouteReplace adds a route to the system
RouteReplace(route *netlink.Route) error
// RouteDel deletes a route from the system
RouteDel(route *netlink.Route) error
// RouteList gets a list of routes in the system
RouteList(link netlink.Link, family int) ([]netlink.Route, error)
// RuleAdd adds a rule
RuleAdd(rule *netlink.Rule) error
}
type nl struct{}
func NewNetLink() Interface {
return &nl{}
}
func (*nl) LinkByName(name string) (netlink.Link, error) {
return netlink.LinkByName(name)
}
func (*nl) LinkAdd(link netlink.Link) error {
return netlink.LinkAdd(link)
}
func (*nl) LinkList() ([]netlink.Link, error) {
return netlink.LinkList()
}
func (*nl) LinkDel(link netlink.Link) error {
return netlink.LinkDel(link)
}
func (*nl) LinkSetUp(link netlink.Link) error {
return netlink.LinkSetUp(link)
}
func (*nl) LinkSetDown(link netlink.Link) error {
return netlink.LinkSetDown(link)
}
func (*nl) LinkSetNsFd(link netlink.Link, fd int) error {
return netlink.LinkSetNsFd(link, fd)
}
func (*nl) LinkSetName(link netlink.Link, name string) error {
return netlink.LinkSetName(link, name)
}
func (*nl) LinkSetAlias(link netlink.Link, name string) error {
return netlink.LinkSetAlias(link, name)
}
func (*nl) AddrList(link netlink.Link, family int) ([]netlink.Addr, error) {
return netlink.AddrList(link, family)
}
func (*nl) AddrAdd(link netlink.Link, addr *netlink.Addr) error {
return netlink.AddrAdd(link, addr)
}
func (*nl) AddrDel(link netlink.Link, addr *netlink.Addr) error {
return netlink.AddrDel(link, addr)
}
func (*nl) AddrReplace(link netlink.Link, addr *netlink.Addr) error {
return netlink.AddrReplace(link, addr)
}
func (*nl) RouteReplace(route *netlink.Route) error {
return netlink.RouteReplace(route)
}
func (*nl) RouteDel(route *netlink.Route) error {
return netlink.RouteDel(route)
}
func (*nl) RouteList(link netlink.Link, family int) ([]netlink.Route, error) {
return netlink.RouteList(link, family)
}
func (*nl) RuleAdd(rule *netlink.Rule) error {
return netlink.RuleAdd(rule)
}