- java.lang.Object
-
- org.snmp4j.mp.MPv1
-
- All Implemented Interfaces:
MessageProcessingModel
public class MPv1 extends java.lang.Object implements MessageProcessingModel
TheMPv1is the message processing model for SNMPv1.- Version:
- 2.2
- Author:
- Frank Fock
-
-
Field Summary
Fields Modifier and Type Field Description static intIDprotected PDUFactoryincomingPDUFactory-
Fields inherited from interface org.snmp4j.mp.MessageProcessingModel
MPv1, MPv2c, MPv2u, MPv3
-
-
Constructor Summary
Constructors Constructor Description MPv1()Creates a SNMPv1 message processing model with a PDU factory for incoming messages that usesPDUv1.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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetID()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.booleanisProtocolVersionSupported(int snmpProtocolVersion)Checks whether the supplied SNMP protocol version is supported by this message processing model.<A extends Address>
intprepareDataElements(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)Prepare data elements from an incoming SNMP message as described in RFC3412 §7.2.<A extends Address>
intprepareOutgoingMessage(A transportAddress, int maxMessageSize, int messageProcessingModel, int securityModel, byte[] securityName, int securityLevel, PDU pdu, boolean expectResponse, PduHandle sendPduHandle, BEROutputStream outgoingMessage, TransportStateReference tmStateReference)Prepares an outgoing message as defined in RFC3412 §7.1.<A extends Address>
intprepareResponseMessage(int messageProcessingModel, int maxMessageSize, int securityModel, byte[] securityName, int securityLevel, PDU pdu, int maxSizeResponseScopedPDU, StateReference<A> stateReference, StatusInformation statusInformation, BEROutputStream outgoingMessage)Prepares a response message as defined in RFC3412 §7.1.voidreleaseStateReference(PduHandle pduHandle)Release the state reference associated with the suppliedPduHandle.
-
-
-
Field Detail
-
ID
public static final int ID
- See Also:
- Constant Field Values
-
incomingPDUFactory
protected PDUFactory incomingPDUFactory
-
-
Constructor Detail
-
MPv1
public MPv1()
Creates a SNMPv1 message processing model with a PDU factory for incoming messages that usesPDUv1.
-
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- aPDUFactory. Ifnullthe default factory will be used which createsScopedPDUinstances.
-
-
Method Detail
-
getID
public int getID()
Description copied from interface:MessageProcessingModelGets 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:
getIDin interfaceMessageProcessingModel- 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 java.io.IOException
Description copied from interface:MessageProcessingModelPrepares an outgoing message as defined in RFC3412 §7.1.- Specified by:
prepareOutgoingMessagein interfaceMessageProcessingModel- Type Parameters:
A- the targetAddresstype.- Parameters:
transportAddress- the destination transportAddress.maxMessageSize- the maximum message size the transport mapping for the destination address is capable of.messageProcessingModel- theMessageProcessingModelID (typically, the SNMP version).securityModel- the security model ID (seeSecurityModel) to use.securityName- the principal on behalf the message is to be sent.securityLevel- the level of security requested (seeSecurityLevel).pdu- thePDUto send. For a SNMPv1 trappduhas to be aPDUv1instance, for SNMPv3 messages it has to be aScopedPDUinstance.expectResponse- indicates if a message expects a response. This has to betruefor confirmed class PDUs andfalseotherwise.sendPduHandle- thePduHandlethat 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_OKis returned if on success, otherwise any of theSnmpConstants.SNMP_MP_*values may be returned. - Throws:
java.io.IOException- if the supplied PDU could not be encoded to theoutgoingMessage
-
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 java.io.IOException
Description copied from interface:MessageProcessingModelPrepares a response message as defined in RFC3412 §7.1.- Specified by:
prepareResponseMessagein interfaceMessageProcessingModel- Type Parameters:
A- the targetAddresstype.- Parameters:
messageProcessingModel- int theMessageProcessingModelID (typically, the SNMP version).maxMessageSize- the maximum message size the transport mapping for the destination address is capable of.securityModel- the security model ID (seeSecurityModel) to use.securityName- the principal on behalf the message is to be sent.securityLevel- the level of security requested (seeSecurityLevel).pdu- thePDUto send. For a SNMPv1 trappduhas to be aPDUv1instance, for SNMPv3 messages it has to be aScopedPDUinstance.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_OKis returned if on success, otherwise any of theSnmpConstants.SNMP_MP_*values may be returned. - Throws:
java.io.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 java.io.IOException
Description copied from interface:MessageProcessingModelPrepare data elements from an incoming SNMP message as described in RFC3412 §7.2.- Specified by:
prepareDataElementsin interfaceMessageProcessingModel- Type Parameters:
A- the targetAddresstype.- Parameters:
messageDispatcher- theMessageDispatcherinstance to be used to send reports. Thus,messageDispatcheris 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 (seeSecurityModel.securityName- returns the principal.securityLevel- returns the requested security level (seeSecurityLevel).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 theMessageProcessingModelto send reports over the same transport as it received them.- Returns:
- int the status of the message preparation.
SnmpConstants.SNMP_MP_OKis returned on success, otherwise any of theSnmpConstants.SNMP_MP_*values may be returned. - Throws:
java.io.IOException- if the decoding of the message failed.
-
isProtocolVersionSupported
public boolean isProtocolVersionSupported(int snmpProtocolVersion)
Description copied from interface:MessageProcessingModelChecks whether the supplied SNMP protocol version is supported by this message processing model.- Specified by:
isProtocolVersionSupportedin interfaceMessageProcessingModel- Parameters:
snmpProtocolVersion- the SNMP protocol version.- Returns:
trueif the supplied SNMP protocol is supported,falseotherwise.
-
releaseStateReference
public void releaseStateReference(PduHandle pduHandle)
Description copied from interface:MessageProcessingModelRelease the state reference associated with the suppliedPduHandle.- Specified by:
releaseStateReferencein interfaceMessageProcessingModel- Parameters:
pduHandle- aPduHandle.
-
-