summaryrefslogtreecommitdiff
path: root/package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch')
-rw-r--r--package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch7282
1 files changed, 7282 insertions, 0 deletions
diff --git a/package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch b/package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch
new file mode 100644
index 0000000000..fd99ed745c
--- /dev/null
+++ b/package/net-snmp/patches/500-debian-subset-5.1.2-6.1.patch
@@ -0,0 +1,7282 @@
+diff -ruN net-snmp-5.1.2-orig/EXAMPLE-trap.conf net-snmp-5.1.2-5/EXAMPLE-trap.conf
+--- net-snmp-5.1.2-orig/EXAMPLE-trap.conf 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/EXAMPLE-trap.conf 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,18 @@
++###############################################################################
++#
++# EXAMPLE.conf:
++# An example configuration file for configuring the ucd-snmp snmptrapd agent.
++#
++###############################################################################
++#
++# This file is intended to only be an example. If, however, you want
++# to use it, it should be placed in /etc/snmp/snmptrapd.conf.
++# When the snmptrapd agent starts up, this is where it will look for it.
++#
++# All lines beginning with a '#' are comments and are intended for you
++# to read. All other lines are configuration commands for the agent.
++
++#
++# PLEASE: read the snmptrapd.conf(5) manual page as well!
++#
++
+diff -ruN net-snmp-5.1.2-orig/EXAMPLE.conf.def net-snmp-5.1.2-5/EXAMPLE.conf.def
+--- net-snmp-5.1.2-orig/EXAMPLE.conf.def 2003-02-25 15:04:06.000000000 +0100
++++ net-snmp-5.1.2-5/EXAMPLE.conf.def 2005-03-13 16:17:21.000000000 +0100
+@@ -6,7 +6,7 @@
+ ###############################################################################
+ #
+ # This file is intended to only be an example. If, however, you want
+-# to use it, it should be placed in SYSCONFDIR/share/snmp/snmpd.conf.
++# to use it, it should be placed in /etc/snmp/snmpd.conf.
+ # When the snmpd agent starts up, this is where it will look for it.
+ #
+ # You might be interested in generating your own snmpd.conf file using
+@@ -58,31 +58,37 @@
+ # from):
+
+ # sec.name source community
+-com2sec local localhost COMMUNITY
+-com2sec mynetwork NETWORK/24 COMMUNITY
++com2sec paranoid default public
++#com2sec readonly default public
++#com2sec readwrite default private
+
+ ####
+ # Second, map the security names into group names:
+
+ # sec.model sec.name
+-group MyRWGroup v1 local
+-group MyRWGroup v2c local
+-group MyRWGroup usm local
+-group MyROGroup v1 mynetwork
+-group MyROGroup v2c mynetwork
+-group MyROGroup usm mynetwork
++group MyROSystem v1 paranoid
++group MyROSystem v2c paranoid
++group MyROSystem usm paranoid
++group MyROGroup v1 readonly
++group MyROGroup v2c readonly
++group MyROGroup usm readonly
++group MyRWGroup v1 readwrite
++group MyRWGroup v2c readwrite
++group MyRWGroup usm readwrite
+
+ ####
+ # Third, create a view for us to let the groups have rights to:
+
+ # incl/excl subtree mask
+ view all included .1 80
++view system included .iso.org.dod.internet.mgmt.mib-2.system
+
+ ####
+ # Finally, grant the 2 groups access to the 1 view with different
+ # write permissions:
+
+ # context sec.model sec.level match read write notif
++access MyROSystem "" any noauth exact system none none
+ access MyROGroup "" any noauth exact all none none
+ access MyRWGroup "" any noauth exact all all none
+
+@@ -100,8 +106,8 @@
+ # value of an object whose value is given here will fail with an error
+ # status of notWritable.
+
+-syslocation Right here, right now.
+-syscontact Me <me@somewhere.org>
++syslocation Unknown (configure /etc/snmp/snmpd.local.conf)
++syscontact Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)
+
+ # Example output of snmpwalk:
+ # % snmpwalk -v 1 -c public localhost system
+@@ -135,13 +141,13 @@
+ #
+
+ # Make sure mountd is running
+-proc mountd
++#proc mountd
+
+ # Make sure there are no more than 4 ntalkds running, but 0 is ok too.
+-proc ntalkd 4
++#proc ntalkd 4
+
+ # Make sure at least one sendmail, but less than or equal to 10 are running.
+-proc sendmail 10 1
++#proc sendmail 10 1
+
+ # A snmpwalk of the prTable would look something like this:
+ #
+@@ -199,7 +205,7 @@
+ # ARGS: optional arguments to be passed to the program
+
+ # a simple hello world
+-exec echotest /bin/echo hello world
++#exec echotest /bin/echo hello world
+
+ # Run a shell script containing:
+ #
+@@ -250,7 +256,7 @@
+
+ # Check the / partition and make sure it contains at least 10 megs.
+
+-disk / 10000
++#disk / 10000
+
+ # % snmpwalk -v 1 -c public localhost .EXTENSIBLEDOTMIB.DISKMIBNUM
+ # enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0
+@@ -279,7 +285,7 @@
+ # 15MAX: Similar, but for 15 min average.
+
+ # Check for loads:
+-load 12 14 14
++#load 12 14 14
+
+ # % snmpwalk -v 1 -c public localhost .EXTENSIBLEDOTMIB.LOADAVEMIBNUM
+ # enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1
+@@ -365,7 +371,7 @@
+ # (commented out here since it requires that you place the
+ # script in the right location. (its not installed by default))
+
+-# pass .EXTENSIBLEDOTMIB.255 /bin/sh PREFIX/local/passtest
++# pass .EXTENSIBLEDOTMIB.255 /bin/sh /usr/local/passtest
+
+ # % snmpwalk -v 1 -c public localhost .EXTENSIBLEDOTMIB.255
+ # enterprises.ucdavis.255.1 = "life the universe and everything"
+diff -ruN net-snmp-5.1.2-orig/FAQ net-snmp-5.1.2-5/FAQ
+--- net-snmp-5.1.2-orig/FAQ 2004-08-07 10:02:45.000000000 +0200
++++ net-snmp-5.1.2-5/FAQ 2005-03-13 16:17:21.000000000 +0100
+@@ -104,7 +104,7 @@
+ I don't understand the new access control stuff - what does it mean?
+ How do I configure SNMPv3 users?
+ The 'createUser' line disappears when I start the agent. Why?
+- What's the difference between /var/ucd-snmp and /usr/local/share/snmp?
++ What's the difference between /var/ucd-snmp and /usr/share/snmp?
+ My new agent is ignoring the old snmpd.conf file. Why?
+ Why am I getting "Connection refused"?
+ I'm getting errors about "bad security model" - why?
+@@ -620,7 +620,7 @@
+
+ Firstly,
+
+- cp MY-MIB.txt /usr/local/share/snmp/mibs
++ cp MY-MIB.txt /usr/share/snmp/mibs
+
+ or
+
+@@ -639,7 +639,7 @@
+ Note that you need *both* steps.
+ The first command copies the file defining the new MIB to a
+ expected location for MIB files. This defaults to
+- /usr/local/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
++ /usr/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
+ suite was installed into a different base location). Some
+ ready-packaged distributions (such as Linux RPM packages) may look
+ for MIB files in a different location, such as /etc/snmp/mibs - put
+@@ -1111,7 +1111,7 @@
+ If this is the case, then you can specify this interpreter
+ explicitly as part of the trap handle directive:
+
+- traphandle default /usr/bin/perl /usr/local/bin/log_it
++ traphandle default /usr/bin/perl /usr/bin/log_it
+
+ Note that in this case, it's almost certain that you'll also
+ need to give the full path to the traphandle script (as shown)
+@@ -1263,7 +1263,7 @@
+ (if appropriate) the community string to use.
+
+ Some of these (such as the MIB file location), might belong in a
+- shared snmp.conf file (typically /usr/local/share/snmp/snmp.conf or
++ shared snmp.conf file (typically /usr/share/snmp/snmp.conf or
+ /etc/snmp/snmp.conf) to apply to all users of the system. Others
+ (particularly the SNMPv3 security settings), are more likely to refer
+ to a particular user, and should go in a personal snmp.conf file
+@@ -1522,7 +1522,7 @@
+
+
+ Alternatively, the tools may be looking in the wrong place.
+- The default location for the mib files is /usr/local/share/snmp/mibs.
++ The default location for the mib files is /usr/share/snmp/mibs.
+ Again, this is set when the suite is first configured and compiled.
+ This can be changed using the environmental variable 'MIBDIRS'
+ or the snmp.conf directive 'mibdirs'.
+@@ -2507,11 +2507,11 @@
+
+
+
+-What's the difference between /var/ucd-snmp and /usr/local/share/snmp?
++What's the difference between /var/ucd-snmp and /usr/share/snmp?
+ ---------------------------------------------------------------------
+
+ Most "static" agent configuration should go in the traditional location
+- (typically /usr/local/share/snmp/snmpd.conf or /etc/snmp). The
++ (typically /usr/share/snmp/snmpd.conf or /etc/snmp). The
+ /var/ucd-snmp (or /var/net-snmp) location is used for information set during
+ the running of the agent, which needs to be persistent between one run of
+ the agent and the next.
+@@ -2531,7 +2531,7 @@
+ distribution), with the current release installed from the source.
+
+ The default location for this file with the basic distribution is
+- /usr/local/share/snmp/snmpd.conf (or PREFIX/share/snmp/snmpd.conf).
++ /usr/share/snmp/snmpd.conf (or PREFIX/share/snmp/snmpd.conf).
+ Ready-installed versions often look for the file as /etc/snmpd.conf,
+ or /etc/snmp/snmpd.conf. Try moving the old config file to the new
+ location, and restart the agent.
+diff -ruN net-snmp-5.1.2-orig/Makefile.in net-snmp-5.1.2-5/Makefile.in
+--- net-snmp-5.1.2-orig/Makefile.in 2004-08-04 14:48:14.000000000 +0200
++++ net-snmp-5.1.2-5/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -163,6 +163,11 @@
+ ( cd perl ; $(MAKE) clean ) ; \
+ fi
+
++perlrealclean:
++ @if test -f perl/Makefile; then \
++ ( cd perl ; $(MAKE) realclean ) ; \
++ fi
++
+ #
+ # make distclean completely removes all traces of building including
+ # any files generated by configure itself.
+diff -ruN net-snmp-5.1.2-orig/Makefile.rules net-snmp-5.1.2-5/Makefile.rules
+--- net-snmp-5.1.2-orig/Makefile.rules 2004-02-13 23:42:28.000000000 +0100
++++ net-snmp-5.1.2-5/Makefile.rules 2005-03-13 16:17:21.000000000 +0100
+@@ -301,7 +301,7 @@
+ # cleaning targets
+ #
+ clean: cleansubdirs $(OTHERCLEANTODOS)
+- rm -f core ${OBJS} ${LOBJS} $(STANDARDCLEANTARGETS) $(OTHERCLEANTARGETS)
++ rm -f -- core ${OBJS} ${LOBJS} $(STANDARDCLEANTARGETS) $(OTHERCLEANTARGETS)
+ rm -rf .libs
+
+ cleansubdirs:
+diff -ruN net-snmp-5.1.2-orig/Makefile.top net-snmp-5.1.2-5/Makefile.top
+--- net-snmp-5.1.2-orig/Makefile.top 2004-08-07 09:29:36.000000000 +0200
++++ net-snmp-5.1.2-5/Makefile.top 2005-03-13 16:17:21.000000000 +0100
+@@ -27,6 +27,7 @@
+ snmplibdir = $(datadir)/snmp
+ mibdir = $(snmplibdir)/mibs
+ persistentdir = @PERSISTENT_DIRECTORY@
++sysconfdir = @sysconfdir@
+ INSTALL_PREFIX = @INSTALL_PREFIX@
+
+ #
+diff -ruN net-snmp-5.1.2-orig/acconfig.h net-snmp-5.1.2-5/acconfig.h
+--- net-snmp-5.1.2-orig/acconfig.h 2004-06-28 20:54:17.000000000 +0200
++++ net-snmp-5.1.2-5/acconfig.h 2005-03-13 16:17:21.000000000 +0100
+@@ -560,6 +560,9 @@
+ /* define if you have getservbyname */
+ #undef HAVE_GETSERVBYNAME
+
++/* define if you have dlopen */
++#undef HAVE_DLOPEN
++
+ /* printing system */
+ #undef HAVE_LPSTAT
+ #undef LPSTAT_PATH
+diff -ruN net-snmp-5.1.2-orig/acinclude.m4 net-snmp-5.1.2-5/acinclude.m4
+--- net-snmp-5.1.2-orig/acinclude.m4 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/acinclude.m4 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,193 @@
++dnl @synopsis AC_PROMPT_USER_NO_DEFINE(VARIABLENAME,QUESTION,[DEFAULT])
++dnl
++dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
++dnl DEFAULT value if the user merely hits return.
++dnl
++dnl @version 1.15
++dnl @author Wes Hardaker <hardaker@users.sourceforge.net>
++dnl
++AC_DEFUN([AC_PROMPT_USER_NO_DEFINE],
++dnl changequote(<<, >>) dnl
++dnl <<
++[
++if test "x$defaults" = "xno"; then
++echo $ac_n "$2 ($3): $ac_c"
++read tmpinput
++if test "$tmpinput" = "" -a "$3" != ""; then
++ tmpinput="$3"
++fi
++eval $1=\"$tmpinput\"
++else
++tmpinput="$3"
++eval $1=\"$tmpinput\"
++fi
++]
++dnl >>
++dnl changequote([, ])
++) dnl done AC_PROMPT_USER
++
++dnl @synopsis AC_PROMPT_USER(VARIABLENAME,QUESTION,[DEFAULT],QUOTED)
++dnl
++dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
++dnl DEFAULT value if the user merely hits return. Also calls
++dnl AC_DEFINE_UNQUOTED() on the VARIABLENAME for VARIABLENAMEs that should
++dnl be entered into the config.h file as well. If QUOTED is "quoted" then
++dnl the result will be defined within quotes.
++dnl
++dnl @version 1.15
++dnl @author Wes Hardaker <hardaker@users.sourceforge.net>
++dnl
++AC_DEFUN([AC_PROMPT_USER],
++[
++MSG_CHECK=`echo "$2" | tail -1`
++AC_CACHE_CHECK($MSG_CHECK, ac_cv_user_prompt_$1,
++[echo "" >&AC_FD_MSG
++AC_PROMPT_USER_NO_DEFINE($1,[$2],$3)
++eval ac_cv_user_prompt_$1=\$$1
++echo $ac_n "setting $MSG_CHECK to... $ac_c" >&AC_FD_MSG
++])
++if test "$ac_cv_user_prompt_$1" != "none"; then
++ if test "x$4" = "xquoted" -o "x$4" = "xQUOTED"; then
++ AC_DEFINE_UNQUOTED($1,"$ac_cv_user_prompt_$1")
++ else
++ AC_DEFINE_UNQUOTED($1,$ac_cv_user_prompt_$1)
++ fi
++fi
++]) dnl
++
++dnl @synopsis AC_CHECK_STRUCT_FOR(INCLUDES,STRUCT,MEMBER,DEFINE,[no])
++dnl
++dnl Checks STRUCT for MEMBER and defines DEFINE if found.
++dnl
++dnl @version 1.15
++dnl @author Wes Hardaker <hardaker@users.sourceforge.net>
++dnl
++AC_DEFUN(AC_CHECK_STRUCT_FOR,[
++
++ac_safe_struct=`echo "$2" | sed 'y%./+-%__p_%'`
++ac_safe_member=`echo "$3" | sed 'y%./+-%__p_%'`
++ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
++changequote(, )dnl
++ ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
++changequote([, ])dnl
++
++AC_MSG_CHECKING([for $2.$3])
++AC_CACHE_VAL($ac_safe_all,
++[
++if test "x$4" = "x"; then
++ defineit="= 0"
++elif test "x$4" = "xno"; then
++ defineit=""
++else
++ defineit="$4"
++fi
++AC_TRY_COMPILE([
++$1
++],[
++struct $2 testit;
++testit.$3 $defineit;
++], eval "${ac_safe_all}=yes", eval "${ac_safe_all}=no" )
++])
++
++if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
++ AC_MSG_RESULT(yes)
++ AC_DEFINE_UNQUOTED($ac_uc_define)
++else
++ AC_MSG_RESULT(no)
++fi
++
++])
++
++dnl AC_CHECK_IFNET_FOR(SUBSTRUCT,[no])
++AC_DEFUN(AC_CHECK_IFNET_FOR,[
++dnl check for $1 in struct ifnet
++AC_CHECK_STRUCT_FOR([
++#ifdef IFNET_NEEDS_KERNEL
++#define _KERNEL 1
++#endif
++#include <sys/types.h>
++#include <sys/socket.h>
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#include <net/if.h>
++#ifdef HAVE_NET_IF_VAR_H
++#include <net/if_var.h>
++#endif
++#ifdef HAVE_SYS_QUEUE_H
++#include <sys/queue.h>
++#endif
++#ifdef linux
++struct ifnet {
++ char *if_name; /* name, e.g. "en" or "lo" */
++ short if_unit; /* sub-unit for lower level driver */
++ short if_mtu; /* maximum transmission unit */
++ short if_flags; /* up/down, broadcast, etc. */
++ int if_metric; /* routing metric (external only) */
++ char if_hwaddr [6]; /* ethernet address */
++ int if_type; /* interface type: 1=generic,
++ 28=slip, ether=6, loopback=24 */
++ int if_speed; /* interface speed: in bits/sec */
++
++ struct sockaddr if_addr; /* interface's address */
++ struct sockaddr ifu_broadaddr; /* broadcast address */
++ struct sockaddr ia_subnetmask; /* interface's mask */
++
++ struct ifqueue {
++ int ifq_len;
++ int ifq_drops;
++ } if_snd; /* output queue */
++ int if_ibytes; /* octets received on interface */
++ int if_ipackets; /* packets received on interface */
++ int if_ierrors; /* input errors on interface */
++ int if_iqdrops; /* input queue overruns */
++ int if_obytes; /* octets sent on interface */
++ int if_opackets; /* packets sent on interface */
++ int if_oerrors; /* output errors on interface */
++ int if_collisions; /* collisions on csma interfaces */
++/* end statistics */
++ struct ifnet *if_next;
++};
++#endif
++], ifnet, $1, $2)
++])
++
++dnl
++dnl Add a search path to the LIBS and CFLAGS variables
++dnl
++AC_DEFUN(AC_ADD_SEARCH_PATH,[
++ if test "x$1" != x -a -d $1; then
++ if test -d $1/lib; then
++ LDFLAGS="-L$1/lib $LDFLAGS"
++ fi
++ if test -d $1/include; then
++ CPPFLAGS="-I$1/include $CPPFLAGS"
++ fi
++ fi
++])
++
++dnl
++dnl Store information for displaying later.
++dnl
++AC_DEFUN(AC_MSG_CACHE_INIT,[
++ rm -f configure-summary
++])
++
++AC_DEFUN(AC_MSG_CACHE_ADD,[
++ cat >> configure-summary << EOF
++ $1
++EOF
++])
++
++AC_DEFUN(AC_MSG_CACHE_DISPLAY,[
++ echo ""
++ echo "---------------------------------------------------------"
++ echo " Net-SNMP configuration summary:"
++ echo "---------------------------------------------------------"
++ echo ""
++ cat configure-summary
++ echo ""
++ echo "---------------------------------------------------------"
++ echo ""
++])
++
+diff -ruN net-snmp-5.1.2-orig/agent/Makefile.in net-snmp-5.1.2-5/agent/Makefile.in
+--- net-snmp-5.1.2-orig/agent/Makefile.in 2003-10-14 15:30:48.000000000 +0200
++++ net-snmp-5.1.2-5/agent/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -82,7 +82,7 @@
+ # libnetsnmpagent objects
+ LIBAGENTOBJS=snmp_agent.o snmp_vars.o agent_read_config.o \
+ agent_registry.o agent_index.o agent_trap.o kernel.o \
+- agent_handler.o @OTHERAGENTLIBOBJS@
++ agent_handler.o @OTHERAGENTLIBOBJS@ @WRAPLIBS@
+ LLIBAGENTOBJS=snmp_agent.lo snmp_vars.lo agent_read_config.lo \
+ agent_registry.lo agent_index.lo agent_trap.lo kernel.lo \
+ agent_handler.lo @OTHERAGENTLIBLOBJS@
+@@ -120,11 +120,11 @@
+
+
+ libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
+- $(LIB_LD_CMD) libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION) ${LLIBAGENTOBJS} $(LIB_LD_LIBS)
++ $(LIB_LD_CMD) libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION) ${LLIBAGENTOBJS} $(LIB_LD_LIBS) $(AGENT_RELINK_LIBS)
+ $(RANLIB) libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
+
+ libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS}
+- $(LIB_LD_CMD) libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION) ${LMIBOBJS} $(LIB_LD_LIBS)
++ $(LIB_LD_CMD) libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION) ${LMIBOBJS} $(LIB_LD_LIBS) $(MIBS_RELINK_LIBS) $(LIBSENSORS)
+ $(RANLIB) libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
+
+ embedperlinstall:
+diff -ruN net-snmp-5.1.2-orig/agent/helpers/Makefile.in net-snmp-5.1.2-5/agent/helpers/Makefile.in
+--- net-snmp-5.1.2-orig/agent/helpers/Makefile.in 2004-03-01 06:26:12.000000000 +0100
++++ net-snmp-5.1.2-5/agent/helpers/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -68,5 +68,5 @@
+ all: standardall
+
+ libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION): ${LOBJS}
+- $(LIB_LD_CMD) libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION) ${LOBJS} $(LIB_LD_LIBS)
++ $(LIB_LD_CMD) libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION) ${LOBJS} $(LIB_LD_LIBS) $(HELPERS_RELINK_LIBS)
+ $(RANLIB) libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
+diff -ruN net-snmp-5.1.2-orig/agent/mibgroup/agentx/protocol.h net-snmp-5.1.2-5/agent/mibgroup/agentx/protocol.h
+--- net-snmp-5.1.2-orig/agent/mibgroup/agentx/protocol.h 2002-04-20 09:30:01.000000000 +0200
++++ net-snmp-5.1.2-5/agent/mibgroup/agentx/protocol.h 2005-03-13 16:17:21.000000000 +0100
+@@ -10,7 +10,7 @@
+ */
+
+ #define AGENTX_PORT 705
+-#define AGENTX_SOCKET "/var/agentx/master"
++#define AGENTX_SOCKET "/var/run/agentx"
+
+ /*
+ * AgentX versions
+diff -ruN net-snmp-5.1.2-orig/agent/mibgroup/mibII/interfaces.c net-snmp-5.1.2-5/agent/mibgroup/mibII/interfaces.c
+--- net-snmp-5.1.2-orig/agent/mibgroup/mibII/interfaces.c 2004-07-23 02:55:41.000000000 +0200
++++ net-snmp-5.1.2-5/agent/mibgroup/mibII/interfaces.c 2005-03-13 16:17:21.000000000 +0100
+@@ -1512,14 +1512,28 @@
+ struct ifreq ifrq;
+ struct ifnet **ifnetaddr_ptr;
+ FILE *devin;
+- unsigned long rec_pkt, rec_oct, rec_err, rec_drop;
+- unsigned long snd_pkt, snd_oct, snd_err, snd_drop, coll;
+ int i, fd;
+ conf_if_list *if_ptr;
++#ifdef SCNuMAX
++ uintmax_t rec_pkt, rec_oct, rec_err, rec_drop, rec_mcast;
++ uintmax_t snd_pkt, snd_oct, snd_err, snd_drop, coll;
++ const char *scan_line_2_2 =
++ "%" SCNuMAX " %" SCNuMAX " %" SCNuMAX " %" SCNuMAX
++ " %*" SCNuMAX " %*" SCNuMAX " %*" SCNuMAX " %*" SCNuMAX
++ " %" SCNuMAX " %" SCNuMAX " %" SCNuMAX " %" SCNuMAX
++ " %*" SCNuMAX " %" SCNuMAX;
++ const char *scan_line_2_0 =
++ "%" SCNuMAX " %" SCNuMAX " %*" SCNuMAX " %*" SCNuMAX
++ " %*" SCNuMAX " %" SCNuMAX " %" SCNuMAX " %*" SCNuMAX
++ " %*" SCNuMAX " %" SCNuMAX;
++#else
++ unsigned long rec_pkt, rec_oct, rec_err, rec_drop;
++ unsigned long snd_pkt, snd_oct, snd_err, snd_drop, coll;
+ const char *scan_line_2_2 =
+ "%lu %lu %lu %lu %*lu %*lu %*lu %*lu %lu %lu %lu %lu %*lu %lu";
+ const char *scan_line_2_0 =
+ "%lu %lu %*lu %*lu %*lu %lu %lu %*lu %*lu %lu";
++#endif
+ const char *scan_line_to_use;
+ struct timeval et; /* elapsed time */
+
+@@ -1598,6 +1612,10 @@
+ struct ifnet *nnew;
+ char *stats, *ifstart = line;
+
++ /* Ignore interfaces with no statistics. */
++ if (strstr(line, "No statistics available."))
++ continue;
++
+ if (line[strlen(line) - 1] == '\n')
+ line[strlen(line) - 1] = '\0';
+
+@@ -1631,7 +1649,7 @@
+ &coll) != 5)) {
+ if ((scan_line_to_use == scan_line_2_2)
+ && !strstr(line, "No statistics available"))
+- snmp_log(LOG_ERR,
++ snmp_log(LOG_DEBUG,
+ "/proc/net/dev data format error, line ==|%s|",
+ line);
+ continue;
+diff -ruN net-snmp-5.1.2-orig/agent/mibgroup/smux/smux.c net-snmp-5.1.2-5/agent/mibgroup/smux/smux.c
+--- net-snmp-5.1.2-orig/agent/mibgroup/smux/smux.c 2004-02-04 12:25:20.000000000 +0100
++++ net-snmp-5.1.2-5/agent/mibgroup/smux/smux.c 2005-03-13 16:17:21.000000000 +0100
+@@ -819,14 +819,14 @@
+ passwd[string_len] = '\0';
+ if (!smux_auth_peer(oid_name, oid_name_len, passwd, fd)) {
+ snmp_log(LOG_WARNING,
+- "refused smux peer: oid %s, password %s, descr %s\n",
+- oid_print, passwd, descr);
++ "refused smux peer: oid %s, descr %s\n",
++ oid_print, descr);
+ *fail = TRUE;
+ return ptr;
+ }
+ snmp_log(LOG_INFO,
+- "accepted smux peer: oid %s, password %s, descr %s\n",
+- oid_print, passwd, descr);
++ "accepted smux peer: oid %s, descr %s\n",
++ oid_print, descr);
+ *fail = FALSE;
+ return ptr;
+ }
+diff -ruN net-snmp-5.1.2-orig/apps/Makefile.in net-snmp-5.1.2-5/apps/Makefile.in
+--- net-snmp-5.1.2-orig/apps/Makefile.in 2004-03-09 16:51:28.000000000 +0100
++++ net-snmp-5.1.2-5/apps/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -129,7 +129,7 @@
+ $(LINK) -o $@ snmpdf.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS}
+
+ libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION): $(LLIBTRAPD_OBJS)
+- $(LIB_LD_CMD) libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION) ${LLIBTRAPD_OBJS} $(LIB_LD_LIBS)
++ $(LIB_LD_CMD) libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION) ${LLIBTRAPD_OBJS} $(LIB_LD_LIBS) $(TRAPD_RELINK_LIBS)
+ $(RANLIB) libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION)
+
+ snmpinforminstall:
+diff -ruN net-snmp-5.1.2-orig/apps/snmpnetstat/if.c net-snmp-5.1.2-5/apps/snmpnetstat/if.c
+--- net-snmp-5.1.2-orig/apps/snmpnetstat/if.c 2002-04-20 09:30:10.000000000 +0200
++++ net-snmp-5.1.2-5/apps/snmpnetstat/if.c 2005-03-13 16:17:21.000000000 +0100
+@@ -300,8 +300,9 @@
+ case IFINDEX:
+ ifindex = *var->val.integer;
+ for (cur_if = if_table;
+- cur_if->ifindex != ifindex && cur_if->ifindex != 0;
+- cur_if++);
++ cur_if < (if_table + cfg_nnets) &&
++ cur_if->ifindex != ifindex &&
++ cur_if->ifindex != 0; cur_if++);
+ if (cur_if >= (if_table + cfg_nnets)) {
+ fprintf(stderr,
+ "Inconsistent reponse from server. Aborting\n");
+@@ -492,8 +493,14 @@
+ case IPIFINDEX:
+ ifindex = *var->val.integer;
+ for (cur_if = if_table;
+- cur_if->ifindex != ifindex && cur_if->ifindex != 0;
+- cur_if++);
++ cur_if < (if_table + cfg_nnets) &&
++ cur_if->ifindex != ifindex &&
++ cur_if->ifindex != 0; cur_if++);
++ if (cur_if >= (if_table + cfg_nnets)) {
++ fprintf(stderr,
++ "Inconsistent reponse from server. Aborting.\n");
++ exit(0);
++ }
+ cur_if->ifindex = ifindex;
+ break;
+ case IPADDR:
+@@ -567,8 +574,14 @@
+ case IFINDEX:
+ ifindex = *var->val.integer;
+ for (cur_if = if_table;
+- cur_if->ifindex != ifindex && cur_if->ifindex != 0;
+- cur_if++);
++ cur_if < (if_table + cfg_nnets) &&
++ cur_if->ifindex != ifindex &&
++ cur_if->ifindex != 0; cur_if++);
++ if (cur_if >= (if_table + cfg_nnets)) {
++ fprintf(stderr,
++ "Inconsistent reponse from server. Aborting.\n");
++ exit(0);
++ }
+ cur_if->ifindex = ifindex;
+ break;
+ case INOCTETS:
+diff -ruN net-snmp-5.1.2-orig/configure.in net-snmp-5.1.2-5/configure.in
+--- net-snmp-5.1.2-orig/configure.in 2004-06-23 00:06:40.000000000 +0200
++++ net-snmp-5.1.2-5/configure.in 2005-03-13 16:17:21.000000000 +0100
+@@ -161,6 +161,9 @@
+ AC_DEFINE(SNMP_NO_DEBUGGING)
+ fi
+
++AC_ARG_WITH(rpm,
++[ --without-rpm Don't use RPM even if available.])
++
+ AC_ARG_WITH(dmalloc,
+ [ --with-dmalloc=PATH Use dmalloc library (www.dmalloc.com)],
+ if test "x$withval" = "xyes"; then
+@@ -1539,12 +1542,13 @@
+ AC_CHECK_LIB(RSAglue, RSA_PKCS1_RSAref)
+ fi
+
+- AC_CHECK_LIB(crypto, EVP_md5)
++ AC_CHECK_LIB(crypto, EVP_md5, [CRYPTOLIBS=-lcrypto], , )
+ AC_CHECK_FUNCS(AES_cfb128_encrypt)
+ fi
+ elif test "x$askedpkcs" = "xyes"; then
+ AC_CHECK_LIB(pkcs11, C_Initialize)
+ fi
++AC_SUBST(CRYPTOLIBS)
+
+ # Check for libraries that the agent needs
+ # saving old libraries
+@@ -1664,8 +1668,9 @@
+ # Replace `main' with a function in -lkvm:
+ AC_CHECK_LIB(kvm, kvm_read)
+ # DYNAMIC MODULE SUPPORT
+-AC_CHECK_LIB(dl, dlopen)
+-AC_CHECK_FUNCS(dlopen)
++AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN),
++ AC_CHECK_LIB(dl, dlopen, AC_DEFINE(HAVE_DLOPEN)
++ LIBS="${LIBS} -ldl"))
+
+ AC_CHECK_FUNCS(kvm_openfiles nlist knlist kvm_getprocs)
+ echo "$with_mib_modules" | grep "ucd-snmp/diskio" >/dev/null
+@@ -1979,7 +1984,7 @@
+
+ AC_MSG_RESULT([$ac_cv_type_ssize_t])
+ if test $ac_cv_type_ssize_t = yes; then
+- AC_DEFINE(HAVE_SSIZE_T)
++ AC_DEFINE(HAVE_SSIZE_T, 1, [Define if type ssize_t is available])
+ fi
+
+ # Check ps args
+diff -ruN net-snmp-5.1.2-orig/debian/README.Debian net-snmp-5.1.2-5/debian/README.Debian
+diff -ruN net-snmp-5.1.2-orig/debian/changelog net-snmp-5.1.2-5/debian/changelog
+diff -ruN net-snmp-5.1.2-orig/debian/control net-snmp-5.1.2-5/debian/control
+diff -ruN net-snmp-5.1.2-orig/debian/copyright net-snmp-5.1.2-5/debian/copyright
+diff -ruN net-snmp-5.1.2-orig/debian/fixman net-snmp-5.1.2-5/debian/fixman
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-base.dirs net-snmp-5.1.2-5/debian/libsnmp-base.dirs
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-base.docs net-snmp-5.1.2-5/debian/libsnmp-base.docs
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-base.files net-snmp-5.1.2-5/debian/libsnmp-base.files
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-base.postrm net-snmp-5.1.2-5/debian/libsnmp-base.postrm
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-base.prerm net-snmp-5.1.2-5/debian/libsnmp-base.prerm
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-perl.docs net-snmp-5.1.2-5/debian/libsnmp-perl.docs
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp-perl.files net-snmp-5.1.2-5/debian/libsnmp-perl.files
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5-dev.files net-snmp-5.1.2-5/debian/libsnmp5-dev.files
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5-dev.manpages net-snmp-5.1.2-5/debian/libsnmp5-dev.manpages
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5.dirs net-snmp-5.1.2-5/debian/libsnmp5.dirs
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5.docs net-snmp-5.1.2-5/debian/libsnmp5.docs
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5.files net-snmp-5.1.2-5/debian/libsnmp5.files
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5.postinst net-snmp-5.1.2-5/debian/libsnmp5.postinst
+diff -ruN net-snmp-5.1.2-orig/debian/libsnmp5.prerm net-snmp-5.1.2-5/debian/libsnmp5.prerm
+diff -ruN net-snmp-5.1.2-orig/debian/manpages/encode_keychange.1 net-snmp-5.1.2-5/debian/manpages/encode_keychange.1
+diff -ruN net-snmp-5.1.2-orig/debian/manpages/net-snmp-config.1 net-snmp-5.1.2-5/debian/manpages/net-snmp-config.1
+diff -ruN net-snmp-5.1.2-orig/debian/manpages/snmpvacm.1 net-snmp-5.1.2-5/debian/manpages/snmpvacm.1
+diff -ruN net-snmp-5.1.2-orig/debian/manpages/tkmib.1 net-snmp-5.1.2-5/debian/manpages/tkmib.1
+diff -ruN net-snmp-5.1.2-orig/debian/rules net-snmp-5.1.2-5/debian/rules
+diff -ruN net-snmp-5.1.2-orig/debian/snmp.files net-snmp-5.1.2-5/debian/snmp.files
+diff -ruN net-snmp-5.1.2-orig/debian/snmp.manpages net-snmp-5.1.2-5/debian/snmp.manpages
+diff -ruN net-snmp-5.1.2-orig/debian/snmp.preinst net-snmp-5.1.2-5/debian/snmp.preinst
+diff -ruN net-snmp-5.1.2-orig/debian/snmpd.default net-snmp-5.1.2-5/debian/snmpd.default
+diff -ruN net-snmp-5.1.2-orig/debian/snmpd.files net-snmp-5.1.2-5/debian/snmpd.files
+diff -ruN net-snmp-5.1.2-orig/debian/snmpd.init net-snmp-5.1.2-5/debian/snmpd.init
+diff -ruN net-snmp-5.1.2-orig/debian/snmpd.postinst net-snmp-5.1.2-5/debian/snmpd.postinst
+diff -ruN net-snmp-5.1.2-orig/debian/snmpd.postrm net-snmp-5.1.2-5/debian/snmpd.postrm
+diff -ruN net-snmp-5.1.2-orig/debian/tkmib.docs net-snmp-5.1.2-5/debian/tkmib.docs
+diff -ruN net-snmp-5.1.2-orig/debian/tkmib.files net-snmp-5.1.2-5/debian/tkmib.files
+diff -ruN net-snmp-5.1.2-orig/debian/tkmib.manpages net-snmp-5.1.2-5/debian/tkmib.manpages
+diff -ruN net-snmp-5.1.2-orig/debian/watch net-snmp-5.1.2-5/debian/watch
+diff -ruN net-snmp-5.1.2-orig/ipkg/libsnmp/CONTROL/control net-snmp-5.1.2-5/ipkg/libsnmp/CONTROL/control
+diff -ruN net-snmp-5.1.2-orig/ipkg/libsnmp-dev/CONTROL/control net-snmp-5.1.2-5/ipkg/libsnmp-dev/CONTROL/control
+diff -ruN net-snmp-5.1.2-orig/ipkg/rules net-snmp-5.1.2-5/ipkg/rules
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmp-utils/CONTROL/control net-snmp-5.1.2-5/ipkg/snmp-utils/CONTROL/control
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd/CONTROL/conffiles net-snmp-5.1.2-5/ipkg/snmpd/CONTROL/conffiles
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd/CONTROL/control net-snmp-5.1.2-5/ipkg/snmpd/CONTROL/control
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd/etc/default/snmpd net-snmp-5.1.2-5/ipkg/snmpd/etc/default/snmpd
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd/etc/init.d/snmpd net-snmp-5.1.2-5/ipkg/snmpd/etc/init.d/snmpd
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd/etc/snmp/snmpd.conf net-snmp-5.1.2-5/ipkg/snmpd/etc/snmp/snmpd.conf
+diff -ruN net-snmp-5.1.2-orig/ipkg/snmpd-static/CONTROL/control net-snmp-5.1.2-5/ipkg/snmpd-static/CONTROL/control
+diff -ruN net-snmp-5.1.2-orig/ipkg/version net-snmp-5.1.2-5/ipkg/version
+diff -ruN net-snmp-5.1.2-orig/local/Makefile.in net-snmp-5.1.2-5/local/Makefile.in
+--- net-snmp-5.1.2-orig/local/Makefile.in 2003-12-20 05:38:17.000000000 +0100
++++ net-snmp-5.1.2-5/local/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -58,7 +58,7 @@
+
+ mib2c.made: $(srcdir)/mib2c
+ if test "x$(PERLPROG)" != "x" ; then \
+- $(PERLPROG) -p -e 's%^#!.*/perl.*%#!$(PERLPROG)%;s#/usr/local/share/snmp#$(snmplibdir)#;' ${srcdir}/mib2c > mib2c.made; \
++ $(PERLPROG) -p -e 's%^#!.*/perl.*%#!$(PERLPROG)%;s#/usr/local/share/snmp#$(snmplibdir)#;s#/usr/local/etc/snmp#$(SNMPCONFPATH)#;' ${srcdir}/mib2c > mib2c.made; \
+ else \
+ touch mib2c.made; \
+ fi
+diff -ruN net-snmp-5.1.2-orig/local/mib2c net-snmp-5.1.2-5/local/mib2c
+--- net-snmp-5.1.2-orig/local/mib2c 2004-06-15 16:26:37.000000000 +0200
++++ net-snmp-5.1.2-5/local/mib2c 2005-03-13 16:17:21.000000000 +0100
+@@ -56,7 +56,8 @@
+ if($ENV{MIB2C_DIR}) {
+ push @def_search_dirs, $ENV{MIB2C_DIR};
+ }
+-push @def_search_dirs, "/usr/local/share/snmp/";
++push @def_search_dirs, "/etc/snmp/";
++push @def_search_dirs, "/usr/share/snmp/";
+
+
+ sub usage {
+diff -ruN net-snmp-5.1.2-orig/man/mib2c.1.def net-snmp-5.1.2-5/man/mib2c.1.def
+--- net-snmp-5.1.2-orig/man/mib2c.1.def 2003-10-02 20:04:19.000000000 +0200
++++ net-snmp-5.1.2-5/man/mib2c.1.def 2005-03-13 16:17:21.000000000 +0100
+@@ -72,8 +72,9 @@
+ .TP
+ .BI -c " CONFIGFILE"
+ Use CONFIGFILE when generating code. These files will be searched for
+-first in the current directory and then in the DATADIR directory
+-(which is where the default mib2c configuration files can be found).
++first in the current directory and then in /etc/snmp
++(which is where the default mib2c configuration files can be found)
++and finally in the DATADIR directory.
+ Running mib2c without the -c CONFIGFILE option will display
+ a description of the valid values for CONFIGFILE, that is,
+ the available config files, including new ones that you might
+diff -ruN net-snmp-5.1.2-orig/man/mib_api.3.def net-snmp-5.1.2-5/man/mib_api.3.def
+--- net-snmp-5.1.2-orig/man/mib_api.3.def 2004-04-15 00:41:32.000000000 +0200
++++ net-snmp-5.1.2-5/man/mib_api.3.def 2005-03-13 16:17:21.000000000 +0100
+@@ -5,7 +5,7 @@
+ add_module_replacement,
+ read_module, read_mib, read_all_mibs,
+ read_objid, read_module_node,
+-get_module_node, read_objid
++get_module_node
+ snmp_set_mib_warnings, snmp_set_save_descriptions,
+ shutdown_mib,
+ print_mib,
+@@ -34,9 +34,9 @@
+ .PP
+ .BI "void print_mib(FILE *" "fp" );
+ .PP
+-.BI "int read_objid(char *" "input" ", oid *" "output" ", int *" "out_len" );
++.BI "int read_objid(char *" "input" ", oid *" "output" ", size_t *" "out_len" );
+ .br
+-.BI "int get_module_node(char *" "name" ", char *" "module" ", oid *" "objid" ", int *" "objidlen" );
++.BI "int get_module_node(char *" "name" ", char *" "module" ", oid *" "objid" ", size_t *" "objidlen" );
+ .PP
+ .BI "void print_variable(const oid *" "objid" ", size_t " "objidlen" ", struct variable_list *" "variable" );
+ .br
+diff -ruN net-snmp-5.1.2-orig/man/snmp_config.5.def net-snmp-5.1.2-5/man/snmp_config.5.def
+--- net-snmp-5.1.2-orig/man/snmp_config.5.def 2003-12-10 11:41:41.000000000 +0100
++++ net-snmp-5.1.2-5/man/snmp_config.5.def 2005-03-13 16:17:21.000000000 +0100
+@@ -11,7 +11,7 @@
+ found and read from. By default, the applications look for
+ configuration files in the following 4 directories, in order:
+ SYSCONFDIR/snmp,
+-DATADIR/snmp, LIBDIR/snmp, and $HOME/.snmp. In each of these
++/etc/snmp, LIBDIR/snmp, and $HOME/.snmp. In each of these
+ directories, it looks for files with the extension of both
+ .IR conf " and " local.conf
+ (reading the second ones last). In this manner, there are
+diff -ruN net-snmp-5.1.2-orig/man/snmp_trap_api.3.def net-snmp-5.1.2-5/man/snmp_trap_api.3.def
+--- net-snmp-5.1.2-orig/man/snmp_trap_api.3.def 2003-09-29 04:58:18.000000000 +0200
++++ net-snmp-5.1.2-5/man/snmp_trap_api.3.def 2005-03-13 16:17:21.000000000 +0100
+@@ -1,8 +1,7 @@
+ .TH SNMP_TRAP_API 3 "7 Mar 2002" VVERSIONINFO "Net-SNMP"
+ .UC 5
+ .SH NAME
+-send_easy_trap, send_trap_vars, send_v2trap - send TRAPs or INFORMs
+-from a Net-SNMP MIB module
++send_easy_trap, send_trap_vars, send_v2trap - send TRAPs or INFORMs from a Net-SNMP MIB module
+ .SH SYNOPSIS
+ .B #include <net-snmp/agent/agent_trap.h>
+ .PP
+diff -ruN net-snmp-5.1.2-orig/mibs/BGP4-MIB.txt net-snmp-5.1.2-5/mibs/BGP4-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/BGP4-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/BGP4-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,929 @@
++ BGP4-MIB DEFINITIONS ::= BEGIN
++
++ IMPORTS
++ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
++ IpAddress, Integer32, Counter32, Gauge32, mib-2
++ FROM SNMPv2-SMI
++ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
++ FROM SNMPv2-CONF;
++
++ bgp MODULE-IDENTITY
++ LAST-UPDATED "9902100000Z"
++ ORGANIZATION "IETF IDR Working Group"
++ CONTACT-INFO "E-mail: idr@merit.net
++
++ Susan Hares (Editor)
++ Merit Network
++ 4251 Plymouth Road
++ Suite C
++ Ann Arbor, MI 48105-2785
++ Tel: +1 734 936 2095
++ Fax: +1 734 647 3185
++ E-mail: skh@merit.edu
++
++ Jeff Johnson (Editor)
++ RedBack Networks, Inc.
++ 1389 Moffett Park Drive
++ Sunnyvale, CA 94089-1134
++ Tel: +1 408 548 3516
++ Fax: +1 408 548 3599
++ E-mail: jeff@redback.com"
++ DESCRIPTION
++ "The MIB module for BGP-4."
++ REVISION "9902100000Z"
++ DESCRIPTION
++ "Corrected duplicate OBJECT IDENTIFIER
++ assignment in the conformance information."
++ REVISION "9601080000Z"
++ DESCRIPTION
++ "1) Fixed the definitions of the traps to
++ make them equivalent to their initial
++ definition in RFC 1269.
++ 2) Added compliance and conformance info."
++ ::= { mib-2 15 }
++
++ bgpVersion OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (1..255))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Vector of supported BGP protocol version
++ numbers. Each peer negotiates the version
++ from this vector. Versions are identified
++ via the string of bits contained within this
++ object. The first octet contains bits 0 to
++ 7, the second octet contains bits 8 to 15,
++ and so on, with the most significant bit
++ referring to the lowest bit number in the
++ octet (e.g., the MSB of the first octet
++ refers to bit 0). If a bit, i, is present
++ and set, then the version (i+1) of the BGP
++ is supported."
++ ::= { bgp 1 }
++
++ bgpLocalAs OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The local autonomous system number."
++ ::= { bgp 2 }
++
++
++
++ -- BGP Peer table. This table contains, one entry per BGP
++ -- peer, information about the BGP peer.
++
++ bgpPeerTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF BgpPeerEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "BGP peer table. This table contains,
++ one entry per BGP peer, information about the
++ connections with BGP peers."
++ ::= { bgp 3 }
++
++ bgpPeerEntry OBJECT-TYPE
++ SYNTAX BgpPeerEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Entry containing information about the
++ connection with a BGP peer."
++ INDEX { bgpPeerRemoteAddr }
++ ::= { bgpPeerTable 1 }
++
++ BgpPeerEntry ::= SEQUENCE {
++ bgpPeerIdentifier
++ IpAddress,
++ bgpPeerState
++ INTEGER,
++ bgpPeerAdminStatus
++ INTEGER,
++ bgpPeerNegotiatedVersion
++ Integer32,
++ bgpPeerLocalAddr
++ IpAddress,
++ bgpPeerLocalPort
++ INTEGER,
++ bgpPeerRemoteAddr
++ IpAddress,
++ bgpPeerRemotePort
++ INTEGER,
++ bgpPeerRemoteAs
++ INTEGER,
++ bgpPeerInUpdates
++ Counter32,
++ bgpPeerOutUpdates
++ Counter32,
++ bgpPeerInTotalMessages
++ Counter32,
++ bgpPeerOutTotalMessages
++ Counter32,
++ bgpPeerLastError
++ OCTET STRING,
++ bgpPeerFsmEstablishedTransitions
++ Counter32,
++ bgpPeerFsmEstablishedTime
++ Gauge32,
++ bgpPeerConnectRetryInterval
++ INTEGER,
++ bgpPeerHoldTime
++ INTEGER,
++ bgpPeerKeepAlive
++ INTEGER,
++ bgpPeerHoldTimeConfigured
++ INTEGER,
++ bgpPeerKeepAliveConfigured
++ INTEGER,
++ bgpPeerMinASOriginationInterval
++ INTEGER,
++ bgpPeerMinRouteAdvertisementInterval
++ INTEGER,
++ bgpPeerInUpdateElapsedTime
++ Gauge32
++ }
++
++ bgpPeerIdentifier OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The BGP Identifier of this entry's BGP peer."
++ ::= { bgpPeerEntry 1 }
++
++ bgpPeerState OBJECT-TYPE
++ SYNTAX INTEGER {
++ idle(1),
++ connect(2),
++ active(3),
++ opensent(4),
++ openconfirm(5),
++ established(6)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The BGP peer connection state."
++ ::= { bgpPeerEntry 2 }
++
++ bgpPeerAdminStatus OBJECT-TYPE
++ SYNTAX INTEGER {
++ stop(1),
++ start(2)
++ }
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The desired state of the BGP connection. A
++ transition from 'stop' to 'start' will cause
++ the BGP Start Event to be generated. A
++ transition from 'start' to 'stop' will cause
++ the BGP Stop Event to be generated. This
++ parameter can be used to restart BGP peer
++ connections. Care should be used in providing
++ write access to this object without adequate
++ authentication."
++ ::= { bgpPeerEntry 3 }
++
++ bgpPeerNegotiatedVersion OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The negotiated version of BGP running between
++ the two peers."
++ ::= { bgpPeerEntry 4 }
++
++ bgpPeerLocalAddr OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The local IP address of this entry's BGP
++ connection."
++ ::= { bgpPeerEntry 5 }
++
++ bgpPeerLocalPort OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The local port for the TCP connection between
++ the BGP peers."
++ ::= { bgpPeerEntry 6 }
++
++ bgpPeerRemoteAddr OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The remote IP address of this entry's BGP
++ peer."
++ ::= { bgpPeerEntry 7 }
++
++ bgpPeerRemotePort OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The remote port for the TCP connection between
++ the BGP peers. Note that the objects
++ bgpPeerLocalAddr, bgpPeerLocalPort,
++ bgpPeerRemoteAddr and bgpPeerRemotePort
++ provide the appropriate reference to the
++ standard MIB TCP connection table."
++ ::= { bgpPeerEntry 8 }
++
++ bgpPeerRemoteAs OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The remote autonomous system number."
++ ::= { bgpPeerEntry 9 }
++
++ bgpPeerInUpdates OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of BGP UPDATE messages received on
++ this connection. This object should be
++ initialized to zero (0) when the connection is
++ established."
++ ::= { bgpPeerEntry 10 }
++
++ bgpPeerOutUpdates OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of BGP UPDATE messages transmitted
++ on this connection. This object should be
++ initialized to zero (0) when the connection is
++ established."
++ ::= { bgpPeerEntry 11 }
++
++ bgpPeerInTotalMessages OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of messages received from the
++ remote peer on this connection. This object
++ should be initialized to zero when the
++ connection is established."
++ ::= { bgpPeerEntry 12 }
++
++ bgpPeerOutTotalMessages OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of messages transmitted to
++ the remote peer on this connection. This object
++ should be initialized to zero when the
++ connection is established."
++ ::= { bgpPeerEntry 13 }
++
++ bgpPeerLastError OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (2))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The last error code and subcode seen by this
++ peer on this connection. If no error has
++ occurred, this field is zero. Otherwise, the
++ first byte of this two byte OCTET STRING
++ contains the error code, and the second byte
++ contains the subcode."
++ ::= { bgpPeerEntry 14 }
++
++ bgpPeerFsmEstablishedTransitions OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of times the BGP FSM
++ transitioned into the established state."
++ ::= { bgpPeerEntry 15 }
++
++ bgpPeerFsmEstablishedTime OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This timer indicates how long (in seconds) this
++ peer has been in the Established state or how long
++ since this peer was last in the Established state.
++ It is set to zero when a new peer is configured or
++ the router is booted."
++ ::= { bgpPeerEntry 16 }
++
++ bgpPeerConnectRetryInterval OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the ConnectRetry
++ timer. The suggested value for this timer is
++ 120 seconds."
++ ::= { bgpPeerEntry 17 }
++
++ bgpPeerHoldTime OBJECT-TYPE
++ SYNTAX INTEGER ( 0 | 3..65535 )
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the Hold Timer
++ established with the peer. The value of this
++ object is calculated by this BGP speaker by
++ using the smaller of the value in
++ bgpPeerHoldTimeConfigured and the Hold Time
++ received in the OPEN message. This value
++ must be at lease three seconds if it is not
++ zero (0) in which case the Hold Timer has
++ not been established with the peer, or, the
++ value of bgpPeerHoldTimeConfigured is zero (0)."
++ ::= { bgpPeerEntry 18 }
++
++ bgpPeerKeepAlive OBJECT-TYPE
++ SYNTAX INTEGER ( 0 | 1..21845 )
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the KeepAlive
++ timer established with the peer. The value of
++ this object is calculated by this BGP speaker
++ such that, when compared with bgpPeerHoldTime,
++ it has the same proportion as what
++ bgpPeerKeepAliveConfigured has when compared
++ with bgpPeerHoldTimeConfigured. If the value
++ of this object is zero (0), it indicates that
++ the KeepAlive timer has not been established
++ with the peer, or, the value of
++ bgpPeerKeepAliveConfigured is zero (0)."
++ ::= { bgpPeerEntry 19 }
++
++ bgpPeerHoldTimeConfigured OBJECT-TYPE
++ SYNTAX INTEGER ( 0 | 3..65535 )
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the Hold Time
++ configured for this BGP speaker with this peer.
++ This value is placed in an OPEN message sent to
++ this peer by this BGP speaker, and is compared
++ with the Hold Time field in an OPEN message
++ received from the peer when determining the Hold
++ Time (bgpPeerHoldTime) with the peer. This value
++ must not be less than three seconds if it is not
++ zero (0) in which case the Hold Time is NOT to be
++ established with the peer. The suggested value for
++ this timer is 90 seconds."
++ ::= { bgpPeerEntry 20 }
++
++ bgpPeerKeepAliveConfigured OBJECT-TYPE
++ SYNTAX INTEGER ( 0 | 1..21845 )
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the KeepAlive timer
++ configured for this BGP speaker with this peer.
++ The value of this object will only determine the
++ KEEPALIVE messages' frequency relative to the value
++ specified in bgpPeerHoldTimeConfigured; the actual
++ time interval for the KEEPALIVE messages is
++ indicated by bgpPeerKeepAlive. A reasonable
++ maximum value for this timer would be configured to
++ be one third of that of bgpPeerHoldTimeConfigured.
++ If the value of this object is zero (0), no
++ periodical KEEPALIVE messages are sent to the peer
++ after the BGP connection has been established. The
++ suggested value for this timer is 30 seconds."
++ ::= { bgpPeerEntry 21 }
++
++ bgpPeerMinASOriginationInterval OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the
++ MinASOriginationInterval timer.
++ The suggested value for this timer is 15 seconds."
++ ::= { bgpPeerEntry 22 }
++
++ bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "Time interval in seconds for the
++ MinRouteAdvertisementInterval timer.
++ The suggested value for this timer is 30 seconds."
++ ::= { bgpPeerEntry 23 }
++
++ bgpPeerInUpdateElapsedTime OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Elapsed time in seconds since the last BGP
++ UPDATE message was received from the peer.
++ Each time bgpPeerInUpdates is incremented,
++ the value of this object is set to zero (0)."
++ ::= { bgpPeerEntry 24 }
++
++
++
++ bgpIdentifier OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The BGP Identifier of local system."
++ ::= { bgp 4 }
++
++
++
++ -- Received Path Attribute Table. This table contains,
++ -- one entry per path to a network, path attributes
++ -- received from all peers running BGP version 3 or less.
++ -- This table is obsolete, having been replaced in
++ -- functionality with the bgp4PathAttrTable.
++
++ bgpRcvdPathAttrTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF BgpPathAttrEntry
++ MAX-ACCESS not-accessible
++ STATUS obsolete
++ DESCRIPTION
++ "The BGP Received Path Attribute Table contains
++ information about paths to destination networks
++ received from all peers running BGP version 3 or
++ less."
++ ::= { bgp 5 }
++
++ bgpPathAttrEntry OBJECT-TYPE
++ SYNTAX BgpPathAttrEntry
++ MAX-ACCESS not-accessible
++ STATUS obsolete
++ DESCRIPTION
++ "Information about a path to a network."
++ INDEX { bgpPathAttrDestNetwork,
++ bgpPathAttrPeer }
++ ::= { bgpRcvdPathAttrTable 1 }
++
++ BgpPathAttrEntry ::= SEQUENCE {
++ bgpPathAttrPeer
++ IpAddress,
++ bgpPathAttrDestNetwork
++ IpAddress,
++ bgpPathAttrOrigin
++ INTEGER,
++ bgpPathAttrASPath
++ OCTET STRING,
++ bgpPathAttrNextHop
++ IpAddress,
++ bgpPathAttrInterASMetric
++ Integer32
++ }
++
++ bgpPathAttrPeer OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The IP address of the peer where the path
++ information was learned."
++ ::= { bgpPathAttrEntry 1 }
++
++ bgpPathAttrDestNetwork OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The address of the destination network."
++ ::= { bgpPathAttrEntry 2 }
++
++ bgpPathAttrOrigin OBJECT-TYPE
++ SYNTAX INTEGER {
++ igp(1),-- networks are interior
++ egp(2),-- networks learned via EGP
++ incomplete(3) -- undetermined
++ }
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The ultimate origin of the path information."
++ ::= { bgpPathAttrEntry 3 }
++
++ bgpPathAttrASPath OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (2..255))
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The set of ASs that must be traversed to reach
++ the network. This object is probably best
++ represented as SEQUENCE OF INTEGER. For SMI
++ compatibility, though, it is represented as
++ OCTET STRING. Each AS is represented as a pair
++ of octets according to the following algorithm:
++
++ first-byte-of-pair = ASNumber / 256;
++ second-byte-of-pair = ASNumber & 255;"
++ ::= { bgpPathAttrEntry 4 }
++
++ bgpPathAttrNextHop OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The address of the border router that should
++ be used for the destination network."
++ ::= { bgpPathAttrEntry 5 }
++
++ bgpPathAttrInterASMetric OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The optional inter-AS metric. If this
++ attribute has not been provided for this route,
++ the value for this object is 0."
++ ::= { bgpPathAttrEntry 6 }
++
++
++
++ -- BGP-4 Received Path Attribute Table. This table contains,
++ -- one entry per path to a network, path attributes
++ -- received from all peers running BGP-4.
++
++ bgp4PathAttrTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Bgp4PathAttrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The BGP-4 Received Path Attribute Table contains
++ information about paths to destination networks
++ received from all BGP4 peers."
++ ::= { bgp 6 }
++
++ bgp4PathAttrEntry OBJECT-TYPE
++ SYNTAX Bgp4PathAttrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information about a path to a network."
++ INDEX { bgp4PathAttrIpAddrPrefix,
++ bgp4PathAttrIpAddrPrefixLen,
++ bgp4PathAttrPeer }
++ ::= { bgp4PathAttrTable 1 }
++
++ Bgp4PathAttrEntry ::= SEQUENCE {
++ bgp4PathAttrPeer
++ IpAddress,
++ bgp4PathAttrIpAddrPrefixLen
++ INTEGER,
++ bgp4PathAttrIpAddrPrefix
++ IpAddress,
++ bgp4PathAttrOrigin
++ INTEGER,
++ bgp4PathAttrASPathSegment
++ OCTET STRING,
++ bgp4PathAttrNextHop
++ IpAddress,
++ bgp4PathAttrMultiExitDisc
++ INTEGER,
++ bgp4PathAttrLocalPref
++ INTEGER,
++ bgp4PathAttrAtomicAggregate
++ INTEGER,
++ bgp4PathAttrAggregatorAS
++ INTEGER,
++ bgp4PathAttrAggregatorAddr
++ IpAddress,
++ bgp4PathAttrCalcLocalPref
++ INTEGER,
++ bgp4PathAttrBest
++ INTEGER,
++ bgp4PathAttrUnknown
++ OCTET STRING
++ }
++
++ bgp4PathAttrPeer OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address of the peer where the path
++ information was learned."
++ ::= { bgp4PathAttrEntry 1 }
++ bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE
++ SYNTAX INTEGER (0..32)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Length in bits of the IP address prefix in the
++ Network Layer Reachability Information field."
++ ::= { bgp4PathAttrEntry 2 }
++
++ bgp4PathAttrIpAddrPrefix OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "An IP address prefix in the Network Layer
++ Reachability Information field. This object
++ is an IP address containing the prefix with
++ length specified by bgp4PathAttrIpAddrPrefixLen.
++ Any bits beyond the length specified by
++ bgp4PathAttrIpAddrPrefixLen are zeroed."
++ ::= { bgp4PathAttrEntry 3 }
++
++ bgp4PathAttrOrigin OBJECT-TYPE
++ SYNTAX INTEGER {
++ igp(1),-- networks are interior
++ egp(2),-- networks learned via EGP
++ incomplete(3) -- undetermined
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The ultimate origin of the path information."
++ ::= { bgp4PathAttrEntry 4 }
++
++ bgp4PathAttrASPathSegment OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (2..255))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The sequence of AS path segments. Each AS
++ path segment is represented by a triple
++ <type, length, value>.
++
++ The type is a 1-octet field which has two
++ possible values:
++ 1 AS_SET: unordered set of ASs a
++ route in the UPDATE message
++ has traversed
++ 2 AS_SEQUENCE: ordered set of ASs
++ a route in the UPDATE message
++ has traversed.
++
++ The length is a 1-octet field containing the
++ number of ASs in the value field.
++
++ The value field contains one or more AS
++ numbers, each AS is represented in the octet
++ string as a pair of octets according to the
++ following algorithm:
++
++ first-byte-of-pair = ASNumber / 256;
++ second-byte-of-pair = ASNumber & 255;"
++ ::= { bgp4PathAttrEntry 5 }
++
++ bgp4PathAttrNextHop OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The address of the border router that should
++ be used for the destination network."
++ ::= { bgp4PathAttrEntry 6 }
++
++ bgp4PathAttrMultiExitDisc OBJECT-TYPE
++ SYNTAX INTEGER (-1..2147483647)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This metric is used to discriminate between
++ multiple exit points to an adjacent autonomous
++ system. A value of -1 indicates the absence of
++ this attribute."
++ ::= { bgp4PathAttrEntry 7 }
++
++ bgp4PathAttrLocalPref OBJECT-TYPE
++ SYNTAX INTEGER (-1..2147483647)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The originating BGP4 speaker's degree of
++ preference for an advertised route. A value of
++ -1 indicates the absence of this attribute."
++ ::= { bgp4PathAttrEntry 8 }
++
++ bgp4PathAttrAtomicAggregate OBJECT-TYPE
++ SYNTAX INTEGER {
++ lessSpecificRrouteNotSelected(1),
++ lessSpecificRouteSelected(2)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Whether or not a system has selected
++ a less specific route without selecting a
++ more specific route."
++ ::= { bgp4PathAttrEntry 9 }
++
++ bgp4PathAttrAggregatorAS OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The AS number of the last BGP4 speaker that
++ performed route aggregation. A value of zero (0)
++ indicates the absence of this attribute."
++ ::= { bgp4PathAttrEntry 10 }
++
++ bgp4PathAttrAggregatorAddr OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address of the last BGP4 speaker that
++ performed route aggregation. A value of
++ 0.0.0.0 indicates the absence of this attribute."
++ ::= { bgp4PathAttrEntry 11 }
++
++ bgp4PathAttrCalcLocalPref OBJECT-TYPE
++ SYNTAX INTEGER (-1..2147483647)
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The degree of preference calculated by the
++ receiving BGP4 speaker for an advertised route.
++ A value of -1 indicates the absence of this
++ attribute."
++ ::= { bgp4PathAttrEntry 12 }
++
++ bgp4PathAttrBest OBJECT-TYPE
++ SYNTAX INTEGER {
++ false(1),-- not chosen as best route
++ true(2) -- chosen as best route
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "An indication of whether or not this route
++ was chosen as the best BGP4 route."
++ ::= { bgp4PathAttrEntry 13 }
++
++ bgp4PathAttrUnknown OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE(0..255))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "One or more path attributes not understood
++ by this BGP4 speaker. Size zero (0) indicates
++ the absence of such attribute(s). Octets
++ beyond the maximum size, if any, are not
++ recorded by this object."
++ ::= { bgp4PathAttrEntry 14 }
++
++
++ -- Traps.
++
++ -- note that in RFC 1657, bgpTraps was incorrectly
++ -- assigned a value of { bgp 7 }, and each of the
++ -- traps had the bgpPeerRemoteAddr object inappropriately
++ -- removed from their OBJECTS clause. The following
++ -- definitions restore the semantics of the traps as
++ -- they were initially defined in RFC 1269.
++
++ -- { bgp 7 } is unused
++
++ bgpTraps OBJECT IDENTIFIER ::= { bgp 0 }
++
++ bgpEstablished NOTIFICATION-TYPE
++ OBJECTS { bgpPeerRemoteAddr,
++ bgpPeerLastError,
++ bgpPeerState }
++ STATUS current
++ DESCRIPTION
++ "The BGP Established event is generated when
++ the BGP FSM enters the ESTABLISHED state."
++ ::= { bgpTraps 1 }
++
++ bgpBackwardTransition NOTIFICATION-TYPE
++ OBJECTS { bgpPeerRemoteAddr,
++ bgpPeerLastError,
++ bgpPeerState }
++ STATUS current
++ DESCRIPTION
++ "The BGPBackwardTransition Event is generated
++ when the BGP FSM moves from a higher numbered
++ state to a lower numbered state."
++ ::= { bgpTraps 2 }
++
++ -- conformance information
++
++ bgpMIBConformance OBJECT IDENTIFIER ::= { bgp 8 }
++ bgpMIBCompliances OBJECT IDENTIFIER ::= { bgpMIBConformance 1 }
++ bgpMIBGroups OBJECT IDENTIFIER ::= { bgpMIBConformance 2 }
++
++ -- compliance statements
++
++ bgpMIBCompliance MODULE-COMPLIANCE
++ STATUS current
++ DESCRIPTION
++ "The compliance statement for entities which
++ implement the BGP4 mib."
++ MODULE -- this module
++ MANDATORY-GROUPS { bgp4MIBGlobalsGroup,
++ bgp4MIBPeerGroup,
++ bgp4MIBPathAttrGroup,
++ bgp4MIBNotificationGroup }
++ ::= { bgpMIBCompliances 1 }
++
++ -- units of conformance
++
++ bgp4MIBGlobalsGroup OBJECT-GROUP
++ OBJECTS { bgpVersion,
++ bgpLocalAs,
++ bgpIdentifier }
++ STATUS current
++ DESCRIPTION
++ "A collection of objects providing information
++ on global BGP state."
++ ::= { bgpMIBGroups 1 }
++
++ bgp4MIBPeerGroup OBJECT-GROUP
++ OBJECTS { bgpPeerIdentifier,
++ bgpPeerState,
++ bgpPeerAdminStatus,
++ bgpPeerNegotiatedVersion,
++ bgpPeerLocalAddr,
++ bgpPeerLocalPort,
++ bgpPeerRemoteAddr,
++ bgpPeerRemotePort,
++ bgpPeerRemoteAs,
++ bgpPeerInUpdates,
++ bgpPeerOutUpdates,
++ bgpPeerInTotalMessages,
++ bgpPeerOutTotalMessages,
++ bgpPeerLastError,
++ bgpPeerFsmEstablishedTransitions,
++ bgpPeerFsmEstablishedTime,
++ bgpPeerConnectRetryInterval,
++ bgpPeerHoldTime,
++ bgpPeerKeepAlive,
++ bgpPeerHoldTimeConfigured,
++ bgpPeerKeepAliveConfigured,
++ bgpPeerMinASOriginationInterval,
++ bgpPeerMinRouteAdvertisementInterval,
++ bgpPeerInUpdateElapsedTime }
++ STATUS current
++ DESCRIPTION
++ "A collection of objects for managing
++ BGP peers."
++ ::= { bgpMIBGroups 2 }
++
++ bgp4MIBRcvdPathAttrGroup OBJECT-GROUP
++ OBJECTS { bgpPathAttrPeer,
++ bgpPathAttrDestNetwork,
++ bgpPathAttrOrigin,
++ bgpPathAttrASPath,
++ bgpPathAttrNextHop,
++ bgpPathAttrInterASMetric }
++ STATUS obsolete
++ DESCRIPTION
++ "A collection of objects for managing BGP
++ path entries.
++
++ This conformance group is obsolete,
++ replaced by bgp4MIBPathAttrGroup."
++ ::= { bgpMIBGroups 3 }
++
++ bgp4MIBPathAttrGroup OBJECT-GROUP
++ OBJECTS { bgp4PathAttrPeer,
++ bgp4PathAttrIpAddrPrefixLen,
++ bgp4PathAttrIpAddrPrefix,
++ bgp4PathAttrOrigin,
++ bgp4PathAttrASPathSegment,
++ bgp4PathAttrNextHop,
++ bgp4PathAttrMultiExitDisc,
++ bgp4PathAttrLocalPref,
++ bgp4PathAttrAtomicAggregate,
++ bgp4PathAttrAggregatorAS,
++ bgp4PathAttrAggregatorAddr,
++ bgp4PathAttrCalcLocalPref,
++ bgp4PathAttrBest,
++ bgp4PathAttrUnknown }
++ STATUS current
++ DESCRIPTION
++ "A collection of objects for managing
++ BGP path entries."
++ ::= { bgpMIBGroups 4 }
++
++ bgp4MIBNotificationGroup NOTIFICATION-GROUP
++ NOTIFICATIONS { bgpEstablished,
++ bgpBackwardTransition }
++ STATUS current
++ DESCRIPTION
++ "A collection of notifications for signaling
++ changes in BGP peer relationships."
++ ::= { bgpMIBGroups 5 }
++
++ END
+diff -ruN net-snmp-5.1.2-orig/mibs/BRIDGE-MIB.txt net-snmp-5.1.2-5/mibs/BRIDGE-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/BRIDGE-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/BRIDGE-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,1075 @@
++BRIDGE-MIB DEFINITIONS ::= BEGIN
++
++IMPORTS
++ Counter, TimeTicks
++ FROM RFC1155-SMI
++ mib-2
++ FROM RFC1213-MIB
++ OBJECT-TYPE
++ FROM RFC-1212
++ TRAP-TYPE
++ FROM RFC-1215;
++
++-- All representations of MAC addresses in this MIB Module
++-- use, as a textual convention (i.e. this convention does
++-- not affect their encoding), the data type:
++MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet address
++ -- in the
++ -- "canonical"
++ -- order
++-- defined by IEEE 802.1a, i.e., as if it were transmitted
++-- least significant bit first, even though 802.5 (in
++-- contrast to other n802.x protocols) requires MAC
++-- addresses to be transmitted most significant bit first.
++--
++-- 16-bit addresses, if needed, are represented by setting
++-- their upper 4 octets to all 0's, i.e., AAFF would be
++-- represented as 00000000AAFF.
++
++-- Similarly, all representations of Bridge-Id in this MIB
++-- Module use, as a textual convention (i.e. this
++-- convention does not affect their encoding), the data
++-- type:
++BridgeId ::= OCTET STRING (SIZE (8)) -- the
++ -- Bridge-Identifier
++ -- as used in the
++ -- Spanning Tree
++-- Protocol to uniquely identify a bridge. Its first two
++-- octets (in network byte order) contain a priority
++-- value and its last 6 octets contain the MAC address
++-- used to refer to a bridge in a unique fashion
++-- (typically, the numerically smallest MAC address
++-- of all ports on the bridge).
++
++-- Several objects in this MIB module represent values of
++-- timers used by the Spanning Tree Protocol. In this
++-- MIB, these timers have values in units of hundreths of
++-- a second (i.e. 1/100 secs).
++-- These timers, when stored in a Spanning Tree Protocol's
++-- BPDU, are in units of 1/256 seconds. Note, however,
++-- that 802.1D-1990 specifies a settable granularity of
++-- no more than 1 second for these timers. To avoid
++-- ambiguity, a data type is defined here as a textual
++-- convention and all representation of these timers
++-- in this MIB module are defined using this data type. An
++-- algorithm is also defined for converting between the
++-- different units, to ensure a timer's value is not
++-- distorted by multiple conversions.
++-- The data type is:
++
++Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds
++
++-- To convert a Timeout value into a value in units of
++-- 1/256 seconds, the following algorithm should be used:
++--
++-- b = floor( (n * 256) / 100)
++--
++-- where:
++-- floor = quotient [ignore remainder]
++-- n is the value in 1/100 second units
++-- b is the value in 1/256 second units
++--
++-- To convert the value from 1/256 second units back to
++-- 1/100 seconds, the following algorithm should be used:
++--
++-- n = ceiling( (b * 100) / 256)
++--
++-- where:
++-- ceiling = quotient [if remainder is 0], or
++-- quotient + 1 [if remainder is non-zero]
++-- n is the value in 1/100 second units
++-- b is the value in 1/256 second units
++--
++-- Note: it is important that the arithmetic operations are
++-- done in the order specified (i.e., multiply first, divide
++-- second).
++
++ dot1dBridge OBJECT IDENTIFIER ::= { mib-2 17 }
++
++-- groups in the Bridge MIB
++
++dot1dBase OBJECT IDENTIFIER ::= { dot1dBridge 1 }
++
++dot1dStp OBJECT IDENTIFIER ::= { dot1dBridge 2 }
++
++dot1dSr OBJECT IDENTIFIER ::= { dot1dBridge 3 }
++-- separately documented
++
++dot1dTp OBJECT IDENTIFIER ::= { dot1dBridge 4 }
++
++dot1dStatic OBJECT IDENTIFIER ::= { dot1dBridge 5 }
++
++-- the dot1dBase group
++
++-- Implementation of the dot1dBase group is mandatory for all
++-- bridges.
++
++dot1dBaseBridgeAddress OBJECT-TYPE
++ SYNTAX MacAddress
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The MAC address used by this bridge when it must
++ be referred to in a unique fashion. It is
++ recommended that this be the numerically smallest
++ MAC address of all ports that belong to this
++ bridge. However it is only required to be unique.
++ When concatenated with dot1dStpPriority a unique
++ BridgeIdentifier is formed which is used in the
++ Spanning Tree Protocol."
++ REFERENCE
++ "IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5"
++ ::= { dot1dBase 1 }
++
++dot1dBaseNumPorts OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of ports controlled by this bridging
++ entity."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.4.1.1.3"
++ ::= { dot1dBase 2 }
++
++dot1dBaseType OBJECT-TYPE
++ SYNTAX INTEGER {
++ unknown(1),
++ transparent-only(2),
++ sourceroute-only(3),
++ srt(4)
++ }
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "Indicates what type of bridging this bridge can
++ perform. If a bridge is actually performing a
++ certain type of bridging this will be indicated by
++ entries in the port table for the given type."
++ ::= { dot1dBase 3 }
++
++-- The Generic Bridge Port Table
++
++dot1dBasePortTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dBasePortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains generic information about
++ every port that is associated with this bridge.
++ Transparent, source-route, and srt ports are
++ included."
++ ::= { dot1dBase 4 }
++
++dot1dBasePortEntry OBJECT-TYPE
++ SYNTAX Dot1dBasePortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A list of information for each port of the
++ bridge."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.4.2, 6.6.1"
++ INDEX { dot1dBasePort }
++ ::= { dot1dBasePortTable 1 }
++
++Dot1dBasePortEntry ::=
++ SEQUENCE {
++ dot1dBasePort
++ INTEGER,
++ dot1dBasePortIfIndex
++ INTEGER,
++ dot1dBasePortCircuit
++
++ OBJECT IDENTIFIER,
++ dot1dBasePortDelayExceededDiscards
++ Counter,
++ dot1dBasePortMtuExceededDiscards
++ Counter
++ }
++
++dot1dBasePort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the port for which this entry
++ contains bridge management information."
++ ::= { dot1dBasePortEntry 1 }
++
++dot1dBasePortIfIndex OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The value of the instance of the ifIndex object,
++ defined in MIB-II, for the interface corresponding
++ to this port."
++ ::= { dot1dBasePortEntry 2 }
++
++dot1dBasePortCircuit OBJECT-TYPE
++ SYNTAX OBJECT IDENTIFIER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "For a port which (potentially) has the same value
++ of dot1dBasePortIfIndex as another port on the
++ same bridge, this object contains the name of an
++ object instance unique to this port. For example,
++ in the case where multiple ports correspond one-
++ to-one with multiple X.25 virtual circuits, this
++ value might identify an (e.g., the first) object
++ instance associated with the X.25 virtual circuit
++ corresponding to this port.
++
++ For a port which has a unique value of
++ dot1dBasePortIfIndex, this object can have the
++ value { 0 0 }."
++ ::= { dot1dBasePortEntry 3 }
++
++dot1dBasePortDelayExceededDiscards OBJECT-TYPE
++ SYNTAX Counter
++
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of frames discarded by this port due
++ to excessive transit delay through the bridge. It
++ is incremented by both transparent and source
++ route bridges."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.6.1.1.3"
++ ::= { dot1dBasePortEntry 4 }
++
++dot1dBasePortMtuExceededDiscards OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of frames discarded by this port due
++ to an excessive size. It is incremented by both
++ transparent and source route bridges."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.6.1.1.3"
++ ::= { dot1dBasePortEntry 5 }
++
++-- the dot1dStp group
++
++-- Implementation of the dot1dStp group is optional. It is
++-- implemented by those bridges that support the Spanning Tree
++-- Protocol.
++
++dot1dStpProtocolSpecification OBJECT-TYPE
++ SYNTAX INTEGER {
++ unknown(1),
++ decLb100(2),
++ ieee8021d(3)
++ }
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "An indication of what version of the Spanning
++ Tree Protocol is being run. The value
++ 'decLb100(2)' indicates the DEC LANbridge 100
++ Spanning Tree protocol. IEEE 802.1d
++ implementations will return 'ieee8021d(3)'. If
++ future versions of the IEEE Spanning Tree Protocol
++ are released that are incompatible with the
++ current version a new value will be defined."
++
++ ::= { dot1dStp 1 }
++
++dot1dStpPriority OBJECT-TYPE
++ SYNTAX INTEGER (0..65535)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The value of the write-able portion of the Bridge
++ ID, i.e., the first two octets of the (8 octet
++ long) Bridge ID. The other (last) 6 octets of the
++ Bridge ID are given by the value of
++ dot1dBaseBridgeAddress."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.7"
++ ::= { dot1dStp 2 }
++
++dot1dStpTimeSinceTopologyChange OBJECT-TYPE
++ SYNTAX TimeTicks
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The time (in hundredths of a second) since the
++ last time a topology change was detected by the
++ bridge entity."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.8.1.1.3"
++ ::= { dot1dStp 3 }
++
++dot1dStpTopChanges OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The total number of topology changes detected by
++ this bridge since the management entity was last
++ reset or initialized."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.8.1.1.3"
++ ::= { dot1dStp 4 }
++
++dot1dStpDesignatedRoot OBJECT-TYPE
++ SYNTAX BridgeId
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The bridge identifier of the root of the spanning
++ tree as determined by the Spanning Tree Protocol
++ as executed by this node. This value is used as
++
++ the Root Identifier parameter in all Configuration
++ Bridge PDUs originated by this node."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.1"
++ ::= { dot1dStp 5 }
++
++dot1dStpRootCost OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The cost of the path to the root as seen from
++ this bridge."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.2"
++ ::= { dot1dStp 6 }
++
++dot1dStpRootPort OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the port which offers the
++ lowest cost path from this bridge to the root
++ bridge."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.3"
++ ::= { dot1dStp 7 }
++
++dot1dStpMaxAge OBJECT-TYPE
++ SYNTAX Timeout
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The maximum age of Spanning Tree Protocol
++ information learned from the network on any port
++ before it is discarded, in units of hundredths of
++ a second. This is the actual value that this
++ bridge is currently using."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.4"
++ ::= { dot1dStp 8 }
++
++dot1dStpHelloTime OBJECT-TYPE
++ SYNTAX Timeout
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++
++ "The amount of time between the transmission of
++ Configuration bridge PDUs by this node on any port
++ when it is the root of the spanning tree or trying
++ to become so, in units of hundredths of a second.
++ This is the actual value that this bridge is
++ currently using."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.5"
++ ::= { dot1dStp 9 }
++
++dot1dStpHoldTime OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "This time value determines the interval length
++ during which no more than two Configuration bridge
++ PDUs shall be transmitted by this node, in units
++ of hundredths of a second."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.14"
++ ::= { dot1dStp 10 }
++
++dot1dStpForwardDelay OBJECT-TYPE
++ SYNTAX Timeout
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "This time value, measured in units of hundredths
++ of a second, controls how fast a port changes its
++ spanning state when moving towards the Forwarding
++ state. The value determines how long the port
++ stays in each of the Listening and Learning
++ states, which precede the Forwarding state. This
++ value is also used, when a topology change has
++ been detected and is underway, to age all dynamic
++ entries in the Forwarding Database. [Note that
++ this value is the one that this bridge is
++ currently using, in contrast to
++ dot1dStpBridgeForwardDelay which is the value that
++ this bridge and all others would start using
++ if/when this bridge were to become the root.]"
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.6"
++ ::= { dot1dStp 11 }
++
++dot1dStpBridgeMaxAge OBJECT-TYPE
++ SYNTAX Timeout (600..4000)
++
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The value that all bridges use for MaxAge when
++ this bridge is acting as the root. Note that
++ 802.1D-1990 specifies that the range for this
++ parameter is related to the value of
++ dot1dStpBridgeHelloTime. The granularity of this
++ timer is specified by 802.1D-1990 to be 1 second.
++ An agent may return a badValue error if a set is
++ attempted to a value which is not a whole number
++ of seconds."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.8"
++ ::= { dot1dStp 12 }
++
++dot1dStpBridgeHelloTime OBJECT-TYPE
++ SYNTAX Timeout (100..1000)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The value that all bridges use for HelloTime when
++ this bridge is acting as the root. The
++ granularity of this timer is specified by 802.1D-
++ 1990 to be 1 second. An agent may return a
++ badValue error if a set is attempted to a value
++ which is not a whole number of seconds."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.9"
++ ::= { dot1dStp 13 }
++
++dot1dStpBridgeForwardDelay OBJECT-TYPE
++ SYNTAX Timeout (400..3000)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The value that all bridges use for ForwardDelay
++ when this bridge is acting as the root. Note that
++ 802.1D-1990 specifies that the range for this
++ parameter is related to the value of
++ dot1dStpBridgeMaxAge. The granularity of this
++ timer is specified by 802.1D-1990 to be 1 second.
++ An agent may return a badValue error if a set is
++ attempted to a value which is not a whole number
++ of seconds."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.3.10"
++ ::= { dot1dStp 14 }
++
++-- The Spanning Tree Port Table
++
++dot1dStpPortTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dStpPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains port-specific information
++ for the Spanning Tree Protocol."
++ ::= { dot1dStp 15 }
++
++dot1dStpPortEntry OBJECT-TYPE
++ SYNTAX Dot1dStpPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A list of information maintained by every port
++ about the Spanning Tree Protocol state for that
++ port."
++ INDEX { dot1dStpPort }
++ ::= { dot1dStpPortTable 1 }
++
++Dot1dStpPortEntry ::=
++ SEQUENCE {
++ dot1dStpPort
++ INTEGER,
++ dot1dStpPortPriority
++ INTEGER,
++ dot1dStpPortState
++ INTEGER,
++ dot1dStpPortEnable
++ INTEGER,
++ dot1dStpPortPathCost
++ INTEGER,
++ dot1dStpPortDesignatedRoot
++ BridgeId,
++ dot1dStpPortDesignatedCost
++ INTEGER,
++ dot1dStpPortDesignatedBridge
++ BridgeId,
++ dot1dStpPortDesignatedPort
++ OCTET STRING,
++ dot1dStpPortForwardTransitions
++ Counter
++ }
++
++dot1dStpPort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the port for which this entry
++ contains Spanning Tree Protocol management
++ information."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.8.2.1.2"
++ ::= { dot1dStpPortEntry 1 }
++
++dot1dStpPortPriority OBJECT-TYPE
++ SYNTAX INTEGER (0..255)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The value of the priority field which is
++ contained in the first (in network byte order)
++ octet of the (2 octet long) Port ID. The other
++ octet of the Port ID is given by the value of
++ dot1dStpPort."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.1"
++ ::= { dot1dStpPortEntry 2 }
++
++dot1dStpPortState OBJECT-TYPE
++ SYNTAX INTEGER {
++ disabled(1),
++ blocking(2),
++ listening(3),
++ learning(4),
++ forwarding(5),
++ broken(6)
++ }
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port's current state as defined by
++ application of the Spanning Tree Protocol. This
++ state controls what action a port takes on
++ reception of a frame. If the bridge has detected
++ a port that is malfunctioning it will place that
++ port into the broken(6) state. For ports which
++ are disabled (see dot1dStpPortEnable), this object
++ will have a value of disabled(1)."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.2"
++ ::= { dot1dStpPortEntry 3 }
++
++dot1dStpPortEnable OBJECT-TYPE
++ SYNTAX INTEGER {
++ enabled(1),
++ disabled(2)
++ }
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The enabled/disabled status of the port."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.2"
++ ::= { dot1dStpPortEntry 4 }
++
++dot1dStpPortPathCost OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The contribution of this port to the path cost of
++ paths towards the spanning tree root which include
++ this port. 802.1D-1990 recommends that the
++ default value of this parameter be in inverse
++ proportion to the speed of the attached LAN."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.3"
++ ::= { dot1dStpPortEntry 5 }
++
++dot1dStpPortDesignatedRoot OBJECT-TYPE
++ SYNTAX BridgeId
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The unique Bridge Identifier of the Bridge
++ recorded as the Root in the Configuration BPDUs
++ transmitted by the Designated Bridge for the
++ segment to which the port is attached."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.4"
++ ::= { dot1dStpPortEntry 6 }
++
++dot1dStpPortDesignatedCost OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The path cost of the Designated Port of the
++ segment connected to this port. This value is
++ compared to the Root Path Cost field in received
++
++ bridge PDUs."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.5"
++ ::= { dot1dStpPortEntry 7 }
++
++dot1dStpPortDesignatedBridge OBJECT-TYPE
++ SYNTAX BridgeId
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The Bridge Identifier of the bridge which this
++ port considers to be the Designated Bridge for
++ this port's segment."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.6"
++ ::= { dot1dStpPortEntry 8 }
++
++dot1dStpPortDesignatedPort OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (2))
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The Port Identifier of the port on the Designated
++ Bridge for this port's segment."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 4.5.5.7"
++ ::= { dot1dStpPortEntry 9 }
++
++dot1dStpPortForwardTransitions OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of times this port has transitioned
++ from the Learning state to the Forwarding state."
++ ::= { dot1dStpPortEntry 10 }
++
++-- the dot1dTp group
++
++-- Implementation of the dot1dTp group is optional. It is
++-- implemented by those bridges that support the transparent
++-- bridging mode. A transparent or SRT bridge will implement
++-- this group.
++
++dot1dTpLearnedEntryDiscards OBJECT-TYPE
++ SYNTAX Counter
++
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The total number of Forwarding Database entries,
++ which have been or would have been learnt, but
++ have been discarded due to a lack of space to
++ store them in the Forwarding Database. If this
++ counter is increasing, it indicates that the
++ Forwarding Database is regularly becoming full (a
++ condition which has unpleasant performance effects
++ on the subnetwork). If this counter has a
++ significant value but is not presently increasing,
++ it indicates that the problem has been occurring
++ but is not persistent."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.7.1.1.3"
++ ::= { dot1dTp 1 }
++
++dot1dTpAgingTime OBJECT-TYPE
++ SYNTAX INTEGER (10..1000000)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The timeout period in seconds for aging out
++ dynamically learned forwarding information.
++ 802.1D-1990 recommends a default of 300 seconds."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.7.1.1.3"
++ ::= { dot1dTp 2 }
++
++-- The Forwarding Database for Transparent Bridges
++
++dot1dTpFdbTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dTpFdbEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains information about unicast
++ entries for which the bridge has forwarding and/or
++ filtering information. This information is used
++ by the transparent bridging function in
++ determining how to propagate a received frame."
++ ::= { dot1dTp 3 }
++
++dot1dTpFdbEntry OBJECT-TYPE
++ SYNTAX Dot1dTpFdbEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "Information about a specific unicast MAC address
++ for which the bridge has some forwarding and/or
++ filtering information."
++ INDEX { dot1dTpFdbAddress }
++ ::= { dot1dTpFdbTable 1 }
++
++Dot1dTpFdbEntry ::=
++ SEQUENCE {
++ dot1dTpFdbAddress
++ MacAddress,
++ dot1dTpFdbPort
++ INTEGER,
++ dot1dTpFdbStatus
++ INTEGER
++ }
++
++dot1dTpFdbAddress OBJECT-TYPE
++ SYNTAX MacAddress
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "A unicast MAC address for which the bridge has
++ forwarding and/or filtering information."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
++ ::= { dot1dTpFdbEntry 1 }
++
++dot1dTpFdbPort OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "Either the value '0', or the port number of the
++ port on which a frame having a source address
++ equal to the value of the corresponding instance
++ of dot1dTpFdbAddress has been seen. A value of
++ '0' indicates that the port number has not been
++ learned but that the bridge does have some
++ forwarding/filtering information about this
++ address (e.g. in the dot1dStaticTable).
++ Implementors are encouraged to assign the port
++ value to this object whenever it is learned even
++ for addresses for which the corresponding value of
++ dot1dTpFdbStatus is not learned(3)."
++ ::= { dot1dTpFdbEntry 2 }
++
++dot1dTpFdbStatus OBJECT-TYPE
++ SYNTAX INTEGER {
++ other(1),
++ invalid(2),
++ learned(3),
++ self(4),
++ mgmt(5)
++ }
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The status of this entry. The meanings of the
++ values are:
++ other(1) : none of the following. This would
++ include the case where some other
++ MIB object (not the corresponding
++ instance of dot1dTpFdbPort, nor an
++ entry in the dot1dStaticTable) is
++ being used to determine if and how
++ frames addressed to the value of
++ the corresponding instance of
++ dot1dTpFdbAddress are being
++ forwarded.
++ invalid(2) : this entry is not longer valid
++ (e.g., it was learned but has since
++ aged-out), but has not yet been
++ flushed from the table.
++ learned(3) : the value of the corresponding
++ instance of dot1dTpFdbPort was
++ learned, and is being used.
++ self(4) : the value of the corresponding
++ instance of dot1dTpFdbAddress
++ represents one of the bridge's
++ addresses. The corresponding
++ instance of dot1dTpFdbPort
++ indicates which of the bridge's
++ ports has this address.
++ mgmt(5) : the value of the corresponding
++ instance of dot1dTpFdbAddress is
++ also the value of an existing
++ instance of dot1dStaticAddress."
++ ::= { dot1dTpFdbEntry 3 }
++
++-- Port Table for Transparent Bridges
++
++dot1dTpPortTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dTpPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains information about every
++ port that is associated with this transparent
++ bridge."
++ ::= { dot1dTp 4 }
++
++dot1dTpPortEntry OBJECT-TYPE
++ SYNTAX Dot1dTpPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A list of information for each port of a
++ transparent bridge."
++ INDEX { dot1dTpPort }
++ ::= { dot1dTpPortTable 1 }
++
++Dot1dTpPortEntry ::=
++ SEQUENCE {
++ dot1dTpPort
++ INTEGER,
++ dot1dTpPortMaxInfo
++ INTEGER,
++ dot1dTpPortInFrames
++ Counter,
++ dot1dTpPortOutFrames
++ Counter,
++ dot1dTpPortInDiscards
++ Counter
++ }
++
++dot1dTpPort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the port for which this entry
++ contains Transparent bridging management
++ information."
++ ::= { dot1dTpPortEntry 1 }
++
++-- It would be nice if we could use ifMtu as the size of the
++-- largest INFO field, but we can't because ifMtu is defined
++-- to be the size that the (inter-)network layer can use which
++-- can differ from the MAC layer (especially if several layers
++-- of encapsulation are used).
++
++dot1dTpPortMaxInfo OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The maximum size of the INFO (non-MAC) field that
++ this port will receive or transmit."
++ ::= { dot1dTpPortEntry 2 }
++
++dot1dTpPortInFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of frames that have been received by
++ this port from its segment. Note that a frame
++ received on the interface corresponding to this
++ port is only counted by this object if and only if
++ it is for a protocol being processed by the local
++ bridging function, including bridge management
++ frames."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.6.1.1.3"
++ ::= { dot1dTpPortEntry 3 }
++
++dot1dTpPortOutFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of frames that have been transmitted
++ by this port to its segment. Note that a frame
++ transmitted on the interface corresponding to this
++ port is only counted by this object if and only if
++ it is for a protocol being processed by the local
++ bridging function, including bridge management
++ frames."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.6.1.1.3"
++ ::= { dot1dTpPortEntry 4 }
++
++dot1dTpPortInDiscards OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "Count of valid frames received which were
++ discarded (i.e., filtered) by the Forwarding
++ Process."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.6.1.1.3"
++ ::= { dot1dTpPortEntry 5 }
++-- The Static (Destination-Address Filtering) Database
++
++-- Implementation of this group is optional.
++
++dot1dStaticTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dStaticEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table containing filtering information
++ configured into the bridge by (local or network)
++ management specifying the set of ports to which
++ frames received from specific ports and containing
++ specific destination addresses are allowed to be
++ forwarded. The value of zero in this table as the
++ port number from which frames with a specific
++ destination address are received, is used to
++ specify all ports for which there is no specific
++ entry in this table for that particular
++ destination address. Entries are valid for
++ unicast and for group/broadcast addresses."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.7.2"
++ ::= { dot1dStatic 1 }
++
++dot1dStaticEntry OBJECT-TYPE
++ SYNTAX Dot1dStaticEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "Filtering information configured into the bridge
++ by (local or network) management specifying the
++ set of ports to which frames received from a
++ specific port and containing a specific
++ destination address are allowed to be forwarded."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 6.7.2"
++ INDEX { dot1dStaticAddress, dot1dStaticReceivePort }
++ ::= { dot1dStaticTable 1 }
++
++Dot1dStaticEntry ::=
++ SEQUENCE {
++ dot1dStaticAddress
++ MacAddress,
++ dot1dStaticReceivePort
++ INTEGER,
++ dot1dStaticAllowedToGoTo
++ OCTET STRING,
++ dot1dStaticStatus
++ INTEGER
++ }
++
++dot1dStaticAddress OBJECT-TYPE
++ SYNTAX MacAddress
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The destination MAC address in a frame to which
++ this entry's filtering information applies. This
++ object can take the value of a unicast address, a
++ group address or the broadcast address."
++ REFERENCE
++ "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
++ ::= { dot1dStaticEntry 1 }
++
++dot1dStaticReceivePort OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "Either the value '0', or the port number of the
++ port from which a frame must be received in order
++ for this entry's filtering information to apply.
++ A value of zero indicates that this entry applies
++ on all ports of the bridge for which there is no
++ other applicable entry."
++ ::= { dot1dStaticEntry 2 }
++
++dot1dStaticAllowedToGoTo OBJECT-TYPE
++ SYNTAX OCTET STRING
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The set of ports to which frames received from a
++ specific port and destined for a specific MAC
++
++ address, are allowed to be forwarded. Each octet
++ within the value of this object specifies a set of
++ eight ports, with the first octet specifying ports
++ 1 through 8, the second octet specifying ports 9
++ through 16, etc. Within each octet, the most
++ significant bit represents the lowest numbered
++ port, and the least significant bit represents the
++ highest numbered port. Thus, each port of the
++ bridge is represented by a single bit within the
++ value of this object. If that bit has a value of
++ '1' then that port is included in the set of
++ ports; the port is not included if its bit has a
++ value of '0'. (Note that the setting of the bit
++ corresponding to the port from which a frame is
++ received is irrelevant.) The default value of
++ this object is a string of ones of appropriate
++ length."
++ ::= { dot1dStaticEntry 3 }
++
++dot1dStaticStatus OBJECT-TYPE
++ SYNTAX INTEGER {
++ other(1),
++ invalid(2),
++ permanent(3),
++ deleteOnReset(4),
++ deleteOnTimeout(5)
++ }
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "This object indicates the status of this entry.
++ The default value is permanent(3).
++ other(1) - this entry is currently in use but
++ the conditions under which it will
++ remain so are different from each of the
++ following values.
++ invalid(2) - writing this value to the object
++ removes the corresponding entry.
++ permanent(3) - this entry is currently in use
++ and will remain so after the next reset
++ of the bridge.
++ deleteOnReset(4) - this entry is currently in
++ use and will remain so until the next
++ reset of the bridge.
++ deleteOnTimeout(5) - this entry is currently
++ in use and will remain so until it is
++ aged out."
++
++ ::= { dot1dStaticEntry 4 }
++
++-- Traps for use by Bridges
++
++-- Traps for the Spanning Tree Protocol
++
++newRoot TRAP-TYPE
++ ENTERPRISE dot1dBridge
++ DESCRIPTION
++ "The newRoot trap indicates that the sending agent
++ has become the new root of the Spanning Tree; the
++ trap is sent by a bridge soon after its election
++ as the new root, e.g., upon expiration of the
++ Topology Change Timer immediately subsequent to
++ its election. Implementation of this trap is
++ optional."
++ ::= 1
++
++topologyChange TRAP-TYPE
++ ENTERPRISE dot1dBridge
++ DESCRIPTION
++ "A topologyChange trap is sent by a bridge when
++ any of its configured ports transitions from the
++ Learning state to the Forwarding state, or from
++ the Forwarding state to the Blocking state. The
++ trap is not sent if a newRoot trap is sent for the
++ same transition. Implementation of this trap is
++ optional."
++ ::= 2
++
++END
+diff -ruN net-snmp-5.1.2-orig/mibs/GNOME-SMI.txt net-snmp-5.1.2-5/mibs/GNOME-SMI.txt
+--- net-snmp-5.1.2-orig/mibs/GNOME-SMI.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/GNOME-SMI.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,72 @@
++GNOME-SMI DEFINITIONS ::= BEGIN
++
++IMPORTS
++ MODULE-IDENTITY,
++ OBJECT-IDENTITY,
++ enterprises
++ FROM SNMPv2-SMI;
++
++gnome MODULE-IDENTITY
++ LAST-UPDATED "200312070000Z"
++ ORGANIZATION "GNOME project"
++ CONTACT-INFO
++ "GNU Network Object Model Environment project
++
++ see http://www.gnome.org for contact persons of a particular
++ area or subproject of GNOME.
++
++ Administrative contact for MIB module:
++
++ Jochen Friedrich
++ Buedingerstr. 30b
++ 63546 Hammersbach
++ Germany
++
++ email: jochen@scram.de"
++ DESCRIPTION
++ "The Structure of GNOME."
++
++ -- revision history
++
++ REVISION "9809010000Z" -- September 01, 1998
++ DESCRIPTION
++ "Initial version."
++
++ REVISION "200312070000Z" -- December 07, 2003
++ DESCRIPTION
++ "Added gnomeSysadmin subtree for GNOME project system administration.
++ Updated contact info."
++
++ ::= { enterprises 3317 } -- assigned by IANA
++
++gnomeProducts OBJECT-IDENTITY
++ STATUS current
++ DESCRIPTION
++ "gnomeProducts is the root OBJECT IDENTIFIER from
++ which sysObjectID values are assigned."
++ ::= { gnome 1 }
++
++gnomeMgmt OBJECT-IDENTITY
++ STATUS current
++ DESCRIPTION
++ "gnomeMgmt defines the subtree for production GNOME related
++ MIB registrations."
++ ::= { gnome 2 }
++
++gnomeTest OBJECT-IDENTITY
++ STATUS current
++ DESCRIPTION
++ "gnomeTest defines the subtree for testing GNOME related
++ MIB registrations."
++ ::= { gnome 3 }
++
++gnomeSysadmin OBJECT-IDENTITY
++ STATUS current
++ DESCRIPTION
++ "gnomeSysadmin defines the subtree for GNOME related Sysadmin
++ MIB registrations."
++ ::= { gnome 4 }
++
++-- more to come if necessary.
++
++END
+diff -ruN net-snmp-5.1.2-orig/mibs/Makefile.in net-snmp-5.1.2-5/mibs/Makefile.in
+--- net-snmp-5.1.2-orig/mibs/Makefile.in 2004-06-18 20:11:15.000000000 +0200
++++ net-snmp-5.1.2-5/mibs/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -43,11 +43,15 @@
+ UCDMIBS = UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
+ UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt
+
++EXTRAMIBS = BGP4-MIB.txt BRIDGE-MIB.txt GNOME-SMI.txt OSPF-MIB.txt \
++ OSPF-TRAP-MIB.txt RIPv2-MIB.txt SOURCE-ROUTING-MIB.txt \
++ LM-SENSORS-MIB.txt
++
+ DEFAULTMIBS = @default_mibs_install@
+
+ MIBS = $(V1MIBS) $(V2MIBS) $(V3MIBS) $(RFCMIBS) \
+ $(AGENTMIBS) $(IANAMIBS) \
+- $(NETSNMPMIBS) $(UCDMIBS) $(DEFAULTMIBS)
++ $(NETSNMPMIBS) $(UCDMIBS) $(DEFAULTMIBS) $(EXTRAMIBS)
+
+ all: standardall
+
+diff -ruN net-snmp-5.1.2-orig/mibs/OSPF-MIB.txt net-snmp-5.1.2-5/mibs/OSPF-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/OSPF-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/OSPF-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,2723 @@
++OSPF-MIB DEFINITIONS ::= BEGIN
++
++ IMPORTS
++ MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
++ Integer32, IpAddress
++ FROM SNMPv2-SMI
++ TEXTUAL-CONVENTION, TruthValue, RowStatus
++ FROM SNMPv2-TC
++ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
++ mib-2 FROM RFC1213-MIB;
++
++-- This MIB module uses the extended OBJECT-TYPE macro as
++-- defined in [9].
++
++ospf MODULE-IDENTITY
++ LAST-UPDATED "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
++ ORGANIZATION "IETF OSPF Working Group"
++ CONTACT-INFO
++ " Fred Baker
++ Postal: Cisco Systems
++ 519 Lado Drive
++ Santa Barbara, California 93111
++ Tel: +1 805 681 0115
++ E-Mail: fred@cisco.com
++
++ Rob Coltun
++ Postal: RainbowBridge Communications
++ Tel: (301) 340-9416
++ E-Mail: rcoltun@rainbow-bridge.com"
++ DESCRIPTION
++ "The MIB module to describe the OSPF Version 2
++ Protocol"
++ ::= { mib-2 14 }
++
++-- The Area ID, in OSPF, has the same format as an IP Address,
++-- but has the function of defining a summarization point for
++-- Link State Advertisements
++
++AreaID ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "An OSPF Area Identifier."
++ SYNTAX IpAddress
++
++
++-- The Router ID, in OSPF, has the same format as an IP Address,
++-- but identifies the router independent of its IP Address.
++
++RouterID ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "A OSPF Router Identifier."
++ SYNTAX IpAddress
++
++
++-- The OSPF Metric is defined as an unsigned value in the range
++
++Metric ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The OSPF Internal Metric."
++ SYNTAX Integer32 (0..'FFFF'h)
++
++BigMetric ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The OSPF External Metric."
++ SYNTAX Integer32 (0..'FFFFFF'h)
++
++-- Status Values
++
++Status ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The status of an interface: 'enabled' indicates that
++ it is willing to communicate with other OSPF Routers,
++ while 'disabled' indicates that it is not."
++ SYNTAX INTEGER { enabled (1), disabled (2) }
++
++-- Time Durations measured in seconds
++
++PositiveInteger ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "A positive integer. Values in excess are precluded as
++ unnecessary and prone to interoperability issues."
++ SYNTAX Integer32 (0..'7FFFFFFF'h)
++
++HelloRange ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The range of intervals on which hello messages are
++ exchanged."
++ SYNTAX Integer32 (1..'FFFF'h)
++
++UpToMaxAge ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The values that one might find or configure for
++ variables bounded by the maximum age of an LSA."
++ SYNTAX Integer32 (0..3600)
++
++
++-- The range of ifIndex
++
++InterfaceIndex ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The range of ifIndex."
++ SYNTAX Integer32
++
++
++-- Potential Priorities for the Designated Router Election
++
++DesignatedRouterPriority ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "The values defined for the priority of a system for
++ becoming the designated router."
++ SYNTAX Integer32 (0..'FF'h)
++
++TOSType ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "Type of Service is defined as a mapping to the IP Type of
++ Service Flags as defined in the IP Forwarding Table MIB
++
++ +-----+-----+-----+-----+-----+-----+-----+-----+
++ | | | |
++ | PRECEDENCE | TYPE OF SERVICE | 0 |
++ | | | |
++ +-----+-----+-----+-----+-----+-----+-----+-----+
++
++ IP TOS IP TOS
++ Field Policy Field Policy
++
++ Contents Code Contents Code
++ 0 0 0 0 ==> 0 0 0 0 1 ==> 2
++ 0 0 1 0 ==> 4 0 0 1 1 ==> 6
++ 0 1 0 0 ==> 8 0 1 0 1 ==> 10
++ 0 1 1 0 ==> 12 0 1 1 1 ==> 14
++ 1 0 0 0 ==> 16 1 0 0 1 ==> 18
++ 1 0 1 0 ==> 20 1 0 1 1 ==> 22
++ 1 1 0 0 ==> 24 1 1 0 1 ==> 26
++ 1 1 1 0 ==> 28 1 1 1 1 ==> 30
++
++ The remaining values are left for future definition."
++ SYNTAX Integer32 (0..30)
++
++
++-- OSPF General Variables
++
++-- These parameters apply globally to the Router's
++-- OSPF Process.
++
++ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 }
++
++
++ ospfRouterId OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "A 32-bit integer uniquely identifying the
++ router in the Autonomous System.
++
++ By convention, to ensure uniqueness, this
++ should default to the value of one of the
++ router's IP interface addresses."
++ REFERENCE
++ "OSPF Version 2, C.1 Global parameters"
++ ::= { ospfGeneralGroup 1 }
++
++
++ ospfAdminStat OBJECT-TYPE
++ SYNTAX Status
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The administrative status of OSPF in the
++ router. The value 'enabled' denotes that the
++ OSPF Process is active on at least one inter-
++ face; 'disabled' disables it on all inter-
++ faces."
++ ::= { ospfGeneralGroup 2 }
++
++ ospfVersionNumber OBJECT-TYPE
++ SYNTAX INTEGER { version2 (2) }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The current version number of the OSPF proto-
++ col is 2."
++ REFERENCE
++ "OSPF Version 2, Title"
++ ::= { ospfGeneralGroup 3 }
++
++
++ ospfAreaBdrRtrStatus OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A flag to note whether this router is an area
++ border router."
++ REFERENCE
++ "OSPF Version 2, Section 3 Splitting the AS into
++ Areas"
++ ::= { ospfGeneralGroup 4 }
++
++
++ ospfASBdrRtrStatus OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "A flag to note whether this router is config-
++ ured as an Autonomous System border router."
++ REFERENCE
++ "OSPF Version 2, Section 3.3 Classification of
++ routers"
++ ::= { ospfGeneralGroup 5 }
++
++ ospfExternLsaCount OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of external (LS type 5) link-state
++ advertisements in the link-state database."
++ REFERENCE
++ "OSPF Version 2, Appendix A.4.5 AS external link
++ advertisements"
++ ::= { ospfGeneralGroup 6 }
++
++
++ ospfExternLsaCksumSum OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32-bit unsigned sum of the LS checksums of
++ the external link-state advertisements con-
++ tained in the link-state database. This sum
++ can be used to determine if there has been a
++ change in a router's link state database, and
++ to compare the link-state database of two
++ routers."
++ ::= { ospfGeneralGroup 7 }
++
++
++ ospfTOSSupport OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The router's support for type-of-service rout-
++ ing."
++ REFERENCE
++ "OSPF Version 2, Appendix F.1.2 Optional TOS
++ support"
++ ::= { ospfGeneralGroup 8 }
++
++ ospfOriginateNewLsas OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of new link-state advertisements
++ that have been originated. This number is in-
++ cremented each time the router originates a new
++ LSA."
++ ::= { ospfGeneralGroup 9 }
++
++
++ ospfRxNewLsas OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of link-state advertisements re-
++ ceived determined to be new instantiations.
++ This number does not include newer instantia-
++ tions of self-originated link-state advertise-
++ ments."
++ ::= { ospfGeneralGroup 10 }
++
++ ospfExtLsdbLimit OBJECT-TYPE
++ SYNTAX Integer32 (-1..'7FFFFFFF'h)
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The maximum number of non-default AS-
++ external-LSAs entries that can be stored in the
++ link-state database. If the value is -1, then
++ there is no limit.
++
++ When the number of non-default AS-external-LSAs
++ in a router's link-state database reaches
++ ospfExtLsdbLimit, the router enters Overflow-
++ State. The router never holds more than
++ ospfExtLsdbLimit non-default AS-external-LSAs
++ in its database. OspfExtLsdbLimit MUST be set
++ identically in all routers attached to the OSPF
++ backbone and/or any regular OSPF area. (i.e.,
++ OSPF stub areas and NSSAs are excluded)."
++ DEFVAL { -1 }
++ ::= { ospfGeneralGroup 11 }
++
++ ospfMulticastExtensions OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "A Bit Mask indicating whether the router is
++ forwarding IP multicast (Class D) datagrams
++ based on the algorithms defined in the Multi-
++ cast Extensions to OSPF.
++
++ Bit 0, if set, indicates that the router can
++ forward IP multicast datagrams in the router's
++ directly attached areas (called intra-area mul-
++ ticast routing).
++
++ Bit 1, if set, indicates that the router can
++ forward IP multicast datagrams between OSPF
++ areas (called inter-area multicast routing).
++
++ Bit 2, if set, indicates that the router can
++ forward IP multicast datagrams between Auto-
++ nomous Systems (called inter-AS multicast rout-
++ ing).
++
++ Only certain combinations of bit settings are
++ allowed, namely: 0 (no multicast forwarding is
++ enabled), 1 (intra-area multicasting only), 3
++ (intra-area and inter-area multicasting), 5
++ (intra-area and inter-AS multicasting) and 7
++ (multicasting everywhere). By default, no mul-
++ ticast forwarding is enabled."
++ DEFVAL { 0 }
++ ::= { ospfGeneralGroup 12 }
++
++ ospfExitOverflowInterval OBJECT-TYPE
++ SYNTAX PositiveInteger
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The number of seconds that, after entering
++ OverflowState, a router will attempt to leave
++ OverflowState. This allows the router to again
++ originate non-default AS-external-LSAs. When
++ set to 0, the router will not leave Overflow-
++ State until restarted."
++ DEFVAL { 0 }
++ ::= { ospfGeneralGroup 13 }
++
++
++ ospfDemandExtensions OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "The router's support for demand routing."
++ REFERENCE
++ "OSPF Version 2, Appendix on Demand Routing"
++ ::= { ospfGeneralGroup 14 }
++
++
++-- The OSPF Area Data Structure contains information
++-- regarding the various areas. The interfaces and
++-- virtual links are configured as part of these areas.
++-- Area 0.0.0.0, by definition, is the Backbone Area
++
++
++ ospfAreaTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfAreaEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information describing the configured parame-
++ ters and cumulative statistics of the router's
++ attached areas."
++ REFERENCE
++ "OSPF Version 2, Section 6 The Area Data Struc-
++ ture"
++ ::= { ospf 2 }
++
++
++ ospfAreaEntry OBJECT-TYPE
++ SYNTAX OspfAreaEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information describing the configured parame-
++ ters and cumulative statistics of one of the
++ router's attached areas."
++ INDEX { ospfAreaId }
++ ::= { ospfAreaTable 1 }
++
++OspfAreaEntry ::=
++ SEQUENCE {
++ ospfAreaId
++ AreaID,
++ ospfAuthType
++ Integer32,
++ ospfImportAsExtern
++ INTEGER,
++ ospfSpfRuns
++ Counter32,
++ ospfAreaBdrRtrCount
++ Gauge32,
++ ospfAsBdrRtrCount
++ Gauge32,
++ ospfAreaLsaCount
++ Gauge32,
++ ospfAreaLsaCksumSum
++ Integer32,
++ ospfAreaSummary
++ INTEGER,
++ ospfAreaStatus
++ RowStatus
++ }
++
++ ospfAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A 32-bit integer uniquely identifying an area.
++ Area ID 0.0.0.0 is used for the OSPF backbone."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaEntry 1 }
++
++
++ ospfAuthType OBJECT-TYPE
++ SYNTAX Integer32
++ -- none (0),
++ -- simplePassword (1)
++ -- md5 (2)
++ -- reserved for specification by IANA (> 2)
++ MAX-ACCESS read-create
++ STATUS obsolete
++ DESCRIPTION
++ "The authentication type specified for an area.
++ Additional authentication types may be assigned
++ locally on a per Area basis."
++ REFERENCE
++ "OSPF Version 2, Appendix E Authentication"
++ DEFVAL { 0 } -- no authentication, by default
++ ::= { ospfAreaEntry 2 }
++
++ ospfImportAsExtern OBJECT-TYPE
++ SYNTAX INTEGER {
++ importExternal (1),
++ importNoExternal (2),
++ importNssa (3)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The area's support for importing AS external
++ link- state advertisements."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ DEFVAL { importExternal }
++ ::= { ospfAreaEntry 3 }
++
++
++ ospfSpfRuns OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of times that the intra-area route
++ table has been calculated using this area's
++ link-state database. This is typically done
++ using Dijkstra's algorithm."
++ ::= { ospfAreaEntry 4 }
++
++
++ ospfAreaBdrRtrCount OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of area border routers reach-
++ able within this area. This is initially zero,
++ and is calculated in each SPF Pass."
++ ::= { ospfAreaEntry 5 }
++
++ ospfAsBdrRtrCount OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of Autonomous System border
++ routers reachable within this area. This is
++ initially zero, and is calculated in each SPF
++ Pass."
++ ::= { ospfAreaEntry 6 }
++
++
++ ospfAreaLsaCount OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The total number of link-state advertisements
++ in this area's link-state database, excluding
++ AS External LSA's."
++ ::= { ospfAreaEntry 7 }
++
++
++ ospfAreaLsaCksumSum OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32-bit unsigned sum of the link-state ad-
++ vertisements' LS checksums contained in this
++ area's link-state database. This sum excludes
++ external (LS type 5) link-state advertisements.
++ The sum can be used to determine if there has
++ been a change in a router's link state data-
++ base, and to compare the link-state database of
++ two routers."
++ DEFVAL { 0 }
++ ::= { ospfAreaEntry 8 }
++
++ ospfAreaSummary OBJECT-TYPE
++ SYNTAX INTEGER {
++ noAreaSummary (1),
++ sendAreaSummary (2)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The variable ospfAreaSummary controls the im-
++ port of summary LSAs into stub areas. It has
++ no effect on other areas.
++
++ If it is noAreaSummary, the router will neither
++ originate nor propagate summary LSAs into the
++ stub area. It will rely entirely on its de-
++ fault route.
++
++ If it is sendAreaSummary, the router will both
++ summarize and propagate summary LSAs."
++ DEFVAL { noAreaSummary }
++ ::= { ospfAreaEntry 9 }
++
++
++ ospfAreaStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfAreaEntry 10 }
++
++
++-- OSPF Area Default Metric Table
++
++-- The OSPF Area Default Metric Table describes the metrics
++-- that a default Area Border Router will advertise into a
++-- Stub area.
++
++
++ ospfStubAreaTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfStubAreaEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The set of metrics that will be advertised by
++ a default Area Border Router into a stub area."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2, Area Parameters"
++ ::= { ospf 3 }
++
++
++ ospfStubAreaEntry OBJECT-TYPE
++ SYNTAX OspfStubAreaEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The metric for a given Type of Service that
++ will be advertised by a default Area Border
++ Router into a stub area."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2, Area Parameters"
++ INDEX { ospfStubAreaId, ospfStubTOS }
++ ::= { ospfStubAreaTable 1 }
++
++OspfStubAreaEntry ::=
++ SEQUENCE {
++ ospfStubAreaId
++ AreaID,
++ ospfStubTOS
++ TOSType,
++ ospfStubMetric
++ BigMetric,
++ ospfStubStatus
++ RowStatus,
++ ospfStubMetricType
++ INTEGER
++ }
++
++ ospfStubAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32 bit identifier for the Stub Area. On
++ creation, this can be derived from the in-
++ stance."
++ ::= { ospfStubAreaEntry 1 }
++
++
++ ospfStubTOS OBJECT-TYPE
++ SYNTAX TOSType
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Type of Service associated with the
++ metric. On creation, this can be derived from
++ the instance."
++ ::= { ospfStubAreaEntry 2 }
++
++
++ ospfStubMetric OBJECT-TYPE
++ SYNTAX BigMetric
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The metric value applied at the indicated type
++ of service. By default, this equals the least
++ metric at the type of service among the inter-
++ faces to other areas."
++ ::= { ospfStubAreaEntry 3 }
++
++
++ ospfStubStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfStubAreaEntry 4 }
++
++ ospfStubMetricType OBJECT-TYPE
++ SYNTAX INTEGER {
++ ospfMetric (1), -- OSPF Metric
++ comparableCost (2), -- external type 1
++ nonComparable (3) -- external type 2
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the type of metric ad-
++ vertised as a default route."
++ DEFVAL { ospfMetric }
++ ::= { ospfStubAreaEntry 5 }
++
++-- OSPF Link State Database
++
++-- The Link State Database contains the Link State
++-- Advertisements from throughout the areas that the
++-- device is attached to.
++
++
++ ospfLsdbTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfLsdbEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The OSPF Process's Link State Database."
++ REFERENCE
++ "OSPF Version 2, Section 12 Link State Adver-
++ tisements"
++ ::= { ospf 4 }
++
++
++ ospfLsdbEntry OBJECT-TYPE
++ SYNTAX OspfLsdbEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A single Link State Advertisement."
++ INDEX { ospfLsdbAreaId, ospfLsdbType,
++ ospfLsdbLsid, ospfLsdbRouterId }
++ ::= { ospfLsdbTable 1 }
++
++OspfLsdbEntry ::=
++ SEQUENCE {
++ ospfLsdbAreaId
++ AreaID,
++ ospfLsdbType
++ INTEGER,
++ ospfLsdbLsid
++ IpAddress,
++ ospfLsdbRouterId
++ RouterID,
++ ospfLsdbSequence
++ Integer32,
++ ospfLsdbAge
++ Integer32,
++ ospfLsdbChecksum
++ Integer32,
++ ospfLsdbAdvertisement
++ OCTET STRING
++ }
++ ospfLsdbAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32 bit identifier of the Area from which
++ the LSA was received."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfLsdbEntry 1 }
++
++-- External Link State Advertisements are permitted
++-- for backward compatibility, but should be displayed in
++-- the ospfExtLsdbTable rather than here.
++
++ ospfLsdbType OBJECT-TYPE
++ SYNTAX INTEGER {
++ routerLink (1),
++ networkLink (2),
++ summaryLink (3),
++ asSummaryLink (4),
++ asExternalLink (5), -- but see ospfExtLsdbTable
++ multicastLink (6),
++ nssaExternalLink (7)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The type of the link state advertisement.
++ Each link state type has a separate advertise-
++ ment format."
++ REFERENCE
++ "OSPF Version 2, Appendix A.4.1 The Link State
++ Advertisement header"
++ ::= { ospfLsdbEntry 2 }
++
++ ospfLsdbLsid OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Link State ID is an LS Type Specific field
++ containing either a Router ID or an IP Address;
++ it identifies the piece of the routing domain
++ that is being described by the advertisement."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.4 Link State ID"
++ ::= { ospfLsdbEntry 3 }
++ ospfLsdbRouterId OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32 bit number that uniquely identifies the
++ originating router in the Autonomous System."
++ REFERENCE
++ "OSPF Version 2, Appendix C.1 Global parameters"
++ ::= { ospfLsdbEntry 4 }
++
++-- Note that the OSPF Sequence Number is a 32 bit signed
++-- integer. It starts with the value '80000001'h,
++-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
++-- Thus, a typical sequence number will be very negative.
++
++ ospfLsdbSequence OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The sequence number field is a signed 32-bit
++ integer. It is used to detect old and dupli-
++ cate link state advertisements. The space of
++ sequence numbers is linearly ordered. The
++ larger the sequence number the more recent the
++ advertisement."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.6 LS sequence
++ number"
++ ::= { ospfLsdbEntry 5 }
++
++
++ ospfLsdbAge OBJECT-TYPE
++ SYNTAX Integer32 -- Should be 0..MaxAge
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This field is the age of the link state adver-
++ tisement in seconds."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.1 LS age"
++ ::= { ospfLsdbEntry 6 }
++
++ ospfLsdbChecksum OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This field is the checksum of the complete
++ contents of the advertisement, excepting the
++ age field. The age field is excepted so that
++ an advertisement's age can be incremented
++ without updating the checksum. The checksum
++ used is the same that is used for ISO connec-
++ tionless datagrams; it is commonly referred to
++ as the Fletcher checksum."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.7 LS checksum"
++ ::= { ospfLsdbEntry 7 }
++
++
++ ospfLsdbAdvertisement OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (1..65535))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The entire Link State Advertisement, including
++ its header."
++ REFERENCE
++ "OSPF Version 2, Section 12 Link State Adver-
++ tisements"
++ ::= { ospfLsdbEntry 8 }
++
++
++-- Address Range Table
++
++-- The Address Range Table acts as an adjunct to the Area
++-- Table; It describes those Address Range Summaries that
++-- are configured to be propagated from an Area to reduce
++-- the amount of information about it which is known beyond
++-- its borders.
++
++ ospfAreaRangeTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfAreaRangeEntry
++ MAX-ACCESS not-accessible
++ STATUS obsolete
++ DESCRIPTION
++ "A range if IP addresses specified by an IP
++ address/IP network mask pair. For example,
++ class B address range of X.X.X.X with a network
++ mask of 255.255.0.0 includes all IP addresses
++ from X.X.0.0 to X.X.255.255"
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospf 5 }
++ ospfAreaRangeEntry OBJECT-TYPE
++ SYNTAX OspfAreaRangeEntry
++ MAX-ACCESS not-accessible
++ STATUS obsolete
++ DESCRIPTION
++ "A range if IP addresses specified by an IP
++ address/IP network mask pair. For example,
++ class B address range of X.X.X.X with a network
++ mask of 255.255.0.0 includes all IP addresses
++ from X.X.0.0 to X.X.255.255"
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ INDEX { ospfAreaRangeAreaId, ospfAreaRangeNet }
++ ::= { ospfAreaRangeTable 1 }
++
++OspfAreaRangeEntry ::=
++ SEQUENCE {
++ ospfAreaRangeAreaId
++ AreaID,
++ ospfAreaRangeNet
++ IpAddress,
++ ospfAreaRangeMask
++ IpAddress,
++ ospfAreaRangeStatus
++ RowStatus,
++ ospfAreaRangeEffect
++ INTEGER
++ }
++
++ ospfAreaRangeAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The Area the Address Range is to be found
++ within."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaRangeEntry 1 }
++
++
++ ospfAreaRangeNet OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS obsolete
++ DESCRIPTION
++ "The IP Address of the Net or Subnet indicated
++ by the range."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaRangeEntry 2 }
++
++
++ ospfAreaRangeMask OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-create
++ STATUS obsolete
++ DESCRIPTION
++ "The Subnet Mask that pertains to the Net or
++ Subnet."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaRangeEntry 3 }
++
++ ospfAreaRangeStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS obsolete
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfAreaRangeEntry 4 }
++
++
++ ospfAreaRangeEffect OBJECT-TYPE
++ SYNTAX INTEGER {
++ advertiseMatching (1),
++ doNotAdvertiseMatching (2)
++ }
++ MAX-ACCESS read-create
++ STATUS obsolete
++ DESCRIPTION
++ "Subnets subsumed by ranges either trigger the
++ advertisement of the indicated summary (adver-
++ tiseMatching), or result in the subnet's not
++ being advertised at all outside the area."
++ DEFVAL { advertiseMatching }
++ ::= { ospfAreaRangeEntry 5 }
++
++
++
++-- OSPF Host Table
++
++-- The Host/Metric Table indicates what hosts are directly
++-- attached to the Router, and what metrics and types of
++-- service should be advertised for them.
++
++ ospfHostTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfHostEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The list of Hosts, and their metrics, that the
++ router will advertise as host routes."
++ REFERENCE
++ "OSPF Version 2, Appendix C.6 Host route param-
++ eters"
++ ::= { ospf 6 }
++
++
++ ospfHostEntry OBJECT-TYPE
++ SYNTAX OspfHostEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A metric to be advertised, for a given type of
++ service, when a given host is reachable."
++ INDEX { ospfHostIpAddress, ospfHostTOS }
++ ::= { ospfHostTable 1 }
++
++OspfHostEntry ::=
++ SEQUENCE {
++ ospfHostIpAddress
++ IpAddress,
++ ospfHostTOS
++ TOSType,
++ ospfHostMetric
++ Metric,
++ ospfHostStatus
++ RowStatus,
++ ospfHostAreaID
++ AreaID
++ }
++
++ ospfHostIpAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of the Host."
++ REFERENCE
++ "OSPF Version 2, Appendix C.6 Host route parame-
++ ters"
++ ::= { ospfHostEntry 1 }
++
++
++ ospfHostTOS OBJECT-TYPE
++ SYNTAX TOSType
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Type of Service of the route being config-
++ ured."
++ REFERENCE
++ "OSPF Version 2, Appendix C.6 Host route parame-
++ ters"
++ ::= { ospfHostEntry 2 }
++
++
++ ospfHostMetric OBJECT-TYPE
++ SYNTAX Metric
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The Metric to be advertised."
++ REFERENCE
++ "OSPF Version 2, Appendix C.6 Host route parame-
++ ters"
++ ::= { ospfHostEntry 3 }
++
++ ospfHostStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfHostEntry 4 }
++
++
++ ospfHostAreaID OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Area the Host Entry is to be found within.
++ By default, the area that a subsuming OSPF in-
++ terface is in, or 0.0.0.0"
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfHostEntry 5 }
++
++
++-- OSPF Interface Table
++
++-- The OSPF Interface Table augments the ipAddrTable
++-- with OSPF specific information.
++
++ ospfIfTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfIfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The OSPF Interface Table describes the inter-
++ faces from the viewpoint of OSPF."
++ REFERENCE
++ "OSPF Version 2, Appendix C.3 Router interface
++ parameters"
++ ::= { ospf 7 }
++
++
++ ospfIfEntry OBJECT-TYPE
++ SYNTAX OspfIfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The OSPF Interface Entry describes one inter-
++ face from the viewpoint of OSPF."
++ INDEX { ospfIfIpAddress, ospfAddressLessIf }
++ ::= { ospfIfTable 1 }
++
++OspfIfEntry ::=
++ SEQUENCE {
++ ospfIfIpAddress
++ IpAddress,
++ ospfAddressLessIf
++ Integer32,
++ ospfIfAreaId
++ AreaID,
++ ospfIfType
++ INTEGER,
++ ospfIfAdminStat
++ Status,
++ ospfIfRtrPriority
++ DesignatedRouterPriority,
++ ospfIfTransitDelay
++ UpToMaxAge,
++ ospfIfRetransInterval
++ UpToMaxAge,
++ ospfIfHelloInterval
++ HelloRange,
++ ospfIfRtrDeadInterval
++ PositiveInteger,
++ ospfIfPollInterval
++ PositiveInteger,
++ ospfIfState
++ INTEGER,
++ ospfIfDesignatedRouter
++ IpAddress,
++ ospfIfBackupDesignatedRouter
++ IpAddress,
++ ospfIfEvents
++ Counter32,
++ ospfIfAuthType
++ INTEGER,
++ ospfIfAuthKey
++ OCTET STRING,
++ ospfIfStatus
++ RowStatus,
++ ospfIfMulticastForwarding
++ INTEGER,
++ ospfIfDemand
++ TruthValue
++ }
++
++ ospfIfIpAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address of this OSPF interface."
++ ::= { ospfIfEntry 1 }
++
++ ospfAddressLessIf OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "For the purpose of easing the instancing of
++ addressed and addressless interfaces; This
++ variable takes the value 0 on interfaces with
++ IP Addresses, and the corresponding value of
++ ifIndex for interfaces having no IP Address."
++ ::= { ospfIfEntry 2 }
++ ospfIfAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "A 32-bit integer uniquely identifying the area
++ to which the interface connects. Area ID
++ 0.0.0.0 is used for the OSPF backbone."
++ DEFVAL { '00000000'H } -- 0.0.0.0
++ ::= { ospfIfEntry 3 }
++
++ ospfIfType OBJECT-TYPE
++ SYNTAX INTEGER {
++ broadcast (1),
++ nbma (2),
++ pointToPoint (3),
++ pointToMultipoint (5)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The OSPF interface type.
++
++ By way of a default, this field may be intuited
++ from the corresponding value of ifType. Broad-
++ cast LANs, such as Ethernet and IEEE 802.5,
++ take the value 'broadcast', X.25 and similar
++ technologies take the value 'nbma', and links
++ that are definitively point to point take the
++ value 'pointToPoint'."
++ ::= { ospfIfEntry 4 }
++
++
++ ospfIfAdminStat OBJECT-TYPE
++ SYNTAX Status
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The OSPF interface's administrative status.
++ The value formed on the interface, and the in-
++ terface will be advertised as an internal route
++ to some area. The value 'disabled' denotes
++ that the interface is external to OSPF."
++ DEFVAL { enabled }
++ ::= { ospfIfEntry 5 }
++
++ ospfIfRtrPriority OBJECT-TYPE
++ SYNTAX DesignatedRouterPriority
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The priority of this interface. Used in
++ multi-access networks, this field is used in
++ the designated router election algorithm. The
++ value 0 signifies that the router is not eligi-
++ ble to become the designated router on this
++ particular network. In the event of a tie in
++ this value, routers will use their Router ID as
++ a tie breaker."
++ DEFVAL { 1 }
++ ::= { ospfIfEntry 6 }
++
++
++ ospfIfTransitDelay OBJECT-TYPE
++ SYNTAX UpToMaxAge
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The estimated number of seconds it takes to
++ transmit a link state update packet over this
++ interface."
++ DEFVAL { 1 }
++ ::= { ospfIfEntry 7 }
++
++
++ ospfIfRetransInterval OBJECT-TYPE
++ SYNTAX UpToMaxAge
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The number of seconds between link-state ad-
++ vertisement retransmissions, for adjacencies
++ belonging to this interface. This value is
++ also used when retransmitting database descrip-
++ tion and link-state request packets."
++ DEFVAL { 5 }
++ ::= { ospfIfEntry 8 }
++
++
++ ospfIfHelloInterval OBJECT-TYPE
++ SYNTAX HelloRange
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The length of time, in seconds, between the
++ Hello packets that the router sends on the in-
++ terface. This value must be the same for all
++ routers attached to a common network."
++ DEFVAL { 10 }
++ ::= { ospfIfEntry 9 }
++
++
++ ospfIfRtrDeadInterval OBJECT-TYPE
++ SYNTAX PositiveInteger
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The number of seconds that a router's Hello
++ packets have not been seen before it's neigh-
++ bors declare the router down. This should be
++ some multiple of the Hello interval. This
++ value must be the same for all routers attached
++ to a common network."
++ DEFVAL { 40 }
++ ::= { ospfIfEntry 10 }
++
++
++ ospfIfPollInterval OBJECT-TYPE
++ SYNTAX PositiveInteger
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The larger time interval, in seconds, between
++ the Hello packets sent to an inactive non-
++ broadcast multi- access neighbor."
++ DEFVAL { 120 }
++ ::= { ospfIfEntry 11 }
++
++
++ ospfIfState OBJECT-TYPE
++ SYNTAX INTEGER {
++ down (1),
++ loopback (2),
++ waiting (3),
++ pointToPoint (4),
++ designatedRouter (5),
++ backupDesignatedRouter (6),
++ otherDesignatedRouter (7)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The OSPF Interface State."
++ DEFVAL { down }
++ ::= { ospfIfEntry 12 }
++
++
++ ospfIfDesignatedRouter OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of the Designated Router."
++ DEFVAL { '00000000'H } -- 0.0.0.0
++ ::= { ospfIfEntry 13 }
++
++
++ ospfIfBackupDesignatedRouter OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of the Backup Designated
++ Router."
++ DEFVAL { '00000000'H } -- 0.0.0.0
++ ::= { ospfIfEntry 14 }
++
++ ospfIfEvents OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of times this OSPF interface has
++ changed its state, or an error has occurred."
++ ::= { ospfIfEntry 15 }
++
++
++ ospfIfAuthKey OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE (0..256))
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The Authentication Key. If the Area's Author-
++ ization Type is simplePassword, and the key
++ length is shorter than 8 octets, the agent will
++ left adjust and zero fill to 8 octets.
++
++ Note that unauthenticated interfaces need no
++ authentication key, and simple password authen-
++ tication cannot use a key of more than 8 oc-
++ tets. Larger keys are useful only with authen-
++ tication mechanisms not specified in this docu-
++ ment.
++
++ When read, ospfIfAuthKey always returns an Oc-
++ tet String of length zero."
++ REFERENCE
++ "OSPF Version 2, Section 9 The Interface Data
++ Structure"
++ DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
++ ::= { ospfIfEntry 16 }
++
++ ospfIfStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfIfEntry 17 }
++
++
++ ospfIfMulticastForwarding OBJECT-TYPE
++ SYNTAX INTEGER {
++ blocked (1), -- no multicast forwarding
++ multicast (2), -- using multicast address
++ unicast (3) -- to each OSPF neighbor
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The way multicasts should forwarded on this
++ interface; not forwarded, forwarded as data
++ link multicasts, or forwarded as data link uni-
++ casts. Data link multicasting is not meaning-
++ ful on point to point and NBMA interfaces, and
++ setting ospfMulticastForwarding to 0 effective-
++ ly disables all multicast forwarding."
++ DEFVAL { blocked }
++ ::= { ospfIfEntry 18 }
++
++
++ ospfIfDemand OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "Indicates whether Demand OSPF procedures (hel-
++ lo supression to FULL neighbors and setting the
++ DoNotAge flag on proogated LSAs) should be per-
++ formed on this interface."
++ DEFVAL { false }
++ ::= { ospfIfEntry 19 }
++
++
++ ospfIfAuthType OBJECT-TYPE
++ SYNTAX INTEGER (0..255)
++ -- none (0),
++ -- simplePassword (1)
++ -- md5 (2)
++ -- reserved for specification by IANA (> 2)
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The authentication type specified for an in-
++ terface. Additional authentication types may
++ be assigned locally."
++ REFERENCE
++ "OSPF Version 2, Appendix E Authentication"
++ DEFVAL { 0 } -- no authentication, by default
++ ::= { ospfIfEntry 20 }
++
++
++-- OSPF Interface Metric Table
++
++-- The Metric Table describes the metrics to be advertised
++-- for a specified interface at the various types of service.
++-- As such, this table is an adjunct of the OSPF Interface
++-- Table.
++
++-- Types of service, as defined by RFC 791, have the ability
++-- to request low delay, high bandwidth, or reliable linkage.
++
++-- For the purposes of this specification, the measure of
++-- bandwidth
++
++-- Metric = 10^8 / ifSpeed
++
++-- is the default value. For multiple link interfaces, note
++-- that ifSpeed is the sum of the individual link speeds.
++-- This yields a number having the following typical values:
++
++-- Network Type/bit rate Metric
++
++-- >= 100 MBPS 1
++-- Ethernet/802.3 10
++-- E1 48
++-- T1 (ESF) 65
++-- 64 KBPS 1562
++-- 56 KBPS 1785
++-- 19.2 KBPS 5208
++-- 9.6 KBPS 10416
++
++-- Routes that are not specified use the default (TOS 0) metric
++
++ ospfIfMetricTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfIfMetricEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The TOS metrics for a non-virtual interface
++ identified by the interface index."
++ REFERENCE
++ "OSPF Version 2, Appendix C.3 Router interface
++ parameters"
++ ::= { ospf 8 }
++
++ ospfIfMetricEntry OBJECT-TYPE
++ SYNTAX OspfIfMetricEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A particular TOS metric for a non-virtual in-
++ terface identified by the interface index."
++ REFERENCE
++ "OSPF Version 2, Appendix C.3 Router interface
++ parameters"
++ INDEX { ospfIfMetricIpAddress,
++ ospfIfMetricAddressLessIf,
++ ospfIfMetricTOS }
++ ::= { ospfIfMetricTable 1 }
++
++OspfIfMetricEntry ::=
++ SEQUENCE {
++ ospfIfMetricIpAddress
++ IpAddress,
++ ospfIfMetricAddressLessIf
++ Integer32,
++ ospfIfMetricTOS
++ TOSType,
++ ospfIfMetricValue
++ Metric,
++ ospfIfMetricStatus
++ RowStatus
++ }
++
++ ospfIfMetricIpAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address of this OSPF interface. On row
++ creation, this can be derived from the in-
++ stance."
++ ::= { ospfIfMetricEntry 1 }
++
++ ospfIfMetricAddressLessIf OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "For the purpose of easing the instancing of
++ addressed and addressless interfaces; This
++ variable takes the value 0 on interfaces with
++ IP Addresses, and the value of ifIndex for in-
++ terfaces having no IP Address. On row crea-
++ tion, this can be derived from the instance."
++ ::= { ospfIfMetricEntry 2 }
++
++
++ ospfIfMetricTOS OBJECT-TYPE
++ SYNTAX TOSType
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The type of service metric being referenced.
++ On row creation, this can be derived from the
++ instance."
++ ::= { ospfIfMetricEntry 3 }
++
++
++ ospfIfMetricValue OBJECT-TYPE
++ SYNTAX Metric
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The metric of using this type of service on
++ this interface. The default value of the TOS 0
++ Metric is 10^8 / ifSpeed."
++ ::= { ospfIfMetricEntry 4 }
++
++ ospfIfMetricStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfIfMetricEntry 5 }
++
++
++-- OSPF Virtual Interface Table
++
++-- The Virtual Interface Table describes the virtual
++-- links that the OSPF Process is configured to
++-- carry on.
++
++ ospfVirtIfTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfVirtIfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information about this router's virtual inter-
++ faces."
++ REFERENCE
++ "OSPF Version 2, Appendix C.4 Virtual link
++ parameters"
++ ::= { ospf 9 }
++
++
++ ospfVirtIfEntry OBJECT-TYPE
++ SYNTAX OspfVirtIfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information about a single Virtual Interface."
++ INDEX { ospfVirtIfAreaId, ospfVirtIfNeighbor }
++ ::= { ospfVirtIfTable 1 }
++
++OspfVirtIfEntry ::=
++ SEQUENCE {
++ ospfVirtIfAreaId
++ AreaID,
++ ospfVirtIfNeighbor
++ RouterID,
++ ospfVirtIfTransitDelay
++ UpToMaxAge,
++ ospfVirtIfRetransInterval
++ UpToMaxAge,
++ ospfVirtIfHelloInterval
++ HelloRange,
++ ospfVirtIfRtrDeadInterval
++ PositiveInteger,
++ ospfVirtIfState
++ INTEGER,
++ ospfVirtIfEvents
++ Counter32,
++ ospfVirtIfAuthType
++ INTEGER,
++ ospfVirtIfAuthKey
++ OCTET STRING,
++ ospfVirtIfStatus
++ RowStatus
++ }
++
++ ospfVirtIfAreaId OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Transit Area that the Virtual Link
++ traverses. By definition, this is not 0.0.0.0"
++ ::= { ospfVirtIfEntry 1 }
++
++
++ ospfVirtIfNeighbor OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Router ID of the Virtual Neighbor."
++ ::= { ospfVirtIfEntry 2 }
++
++
++ ospfVirtIfTransitDelay OBJECT-TYPE
++ SYNTAX UpToMaxAge
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The estimated number of seconds it takes to
++ transmit a link- state update packet over this
++ interface."
++ DEFVAL { 1 }
++ ::= { ospfVirtIfEntry 3 }
++
++
++ ospfVirtIfRetransInterval OBJECT-TYPE
++ SYNTAX UpToMaxAge
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The number of seconds between link-state ad-
++ vertisement retransmissions, for adjacencies
++ belonging to this interface. This value is
++ also used when retransmitting database descrip-
++ tion and link-state request packets. This
++ value should be well over the expected round-
++ trip time."
++ DEFVAL { 5 }
++ ::= { ospfVirtIfEntry 4 }
++
++
++ ospfVirtIfHelloInterval OBJECT-TYPE
++ SYNTAX HelloRange
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The length of time, in seconds, between the
++ Hello packets that the router sends on the in-
++ terface. This value must be the same for the
++ virtual neighbor."
++ DEFVAL { 10 }
++ ::= { ospfVirtIfEntry 5 }
++
++
++ ospfVirtIfRtrDeadInterval OBJECT-TYPE
++ SYNTAX PositiveInteger
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The number of seconds that a router's Hello
++ packets have not been seen before it's neigh-
++ bors declare the router down. This should be
++ some multiple of the Hello interval. This
++ value must be the same for the virtual neigh-
++ bor."
++ DEFVAL { 60 }
++ ::= { ospfVirtIfEntry 6 }
++
++
++ ospfVirtIfState OBJECT-TYPE
++ SYNTAX INTEGER {
++ down (1), -- these use the same encoding
++ pointToPoint (4) -- as the ospfIfTable
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "OSPF virtual interface states."
++ DEFVAL { down }
++ ::= { ospfVirtIfEntry 7 }
++
++
++ ospfVirtIfEvents OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of state changes or error events on
++ this Virtual Link"
++ ::= { ospfVirtIfEntry 8 }
++
++
++ ospfVirtIfAuthKey OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE(0..256))
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "If Authentication Type is simplePassword, the
++ device will left adjust and zero fill to 8 oc-
++ tets.
++
++ Note that unauthenticated interfaces need no
++ authentication key, and simple password authen-
++ tication cannot use a key of more than 8 oc-
++ tets. Larger keys are useful only with authen-
++ tication mechanisms not specified in this docu-
++ ment.
++
++ When read, ospfVifAuthKey always returns a
++ string of length zero."
++ REFERENCE
++ "OSPF Version 2, Section 9 The Interface Data
++ Structure"
++ DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0
++ ::= { ospfVirtIfEntry 9 }
++
++
++ ospfVirtIfStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfVirtIfEntry 10 }
++
++
++ ospfVirtIfAuthType OBJECT-TYPE
++ SYNTAX INTEGER (0..255)
++ -- none (0),
++ -- simplePassword (1)
++ -- md5 (2)
++ -- reserved for specification by IANA (> 2)
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The authentication type specified for a virtu-
++ al interface. Additional authentication types
++ may be assigned locally."
++ REFERENCE
++ "OSPF Version 2, Appendix E Authentication"
++ DEFVAL { 0 } -- no authentication, by default
++ ::= { ospfVirtIfEntry 11 }
++
++
++-- OSPF Neighbor Table
++
++-- The OSPF Neighbor Table describes all neighbors in
++-- the locality of the subject router.
++
++ ospfNbrTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfNbrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A table of non-virtual neighbor information."
++ REFERENCE
++ "OSPF Version 2, Section 10 The Neighbor Data
++ Structure"
++ ::= { ospf 10 }
++
++
++ ospfNbrEntry OBJECT-TYPE
++ SYNTAX OspfNbrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The information regarding a single neighbor."
++ REFERENCE
++ "OSPF Version 2, Section 10 The Neighbor Data
++ Structure"
++ INDEX { ospfNbrIpAddr, ospfNbrAddressLessIndex }
++ ::= { ospfNbrTable 1 }
++
++OspfNbrEntry ::=
++ SEQUENCE {
++ ospfNbrIpAddr
++ IpAddress,
++ ospfNbrAddressLessIndex
++ InterfaceIndex,
++ ospfNbrRtrId
++ RouterID,
++ ospfNbrOptions
++ Integer32,
++ ospfNbrPriority
++ DesignatedRouterPriority,
++ ospfNbrState
++ INTEGER,
++ ospfNbrEvents
++ Counter32,
++ ospfNbrLsRetransQLen
++ Gauge32,
++ ospfNbmaNbrStatus
++ RowStatus,
++ ospfNbmaNbrPermanence
++ INTEGER,
++ ospfNbrHelloSuppressed
++ TruthValue
++ }
++
++ ospfNbrIpAddr OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address this neighbor is using in its
++ IP Source Address. Note that, on addressless
++ links, this will not be 0.0.0.0, but the ad-
++ dress of another of the neighbor's interfaces."
++ ::= { ospfNbrEntry 1 }
++
++
++ ospfNbrAddressLessIndex OBJECT-TYPE
++ SYNTAX InterfaceIndex
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "On an interface having an IP Address, zero.
++ On addressless interfaces, the corresponding
++ value of ifIndex in the Internet Standard MIB.
++ On row creation, this can be derived from the
++ instance."
++ ::= { ospfNbrEntry 2 }
++
++
++ ospfNbrRtrId OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A 32-bit integer (represented as a type IpAd-
++ dress) uniquely identifying the neighboring
++ router in the Autonomous System."
++ DEFVAL { '00000000'H } -- 0.0.0.0
++ ::= { ospfNbrEntry 3 }
++
++
++ ospfNbrOptions OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A Bit Mask corresponding to the neighbor's op-
++ tions field.
++
++ Bit 0, if set, indicates that the system will
++ operate on Type of Service metrics other than
++ TOS 0. If zero, the neighbor will ignore all
++ metrics except the TOS 0 metric.
++
++ Bit 1, if set, indicates that the associated
++ area accepts and operates on external informa-
++ tion; if zero, it is a stub area.
++
++ Bit 2, if set, indicates that the system is ca-
++ pable of routing IP Multicast datagrams; i.e.,
++ that it implements the Multicast Extensions to
++ OSPF.
++
++ Bit 3, if set, indicates that the associated
++ area is an NSSA. These areas are capable of
++ carrying type 7 external advertisements, which
++ are translated into type 5 external advertise-
++ ments at NSSA borders."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.2 Options"
++ DEFVAL { 0 }
++ ::= { ospfNbrEntry 4 }
++
++
++ ospfNbrPriority OBJECT-TYPE
++ SYNTAX DesignatedRouterPriority
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The priority of this neighbor in the designat-
++ ed router election algorithm. The value 0 sig-
++ nifies that the neighbor is not eligible to be-
++ come the designated router on this particular
++ network."
++ DEFVAL { 1 }
++ ::= { ospfNbrEntry 5 }
++
++
++ ospfNbrState OBJECT-TYPE
++ SYNTAX INTEGER {
++ down (1),
++ attempt (2),
++ init (3),
++ twoWay (4),
++ exchangeStart (5),
++ exchange (6),
++ loading (7),
++ full (8)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The State of the relationship with this Neigh-
++ bor."
++ REFERENCE
++ "OSPF Version 2, Section 10.1 Neighbor States"
++ DEFVAL { down }
++ ::= { ospfNbrEntry 6 }
++
++
++ ospfNbrEvents OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of times this neighbor relationship
++ has changed state, or an error has occurred."
++ ::= { ospfNbrEntry 7 }
++
++
++ ospfNbrLsRetransQLen OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The current length of the retransmission
++ queue."
++ ::= { ospfNbrEntry 8 }
++
++
++ ospfNbmaNbrStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfNbrEntry 9 }
++
++
++ ospfNbmaNbrPermanence OBJECT-TYPE
++ SYNTAX INTEGER {
++ dynamic (1), -- learned through protocol
++ permanent (2) -- configured address
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. 'dynamic' and 'permanent' refer to how
++ the neighbor became known."
++ DEFVAL { permanent }
++ ::= { ospfNbrEntry 10 }
++
++
++ ospfNbrHelloSuppressed OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Indicates whether Hellos are being suppressed
++ to the neighbor"
++ ::= { ospfNbrEntry 11 }
++
++
++-- OSPF Virtual Neighbor Table
++
++-- This table describes all virtual neighbors.
++-- Since Virtual Links are configured in the
++-- virtual interface table, this table is read-only.
++
++ ospfVirtNbrTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfVirtNbrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A table of virtual neighbor information."
++ REFERENCE
++ "OSPF Version 2, Section 15 Virtual Links"
++ ::= { ospf 11 }
++
++
++ ospfVirtNbrEntry OBJECT-TYPE
++ SYNTAX OspfVirtNbrEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Virtual neighbor information."
++ INDEX { ospfVirtNbrArea, ospfVirtNbrRtrId }
++ ::= { ospfVirtNbrTable 1 }
++
++OspfVirtNbrEntry ::=
++ SEQUENCE {
++ ospfVirtNbrArea
++ AreaID,
++ ospfVirtNbrRtrId
++ RouterID,
++ ospfVirtNbrIpAddr
++ IpAddress,
++ ospfVirtNbrOptions
++ Integer32,
++ ospfVirtNbrState
++ INTEGER,
++ ospfVirtNbrEvents
++ Counter32,
++ ospfVirtNbrLsRetransQLen
++ Gauge32,
++ ospfVirtNbrHelloSuppressed
++ TruthValue
++ }
++
++ ospfVirtNbrArea OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Transit Area Identifier."
++ ::= { ospfVirtNbrEntry 1 }
++
++
++ ospfVirtNbrRtrId OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A 32-bit integer uniquely identifying the
++ neighboring router in the Autonomous System."
++ ::= { ospfVirtNbrEntry 2 }
++
++
++ ospfVirtNbrIpAddr OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address this Virtual Neighbor is us-
++ ing."
++ ::= { ospfVirtNbrEntry 3 }
++
++
++ ospfVirtNbrOptions OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "A Bit Mask corresponding to the neighbor's op-
++ tions field.
++
++ Bit 1, if set, indicates that the system will
++ operate on Type of Service metrics other than
++ TOS 0. If zero, the neighbor will ignore all
++ metrics except the TOS 0 metric.
++
++ Bit 2, if set, indicates that the system is
++ Network Multicast capable; ie, that it imple-
++ ments OSPF Multicast Routing."
++ ::= { ospfVirtNbrEntry 4 }
++ ospfVirtNbrState OBJECT-TYPE
++ SYNTAX INTEGER {
++ down (1),
++ attempt (2),
++ init (3),
++ twoWay (4),
++ exchangeStart (5),
++ exchange (6),
++ loading (7),
++ full (8)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The state of the Virtual Neighbor Relation-
++ ship."
++ ::= { ospfVirtNbrEntry 5 }
++
++
++ ospfVirtNbrEvents OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of times this virtual link has
++ changed its state, or an error has occurred."
++ ::= { ospfVirtNbrEntry 6 }
++
++
++ ospfVirtNbrLsRetransQLen OBJECT-TYPE
++ SYNTAX Gauge32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The current length of the retransmission
++ queue."
++ ::= { ospfVirtNbrEntry 7 }
++
++
++ ospfVirtNbrHelloSuppressed OBJECT-TYPE
++ SYNTAX TruthValue
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Indicates whether Hellos are being suppressed
++ to the neighbor"
++ ::= { ospfVirtNbrEntry 8 }
++
++-- OSPF Link State Database, External
++
++-- The Link State Database contains the Link State
++-- Advertisements from throughout the areas that the
++-- device is attached to.
++
++-- This table is identical to the OSPF LSDB Table in
++-- format, but contains only External Link State
++-- Advertisements. The purpose is to allow external
++-- LSAs to be displayed once for the router rather
++-- than once in each non-stub area.
++
++ ospfExtLsdbTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfExtLsdbEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "The OSPF Process's Links State Database."
++ REFERENCE
++ "OSPF Version 2, Section 12 Link State Adver-
++ tisements"
++ ::= { ospf 12 }
++
++
++ ospfExtLsdbEntry OBJECT-TYPE
++ SYNTAX OspfExtLsdbEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A single Link State Advertisement."
++ INDEX { ospfExtLsdbType, ospfExtLsdbLsid, ospfExtLsdbRouterId }
++ ::= { ospfExtLsdbTable 1 }
++
++OspfExtLsdbEntry ::=
++ SEQUENCE {
++ ospfExtLsdbType
++ INTEGER,
++ ospfExtLsdbLsid
++ IpAddress,
++ ospfExtLsdbRouterId
++ RouterID,
++ ospfExtLsdbSequence
++ Integer32,
++ ospfExtLsdbAge
++ Integer32,
++ ospfExtLsdbChecksum
++ Integer32,
++ ospfExtLsdbAdvertisement
++ OCTET STRING
++ }
++
++ ospfExtLsdbType OBJECT-TYPE
++ SYNTAX INTEGER {
++ asExternalLink (5)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The type of the link state advertisement.
++ Each link state type has a separate advertise-
++ ment format."
++ REFERENCE
++ "OSPF Version 2, Appendix A.4.1 The Link State
++ Advertisement header"
++ ::= { ospfExtLsdbEntry 1 }
++
++
++ ospfExtLsdbLsid OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Link State ID is an LS Type Specific field
++ containing either a Router ID or an IP Address;
++ it identifies the piece of the routing domain
++ that is being described by the advertisement."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.4 Link State ID"
++ ::= { ospfExtLsdbEntry 2 }
++
++
++ ospfExtLsdbRouterId OBJECT-TYPE
++ SYNTAX RouterID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The 32 bit number that uniquely identifies the
++ originating router in the Autonomous System."
++ REFERENCE
++ "OSPF Version 2, Appendix C.1 Global parameters"
++ ::= { ospfExtLsdbEntry 3 }
++
++-- Note that the OSPF Sequence Number is a 32 bit signed
++-- integer. It starts with the value '80000001'h,
++-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
++-- Thus, a typical sequence number will be very negative.
++ ospfExtLsdbSequence OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The sequence number field is a signed 32-bit
++ integer. It is used to detect old and dupli-
++ cate link state advertisements. The space of
++ sequence numbers is linearly ordered. The
++ larger the sequence number the more recent the
++ advertisement."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.6 LS sequence
++ number"
++ ::= { ospfExtLsdbEntry 4 }
++
++
++ ospfExtLsdbAge OBJECT-TYPE
++ SYNTAX Integer32 -- Should be 0..MaxAge
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This field is the age of the link state adver-
++ tisement in seconds."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.1 LS age"
++ ::= { ospfExtLsdbEntry 5 }
++
++
++ ospfExtLsdbChecksum OBJECT-TYPE
++ SYNTAX Integer32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "This field is the checksum of the complete
++ contents of the advertisement, excepting the
++ age field. The age field is excepted so that
++ an advertisement's age can be incremented
++ without updating the checksum. The checksum
++ used is the same that is used for ISO connec-
++ tionless datagrams; it is commonly referred to
++ as the Fletcher checksum."
++ REFERENCE
++ "OSPF Version 2, Section 12.1.7 LS checksum"
++ ::= { ospfExtLsdbEntry 6 }
++
++
++ ospfExtLsdbAdvertisement OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE(36))
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The entire Link State Advertisement, including
++ its header."
++ REFERENCE
++ "OSPF Version 2, Section 12 Link State Adver-
++ tisements"
++ ::= { ospfExtLsdbEntry 7 }
++
++
++-- OSPF Use of the CIDR Route Table
++
++ospfRouteGroup OBJECT IDENTIFIER ::= { ospf 13 }
++
++-- The IP Forwarding Table defines a number of objects for use by
++-- the routing protocol to externalize its information. Most of
++-- the variables (ipForwardDest, ipForwardMask, ipForwardPolicy,
++-- ipForwardNextHop, ipForwardIfIndex, ipForwardType,
++-- ipForwardProto, ipForwardAge, and ipForwardNextHopAS) are
++-- defined there.
++
++-- Those that leave some discretion are defined here.
++
++-- ipCidrRouteProto is, of course, ospf (13).
++
++-- ipCidrRouteAge is the time since the route was first calculated,
++-- as opposed to the time since the last SPF run.
++
++-- ipCidrRouteInfo is an OBJECT IDENTIFIER for use by the routing
++-- protocol. The following values shall be found there depending
++-- on the way the route was calculated.
++
++ospfIntraArea OBJECT IDENTIFIER ::= { ospfRouteGroup 1 }
++ospfInterArea OBJECT IDENTIFIER ::= { ospfRouteGroup 2 }
++ospfExternalType1 OBJECT IDENTIFIER ::= { ospfRouteGroup 3 }
++ospfExternalType2 OBJECT IDENTIFIER ::= { ospfRouteGroup 4 }
++
++-- ipCidrRouteMetric1 is, by definition, the primary routing
++-- metric. Therefore, it should be the metric that route
++-- selection is based on. For intra-area and inter-area routes,
++-- it is an OSPF metric. For External Type 1 (comparable value)
++-- routes, it is an OSPF metric plus the External Metric. For
++-- external Type 2 (non-comparable value) routes, it is the
++-- external metric.
++
++-- ipCidrRouteMetric2 is, by definition, a secondary routing
++-- metric. Therefore, it should be the metric that breaks a tie
++-- among routes having equal metric1 values and the same
++-- calculation rule. For intra-area, inter-area routes, and
++-- External Type 1 (comparable value) routes, it is unused. For
++-- external Type 2 (non-comparable value) routes, it is the metric
++-- to the AS border router.
++
++-- ipCidrRouteMetric3, ipCidrRouteMetric4, and ipCidrRouteMetric5 are
++-- unused.
++
++--
++-- The OSPF Area Aggregate Table
++--
++-- This table replaces the OSPF Area Summary Table, being an
++-- extension of that for CIDR routers.
++
++ ospfAreaAggregateTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF OspfAreaAggregateEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A range of IP addresses specified by an IP
++ address/IP network mask pair. For example,
++ class B address range of X.X.X.X with a network
++ mask of 255.255.0.0 includes all IP addresses
++ from X.X.0.0 to X.X.255.255. Note that if
++ ranges are configured such that one range sub-
++ sumes another range (e.g., 10.0.0.0 mask
++ 255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the
++ most specific match is the preferred one."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospf 14 }
++
++
++ ospfAreaAggregateEntry OBJECT-TYPE
++ SYNTAX OspfAreaAggregateEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A range of IP addresses specified by an IP
++ address/IP network mask pair. For example,
++ class B address range of X.X.X.X with a network
++ mask of 255.255.0.0 includes all IP addresses
++ from X.X.0.0 to X.X.255.255. Note that if
++ ranges are range configured such that one range
++ subsumes another range (e.g., 10.0.0.0 mask
++ 255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the
++ most specific match is the preferred one."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ INDEX { ospfAreaAggregateAreaID, ospfAreaAggregateLsdbType,
++ ospfAreaAggregateNet, ospfAreaAggregateMask }
++ ::= { ospfAreaAggregateTable 1 }
++
++
++OspfAreaAggregateEntry ::=
++ SEQUENCE {
++ ospfAreaAggregateAreaID
++ AreaID,
++ ospfAreaAggregateLsdbType
++ INTEGER,
++ ospfAreaAggregateNet
++ IpAddress,
++ ospfAreaAggregateMask
++ IpAddress,
++ ospfAreaAggregateStatus
++ RowStatus,
++ ospfAreaAggregateEffect
++ INTEGER
++ }
++
++ ospfAreaAggregateAreaID OBJECT-TYPE
++ SYNTAX AreaID
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Area the Address Aggregate is to be found
++ within."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaAggregateEntry 1 }
++
++
++ ospfAreaAggregateLsdbType OBJECT-TYPE
++ SYNTAX INTEGER {
++ summaryLink (3),
++ nssaExternalLink (7)
++ }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The type of the Address Aggregate. This field
++ specifies the Lsdb type that this Address Ag-
++ gregate applies to."
++ REFERENCE
++ "OSPF Version 2, Appendix A.4.1 The Link State
++ Advertisement header"
++ ::= { ospfAreaAggregateEntry 2 }
++
++
++ ospfAreaAggregateNet OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of the Net or Subnet indicated
++ by the range."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaAggregateEntry 3 }
++
++
++ ospfAreaAggregateMask OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The Subnet Mask that pertains to the Net or
++ Subnet."
++ REFERENCE
++ "OSPF Version 2, Appendix C.2 Area parameters"
++ ::= { ospfAreaAggregateEntry 4 }
++
++
++ ospfAreaAggregateStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable displays the status of the en-
++ try. Setting it to 'invalid' has the effect of
++ rendering it inoperative. The internal effect
++ (row removal) is implementation dependent."
++ ::= { ospfAreaAggregateEntry 5 }
++
++
++ ospfAreaAggregateEffect OBJECT-TYPE
++ SYNTAX INTEGER {
++ advertiseMatching (1),
++ doNotAdvertiseMatching (2)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "Subnets subsumed by ranges either trigger the
++ advertisement of the indicated aggregate (ad-
++ vertiseMatching), or result in the subnet's not
++ being advertised at all outside the area."
++ DEFVAL { advertiseMatching }
++ ::= { ospfAreaAggregateEntry 6 }
++
++
++-- conformance information
++
++ospfConformance OBJECT IDENTIFIER ::= { ospf 15 }
++
++ospfGroups OBJECT IDENTIFIER ::= { ospfConformance 1 }
++ospfCompliances OBJECT IDENTIFIER ::= { ospfConformance 2 }
++
++-- compliance statements
++
++ ospfCompliance MODULE-COMPLIANCE
++ STATUS current
++ DESCRIPTION
++ "The compliance statement "
++ MODULE -- this module
++ MANDATORY-GROUPS {
++ ospfBasicGroup,
++ ospfAreaGroup,
++ ospfStubAreaGroup,
++ ospfIfGroup,
++ ospfIfMetricGroup,
++ ospfVirtIfGroup,
++ ospfNbrGroup,
++ ospfVirtNbrGroup,
++ ospfAreaAggregateGroup
++ }
++ ::= { ospfCompliances 1 }
++
++
++-- units of conformance
++
++ ospfBasicGroup OBJECT-GROUP
++ OBJECTS {
++ ospfRouterId,
++ ospfAdminStat,
++ ospfVersionNumber,
++ ospfAreaBdrRtrStatus,
++ ospfASBdrRtrStatus,
++ ospfExternLsaCount,
++ ospfExternLsaCksumSum,
++ ospfTOSSupport,
++ ospfOriginateNewLsas,
++ ospfRxNewLsas,
++ ospfExtLsdbLimit,
++ ospfMulticastExtensions,
++ ospfExitOverflowInterval,
++ ospfDemandExtensions
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 1 }
++
++
++ ospfAreaGroup OBJECT-GROUP
++ OBJECTS {
++ ospfAreaId,
++ ospfImportAsExtern,
++ ospfSpfRuns,
++ ospfAreaBdrRtrCount,
++ ospfAsBdrRtrCount,
++ ospfAreaLsaCount,
++ ospfAreaLsaCksumSum,
++ ospfAreaSummary,
++ ospfAreaStatus
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems
++ supporting areas."
++ ::= { ospfGroups 2 }
++
++
++ ospfStubAreaGroup OBJECT-GROUP
++ OBJECTS {
++ ospfStubAreaId,
++ ospfStubTOS,
++ ospfStubMetric,
++ ospfStubStatus,
++ ospfStubMetricType
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems
++ supporting stub areas."
++ ::= { ospfGroups 3 }
++
++
++ ospfLsdbGroup OBJECT-GROUP
++ OBJECTS {
++ ospfLsdbAreaId,
++ ospfLsdbType,
++ ospfLsdbLsid,
++ ospfLsdbRouterId,
++ ospfLsdbSequence,
++ ospfLsdbAge,
++ ospfLsdbChecksum,
++ ospfLsdbAdvertisement
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems
++ that display their link state database."
++ ::= { ospfGroups 4 }
++
++
++ ospfAreaRangeGroup OBJECT-GROUP
++ OBJECTS {
++ ospfAreaRangeAreaId,
++ ospfAreaRangeNet,
++ ospfAreaRangeMask,
++ ospfAreaRangeStatus,
++ ospfAreaRangeEffect
++ }
++ STATUS obsolete
++ DESCRIPTION
++ "These objects are required for non-CIDR OSPF
++ systems that support multiple areas."
++ ::= { ospfGroups 5 }
++
++
++ ospfHostGroup OBJECT-GROUP
++ OBJECTS {
++ ospfHostIpAddress,
++ ospfHostTOS,
++ ospfHostMetric,
++ ospfHostStatus,
++ ospfHostAreaID
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems
++ that support attached hosts."
++ ::= { ospfGroups 6 }
++
++
++ ospfIfGroup OBJECT-GROUP
++ OBJECTS {
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfIfAreaId,
++ ospfIfType,
++ ospfIfAdminStat,
++ ospfIfRtrPriority,
++ ospfIfTransitDelay,
++ ospfIfRetransInterval,
++ ospfIfHelloInterval,
++ ospfIfRtrDeadInterval,
++ ospfIfPollInterval,
++ ospfIfState,
++ ospfIfDesignatedRouter,
++ ospfIfBackupDesignatedRouter,
++ ospfIfEvents,
++ ospfIfAuthType,
++ ospfIfAuthKey,
++ ospfIfStatus,
++ ospfIfMulticastForwarding,
++ ospfIfDemand
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 7 }
++
++
++ ospfIfMetricGroup OBJECT-GROUP
++ OBJECTS {
++ ospfIfMetricIpAddress,
++ ospfIfMetricAddressLessIf,
++ ospfIfMetricTOS,
++ ospfIfMetricValue,
++ ospfIfMetricStatus
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 8 }
++
++
++ ospfVirtIfGroup OBJECT-GROUP
++ OBJECTS {
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfVirtIfTransitDelay,
++ ospfVirtIfRetransInterval,
++ ospfVirtIfHelloInterval,
++ ospfVirtIfRtrDeadInterval,
++ ospfVirtIfState,
++ ospfVirtIfEvents,
++ ospfVirtIfAuthType,
++ ospfVirtIfAuthKey,
++ ospfVirtIfStatus
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 9 }
++
++
++ ospfNbrGroup OBJECT-GROUP
++ OBJECTS {
++ ospfNbrIpAddr,
++ ospfNbrAddressLessIndex,
++ ospfNbrRtrId,
++ ospfNbrOptions,
++ ospfNbrPriority,
++ ospfNbrState,
++ ospfNbrEvents,
++ ospfNbrLsRetransQLen,
++ ospfNbmaNbrStatus,
++ ospfNbmaNbrPermanence,
++ ospfNbrHelloSuppressed
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 10 }
++
++
++ ospfVirtNbrGroup OBJECT-GROUP
++ OBJECTS {
++ ospfVirtNbrArea,
++ ospfVirtNbrRtrId,
++ ospfVirtNbrIpAddr,
++ ospfVirtNbrOptions,
++ ospfVirtNbrState,
++ ospfVirtNbrEvents,
++ ospfVirtNbrLsRetransQLen,
++ ospfVirtNbrHelloSuppressed
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 11 }
++
++
++ ospfExtLsdbGroup OBJECT-GROUP
++ OBJECTS {
++ ospfExtLsdbType,
++ ospfExtLsdbLsid,
++ ospfExtLsdbRouterId,
++ ospfExtLsdbSequence,
++ ospfExtLsdbAge,
++ ospfExtLsdbChecksum,
++ ospfExtLsdbAdvertisement
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems
++ that display their link state database."
++ ::= { ospfGroups 12 }
++
++
++ ospfAreaAggregateGroup OBJECT-GROUP
++ OBJECTS {
++ ospfAreaAggregateAreaID,
++ ospfAreaAggregateLsdbType,
++ ospfAreaAggregateNet,
++ ospfAreaAggregateMask,
++ ospfAreaAggregateStatus,
++ ospfAreaAggregateEffect
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required for OSPF systems."
++ ::= { ospfGroups 13 }
++
++END
+diff -ruN net-snmp-5.1.2-orig/mibs/OSPF-TRAP-MIB.txt net-snmp-5.1.2-5/mibs/OSPF-TRAP-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/OSPF-TRAP-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/OSPF-TRAP-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,443 @@
++OSPF-TRAP-MIB DEFINITIONS ::= BEGIN
++
++ IMPORTS
++ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress
++ FROM SNMPv2-SMI
++ MODULE-COMPLIANCE, OBJECT-GROUP
++ FROM SNMPv2-CONF
++ ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfIfState,
++ ospfVirtIfAreaId, ospfVirtIfNeighbor, ospfVirtIfState,
++ ospfNbrIpAddr, ospfNbrAddressLessIndex, ospfNbrRtrId,
++ ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId, ospfVirtNbrState,
++ ospfLsdbType, ospfLsdbLsid, ospfLsdbRouterId, ospfLsdbAreaId,
++ ospfExtLsdbLimit, ospf
++ FROM OSPF-MIB;
++
++ ospfTrap MODULE-IDENTITY
++ LAST-UPDATED "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
++ ORGANIZATION "IETF OSPF Working Group"
++ CONTACT-INFO
++ " Fred Baker
++ Postal: Cisco Systems
++ 519 Lado Drive
++ Santa Barbara, California 93111
++ Tel: +1 805 681 0115
++ E-Mail: fred@cisco.com
++
++ Rob Coltun
++ Postal: RainbowBridge Communications
++ Tel: (301) 340-9416
++ E-Mail: rcoltun@rainbow-bridge.com"
++ DESCRIPTION
++ "The MIB module to describe traps for the OSPF
++ Version 2 Protocol."
++ ::= { ospf 16 }
++
++-- Trap Support Objects
++
++-- The following are support objects for the OSPF traps.
++
++ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }
++ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 2 }
++
++ ospfSetTrap OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE(4))
++ MAX-ACCESS read-write
++ STATUS current
++ DESCRIPTION
++ "A four-octet string serving as a bit map for
++ the trap events defined by the OSPF traps. This
++ object is used to enable and disable specific
++ OSPF traps where a 1 in the bit field
++ represents enabled. The right-most bit (least
++ significant) represents trap 0."
++ ::= { ospfTrapControl 1 }
++
++
++ ospfConfigErrorType OBJECT-TYPE
++ SYNTAX INTEGER {
++ badVersion (1),
++ areaMismatch (2),
++ unknownNbmaNbr (3), -- Router is Dr eligible
++ unknownVirtualNbr (4),
++ authTypeMismatch(5),
++ authFailure (6),
++ netMaskMismatch (7),
++ helloIntervalMismatch (8),
++ deadIntervalMismatch (9),
++ optionMismatch (10) }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "Potential types of configuration conflicts.
++ Used by the ospfConfigError and ospfConfigVir-
++ tError traps."
++ ::= { ospfTrapControl 2 }
++
++
++ ospfPacketType OBJECT-TYPE
++ SYNTAX INTEGER {
++ hello (1),
++ dbDescript (2),
++ lsReq (3),
++ lsUpdate (4),
++ lsAck (5) }
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "OSPF packet types."
++ ::= { ospfTrapControl 3 }
++
++
++ ospfPacketSrc OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP address of an inbound packet that can-
++ not be identified by a neighbor instance."
++ ::= { ospfTrapControl 4 }
++
++
++-- Traps
++
++
++ ospfIfStateChange NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfIfState -- The new state
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfStateChange trap signifies that there
++ has been a change in the state of a non-virtual
++ OSPF interface. This trap should be generated
++ when the interface state regresses (e.g., goes
++ from Dr to Down) or progresses to a terminal
++ state (i.e., Point-to-Point, DR Other, Dr, or
++ Backup)."
++ ::= { ospfTraps 16 }
++
++
++ ospfVirtIfStateChange NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfVirtIfState -- The new state
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfStateChange trap signifies that there
++ has been a change in the state of an OSPF vir-
++ tual interface.
++ This trap should be generated when the inter-
++ face state regresses (e.g., goes from Point-
++ to-Point to Down) or progresses to a terminal
++ state (i.e., Point-to-Point)."
++ ::= { ospfTraps 1 }
++
++
++ ospfNbrStateChange NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfNbrIpAddr,
++ ospfNbrAddressLessIndex,
++ ospfNbrRtrId,
++ ospfNbrState -- The new state
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfNbrStateChange trap signifies that
++ there has been a change in the state of a non-
++ virtual OSPF neighbor. This trap should be
++ generated when the neighbor state regresses
++ (e.g., goes from Attempt or Full to 1-Way or
++ Down) or progresses to a terminal state (e.g.,
++ 2-Way or Full). When an neighbor transitions
++ from or to Full on non-broadcast multi-access
++ and broadcast networks, the trap should be gen-
++ erated by the designated router. A designated
++ router transitioning to Down will be noted by
++ ospfIfStateChange."
++ ::= { ospfTraps 2 }
++
++
++ ospfVirtNbrStateChange NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtNbrArea,
++ ospfVirtNbrRtrId,
++ ospfVirtNbrState -- The new state
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfStateChange trap signifies that there
++ has been a change in the state of an OSPF vir-
++ tual neighbor. This trap should be generated
++ when the neighbor state regresses (e.g., goes
++ from Attempt or Full to 1-Way or Down) or
++ progresses to a terminal state (e.g., Full)."
++ ::= { ospfTraps 3 }
++ ospfIfConfigError NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfPacketSrc, -- The source IP address
++ ospfConfigErrorType, -- Type of error
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfConfigError trap signifies that a
++ packet has been received on a non-virtual in-
++ terface from a router whose configuration
++ parameters conflict with this router's confi-
++ guration parameters. Note that the event op-
++ tionMismatch should cause a trap only if it
++ prevents an adjacency from forming."
++ ::= { ospfTraps 4 }
++
++
++ ospfVirtIfConfigError NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfConfigErrorType, -- Type of error
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfConfigError trap signifies that a pack-
++ et has been received on a virtual interface
++ from a router whose configuration parameters
++ conflict with this router's configuration
++ parameters. Note that the event optionMismatch
++ should cause a trap only if it prevents an ad-
++ jacency from forming."
++ ::= { ospfTraps 5 }
++
++
++ ospfIfAuthFailure NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfPacketSrc, -- The source IP address
++ ospfConfigErrorType, -- authTypeMismatch or
++ -- authFailure
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfAuthFailure trap signifies that a
++ packet has been received on a non-virtual in-
++ terface from a router whose authentication key
++ or authentication type conflicts with this
++ router's authentication key or authentication
++ type."
++ ::= { ospfTraps 6 }
++
++
++ ospfVirtIfAuthFailure NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfConfigErrorType, -- authTypeMismatch or
++ -- authFailure
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfVirtIfAuthFailure trap signifies that a
++ packet has been received on a virtual interface
++ from a router whose authentication key or au-
++ thentication type conflicts with this router's
++ authentication key or authentication type."
++ ::= { ospfTraps 7 }
++
++
++ ospfIfRxBadPacket NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfPacketSrc, -- The source IP address
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfIfRxBadPacket trap signifies that an
++ OSPF packet has been received on a non-virtual
++ interface that cannot be parsed."
++ ::= { ospfTraps 8 }
++
++ ospfVirtIfRxBadPacket NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfPacketType
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfRxBadPacket trap signifies that an OSPF
++ packet has been received on a virtual interface
++ that cannot be parsed."
++ ::= { ospfTraps 9 }
++
++
++ ospfTxRetransmit NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfIfIpAddress,
++ ospfAddressLessIf,
++ ospfNbrRtrId, -- Destination
++ ospfPacketType,
++ ospfLsdbType,
++ ospfLsdbLsid,
++ ospfLsdbRouterId
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfTxRetransmit trap signifies than an
++ OSPF packet has been retransmitted on a non-
++ virtual interface. All packets that may be re-
++ transmitted are associated with an LSDB entry.
++ The LS type, LS ID, and Router ID are used to
++ identify the LSDB entry."
++ ::= { ospfTraps 10 }
++
++
++ ospfVirtIfTxRetransmit NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfVirtIfAreaId,
++ ospfVirtIfNeighbor,
++ ospfPacketType,
++ ospfLsdbType,
++ ospfLsdbLsid,
++ ospfLsdbRouterId
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfTxRetransmit trap signifies than an
++ OSPF packet has been retransmitted on a virtual
++ interface. All packets that may be retransmit-
++ ted are associated with an LSDB entry. The LS
++ type, LS ID, and Router ID are used to identify
++ the LSDB entry."
++ ::= { ospfTraps 11 }
++
++
++ ospfOriginateLsa NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfLsdbAreaId, -- 0.0.0.0 for AS Externals
++ ospfLsdbType,
++ ospfLsdbLsid,
++ ospfLsdbRouterId
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfOriginateLsa trap signifies that a new
++ LSA has been originated by this router. This
++ trap should not be invoked for simple refreshes
++ of LSAs (which happesn every 30 minutes), but
++ instead will only be invoked when an LSA is
++ (re)originated due to a topology change. Addi-
++ tionally, this trap does not include LSAs that
++ are being flushed because they have reached
++ MaxAge."
++ ::= { ospfTraps 12 }
++
++
++ ospfMaxAgeLsa NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfLsdbAreaId, -- 0.0.0.0 for AS Externals
++ ospfLsdbType,
++ ospfLsdbLsid,
++ ospfLsdbRouterId
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfMaxAgeLsa trap signifies that one of
++ the LSA in the router's link-state database has
++ aged to MaxAge."
++ ::= { ospfTraps 13 }
++
++
++ ospfLsdbOverflow NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfExtLsdbLimit
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfLsdbOverflow trap signifies that the
++ number of LSAs in the router's link-state data-
++ base has exceeded ospfExtLsdbLimit."
++ ::= { ospfTraps 14 }
++
++
++ ospfLsdbApproachingOverflow NOTIFICATION-TYPE
++ OBJECTS {
++ ospfRouterId, -- The originator of the trap
++ ospfExtLsdbLimit
++ }
++ STATUS current
++ DESCRIPTION
++ "An ospfLsdbApproachingOverflow trap signifies
++ that the number of LSAs in the router's link-
++ state database has exceeded ninety percent of
++ ospfExtLsdbLimit."
++ ::= { ospfTraps 15 }
++
++
++-- conformance information
++
++ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 3 }
++
++ospfTrapGroups OBJECT IDENTIFIER ::= { ospfTrapConformance 1 }
++ospfTrapCompliances OBJECT IDENTIFIER ::= { ospfTrapConformance 2 }
++
++-- compliance statements
++
++ ospfTrapCompliance MODULE-COMPLIANCE
++ STATUS current
++ DESCRIPTION
++ "The compliance statement "
++ MODULE -- this module
++ MANDATORY-GROUPS { ospfTrapControlGroup }
++
++
++ GROUP ospfTrapControlGroup
++ DESCRIPTION
++ "This group is optional but recommended for all
++ OSPF systems"
++ ::= { ospfTrapCompliances 1 }
++
++
++-- units of conformance
++
++ ospfTrapControlGroup OBJECT-GROUP
++ OBJECTS {
++ ospfSetTrap,
++ ospfConfigErrorType,
++ ospfPacketType,
++ ospfPacketSrc
++ }
++ STATUS current
++ DESCRIPTION
++ "These objects are required to control traps
++ from OSPF systems."
++ ::= { ospfTrapGroups 1 }
++
++
++END
+diff -ruN net-snmp-5.1.2-orig/mibs/RIPv2-MIB.txt net-snmp-5.1.2-5/mibs/RIPv2-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/RIPv2-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/RIPv2-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,530 @@
++ RIPv2-MIB DEFINITIONS ::= BEGIN
++
++ IMPORTS
++ MODULE-IDENTITY, OBJECT-TYPE, Counter32,
++ TimeTicks, IpAddress FROM SNMPv2-SMI
++ TEXTUAL-CONVENTION, RowStatus FROM SNMPv2-TC
++ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
++ mib-2 FROM RFC1213-MIB;
++
++ -- This MIB module uses the extended OBJECT-TYPE macro as
++ -- defined in [9].
++
++ rip2 MODULE-IDENTITY
++ LAST-UPDATED "9407272253Z" -- Wed Jul 27 22:53:04 PDT 1994
++ ORGANIZATION "IETF RIP-II Working Group"
++ CONTACT-INFO
++ " Fred Baker
++ Postal: Cisco Systems
++ 519 Lado Drive
++ Santa Barbara, California 93111
++ Tel: +1 805 681 0115
++ E-Mail: fbaker@cisco.com
++
++ Postal: Gary Malkin
++ Xylogics, Inc.
++ 53 Third Avenue
++ Burlington, MA 01803
++
++ Phone: (617) 272-8140
++ EMail: gmalkin@Xylogics.COM"
++ DESCRIPTION
++ "The MIB module to describe the RIP2 Version 2 Protocol"
++ ::= { mib-2 23 }
++
++ -- RIP-2 Management Information Base
++
++ -- the RouteTag type represents the contents of the
++ -- Route Domain field in the packet header or route entry.
++ -- The use of the Route Domain is deprecated.
++
++ RouteTag ::= TEXTUAL-CONVENTION
++ STATUS current
++ DESCRIPTION
++ "the RouteTag type represents the contents of the Route Domain
++ field in the packet header or route entry"
++ SYNTAX OCTET STRING (SIZE (2))
++
++--4.1 Global Counters
++
++-- The RIP-2 Globals Group.
++-- Implementation of this group is mandatory for systems
++-- which implement RIP-2.
++
++-- These counters are intended to facilitate debugging quickly
++-- changing routes or failing neighbors
++
++rip2Globals OBJECT IDENTIFIER ::= { rip2 1 }
++
++ rip2GlobalRouteChanges OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of route changes made to the IP Route
++ Database by RIP. This does not include the refresh
++ of a route's age."
++ ::= { rip2Globals 1 }
++
++ rip2GlobalQueries OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of responses sent to RIP queries
++ from other systems."
++ ::= { rip2Globals 2 }
++
++--4.2 RIP Interface Tables
++
++-- RIP Interfaces Groups
++-- Implementation of these Groups is mandatory for systems
++-- which implement RIP-2.
++
++-- The RIP Interface Status Table.
++
++ rip2IfStatTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Rip2IfStatEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A list of subnets which require separate
++ status monitoring in RIP."
++ ::= { rip2 2 }
++
++ rip2IfStatEntry OBJECT-TYPE
++ SYNTAX Rip2IfStatEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A Single Routing Domain in a single Subnet."
++ INDEX { rip2IfStatAddress }
++ ::= { rip2IfStatTable 1 }
++
++ Rip2IfStatEntry ::=
++ SEQUENCE {
++ rip2IfStatAddress
++ IpAddress,
++ rip2IfStatRcvBadPackets
++ Counter32,
++ rip2IfStatRcvBadRoutes
++ Counter32,
++ rip2IfStatSentUpdates
++ Counter32,
++ rip2IfStatStatus
++ RowStatus
++ }
++
++ rip2IfStatAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of this system on the indicated
++ subnet. For unnumbered interfaces, the value 0.0.0.N,
++ where the least significant 24 bits (N) is the ifIndex
++ for the IP Interface in network byte order."
++ ::= { rip2IfStatEntry 1 }
++
++ rip2IfStatRcvBadPackets OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of RIP response packets received by
++ the RIP process which were subsequently discarded
++ for any reason (e.g. a version 0 packet, or an
++ unknown command type)."
++ ::= { rip2IfStatEntry 2 }
++
++ rip2IfStatRcvBadRoutes OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of routes, in valid RIP packets,
++ which were ignored for any reason (e.g. unknown
++ address family, or invalid metric)."
++ ::= { rip2IfStatEntry 3 }
++
++ rip2IfStatSentUpdates OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of triggered RIP updates actually
++ sent on this interface. This explicitly does
++ NOT include full updates sent containing new
++ information."
++ ::= { rip2IfStatEntry 4 }
++
++ rip2IfStatStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "Writing invalid has the effect of deleting
++ this interface."
++ ::= { rip2IfStatEntry 5 }
++
++-- The RIP Interface Configuration Table.
++
++ rip2IfConfTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Rip2IfConfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A list of subnets which require separate
++ configuration in RIP."
++ ::= { rip2 3 }
++
++ rip2IfConfEntry OBJECT-TYPE
++ SYNTAX Rip2IfConfEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A Single Routing Domain in a single Subnet."
++ INDEX { rip2IfConfAddress }
++ ::= { rip2IfConfTable 1 }
++
++ Rip2IfConfEntry ::=
++ SEQUENCE {
++ rip2IfConfAddress
++ IpAddress,
++ rip2IfConfDomain
++ RouteTag,
++ rip2IfConfAuthType
++ INTEGER,
++ rip2IfConfAuthKey
++ OCTET STRING (SIZE(0..16)),
++ rip2IfConfSend
++ INTEGER,
++ rip2IfConfReceive
++ INTEGER,
++ rip2IfConfDefaultMetric
++ INTEGER,
++ rip2IfConfStatus
++ RowStatus,
++ rip2IfConfSrcAddress
++ IpAddress
++ }
++
++ rip2IfConfAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address of this system on the indicated
++ subnet. For unnumbered interfaces, the value 0.0.0.N,
++ where the least significant 24 bits (N) is the ifIndex
++ for the IP Interface in network byte order."
++ ::= { rip2IfConfEntry 1 }
++
++ rip2IfConfDomain OBJECT-TYPE
++ SYNTAX RouteTag
++ MAX-ACCESS read-create
++ STATUS obsolete
++ DESCRIPTION
++ "Value inserted into the Routing Domain field
++ of all RIP packets sent on this interface."
++ DEFVAL { '0000'h }
++ ::= { rip2IfConfEntry 2 }
++
++ rip2IfConfAuthType OBJECT-TYPE
++ SYNTAX INTEGER {
++ noAuthentication (1),
++ simplePassword (2),
++ md5 (3)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The type of Authentication used on this
++ interface."
++ DEFVAL { noAuthentication }
++ ::= { rip2IfConfEntry 3 }
++
++ rip2IfConfAuthKey OBJECT-TYPE
++ SYNTAX OCTET STRING (SIZE(0..16))
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The value to be used as the Authentication Key
++ whenever the corresponding instance of
++ rip2IfConfAuthType has a value other than
++ noAuthentication. A modification of the corresponding
++ instance of rip2IfConfAuthType does not modify
++ the rip2IfConfAuthKey value. If a string shorter
++ than 16 octets is supplied, it will be left-
++ justified and padded to 16 octets, on the right,
++ with nulls (0x00).
++
++ Reading this object always results in an OCTET
++ STRING of length zero; authentication may not
++ be bypassed by reading the MIB object."
++ DEFVAL { ''h }
++ ::= { rip2IfConfEntry 4 }
++
++ rip2IfConfSend OBJECT-TYPE
++ SYNTAX INTEGER {
++ doNotSend (1),
++ ripVersion1 (2),
++ rip1Compatible (3),
++ ripVersion2 (4),
++ ripV1Demand (5),
++ ripV2Demand (6)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "What the router sends on this interface.
++ ripVersion1 implies sending RIP updates compliant
++ with RFC 1058. rip1Compatible implies
++ broadcasting RIP-2 updates using RFC 1058 route
++ subsumption rules. ripVersion2 implies
++ multicasting RIP-2 updates. ripV1Demand indicates
++ the use of Demand RIP on a WAN interface under RIP
++ Version 1 rules. ripV2Demand indicates the use of
++ Demand RIP on a WAN interface under Version 2 rules."
++ DEFVAL { rip1Compatible }
++ ::= { rip2IfConfEntry 5 }
++
++ rip2IfConfReceive OBJECT-TYPE
++ SYNTAX INTEGER {
++ rip1 (1),
++ rip2 (2),
++ rip1OrRip2 (3),
++ doNotRecieve (4)
++ }
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This indicates which version of RIP updates
++ are to be accepted. Note that rip2 and
++ rip1OrRip2 implies reception of multicast
++ packets."
++ DEFVAL { rip1OrRip2 }
++ ::= { rip2IfConfEntry 6 }
++
++ rip2IfConfDefaultMetric OBJECT-TYPE
++ SYNTAX INTEGER ( 0..15 )
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "This variable indicates the metric that is to
++ be used for the default route entry in RIP updates
++ originated on this interface. A value of zero
++ indicates that no default route should be
++ originated; in this case, a default route via
++ another router may be propagated."
++ ::= { rip2IfConfEntry 7 }
++
++ rip2IfConfStatus OBJECT-TYPE
++ SYNTAX RowStatus
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "Writing invalid has the effect of deleting
++ this interface."
++ ::= { rip2IfConfEntry 8 }
++
++ rip2IfConfSrcAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-create
++ STATUS current
++ DESCRIPTION
++ "The IP Address this system will use as a source
++ address on this interface. If it is a numbered
++ interface, this MUST be the same value as
++ rip2IfConfAddress. On unnumbered interfaces,
++ it must be the value of rip2IfConfAddress for
++ some interface on the system."
++ ::= { rip2IfConfEntry 9 }
++
++--4.3 Peer Table
++
++-- Peer Table
++
++-- The RIP Peer Group
++-- Implementation of this Group is Optional
++
++-- This group provides information about active peer
++-- relationships intended to assist in debugging. An
++-- active peer is a router from which a valid RIP
++-- updated has been heard in the last 180 seconds.
++
++ rip2PeerTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Rip2PeerEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "A list of RIP Peers."
++ ::= { rip2 4 }
++
++ rip2PeerEntry OBJECT-TYPE
++ SYNTAX Rip2PeerEntry
++ MAX-ACCESS not-accessible
++ STATUS current
++ DESCRIPTION
++ "Information regarding a single routing peer."
++ INDEX { rip2PeerAddress, rip2PeerDomain }
++ ::= { rip2PeerTable 1 }
++
++ Rip2PeerEntry ::=
++ SEQUENCE {
++ rip2PeerAddress
++ IpAddress,
++ rip2PeerDomain
++ RouteTag,
++ rip2PeerLastUpdate
++ TimeTicks,
++ rip2PeerVersion
++ INTEGER,
++ rip2PeerRcvBadPackets
++ Counter32,
++ rip2PeerRcvBadRoutes
++ Counter32
++ }
++
++ rip2PeerAddress OBJECT-TYPE
++ SYNTAX IpAddress
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The IP Address that the peer is using as its source
++ address. Note that on an unnumbered link, this may
++ not be a member of any subnet on the system."
++ ::= { rip2PeerEntry 1 }
++
++ rip2PeerDomain OBJECT-TYPE
++ SYNTAX RouteTag
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The value in the Routing Domain field in RIP
++ packets received from the peer. As domain suuport
++ is deprecated, this must be zero."
++ ::= { rip2PeerEntry 2 }
++
++ rip2PeerLastUpdate OBJECT-TYPE
++ SYNTAX TimeTicks
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The value of sysUpTime when the most recent
++ RIP update was received from this system."
++ ::= { rip2PeerEntry 3 }
++
++ rip2PeerVersion OBJECT-TYPE
++ SYNTAX INTEGER ( 0..255 )
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The RIP version number in the header of the
++ last RIP packet received."
++ ::= { rip2PeerEntry 4 }
++
++ rip2PeerRcvBadPackets OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of RIP response packets from this
++ peer discarded as invalid."
++ ::= { rip2PeerEntry 5 }
++
++
++ rip2PeerRcvBadRoutes OBJECT-TYPE
++ SYNTAX Counter32
++ MAX-ACCESS read-only
++ STATUS current
++ DESCRIPTION
++ "The number of routes from this peer that were
++ ignored because the entry format was invalid."
++ ::= { rip2PeerEntry 6 }
++
++-- conformance information
++
++rip2Conformance OBJECT IDENTIFIER ::= { rip2 5 }
++
++rip2Groups OBJECT IDENTIFIER ::= { rip2Conformance 1 }
++rip2Compliances OBJECT IDENTIFIER ::= { rip2Conformance 2 }
++
++-- compliance statements
++rip2Compliance MODULE-COMPLIANCE
++ STATUS current
++ DESCRIPTION
++ "The compliance statement "
++ MODULE -- this module
++ MANDATORY-GROUPS {
++ rip2GlobalGroup,
++ rip2IfStatGroup,
++ rip2IfConfGroup,
++ rip2PeerGroup
++ }
++ GROUP rip2GlobalGroup
++ DESCRIPTION
++ "This group defines global controls for RIP-II systems."
++ GROUP rip2IfStatGroup
++ DESCRIPTION
++ "This group defines interface statistics for RIP-II systems."
++ GROUP rip2IfConfGroup
++ DESCRIPTION
++ "This group defines interface configuration for RIP-II systems."
++ GROUP rip2PeerGroup
++ DESCRIPTION
++ "This group defines peer information for RIP-II systems."
++ ::= { rip2Compliances 1 }
++
++-- units of conformance
++
++rip2GlobalGroup OBJECT-GROUP
++ OBJECTS {
++ rip2GlobalRouteChanges,
++ rip2GlobalQueries
++ }
++ STATUS current
++ DESCRIPTION
++ "This group defines global controls for RIP-II systems."
++ ::= { rip2Groups 1 }
++rip2IfStatGroup OBJECT-GROUP
++ OBJECTS {
++ rip2IfStatAddress,
++ rip2IfStatRcvBadPackets,
++ rip2IfStatRcvBadRoutes,
++ rip2IfStatSentUpdates,
++ rip2IfStatStatus
++ }
++ STATUS current
++ DESCRIPTION
++ "This group defines interface statistics for RIP-II systems."
++ ::= { rip2Groups 2 }
++rip2IfConfGroup OBJECT-GROUP
++ OBJECTS {
++ rip2IfConfAddress,
++ rip2IfConfAuthType,
++ rip2IfConfAuthKey,
++ rip2IfConfSend,
++ rip2IfConfReceive,
++ rip2IfConfDefaultMetric,
++ rip2IfConfStatus,
++ rip2IfConfSrcAddress
++ }
++ STATUS current
++ DESCRIPTION
++ "This group defines interface configuration for RIP-II systems."
++ ::= { rip2Groups 3 }
++rip2PeerGroup OBJECT-GROUP
++ OBJECTS {
++ rip2PeerAddress,
++ rip2PeerDomain,
++ rip2PeerLastUpdate,
++ rip2PeerVersion,
++ rip2PeerRcvBadPackets,
++ rip2PeerRcvBadRoutes
++ }
++ STATUS current
++ DESCRIPTION
++ "This group defines peer information for RIP-II systems."
++ ::= { rip2Groups 4 }
++END
+diff -ruN net-snmp-5.1.2-orig/mibs/SOURCE-ROUTING-MIB.txt net-snmp-5.1.2-5/mibs/SOURCE-ROUTING-MIB.txt
+--- net-snmp-5.1.2-orig/mibs/SOURCE-ROUTING-MIB.txt 1970-01-01 01:00:00.000000000 +0100
++++ net-snmp-5.1.2-5/mibs/SOURCE-ROUTING-MIB.txt 2005-03-13 16:17:21.000000000 +0100
+@@ -0,0 +1,452 @@
++SOURCE-ROUTING-MIB DEFINITIONS ::= BEGIN
++
++IMPORTS
++ Counter, Gauge
++ FROM RFC1155-SMI
++ dot1dBridge, dot1dSr
++ FROM BRIDGE-MIB
++ OBJECT-TYPE
++ FROM RFC-1212;
++
++-- groups in the SR MIB
++
++-- dot1dSr is imported from the Bridge MIB
++
++dot1dPortPair OBJECT IDENTIFIER ::= { dot1dBridge 10 }
++
++-- the dot1dSr group
++
++-- this group is implemented by those bridges that
++-- support the source route bridging mode, including Source
++-- Routing and SRT bridges.
++
++dot1dSrPortTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dSrPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains information about every
++ port that is associated with this source route
++ bridge."
++ ::= { dot1dSr 1 }
++
++dot1dSrPortEntry OBJECT-TYPE
++ SYNTAX Dot1dSrPortEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A list of information for each port of a source
++ route bridge."
++ INDEX { dot1dSrPort }
++
++ ::= { dot1dSrPortTable 1 }
++
++Dot1dSrPortEntry ::=
++ SEQUENCE {
++ dot1dSrPort
++ INTEGER,
++ dot1dSrPortHopCount
++ INTEGER,
++ dot1dSrPortLocalSegment
++ INTEGER,
++ dot1dSrPortBridgeNum
++ INTEGER,
++ dot1dSrPortTargetSegment
++ INTEGER,
++ dot1dSrPortLargestFrame
++ INTEGER,
++ dot1dSrPortSTESpanMode
++ INTEGER,
++ dot1dSrPortSpecInFrames
++ Counter,
++ dot1dSrPortSpecOutFrames
++ Counter,
++ dot1dSrPortApeInFrames
++ Counter,
++ dot1dSrPortApeOutFrames
++ Counter,
++ dot1dSrPortSteInFrames
++ Counter,
++ dot1dSrPortSteOutFrames
++ Counter,
++ dot1dSrPortSegmentMismatchDiscards
++ Counter,
++ dot1dSrPortDuplicateSegmentDiscards
++ Counter,
++ dot1dSrPortHopCountExceededDiscards
++ Counter,
++ dot1dSrPortDupLanIdOrTreeErrors
++ Counter,
++ dot1dSrPortLanIdMismatches
++ Counter
++ }
++
++dot1dSrPort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the port for which this entry
++
++ contains Source Route management information."
++ ::= { dot1dSrPortEntry 1 }
++
++dot1dSrPortHopCount OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The maximum number of routing descriptors allowed
++ in an All Paths or Spanning Tree Explorer frames."
++ ::= { dot1dSrPortEntry 2 }
++
++dot1dSrPortLocalSegment OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The segment number that uniquely identifies the
++ segment to which this port is connected. Current
++ source routing protocols limit this value to the
++ range: 0 through 4095. (The value 0 is used by
++ some management applications for special test
++ cases.) A value of 65535 signifies that no segment
++ number is assigned to this port."
++ ::= { dot1dSrPortEntry 3 }
++
++dot1dSrPortBridgeNum OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "A bridge number uniquely identifies a bridge when
++ more than one bridge is used to span the same two
++ segments. Current source routing protocols limit
++ this value to the range: 0 through 15. A value of
++ 65535 signifies that no bridge number is assigned
++ to this bridge."
++ ::= { dot1dSrPortEntry 4 }
++
++dot1dSrPortTargetSegment OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The segment number that corresponds to the target
++ segment this port is considered to be connected to
++ by the bridge. Current source routing protocols
++ limit this value to the range: 0 through 4095.
++
++ (The value 0 is used by some management
++ applications for special test cases.) A value of
++ 65535 signifies that no target segment is assigned
++ to this port."
++ ::= { dot1dSrPortEntry 5 }
++
++-- It would be nice if we could use ifMtu as the size of the
++-- largest frame, but we can't because ifMtu is defined to be
++-- the size that the (inter-)network layer can use which can
++-- differ from the MAC layer (especially if several layers of
++-- encapsulation are used).
++
++dot1dSrPortLargestFrame OBJECT-TYPE
++ SYNTAX INTEGER
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The maximum size of the INFO field (LLC and
++ above) that this port can send/receive. It does
++ not include any MAC level (framing) octets. The
++ value of this object is used by this bridge to
++ determine whether a modification of the
++ LargestFrame (LF, see [14]) field of the Routing
++ Control field of the Routing Information Field is
++ necessary.
++
++ 64 valid values are defined by the IEEE 802.5M SRT
++ Addendum: 516, 635, 754, 873, 993, 1112, 1231,
++ 1350, 1470, 1542, 1615, 1688, 1761, 1833, 1906,
++ 1979, 2052, 2345, 2638, 2932, 3225, 3518, 3812,
++ 4105, 4399, 4865, 5331, 5798, 6264, 6730, 7197,
++ 7663, 8130, 8539, 8949, 9358, 9768, 10178, 10587,
++ 10997, 11407, 12199, 12992, 13785, 14578, 15370,
++ 16163, 16956, 17749, 20730, 23711, 26693, 29674,
++ 32655, 35637, 38618, 41600, 44591, 47583, 50575,
++ 53567, 56559, 59551, and 65535.
++
++ An illegal value will not be accepted by the
++ bridge."
++ ::= { dot1dSrPortEntry 6 }
++
++dot1dSrPortSTESpanMode OBJECT-TYPE
++ SYNTAX INTEGER {
++ auto-span(1),
++ disabled(2),
++ forced(3)
++ }
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "Determines how this port behaves when presented
++ with a Spanning Tree Explorer frame. The value
++ 'disabled(2)' indicates that the port will not
++ accept or send Spanning Tree Explorer packets; any
++ STE packets received will be silently discarded.
++ The value 'forced(3)' indicates the port will
++ always accept and propagate Spanning Tree Explorer
++ frames. This allows a manually configured
++ Spanning Tree for this class of packet to be
++ configured. Note that unlike transparent
++ bridging, this is not catastrophic to the network
++ if there are loops. The value 'auto-span(1)' can
++ only be returned by a bridge that both implements
++ the Spanning Tree Protocol and has use of the
++ protocol enabled on this port. The behavior of the
++ port for Spanning Tree Explorer frames is
++ determined by the state of dot1dStpPortState. If
++ the port is in the 'forwarding' state, the frame
++ will be accepted or propagated. Otherwise, it
++ will be silently discarded."
++ ::= { dot1dSrPortEntry 7 }
++
++dot1dSrPortSpecInFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of Specifically Routed frames, also
++ referred to as Source Routed Frames, that have
++ been received from this port's segment."
++ ::= { dot1dSrPortEntry 8 }
++
++dot1dSrPortSpecOutFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of Specifically Routed frames, also
++ referred to as Source Routed Frames, that this
++ port has transmitted on its segment."
++ ::= { dot1dSrPortEntry 9 }
++
++dot1dSrPortApeInFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of All Paths Explorer frames, also
++ referred to as All Routes Explorer frames, that
++ have been received by this port from its segment."
++ ::= { dot1dSrPortEntry 10 }
++
++dot1dSrPortApeOutFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of all Paths Explorer Frames, also
++ referred to as All Routes Explorer frames, that
++ have been transmitted by this port on its
++ segment."
++ ::= { dot1dSrPortEntry 11 }
++
++dot1dSrPortSteInFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of spanning tree explorer frames that
++ have been received by this port from its segment."
++ ::= { dot1dSrPortEntry 12 }
++
++dot1dSrPortSteOutFrames OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of spanning tree explorer frames that
++ have been transmitted by this port on its
++ segment."
++ ::= { dot1dSrPortEntry 13 }
++
++dot1dSrPortSegmentMismatchDiscards OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of explorer frames that have been
++ discarded by this port because the routing
++ descriptor field contained an invalid adjacent
++ segment value."
++ ::= { dot1dSrPortEntry 14 }
++
++dot1dSrPortDuplicateSegmentDiscards OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of frames that have been discarded by
++ this port because the routing descriptor field
++ contained a duplicate segment identifier."
++ ::= { dot1dSrPortEntry 15 }
++
++dot1dSrPortHopCountExceededDiscards OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of explorer frames that have been
++ discarded by this port because the Routing
++ Information Field has exceeded the maximum route
++ descriptor length."
++ ::= { dot1dSrPortEntry 16 }
++
++dot1dSrPortDupLanIdOrTreeErrors OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of duplicate LAN IDs or Tree errors.
++ This helps in detection of problems in networks
++ containing older IBM Source Routing Bridges."
++ ::= { dot1dSrPortEntry 17 }
++
++dot1dSrPortLanIdMismatches OBJECT-TYPE
++ SYNTAX Counter
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The number of ARE and STE frames that were
++ discarded because the last LAN ID in the routing
++ information field did not equal the LAN-in ID.
++ This error can occur in implementations which do
++ only a LAN-in ID and Bridge Number check instead
++ of a LAN-in ID, Bridge Number, and LAN-out ID
++ check before they forward broadcast frames."
++ ::= { dot1dSrPortEntry 18 }
++
++-- scalar object in dot1dSr
++
++dot1dSrBridgeLfMode OBJECT-TYPE
++ SYNTAX INTEGER {
++ mode3(1),
++ mode6(2)
++ }
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "Indicates whether the bridge operates using older
++ 3 bit length negotiation fields or the newer 6 bit
++ length field in its RIF."
++ ::= { dot1dSr 2 }
++
++-- The Port-Pair Database
++
++-- Implementation of this group is optional.
++
++-- This group is implemented by those bridges that support
++-- the direct multiport model of the source route bridging
++-- mode as defined in the IEEE 802.5 SRT Addendum to
++-- 802.1d.
++
++-- Bridges implementing this group may report 65535 for
++-- dot1dSrPortBridgeNumber and dot1dSrPortTargetSegment,
++-- indicating that those objects are not applicable.
++
++dot1dPortPairTableSize OBJECT-TYPE
++ SYNTAX Gauge
++ ACCESS read-only
++ STATUS mandatory
++ DESCRIPTION
++ "The total number of entries in the Bridge Port
++ Pair Database."
++ ::= { dot1dPortPair 1 }
++
++-- the Bridge Port-Pair table
++
++-- this table represents port pairs within a bridge forming
++-- a unique bridge path, as defined in the IEEE 802.5M SRT
++-- Addendum.
++
++dot1dPortPairTable OBJECT-TYPE
++ SYNTAX SEQUENCE OF Dot1dPortPairEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A table that contains information about every
++
++ port pair database entity associated with this
++ source routing bridge."
++ ::= { dot1dPortPair 2 }
++
++dot1dPortPairEntry OBJECT-TYPE
++ SYNTAX Dot1dPortPairEntry
++ ACCESS not-accessible
++ STATUS mandatory
++ DESCRIPTION
++ "A list of information for each port pair entity
++ of a bridge."
++ INDEX { dot1dPortPairLowPort, dot1dPortPairHighPort }
++ ::= { dot1dPortPairTable 1 }
++
++Dot1dPortPairEntry ::=
++ SEQUENCE {
++ dot1dPortPairLowPort
++ INTEGER,
++ dot1dPortPairHighPort
++ INTEGER,
++ dot1dPortPairBridgeNum
++ INTEGER,
++ dot1dPortPairBridgeState
++ INTEGER
++ }
++
++dot1dPortPairLowPort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the lower numbered port for
++ which this entry contains port pair database
++ information."
++ ::= { dot1dPortPairEntry 1 }
++
++dot1dPortPairHighPort OBJECT-TYPE
++ SYNTAX INTEGER (1..65535)
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The port number of the higher numbered port for
++ which this entry contains port pair database
++ information."
++ ::= { dot1dPortPairEntry 2 }
++
++dot1dPortPairBridgeNum OBJECT-TYPE
++ SYNTAX INTEGER
++
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "A bridge number that uniquely identifies the path
++ provided by this source routing bridge between the
++ segments connected to dot1dPortPairLowPort and
++ dot1dPortPairHighPort. The purpose of bridge
++ number is to disambiguate between multiple paths
++ connecting the same two LANs."
++ ::= { dot1dPortPairEntry 3 }
++
++dot1dPortPairBridgeState OBJECT-TYPE
++ SYNTAX INTEGER {
++ enabled(1),
++ disabled(2),
++ invalid(3)
++ }
++ ACCESS read-write
++ STATUS mandatory
++ DESCRIPTION
++ "The state of dot1dPortPairBridgeNum. Writing
++ 'invalid(3)' to this object removes the
++ corresponding entry."
++ ::= { dot1dPortPairEntry 4 }
++
++END
+diff -ruN net-snmp-5.1.2-orig/net-snmp-config.in net-snmp-5.1.2-5/net-snmp-config.in
+--- net-snmp-5.1.2-orig/net-snmp-config.in 2004-06-17 15:39:28.000000000 +0200
++++ net-snmp-5.1.2-5/net-snmp-config.in 2005-03-13 16:17:21.000000000 +0100
+@@ -113,13 +113,13 @@
+ #################################################### client lib
+ --libs)
+ # use this one == --netsnmp-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR -lnetsnmp $NSC_LIBS
++ echo $NSC_LDFLAGS $NSC_LIBDIR -lnetsnmp $NSC_LIBS @WRAPLIBS@
+ ;;
+ --netsnmp-libs)
+ echo $NSC_LIBDIR -lnetsnmp
+ ;;
+ --external-libs)
+- echo $NSC_LDFLAGS $NSC_LIBS
++ echo $NSC_LDFLAGS $NSC_LIBS @WRAPLIBS@
+ ;;
+ #################################################### agent lib
+ --base-agent-libs)
+@@ -130,13 +130,13 @@
+ ;;
+ --agent-libs)
+ # use this one == --netsnmp-agent-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS
++ echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS @WRAPLIBS@
+ ;;
+ --netsnmp-agent-libs)
+ echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS
+ ;;
+ --external-agent-libs)
+- echo $NSC_LDFLAGS $NSC_AGENTLIBS
++ echo $NSC_LDFLAGS $NSC_AGENTLIBS @WRAPLIBS@
+ ;;
+ ####################################################
+ --version)
+@@ -409,7 +409,7 @@
+ echo "Ack. Can't create $tmpfile."
+ exit 1
+ fi
+- cmd="@CC@ $cflags @CFLAGS@ @DEVFLAGS@ -I. -I@includedir@ -o $outname $tmpfile $cfiles $NSC_LDFLAGS -L$NSC_EXEC_PREFIX/lib -lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs -lnetsnmp $NSC_AGENTLIBS $ldflags"
++ cmd="@CC@ $cflags @CFLAGS@ @DEVFLAGS@ -I. -I@includedir@ -o $outname $tmpfile $cfiles $NSC_LDFLAGS -L$NSC_EXEC_PREFIX/lib -lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs -lnetsnmp $NSC_AGENTLIBS @WRAPLIBS@ $ldflags"
+ echo "running: $cmd"
+ `$cmd`
+ if test "x$norm" != "x1" ; then
+diff -ruN net-snmp-5.1.2-orig/perl/agent/netsnmp_request_infoPtr.pm net-snmp-5.1.2-5/perl/agent/netsnmp_request_infoPtr.pm
+--- net-snmp-5.1.2-orig/perl/agent/netsnmp_request_infoPtr.pm 2002-09-19 22:38:24.000000000 +0200
++++ net-snmp-5.1.2-5/perl/agent/netsnmp_request_infoPtr.pm 2005-03-13 16:17:21.000000000 +0100
+@@ -4,6 +4,7 @@
+
+ 1;
+ __END__
++
+ =head1 NAME
+
+ NetSNMP::agent::netsnmp_request_infoPtr - Perl extension for request information
+diff -ruN net-snmp-5.1.2-orig/snmplib/Makefile.in net-snmp-5.1.2-5/snmplib/Makefile.in
+--- net-snmp-5.1.2-orig/snmplib/Makefile.in 2004-03-04 14:41:19.000000000 +0100
++++ net-snmp-5.1.2-5/snmplib/Makefile.in 2005-03-13 16:17:21.000000000 +0100
+@@ -178,11 +178,11 @@
+
+ # how to build the libraries.
+ libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION): ${TOBJS}
+- $(LIB_LD_CMD) libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) ${TOBJS}
++ $(LIB_LD_CMD) libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) ${TOBJS} @CRYPTOLIBS@
+ $(RANLIB) libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
+
+ libsnmp.$(LIB_EXTENSION)$(LIB_VERSION): ${TOBJS}
+- $(LIB_LD_CMD) libsnmp.$(LIB_EXTENSION)$(LIB_VERSION) ${TOBJS}
++ $(LIB_LD_CMD) libsnmp.$(LIB_EXTENSION)$(LIB_VERSION) ${TOBJS} @CRYPTOLIBS@
+ $(RANLIB) libsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
+
+ #
+diff -ruN net-snmp-5.1.2-orig/snmplib/snmpUDPDomain.c net-snmp-5.1.2-5/snmplib/snmpUDPDomain.c
+--- net-snmp-5.1.2-orig/snmplib/snmpUDPDomain.c 2004-07-07 14:21:32.000000000 +0200
++++ net-snmp-5.1.2-5/snmplib/snmpUDPDomain.c 2005-03-13 16:17:21.000000000 +0100
+@@ -233,18 +233,6 @@
+ netsnmp_transport_free(t);
+ return NULL;
+ }
+-#ifdef SO_BSDCOMPAT
+- /*
+- * Patch for Linux. Without this, UDP packets that fail get an ICMP
+- * response. Linux turns the failed ICMP response into an error message
+- * and return value, unlike all other OS's.
+- */
+- {
+- int one = 1;
+- setsockopt(t->sock, SOL_SOCKET, SO_BSDCOMPAT, (void *) &one,
+- sizeof(one));
+- }
+-#endif /*SO_BSDCOMPAT */
+ /*
+ * SO_REUSEADDR will allow multiple apps to open the same port at
+ * the same time. Only the last one to open the socket will get
+diff -ruN net-snmp-5.1.2-orig/snmplib/snmpUDPIPv6Domain.c net-snmp-5.1.2-5/snmplib/snmpUDPIPv6Domain.c
+--- net-snmp-5.1.2-orig/snmplib/snmpUDPIPv6Domain.c 2004-07-22 19:45:00.000000000 +0200
++++ net-snmp-5.1.2-5/snmplib/snmpUDPIPv6Domain.c 2005-03-13 16:17:21.000000000 +0100
+@@ -249,17 +249,6 @@
+ netsnmp_transport_free(t);
+ return NULL;
+ }
+-#ifdef SO_BSDCOMPAT
+- /*
+- * Patch for Linux. Without this, UDP packets that fail get an ICMP
+- * response. Linux turns the failed ICMP response into an error message
+- * and return value, unlike all other OS's.
+- */
+- {
+- int one = 1;
+- setsockopt(t->sock, SOL_SOCKET, SO_BSDCOMPAT, &one, sizeof(one));
+- }
+-#endif /*SO_BSDCOMPAT */
+
+ /*
+ * Try to set the send and receive buffers to a reasonably large value, so
+diff -ruN net-snmp-5.1.2-orig/snmplib/snmp_logging.c net-snmp-5.1.2-5/snmplib/snmp_logging.c
+--- net-snmp-5.1.2-orig/snmplib/snmp_logging.c 2004-03-31 03:06:08.000000000 +0200
++++ net-snmp-5.1.2-5/snmplib/snmp_logging.c 2005-03-13 16:17:21.000000000 +0100
+@@ -860,13 +860,14 @@
+ } else {
+ strcpy(sbuf, "");
+ }
+- newline = string[strlen(string) - 1] == '\n'; /* XXX - Eh ? */
+
+ if (logh->imagic)
+ printf( "%s%s", sbuf, string);
+ else
+ fprintf(stderr, "%s%s", sbuf, string);
+
++ newline = string[strlen(string) - 1] == '\n'; /* XXX - Eh ? */
++
+ return 1;
+ }
+
+diff -ruN net-snmp-5.1.2-orig/snmplib/winservice.mc net-snmp-5.1.2-5/snmplib/winservice.mc
+--- net-snmp-5.1.2-orig/snmplib/winservice.mc 2002-04-20 09:30:21.000000000 +0200
++++ net-snmp-5.1.2-5/snmplib/winservice.mc 2005-03-13 16:17:21.000000000 +0100
+@@ -1,11 +1,11 @@
+-;//Message catalog for Windows Serivce Support routines
+-;//To support event logging functionality
+-;//By Raju Krishnappa(raju_krishnappa@yahoo.com)
+-
+-;//Message ID descriptions
+-
+-MessageId=100
+-SymbolicName=DISPLAY_MSG
+-Language=English
+-%1.
+-.
++;//Message catalog for Windows Serivce Support routines
++;//To support event logging functionality
++;//By Raju Krishnappa(raju_krishnappa@yahoo.com)
++
++;//Message ID descriptions
++
++MessageId=100
++SymbolicName=DISPLAY_MSG
++Language=English
++%1.
++.
+diff -ruN net-snmp-5.1.2-orig/snmplib/winservice.rc net-snmp-5.1.2-5/snmplib/winservice.rc
+--- net-snmp-5.1.2-orig/snmplib/winservice.rc 2002-04-20 09:30:21.000000000 +0200
++++ net-snmp-5.1.2-5/snmplib/winservice.rc 2005-03-13 16:17:21.000000000 +0100
+@@ -1,2 +1,2 @@
+-LANGUAGE 0x9,0x1
+-1 11 MSG00001.bin
++LANGUAGE 0x9,0x1
++1 11 MSG00001.bin