utils

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// NetDirectory sysfs net directory
	NetDirectory = "/sys/class/net"
	// SysBusPci is sysfs pci device directory
	SysBusPci = "/sys/bus/pci/devices"
	// UserspaceDrivers is a list of driver names that don't have netlink representation for their devices
	UserspaceDrivers = []string{"vfio-pci"}
)

Functions

func BridgePVIDVlanAdd added in v0.4.0

func BridgePVIDVlanAdd(nlink Netlink, link netlink.Link, vlanID int) error

BridgePVIDVlanAdd configure port VLAN id for link

func BridgePVIDVlanDel added in v0.4.0

func BridgePVIDVlanDel(nlink Netlink, link netlink.Link, vlanID int) error

BridgePVIDVlanDel remove port VLAN id for link

func BridgeTrunkVlanAdd added in v0.4.0

func BridgeTrunkVlanAdd(nlink Netlink, link netlink.Link, vlans []int) error

BridgeTrunkVlanAdd configure vlan trunk on link

func BridgeTrunkVlanDel added in v0.5.0

func BridgeTrunkVlanDel(nlink Netlink, link netlink.Link, vlans []int) error

BridgeTrunkVlanDel remove vlans from trunk on link

func BridgeVlanList added in v0.5.0

func BridgeVlanList(nlink Netlink) (map[int32][]*nl.BridgeVlanInfo, error)

func CreateTmpSysFs

func CreateTmpSysFs() error

CreateTmpSysFs create mock sysfs for testing nolint:gosec

func GetBridgeLinks(nLink Netlink, bridge netlink.Link) ([]netlink.Link, error)

GetBridgeLinks returns list of netlink.Links that are part of the provided bridge

func GetParentBondForLink(nLink Netlink, link netlink.Link) (netlink.Link, error)

GetParentBondForLink returns the parent bonded interface if provided link is member of a bond.

func GetParentBridgeForLink(nLink Netlink, link netlink.Link) (netlink.Link, error)

GetParentBridgeForLink returns linux bridge if provided link belongs to any. if provided link has a parent interface (e.g. interface is a part of a bond) will return a bridge to which parent interface belongs to

func GetSriovNumVfs

func GetSriovNumVfs(ifName string) (int, error)

GetSriovNumVfs takes in a PF name(ifName) as string and returns number of VF configured as int

func GetVFLinkName

func GetVFLinkName(pciAddr string) (string, error)

GetVFLinkName returns VF's network interface name given it's PCI addr

func GetVfid

func GetVfid(addr, pfName string) (int, error)

GetVfid takes in VF's PCI address(addr) and pfName as string and returns VF's ID as int

func HasUserspaceDriver added in v0.2.0

func HasUserspaceDriver(pciAddr string) (bool, error)

HasUserspaceDriver checks if a device is attached to userspace driver

func RemoveTmpSysFs

func RemoveTmpSysFs() error

RemoveTmpSysFs removes mocked sysfs

Types

type Netlink interface {
	LinkByName(string) (netlink.Link, error)
	LinkByIndex(index int) (netlink.Link, error)
	LinkSetVfHardwareAddr(netlink.Link, int, net.HardwareAddr) error
	LinkSetHardwareAddr(netlink.Link, net.HardwareAddr) error
	LinkSetUp(netlink.Link) error
	LinkSetDown(netlink.Link) error
	LinkSetNsFd(netlink.Link, int) error
	LinkSetName(netlink.Link, string) error
	LinkSetMaster(netlink.Link, netlink.Link) error
	LinkSetNoMaster(netlink.Link) error
	BridgeVlanAdd(netlink.Link, uint16, bool, bool, bool, bool) error
	BridgeVlanDel(netlink.Link, uint16, bool, bool, bool, bool) error
	LinkSetMTU(netlink.Link, int) error
	BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)
	LinkList() ([]netlink.Link, error)
}

Netlink represents limited subset of functions from netlink package

type NetlinkWrapper struct {
}

NetlinkWrapper wrapper for netlink package

func (*NetlinkWrapper) BridgeVlanAdd added in v0.4.0

func (n *NetlinkWrapper) BridgeVlanAdd(link netlink.Link, vid uint16, pvid, untagged, self, master bool) error

