Skip to content

Releases: osrg/gobgp

v4.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 12:36
v4.9.0

Changelog

  • 01c5c4c GoBGP 4.9.0
  • 9d50d8e server: drop stale notifications queued while a peer session was down
  • efa0900 packet/bgp: check the per-type message length in parseBody
  • d7c721d packet/bgp: reject a body that does not match the declared length
  • 5e34ff5 test: move the KEEPALIVE length test next to the other header tests
  • e37c5a2 packet/bgp: reject KEEPALIVE messages that are not 19 octets
  • b2c73cf test: drop run_all_tests.sh and document how to run scenario tests
  • 8056d41 docs: document the listen address of the gRPC API
  • 4bbeb79 security: define what we treat as a vulnerability
  • e6c6f10 table: find the policy assignments in DeletePolicy itself
  • 4171aa9 server: drop the policy assignment of a deleted peer
  • a111094 server: store the per peer policy only for a route server client
  • c0214f7 table: report a statement that the policy does not have
  • 36cca5d table: check the import direction when deleting a policy
  • 698cc61 table: fix preserve flag in DeletePolicy
  • d4eb7d3 config: remove the collector configuration
  • 8006da4 config: log reload failures at Error again
  • 3436d72 config: log the export policy assignment failure at Error
  • 5f4a6b5 config: do not abort startup when zebra is not reachable
  • 94518c5 fix(cmd/gobgpd): delay sdnotify readiness
  • 6e08373 feat(config): return initial apply errors
  • 11a4096 server: fill in the Data field of the too long message error
  • 8f72434 packet/bgp: fill in the Data field of message header errors
  • c927e31 server: type fsmStateReason's notification as *bgp.BGPNotification
  • 88ac6da server: pass the sent NOTIFICATION to fsmStateReason in handleOpen
  • c4e13d1 server: fix wrong message wired into fsmStateReason on bad-peer-AS/invalid-msg
  • 36e6efd config: test peer group deletion against config updates
  • e585c39 config: fix deleting peer group and neighbor together
  • eb2a727 packet/bgp: include the type in an unknown route distinguisher string
  • f9152c2 packet/bgp: keep the value of an unknown route distinguisher
  • 33539ee apiutil: round-trip the SR-MPLS Binding SID label through the API
  • 8b19441 tcp-ao: expose HMAC-SHA256 profiles
  • 9341943 netutils: support HMAC-SHA256 for TCP-AO
  • cb123e9 spell-check: keep dictionary.txt sorted
  • d7ae493 spell-check: fix the "mututally" typo
  • 3b05300 config: load TCP-AO keychains from config
  • c32c92f config/oc: add TCP-AO keychain model
  • dae5a6c config/oc: reject out-of-range integers in the config file
  • 1b84a40 packet/bgp: add a test for concurrent Serialize
  • e7f8d7e packet/bgp: do not cache the message length in the BGP header
  • b010677 packet/bgp: do not store the serialized length in OPEN
  • caccf7b packet/bgp: do not store the serialized value in the capability
  • 3b6ff68 packet/bgp: make capability Len independent of Serialize
  • a40450d server: hold fsm.lock when reading fsm.recvOpen
  • 8c84624 cmd/gobgp: document the I-PMSI route target as required
  • aac7dea cmd/gobgp: validate I-PMSI route target before use
  • 42abd24 packet/bgp: serialize the full SID in the SRv6 Binding SID sub-TLV
  • c0d5851 packet/bgp: set the bottom-of-stack bit in the VPLS Label Base
  • 708c180 packet/bgp: compare the decoded NLRI in the VPLS round-trip test
  • 45c9244 packet/bgp: cover the VPLS BGP-AD NLRI at the MP_REACH level
  • 62f3d94 packet/bgp: re-serialize the VPLS NLRI in the fuzz target
  • 96105cb packet/bgp: drop the stale RFC 6074 comment in the VPLS NLRI decoder
  • 7b1d80a reject VPLS NLRI with a length other than 17
  • 02bcba0 ci: make the YANG check fail when pyang fails
  • f626c40 tools/pyang_plugins: declare the route-family typedef
  • 84868f8 tools/pyang_plugins: drop the ineffective ip-prefix deviation
  • 9c22b63 ci: add job for yang files diff
  • 97ff24e config: fix incorrect yang generation
  • 69faffb server: compare TCP-AO keychain messages with proto.Equal
  • f306bba server: run the TCP-AO validation cases inside their subtests
  • e68a92f server: spell the TCP-AO keychain store field as one word
  • 2328707 api, server: drop the keychain from the TCP-AO add response
  • 407deba server: treat the TCP-AO keychain list name as a filter
  • 0e9a005 server: reject out-of-range TCP-AO key IDs on keychain update
  • aba1929 server: implement TCP-AO keychain management
  • a7251b9 api: add TCP-AO keychain configuration API
  • 8e65579 zebra: drop dead pos increments in zapi tests
  • 55eb7a8 api, cli: surface the flowspec redirect-to-IP action
  • 58940aa packet/bgp: add flowspec redirect-to-IP extended communities
  • ad3e7c2 packet/bgp: bound MUP Type 2 endpoint address length to address family
  • 5bf33cf zebra: reject a nexthop label count above the maximum
  • b7d523b fix(server): avoid mutating Adj-RIB-In when listing accepted paths and refactor
  • b6a519b server: reject an unknown peer group in the dynamic neighbor API

