Package org.snmp4j.mp


package org.snmp4j.mp
Provides classes and interfaces for the SNMP message processing.

The org.snmp4j.mp classes provide services to process SNMP messages. The services provided are defined in the MessageProcessingModel interface and include the following:

  • Prepare data elements from an incoming SNMP message as described in RFC3412 §7.2.
  • Prepare a response message as defined in RFC3412 §7.1.
  • Prepare an outgoing message as defined in RFC3412 §7.1.

This interface is implemented by the message processing model classes for the SNMP versions 1, v2c, and v3: MPv1, MPv2c, and MPv3.

The MessageDispatcherImpl chooses which message processing model it uses to process an outgoing or incoming SNMP message based on the SNMP version of the message. The SNMP version is either extracted from the message header (incoming message) or from the Target instance associated with the outgoing PDU (ougoing message).

To be able to match requests and responses SNMP uses request IDs. Since request IDs are created by the command generator, the request IDs are unique within such a command generator only. SNMP4J therefore has to abstract from request IDs and uses PduHandle instances instead.

If a PDU is processed for sending by the SNMP4J MessageDispatcherImpl and the PDU's request ID is set to 0, then a SNMP4J application wide unique ID is generated and set as request ID of the supplied PDU. In any case, the PDU's request ID will be used as transaction ID of the outgoing message. The transaction ID identifies a messages PduHandle.

If a PDU is received by the SNMP4J MessageDispatcherImpl a unique transaction ID is generated so that command responders as well as the message processing model can match requests and responses.

The following UML class diagram shows the most important classes of the org.snmp4j.mp package and their relationships (relationships to other packages are not shown):

UML Class Diagram for MP Package
  • Class
    Description
    The CounterSupport class provides support to fire CounterEvent to registered listeners.
    The DefaultCounterListener is the default implementation of the CounterListener interface.
    The interface EngineIdCacheSize defines the maximum engine ID cache size when the cache size is about to increase.
    The MessageID interface defines the characteristics of a SNMP message ID as defined by RFC 3412 §6.2.
    The MessageProcessingModel interface defines common methods to all SNMP message processing models.
    The MPv1 is the message processing model for SNMPv1.
    The MPv2c is the message processing model for SNMPv2c (community based SNMPv2).
    The MPv3 is the message processing model for SNMPv3.
    The Cache stores state reference information for the MPv3.
    The CacheEntry class holds state reference information for the MPv3 message processing model for a single message.
    The EngineIdCacheFactory creates an engine ID cache with upper limit.
    The HeaderData represents the message header information of SNMPv3 message.
    The MutableStateReference encapsulates a StateReference for read/write access.
    The PduHandle class represents an unique key for a SNMP PDU.
    The PduHandleCallback can be used to get informed about a PduHandle creation before a request is actually sent out.
    The RequestStatistics interface defines statistic values about request processing.
    The SimpleMessageID implements the simplest possible MessageID with a minimum memory footprint.
    The SnmpConstants class holds constants, ObjectIDs and Message strings used within SNMP4J.
    Enumeration of the textual convention StorageType defined in SNMPv2-TC MIB.
    The StateReference class represents state information associated with SNMP messages.
    The StatusInformation class represents status information of a SNMPv3 message that is needed to return a report message.
    The TimedMessageID adds system time information to the message ID that allows to measure response times and detect lost messages with SNMPv3.