Skip to content

ExaBGP 'Package' Release

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:48
· 2991 commits to main since this release
5.0.14
aa290d1

Version 5.0.14 📦

This release is mostly about what ExaBGP sends and accepts. Please read the compatibility notes before upgrading as there is some changes.

The full list of changes is in the changelog.

New:

  • every release now comes with a zipapp, exabgp.pyz: ExaBGP in a single file, which any Python 3.8 or later runs, with nothing to install.

    curl -LO https://github.com/Exa-Networks/exabgp/releases/download/5.0.14/exabgp.pyz
    curl -LO https://github.com/Exa-Networks/exabgp/releases/download/5.0.14/SHA256SUMS
    sha256sum --ignore-missing -c SHA256SUMS
    chmod +x exabgp.pyz
    ./exabgp.pyz version
  • FlowSpec rate limits can be given in packets per second, with rate-limit <n> packets (RFC 8955). A rate limit without a unit is still in bytes per second.

Compatibility:

  • ADD-PATH is no longer offered for ipv4 mup and ipv6 mup. The encoder never sent a path identifier, so a peer accepting the capability misread every route.

  • with multi-session enabled, ExaBGP also offers the Cisco capability code (131). A Cisco peer offering only 131 was refused with NOTIFICATION 2/9.

  • after a session was established, a reconnection no longer claims a Graceful Restart restart. The first session and an explicit re-establishment still do.

Fixes:

  • UPDATE generation was reworked. IPv4 multicast uses the MP attributes, native and MP routes are no longer mixed or repeated across packets, and an MP route too large to fit is logged and skipped rather than resetting the session over and over.

  • decoding was tightened across communities, Prefix-SID, AS4_PATH, AS4_AGGREGATOR, EVPN, MVPN, FlowSpec and BGP-LS. Malformed attributes are treated as withdraw or discarded as the RFCs ask, rather than resetting the session or being accepted. One peer's ASN4 or AIGP negotiation no longer changes how another peer's UPDATE is read.

  • a FlowSpec rule with no match component is refused. It used to become a filter matching all traffic.

  • reload now removes idle passive peers and the listening sockets nobody uses, and opens newly configured ones. Restarting API helpers during a reload no longer counts as a crash.

  • sessions without authentication work on Linux kernels without TCP_MD5SIG. A configured password still fails if the kernel can not provide it. incoming-ttl now also applies to outgoing sessions.