pub struct Uplink { /* private fields */ }Expand description
An individual network uplink.
Implementations§
Source§impl Uplink
impl Uplink
Sourcepub fn new(config: UplinkConfig, numeric_id: u16) -> Self
pub fn new(config: UplinkConfig, numeric_id: u16) -> Self
Create a new uplink.
Sourcepub fn numeric_id(&self) -> u16
pub fn numeric_id(&self) -> u16
Get the numeric ID (for packet headers).
Sourcepub fn config(&self) -> &UplinkConfig
pub fn config(&self) -> &UplinkConfig
Get the configuration.
Sourcepub fn state(&self) -> UplinkState
pub fn state(&self) -> UplinkState
Get current state.
Sourcepub fn health(&self) -> UplinkHealth
pub fn health(&self) -> UplinkHealth
Get health status.
Sourcepub fn priority_score(&self) -> u32
pub fn priority_score(&self) -> u32
Get the priority score.
Sourcepub fn loss_ratio(&self) -> f64
pub fn loss_ratio(&self) -> f64
Get packet loss ratio.
Sourcepub fn stats(&self) -> TrafficStats
pub fn stats(&self) -> TrafficStats
Get traffic statistics.
Sourcepub fn set_transport(&self, transport: Arc<dyn Transport>)
pub fn set_transport(&self, transport: Arc<dyn Transport>)
Set the transport.
Sourcepub fn get_transport(&self) -> Option<Arc<dyn Transport>>
pub fn get_transport(&self) -> Option<Arc<dyn Transport>>
Get the transport (cloned Arc).
Sourcepub fn set_noise_session(&self, session: NoiseSession)
pub fn set_noise_session(&self, session: NoiseSession)
Set the noise session.
Sourcepub async fn send_raw(&self, data: &[u8]) -> Result<usize>
pub async fn send_raw(&self, data: &[u8]) -> Result<usize>
Send raw data through the transport (no encryption).
Sourcepub async fn send_encrypted(&self, data: &[u8]) -> Result<usize>
pub async fn send_encrypted(&self, data: &[u8]) -> Result<usize>
Send encrypted data through the transport. Returns the number of bytes sent (original data size).
Sourcepub async fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
pub async fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
Receive data from transport with source address.
Sourcepub fn is_noise_ready(&self) -> bool
pub fn is_noise_ready(&self) -> bool
Check if the noise session is ready for transport.
Sourcepub fn encrypt(&self, data: &[u8]) -> Result<Vec<u8>>
pub fn encrypt(&self, data: &[u8]) -> Result<Vec<u8>>
Encrypt data (get ciphertext without sending).
Sourcepub fn set_connection_state(&self, state: ConnectionState)
pub fn set_connection_state(&self, state: ConnectionState)
Update connection state.
Sourcepub fn record_send(&self, bytes: usize)
pub fn record_send(&self, bytes: usize)
Record a successful send.
Sourcepub fn record_recv(&self, bytes: usize)
pub fn record_recv(&self, bytes: usize)
Record a successful receive.
Sourcepub fn record_rtt(&self, rtt: Duration)
pub fn record_rtt(&self, rtt: Duration)
Record an RTT measurement.
Sourcepub fn record_loss(&self)
pub fn record_loss(&self)
Record a packet loss.
Sourcepub fn record_failure(&self, error: &str)
pub fn record_failure(&self, error: &str)
Record a failure.
Sourcepub fn record_success(&self)
pub fn record_success(&self)
Record a successful operation (resets failure counter).
Sourcepub fn periodic_update(&self)
pub fn periodic_update(&self)
Periodic update (call from timer).
Sourcepub fn quality_metrics(&self) -> QualityMetrics
pub fn quality_metrics(&self) -> QualityMetrics
Get quality metrics.
Sourcepub fn connection_params(&self) -> ConnectionParams
pub fn connection_params(&self) -> ConnectionParams
Get comprehensive connection parameters for throughput optimization. This provides all metrics needed to make intelligent routing decisions.
Sourcepub fn send_bandwidth(&self) -> Bandwidth
pub fn send_bandwidth(&self) -> Bandwidth
Get send bandwidth.
Sourcepub fn recv_bandwidth(&self) -> Bandwidth
pub fn recv_bandwidth(&self) -> Bandwidth
Get receive bandwidth.
Sourcepub fn rtt_variance(&self) -> Duration
pub fn rtt_variance(&self) -> Duration
Get RTT variance (jitter).
Sourcepub fn external_addr(&self) -> Option<SocketAddr>
pub fn external_addr(&self) -> Option<SocketAddr>
Get the external address (after NAT translation).
Sourcepub fn nat_detection_state(&self) -> NatDetectionState
pub fn nat_detection_state(&self) -> NatDetectionState
Get NAT detection state for advanced operations.
Sourcepub fn update_nat_state<F, R>(&self, f: F) -> Rwhere
F: FnOnce(&mut UplinkNatState) -> R,
pub fn update_nat_state<F, R>(&self, f: F) -> Rwhere
F: FnOnce(&mut UplinkNatState) -> R,
Update NAT state with access to mutable reference.
Sourcepub fn reset_nat_state(&self)
pub fn reset_nat_state(&self)
Reset NAT detection state.