Expand description
Channel padding
Tor spec padding-spec.txt section 2.
§Overview of channel padding control arrangements
-
tor_chanmgr::mgr::mapcollates information about dormancy, netdir, and overall client configuration, to maintain aChannelPaddingInstructionswhich is to be used for all relevant1 channels. This is distributed to channel frontends (Channels) by callingChannel::reparameterize. -
Circuit and channel
get_or_launchmethods all take aChannelUsage. This is plumbed through the layers toAbstractChanMgr::get_or_launch, which passes it to the channel frontend viaChannel::note_usage. -
The
Channelcollates this information, and maintains an idea of whether padding is relevant for this channel (PaddingControlState). For channels where it is relevant, it sendsCtrlMsg::ConfigUpdateto the reactor. -
The reactor handles
CtrlMsg::ConfigUpdateby reconfiguring is padding timer; and by sending PADDING_NEGOTIATE cell(s).
A “relevant” channel is one which is not excluded by the rules about padding in padding-spec 2.2. Arti does not currently support acting as a relay, so all our channels are client-to-guard or client-to-directory. ↩
Structs§
- Parameters
- Timing parameters, as described in
padding-spec.txt - Parameters
Builder - Builder for
Parameters.
Enums§
- Parameters
Error - An error that occurred whil e constructing padding parameters.