nl

package
v0.2.12-test.4 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAddressFamily added in v0.2.0

func GetAddressFamily(addressFamily int) (string, error)

func GetProtocolName added in v0.2.0

func GetProtocolName(p netlink.RouteProtocol) string

func GetProtocolNumber added in v0.2.0

func GetProtocolNumber(protocol string, frr bool) int

Types

type Layer2Information

type Layer2Information struct {
	VlanID                 int
	MTU                    int
	VNI                    int
	VRF                    string
	AnycastMAC             *net.HardwareAddr
	AnycastGateways        []*netlink.Addr
	AdvertiseNeighbors     bool
	NeighSuppression       *bool
	CreateMACVLANInterface bool
	// contains filtered or unexported fields
}

type Manager added in v0.2.7

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager added in v0.2.7

func NewManager(toolkit ToolkitInterface) *Manager

func (*Manager) CleanupL2 added in v0.2.7

func (n *Manager) CleanupL2(info *Layer2Information) []error

func (*Manager) CleanupL3 added in v0.2.7

func (n *Manager) CleanupL3(name string) []error

Cleanup will try to delete all interfaces associated with this VRF and return a list of errors (for logging) as a slice.

func (*Manager) CleanupTaas added in v0.2.7

func (n *Manager) CleanupTaas(info TaasInformation) error

func (*Manager) CreateL2 added in v0.2.7

func (n *Manager) CreateL2(info *Layer2Information) error

func (*Manager) CreateL3 added in v0.2.7

func (n *Manager) CreateL3(info VRFInformation) error

Create will create a VRF and all interfaces necessary to operate the EVPN and leaking.

func (*Manager) CreateTaas added in v0.2.7

func (n *Manager) CreateTaas(info TaasInformation) error

func (*Manager) EnsureBPFProgram added in v0.2.7

func (n *Manager) EnsureBPFProgram(info VRFInformation) error

func (*Manager) EnsureMTU added in v0.2.7

func (n *Manager) EnsureMTU(info VRFInformation) error

func (*Manager) GetBridgeID added in v0.2.7

func (n *Manager) GetBridgeID(info *Layer2Information) (int, error)

func (*Manager) GetL3ByName added in v0.2.7

func (n *Manager) GetL3ByName(name string) (*VRFInformation, error)

func (*Manager) GetUnderlayIP added in v0.2.7

func (n *Manager) GetUnderlayIP() (net.IP, error)

func (*Manager) ListL2 added in v0.2.7

func (n *Manager) ListL2() ([]Layer2Information, error)

func (*Manager) ListL3 added in v0.2.7

func (n *Manager) ListL3() ([]VRFInformation, error)

func (*Manager) ListNeighborInformation added in v0.2.7

func (n *Manager) ListNeighborInformation() ([]NeighborInformation, error)

func (*Manager) ListNeighborInterfaces added in v0.2.7

func (n *Manager) ListNeighborInterfaces() (map[int]netlink.Link, error)

func (*Manager) ListRouteInformation added in v0.2.7

func (n *Manager) ListRouteInformation() ([]route.Information, error)

func (*Manager) ListTaas added in v0.2.7

func (*Manager) ListTaas() ([]TaasInformation, error)

func (*Manager) ListVRFInterfaces added in v0.2.7

func (n *Manager) ListVRFInterfaces() (map[int]VRFInformation, error)

func (*Manager) ParseIPAddresses added in v0.2.7

func (n *Manager) ParseIPAddresses(addresses []string) ([]*netlink.Addr, error)

func (*Manager) ReconcileL2 added in v0.2.7

func (n *Manager) ReconcileL2(current, desired *Layer2Information) error

func (*Manager) UpL3 added in v0.2.7

func (n *Manager) UpL3(info VRFInformation) error

UpL3 will set all interfaces up. This is done after the FRR reload to not have a L2VNI for a short period of time.

type NeighborInformation added in v0.2.0

type NeighborInformation struct {
	Interface string
	State     string
	Family    string
	Flag      string
	Quantity  float64
}

type NeighborKey added in v0.2.3

type NeighborKey struct {
	InterfaceIndex, State, Flags, Family int
}

type TaasInformation added in v0.2.3

type TaasInformation struct {
	Name  string
	Table int
}

type Toolkit added in v0.2.7

type Toolkit struct{}

func (*Toolkit) AddrAdd added in v0.2.7

func (*Toolkit) AddrAdd(link netlink.Link, addr *netlink.Addr) error

func (*Toolkit) AddrDel added in v0.2.7

func (*Toolkit) AddrDel(link netlink.Link, addr *netlink.Addr) error

func (*Toolkit) AddrList added in v0.2.7

func (*Toolkit) AddrList(link netlink.Link, family int) ([]netlink.Addr, error)

func (*Toolkit) ExecuteNetlinkRequest added in v0.2.7

func (*Toolkit) ExecuteNetlinkRequest(req *nl.NetlinkRequest, sockType int, resType uint16) ([][]byte, error)

