Changelog
- da824d9 GoBGP 4.10.0
- 723f98c feat: add multi-topology IDs to link descriptor API
- a15f873 server: apply AS path option updates without resetting sessions
- 03eaa74 server: drop the queued outgoing messages on a state change
- 9470f3d server: drain an InfiniteChannel until its output closes
- 056eb2e table: don't panic on an rpki condition for an unvalidated path
- 55fa98f table: skip rejected paths in DropStale and MarkLLGRStaleOrDrop
- e37cdd8 table: skip rejected paths when building Drop withdrawals
- c4d9e77 server: move the ingress loop checks out of the handleUpdate loop
- 9b49e3f bfd: use transport local address for BFD
- 0cc5883 packet/bgp: reject an OPEN message that carries AS 0
- e59efa7 docs: say that a neighbor setting wins over the peer group
- 05ba735 server: make a peer group update reach the peers in the group
- b2a5ee1 server: keep the neighbor configuration as the caller passed it
- 9041a8c config/oc: stop forcing peer-as and min-adv-interval from the group
- 3e9288d fix(metrics): stop reporting peer gauges as counters
- 7ad257a table: do not emit an empty AS_PATH segment when merging AS4_PATH
- 16965d1 docs: document TCP-AO CLI
- 3aaee4d cmd/gobgp: add TCP-AO CLI commands
- 8a89c99 docs: document neighbor update command
- ec6495e server: do not retry Rx forever when a BFD test injects a packet
- 33309bb server: wait for the BFD peer to accept an injected packet in tests
- aff4a72 metrics: split bgp_peer_state into a session and an admin metric
- 31c8da1 table, server: withdraw the installed path when a loop check rejects
- 71101d4 docs: add rules for AI-assisted contributions
- f790813 server: drop the dead sent-message watch plumbing
- d39b0b3 server/bmp: advertise ADD-PATH for every family in the Loc-RIB Peer Up
- e957514 server/bmp: stop reporting locally originated routes under a pseudo peer
- 9130d21 server/bmp: drop the route monitoring cache
- 19837b0 server: notify the post-policy watchers only on a change
- 3628442 table: report whether an update changed the path it replaced
- 6427db0 table: shard the destinations only where they are written concurrently
- 9376e01 server: hold a Loc-RIB table for every address family
- 6b6ac4a table: allocate the destination shards on the first insert
- 5a51530 table: add a regression test for the EVPN type-2 route key
- 3f856cd server/bmp: key the route monitoring cache by path identifier
- b05a989 server/bmp: encode the path identifier in route monitoring
- 4ba5724 packet/bmp: parse the mirrored message with the session options
- 7aca34a server/bmp: mirror the message as it was received
- 18d807d server/bmp: build route monitoring messages in a separate function
- f912784 cmd/gobgp: show the peer group in the neighbor detail output
- c7b8634 table: move route selection options into the table manager
- 8d4165d table: make the stale flag atomic
- 9fd6457 table: use the link-local next hop when the global one is unspecified
- acd4aba table: keep the link-local next hop on the receive path
- da33165 table: do not advertise a link-local next hop to a peer on another link
- a901be7 test(server): check remove-private-as across admin down
- c0f7f51 metrics: add the peer group and description labels
- 59fef02 server: keep the config mirrors when a neighbor is admin down
- 72a0256 bfd: pace transmission by RFC 5880's transmit interval
- 3fb2fc0 table: make an AS_SET origin invalid when a ROA covers the prefix
- fade913 test: add a BGP-LS scenario test for SR Policy candidate paths
- 7893111 cmd/gobgp: add "global rib add -a ls srpolicy"
- 0fe655e api: add the SR Policy Candidate Path NLRI and attribute
- 024b1f8 config/oc: report the peer group in the peer state
- 8277599 test(scenario): add scalable local command timeouts and failure logs
- 00bac63 test(scenario): centralize polling waits
- 527139b api: add multiple adjacency-SID support to the BGP-LS link attribute
- 13db048 docs: describe the peer group inheritance rules
- 084da87 server: always make a dynamic neighbor passive
- 9f18809 config/oc: keep the neighbor config set through the API
- 2805b1c server/mrt: fix the peer index entry for locally generated routes
- 8a011eb server/mrt: record the peer AS in the TABLE_DUMPv2 peer index table
- db0f1e1 docs: add the missing BGP-LS link delay keywords
- 74c1be5 cmd/gobgp: fix the BGP-LS route format comments
- b69e76b cmd/gobgp: do not store a typed nil Multi-Topology Identifier TLV
- 28f422f cmd/gobgp: require sids for the srv6sid route
- b624eaa cmd/gobgp: assert which keyword the BGP-LS parser rejects
- 1db8c5a cmd/gobgp: require protocol and identifier for BGP-LS routes
- b7b3178 packet/bgp: add the SR Candidate Path Constraints TLV
- de5a3d4 packet/bgp: add the SR Segment List TLV and its sub-TLVs
- a23f65f packet/bgp: add the SR Policy Binding SID, state and name TLVs
- 8e049ca tools: check that Go and protobuf sources are ASCII only
- 9bd8f3f use ASCII characters in comments
- 2943c5e fix(table): ignore unmatched withdrawals to prevent RTC update loops
- 4a22f90 config/oc: look up the configured fields of an unnumbered neighbor
- c7c0fff packet/bgp: move lsTLVUnknown to bgp.go
- 0bf4e41 packet/bgp: preserve unknown BGP-LS Attribute TLVs
- 3dcfcca packet/bgp: add the SR Policy Candidate Path NLRI (RFC 9857)
- 18e483d packet/bgp: add the BGP-LS Protocol-IDs for RSVP-TE and Segment Routing
- 7258f20 table, server: keep one toStatementApi, not two
- 41cfcd7 server: map the set-community option to the API enum, do not cast it
- c9814a4 config, server: do not put "invalid IP" in the API
- fb7e2fd table, server: report the origin-eq condition from OriginEq
- ee380df docs: fix the peer type values in the metrics table
- 87e90f0 metrics: fix the peer type values in the bgp_peer_type help text
- 452e7f4 netutils: do not panic on a non-IPv4 MD5 address on OpenBSD
- c13352e packet/bgp: set the SR range value lengths in the LS TLV constructors
- ef38c9d apiutil: return an error for an unhandled BGP-LS NLRI type
- 475d678 packet/bgp: set the value lengths in the LS TLV constructors
- 2a3d321 packet/mrt: write AFI/SAFI only for the RIB_GENERIC families
- cf5ad1d packet/bmp: bound the mirrored BGP message by its Route Mirroring TLV length
- 50809e2 zebra: only encode nexthop label_num with MessageLabel before frr7.3
- 544c4be server: reject local cluster loops on import
- de582e0 tcp-ao: delete keys from listening sockets asynchronously
- 15e9be9 server: apply TCP-AO to peer sockets
- 842b728 server: jitter BFD control packet transmission
- 746dff5 server: bound the RTR message length before allocating the body
- 5ac8c93 build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2
- 64906f0 config/oc: report the peer description in the peer state
- a1136ee config/oc: add tests for TCP-AO peer group inheritance
- 855e337 server: add tests for the TCP-AO peer config from the API
- 600249e config/oc: add tests for the TCP-AO peer config conversion
- 0af005a config/oc: require the TCP-AO keychain leaf
- b9604ef server: wire TCP-AO peer configuration
- eea7ce0 config/oc: add TCP-AO peer model
- ff8c5fd api: add TCP-AO peer configuration & state API