Skip to content

docs(bgp): specify bounded scrubber diversion contract - #322

Merged
lance0 merged 8 commits into
mainfrom
docs/scrubber-diversion-contract
Oct 24, 2026
Merged

lance0 merged 8 commits into
mainfrom
docs/scrubber-diversion-contract

Conversation

@lance0

@lance0 lance0 commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Specify the prerequisite speaker contract for redirect-to-IP scrubber diversion after source-prefix matching shipped in #307. The released rustbgpd 0.79.0 boundary lacks the complete action/read-back, bounded queued-mutation and admission-fenced deletion contract required here.

The proposal covers canonical IPv4/IPv6 action vectors, expiring server authorization, independent profile owners, durable pending-add barriers and delete revision fencing. Fourteen qualification cases include late adds, late deletes after key reuse with live siblings, rollback, observation failures and separate local/forwarding removal evidence.

Both review findings are fixed. Independent source review cross-checked the released contract and wire references; the third bounded automated review recommends approval with no open issues. Links, vectors and patch hygiene pass. Both exact-head CI runs for f487f98 now pass all 11 checks; the PR is clean and ready for review.

Documentation only: this enables no action and leaves ADR 030 Proposed. Runtime support, readiness/re-arm and router/scrubber qualification remain future work.

This PR targets #327 and contains only contract documentation. Merge order: #323 → #327 → #322 → #324 → #325 → #326. Use merge commits; after the predecessor lands, retarget the next PR to main before merging.

Refs #305.

@lance0
lance0 changed the base branch from main to fix/ctutils-constant-time October 23, 2026 09:06
@lance0
lance0 requested a balanced review from Copilot October 23, 2026 09:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The contract needs a withdrawal barrier so still-authorized delayed adds cannot recreate rules after withdrawal is declared complete.

1 open issue
What changed in this PR

This documentation-only PR defines the speaker contract needed for guarded redirect-to-IP scrubber diversion, extending ADR 030 without enabling runtime behavior.

Changes:

  • Records released API gaps, canonical IPv4/IPv6 action vectors and rollback requirements.
  • Proposes bounded mutation windows and qualification cases for delayed requests, ownership and forwarding removal.
  • Links the plan from the roadmap, documentation index and ADR 030.
File Description
ROADMAP.md Links the prerequisite speaker contract plan.
docs/​README.md Adds the plan to the documentation index.
docs/​project/​scrubber-diversion-contract.md Defines proposed action, authorization and qualification requirements.
docs/​adr/​030-scrubber-diversion.md Connects the plan to the speaker-contract implementation slice.

Review effort: Balanced

Comment thread docs/project/scrubber-diversion-contract.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The proposed withdrawal barrier leaves delayed deletes able to remove newly admitted diversion under the same owner.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread docs/project/scrubber-diversion-contract.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation clearly separates proposed contracts from implemented capabilities, with no unresolved blocking findings.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@lance0
lance0 marked this pull request as ready for review October 24, 2026 04:14
@lance0
lance0 changed the base branch from chore/retire-hey-harness to main October 24, 2026 14:48
@lance0
lance0 merged commit ba88ec9 into main Oct 24, 2026
23 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants