--- old/src/jdk.snmp/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java 2014-10-15 14:06:11.000000000 +0200 +++ /dev/null 2014-10-15 14:06:11.000000000 +0200 @@ -1,702 +0,0 @@ -/* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - - -package com.sun.jmx.snmp.daemon; - -// java import -import java.util.Vector; -import java.io.IOException; -import java.net.InetAddress; - -// jmx imports -// -import com.sun.jmx.snmp.SnmpPduFactory; -import com.sun.jmx.snmp.SnmpStatusException; -import com.sun.jmx.snmp.SnmpVarBindList; -import com.sun.jmx.snmp.SnmpOid; -import com.sun.jmx.snmp.SnmpTimeticks; -import com.sun.jmx.snmp.SnmpIpAddress; -import com.sun.jmx.snmp.SnmpPduPacket; -import com.sun.jmx.snmp.InetAddressAcl; -import com.sun.jmx.snmp.SnmpPeer; - -// SNMP Runtime imports -// -import com.sun.jmx.snmp.agent.SnmpMibAgent; -import com.sun.jmx.snmp.agent.SnmpMibHandler; -import com.sun.jmx.snmp.agent.SnmpUserDataFactory; - -/** - * Exposes the remote management interface of the {@link SnmpAdaptorServer} MBean. - *
This API is a Sun Microsystems internal API and is subject - * to change without notice.
- */ - -public interface SnmpAdaptorServerMBean extends CommunicatorServerMBean { - - // GETTERS AND SETTERS - //-------------------- - - /** - * Returns the Ip address based ACL used by this SNMP protocol adaptor. - * @return TheInetAddressAcl
implementation.
- *
- * @since 1.5
- */
- public InetAddressAcl getInetAddressAcl();
- /**
- * Returns the port used by this SNMP protocol adaptor for sending traps.
- * By default, port 162 is used.
- *
- * @return The port number for sending SNMP traps.
- */
- public Integer getTrapPort();
-
- /**
- * Sets the port used by this SNMP protocol adaptor for sending traps.
- *
- * @param port The port number for sending SNMP traps.
- */
- public void setTrapPort(Integer port);
-
- /**
- * Returns the port used by this SNMP protocol adaptor for sending inform requests.
- * By default, port 162 is used.
- *
- * @return The port number for sending SNMP inform requests.
- */
- public int getInformPort();
-
- /**
- * Sets the port used by this SNMP protocol adaptor for sending inform requests.
- *
- * @param port The port number for sending SNMP inform requests.
- */
- public void setInformPort(int port);
-
- /**
- * Gets the number of managers that have been processed by this SNMP protocol adaptor
- * since its creation.
- *
- * @return The number of managers handled by this SNMP protocol adaptor
- * since its creation. This counter is not reset by the stop
method.
- */
- public int getServedClientCount();
-
- /**
- * Gets the number of managers currently being processed by this
- * SNMP protocol adaptor.
- *
- * @return The number of managers currently being processed by this
- * SNMP protocol adaptor.
- */
- public int getActiveClientCount();
-
- /**
- * Gets the maximum number of managers that this SNMP protocol adaptor can
- * process concurrently.
- *
- * @return The maximum number of managers that this SNMP protocol adaptor can
- * process concurrently.
- */
- public int getMaxActiveClientCount();
-
- /**
- * Sets the maximum number of managers this SNMP protocol adaptor can
- * process concurrently.
- *
- * @param c The number of managers.
- *
- * @exception java.lang.IllegalStateException This method has been invoked
- * while the communicator was ONLINE
or STARTING
.
- */
- public void setMaxActiveClientCount(int c) throws java.lang.IllegalStateException;
-
- /**
- * Returns the protocol of this SNMP protocol adaptor.
- *
- * @return The string "snmp".
- */
- @Override
- public String getProtocol();
-
- /**
- * Returns the buffer size of this SNMP protocol adaptor.
- * By default, buffer size 1024 is used.
- *
- * @return The buffer size.
- */
- public Integer getBufferSize();
-
- /**
- * Sets the buffer size of this SNMP protocol adaptor.
- *
- * @param s The buffer size.
- *
- * @exception java.lang.IllegalStateException This method has been invoked
- * while the communicator was ONLINE
or STARTING
.
- */
- public void setBufferSize(Integer s) throws java.lang.IllegalStateException;
-
- /**
- * Gets the number of times to try sending an inform request before giving up.
- * @return The maximun number of tries.
- */
- public int getMaxTries();
-
- /**
- * Changes the maximun number of times to try sending an inform request before giving up.
- * @param newMaxTries The maximun number of tries.
- */
- public void setMaxTries(int newMaxTries);
-
- /**
- * Gets the timeout to wait for an inform response from the manager.
- * @return The value of the timeout property.
- */
- public int getTimeout();
-
- /**
- * Changes the timeout to wait for an inform response from the manager.
- * @param newTimeout The timeout (in milliseconds).
- */
- public void setTimeout(int newTimeout);
-
- /**
- * Returns the message factory of this SNMP protocol adaptor.
- *
- * @return The factory object.
- */
- public SnmpPduFactory getPduFactory();
-
- /**
- * Sets the message factory of this SNMP protocol adaptor.
- *
- * @param factory The factory object (null means the default factory).
- */
- public void setPduFactory(SnmpPduFactory factory);
-
-
- /**
- * Set the user-data factory of this SNMP protocol adaptor.
- *
- * @param factory The factory object (null means no factory).
- * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory
- */
- public void setUserDataFactory(SnmpUserDataFactory factory);
-
- /**
- * Get the user-data factory associated with this SNMP protocol adaptor.
- *
- * @return The factory object (null means no factory).
- * @see com.sun.jmx.snmp.agent.SnmpUserDataFactory
- */
- public SnmpUserDataFactory getUserDataFactory();
-
- /**
- * Returns true
if authentication traps are enabled.
- *
- * When this feature is enabled, the SNMP protocol adaptor sends
- * an authenticationFailure
trap each time an authentication fails.
- *
- * The default behaviour is to send authentication traps.
- *
- * @return true
if authentication traps are enabled, false
otherwise.
- */
- public boolean getAuthTrapEnabled();
-
- /**
- * Sets the flag indicating if traps need to be sent in case of authentication failure.
- *
- * @param enabled Flag indicating if traps need to be sent.
- */
- public void setAuthTrapEnabled(boolean enabled);
-
- /**
- * Returns true
if this SNMP protocol adaptor sends a response in case
- * of authentication failure.
- *
- * When this feature is enabled, the SNMP protocol adaptor sends a response with noSuchName
- * or readOnly
when the authentication failed. If the flag is disabled, the
- * SNMP protocol adaptor trashes the PDU silently.
- *
- * The default behavior is to send responses.
- *
- * @return true
if responses are sent.
- */
- public boolean getAuthRespEnabled();
-
- /**
- * Sets the flag indicating if responses need to be sent in case of authentication failure.
- *
- * @param enabled Flag indicating if responses need to be sent.
- */
- public void setAuthRespEnabled(boolean enabled);
-
- /**
- * Returns the enterprise OID. It is used by {@link #snmpV1Trap snmpV1Trap} to fill
- * the 'enterprise' field of the trap request.
- *
- * @return The OID in string format "x.x.x.x".
- */
- public String getEnterpriseOid();
-
- /**
- * Sets the enterprise OID.
- *
- * @param oid The OID in string format "x.x.x.x".
- *
- * @exception IllegalArgumentException The string format is incorrect
- */
- public void setEnterpriseOid(String oid) throws IllegalArgumentException;
-
- /**
- * Returns the names of the MIBs available in this SNMP protocol adaptor.
- *
- * @return An array of MIB names.
- */
- public String[] getMibs();
-
- // GETTERS FOR SNMP GROUP (MIBII)
- //-------------------------------
-
- /**
- * Returns the snmpOutTraps
value defined in MIB-II.
- *
- * @return The snmpOutTraps
value.
- */
- public Long getSnmpOutTraps();
-
- /**
- * Returns the snmpOutGetResponses
value defined in MIB-II.
- *
- * @return The snmpOutGetResponses
value.
- */
- public Long getSnmpOutGetResponses();
-
- /**
- * Returns the snmpOutGenErrs
value defined in MIB-II.
- *
- * @return The snmpOutGenErrs
value.
- */
- public Long getSnmpOutGenErrs();
-
- /**
- * Returns the snmpOutBadValues
value defined in MIB-II.
- *
- * @return The snmpOutBadValues
value.
- */
- public Long getSnmpOutBadValues();
-
- /**
- * Returns the snmpOutNoSuchNames
value defined in MIB-II.
- *
- * @return The snmpOutNoSuchNames
value.
- */
- public Long getSnmpOutNoSuchNames();
-
- /**
- * Returns the snmpOutTooBigs
value defined in MIB-II.
- *
- * @return The snmpOutTooBigs
value.
- */
- public Long getSnmpOutTooBigs();
-
- /**
- * Returns the snmpInASNParseErrs
value defined in MIB-II.
- *
- * @return The snmpInASNParseErrs
value.
- */
- public Long getSnmpInASNParseErrs();
-
- /**
- * Returns the snmpInBadCommunityUses
value defined in MIB-II.
- *
- * @return The snmpInBadCommunityUses
value.
- */
- public Long getSnmpInBadCommunityUses();
-
- /**
- * Returns the snmpInBadCommunityNames
value defined in MIB-II.
- *
- * @return The snmpInBadCommunityNames
value.
- */
- public Long getSnmpInBadCommunityNames();
-
- /**
- * Returns the snmpInBadVersions
value defined in MIB-II.
- *
- * @return The snmpInBadVersions
value.
- */
- public Long getSnmpInBadVersions();
-
- /**
- * Returns the snmpOutPkts
value defined in MIB-II.
- *
- * @return The snmpOutPkts
value.
- */
- public Long getSnmpOutPkts();
-
- /**
- * Returns the snmpInPkts
value defined in MIB-II.
- *
- * @return The snmpInPkts
value.
- */
- public Long getSnmpInPkts();
-
- /**
- * Returns the snmpInGetRequests
value defined in MIB-II.
- *
- * @return The snmpInGetRequests
value.
- */
- public Long getSnmpInGetRequests();
-
- /**
- * Returns the snmpInGetNexts
value defined in MIB-II.
- *
- * @return The snmpInGetNexts
value.
- */
- public Long getSnmpInGetNexts();
-
- /**
- * Returns the snmpInSetRequests
value defined in MIB-II.
- *
- * @return The snmpInSetRequests
value.
- */
- public Long getSnmpInSetRequests();
-
- /**
- * Returns the snmpInTotalSetVars
value defined in MIB-II.
- *
- * @return The snmpInTotalSetVars
value.
- */
- public Long getSnmpInTotalSetVars();
-
- /**
- * Returns the snmpInTotalReqVars
value defined in MIB-II.
- *
- * @return The snmpInTotalReqVars
value.
- */
- public Long getSnmpInTotalReqVars();
-
- /**
- * Returns the snmpSilentDrops
value defined in rfc 1907 NMPv2-MIB .
- *
- * @return The snmpSilentDrops
value.
- *
- * @since 1.5
- */
- public Long getSnmpSilentDrops();
-
- /**
- * Returns the snmpProxyDrops
value defined in rfc 1907 NMPv2-MIB .
- *
- * @return The snmpProxyDrops
value.
- *
- * @since 1.5
- */
- public Long getSnmpProxyDrops();
-
- // PUBLIC METHODS
- //---------------
-
- /**
- * Adds a new MIB in the SNMP MIB handler.
- * This method is called automatically by {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptor(SnmpMibHandler)}
- * and {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptorName(ObjectName)}
- * and should not be called directly.
- *
- * @param mib The MIB to add.
- *
- * @return A reference to the SNMP MIB handler.
- *
- * @exception IllegalArgumentException If the parameter is null.
- */
- public SnmpMibHandler addMib(SnmpMibAgent mib) throws IllegalArgumentException;
-
- /**
- * Adds a new MIB in the SNMP MIB handler.
- *
- * @param mib The MIB to add.
- * @param oids The set of OIDs this agent implements.
- *
- * @return A reference to the SNMP MIB handler.
- *
- * @exception IllegalArgumentException If the parameter is null.
- *
- * @since 1.5
- */
- public SnmpMibHandler addMib(SnmpMibAgent mib, SnmpOid[] oids) throws IllegalArgumentException;
-
- /**
- * Removes the specified MIB from the SNMP protocol adaptor.
- * This method is called automatically by {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptor(SnmpMibHandler)}
- * and {@link com.sun.jmx.snmp.agent.SnmpMibAgent#setSnmpAdaptorName(ObjectName)}
- * and should not be called directly.
- *
- * @param mib The MIB to be removed.
- *
- * @return true
if the specified mib
was a MIB included in the SNMP MIB handler,
- * false
otherwise.
- */
- public boolean removeMib(SnmpMibAgent mib);
-
- /**
- * Sends a trap using SNMP V1 trap format.
- *
The trap is sent to each destination defined in the ACL file (if available).
- * If no ACL file or no destinations are available, the trap is sent to the local host.
- *
- * @param generic The generic number of the trap.
- * @param specific The specific number of the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- */
- public void snmpV1Trap(int generic, int specific, SnmpVarBindList varBindList) throws IOException, SnmpStatusException;
-
-
- /**
- * Sends a trap using SNMP V1 trap format.
- *
The trap is sent to the specified InetAddress
destination
- * using the specified community string (and the ACL file is not used).
- *
- * @param address The InetAddress
destination of the trap.
- * @param cs The community string to be used for the trap.
- * @param generic The generic number of the trap.
- * @param specific The specific number of the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- */
- public void snmpV1Trap(InetAddress address, String cs, int generic, int specific, SnmpVarBindList varBindList)
- throws IOException, SnmpStatusException;
-
-
- /**
- * Sends a trap using SNMP V1 trap format.
- *
The trap is sent to the specified SnmpPeer
destination.
- * The community string used is the one located in the SnmpPeer
parameters (SnmpParameters.getRdCommunity()
).
- *
- * @param peer The SnmpPeer
destination of the trap.
- * @param agentAddr The agent address to be used for the trap.
- * @param enterpOid The enterprise OID to be used for the trap.
- * @param generic The generic number of the trap.
- * @param specific The specific number of the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- * @param time The time stamp (overwrite the current time).
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- *
- * @since 1.5
- */
- public void snmpV1Trap(SnmpPeer peer,
- SnmpIpAddress agentAddr,
- SnmpOid enterpOid,
- int generic,
- int specific,
- SnmpVarBindList varBindList,
- SnmpTimeticks time) throws IOException, SnmpStatusException;
-
- /**
- * Sends a trap using SNMP V2 trap format.
- *
The trap is sent to the specified SnmpPeer
destination.
- *
The community string used is the one located in the SnmpPeer
parameters (SnmpParameters.getRdCommunity()
).
- *
The variable list included in the outgoing trap is composed of the following items:
- *
sysUpTime.0
with the value specified by time
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * SnmpPeer
destination of the trap.
- * @param trapOid The OID identifying the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- * @param time The time stamp (overwrite the current time).
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- *
- * @since 1.5
- */
- public void snmpV2Trap(SnmpPeer peer,
- SnmpOid trapOid,
- SnmpVarBindList varBindList,
- SnmpTimeticks time) throws IOException, SnmpStatusException;
-
- /**
- * Sends a trap using SNMP V2 trap format.
- * sysUpTime.0
with its current value
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * SnmpVarBind
instances or null.
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- */
- public void snmpV2Trap(SnmpOid trapOid, SnmpVarBindList varBindList) throws IOException, SnmpStatusException;
-
-
- /**
- * Sends a trap using SNMP V2 trap format.
- * InetAddress
destination
- * using the specified community string (and the ACL file is not used).
- * sysUpTime.0
with its current value
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * InetAddress
destination of the trap.
- * @param cs The community string to be used for the trap.
- * @param trapOid The OID identifying the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- *
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- */
- public void snmpV2Trap(InetAddress address, String cs, SnmpOid trapOid, SnmpVarBindList varBindList)
- throws IOException, SnmpStatusException;
-
- /**
- * Send the specified trap PDU to the passed InetAddress
.
- * @param address The destination address.
- * @param pdu The pdu to send.
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- *
- * @since 1.5
- */
- public void snmpPduTrap(InetAddress address, SnmpPduPacket pdu)
- throws IOException, SnmpStatusException;
- /**
- * Send the specified trap PDU to the passed SnmpPeer
.
- * @param peer The destination peer. The Read community string is used of SnmpParameters
is used as the trap community string.
- * @param pdu The pdu to send.
- * @exception IOException An I/O error occurred while sending the trap.
- * @exception SnmpStatusException If the trap exceeds the limit defined by bufferSize
.
- * @since 1.5
- */
- public void snmpPduTrap(SnmpPeer peer,
- SnmpPduPacket pdu)
- throws IOException, SnmpStatusException;
-
- /**
- * Sends an inform using SNMP V2 inform request format.
- * sysUpTime.0
with its current value
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * SnmpVarBind
instances or null.
- *
- * @return A vector of {@link com.sun.jmx.snmp.daemon.SnmpInformRequest} objects.
- * If there is no destination host for this inform request, the returned vector will be empty.
- *
- * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
- * @exception IOException An I/O error occurred while sending the inform request.
- * @exception SnmpStatusException If the inform request exceeds the limit defined by bufferSize
.
- */
- public Vector> snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid,
- SnmpVarBindList varBindList)
- throws IllegalStateException, IOException, SnmpStatusException;
-
- /**
- * Sends an inform using SNMP V2 inform request format.
- *
The inform is sent to the specified InetAddress
destination
- * using the specified community string.
- *
The variable list included in the outgoing inform request is composed of the following items:
- *
sysUpTime.0
with its current value
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * InetAddress
destination for this inform request.
- * @param cs The community string to be used for the inform request.
- * @param cb The callback that is invoked when a request is complete.
- * @param trapOid The OID identifying the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- *
- * @return The inform request object.
- *
- * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
- * @exception IOException An I/O error occurred while sending the inform request.
- * @exception SnmpStatusException If the inform request exceeds the limit defined by bufferSize
.
- */
- public SnmpInformRequest snmpInformRequest(InetAddress address, String cs, SnmpInformHandler cb,
- SnmpOid trapOid, SnmpVarBindList varBindList)
- throws IllegalStateException, IOException, SnmpStatusException;
-
-
- /**
- * Sends an inform using SNMP V2 inform request format.
- * SnmpPeer
destination.
- * SnmpPeer
parameters (SnmpParameters.getInformCommunity()
).
- * sysUpTime.0
with its current value
- * snmpTrapOid.0
with the value specified by trapOid
- * all the (oid,values)
from the specified varBindList
- * SnmpPeer
destination for this inform request.
- * @param cb The callback that is invoked when a request is complete.
- * @param trapOid The OID identifying the trap.
- * @param varBindList A list of SnmpVarBind
instances or null.
- *
- * @return The inform request object.
- *
- * @exception IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
- * @exception IOException An I/O error occurred while sending the inform request.
- * @exception SnmpStatusException If the inform request exceeds the limit defined by bufferSize
.
- *
- * @since 1.5
- */
- public SnmpInformRequest snmpInformRequest(SnmpPeer peer,
- SnmpInformHandler cb,
- SnmpOid trapOid,
- SnmpVarBindList varBindList) throws IllegalStateException, IOException, SnmpStatusException;
-}