Skip to main content

ClientConfig

Struct ClientConfig 

Source
#[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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§auth: Auth

Authentication and corresponding SNMP version (default: V2c “public”).

§decode_config: DecodeConfig

Bounded response-decoding compatibility (default: permissive).

One snapshot governs transport correlation, complete community messages, and every staged V3 decode.

§community_response_policy: CommunityResponsePolicy

Policy for correlating v1/v2c response communities (default: exact).

§request_timeout: Duration

Request 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: Duration

Standalone 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: Retry

Retry configuration (default: 3 retries, 1-second delay)

§max_oids_per_request: usize

Maximum OIDs per request (default: 10)

§response_shape_policy: ResponseShapePolicy

Fixed-cardinality response-shape policy (default: compatible).

§allow_unauthenticated_v3_time_correction: bool

Permit 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: WalkOptions

Default walk method, repetitions, ordering, and result limit.

§local_authoritative_engine: Option<AuthoritativeEngine>

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

Source§

fn clone(&self) -> ClientConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClientConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ClientConfig

Source§

fn default() -> Self

Returns configuration for SNMPv2c with community “public”.

See field documentation for all default values.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more