.\" -*- nroff -*-
.\" Portions of this file are subject to the following copyright. 
.\" See the Net-SNMP 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.
.\" ******************************************************************/
.TH SNMPTRAP 1 "19 Jun 2003" VVERSIONINFO "Net-SNMP"
.SH NAME
snmptrap, snmpinform - sends an SNMP notification to a manager
.SH SYNOPSIS
.B snmptrap -v 1
[COMMON OPTIONS] AGENT enterprise-oid agent generic-trap specific-trap uptime [OID TYPE VALUE]...
.PP
.B snmptrap -v [2c|3]
[COMMON OPTIONS] [-Ci] AGENT uptime trap-oid [OID TYPE VALUE]...
.PP
.B snmpinform -v [2c|3]
[COMMON OPTIONS] AGENT uptime trap-oid [OID TYPE VALUE]...
.SH DESCRIPTION
.B snmptrap
is an SNMP application that uses the SNMP TRAP operation to send
information to a network manager.  One or more object identifiers
(OIDs) can be given as arguments on the command line.  A type and a
value must accompany each object identifier.  Each variable name is
given in the format specified in 
.IR variables(5) .
.PP
When invoked as
.B snmpinform,
or when
.B -Ci
is added to the command line flags of snmptrap, it sends an
INFORM-PDU, expecting a response from the trap receiver,
retransmitting if required.  Otherwise it sends an TRAP-PDU or
TRAP2-PDU.
.PP
If any of the required version 1 parameters, 
.IR enterprise-oid ,
.IR agent ,
and
.I uptime
are specified as empty, it defaults to
.IR "1.3.6.1.4.1.3.1.1 (enterprises.cmu.1.1)" ,
.IR hostname ,
and
.I host-uptime
respectively.
.PP
The
.I TYPE
is a single character, one of:
.RS
.PD 0
.TP 3
.B i
INTEGER
.TP 3
.B u
UNSIGNED
.TP 3
.B c
COUNTER32
.TP 3
.B s
STRING
.TP 3
.B x
HEX STRING
.TP 3
.B d
DECIMAL STRING
.TP 3
.B n
NULLOBJ
.TP 3
.B o
OBJID
.TP 3
.B t
TIMETICKS
.TP 3
.B a
IPADDRESS
.TP 3
.B b
BITS
.PD
.RE
which are handled in the same way as the
.B snmpset
command.
.PP
For example:
.PP
snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1
.PP
will send a generic linkUp trap to manager, for interface 1.
.SH OPTIONS
.B snmptrap
takes the common options described in the
.I snmpcmd(1) 
manual page in
addition to the 
.B -Ci
option described above.
Note that
.B snmptrap
REQUIRES  an argument specifying the agent to query
as described there.
.SH SEE ALSO
snmpcmd(1), snmpset(1), variables(5).
