route

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: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RouteTypeAll    = "ALL_ROUTE"     // 所有路由
	RouteTypeStatic = "STATIC_ROUTE"  // 静态路由
	RouteTypeDirect = "DIRECT_ROUTE"  // 直接路由
	RouteTypeOSPF   = "OSPF_ROUTE"    // OSPF 路由
	RouteTypeOSPFv3 = "OSPFV3_ROUTE"  // OSPFv3 路由
	RouteTypeRIP    = "RIP_ROUTE"     // RIP 路由
	RouteTypeRIPNG  = "RIPNG_ROUTE"   // RIPNG 路由
	RouteTypeVPN    = "VPN_ROUTE"     // VPN 路由
	RouteTypeSSLVPN = "SSL_VPN_ROUTE" // SSL_VPN 路由
	RouteTypeBGP    = "BGP_ROUTE"     // BGP 路由
)

RouteType 路由类型

View Source
const (
	RouteStatusValid   = "VALID"   // 有效
	RouteStatusInvalid = "INVALID" // 无效
)

RouteStatus 路由表项状态

View Source
const (
	TableIDManagement = 250 // 管理网络路由表
	TableIDBusiness   = 251 // 业务网络路由表
)

TableID 路由表ID

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client 路由状态客户端

func NewClient

func NewClient(host, token, sessid string, httpClient *http.Client) *Client

NewClient 创建新的路由状态客户端

func NewClientWithNamespace

func NewClientWithNamespace(host, token, sessid, namespace string, httpClient *http.Client) *Client

NewClientWithNamespace 创建新的路由状态客户端(指定命名空间)

func (*Client) GetIPv4Routes

func (c *Client) GetIPv4Routes(req *GetIPv4RoutesRequest) (*GetIPv4RoutesResponse, error)

GetIPv4Routes 获取IPv4路由信息列表

func (*Client) GetIPv6Routes

func (c *Client) GetIPv6Routes(req *GetIPv6RoutesRequest) (*GetIPv6RoutesResponse, error)

GetIPv6Routes 获取IPv6路由信息列表

type GetIPv4RoutesRequest

type GetIPv4RoutesRequest struct {
	// 获取最大长度,限制最大值,如果数据不够可能返回小于 length (1-200, 默认100)
	Length int
	// 获取路由的类型
	// ALL_ROUTE: 所有路由
	// STATIC_ROUTE: 静态路由
	// DIRECT_ROUTE: 直接路由
	// OSPF_ROUTE: OSPF 路由
	// OSPFV3_ROUTE: OSPFv3 路由
	// RIP_ROUTE: RIP 路由
	// RIPNG_ROUTE: RIPNG 路由
	// VPN_ROUTE: VPN 路由
	// SSL_VPN_ROUTE: SSL_VPN 路由
	// BGP_ROUTE: BGP 路由
	RouteType string
	// 模糊搜索关键字 (最大95字符)
	Search string
	// 路由表Id (0-256, 默认251)
	// 可选值: 250(管理网络路由表), 251(业务网络路由表)
	TableID uint32
	// 起始位置,从 0 开始 (0-2000000, 默认0)
	Start int
}

GetIPv4RoutesRequest 获取IPv4路由信息列表请求参数

type GetIPv4RoutesResponse

type GetIPv4RoutesResponse struct {
	Code    int             `json:"code"`    // 错误码
	Message string          `json:"message"` // 错误信息
	Data    json.RawMessage `json:"data"`    // 数据字段,可能是对象或字符串
}

GetIPv4RoutesResponse 获取IPv4路由信息列表响应

func (*GetIPv4RoutesResponse) GetData

func (r *GetIPv4RoutesResponse) GetData() *RouteData

GetData 获取解析后的数据

func (*GetIPv4RoutesResponse) IsSuccess

func (r *GetIPv4RoutesResponse) IsSuccess() bool

IsSuccess 检查请求是否成功

type GetIPv6RoutesRequest

type GetIPv6RoutesRequest struct {
	// 获取最大长度,限制最大值,如果数据不够可能返回小于 length (1-200, 默认100)
	Length int
	// 获取路由的类型
	// ALL_ROUTE: 所有路由
	// STATIC_ROUTE: 静态路由
	// DIRECT_ROUTE: 直接路由
	// OSPF_ROUTE: OSPF 路由
	// OSPFV3_ROUTE: OSPFv3 路由
	// RIP_ROUTE: RIP 路由
	// RIPNG_ROUTE: RIPNG 路由
	// VPN_ROUTE: VPN 路由
	// SSL_VPN_ROUTE: SSL_VPN 路由
	// BGP_ROUTE: BGP 路由
	RouteType string
	// 模糊搜索关键字 (最大95字符)
	Search string
	// 路由表Id (0-256, 默认251)
	// 可选值: 250(管理网络路由表), 251(业务网络路由表)
	TableID uint32
	// 起始位置,从 0 开始 (0-2000000, 默认0)
	Start int
}

GetIPv6RoutesRequest 获取IPv6路由信息列表请求参数

type GetIPv6RoutesResponse

type GetIPv6RoutesResponse struct {
	Code    int             `json:"code"`    // 错误码
	Message string          `json:"message"` // 错误信息
	Data    json.RawMessage `json:"data"`    // 数据字段,可能是对象或字符串
}

GetIPv6RoutesResponse 获取IPv6路由信息列表响应

func (*GetIPv6RoutesResponse) GetData

func (r *GetIPv6RoutesResponse) GetData() *IPv6RouteData

GetData 获取解析后的数据

func (*GetIPv6RoutesResponse) IsSuccess

func (r *GetIPv6RoutesResponse) IsSuccess() bool

