Skip to content

client: support incremental multicast group subscription#3397

Draft
snormore wants to merge 1 commit intomainfrom
snor/incremental-multicast-subscribe
Draft

client: support incremental multicast group subscription#3397
snormore wants to merge 1 commit intomainfrom
snor/incremental-multicast-subscribe

Conversation

@snormore
Copy link
Copy Markdown
Contributor

Summary

  • Remove CLI guard that blocked doublezero connect multicast when a multicast service was already running — the onchain subscribe instruction, CLI user-subscribe logic, and daemon's InfraEqual + UpdateGroups path already support incremental group additions without tearing down the tunnel
  • Update e2e and QA multicast tests to exercise incremental subscription: publish-after-publish, subscribe-after-subscribe, and cross-role publish-after-subscribe (triggers daemon reprovision)
  • Improve e2e test ergonomics: add Make targets (test-debug, test-nobuild, test-keep, test-cleanup), rename DZ_E2E_DEBUG to DEBUG, update scripts and docs

Diff Breakdown

Category Files Lines (+/-) Net
Core logic 1 +0 / -17 -17
Tests 3 +56 / -19 +37
Config/build 4 +75 / -23 +52
Docs 2 +33 / -16 +17

Mostly test and build ergonomics; the core change is a 17-line deletion.

Key files (click to expand)
  • client/doublezero/src/command/connect.rs — removed guard that rejected connect when multicast service already running
  • e2e/main_test.go — added AddMulticastPublisherGroupSkipAccessPass and AddMulticastSubscriberGroupSkipAccessPass helpers, renamed debug env var
  • e2e/multicast_test.go — publisher and subscriber both connect incrementally (mg01 first, then add mg02)
  • e2e/qa_multicast_test.go — Phase 2: incremental subscribe-after-subscribe; Phase 3: incremental publish-after-subscribe (cross-role)
  • e2e/Makefile — new targets: test-debug, test-nobuild, test-keep, test-keep-nobuild, test-cleanup
  • Makefile — top-level e2e-test-* targets that forward to e2e/Makefile

Testing Verification

  • Deployed snapshot to chi-dn-bm2 and verified incremental multicast group addition works end-to-end
  • TestE2E_Multicast e2e test passes with incremental publish-after-publish and subscribe-after-subscribe
  • TestQA_MulticastPublisherMultipleGroups QA test passes with incremental subscribe-after-subscribe (Phase 2) and publish-after-subscribe cross-role (Phase 3)
  • All 35 existing doublezero crate connect/disconnect unit tests pass

@snormore snormore force-pushed the snor/incremental-multicast-subscribe branch from 15c450b to 6c668b8 Compare March 28, 2026 20:27
Remove the guard in the CLI that blocked `doublezero connect multicast`
when a multicast service was already running. The onchain subscribe
instruction, CLI's find_or_create_user_and_subscribe, and daemon's
InfraEqual + UpdateGroups path already support incremental group
additions without tearing down the tunnel.

Also improve e2e test ergonomics:
- Add Make targets: test-debug, test-nobuild, test-keep, test-cleanup
- Rename DZ_E2E_DEBUG env var to DEBUG for consistency with shreds repo
- Update dev/e2e-test.sh and dev/e2e-until-fail.sh to use Make
- Update CLAUDE.md and DEVELOPMENT.md with new Make target usage
@snormore snormore force-pushed the snor/incremental-multicast-subscribe branch from 6c668b8 to 49d10ef Compare March 28, 2026 20:27
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.

1 participant