Changelog
- 53ceb78 GoBGP 4.11.0
- e01141a server: prepare peer state before advertising initial routes
- d234c86 test: rename the route server policy scenarios to ExportPolicy
- 632031d test: remove duplicated route server policy scenarios
- 1c501ef test: use a soft reset out in the route server policy update scenarios
- 10d3f16 server: send the peer description in WatchEvent peer events
- 07af837 table: count destinations in the Adj-RIB-In table info
- 4b289a8 server: compare the AS too when matching a path to its source peer
- 1955816 ci: do not install linux-modules-extra on kernels that do not have it
- 6afb03a table: use the router ID when a reflected route has no cluster ID
- f22b5dd table: look at every segment for an ASN as-path pattern
- 30786de packet/bgp: reject AS 0 in the path and aggregator attributes
- 9b86c50 server: check the label chunk from zebra before using it
- bb09f17 packet/bgp: reject an EVPN MAC/IP route with a MAC length other than 48
- 3e7e231 zebra, server: do not wait forever for zebra to answer
- a6798ec security: treat zebra as trusted
- d8325f5 server: look up the RPKI server with its port in DeleteRpki
- 9b268c6 server: pass the file name to the MRT manager in DisableMrt
- 155ea03 server: do not read the peer capabilities from an API request
- 7ecee7e server: fix the VRF ID of next hops registered with zebra
- adcd4fc table: reject a lookup prefix of the wrong family
- a1f19dc table: do not overwrite our own AS when prepending 255 times
- 82bbdb7 apiutil: reject an AS path segment with more than 255 AS numbers
- 8678b1c apiutil: return an error for API input that used to panic
- 21ce52d apiutil: return NLRI constructor errors and check NLRI lengths
- 1836b1c apiutil: do not panic on a missing ESI or Binding SID
- 98094bc security: put direct calls to the Go packages out of scope
- 752b484 table: handle AS4_AGGREGATOR from a two-octet AS peer as RFC 6793 says
- 4b943c4 apiutil: do not panic on an SR Policy segment list without Weight
- 36ec0ed packet/bgp, api, apiutil: decode the BGP-LS Prefix Metric TLV (1155)
- 77689de packet/bgp: reject an EVPN NLRI longer than its route
- 4139d78 packet/bgp, api, apiutil: decode the BGP-LS Extended Administrative Group TLV (1173)
- d5953ee table: set ORIGINATOR_ID and CLUSTER_LIST when reflecting to a non-client
- 7c54535 api: add a timestamp to WatchEventResponse.TableEvent
- dff618d bfd: reset the BGP session only when an Up session expires
- 0f0471f table: drop the origin validation state community from external peers
- bdfa79f server: do not expire the hold timer while a message is processed
- 5fbd5a1 docs: list the NOTIFICATIONs that are sent as a Hard Reset
- 95e1ed8 packet/bgp: send BFD Down as a Hard Reset
- 6bd78b2 server: send Administrative Reset as a Hard Reset
- 265187c server: put the original NOTIFICATION in the data of a Hard Reset
- 98bbadc server: send every NOTIFICATION in Established through one function
- 625456d server: send Hard Reset on admin down and the prefix limit
- 43746e5 server: end the session when the prefix limit is reached
- 3eef764 server: end the session gracefully on a new connection from the peer
- 9208bd2 gr: keep the routes of a family only in the LLGR Capability
- 7aafbaf server: decide in the server whether a session ends gracefully
- b80bdde server: handle a failed hold timer NOTIFICATION as a graceful restart
- aaf4b20 server: move RTC test listen ports out of the ephemeral range
- 92e393f docs: describe the route advertisement after a graceful restart
- 83ccb7c server: use gr.Restart for our own graceful restart
- fe21cc5 gr: add a state machine for our own graceful restart
- 9a0c5c2 gr: move Helper to helper.go
- 9a35402 server: send the initial dump to a secondary-route client
- 9d07ddf config/oc: fix the peer-group inheritance key of graceful-restart
- bb83190 table: do not mark a stale path stale again
- 319fa41 server: use gr.Helper for the graceful restart of a peer
- bc66d00 table: do not attach LLGR_STALE twice
- 4377d70 gr: add a state machine for the graceful restart of a peer
- 73cb9c4 server: drop the stale routes that the restarted peer does not preserve
- d842e6f server: rebuild the negotiated graceful restart state for each session
- 1292420 cmd/gobgp: add a test for parseNeighborSet
- dc7158e server: do not drain a stopped watcher's queue under the server lock
- cbbcefc server: reject a route with our own address as the next hop
- 551a9f6 packet/bgp: deprecate the EVPN type 9 (I-PMSI) route
- 0058e57 packet/bgp: discard MUP NLRI of an unknown route type
- 9783303 packet/bgp: discard EVPN NLRI of an unknown route type
- c495d57 packet/bgp: check the MP_UNREACH_NLRI length for End-of-RIB
- ee2c354 bfd: apply timer changes to the running session
- 238fbae server: do not drop admin state requests sent back to back
- 840c730 server: reject an admin state request for the current state
- cc2d358 table: match the zone of a link-local neighbor in a neighbor set
- 32018f4 cmd/gobgp: keep prefixes in a neighbor set
- 6c23a0f server: report a NOTIFICATION received in OpenConfirm as received
- fe2c11f bfd: send AdminDown when a session is removed
- 3d41767 table: tell BGP-LS destinations apart by their serialization when keys collide
- 37aed5a table: don't send or pass along AIGP on an eBGP session
- 34fc457 server: withdraw EVPN MAC mobility paths from ADD-PATH peers
- 95a6372 table: discard LOCAL_PREF and reflection attributes from external peers
- 0919aad server: pick the propagate bucket of an EVPN MAC/IP route from its MAC
- 6d26fa2 bfd: set the diagnostic code of sent packets
- f3c13d7 bfd: stop periodic transmission when the peer asks for it
- abd73d0 bfd: keep the BGP session on a remote AdminDown
- 2f4224f bfd: discard received packets with a wrong version, M bit or A bit
- 3bf932b bfd: support multihop sessions
- 3197018 bfd: add the multihop option to the BFD configuration
- 7bdc5d0 bfd: discard received packets with a TTL other than 255
- dace5bc bfd: select the session by Your Discriminator
- 11fa6f2 bfd: use one receive socket per address family
- f1f9f3b server: do not run the FSM in the per-family End-of-RIB test
- 75fe3f7 server: purge stale routes per address family on End-of-RIB
- 95c43b0 server: handle ResetPeer in every FSM state
- 2be423a server: wait less before the first connection after Idle
- d8ebe4b server: support per-peer policies for regular peers
- e796717 server: discard AS4_PATH and AS4_AGGREGATOR from a four-octet AS peer
- 93b979d packet/bgp: check the next hop of MP_REACH_NLRI like NEXT_HOP
- eefeaa5 docs: ask contributors to run CI in their fork before a pull request
- 2a7f432 packet/bgp: keep unknown TLVs of the Prefix-SID attribute
- db3c928 server: keep our connection when the other one fails before Established
- 9be7565 server: stop the outgoing manager when the session is established
- b9438d5 server: do not stop the outgoing manager after it sent its OPEN
- b841cb7 server: resolve a collision in OpenSent at the OPEN on our connection
- 9358020 server: resolve a connection collision in OpenConfirm
- faf661e server: send Cease to the connection that loses a collision
- 57fa92f bfd: take unspecified sources from established BGP connections
- fa928d2 bfd: cancel queued BFD-down work before retiring sessions
- c5a4639 bfd: preserve dynamic neighbor interface binding on updates
- a6cedb3 server: preserve replacement BFD sessions when obsolete FSMs stop
- 4d7b218 server: replace the ROAs of an RPKI cache on a Reset Query
- 4e70e76 server: back off the idle hold time like FRR
- fae7ee5 server: stop the deferral timer when the session or the peer goes away
- 7d11a2c server: send Cease/BFD Down when BFD goes down
- 93858ca packet/bgp: add the RFC 9384 BFD Down Cease subcode
- 2544643 server: send IPv4 routes with an IPv6 next hop only to ENHE peers
- ee9c4b7 server: advertise extended next hop only for RFC 8950 IPv4 families
- 78d9177 server: honor the RFC 1997 well-known communities when advertising
- b5630a0 server: don't answer a version error NOTIFICATION in OpenSent
- 72e589d packet/bgp: don't decode 0x81/0x82 communities as traffic actions
- 7491a4e table: drop a second MP_REACH_NLRI next hop that is not link-local
- 4f80923 server: wait for the gRPC socket in the WatchEvent tests
- 7503315 test: extend TCP-AO scenario
- 51b09ce server: allow TCP-AO key change after neighbor connection close
- e9ac84b test: add TCP-AO scenario coverage
- 3667c1e table, tools: add an UPDATE packer benchmark with a real table
- c408b63 table: use one UPDATE packer for all families
- 86a0840 server: check the error from sendMessageloop in the kill signal test
- f588155 packet/bgp: check NEXT_HOP only when the UPDATE has NLRIs that use it
- e2cd8b1 table: share the next hop that is set for a peer
- 801cbec table, config: drop NewPeerGroupInfo, deprecate SetPeerGroupStateValues
- f3612de table: keep the next hop of a path out of the path attributes
- c4b5a3c table: group IPv4 paths by next hop as well in the UPDATE packer
- 2e5ef2c table: add GetFullPathAttrs for the attributes shown to users
- 2966efd server: convert AddPathStream paths with the AddPath code
- 51802f8 table: set the next hops when ToLocal changes the family of a path
- b3e14f0 table: set the next hops of a path in one place
- 059f4e9 table: read the next hops of a path through one Path method
- 72446b4 server: add tests that pin the next hop in MRT dumps and zebra routes
- a90c53e server: add tests that pin the next hop of a path in the API
- 05987ce table: add tests that pin the next hop of a path
- 16e8ae0 table: reject invalid peer policy assignments
- 89ef85f zebra: fix nexthop registration field offsets for FRR 8.2
- 953fc73 zebra: serialize the correct route header for FRR 7.4
- d1fa614 packet/bgp: fix EVPN I-PMSI route serialization
- de65525 server: count the advertised paths of a peer as they are sent
- 872abc7 server: handle an RTC membership shorter than /96 as a prefix
- 105d5db table: update the NLRI string when a VRF path is made global
- 7dcd1ee table: do not add RTC memberships that cannot contain a Route Target
- 76eea36 table: match RTC memberships as prefixes of the Route Target
- 4404a95 server: withdraw what was sent on an RTC membership withdraw
- 82e435a table, server: match RTC membership against Route Targets only
- c311b8d server: drop the unused newPath parameter of sendSecondaryRoutes
- 3c16205 server: write down what the server state lock covers
- 231ef09 server: run Serve only once per server
- 6757c25 table: don't fast-path a community pattern with a leading zero or space
- 403b244 table: don't fast-path a multi-colon community pattern
- e2d98a0 server: read the global RIB options under the server lock in zebra
- 5ecafd7 server: do not hold the server lock while dumping the MRT table
- e9123fc docs(scenario): document timeout scaling
- 2933db3 test(scenario): clean labeled Docker resources around pytest sessions
- 39cf519 test(scenario): probe link-local reachability with scoped pings
- 32d53e9 server: fix the comment on validating an UPDATE
- 62caebb packet/bgp: reject a repeated MP_REACH_NLRI or MP_UNREACH_NLRI
- dd25386 packet/bgp: treat an unrecognized well-known attribute as withdraw
- f988b41 server: validate an UPDATE after an attribute was discarded
- 1819cc3 clamp encap nlri endpoint to its length octet
- 3c5fcf9 table: keep LLGR stale paths out of multipath sets
- 8ea07aa server: withdraw routes when nexthop tracking invalidates them
- 1c9e36b table: withdraw all local paths when deleting a VRF
- c77ac78 packet/bgp: keep unknown MUP extended community sub-types
- f1fcae1 packet: keep unknown EVPN extended community sub-types
- 2fe3da6 packet/bgp: keep the FlowSpec 2-octet length form below 240
- 0de9844 packet/bgp: fix FlowSpec extended length encoding
- 189deb6 docs: describe which address families a prefix-set matches
- 1c98a37 table: match prefix sets against EVPN routes
- 7dd1d37 server: pass t to the RTC membership test helpers
- a9ba783 fix(server): retain VPN routes while another RT still matches
- 9297b19 fix(server): suppress VPN updates for duplicate RTC memberships
- c979c37 server: accept FlowSpec paths without a next hop in AddPathStream
- 47264c5 table: build each path's attribute list once in packerMP
- 6dc3bb9 packet/bgp: unmap an IPv4-mapped next hop when decoding
- 0a3ccf0 table: cache the path count of an AdjRib
- 756932e server: delete RPKI ROAs with the server key
- 02cfc40 server: discard ORIGINATOR_ID and CLUSTER_LIST from external peers
- 689c58b server: start FSM loop timings when an event is received
- 0ac78f5 packet/bmp: parse the statistics types of RFC 9972