pub struct Integration {
pub action_delay: BinDist,
pub reporting_delay: BinDist,
pub trigger_delay: BinDist,
}
Expand description
Represents a Maybenot integration and its associated delays. This can happen in the case of Maybenot being integrated, e.g., in user space with a protocol running in kernel space.
Fields§
§action_delay: BinDist
The action delay is the time between the integration taking action and the action happening. For example, if a padding packet is to be sent, user space might need to signal to kernel space to craft one. NOTE: we assume that the PaddingSent event is triggered directly as padding is sent from Maybenot, while we assume that the BlockingBegin event is triggered when the blocking actually begins in the protocol and the event is transported with a reporting delay.
reporting_delay: BinDist
The reporting delay is the time between an event being created by the integrated protocol and the event being reported (trigger_events) to Maybenot. For example, this could be the time it takes to go from kernel space to user space.
trigger_delay: BinDist
The trigger delay is the time it takes for the integration to perform a scheduled action. For example, suppose an action is scheduled for time T. In that case, the trigger delay is added to T. This is important for capturing async integrations, where a zero timeout on an action to send padding would still take some (tiny) time to execute.
Implementations§
Source§impl Integration
impl Integration
pub fn action_delay(&self) -> Duration
pub fn reporting_delay(&self) -> Duration
pub fn trigger_delay(&self) -> Duration
Trait Implementations§
Source§impl Clone for Integration
impl Clone for Integration
Source§fn clone(&self) -> Integration
fn clone(&self) -> Integration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more