pub struct Agent { /* private fields */ }Expand description
SNMP Agent.
Listens for and responds to SNMP requests (GET, GETNEXT, GETBULK, SET).
§Example
use async_snmp::agent::Agent;
use async_snmp::oid;
let agent = Agent::builder()
.bind("0.0.0.0:161")
.community(b"public")
.build()
.await?;
agent.run().awaitImplementations§
Source§impl Agent
impl Agent
Sourcepub fn builder() -> AgentBuilder
pub fn builder() -> AgentBuilder
Create a builder for configuring the agent.
Sourcepub fn local_addr(&self) -> SocketAddr
pub fn local_addr(&self) -> SocketAddr
Get the local address the agent is bound to.
Sourcepub fn cancel(&self) -> CancellationToken
pub fn cancel(&self) -> CancellationToken
Get the cancellation token for this agent.
Call token.cancel() to initiate graceful shutdown.
Sourcepub fn snmp_invalid_msgs(&self) -> u32
pub fn snmp_invalid_msgs(&self) -> u32
Get the snmpInvalidMsgs counter value.
This counter tracks messages with invalid msgFlags, such as privacy-without-authentication (RFC 3412 Section 7.2 Step 5d).
OID: 1.3.6.1.6.3.11.2.1.2
Sourcepub fn snmp_unknown_security_models(&self) -> u32
pub fn snmp_unknown_security_models(&self) -> u32
Get the snmpUnknownSecurityModels counter value.
This counter tracks messages with unrecognized security models (RFC 3412 Section 7.2 Step 2).
OID: 1.3.6.1.6.3.11.2.1.1
Sourcepub fn snmp_silent_drops(&self) -> u32
pub fn snmp_silent_drops(&self) -> u32
Get the snmpSilentDrops counter value.
This counter tracks confirmed-class PDUs (GetRequest, GetNextRequest, GetBulkRequest, SetRequest, InformRequest) that were silently dropped because even an empty Response-PDU would exceed the maximum message size constraint (RFC 3412 Section 7.1).
OID: 1.3.6.1.6.3.11.2.1.3
Sourcepub fn usm_unknown_engine_ids(&self) -> u32
pub fn usm_unknown_engine_ids(&self) -> u32
Get the usmStatsUnknownEngineIDs counter value.
This counter tracks messages with unknown engine IDs. Incremented when a non-discovery request arrives with an engine ID that does not match the local engine (RFC 3414 Section 3.2 Step 3).
OID: 1.3.6.1.6.3.15.1.1.4
Sourcepub fn usm_unknown_usernames(&self) -> u32
pub fn usm_unknown_usernames(&self) -> u32
Get the usmStatsUnknownUserNames counter value.
This counter tracks messages with unknown user names. Incremented when a message arrives with a user name not in the local user database (RFC 3414 Section 3.2 Step 1).
OID: 1.3.6.1.6.3.15.1.1.3
Sourcepub fn usm_wrong_digests(&self) -> u32
pub fn usm_wrong_digests(&self) -> u32
Get the usmStatsWrongDigests counter value.
This counter tracks messages with incorrect authentication digests, as well as messages where the user has no auth key configured. (RFC 3414 Section 3.2 Steps 6 and 7).
OID: 1.3.6.1.6.3.15.1.1.5
Sourcepub fn usm_not_in_time_windows(&self) -> u32
pub fn usm_not_in_time_windows(&self) -> u32
Get the usmStatsNotInTimeWindows counter value.
This counter tracks messages that fall outside the time window. Incremented when the message time differs from the local time by more than 150 seconds (RFC 3414 Section 3.2 Step 8).
OID: 1.3.6.1.6.3.15.1.1.2
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Agent
impl !RefUnwindSafe for Agent
impl Send for Agent
impl Sync for Agent
impl Unpin for Agent
impl UnsafeUnpin for Agent
impl !UnwindSafe for Agent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more