table

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LsLink struct {
	LocalNode  *LsNode    // primary key, in MP_REACH_NLRI Attr
	RemoteNode *LsNode    // primary key, in MP_REACH_NLRI Attr
	LocalIP    netip.Addr // in MP_REACH_NLRI Attr
	RemoteIP   netip.Addr // in MP_REACH_NLRI Attr
	Metrics    []*Metric  // in BGP-LS Attr
	AdjSid     uint32     // in BGP-LS Attr
}
func NewLsLink(localNode *LsNode, remoteNode *LsNode) *LsLink

func (LsLink) Metric

func (link LsLink) Metric(metricType MetricType) (uint32, error)

func (*LsLink) UpdateTed

func (lsLink *LsLink) UpdateTed(ted *LsTed)

type LsNode

type LsNode struct {
	Asn        uint32 // primary key, in MP_REACH_NLRI Attr
	RouterId   string // primary key, in MP_REACH_NLRI Attr
	IsisAreaId string // in BGP-LS Attr
	Hostname   string // in BGP-LS Attr
	SrgbBegin  uint32 // in BGP-LS Attr
	SrgbEnd    uint32 // in BGP-LS Attr
	Links      []*LsLink
	Prefixes   []*LsPrefixV4
}

func NewLsNode

func NewLsNode(asn uint32, nodeId string) *LsNode

func (LsNode) LoopbackAddr

func (node LsNode) LoopbackAddr() (netip.Addr, error)

func (LsNode) NodeSegment added in v1.2.0

func (node LsNode) NodeSegment() (Segment, error)

func (*LsNode) UpdateTed

func (lsNode *LsNode) UpdateTed(ted *LsTed)

type LsPrefixV4

type LsPrefixV4 struct {
	LocalNode *LsNode      // primary key, in MP_REACH_NLRI Attr
	Prefix    netip.Prefix // in MP_REACH_NLRI Attr
	SidIndex  uint32       // in BGP-LS Attr (only for Lo Address Prefix)
}

func NewLsPrefixV4

func NewLsPrefixV4(localNode *LsNode) *LsPrefixV4

func (*LsPrefixV4) UpdateTed

func (lsPrefix *LsPrefixV4) UpdateTed(ted *LsTed)

type LsTed

type LsTed struct {
	Id    int
	Nodes map[uint32]map[string]*LsNode // { ASN1: {"NodeID1": node1, "NodeID2": node2}, ASN2: {"NodeID3": node3, "NodeID4": node4}}
}

func (LsTed) ShowTed

func (ted LsTed) ShowTed()

func (*LsTed) Update

func (ted *LsTed) Update(tedElems []TedElem)

type Metric

type Metric struct {
	Type  MetricType
	Value uint32
}

func NewMetric

func NewMetric(metricType MetricType, value uint32) *Metric

type MetricType

type MetricType int
const (
	IGP_METRIC MetricType = iota
	TE_METRIC
	DELAY_METRIC
	HOPCOUNT_METRIC
)

func (MetricType) String

func (m MetricType) String() string

type SRPolicy added in v1.2.0

type SRPolicy struct {
	PlspId      uint32
	Name        string
	SegmentList []Segment
	SrcAddr     netip.Addr
	DstAddr     netip.Addr
	Color       uint32
	Preference  uint32
}

type Segment added in v1.2.0

type Segment interface {
	SidString() string
}

func NewSegment added in v1.2.0

func NewSegment(sid string) (seg Segment, err error)

type SegmentSRMPLS added in v1.2.0

type SegmentSRMPLS struct {
	Sid uint32
}

func NewSegmentSRMPLS added in v1.2.0

func NewSegmentSRMPLS(sid uint32) (seg SegmentSRMPLS)

func (SegmentSRMPLS) SidString added in v1.2.0

func (seg SegmentSRMPLS) SidString() string

type SegmentSRv6 added in v1.2.0

type SegmentSRv6 struct {
	Sid netip.Addr
}

func NewSegmentSRv6 added in v1.2.0

func NewSegmentSRv6(sid netip.Addr) (seg SegmentSRv6)

func (SegmentSRv6) SidString added in v1.2.0

func (seg SegmentSRv6) SidString() string

type TedElem

type TedElem interface {
	UpdateTed(*LsTed)
}

Jump to

Keyboard shortcuts

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