Expand description
§Primitives to send and receive SNMP messages.
Supported PDU types:
- GetRequest
- GetNextRequest
- GetBulkRequest
- Response
- SetRequest
- SNMPv2-Trap
- InformRequest
§Examples
use snmp_mp::{ObjectIdent, SnmpMsg, VarBind};
let mut msg = SnmpMsg::new(1);
msg.set_reportable_flag();
if let Some(scoped_pdu) = msg.scoped_pdu_data.plaintext_mut() {
let sys_desc = ObjectIdent::from_slice(&[0x01, 0x03, 0x06, 0x01, 0x02, 0x01, 0x01, 0x01, 0x00]);
let var_bind = VarBind::new(sys_desc);
scoped_pdu
.set_request_id(1)
.set_engine_id(b"context_engine_id")
.push_var_bind(var_bind);
}
let encoded_msg = msg.encode();
// Send the encoded message over the network.encrypt_scoped_pdu and decrypt_scoped_pdu are provided to make it easy to use a security model:
msg.encrypt_scoped_pdu(|encoded_scoped_pdu| {
// A security model encrypts and returns the scoped PDU.
// let (encrypted_scoped_pdu, priv_params) =
// priv_key.encrypt(encoded_scoped_pdu, &security_params, salt);
// security_params.set_priv_params(&priv_params);
encrypted_scoped_pdu
});
msg.decrypt_scoped_pdu(|encrypted_scoped_pdu| {
// A security model returns the decrypted scoped PDU wrapped in an `Option`.
// priv_key
// .decrypt(encrypted_scoped_pdu, &security_params)
// .ok()
});Structs§
- Object
Ident - Represents an object identifier.
- Scoped
Pdu - Scoped PDU contained in an SNMP message.
- SnmpMsg
- SNMP message that can be encoded and sent over the network.
- VarBind
- Represents a variable binding.
Enums§
- MsgProcessing
Error - The error type for message processing related operations.
- PduError
Status - Response PDU error status.
- PduType
- Represents a PDU type.
- Scoped
PduData - Represents either the plaintext scoped PDU if the privacy flag is not set, or it represents an encrypted PDU encoded as a byte string.
- VarValue
- Represents a variable binding value.
Type Aliases§
- MsgProcessing
Result - Type alias for the result of a message processing operation.