Module org.snmp4j
Package org.snmp4j.mp

Class MPv1

java.lang.Object
org.snmp4j.mp.MPv1
All Implemented Interfaces:
MessageProcessingModel

public class MPv1 extends Object implements MessageProcessingModel
The MPv1 is the message processing model for SNMPv1.
Version:
2.2
Author:
Frank Fock
  • Field Details

  • Constructor Details

    • MPv1

      public MPv1()
      Creates a SNMPv1 message processing model with a PDU factory for incoming messages that uses PDUv1.
    • MPv1

      public MPv1(PDUFactory incomingPDUFactory)
      Creates a SNMPv1 message processing model with a custom PDU factory that must ignore the target parameter when creating a PDU for parsing incoming messages.
      Parameters:
      incomingPDUFactory - a PDUFactory. If null the default factory will be used which creates ScopedPDU instances.
  • Method Details

    • getID

      public int getID()
      Description copied from interface: MessageProcessingModel
      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.
      Specified by:
      getID in interface MessageProcessingModel
      Returns:
      a positive integer value.
    • prepareOutgoingMessage

      public <A extends Address> int prepareOutgoingMessage(A transportAddress, int maxMessageSize, int messageProcessingModel, int securityModel, byte[] securityName, int securityLevel, PDU pdu, boolean expectResponse, PduHandle sendPduHandle, BEROutputStream outgoingMessage, TransportStateReference tmStateReference) throws IOException
      Description copied from interface: MessageProcessingModel
      Prepares an outgoing message as defined in RFC3412 §7.1.
      Specified by:
      prepareOutgoingMessage in interface MessageProcessingModel
      Type Parameters:
      A - the target Address type.
      Parameters:
      transportAddress - the destination transport Address.
      maxMessageSize - 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:
      IOException - if the supplied PDU could not be encoded to the outgoingMessage
    • prepareResponseMessage

      public <A extends Address> int prepareResponseMessage(int messageProcessingModel, int maxMessageSize, int securityModel, byte[] securityName, int securityLevel, PDU pdu, int maxSizeResponseScopedPDU, StateReference<A> stateReference, StatusInformation statusInformation, BEROutputStream outgoingMessage) throws IOException
      Description copied from interface: MessageProcessingModel
      Prepares a response message as defined in RFC3412 §7.1.
      Specified by:
      prepareResponseMessage in interface MessageProcessingModel
      Type Parameters:
      A - the target Address type.
      Parameters:
      messageProcessingModel - int the MessageProcessingModel ID (typically, the SNMP version).
      maxMessageSize - 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:
      IOException - if an internal error or a resource exception occured.
    • prepareDataElements

      public <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 IOException
      Description copied from interface: MessageProcessingModel
      Prepare data elements from an incoming SNMP message as described in RFC3412 §7.2.
      Specified by:
      prepareDataElements in interface MessageProcessingModel
      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:
      IOException - if the decoding of the message failed.
    • isProtocolVersionSupported

      public boolean isProtocolVersionSupported(int snmpProtocolVersion)
      Description copied from interface: MessageProcessingModel
      Checks whether the supplied SNMP protocol version is supported by this message processing model.
      Specified by:
      isProtocolVersionSupported in interface MessageProcessingModel
      Parameters:
      snmpProtocolVersion - the SNMP protocol version.
      Returns:
      true if the supplied SNMP protocol is supported, false otherwise.
    • releaseStateReference

      public void releaseStateReference(PduHandle pduHandle)
      Description copied from interface: MessageProcessingModel
      Release the state reference associated with the supplied PduHandle.
      Specified by:
      releaseStateReference in interface MessageProcessingModel
      Parameters:
      pduHandle - a PduHandle.