#[non_exhaustive]pub struct ClientConfig {Show 13 fields
pub auth: Auth,
pub decode_config: DecodeConfig,
pub community_response_policy: CommunityResponsePolicy,
pub request_timeout: Duration,
pub exchange_timeout: Option<Duration>,
pub send_timeout: Duration,
pub retry: Retry,
pub max_oids_per_request: usize,
pub response_shape_policy: ResponseShapePolicy,
pub allow_unauthenticated_v3_time_correction: bool,
pub walk_options: WalkOptions,
pub local_authoritative_engine: Option<AuthoritativeEngine>,
pub des_salt_state: Option<DesSaltState>,
/* private fields */
}Expand description
Client configuration.
Most users should use ClientBuilder rather than constructing this directly.
Authentication selects the protocol version, so contradictory configurations
such as an SNMPv3 version without USM credentials are not representable.
use async_snmp::{ClientConfig, Version};
let _ = ClientConfig {
version: Version::V3,
v3_security: None,
..ClientConfig::default()
};Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.auth: AuthAuthentication and corresponding SNMP version (default: V2c “public”).
decode_config: DecodeConfigBounded response-decoding compatibility (default: permissive).
One snapshot governs transport correlation, complete community messages, and every staged V3 decode.
community_response_policy: CommunityResponsePolicyPolicy for correlating v1/v2c response communities (default: exact).
request_timeout: DurationRequest timeout (default: 5 seconds)
exchange_timeout: Option<Duration>Optional timeout for one complete logical exchange (default: none).
This includes timeout retransmissions, retry backoff, transport queueing and registration, writes, rejected candidates, and response waits. SNMPv3 discovery and the following ordinary request are separate exchanges and each receives its own deadline.
send_timeout: DurationStandalone send timeout (default: 5 seconds).
This bounds unconfirmed notifications across transport queueing and
write I/O. Confirmed requests continue to use Self::request_timeout.
retry: RetryRetry configuration (default: 3 retries, 1-second delay)
max_oids_per_request: usizeMaximum OIDs per request (default: 10)
response_shape_policy: ResponseShapePolicyFixed-cardinality response-shape policy (default: compatible).
allow_unauthenticated_v3_time_correction: boolPermit one packet-local correction from an unauthenticated
usmStatsNotInTimeWindows Report on an authenticated V3 operation.
This is disabled by default because the Report’s boots/time tuple is unauthenticated and can cause one authenticated packet to be sent with attacker-selected time fields. The tuple is never stored as trusted engine state; only a subsequent authenticated, fully matched Response may advance that state.
walk_options: WalkOptionsDefault walk method, repetitions, ordering, and result limit.
Local authoritative engine state for V3 trap sending (default: None).
Per RFC 3412 Section 6.4, the sender is authoritative for trap PDUs.
Construct this through the persistence-enforcing
AuthoritativeEngine API.
des_salt_state: Option<DesSaltState>Durable local generating-engine state required by DES and 3DES.
Trait Implementations§
Source§impl Clone for ClientConfig
impl Clone for ClientConfig
Source§fn clone(&self) -> ClientConfig
fn clone(&self) -> ClientConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more