v4.8.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 21:00
v4.8.0

Changelog

  • 1049522 GoBGP 4.8.0
  • 4e349f6 server: withdraw filtered secondary routes on soft reset out
  • 93dd9a6 packet/bgp: always include the mask length in RTC NLRI strings
  • 1bccb27 packet/bgp: reject Route Target Membership NLRI longer than 96 bits
  • 21ccfb9 packet/bgp: make Route Target Membership NLRI codec RFC 4684-correct for all prefix lengths
  • 6934f7d table: add rtc-prefix match for prefix-set policy conditions
  • bd337ca table: don't infer a fixed ASN from an alternation community pattern
  • 440a3b1 packet/bgp: bound the update attribute scan to its declared length
  • 5a369ed bfd: discard received packets with an unbound discriminator
  • 1d16f3d table: send IPv6 extended communities in their own attribute
  • 9c13d68 packet/bgp: keep extended community decoders inside their community
  • a74cb86 ci: run buf generate from proto so the diff check has an effect
  • 4c9c9f6 apiutil: reject unparseable BGP-LS addresses instead of panicking
  • 3d78f01 api: give BGP-LS link identifiers explicit presence
  • 016ac48 apiutil: reject absent BGP-LS sub-messages instead of panicking
  • 6f6e630 netutils: fix SA5011 nil-deref warning in bindInterface test
  • b6c58c8 packet/bgp: validate declared lengths in Prefix-SID SRv6 TLVs
  • ca4873f packet/bgp: handle absent Multi-Topology ID in SRv6 SID NLRI
  • 173621f packet/bgp: reject zero-length next hop for families that require one
  • 86bc653 test(rtc): add scenario test for rtc policy filtering and change base check from adj-in to global rib
  • ea7e972 chore(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1
  • 0378ad6 packet/rtr: bound RTRIPPrefix prefix and max length to address family
  • e1bf959 packet/bgp: clamp SR Policy NLRI endpoint to declared length
  • 31e136b server: return an error from watch instead of a nil watcher
  • 88b4238 fix(server): prevent watcher leaks during shutdown
  • 08ee396 netutils: add TCP-AO socket helpers
  • 4e17218 server: resolve unnumbered NeighborInterface before validating neighbor address
  • a7028f3 packet/bmp: validate declared length in TLV16 value decoders
  • 3e854ce pkg/server: fix Loc-RIB BMP Peer Up to match RFC 9069
  • 28ba85f bfd: discard received packets with a zero Detect Mult
  • c1612bf bfd: derive detection time from remote timers
  • d0f1080 server/bmp: report Adj-RIB-In withdrawals to clear ribout on peer down
  • 69da7bf packet/bgp: reject out-of-range prefix length in EVPNIPPrefixRoute
  • 3272a76 docs: update srv6_mup.md for draft-ietf-bess-mup-safi-01
  • 0845830 cmd/gobgp: support MUP ST route TLVs and extended community formats
  • 7d2ace1 api: add MUP ST route TLVs and MUP extended community formats
  • 71d2cc3 packet/bgp: add interwork segment and address-format sub-types to MUP extended community
  • c2359e4 packet/bgp: add optional TLVs to MUP Type 1/2 ST routes
  • dc951ac server: rely on lazy path attributes hash
  • a3f0566 table: make lazy path attributes hash consistent with eager sites
  • 635293c table: fix Path.Equal ignoring nexthop and NLRI payload
  • a06cf9d packet/bgp: clamp flowspec components to declared NLRI length
  • a310174 zebra: reject ZAPI header with Length below header size
  • 0d1ad1b packet/mrt: fix attribute-length truncation in parseRibEntry
  • eba905d add a test that demos that the error messages related to misconfig remain the same
  • 7df6ba2 Support Config Via io.Reader
  • 5f30deb packet/bgp: fix SRv6InformationSubTLV sub-sub-TLV decode over-read
  • 0b5e3dc chore(deps): bump golang.org/x/net from 0.48.0 to 0.55.0
  • 8885f0b Propagate BindToDevice to GetBgp
  • ab3b92f bgp: fix build break, gofmt and stale tests in BGP-LS String() methods
  • 5b918d2 style: fix gofmt formatting
  • b993c6d bgp: fix BGP-LS Link/Prefix NLRI key collision for IS-IS L1/L2

v4.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 21:54
v4.7.0

Changelog

  • 8b5edc2 GoBGP 4.7.0
  • 441fcb6 ignore Claude files
  • 4a9c2a5 Use Interface/Device Bindings for BFD
  • 1ad1e03 tools: add FlowSpec auto-mitigation example
  • 8c4802d ci: replace fabric with shell script for building container image
  • d6dee83 scenario_test: migrate test runner from nose to pytest
  • 09276f7 server: fix Downtime updated on reconnection intermediate transitions
  • 3c0164f scenario_test: fix route server policy to use export direction
  • 40817e6 gobgp: support last-as keyword in as-prepend action
  • 1cf53c9 scenario_test: fix route server policy direction and test infrastructure
  • e474954 ci: enable IPv6 for route server scenario tests
  • 3acd19f table: fix REPLACE with empty community list not propagated to API
  • 737a626 table: fix case-sensitive community action type in toStatementApi
  • 2132288 fix: register bfd for dynamic neighbours
  • e5286bb scenario_test: update route_server_malformed_test to match RFC 7606 behavior
  • 8ab4f8a fix: pass zone for LLA BFD peer
  • f6cc73a server: fix GR LocalRestarting not cleared when transitioning peer appears as OPENCONFIRM
  • 4092db3 config: propagate bind-interface from peer-group transport config
  • 4a319a6 packet/bgp: reject empty AS_PATH in confederation eBGP validation
  • 7325b9d Add missing scenario tests for TCP MD5
  • 5581749 config: Plumb global bind-to-device from file config
  • 76ece66 Support VRF for TCP MD5
  • 21830f7 config: remove trailing whitespace from gobgp.yang
  • fffa3d5 bgp-ls: accept prefix-length 0 in LsTLVIPReachability (default route)
  • 944dece zebra: set ifindex for IPv6 link-local next-hops
  • 7204bf9 packet/bgp: fix TunnelEncapSubTLVSRCandidatePathName decode over-read
  • 9f62e5b packet/bgp: include Link Local/Remote Identifier in LsLinkDescriptor.String when both shapes are present
  • 8866bd7 table: fix ext-community-set match-set-options ALL and INVERT
  • 94e64d6 fix global rib peer addpath
  • c57da62 fix multipath when use bmp or monitor
  • 7743c50 ci: scope GITHUB_TOKEN to minimum required permissions
  • e25cefa Require @fujita review for workflow changes
  • 0cc5ed4 packet/bgp, apiutil: gofmt fixups in the RFC 9351 stack
  • 86958d5 apiutil: end-to-end wire test for RFC 9351 FAD + multi-SID Prefix-SID + FAPM
  • cea5414 packet/bgp: render FAD sub-TLVs in LsTLVFlexAlgoDef.String for CLI output
  • c29c820 api, apiutil: surface RFC 9351 Flex-Algorithm Definition + multi-SID Prefix-SID
  • e112129 packet/bgp: add RFC 9351 Flex-Algorithm Definition + multi-SID Prefix-SID
  • b3989e1 server, table: advertise the cap, negotiate it, and gate the per-session length
  • 877913e api, apiutil: surface the BGP Extended Message capability
  • e1268db packet/bgp: add the BGP Extended Message capability (RFC 8654)
  • 41b5bb6 table: cache NLRI string in originInfo to avoid repeated allocations
  • 6f2cf37 server: use sync.Map.Clear() in resetAdvertisedRoutes
  • 6331854 server: avoid global propagation locks in resetAdvertisedRoutes

v4.6.0

Choose a tag to compare

@github-actions github-actions released this 01 Jun 06:58
v4.6.0

Changelog

  • 5151100 GoBGP 4.6.0
  • 84a98f8 server: withdraw policy-filtered routes on soft reset out
  • 41e47a8 fsm: Do not emit warnings upon receiving notification
  • 748e233 server: don't treat unestablished GR peers as having sent EOR
  • c4fd8f2 pkt/server: return error instead of panic on invalid SourceId in AddPathStream
  • d43ff16 feat: add as-path-options params for peer-group api and config parser
  • 1affa9a docs(bfd): add docs for using and configuring bfd session state detection
  • e0d6b99 fix(table): preserve last action for the same path in coalesced updates
  • f9448f0 feat: add local caps and peer-group to watchEventPeer
  • 77a5cb0 fix(bfd): fix peer shutdown, remote down, and default port
  • 4ebc2d3 fix(bfd): fix goroutine leak, safe public API, remove read event loop
  • 0aef2d8 feat(bfd): add BFD server and peer state machine
  • 89ec8ad fix(cmd): avoid nil pointer panic in CLI when NLRI cannot be decoded
  • f0a540b feat(table): extract communityAnyIndex and add fast match for ext-comms
  • df0fb4d table: Do not emit warnings upon no-op withdrawals
  • 78d1c56 fsm: Do not emit warnings upon sending notification
  • c246294 refactor(table): drive UpdatePathAttrs from PeerInfo only.
  • accb63b feat(table): extend PeerInfo and add peer-group helpers for policy paths Expand PeerInfo with PeerType, route-server flags, remove-private-as, peer group name, and related neighbor/group fields so table logic can treat peer-group shared-policy paths consistently with per-peer paths.
  • a89819e refactor(config): move IsConfederation methods from Neighbor to Global
  • 3be7559 perf(table): bitmap-based fast path for standard BGP CommunitySet
  • ace3800 fix(server): compare ECMP paths against best path, not predecessor
  • ed9ec4f fix(cmd/gobgp): allow multiple RTs in mup route commands
  • 941f597 packet/bgp: propagate errors and enforce length bounds in BGP-LS NLRI decoders
  • 5d52dd1 packet/bgp: prevent nil pointer panic in TunnelEncapSubTLVSRBSID String and MarshalJSON
  • 7b3e555 packet/bgp: reject malformed MPLS label stacks missing bottom-of-stack bit
  • b6bfd5d apiutil: add tests for UnmarshalSRSegments nil Flags and round-trip
  • b22177e fix(apiutil): nil-safe Flags access in UnmarshalSRSegments
  • f02ca39 packet/bgp: enforce CapLen boundary in BGP OPEN capability decoders
  • 2ee365d fix: preserve unknown IPv6 Extended Communities in round-trip encoding
  • dd70de7 fix: evpn type2 handling without ip
  • 3072fe9 fix: nil pointer dereference for local paths in WatchPostUpdate

v4.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Apr 23:33
v4.5.0

Changelog

  • 5f19106 GoBGP 4.5.0
  • 264380b fix bgp-ls mt-id rib collision
  • 7899bb9 docs: recommend GOAMD64=v3 for maximum performance on AMD64
  • 8448d2c correct sub-TLV length validation in BGP-LS decoders
  • 010d6a5 feat(bfd): align BFD API
  • 90adc4a feat(bfd): align BFD schema with OpenConfig conventions
  • 4be569a feat: propagateBucket
  • a50fb45 feat: zebra client nexthopCache need to be accessed under lock
  • d60caf4 stopNeighbor under write lock
  • 57c66ea add FSMHandler race tests
  • d1cc36a s.shared.mu.RWLock
  • d6deb01 feat(bfd): parse and encode Diagnostic field per RFC 5880 §4.1
  • 4d989d8 feat: consistent routing update
  • 35aa05a fix(rtc): fix VPN path indexing — track best path (no-add-path) or all path-IDs (add-path)
  • ae1a568 feat(bfd): add RFC 5880 BFD packet codec
  • 8de689f chore(spell): add reuseaddr to spell-check dictionary SO_REUSEADDR is a standard POSIX socket option name; scspell3k doesn't recognize the combined token 'reuseaddr'.)
  • 4d098c9 feat(netutils): add SetUDPTTLSockopt and SetReuseAddrSockopt helpers
  • d12f363 watcher: serialize new watcher registration
  • 9aec25f bmp: fix reconnect on write error
  • 640b3a6 table: eliminate string round-trips in Select for IPv4/IPv6 UC
  • 00c7a4b table: fix shorter-prefix lookup returning only the first match for IPv4/IPv6 UC
  • be2b9e9 apiutil: fix wrong lookup option when converting from proto enum
  • d2d2be3 table: skip paths with unconfigured family in AdjRib.Update
  • 35adaa5 zebra: use netip.Addr as nexthopStateCache key
  • 153a25e test: use assert_several_times in zapi_v3 test
  • 83c341d test: replace OSPF with static routes in zebra-nht test
  • e26c0cc table: add unit test for new path with invalid nexthop
  • b21a8a7 test: expand unit tests for nexthopStateCache
  • 62e965a feat: (table/server) add VPN path RT index for O(1) RTC candidate lookup
  • 631de4c fix: rpki server listing panics
  • 97ca4e7 test: increase NHT test timeouts for CI stability
  • f20b97a server: fix nil pointer dereference in prePolicyFilterpath
  • b4e240e table: treat nexthop-invalid best path as no best in GetChanges
  • 075fb4c feat: rework RTC handling with RouteTargetMembershipHandler
  • c86f89e Coalesce outgoing BGP UPDATE messages
  • 11d0013 fix: ipv6 link local address with zone
  • 0d2f89d refactor: replace rtc handling logic to separate place. Key changes: 1. Move rtc registering logic to separate file 2. A little name and comments refactoring 3. Unit tests for rtc registering logic
  • 7cdba63 server: fix goroutine leak when WatchEvent outlives Serve
  • 9695ed2 Replace rtCounter (map[uint64]int) with adjRTSet (map[uint64]map[adjRTKey]struct{})
  • 55e5242 ci: replace bufbuild/buf-setup-action with go install
  • f4143fe ci: update GitHub Actions to Node 24 compatible versions
  • 0534445 fix bmp config map issue
  • a81d63d gobgpd: Fix printing of help message
  • 4643cba Add security policy for vulnerability reporting
  • 2df9ff3 atomic peerinfo or lock prefixLimitWarned, llgrEndChs
  • 9b36d84 server: Use State instead of Config to determine GR-enabled peers in StopBgp

v4.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Apr 08:24
v4.4.0

Changelog

  • 12b4eba GoBGP 4.4.0
  • 7e767a8 packet/bgp: use buffer length for sr-policy segment list parsing loop condition
  • f9f7b55 packet/bgp: fix infinite loop when decoding srv6 unknown sub-TLV types
  • f842cdf packet/bgp: prevent uint16 underflow in BGP-LS sub-TLV length tracking
  • 76d9110 packet/mrt: fix uint16 underflow in parseRibEntry path attribute loop
  • bc77597 packet/bmp: validate ParseBody input length before reading fields
  • 51ad1ad packet/bgp: Fix AIGP PathAttribute parser to return errors
  • 215aee0 fix: prevent nil dereference on BGP UPDATE validation and fix variable shadowing
  • 2814e72 fix: handle keepalive write error in openconfirm state
  • 60f548e netip: use github.com/gaissmai/bart Trie
  • 52fa007 build(deps): bump google.golang.org/grpc from 1.73.0 to 1.79.3
  • ad39ab1 test: fix race in TestWatchEvent
  • af16fb5 remove Locked suffix on internal API
  • af29736 cleanup Destinations RLock, iterate on per shard lock
  • 89b5acd adj.walkActive
  • 835fb96 table manager cache maxPathCounted
  • b48d135 table destination SelectDestinationLocked
  • 44a9abc table manage don't expose internal maps
  • 0ababab table/path: fix race on attrsHash
  • 91337e9 tests: add race tests for table manager
  • b55a5db EVPNMacNLRIs thread safe
  • 5a62b66 table manager lock
  • 49e5a2a table dest shard locks
  • 4819eb3 Fix linting
  • fbf326d test: reduce zebra-nht nexthop-cache-warm timeouts
  • b7c841e table: add unit tests for NHT path invalidation
  • b153964 zebra: fix nexthop-unreachable skip check in applyToPathList
  • c398043 server: return error when Family is not set in AddPath API
  • b0f41d8 Fix nexthop validation logic in PathAttributeMpReachNLRI serialization
  • 1ecd7ba fix nexthop length mismatch in NewPathAttributeMpReachNLRI
  • 7d8407f Fix assertion to check for maximum BGP message length in MP-NLRI tests
  • 04ea4d5 Fix extended-length attribute header calculation in packerMP
  • 150e672 Pack multiple NLRIs into MP-BGP UPDATE messages
  • 2b09db3 packet/bgp: fix CapFQDN.DecodeFromBytes ignoring DomainNameLen
  • 67c0594 packet/bgp: fix CapSoftwareVersion.DecodeFromBytes
  • 8cbf83d server: Strip LOCAL_PREF from eBGP peers
  • f0f24a2 packet/bgp: validate marker field in BGP header
  • 9ce8936 packet/bgp: fix uint16 underflow in BGPUpdate.DecodeFromBytes
  • 362cce3 packet/bgp: fix insufficient length check in ParseIP6Extended
  • e04d902 refactor: delete multiple lines setPathAttr
  • 6aa1c55 Fix nil pointer panic in TestGRPCAddPathUpdatesUUIDMap
  • b7e421a fix: fix seting nil originator id for local rtc routes in route-reflector
  • a38edb2 server: fix malformed message crash
  • 583080a server: fix malformed nexthop attribute crash

v4.3.0

Choose a tag to compare

@github-actions github-actions released this 28 Feb 22:27
v4.3.0

Changelog

  • c3eb0db GoBGP 4.3.0
  • ab13976 fix(bgp-ls): fix TLV types, delay A-flag masking, and min/max validation
  • 38c64c9 Update pkg/packet/bgp/bgp.go
  • 2e9e2bb Update pkg/packet/bgp/bgp.go
  • d7a1541 fix(bgp-ls): correct SR capabilities and IGP flags bit mapping merged from issue #3312
  • e13c9f7 bgp-ls: add delay-metric TLVs across packet, API, and CLI
  • df3bfb5 fix(lint): replace WriteString(fmt.Sprintf) with fmt.Fprintf
  • 597b5f0 decode AS_PATH based on capability negotiation
  • 2c49d8d table: fix cgo format
  • 9656368 server: add Confederation ID check in AS loop detection
  • 9fe96a9 table: fix panic when AS4_PATH appears before AS_PATH
  • caa7c28 feat(peer): atomic peer counters
  • dbb52c5 Adj-Rib: fix leak memory on withdraw unknown path
  • f12b8fb packet/bgp: validate NEXT_HOP attribute length and value to prevent panic
  • 1bb8896 config: return StartBgp error to prevent crash
  • f110e8b server: validate router-id must be IPv4 address
  • 3c5b2b6 atomic peer.peerInfo by using atomic.Pointer[table.PeerInfo]
  • 5fa0fd8 fix(StopBgp): if server is not serving, we cannot stop BGP server
  • cfe40c9 server: close connection when response to OPEN is not sent during hold time
  • da59637 ci: add buf generate diff check
  • 988fd14 Adding support for setting IP_TOS/IPV6_TCLASS as a socket option
  • 2b7e26b grpc_server: fix path best issue #3301
  • f416268 fsm: mostly read peer.fsm.pConf
  • f26690d Speed up RTC in Adj-RIB tables
  • 3782650 server: Fix gRPC AddPath uuidMap handling
  • fe4eb38 Call initializeConn directly under lock and remove useless fsm.lock
  • cd9bbba internal/table/destination: make it private as it's only used internally
  • 1459163 Add CompareAndSwap for adminStateRaw
  • 9c003fe internal/destination: remove unused code (only in test)
  • 5faaea0 no lock in loop for peer.fsm.pConf.Config.Vrf
  • 7338052 remove debug log as it's too noisy an on the hot path
  • fc80fdf cmd: fix unix domain socket connection
  • b28d493 server/mrt: Avoid MustParseAddr on zone-qualified addresses
  • 30b905c Properly handle local zone information
  • 5831d74 server: fix racey waitState helpers in tests
  • 9338559 server: stabilize RTC deferral timer tests by avoiding watcher races
  • 48d0d70 fix: rtc deferral timer expired bugs
  • bb713fb Properly handle peer's zone information

v4.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Jan 13:51
v4.2.0

Changelog

  • 8d4da6d GoBGP 4.2.0
  • b994d31 README.md: add GoBGP.nix external reference
  • 824997d bmp: Use netip.AddrPort to identify client
  • a0d3b25 Migrate path.SetNexthop to netip types
  • d5174fe pkg/server: send bmp PeerUp/Down message for Local-RIB policy
  • a550fe7 packet/rtr: validate ErrorReport lengths to prevent OOM on malformed input
  • ca78de2 zebra: fix panic in FuzzZapi test on short inputs
  • b015c35 packet/mrt: fix panic in PeerIndexTable parsing on large view name length
  • d856321 packet/bgp: fix panic in FlowSpec component parsing on invalid input
  • db4ab83 packet/bgp: avoid mutating input in MP_REACH_NLRI
  • 76b17b7 packet/bgp: fix SRv6 End.X SID Sub-TLV length handling
  • f08babd packet/bmp: support Peer Down reason=6 TLVs (RFC9069)
  • fda3c2d packet/bmp: fix peer flag 0x80 semantics for Loc-RIB (RFC9069)
  • ce30223 packet/bmp: add Peer Up Information TLV support (RFC9069 VRF/Table Name)
  • fb36901 server: compare local address using netip.Addr to avoid IPv6 string mismatch
  • 2fd31c1 table: Fix next-hop-in-list condition
  • 5da7176 add peer-group option to cli
  • bd3b84e tools: update python examples for the gRPC API

v4.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Nov 23:49
v4.1.0

Changelog

  • 086af04 GoBGP 4.1.0
  • 3db447d table: Fix regexp for parsing large community
  • a29625a server: Avoid overwriting log fields in adj table
  • 76d3c1e config: Fix RouteReflectorClusterId setting if configured
  • 3d4e1dc server: guard timer config update with FSM lock
  • 2a0ea1e server: Add TestUpdatePeer unit test
  • dd41da9 server: Fix invalid pointer dereference in updateNeighbor
  • 5f2d77e markdownlint: Disable table-column-style rule
  • 74fde91 fix: fsm connection write deadline

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 05:35
v4.0.0

Changelog

  • c9c1c12 GoBGP 4.0.0
  • 25c2c6a config: remove neighbors.transport.config.ttl option
  • 6b9d9b1 cmd: remove "global" magic keyword
  • 8d03fe5 docs: clean up logger setup
  • ab6cef1 docs: set default routing policy
  • e0f16a8 server: default to global RIB when policy name is empty
  • 71b8bb4 server: Remove request nil checks from gRPC handlers
  • e38ad7c api: remove ApplyPolicy from Global
  • b0fe2a0 config: remove unused InPolicy config
  • 7a31432 server: fix ListPath returns context error
  • 2ce6f13 server: return io error in streaming List RPCs
  • 78d53ad server: use stream.Context() instead of context.Background() in List* RPCs
  • 8ca4547 server: improve context cancellation handling in List* functions
  • 8ad38a6 packet/bgp: remove isIPv6 in MarshallingOption
  • 78dbfea server: add argument to getBestFromLocal function to exclude EOR
  • af6056c server/fsm: Remove redundant notification in handleOpen
  • 3c986d5 server/fsm: Fix connection leak in connectLoop on context cancellation
  • a30d59b fix: drain channel
  • 72f5b4b fix: remove logging on connection closing
  • 719ce3c docs: Update repository clone URL in CONTRIBUTING.md
  • f5d2039 fix: golanglint-ci
  • a2bc5a6 server/mrt: add only established-peers to dumptable entry
  • 5a5d631 fix: race condition in TestWatch
  • 3fe25f3 server: fix WatchEventPeer
  • 5193940 server/fsm: update fsm state after updating related information
  • 27f0355 server/fsm: incoming fsm stops outgoing only in connect state
  • b9d06df server/fsm: call connectLoop directly instead of using goroutine
  • 822985c test/scenario: remove IDLE state check after removing blackhole config in llgr test
  • f20d519 server/fsm: support parallel connections
  • 161c952 Fix wrong multipath logic in the ListPath API
  • 911ab22 Use netip.Addr in watchEventMessage instead of net.IP
  • b910da3 packet/rtr: remove SplitRTR function
  • f5f098d Use netip.Addr in watchEventUpdate instead of net.IP
  • fd6214e modify addPathList in zclient to race-safe addPathStream
  • f6bf251 doc: Add Locking session in CONTRIBUTING
  • cbbaac9 fix operator conversion from APIStruct to oc
  • cb60aef server/fsm: Pass connection explicitly to sendNotification method
  • 2748557 server: Complete nonblockSendChannel migration for notification sends
  • c9524df server/fsm: Move OpenMessage state updates to stateChange function
  • 1cb4905 server/fsm: Move transport state updates to stateChange function
  • 451ff12 server: Add nonblockSendChannel utility for non-blocking channel sends
  • 0bfe6cc server/fsm: Use local holdtimerResetCh with struct{} type in established state
  • 7b38fc3 server/fsm: Replace shared stateReasonCh with local channels per FSM state
  • 9e55f4a server/fsm: Remove redundant fsmHandler.conn field
  • 82ab61e server/fsm: Fix write deadline management during connection establishment
  • a63931b server: trigger session reset for TTL changes
  • dbdeba2 test/scenario_test: clarify behaviors in llgr test
  • 6a484a6 server/fsm: move establish handling to recvMessageloop from recvMessage
  • 2795378 server: simplify *bgp.MessageError handling
  • 05c6077 server: remove fsmMsgRouteRefresh type
  • f42a936 server/fsm: fix message header length error handling
  • e4725bf server/fsm: drop AFI/SAFI-disable handling
  • 181f5a6 remove ValidateBGPMessage()
  • 0eceae2 server/fsm: add TreatAsWithdraw to fsm
  • e9f43bf server/fsm: send open before moving to opensent state
  • c134f48 server: use atomic.Int32 for fsm.state
  • 99ac977 server: make fms.adminState lock-free
  • 705ca3b server: add isEBGP and isConfed to fsm
  • 0fa6eee server: use Mutex instead of RWMutex for fsm
  • 7897164 server: add comments about locking for fsm members
  • a968da3 server: remove fsm.marshallingOptions
  • d8f8cee server: use atomic.Value for fsm.rfMap
  • d569b7e packet/bgp: remove message race test
  • 07375b0 server: lock fsm.lock to access to Timers.Config
  • 1440166 server: make fsm goroutin call fsm.StateChange
  • 3a35559 server: make fsm set idleHoldTime after admin reset
  • befd213 server: remove notification logic in outgoingCh
  • cf9315e server: make fsm handler private
  • c023c9c server: use atomic.Bool for rtcEORWait
  • 18ecaeb server: make the FSM state lock-free
  • aa0ca59 server: create peer specific logger
  • 0c74e9c server: remove access to fsm.conn in server
  • b414774 server: don't log anything if logger isn't specified
  • b5e996b server: use netip.Addr for neighborMap
  • b77ca57 config: use netip for mrt table-name OpenConfig
  • 40d3f25 add new word in tools/spell-check/ignore.txt
  • 9412c4f docs: improve usage for 'gobgp global rib' command
  • bda4c72 feat(test): improve Node NLRI, Link NLRI, SRv6 SID NLRI, and PrefixV6 NLRI tests
  • acfa25c feat(cli): implement BGP-LS Node, Link, SRv6, and PrefixV6 NLRI parsing
  • 01c009a fix(apiutil): improve LsLink and LsAttribute processing
  • e1a044d fix(bgp-ls): correct TLV type constants in BGP-LS constructors
  • 8730cbe fix(bgp-ls): improve BGP-LS packet parsing and error handling
  • 1c34761 feat(api): add protobuf definitions of TLVs related to SRv6 in RFC9514
  • 303516e feat(bgp-ls): implement TLVs related to SRv6 in RFC 9514
  • 436b989 feat(apiutil): implement protobuf conversion of TLVs related to SRv6 in RFC 9514
  • 4b75d99 feat: Add BGP peer disconnect reason reporting
  • e5d96f1 Use log/slog instead of multiple logging libraries
  • 20b392b packet/bgp: fix IPAddrPrefixDefault.decodePrefix()
  • 162ab97 cmd/gobgp: fix p2p link show adj-in/out command
  • ea2a2e3 fix lint errors
  • 4b7e2d8 server/fsm: replace fsm intermediate infinite channel with normal channel
  • 4b03534 server/fsm: remove reason in fsm
  • 06f6196 server/fsm: remove sentNotification in fsmHandler
  • 304bc04 server: remove Notification in fsmMsg
  • f3d7715 server/fsm: rename notificaiton to deconfiguredNotification
  • 2792418 server: remove fsm in FsmMsg
  • 914e829 server: remove MsgSrc in FsmMsg
  • c6110a6 server: unify three functions to send notification
  • cf52588 server/fsm: send notification directly due to admin state change
  • 67abdb7 server: remove StayIdle in fsmOutgoingMsg
  • dec44a0 doc: update API session in CONTRIBUTING
  • efcdde9 packet/bgp: make IsAttributePresent private
  • 4d9cd2b fix: fix route stuck on eBGP filterpath
  • ae72f0f packet/bgp: make GetBGPUpdateAttributesFromMsg and GetBGPUpdateAttributes private
  • 4115136 zebra: use netip
  • e3eb542 packet/bgp: add test for bottom of MPLS label for prefix SID
  • 64f6f19 packet/bgp: fix decoding labels in SR
  • 7c0efd5 table: disable CollisionAttack test
  • 204...
Read more