Repository navigation
row 132 (piece 2): connector datagram driver presents the keying-material item (accepting side) - #819
Merged
4 commits merged intoOct 14, 2026
Merged
4 commits merged into
4 commits merged into
Conversation
…, verified, and sends only where the secure layer allows (row 132, piece 2) One association's datagram framer, driven over the host's dtls engine with the datagram lane on every call (THE DESIGN l.758-766): paths are host numbers, told once, and only for addresses the secure layer knows; the rendezvous terms build the association; the exported keying material crosses once, on a call whose lane says the far end is verified, and is dropped (zeroed) after it; clear routes leave only where may_send_clear allows, secured routes are sealed to the bound path; path requests bind only a proven path. Every answer is judged by check_datagram before a byte of it is used. Sans-IO; accepting side. Tests (src/tests/datagram_tests.rs), a scripted framer over a real ring handshake against a second dtls engine: the item crosses exactly once, verified, equal to the far end's export (RED: never or every call); a spoofed source never reaches the framer (RED: the honest check does); a rebind to an unanswered path is not applied and a non-answer clear route is dropped (RED: answered, it binds); a lane-breaking answer is a FAULT.
…send_answered, not a fn named route (kind-isolation:control-path) The connector is a control surface and runs no data-path step; the driver's helper only sends a datagram the framer answered where the secure layer allows it, so it no longer borrows the kernel's route-step name.
This was referenced Oct 13, 2026
Merged
…read; the scripted framer's seen path is asserted (row 132, #827 compile red) E0502 at datagram.rs:872 on #827, the first compile of this code: fingerprint.copy_from_slice( span(..)?.get(..fingerprint.len())) borrowed the array mutably for the call while its length was read in the argument. The stated span is read and bounded first, then copied. The datagram tests' Seen.path was recorded and never read (dead_code under clippy -D warnings). The honest-check arm of a_source_that_sent_no_verified_check_never_reaches_the_framer now asserts the check crossed on the clear lane under path 1, the number it was told under.
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…n path) into lane-webrtc-terminate-dial
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…ane-webrtc-terminate-port
…g_self_convention, row 132) clippy -D warnings refused `fn into_host(&mut self, ..)`: an into_* method takes self by value. The rig hands one datagram to the host; deliver says so and names no conversion. Every call site is renamed; nothing else changes.
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…brtc-terminate-port; the port tests' calls renamed with it
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.
Status row 132, piece 2 of 6: the connector's datagram driver. It presents the keying-material item to the webrtc framer (#795). This PR covers the accepting side; the dialling side and its candidate admission come next, in their own PR, under the ARCHITECT's row-132 ruling.
What
busbar-core-connector::datagram::DatagramFramingdrives one association's datagram framer over the host's dtls engine (dtls::Association). Every call carries the datagram lane (abi::transport::datagram).verified = 1. It is then dropped, which zeroes it.may_send_clearallows. A secured route is sealed to the bound path. Anything else is dropped and counted.check_datagrambefore any byte of it is used.no_io_outside_hostiois unaffected.Small additions:
dtls:SrtpProfile::code(RFC 7714 registry code),Association::peer_verified,Association::knows.framer:Bufferssink/take andreadyare nowpub(crate).Why
RED-able tests
In
crates/busbar-core-connector/src/tests/datagram_tests.rs, a scripted framer runs over a real ring DTLS handshake against a second dtls engine.Ledgers
None touched. There is no new crate edge and no new third-party dependency (
Cargo.lockis unchanged).