Skip to main content

Module proxy

Module proxy 

Available on crate features quic and std only.
Expand description

QUIC interception: inspect an association’s Initial flight, then forward it untouched or terminate it and relay the established connections.

Structs§

AdmissionStats
What a QuicAssociationAdmission refused, and how inspection of admitted associations ended when it was refused too, since it was created.
AssociationKey
The addresses an association is fixed to. Its egress target is not part of it: other targets do not make the same incoming datagrams distinguishable.
AssociationLimits
Bounds applied before any datagram of an association is inspected. A source is an IPv4 address or an IPv6 /64.
AssociationPermit
An admitted association. Dropping it releases its slot and quarantines its addresses; its start stays counted.
InputWithQuicClientHello
The input handed on after a complete QUIC ClientHello was found in the client’s Initials.
NoQuicPeekRouting
Default inspection behavior: no cross-association routing.
NoQuicRejectError
The fallback’s default rejection: the association carried no complete QUIC ClientHello.
PeekQuicClientHelloService
Inspects the first datagrams of a UDP association for a QUIC client’s Initial flight and its ClientHello, then hands the association on with those datagrams replayed in front.
QuicAdmissionLayer
Admits each association before its inner service, usually a PeekQuicClientHelloService, inspects it, and holds the permit until that service is done.
QuicAdmissionService
The service a QuicAdmissionLayer produces.
QuicAssociationAdmission
Admission shared, by cloning, by every producer and listener of one policy domain.
QuicEgressMigration
Common egress-only policy: ask a factory initially, and when a trusted network update or validated ingress move requires another transport. The factory returns None to retain the old one. Its own egress move does not recursively trigger another replacement.
QuicMigrationConfig
QuicMigrationDecision
Decisions are independent. Keeping ingress while replacing egress is an ordinary case. A transparent ingress backed by QuicMitmIngress accepts Keep or Refresh. Replace is refused: platform paths must join its existing aggregate through the ingress router.
QuicMigrationInput
Current connection handles and latest trusted network state for policy evaluation.
QuicMigrationLayer
Supervise an established QUIC relay with a normal Rama policy service.
QuicMigrationService
QuicMirrorCeiling
What a mirrored client may make the relay hold on its egress connection (QuicMitmRelay::with_mirror_client): larger receive windows and stream counts are lowered to these, and the change is traced.
QuicMitmIngress
Coordinate migration between platform flows without sharing connection endpoints.
QuicMitmIngressByIdentity
Reusable transparent-proxy ingress registry, keyed by the caller’s trusted policy identity.
QuicMitmIngressByIdentityConfig
Bounds for a collection of independent interception policy identities.
QuicMitmIngressConfig
Resource bounds for one trusted migration-routing identity. No payload queue is introduced.
QuicMitmRelay
Terminates a QUIC association whose ClientHello was peeked, using the egress socket the producer prepared for its origin: the QUIC counterpart of the TLS MITM relay.
QuicMitmRelayService
The service a QuicMitmRelay layer produces.
QuicMitmRoute
A terminal route decision for one new transport path of an existing connection.
QuicNetworkChanges
A bounded, coalescing source of trusted network/interface/policy changes.
QuicNetworkPath
Latest trusted platform state for one side. Extensions carry platform/policy metadata.
QuicNetworkSnapshot
Full latest state, so coalescing notifications never loses one side’s update.
QuicPeekFallbackPolicy
Which QuicPeekRejections reach the fallback; any other fails the association with QuicPeekRejectedError.
QuicPeekRejectedError
An association refused because its peek ended in a class the fallback policy does not admit.
QuicRelay
Relay dedicated QUIC connections through Rama’s ordinary service boundary.
QuicTransportReplacement
An owned, prepared transport. No application bytes are copied or replayed by replacement. Preparing it does not change a connection; the supervisor applies the latest decision.

Enums§

AdmissionError
Why an association was not admitted. A refusal consumes no slot and no start.
QuicMigrationFailureAction
What to do when policy evaluation, its deadline or transport replacement fails.
QuicMigrationSide
Which independently terminated side a policy is considering.
QuicMigrationTrigger
QuicNetworkAvailability
Platform reachability, independent of QUIC’s authenticated path validation.
QuicPathAction
QuicPeekRejection
Why a QUIC peek found no complete ClientHello. A fallback receives this detail in its extensions. For the current inspection outcome, including a cleared failure after a later successful or non-QUIC peek, use ClientHelloPeekStatus.

Constants§

DEFAULT_QUIC_MITM_HANDSHAKE_TIMEOUT
The default for QuicMitmRelay::with_handshake_timeout.
DEFAULT_QUIC_PEEK_LIMITS
Default live-inspection budgets. A 256 KiB ClientHello has room for packet overhead, fragmentation and retransmissions within 1 MiB of datagrams. These apply before dispatch; they do not change capture or endpoint admission limits.
DEFAULT_QUIC_PEEK_TIMEOUT
The default for PeekQuicClientHelloService::with_peek_timeout: one handshake flight over a slow path, short enough that a silent client cannot hold an inspection open.

Traits§

QuicPeekRoute
Owns the selected endpoint/path decision until the association ends.
QuicPeekRouter
Optional first-datagram routing, sharing inspection’s deadline and receive buffer. A positive decision is terminal: subsequent rejection must never invoke fallback policy.