IsSuccess 检查请求是否成功

type IPv6RouteData

type IPv6RouteData struct {
	TotalItems    int32           `json:"totalItems"`    // 总共多少项目
	TotalPages    int32           `json:"totalPages"`    // 总共多少页
	PageNumber    int32           `json:"pageNumber"`    // 当前页码,从 1 开始
	PageSize      int32           `json:"pageSize"`      // 每页多大
	ItemsOffset   int32           `json:"itemsOffset"`   // 当前条目偏移,从 0 开始
	ItemLength    int32           `json:"itemLength"`    // 数据列表长度
	PrivateOffset uint64          `json:"privateOffset"` // 内部偏移
	Items         []IPv6RouteItem `json:"items"`         // 有效数据列表
}

IPv6RouteData IPv6路由数据

type IPv6RouteItem

type IPv6RouteItem struct {
	// 基础信息
	UUID        string `json:"uuid"`        // 资源唯一ID
	Description string `json:"description"` // 描述信息 (最大36字符)

	// 路由配置
	RouteType string   `json:"routeType"` // 类型 (如: "直连路由", "静态路由")
	Prefix    string   `json:"prefix"`    // 目的IPv6地址/掩码 (IPv6地址格式,示例:fe80::40ca:81ff:fea9:a768/24)
	Gateway   []string `json:"gateway"`   // 下一跳IPv6地址 (字符串数组)
	IfName    []string `json:"ifname"`    // 出接口名称 (字符串数组)

	// 路由参数
	Metric   uint32 `json:"metric"`   // 静态路由度量值
	Distance uint8  `json:"distance"` // 路由管理距离
	TableID  uint32 `json:"tableId"`  // 路由表Id
	Flags    uint8  `json:"flags"`    // 路由标记,包含路由是否有效信息
	Tag      uint32 `json:"tag"`      // zebra路由标记字段,用于过滤路由的需求

	// 状态信息
	Status                 string          `json:"status"`                 // 路由表项状态 (VALID/INVALID)
	NextHopStatus          []NextHopStatus `json:"nexthopStatus"`          // 下一跳信息列表
	LinkDTEnable           bool            `json:"linkdtEnable"`           // 静态路由关联链路探测启,禁用开关
	LinkDT                 string          `json:"linkdt"`                 // 静态路由关联链路探测
	SelectedFlagsCharacter string          `json:"selectedFlagsCharacter"` // selected flag character
	InvalidReason          string          `json:"invalid_reason"`         // 路由无效原因
}

IPv6RouteItem IPv6路由项

type NextHopStatus

type NextHopStatus struct {
	NextHopTypes     uint8  `json:"nexthopTypes"`     // 下一跳类型
	NextHopFlags     uint8  `json:"nexthopFlags"`     // 下一跳flag,包含下一跳状态信息,如:是否有效
	Weight           uint8  `json:"weight"`           // 权重
	ExtendEnable     bool   `json:"extendEnable"`     // 下一跳扩展信息中,路由使能标记
	LinkDTStatus     bool   `json:"linkdtStatus"`     // 下一跳扩展信息中,链路探测状态,true有效,false无效
	NextHopStatus    string `json:"nexthopStatus"`    // 下一挑状态
	FIBFlagCharacter string `json:"fibFlagCharacter"` // fib flag character
	InvalidReason    string `json:"invalid_reason"`   // 下一跳无效原因
}

NextHopStatus 下一跳信息

type RouteData

type RouteData struct {
	TotalItems    int32       `json:"totalItems"`    // 总共多少项目
	TotalPages    int32       `json:"totalPages"`    // 总共多少页
	PageNumber    int32       `json:"pageNumber"`    // 当前页码,从 1 开始
	PageSize      int32       `json:"pageSize"`      // 每页多大
	ItemsOffset   int32       `json:"itemsOffset"`   // 当前条目偏移,从 0 开始
	ItemLength    int32       `json:"itemLength"`    // 数据列表长度
	PrivateOffset uint64      `json:"privateOffset"` // 内部偏移
	Items         []RouteItem `json:"items"`         // 有效数据列表
}

RouteData IPv4路由数据

type RouteItem

type RouteItem struct {
	// 基础信息
	UUID        string `json:"uuid"`        // 资源唯一ID
	Description string `json:"description"` // 描述信息 (最大36字符)

	// 路由配置
	RouteType string   `json:"routeType"` // 类型 (如: "直连路由", "静态路由")
	Prefix    string   `json:"prefix"`    // 目的IP地址/掩码 (IPv4地址格式,示例:192.168.1.0/24)
	Gateway   []string `json:"gateway"`   // 下一跳地址 (字符串数组)
	IfName    []string `json:"ifname"`    // 接口 (字符串数组)

	// 路由参数
	Metric   uint32 `json:"metric"`   // 度量值
	Distance uint8  `json:"distance"` // 管理距离
	TableID  uint32 `json:"tableId"`  // 路由表Id
	Flags    uint8  `json:"flags"`    // 路由标记,包含路由是否有效信息
	Tag      uint32 `json:"tag"`      // zebra路由标记字段,用于过滤路由的需求

	// 状态信息
	Status                 string          `json:"status"`                 // 路由表项状态 (VALID/INVALID)
	NextHopStatus          []NextHopStatus `json:"nexthopStatus"`          // 下一跳信息列表
	LinkDT                 string          `json:"linkdt"`                 // 静态路由关联链路探测
	SelectedFlagsCharacter string          `json:"selectedFlagsCharacter"` // selected flag character
	InvalidReason          string          `json:"invalid_reason"`         // 路由无效原因
}

RouteItem IPv4路由项

Jump to

Keyboard shortcuts

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