BridgeVlanAdd is a wrapper for netlink.BridgeVlanAdd

func (*NetlinkWrapper) BridgeVlanDel added in v0.4.0

func (n *NetlinkWrapper) BridgeVlanDel(link netlink.Link, vid uint16, pvid, untagged, self, master bool) error

BridgeVlanDel is a wrapper for netlink.BridgeVlanDel

func (*NetlinkWrapper) BridgeVlanList added in v0.5.0

func (n *NetlinkWrapper) BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)

BridgeVlanList is a wrapper for netlink.BridgeVlanList

func (*NetlinkWrapper) LinkByIndex added in v0.4.0

func (n *NetlinkWrapper) LinkByIndex(index int) (netlink.Link, error)

LinkByIndex is a wrapper for netlink.LinkByIndex

func (*NetlinkWrapper) LinkByName added in v0.4.0

func (n *NetlinkWrapper) LinkByName(name string) (netlink.Link, error)

LinkByName is a wrapper for netlink.LinkByName

func (n *NetlinkWrapper) LinkList() ([]netlink.Link, error)

LinkList is a wrapper for netlink.LinkList

func (*NetlinkWrapper) LinkSetDown added in v0.4.0

func (n *NetlinkWrapper) LinkSetDown(link netlink.Link) error

LinkSetDown is a wrapper for netlink.LinkSetDown

func (*NetlinkWrapper) LinkSetHardwareAddr added in v0.4.0

func (n *NetlinkWrapper) LinkSetHardwareAddr(link netlink.Link, hwaddr net.HardwareAddr) error

LinkSetHardwareAddr is a wrapper for netlink.LinkSetHardwareAddr

func (*NetlinkWrapper) LinkSetMTU added in v0.4.0

func (n *NetlinkWrapper) LinkSetMTU(link netlink.Link, mtu int) error

LinkSetMTU is a wrapper for netlink.LinkSetMTU

func (*NetlinkWrapper) LinkSetMaster added in v0.4.0

func (n *NetlinkWrapper) LinkSetMaster(link, master netlink.Link) error

LinkSetMaster is a wrapper for netlink.LinkSetMaster

func (*NetlinkWrapper) LinkSetName added in v0.4.0

func (n *NetlinkWrapper) LinkSetName(link netlink.Link, name string) error

LinkSetName is a wrapper for netlink.LinkSetName

func (*NetlinkWrapper) LinkSetNoMaster added in v0.4.0

func (n *NetlinkWrapper) LinkSetNoMaster(link netlink.Link) error

LinkSetNoMaster is a wrapper for netlink.LinkSetNoMaster

func (*NetlinkWrapper) LinkSetNsFd added in v0.4.0

func (n *NetlinkWrapper) LinkSetNsFd(link netlink.Link, fd int) error

LinkSetNsFd is a wrapper for netlink.LinkSetNsFd

func (*NetlinkWrapper) LinkSetUp added in v0.4.0

func (n *NetlinkWrapper) LinkSetUp(link netlink.Link) error

LinkSetUp is a wrapper for netlink.LinkSetUp

func (*NetlinkWrapper) LinkSetVfHardwareAddr added in v0.4.0

func (n *NetlinkWrapper) LinkSetVfHardwareAddr(link netlink.Link, vf int, hwaddr net.HardwareAddr) error

LinkSetVfHardwareAddr is a wrapper for netlink.LinkSetVfHardwareAddr

type SriovnetProvider added in v0.3.0

type SriovnetProvider interface {
	GetVfRepresentor(string, int) (string, error)
	GetUplinkRepresentor(string) (string, error)
}

SriovnetProvider represents limited subset of functions from sriovnet package

type SriovnetWrapper added in v0.3.0

type SriovnetWrapper struct{}

func (*SriovnetWrapper) GetUplinkRepresentor added in v0.3.0

func (s *SriovnetWrapper) GetUplinkRepresentor(vfPciAddress string) (string, error)

func (*SriovnetWrapper) GetVfRepresentor added in v0.3.0

func (s *SriovnetWrapper) GetVfRepresentor(master string, vfid int) (string, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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