Documentation
¶
Index ¶
- func GetAddressFamily(addressFamily int) (string, error)
- func GetProtocolName(p netlink.RouteProtocol) string
- func GetProtocolNumber(protocol string, frr bool) int
- type Layer2Information
- type Loopback
- type Manager
- func (n *Manager) CleanupL2(info *Layer2Information) []error
- func (n *Manager) CleanupL3(name string) []error
- func (n *Manager) CreateL2(info *Layer2Information) error
- func (n *Manager) CreateL3(info VRFInformation) error
- func (n *Manager) GetUnderlayIP() (net.IP, error)
- func (n *Manager) GetVRFInterfaceIdxByName(name string) (int, 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 (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) ReconcileNetlinkConfiguration(config NetlinkConfiguration) error
- func (n *Manager) UpL3(info VRFInformation) error
- type NeighborInformation
- type NeighborKey
- type NetlinkConfiguration
- 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 Layer2Information struct { VlanID int `json:"vlanID"` MTU int `json:"mtu"` VNI int `json:"vni"` VRF string `json:"vrf"` AnycastMAC *string `json:"anycastMAC"` AnycastGateways []string `json:"anycastGateways"` NeighSuppression *bool `json:"neighSuppression"` // 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, baseConfig config.BaseConfig) *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) 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) GetVRFInterfaceIdxByName ¶
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) 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) ReconcileNetlinkConfiguration ¶
func (n *Manager) ReconcileNetlinkConfiguration(config NetlinkConfiguration) 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 NetlinkConfiguration ¶
type NetlinkConfiguration struct { VRFs []VRFInformation `json:"vrf"` Layer2s []Layer2Information `json:"layer2"` }
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 }
type VRFInformation ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.