Open taspelund opened 1 month ago
Note that some of this is available already through the mgd
API. For example, you can see configured/negotiated hold and keepalive timers.
$ mgadm bgp status neigh $ASN
Peer Address Peer ASN State State Duration Hold Keepalive
172.20.15.51 Some(64601) Established 1day 17h 56m 50s 584ms 6s/6s 2s/2s
and as-configured info is also available through the API.
$ mgadm bgp config neigh list $ASN
[
Neighbor {
allow_export: Allow(
[
V4(
Prefix4 {
length: 24,
value: 172.20.26.0,
},
),
],
),
allow_import: NoFiltering,
asn: 65002,
communities: [],
connect_retry: 3,
delay_open: 3,
enforce_first_as: false,
group: "qsfp18",
hold_time: 6,
host: "172.20.15.51:179",
idle_hold_time: 3,
keepalive: 2,
local_pref: None,
md5_auth_key: None,
min_ttl: None,
multi_exit_discriminator: None,
name: "172.20.15.51",
passive: false,
remote_asn: None,
resolution: 100,
vlan_id: None,
},
]
This issue tracks a request to expand the information exposed about a given BGP neighbor.
For example, it's useful to expose some L3/L4 information like the local and remote IP addresses and TCP port numbers so that a constrained packet capture can be done elsewhere in the network. Other useful info would be things like MSS, ttl-security of the session / whether or not the neighbor is multi-hop, what the keepalive/holdtime timers are (both configured and negotiated), per-message counters, negotiated capabilities (including address-families), configured inbound/outbound policy, etc.
A good example of what info we would want is the info that can be collected from FRR:
Not all of the info above is relevant to us (e.g. BGP Roles, BGP version, conditional advertisement), but we should strive to expose similar levels of operational info.