Skip to content

Releases: bgpfix/bgpfix

v0.22.1

Choose a tag to compare

@pforemski pforemski released this 24 Jul 22:30

Bug fix release for MRT table dump reading.

Fixed

Legacy TABLE_DUMP (v1) records name their peer inline, so a corrupt or hostile file could define peers without end:

  • Peer index wraparound: the synthetic peer index was a uint16, so past 65535 peers it wrapped and routes were silently attributed to an earlier, unrelated peer (wrong PEER_AS/PEER_IP).
  • Unbounded memory: the peer table and the per-peer pending UPDATEs grew without limit. A 16 MB file with 70k distinct peers consumed 757 MB; it now takes 61 MB.

Peer indexes are now int, the tracked peer table is capped, and pending UPDATEs are flushed once too many peers are in flight. Records past the cap are dropped and counted as garbled, never folded onto an existing peer.

Real-world dumps carry well under 100 peers and are unaffected: output still matches bgpkit-parser exactly on RouteViews v1/v2/v6 RIBs and a RIPE RIS bview.

v0.22.0

Choose a tag to compare

@pforemski pforemski released this 24 Jul 17:05
bc0fa7a

MRT TABLE_DUMP support

Stream MRT RIB snapshots (RouteViews rib.*, RIPE RIS bview.*) as BGP UPDATE messages:

  • mrt.Table: parse TABLE_DUMP_V2 (PEER_INDEX_TABLE, RIB_IPV4/IPV6_UNICAST) and legacy TABLE_DUMP v1 records
  • mrt.Reader: convert RIB entries to synthetic UPDATEs - every peer's routes, tagged PEER_AS/PEER_IP, with consecutive same-attribute prefixes bundled into one UPDATE per peer; Reader.Flush(cb) emits pending bundles at end of stream
  • handles both RIB-entry MP_REACH encodings found in the wild: truncated (RFC 6396/4.3.4) and full RFC 4760 (RouteViews)
  • validated against bgpkit-parser on real RouteViews v1/v2/v6 RIBs and RIPE RIS bviews: exact row-level match

Other changes

  • meta package: per-message parser metadata (replaces the dir package); AS4/AddPath overrides for MRT/BMP parsers
  • allocation reductions: reuse of attribute objects and scratch buffers across UPDATE parse/marshal cycles, MP value reuse
  • NoCtx renamed back to NoTags in mrt/bmp readers
  • package documentation for all packages

What's Changed

Full Changelog: v0.21.0...v0.22.0

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 16:08
e6ce2ed

What's Changed

Full Changelog: v0.20.2...v0.21.0

v0.20.2

Choose a tag to compare

@github-actions github-actions released this 03 Jul 13:49
4b0dacf

What's Changed

Full Changelog: v0.20.1...v0.20.2

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 12 Jun 12:02
9efda26

What's Changed

  • rpki: RPKI cache package with ROV and ASPA validation by @pforemski in #22
  • flowspec: fix value truncation in JSON numeric operators by @pforemski in #23

Full Changelog: v0.19.0...v0.20.1

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 11:09

Full Changelog: v0.19.0...v0.20.0

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 12:02
deb4931

What's Changed

  • feat: RTR client, ASPA helpers, speaker validation, misc protocol fixes by @pforemski in #21

Full Changelog: v0.18.0...v0.19.0

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 16 Feb 16:15
48c9875

What's Changed

  • filter: add json, attr, time, dir, seq filters and fix != semantics by @pforemski in #19

Full Changelog: v0.17.2...v0.18.0

v0.17.2

Choose a tag to compare

@github-actions github-actions released this 12 Feb 11:56

Full Changelog: v0.17.1...v0.17.2

v0.17.1

Choose a tag to compare

@pforemski pforemski released this 10 Feb 14:45
98a0aa3

This release expands the library’s filtering and pipeline-control capabilities, improves JSON output consistency for certain fields, and adds comprehensive unit tests across several packages.