Module org.snmp4j
Package org.snmp4j.mp

Interface MessageProcessingModel

  • All Known Implementing Classes:
    MPv1, MPv2c, MPv3

    public interface MessageProcessingModel
    The MessageProcessingModel interface defines common methods to all SNMP message processing models.

    Note: The read counter of the BERInputStream parameters in this interface should not be reset while those methods are executed.

    Version:
    3.1.0
    Author:
    Frank Fock
    • Method Detail

      • getID

        int getID()
        Gets the numerical ID of the message processing model as defined by the constants in this interface or by an appropriate constant in the class implementing this interface.
        Returns:
        a positive integer value.
      • prepareOutgoingMessage

        <A extends Address> int prepareOutgoingMessage​(A transportAddress,
                                                       int maxMsgSize,
                                                       int messageProcessingModel,
                                                       int securityModel,
                                                       byte[] securityName,
                                                       int securityLevel,
                                                       PDU pdu,
                                                       boolean expectResponse,
                                                       PduHandle sendPduHandle,
                                                       BEROutputStream outgoingMessage,
                                                       TransportStateReference tmStateReference)
                                                throws java.io.IOException
        Prepares an outgoing message as defined in RFC3412 §7.1.
        Type Parameters:
        A - the target Address type.
        Parameters:
        transportAddress - the destination transport Address.
        maxMsgSize - the maximum message size the transport mapping for the destination address is capable of.
        messageProcessingModel - the MessageProcessingModel ID (typically, the SNMP version).
        securityModel - the security model ID (see SecurityModel) to use.
        securityName - the principal on behalf the message is to be sent.
        securityLevel - the level of security requested (see SecurityLevel).
        pdu - the PDU to send. For a SNMPv1 trap pdu has to be a PDUv1 instance, for SNMPv3 messages it has to be a ScopedPDU instance.
        expectResponse - indicates if a message expects a response. This has to be true for confirmed class PDUs and false otherwise.
        sendPduHandle - the PduHandle that uniquely identifies the sent message.
        outgoingMessage - returns the message to send.
        tmStateReference - the transport model state reference as defined by RFC 5590.
        Returns:
        the status of the message preparation. SnmpConstants.SNMP_MP_OK is returned if on success, otherwise any of the SnmpConstants.SNMP_MP_* values may be returned.
        Throws:
        java.io.IOException - if the supplied PDU could not be encoded to the outgoingMessage
      • prepareResponseMessage

        <A extends Address> int prepareResponseMessage​(int messageProcessingModel,
                                                       int maxMsgSize,
                                                       int securityModel,
                                                       byte[] securityName,
                                                       int securityLevel,
                                                       PDU pdu,
                                                       int maxSizeResponseScopedPDU,
                                                       StateReference<A> stateReference,
                                                       StatusInformation statusInformation,
                                                       BEROutputStream outgoingMessage)
                                                throws java.io.IOException
        Prepares a response message as defined in RFC3412 §7.1.
        Type Parameters:
        A - the target Address type.
        Parameters:
        messageProcessingModel - int the MessageProcessingModel ID (typically, the SNMP version).
        maxMsgSize - the maximum message size the transport mapping for the destination address is capable of.
        securityModel - the security model ID (see SecurityModel) to use.
        securityName - the principal on behalf the message is to be sent.
        securityLevel - the level of security requested (see SecurityLevel).
        pdu - the PDU to send. For a SNMPv1 trap pdu has to be a PDUv1 instance, for SNMPv3 messages it has to be a ScopedPDU instance.
        maxSizeResponseScopedPDU - the maximum size of the scoped PDU the sender (of the request) can accept.
        stateReference - reference to state information presented with the request.
        statusInformation - returns success or error indication. When an error occured, the error counter OID and value are included.
        outgoingMessage - returns the message to send.
        Returns:
        the status of the message preparation. SnmpConstants.SNMP_MP_OK is returned if on success, otherwise any of the SnmpConstants.SNMP_MP_* values may be returned.
        Throws:
        java.io.IOException - if an internal error or a resource exception occured.
      • prepareDataElements

        <A extends Address> int prepareDataElements​(MessageDispatcher messageDispatcher,
                                                    A transportAddress,
                                                    BERInputStream wholeMsg,
                                                    TransportStateReference tmStateReference,
                                                    Integer32 messageProcessingModel,
                                                    Integer32 securityModel,
                                                    OctetString securityName,
                                                    Integer32 securityLevel,
                                                    MutablePDU pdu,
                                                    PduHandle sendPduHandle,
                                                    Integer32 maxSizeResponseScopedPDU,
                                                    StatusInformation statusInformation,
                                                    MutableStateReference<A> mutableStateReference)
                                             throws java.io.IOException
        Prepare data elements from an incoming SNMP message as described in RFC3412 §7.2.
        Type Parameters:
        A - the target Address type.
        Parameters:
        messageDispatcher - the MessageDispatcher instance to be used to send reports. Thus, messageDispatcher is typically the calling module.
        transportAddress - the origin transport address.
        wholeMsg - the whole message as received from the network.
        tmStateReference - the transport model state reference as defined by RFC 5590.
        messageProcessingModel - returns the message processing model (typically the SNMP version).
        securityModel - returns the security model ID (see SecurityModel.
        securityName - returns the principal.
        securityLevel - returns the requested security level (see SecurityLevel).
        pdu - returns SNMP protocol data unit (the payload of the received message).
        sendPduHandle - returns the handle to match request.
        maxSizeResponseScopedPDU - returns the maximum size of the scoped PDU the sender can accept.
        statusInformation - returns success or error indication. When an error occured, the error counter OID and value are included.
        mutableStateReference - returns the state reference to be used for a possible response. On input the stateReference may contain information about the transport mapping of the incoming request. This allows the MessageProcessingModel to send reports over the same transport as it received them.
        Returns:
        int the status of the message preparation. SnmpConstants.SNMP_MP_OK is returned on success, otherwise any of the SnmpConstants.SNMP_MP_* values may be returned.
        Throws:
        java.io.IOException - if the decoding of the message failed.
      • isProtocolVersionSupported

        boolean isProtocolVersionSupported​(int snmpProtocolVersion)
        Checks whether the supplied SNMP protocol version is supported by this message processing model.
        Parameters:
        snmpProtocolVersion - the SNMP protocol version.
        Returns:
        true if the supplied SNMP protocol is supported, false otherwise.
      • releaseStateReference

        void releaseStateReference​(PduHandle pduHandle)
        Release the state reference associated with the supplied PduHandle.
        Parameters:
        pduHandle - a PduHandle.