graph

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 1, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseTopology

type BaseTopology struct {
	// contains filtered or unexported fields
}

BaseTopology 基础拓扑实现

func NewBaseTopology

func NewBaseTopology() *BaseTopology

NewBaseTopology 创建基础拓扑

func (*BaseTopology) AddNode

func (bt *BaseTopology) AddNode(node model.Node) error

AddNode 添加节点

func (*BaseTopology) GetConnector

func (bt *BaseTopology) GetConnector(connectorID string) (model.Connector, error)

GetConnector 获取连接器

func (*BaseTopology) GetConnectorByIP

func (bt *BaseTopology) GetConnectorByIP(ip, vrf string) (model.Connector, error)

GetConnectorByIP 通过IP获取连接器

func (*BaseTopology) GetConnectorByNetwork

func (bt *BaseTopology) GetConnectorByNetwork(net network.AbbrNet, vrf string) (model.Connector, error)

GetConnectorByNetwork 通过网络获取连接器

func (*BaseTopology) GetNode

func (bt *BaseTopology) GetNode(nodeID string) (model.Node, error)

GetNode 获取节点

func (*BaseTopology) GetPort

func (bt *BaseTopology) GetPort(portID string) (model.Port, error)

GetPort 获取端口

func (*BaseTopology) GetPortsByArea

func (bt *BaseTopology) GetPortsByArea(area string, ipFamily network.IPFamily) []model.Port

GetPortsByArea 获取区域端口

func (*BaseTopology) IsOutsidePort

func (bt *BaseTopology) IsOutsidePort(nodeID, portID string, ipFamily network.IPFamily) (bool, string)

IsOutsidePort 判断是否为Outside端口

func (*BaseTopology) IsStubPort

func (bt *BaseTopology) IsStubPort(nodeID, portID string, ipFamily network.IPFamily) bool

IsStubPort 判断是否为Stub端口

func (*BaseTopology) ListNodes

func (bt *BaseTopology) ListNodes() []model.Node

ListNodes 列出所有节点

func (*BaseTopology) ListPorts

func (bt *BaseTopology) ListPorts() []model.Port

ListPorts 列出所有端口

func (*BaseTopology) LocateSourceNode

func (bt *BaseTopology) LocateSourceNode(src network.NetworkList, options *LocateOptions) (model.Node, model.Port, error)

LocateSourceNode 定位源节点

type LocateOptions

type LocateOptions struct {
	VRF     string
	Gateway string
	Area    string
	Node    string
}

LocateOptions 定位选项

type Topology

type Topology interface {
	// Node管理
	AddNode(node model.Node) error
	GetNode(nodeID string) (model.Node, error)
	ListNodes() []model.Node

	// 端口管理
	GetPort(portID string) (model.Port, error)
	ListPorts() []model.Port

	// 连接器管理
	GetConnector(connectorID string) (model.Connector, error)
	GetConnectorByNetwork(net network.AbbrNet, vrf string) (model.Connector, error)
	GetConnectorByIP(ip, vrf string) (model.Connector, error)

	// 节点定位
	LocateSourceNode(src network.NetworkList, options *LocateOptions) (model.Node, model.Port, error)

	// 区域和Stub管理
	GetPortsByArea(area string, ipFamily network.IPFamily) []model.Port
	IsOutsidePort(nodeID, portID string, ipFamily network.IPFamily) (bool, string)
	IsStubPort(nodeID, portID string, ipFamily network.IPFamily) bool
}

Topology 网络拓扑接口

Jump to

Keyboard shortcuts

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