Skip to content

Releases: GrandArcher/Packeteer

v0.8.0

Choose a tag to compare

@GrandArcher GrandArcher released this 20 Oct 07:38
c724fcd

Packeteer v0.8.0 is about Internet exchanges and shared measurements, all observe-safe.

Highlights

  • IXP mode (#160-#167): observe-only IXP mode with IX-F member import, fabric probes, Birdseye route-server history and signals, fabric incident correlation, member pages, and multi-site health.
  • Measurement (#150, #157, #158, #343, #347): probe-path check, probe multiplexing with a PBR generator, RPKI origin labels, health labels from measured loss, and provider health events.
  • Exchanges (#147, #151, #153): BMP exchange peer monitoring, a shared IX port, and PeeringDB / IX-F lookup.
  • UI (#329, #330, #344-#346): settings forms for most config blocks with a Preview diff, clearer observe wording.
  • Herd (#260, #261): opt-in herd phase 1 and the hub client.

Upgrade: sign-in is now on by default for every install, upgrades included (#328). A config without an auth block requires sign-in; tokenless scrapers and API clients (for example /metrics) get 401 until given a token. Without PACKETEER_ADMIN_PASSWORD, the first start generates a one-time admin password. To keep the old open behavior, set auth: {enabled: false}. See the README "From 0.7 to 0.8" notes.

Safety (unchanged)

  • Default mode stays observe. Inject still requires mode: inject, an allowlist, the configured community + NO_EXPORT, the max_improvements cap, and hold time/thresholds. IXP mode never announces.
  • Packeteer never announces a prefix that is not in the learned RIB view.
  • BGP behavior in this release is lab-proven only (simulated routers in CI, documentation prefixes and private ASNs), not on a public edge.

Image: ghcr.io/grandarcher/packeteer:0.8.0 (also :0.8 and :latest once the publish workflow finishes). See CHANGELOG.md for details.

What's Changed

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@GrandArcher GrandArcher released this 15 Oct 10:26

Packeteer v0.7.0 adds exchange (IX) visibility and the UI pages that were still open from the v0.6 review, all read-only or observe-safe.

Highlights

  • Exchanges (#148, #149, #152, #154, #155, #156): an exchange view on Providers & Exchanges, IX LAN health probes per peer next hop with exchange.degraded/recovered events, route-server vs bilateral prefix views, a transit-to-IX offload report, a potential-peers report, and discovered LAN members you can accept as draft peers.
  • UI (#172, #174, #177, #178, #182, #184, #211): top bar search, Commit & Cost, Reports with CSV/XLSX export, maintenance windows on Policies, chart widgets and grid layout on dashboards, a System page, and link-outs to HE, RIPEstat, PeeringDB, bgp.tools, Radar, IRR Explorer and opt-in NLNOG RING.
  • Safety docs and tests (#210, #235): steering precedence with pairwise interaction tests, and per-vendor export-deny guides for packeteer_community.
  • Code health (#236): config.go, main.go and policy.go split into per-concern files; behavior unchanged.

Safety (unchanged)

  • Default mode stays observe. Inject still requires mode: inject, an allowlist, the configured community + NO_EXPORT, the max_improvements cap, and hold time/thresholds.
  • Packeteer never announces a prefix that is not in the learned RIB view.
  • BGP behavior in this release is lab-proven only (simulated routers in CI, documentation prefixes and private ASNs), not on a public edge.

Image: ghcr.io/grandarcher/packeteer:0.7.0 (also :0.7 and :latest once the publish workflow finishes). See CHANGELOG.md for details.

What's Changed

Full Changelog: v0.6.0...v0.7.0

Verifying upgrades

Release binaries are covered by SHA256SUMS; SHA256SUMS.sig is a base64 Ed25519 signature over SHA256SUMS. To use the Settings upgrade (#196), pin the release public key (not a secret):

upgrade:
  enabled: true
  public_key: "xbP7Os7YIqfBhu36+E+WK0xvTizFyPROA1QCAseqEkA="

A release whose signature or checksum does not verify is never switched to. See CONFIG.md.

v0.6.0

Choose a tag to compare

@GrandArcher GrandArcher released this 13 Oct 13:24

Packeteer v0.6.0 closes the gaps found in the 2026-10-07 review of prefix selection, measurement, and the UI, and adds hardening across every steering surface.

Highlights

  • Prefix selection and measurement (#113, #116–#121, #123–#125): probe targets as candidates, host qualification by reply count and RTT spread, a remembered prober per host, indirect probing for silent targets, RTT thresholds with confirm rounds, and flow volume floors.
  • Scale (#125, #217): the probe scheduler and load budgets grow with table size, up to a 5M-path large profile, and caps are metered.
  • UI (#126, #129–#131, #170–#183, #196, #226): a left-nav shell with a page per area, sign-in, users and tokens, events and audit, time-series graphs, a paginated prefix list, settings forms for every source and policy, a manual probe, and upgrade and rollback from Settings.
  • Live apply (#128, #233): thresholds, policies, sources, and inbound and mitigation settings apply on reload without a restart. A shrunk allowlist withdraws on the wire.
  • Safety additions: flap quarantine (#228), leak watch (#199, partial), exchange peering LANs are excluded from probing and the allowlist (#145), and a failure-mode e2e matrix across outbound, more-specific, inbound, mitigation, and HA (#234).
  • Repo hygiene (#223, #240): lint, staticcheck/deadcode, and security scanning in CI.

Safety (unchanged)

  • Default mode stays observe. Inject still requires mode: inject, an allowlist, the configured community + NO_EXPORT, the max_improvements cap, and hold time/thresholds.
  • Packeteer never announces a prefix that is not in the learned RIB view. The opt-in synthesized more-specific block (#122) is not in this release.
  • Packeteer-originated routes are withdrawn on shutdown, SIGTERM, probe-source loss, stale data, or RIB session loss. No graceful restart.
  • BGP behavior in this release is lab-proven only (simulated routers in CI, documentation prefixes and private ASNs), not on a public edge.

Image: ghcr.io/grandarcher/packeteer:0.6.0 (also :0.6 and :latest once the publish workflow finishes). See CHANGELOG.md for details.

What's Changed

Read more

v0.5.0

Choose a tag to compare

@GrandArcher GrandArcher released this 01 Oct 23:10
bd3ddee

Packeteer v0.5.0 is hardening and polish on the v0.4 matrix (#49–#53). Field feedback from real observe-mode deployments (#54) stays open and is not part of this tag.

Highlights

  • UI/UX polish (#49): dashboard mode banner, overview tiles, setup checklist, empty and error states. mode defaults to observe when the key is omitted.
  • Install and router guides (#50): single-container quickstart, observe → suggest → inject walkthrough, troubleshooting, and MikroTik, FRR, Junos, and Cisco guides. Quickstart, troubleshooting, and the simulated-edge walkthrough run in CI.
  • Load and soak budgets (#51): full-table synthetic RIB, high flow rate, published memory and CPU budgets, and a flow-ingest fix when that window is full.
  • MikroTik CHR in QEMU (#52): RouterOS iBGP lab on GitHub runners. Community + NO_EXPORT, no export to eBGP, and withdraw on SIGTERM, the hold timer, and SIGKILL.
  • Router interop matrix (#53): FRR, BIRD 2/3, GoBGP, and CHR against iBGP, add-path, and BMP where the daemon supports it. Scheduled CI.

Safety (unchanged)

  • Default mode stays observe. Inject still requires mode: inject, an allowlist, the configured community + NO_EXPORT, the max_improvements cap, and hold time/thresholds.
  • Packeteer never announces a prefix that is not in the learned RIB view.
  • Packeteer-originated routes are withdrawn on shutdown, SIGTERM, probe-source loss, stale data, or RIB session loss. No graceful restart.
  • BGP behavior in this release is lab-proven only (simulated routers in CI, documentation prefixes and private ASNs), not on a public edge.

Image: ghcr.io/grandarcher/packeteer:0.5.0 (also :0.5 and :latest once the publish workflow finishes). See CHANGELOG.md for details.

What's Changed

  • #49 first-run dashboard: overview, setup checklist, empty/error states, UI e2e smoke by @GrandArcher in #91
  • #50 CI-tested quickstart, observe→suggest→inject walkthrough, troubleshooting, and router guides by @GrandArcher in #92
  • #51 full-table load test and soak with published budgets; fix flow ingest by @GrandArcher in #93
  • #52 RouterOS CHR in QEMU CI accepts, filters, and drops Packeteer routes by @GrandArcher in #94
  • #53 router interop matrix: FRR, BIRD 2/3, GoBGP x iBGP, add-path, BMP (scheduled CI) by @GrandArcher in #95
  • #31 harden HA active/standby daemon test against flake by @GrandArcher in #96
  • #97 harden load soak RSS growth check against CI noise by @GrandArcher in #98
  • #49-#53 v0.5.0 release notes and pinned tag by @GrandArcher in #100

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@GrandArcher GrandArcher released this 30 Sep 22:04
9c757db

Packeteer v0.4.0 completes the v0.4 IRP-parity milestone (#30–#34).

Highlights

  • Multi-POP federation (#30): federated instances over mTLS, inter-DC RTT, multiple routing domains, global commit control.
  • Active/standby HA and backup (#31): lease-based elector, standby stays passive, config/history backup and restore.
  • RBAC, SSO, audit (#32): users, roles, API tokens, audit log, and OIDC SSO for the ops API.
  • Flow-baseline anomaly detection (#33): detects deviations from the learned flow baseline; mitigates only when an explicit rule matches, and never announces a prefix outside the learned RIB view.
  • Remaining UI parity (#34): improvement weights, validated config editor and setup wizard, custom dashboards, email report subscriptions.

Safety (unchanged)

  • Default mode stays observe. Inject still requires mode: inject, an allowlist, the configured community + NO_EXPORT, the max_improvements cap, and hold time/thresholds.
  • Packeteer-originated routes are withdrawn on shutdown, SIGTERM, probe-source loss, stale data, or RIB session loss. No graceful restart.
  • All new BGP behavior is lab-proven only (FRR/GoBGP in CI with documentation prefixes and ASNs), not on a public edge.

Image: ghcr.io/grandarcher/packeteer:0.4.0 (also :latest). See CHANGELOG.md for details.

What's Changed

  • #30 multi-POP federation with inter-DC RTT, global commit, and central view, lab-proven by @GrandArcher in #84
  • #31 active/standby HA with lease elector and config/history backup, lab-proven by @GrandArcher in #85
  • #32 users, RBAC, API tokens, audit log, and OIDC SSO for the ops API by @GrandArcher in #86
  • #33 flow-baseline anomaly detection that mitigates only on explicit rules, lab-proven by @GrandArcher in #88
  • #34 improvement weights, validated config editor and wizard, custom dashboards, email report subscriptions by @GrandArcher in #89
  • #30-#34 v0.4.0 release notes and pinned tag by @GrandArcher in #90

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@GrandArcher GrandArcher released this 30 Sep 03:32
ab4c741

Packeteer v0.3.0 adds inbound commit control and steering, BMP and add-path support, and support for multiple routers, route reflectors, and IX deployments.

It also adds RTBH and FlowSpec mitigation, transit classification, and more-specific injection (capped, off by default, and limited to prefixes learned exactly in the RIB).

The safety gate is unchanged: default mode is observe.

Stock image: ghcr.io/grandarcher/packeteer:0.3.0

v0.2.0

Choose a tag to compare

@GrandArcher GrandArcher released this 29 Sep 00:03
54f76ff

Packeteer v0.2.0 completes the v0.2 milestone (#15–#24): advanced probing, AS-pattern outage detection, SNMP/95th telemetry, commit control and cost mode, routing policies and maintenance windows, passive problem detection, notifier plugins, reports/history, and read-only troubleshooting tools (looking glass, on-demand probe, traceroute, RDAP whois).

Safety gate unchanged: default mode: observe, lab inject only for allowlisted documentation prefixes, crash-withdraw covered by e2e. Stock image: ghcr.io/grandarcher/packeteer:0.2.0 (also :latest after publish).

What's Changed

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@GrandArcher GrandArcher released this 25 Sep 08:03
defba59

Packeteer v0.1.0

First installable release of Packeteer, an open-source BGP path performance controller (observe by default).

Install (pinned)

curl -fsSLo config.yaml https://raw.githubusercontent.com/GrandArcher/Packeteer/main/config.example.yaml
# Edit providers and source IPs. Leave mode: observe.
mkdir -p plugins
IMAGE=ghcr.io/grandarcher/packeteer:0.1.0

docker run --rm \
  -v "$PWD/config.yaml:/etc/packeteer/config.yaml:ro" \
  "$IMAGE" -check

docker run -d --name packeteer --network host \
  --cap-add NET_RAW --cap-add NET_ADMIN \
  --restart unless-stopped \
  -v "$PWD/config.yaml:/etc/packeteer/config.yaml:ro" \
  -v "$PWD/plugins:/etc/packeteer/plugins:ro" \
  "$IMAGE"

Dashboard (default): http://127.0.0.1:8080/

What's in

  • GoBGP/ExaBGP-style iBGP announcer with allowlist, community + NO_EXPORT, caps, hold/hysteresis
  • FRR Docker lab + e2e CI (announce, withdraw, SIGKILL crash-withdraw)
  • Flow-based target discovery
  • Read-only ops HTTP: healthz/readyz, Prometheus metrics, JSON API, embedded dashboard
  • Safety fixes: RIB leave withdraw, exact learned prefix only, stale-round withdraw, hold-timer e2e
  • Operator quick start, CONFIG.md, CHANGELOG

Safety gate (BOT.md)

Stock image and examples stay mode: observe. Lab inject uses documentation prefix 198.51.100.0/24 only. Unit, docker, and BGP e2e green on main.

What's Changed

New Contributors

Full Changelog: https://github.com/GrandArcher/Packeteer/commits/v0.1.0