frr

package
v0.13.6 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSessionManager

func NewSessionManager(l log.Logger, logLevel logging.Level) *sessionManager

func ParseBFDPeers

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

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.

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"`
	RemoteDetectMultiplier int    `json:"remote-detect-multiplier"`
}

type BFDProfile

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

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"`
	MessageStats   struct {
		UpdatesSent int `json:"updatesSent"`
	} `json:"messageStats"`
	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 Neighbor

type Neighbor struct {
	Ip             net.IP
	Connected      bool
	LocalAS        string
	RemoteAS       string
	UpdatesSent    int
	PrefixSent     int
	Port           int
	RemoteRouterID string
}

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