.\" Portions of this file are subject to the following copyright.  See
.\" the Net-SNMP's COPYING file for more details and other copyrights
.\" that may apply:
.\" /***********************************************************
.\" 	Copyright 1988, 1989 by Carnegie Mellon University
.\" 
.\"                       All Rights Reserved
.\" 
.\" Permission to use, copy, modify, and distribute this software and its 
.\" documentation for any purpose and without fee is hereby granted, 
.\" provided that the above copyright notice appear in all copies and that
.\" both that copyright notice and this permission notice appear in 
.\" supporting documentation, and that the name of CMU not be
.\" used in advertising or publicity pertaining to distribution of the
.\" software without specific, written prior permission.  
.\" 
.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
.\" SOFTWARE.
.\" ******************************************************************/
.\" Portions of this file are copyrighted by:
.\" Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
.\" Use is subject to license terms specified in the COPYING file
.\" distributed with the Net-SNMP package.
.\" ******************************************************************/
.TH SNMPTEST 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
.SH NAME
snmptest - communicates with a network entity using SNMP requests
.SH SYNOPSIS
.B snmptest
[COMMON OPTIONS] AGENT
.SH DESCRIPTION
.B snmptest
is a flexible SNMP application that can monitor and manage information
on a network entity.
.PP
After invoking the program, a command line interpreter proceeds to
accept commands.  This intepreter enables the user to send different
types of SNMP requests to target agents.
.PP
AGENT identifies a target SNMP agent, which is instrumented
to monitor the given objects.  At its simplest, the AGENT
specification will consist of a hostname or an IPv4
address.  In this situation, the command will attempt
communication with the agent, using UDP/IPv4 to port 161
of the given target host. See snmpcmd(1) for a full list of
the possible formats for AGENT.
.PP
Once snmptest is invoked, the command line intepreter will prompt with:
.PP
.B Variable:
.PP
At this point you can enter one or more variable names, one per line.
A blank line ends the parameter input and will send the request
(variables entered) in a single packet, to the remote entity.
Each variable name is given
in the format specified in 
.IR variables(5) .
For example:
.PP
snmptest \-c public \-v 1 zeus
.br
.BR Variable: " system.sysDescr.0"
.br
.BR Variable: 
.PP
will return some information about the request and reply packets, as
well as the information:
.PP
requestid 0x5992478A errstat 0x0 errindex 0x0
.br
system.sysDescr.0 = STRING: "Unix 4.3BSD"
.PP
The errstatus value shows the error status code for the call.
The possible values for errstat are in the header file snmp.h.
The errindex value identifies the variable that has the given error.
Index values are assigned to all the variables entered at the "Variable":
prompt. The first value is assigned an index of 1.
.PP
Upon startup, the program defaults to sending a GET request packet.
The type of request can be changed by typing one of the following
commands at the "Variable:" prompt:
.PP
.nf
$G - send a GET request
$N - send a GETNEXT request
$S - send a SET request
$B - send a GETBULK request
     Note: GETBULK is not available in SNMPv1
