fix(bgp): отображать только подтверждённые показатели сессий
This commit is contained in:
1 parent
7046808429
commit
8fdc4b917b
13 files changed
+148
-169
No files matched your search
+4
-4
@@ -1,11 +1,11 @@
|
||||
import type { BgpSessionRow } from "@/lib/bgp/types"
|
||||
|
||||
export function fmtBgpNum(n: number): string {
|
||||
export function fmtBgpNum(n: number | null): string {
|
||||
if (n === null) return "—"
|
||||
if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`
|
||||
if (n >= 1_000) return `${(n / 1_000).toFixed(0)}k`
|
||||
return String(n)
|
||||
}
|
||||
|
||||
export function rscBgpSnippet(s: BgpSessionRow): string {
|
||||
return `/routing bgp connection\nadd name=peer-as${s.remoteAs} remote.address=${s.peerIp}/32 \\\n remote.as=${s.remoteAs} local.role=${s.type === "eBGP" ? "ebgp" : "ibgp"} \\\n output.filter-chain=export-filter input.filter=import-filter \\\n routing-table=main`
|
||||
export function sumBgpCounters(values: (number | null)[]): number | null {
|
||||
return values.some(n => n === null) ? null : values.reduce<number>((sum, n) => sum + (n ?? 0), 0)
|
||||
}
|
||||
+3
-2
@@ -7,8 +7,9 @@ export const bgpSessionSchema = z.object({
|
||||
serverName: z.string(), serverSite: z.string(), serverCountry: z.string(),
|
||||
name: z.string(), peerIp: z.string(), remoteAs: counter, localAs: counter,
|
||||
localId: z.string(), remoteId: z.string(), state: z.string().trim().min(1), type: z.enum(["eBGP", "iBGP"]),
|
||||
uptime: z.string().nullable(), holdTime: counter, keepalive: counter,
|
||||
prefixesRx: counter, prefixesTx: counter, inputMessages: counter, outputMessages: counter,
|
||||
uptime: z.string().nullable(), holdTime: counter.nullable(), keepalive: counter.nullable(),
|
||||
prefixesRx: counter.nullable(), prefixesTx: counter.nullable(), inputMessages: counter.nullable(), outputMessages: counter.nullable(),
|
||||
afi: z.string().nullable().optional(),
|
||||
capabilities: z.array(z.string()), lastError: z.string().nullable(),
|
||||
})
|
||||
export const bgpCatalogSchema = z.object({
|
||||
|
||||
+8
-8
@@ -14,15 +14,15 @@ export interface BgpSessionRow {
|
||||
description: string
|
||||
state: BgpState
|
||||
type: BgpType
|
||||
afi: BgpAfi
|
||||
afi: string
|
||||
uptime: string | null
|
||||
holdTime: number
|
||||
keepalive: number
|
||||
prefixesRx: number
|
||||
prefixesTx: number
|
||||
prefixesActive: number
|
||||
inputMessages: number
|
||||
outputMessages: number
|
||||
holdTime: number | null
|
||||
keepalive: number | null
|
||||
prefixesRx: number | null
|
||||
prefixesTx: number | null
|
||||
prefixesActive: number | null
|
||||
inputMessages: number | null
|
||||
outputMessages: number | null
|
||||
capabilities: string[]
|
||||
lastError: string | null
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user