frr

package
v0.14.8 Latest Latest
Warning

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

Go to latest
Published: Jul 23, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NeighborName added in v0.14.0

func NeighborName(peerAddr string, ASN uint32, vrfName string) string

neighborName() defines the format of key of the 'Neighbors' map in the routerConfig struct.

func NewSessionManager

func NewSessionManager(l log.Logger, logLevel logging.Level) bgp.SessionManager

func ParseRoutes

func ParseRoutes(vtyshRes string) (map[string]Route, error)

parseRoute takes the result of a show bgp neighbor and parses the informations related to all the neighbours.

func ParseVRFs added in v0.13.8

func ParseVRFs(vtyshRes string) ([]string, error)

func RouterName added in v0.14.0

func RouterName(srcAddr string, myASN uint32, vrfName string) string

RouterName() defines the format of the key of the "Routers" map in the frrConfig struct.

Types

type BFDPeer

type BFDPeer struct {
	Multihop                  bool   `json:"multihop"`
	Peer                      string `json:"peer"`
	Local                     string `json:"local"`
	Vrf                       string `json:"vrf"`
	Interface                 string `json:"interface"`
	ID                        int    `json:"id"`
	RemoteID                  int64  `json:"remote-id"`
	PassiveMode               bool   `json:"passive-mode"`
	Status                    string `json:"status"`
	Uptime                    int    `json:"uptime"`
	Diagnostic                string `json:"diagnostic"`
	RemoteDiagnostic          string `json:"remote-diagnostic"`
	ReceiveInterval           int    `json:"receive-interval"`
	TransmitInterval          int    `json:"transmit-interval"`
	EchoReceiveInterval       int    `json:"echo-receive-interval"`
	EchoTransmitInterval      int    `json:"echo-transmit-interval"`
	DetectMultiplier          int    `json:"detect-multiplier"`
	RemoteReceiveInterval     int    `json:"remote-receive-interval"`
	RemoteTransmitInterval    int    `json:"remote-transmit-interval"`
	RemoteEchoInterval        int    `json:"remote-echo-interval"`
	RemoteEchoReceiveInterval int    `json:"remote-echo-receive-interval"`
	RemoteDetectMultiplier    int    `json:"remote-detect-multiplier"`
}

func ParseBFDPeers

func ParseBFDPeers(vtyshRes string) ([]BFDPeer, error)

type BFDProfile

type BFDProfile struct {
	Name             string
	ReceiveInterval  *uint32
	TransmitInterval *uint32
	DetectMultiplier *uint32
	EchoInterval     *uint32
	EchoMode         bool
	PassiveMode      bool
	MinimumTTL       *uint32
}

func ConfigBFDProfileToFRR added in v0.14.0

func ConfigBFDProfileToFRR(p *metallbconfig.BFDProfile) *BFDProfile

type FRRNeighbor

type FRRNeighbor struct {
	RemoteAs          int          `json:"remoteAs"`
	LocalAs           int          `json:"localAs"`
	RemoteRouterID    string       `json:"remoteRouterId"`
	BgpVersion        int          `json:"bgpVersion"`
	BgpState          string       `json:"bgpState"`
	PortForeign       int          `json:"portForeign"`
	MsgStats          MessageStats `json:"messageStats"`
	VRFName           string       `json:"vrf"`
	AddressFamilyInfo map[string]struct {
		SentPrefixCounter int `json:"sentPrefixCounter"`
	} `json:"addressFamilyInfo"`
}

type FRRRoute

type FRRRoute struct {
	Valid     bool   `json:"valid"`
	PeerID    string `json:"peerId"`
	LocalPref uint32 `json:"locPrf"`
	Origin    string `json:"origin"`
	Nexthops  []struct {
		IP    string `json:"ip"`
		Scope string `json:"scope"`
	} `json:"nexthops"`
}

type IPInfo

type IPInfo struct {
	Routes map[string][]FRRRoute `json:"routes"`
}

type MessageStats added in v0.13.8

type MessageStats struct {
	OpensSent          int `json:"opensSent"`
	OpensReceived      int `json:"opensRecv"`
	NotificationsSent  int `json:"notificationsSent"`
	UpdatesSent        int `json:"updatesSent"`
	UpdatesReceived    int `json:"updatesRecv"`
	KeepalivesSent     int `json:"keepalivesSent"`
	KeepalivesReceived int `json:"keepalivesRecv"`
	RouteRefreshSent   int `json:"routeRefreshSent"`
	TotalSent          int `json:"totalSent"`
	TotalReceived      int `json:"totalRecv"`
}

type Neighbor

type Neighbor struct {
	IP             net.IP
	VRF            string
	Connected      bool
	LocalAS        string
	RemoteAS       string
	PrefixSent     int
	Port           int
	RemoteRouterID string
	MsgStats       MessageStats
}

func ParseNeighbour

func ParseNeighbour(vtyshRes string) (*Neighbor, error)

parseNeighbour takes the result of a show bgp neighbor x.y.w.z and parses the informations related to the neighbour.

func ParseNeighbours

func ParseNeighbours(vtyshRes string) ([]*Neighbor, error)

parseNeighbour takes the result of a show bgp neighbor and parses the informations related to all the neighbours.

type Route

type Route struct {
	Destination *net.IPNet
	NextHops    []net.IP
	LocalPref   uint32
	Origin      string
}

Jump to

Keyboard shortcuts

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