$I - send an Inform request
$T - send an SNMPv2 Trap request
.fi
.PP
Other values that can be entered at the "Variable:" prompt are:
.PP
.nf
$D - toggle the dumping of each sent and received packet
$QP - toggle a quicker, less verbose output form
$Q - Quit the program
.fi
.PP
Request Types:
.PP
GET Request:
.PP
When in "GET request" mode ($G or default), the user can enter
an OID at the "Variable:" prompt. The user can enter multiple
OIDs, one per prompt. The user enters a blank line to send
the GET request.
.PP
GETNEXT Request:
.PP
The "GETNEXT request" mode ($N) is similar to the "Get request"
mode, described above.
.PP
SET Request:
.PP
When in the "SET request" mode ($S), more information is requested by the
prompt for each variable.  The prompt:
.PP
.nf
Type [i|s|x|d|n|o|t|a]:
.fi
requests the type of the variable be entered.  Depending on the type
of value you want to set, you can type one of the following:
.PP
.nf
i - integer
u - unsigned integer
s - octet string in ASCII
x - octet string in hex bytes, separated by whitespace
d - octet string as decimal bytes, separated by whitespace
a - ip address in dotted IP notation
o - object identifier
n - null
t - timeticks
.fi
At this point a value will be prompted for:
.PP
Value:
.PP
If this is an integer value, just type the integer (in decimal).  If
it is a decimal string, type in white-space separated decimal numbers,
one per byte of the string.  Again type a blank line at the prompt for
the variable name to send the packet.
.PP
GETBULK Request:
.PP
The "GETBULK request" mode ($B) is similar to the "Set request" mode.
GETBULK, however, is not available in SNMPv1.
.PP
Inform Request:
.PP
The "Inform request" mode ($I) is similar to the "Set request" mode.
This type of request, however, is not available in SNMPv1. Also,
the _agent_ specified on the snmptest command should correspond
to the target snmptrapd agent.
.PP
SNMPv2 Trap Request:
.PP
The "SNMPv2 Trap Request" mode ($T) is similar to the "Set request" mode.
This type of request, however, is not available in SNMPv1. Also,
the _agent_ specified on the snmptest command should correspond
to the target snmptrapd agent.
.SH OPTIONS
.B snmptest
takes the common options described in the 
.I snmpcmd(1)
manual page.
.SH EXAMPLES
.PP
The following is an example of sending a GET request for two OIDs:
.PP
% snmptest \-v 2c \-c public testhost:9999
.PP
.nf
Variable: system.sysDescr.0
Variable: system.sysContact.0
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD63 errstat 0x0 errindex 0x0
SNMPv2\-MIB::sysDescr.0 = STRING: SunOS testhost 5.9 Generic_112233\-02 sun4u
SNMPv2\-MIB::sysContact.0 = STRING: x1111
.fi
.PP
The following is an example of sending a GETNEXT request:
.PP
.nf
Variable: SNMPv2\-MIB::sysORUpTime
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD64 errstat 0x0 errindex 0x0
SNMPv2\-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06
Variable:
.fi
.PP
The following is an example of sending a SET request:
.PP
.nf
Variable: $S
Request type is Set Request
Variable: system.sysLocation.0
Type [i|u|s|x|d|n|o|t|a]: s
Value: building 17
Variable:
Received Get Response from 128.2.56.220
requestid 0x7D9FCD65 errstat 0x0 errindex 0x0
SNMPv2\-MIB::sysLocation.0 = STRING: building A
Variable:
.fi
.PP
The following is an example of sending a GETBULK request:
.PP
.nf
Variable: $B
Request type is Bulk Request
Enter a blank line to terminate the list of non-repeaters
and to begin the repeating variables
Variable:
Now input the repeating variables
Variable: system.sysContact.0
Variable: system.sysLocation.0
Variable:
What repeat count? 2
Received Get Response from 128.2.56.220
requestid 0x2EA7942A errstat 0x0 errindex 0x0
SNMPv2\-MIB::sysName.0 = STRING: testhost
SNMPv2\-MIB::sysORLastChange.0 = Timeticks: (58) 0:00:00.58
SNMPv2\-MIB::sysLocation.0 = STRING: bldg A
SNMPv2\-MIB::sysORID.1 = OID: IF\-MIB::ifMIB
Variable:
.fi
.PP
The following is an example of sending an Inform request:
.PP
.nf
snmptest \-v 2c \-c public snmptrapd_host
Variable: $I
Request type is Inform Request
(Are you sending to the right port?)
Variable: system.sysContact.0
Type [i|u|sIx|d|n|o|t|a]: s
Value: x12345
Variable:
Inform Acknowledged
Variable:
.fi
.PP
The snmptrapd_host will show:
.PP
snmptrapd_host [<ip address>]: Trap SNMPv2\-MIB::sysContact.0 = STRING:
x12345
.PP
The following is an example of sending an SNMPv2 Trap request:
.PP
.nf
snmptest \-v 2c \-c public snmptrapd_host
Variable: $T
Request type is SNMPv2 Trap Request
(Are you sending to the right port?)
Variable: system.sysLocation.0
Type [i|u|s|x|d|n|o|t|a]: s
Value: building a
Variable:
.fi
.PP
The snmptrapd_host will show:
.PP
.nf
snmptrapd_host [<ip address>]: Trap SNMPv2\-MIB::sys.0 = STRING:
building a
.fi
.SH "SEE ALSO"
snmpcmd(1), snmpget(1), snmpset(1), variables(5)
