docs(cli): document ARP findings output is unbounded in --arp help [PC-015]#310
Merged
Conversation
…p [PC-015, BC-2.16.016] Adds long_help to the --arp clap arg in src/cli.rs documenting that ARP findings output is UNBOUNDED — no MAX_FINDINGS cap applies to the ARP analyzer path (contrast: HTTP/TLS/Modbus/DNP3 cap at 10,000 via TCP reassembly layer). Also clarifies that the ARP binding table cap (MAX_ARP_BINDINGS=65,536) and storm-counter table cap (MAX_STORM_COUNTERS=4,096) are memory bounds on internal state only and do not cap findings output. Documentation-surface fix only: no ARP analyzer behavior changed. Passes: test_BC_2_16_016_cli_help_documents_arp_findings_unbounded (Red Gate) Stays green: test_BC_2_16_016_arp_findings_vec_has_no_cap (characterization)
… [PC-015] - src/analyzer/arp.rs: mod bc_2_16_016 characterization test verifies ARP findings Vec has no MAX_FINDINGS cap (>10,000 findings with N=10,001 distinct IPs, spoof_threshold=1) - tests/bc_2_16_016_arp_tests.rs: integration Red Gate test asserts the word "unbounded" appears in wirerust analyze --help output for --arp flag Part of fix bundle fix-pc-013-014-015 / STORY-113 AC-022 / BC-2.16.016 v1.0.
Zious11
added a commit
that referenced
this pull request
Jun 24, 2026
PC-015 DELIVERED & MERGED. PR #310 "docs(cli): document ARP findings output is unbounded in --arp help [PC-015]" merged to develop at commit 2645139 (2026-06-24). All 10 CI checks green; clean code + security review. Anchored BC-2.16.016 v1.0 / BC-2.16.010 v1.8 → STORY-113 AC-022. Tests: test_BC_2_16_016_cli_help_documents_arp_findings_unbounded (Red Gate) + test_BC_2_16_016_arp_findings_vec_has_no_cap (characterization), passing. STATE.md changes (single-commit burst protocol): - phase: FIX-CYCLE-SPEC-DONE → FIX-CYCLE - phase_status: updated to reflect PC-015 DONE, PC-013/014 SPEC-DONE - develop_head: 0115d0e → 2645139 - factory_artifacts_head: a69d757 → eade774 - current_wave: updated (1 of 3 fixes delivered; PC-013 next) - Open Items: PC-015 → DONE (PR #310, develop 2645139) - Status: updated develop_head + PC-015 delivery note + test citations - Phase Progress: fix-pc-013-014-015 row → IN-PROGRESS (1/3 delivered) - GROUND-TRUTH HEADs: verified at D-222 - RESUME PROCEDURE: develop ref updated to 2645139 - Decisions Log: D-222 added - Resolved items: PC-015 added to resolved list No BC or story files touched (state-only burst).
This was referenced Jun 24, 2026
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes open item PC-015 from fix bundle
fix-pc-013-014-015.The
--arpflag inwirerust analyze --helppreviously contained only a one-line short description that made no mention of the unbounded findings behavior. This left operators unaware that analyzing adversarial or large captures with ARP could produce Vec growth proportional to triggering frames, with no platform-imposed cap.What changed
src/cli.rs— Addedlong_helpto the--arpclap argument documenting:src/analyzer/arp.rs— Addedmod bc_2_16_016characterization test verifying thatprocess_arpreturns >10,000 findings when processing 10,001 distinct IP rebinds (spoof_threshold=1), confirming no MAX_FINDINGS cap exists on the ARP path. Serves as a regression guard.tests/bc_2_16_016_arp_tests.rs— New integration test (Red Gate): asserts the word "unbounded" appears in the--arpflag's help entry inwirerust analyze --help. This test was the original Red Gate for PC-015 — it FAILED before this fix and PASSES afterlong_helpis added.BC Traceability
Traceability chain:
BC-2.16.016 PC4 (CLI help must document unbounded behavior) → AC-022 (STORY-113) →
src/cli.rs--arplong_help →tests/bc_2_16_016_arp_tests.rsRed GateF1 Finding Correction
The original F1 (PC-015) incorrectly flagged the ARP analyzer as having a hidden findings cap. The corrected finding: ARP has no findings cap at all — this is correct behavior (ARP operates at L2, bypassing TCP reassembly limits), but the absence of a cap was undocumented. This PR closes the documentation gap.
Test Evidence
All local gates pass on
fix/arp-findings-unbounded-help:Specific tests added/passing:
src/analyzer/arp.rs::bc_2_16_016::test_BC_2_16_016_arp_findings_vec_has_no_cap— characterization, all_findings.len() == 10,001 (>10,000), no cap appliedtests/bc_2_16_016_arp_tests.rs::bc_2_16_016::test_BC_2_16_016_cli_help_documents_arp_findings_unbounded— Red Gate integration test, asserts "unbounded" in --arp help textRisk Assessment
Blast radius: Documentation-only change to CLI help text + new tests. Zero behavior change. No production code paths altered beyond the
long_helpstring insrc/cli.rs.Risk level: Low. No logic changes; clap
long_helpis rendered only when user passes--help.Fix Bundle Context
This is item 3 of 3 in the
fix-pc-013-014-015bundle:Pre-Merge Checklist