func (*Toolkit) LinkAdd added in v0.2.7

func (*Toolkit) LinkAdd(link netlink.Link) error

func (*Toolkit) LinkByIndex added in v0.2.7

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

func (*Toolkit) LinkByName added in v0.2.7

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

func (*Toolkit) LinkDel added in v0.2.7

func (*Toolkit) LinkDel(link netlink.Link) error

func (*Toolkit) LinkGetProtinfo added in v0.2.7

func (*Toolkit) LinkGetProtinfo(link netlink.Link) (netlink.Protinfo, error)
func (*Toolkit) LinkList() ([]netlink.Link, error)

func (*Toolkit) LinkSetDown added in v0.2.7

func (*Toolkit) LinkSetDown(link netlink.Link) error

func (*Toolkit) LinkSetHairpin added in v0.2.7

func (*Toolkit) LinkSetHairpin(link netlink.Link, mode bool) error

func (*Toolkit) LinkSetHardwareAddr added in v0.2.7

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

func (*Toolkit) LinkSetLearning added in v0.2.7

func (*Toolkit) LinkSetLearning(link netlink.Link, mode bool) error

func (*Toolkit) LinkSetMTU added in v0.2.7

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

func (*Toolkit) LinkSetMaster added in v0.2.7

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

func (*Toolkit) LinkSetMasterByIndex added in v0.2.7

func (*Toolkit) LinkSetMasterByIndex(link netlink.Link, masterIndex int) error

func (*Toolkit) LinkSetNoMaster added in v0.2.7

func (*Toolkit) LinkSetNoMaster(link netlink.Link) error

func (*Toolkit) LinkSetUp added in v0.2.7

func (*Toolkit) LinkSetUp(link netlink.Link) error

func (*Toolkit) NeighList added in v0.2.7

func (*Toolkit) NeighList(linkIndex, family int) ([]netlink.Neigh, error)

func (*Toolkit) NewIPNet added in v0.2.7

func (*Toolkit) NewIPNet(ip net.IP) *net.IPNet

func (*Toolkit) ParseAddr added in v0.2.7

func (*Toolkit) ParseAddr(s string) (*netlink.Addr, error)

func (*Toolkit) RouteAdd added in v0.2.7

func (*Toolkit) RouteAdd(route *netlink.Route) error

func (*Toolkit) RouteDel added in v0.2.7

func (*Toolkit) RouteDel(route *netlink.Route) error

func (*Toolkit) RouteListFiltered added in v0.2.7

func (*Toolkit) RouteListFiltered(family int, filter *netlink.Route, filterMask uint64) ([]netlink.Route, error)

func (*Toolkit) VethPeerIndex added in v0.2.7

func (*Toolkit) VethPeerIndex(link *netlink.Veth) (int, error)

type ToolkitInterface added in v0.2.7

type ToolkitInterface interface {
	LinkByIndex(index int) (netlink.Link, error)
	LinkByName(name string) (netlink.Link, error)
	LinkList() ([]netlink.Link, error)
	NeighList(linkIndex int, family int) ([]netlink.Neigh, error)
	NewIPNet(ip net.IP) *net.IPNet
	RouteListFiltered(family int, filter *netlink.Route, filterMask uint64) ([]netlink.Route, error)
	RouteDel(route *netlink.Route) error
	RouteAdd(route *netlink.Route) error
	AddrList(link netlink.Link, family int) ([]netlink.Addr, error)
	VethPeerIndex(link *netlink.Veth) (int, error)
	ParseAddr(s string) (*netlink.Addr, error)
	LinkDel(link netlink.Link) error
	LinkSetUp(link netlink.Link) error
	LinkAdd(link netlink.Link) error
	AddrAdd(link netlink.Link, addr *netlink.Addr) error
	AddrDel(link netlink.Link, addr *netlink.Addr) error
	LinkSetLearning(link netlink.Link, mode bool) error
	LinkSetHairpin(link netlink.Link, mode bool) error
	ExecuteNetlinkRequest(req *nl.NetlinkRequest, sockType int, resType uint16) ([][]byte, error)
	LinkSetMTU(link netlink.Link, mtu int) error
	LinkSetDown(link netlink.Link) error
	LinkSetHardwareAddr(link netlink.Link, hwaddr net.HardwareAddr) error
	LinkSetMasterByIndex(link netlink.Link, masterIndex int) error
	LinkSetNoMaster(link netlink.Link) error
	LinkGetProtinfo(link netlink.Link) (netlink.Protinfo, error)
	LinkSetMaster(link netlink.Link, master netlink.Link) error
}

type VRFInformation

type VRFInformation struct {
	Name string
	VNI  int
	MTU  int

	MarkForDelete bool
	// contains filtered or unexported fields
}

Directories

Path Synopsis
Package mock_nl is a generated GoMock package.
Package mock_nl is a generated GoMock package.

Jump to

Keyboard shortcuts

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