--- 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 The InetAddressAcl 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: - *

- * - * @param peer The 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. - *
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. - *
The variable list included in the outgoing trap is composed of the following items: - * - * - * @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(SnmpOid trapOid, SnmpVarBindList varBindList) throws IOException, SnmpStatusException; - - - /** - * Sends a trap using SNMP V2 trap format. - *
The trap is sent to the specified InetAddress destination - * using the specified community string (and the ACL file is not used). - *
The variable list included in the outgoing trap is composed of the following items: - * - * - * @param address The 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. - *
The inform request is sent to each destination defined in the ACL file (if available). - * If no ACL file or no destinations are available, the inform request is sent to the local host. - *
The variable list included in the outgoing inform request is composed of the following items: - * - * To send an inform request, the SNMP adaptor server must be active. - * - * @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 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: - *

- * To send an inform request, the SNMP adaptor server must be active. - * - * @param address The 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. - *
The inform is sent to the specified SnmpPeer destination. - *
The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getInformCommunity() ). - *
The variable list included in the outgoing inform is composed of the following items: - * - * To send an inform request, the SNMP adaptor server must be active. - * - * @param peer The 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; -}