Documentation
¶
Index ¶
- func GetAddressFamily(addressFamily int) (string, error)
- func GetProtocolName(p netlink.RouteProtocol) string
- func GetProtocolNumber(protocol string, frr bool) int
- type Layer2Information
- type Manager
- func (n *Manager) CleanupL2(info *Layer2Information) []error
- func (n *Manager) CleanupL3(name string) []error
- func (n *Manager) CleanupTaas(info TaasInformation) error
- func (n *Manager) CreateL2(info *Layer2Information) error
- func (n *Manager) CreateL3(info VRFInformation) error
- func (n *Manager) CreateTaas(info TaasInformation) error
- func (n *Manager) EnsureBPFProgram(info VRFInformation) error
- func (n *Manager) EnsureMTU(info VRFInformation) error
- func (n *Manager) GetBridgeID(info *Layer2Information) (int, error)
- func (n *Manager) GetL3ByName(name string) (*VRFInformation, error)
- func (n *Manager) GetUnderlayIP() (net.IP, error)
- func (n *Manager) ListL2() ([]Layer2Information, error)
- func (n *Manager) ListL3() ([]VRFInformation, error)
- func (n *Manager) ListNeighborInformation() ([]NeighborInformation, error)
- func (n *Manager) ListNeighborInterfaces() (map[int]netlink.Link, error)
- func (n *Manager) ListRouteInformation() ([]route.Information, error)
- func (*Manager) ListTaas() ([]TaasInformation, error)
- func (n *Manager) ListVRFInterfaces() (map[int]VRFInformation, error)
- func (n *Manager) ParseIPAddresses(addresses []string) ([]*netlink.Addr, error)
- func (n *Manager) ReconcileL2(current, desired *Layer2Information) error
- func (n *Manager) UpL3(info VRFInformation) error
- type NeighborInformation
- type NeighborKey
- type TaasInformation
- type Toolkit
- func (*Toolkit) AddrAdd(link netlink.Link, addr *netlink.Addr) error
- func (*Toolkit) AddrDel(link netlink.Link, addr *netlink.Addr) error
- func (*Toolkit) AddrList(link netlink.Link, family int) ([]netlink.Addr, error)
- func (*Toolkit) ExecuteNetlinkRequest(req *nl.NetlinkRequest, sockType int, resType uint16) ([][]byte, error)
- func (*Toolkit) LinkAdd(link netlink.Link) error
- func (*Toolkit) LinkByIndex(index int) (netlink.Link, error)
- func (*Toolkit) LinkByName(name string) (netlink.Link, error)
- func (*Toolkit) LinkDel(link netlink.Link) error
- func (*Toolkit) LinkGetProtinfo(link netlink.Link) (netlink.Protinfo, error)
- func (*Toolkit) LinkList() ([]netlink.Link, error)
- func (*Toolkit) LinkSetDown(link netlink.Link) error
- func (*Toolkit) LinkSetHairpin(link netlink.Link, mode bool) error
- func (*Toolkit) LinkSetHardwareAddr(link netlink.Link, hwaddr net.HardwareAddr) error
- func (*Toolkit) LinkSetLearning(link netlink.Link, mode bool) error
- func (*Toolkit) LinkSetMTU(link netlink.Link, mtu int) error
- func (*Toolkit) LinkSetMaster(link, master netlink.Link) error
- func (*Toolkit) LinkSetMasterByIndex(link netlink.Link, masterIndex int) error
- func (*Toolkit) LinkSetNoMaster(link netlink.Link) error
- func (*Toolkit) LinkSetUp(link netlink.Link) error
- func (*Toolkit) NeighList(linkIndex, family int) ([]netlink.Neigh, error)
- func (*Toolkit) NewIPNet(ip net.IP) *net.IPNet
- func (*Toolkit) ParseAddr(s string) (*netlink.Addr, error)
- func (*Toolkit) RouteAdd(route *netlink.Route) error
- func (*Toolkit) RouteDel(route *netlink.Route) error
- func (*Toolkit) RouteListFiltered(family int, filter *netlink.Route, filterMask uint64) ([]netlink.Route, error)
- func (*Toolkit) VethPeerIndex(link *netlink.Veth) (int, error)
- type ToolkitInterface
- type VRFInformation
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAddressFamily ¶ added in v0.2.0
func GetProtocolName ¶ added in v0.2.0
func GetProtocolName(p netlink.RouteProtocol) string
func GetProtocolNumber ¶ added in v0.2.0
Types ¶
type Layer2Information ¶
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
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) 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 (*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 (*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 NeighborKey ¶ added in v0.2.3
type NeighborKey struct {
InterfaceIndex, State, Flags, Family int
}
type TaasInformation ¶ added in v0.2.3
type Toolkit ¶ added in v0.2.7
type Toolkit struct{}
func (*Toolkit) ExecuteNetlinkRequest ¶ added in v0.2.7
func (*Toolkit) LinkByIndex ¶ added in v0.2.7
func (*Toolkit) LinkByName ¶ added in v0.2.7
func (*Toolkit) LinkGetProtinfo ¶ added in v0.2.7
func (*Toolkit) LinkSetHairpin ¶ added in v0.2.7
func (*Toolkit) LinkSetHardwareAddr ¶ added in v0.2.7
func (*Toolkit) LinkSetLearning ¶ added in v0.2.7
func (*Toolkit) LinkSetMTU ¶ added in v0.2.7
func (*Toolkit) LinkSetMaster ¶ added in v0.2.7
func (*Toolkit) LinkSetMasterByIndex ¶ added in v0.2.7
func (*Toolkit) LinkSetNoMaster ¶ added in v0.2.7
func (*Toolkit) RouteListFiltered ¶ added in v0.2.7
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 }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.