7041085 move net-snmp to userland
authorgowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
Fri, 20 May 2011 12:17:45 +0530
changeset 252 ee0fb1eabcbf
parent 251 f527656d334f
child 253 425c6a23679f
7041085 move net-snmp to userland
components/meta-packages/history/SUNWnet-snmp-addons.p5m
components/meta-packages/history/SUNWnet-snmp-core.p5m
components/meta-packages/history/SUNWnet-snmp-doc.p5m
components/meta-packages/history/SUNWnet-snmp-utils.p5m
components/net-snmp/Makefile
components/net-snmp/net-snmp-addons.p5m
components/net-snmp/net-snmp-base.p5m
components/net-snmp/net-snmp-documentation.p5m
components/net-snmp/net-snmp.xml
components/net-snmp/patches/001.scapi.patch
components/net-snmp/patches/002.pkcs.patch
components/net-snmp/patches/003.solaris-ip-mib.patch
components/net-snmp/patches/004.16436.patch
components/net-snmp/patches/005.16736.patch
components/net-snmp/patches/006.16742.patch
components/net-snmp/patches/007.16863.patch
components/net-snmp/patches/008.ip-mib.patch
components/net-snmp/patches/009.ltmain.sh.patch
components/net-snmp/patches/010.if-mib-zone.patch
components/net-snmp/patches/011.Makefile.in.patch
components/net-snmp/patches/012.Makefile.PL.patch
components/net-snmp/patches/013.6852099.proxy.patch
components/net-snmp/patches/014.6801093.vmstat_solaris2.patch
components/net-snmp/patches/015.6956251.vmstat_solaris2.patch
components/net-snmp/patches/016.6934478.vmstat_solaris2.patch
components/net-snmp/patches/017.6984919.kernel_sunos5.patch
components/net-snmp/patches/018.6932608.systemstats_common.patch
components/net-snmp/patches/019.6998845.container.patch
components/net-snmp/patches/020.7018550.kernel_sunos5.patch
components/net-snmp/run-tests
components/net-snmp/sun/Makefile
components/net-snmp/sun/README
components/net-snmp/sun/agent/Makefile
components/net-snmp/sun/agent/mibs/ENTITY-MIB.txt
components/net-snmp/sun/agent/mibs/Makefile
components/net-snmp/sun/agent/mibs/SUN-MIB.txt
components/net-snmp/sun/agent/mibs/SUN-SEA-EXTENSIONS-MIB.txt
components/net-snmp/sun/agent/mibs/SUN-SEA-PROXY-MIB.txt
components/net-snmp/sun/agent/mibs/health-monitor-mib.mib
components/net-snmp/sun/agent/mibs/smatrap.mib
components/net-snmp/sun/agent/modules/Makefile
components/net-snmp/sun/agent/modules/entityMib/Makefile
components/net-snmp/sun/agent/modules/entityMib/entAliasMappingTable.c
components/net-snmp/sun/agent/modules/entityMib/entAliasMappingTable.h
components/net-snmp/sun/agent/modules/entityMib/entLPMappingTable.c
components/net-snmp/sun/agent/modules/entityMib/entLPMappingTable.h
components/net-snmp/sun/agent/modules/entityMib/entLastChangeTime.c
components/net-snmp/sun/agent/modules/entityMib/entLastChangeTime.h
components/net-snmp/sun/agent/modules/entityMib/entLogicalTable.c
components/net-snmp/sun/agent/modules/entityMib/entLogicalTable.h
components/net-snmp/sun/agent/modules/entityMib/entPhysicalContainsTable.c
components/net-snmp/sun/agent/modules/entityMib/entPhysicalContainsTable.h
components/net-snmp/sun/agent/modules/entityMib/entPhysicalTable.c
components/net-snmp/sun/agent/modules/entityMib/entPhysicalTable.h
components/net-snmp/sun/agent/modules/entityMib/entity.c
components/net-snmp/sun/agent/modules/entityMib/entity_apidoc.txt
components/net-snmp/sun/agent/modules/entityMib/stdhdr.h
components/net-snmp/sun/agent/modules/healthMonitor/Makefile
components/net-snmp/sun/agent/modules/healthMonitor/dsr.c
components/net-snmp/sun/agent/modules/healthMonitor/healthMonitor.c
components/net-snmp/sun/agent/modules/healthMonitor/healthMonitor.h
components/net-snmp/sun/agent/modules/healthMonitor/health_monitor.conf
components/net-snmp/sun/agent/modules/healthMonitor/kr_iostat.c
components/net-snmp/sun/agent/modules/healthMonitor/kr_memory.c
components/net-snmp/sun/agent/modules/healthMonitor/kr_nfsstat.c
components/net-snmp/sun/agent/modules/healthMonitor/kr_vmstat.c
components/net-snmp/sun/agent/modules/seaExtensions/Makefile
components/net-snmp/sun/agent/modules/seaExtensions/agent.h
components/net-snmp/sun/agent/modules/seaExtensions/asn1.h
components/net-snmp/sun/agent/modules/seaExtensions/seaExtensions.c
components/net-snmp/sun/agent/modules/seaExtensions/seaExtensions.h
components/net-snmp/sun/agent/modules/seaExtensions/snmpvars.h
components/net-snmp/sun/agent/modules/seaExtensions/sunHostPerf.c
components/net-snmp/sun/agent/modules/seaExtensions/sunHostPerf.h
components/net-snmp/sun/agent/modules/seaExtensions/sunProcesses.c
components/net-snmp/sun/agent/modules/seaExtensions/sunProcesses.h
components/net-snmp/sun/agent/modules/seaExtensions/sunSystem.c
components/net-snmp/sun/agent/modules/seaExtensions/sunSystem.h
components/net-snmp/sun/masfcnv
components/net-snmp/sun/masfd
components/net-snmp/sun/sdk/demo/demo_module_1/Makefile
components/net-snmp/sun/sdk/demo/demo_module_1/README_demo_module_1
components/net-snmp/sun/sdk/demo/demo_module_1/SDK-DEMO1-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_1/demo_module_1.c
components/net-snmp/sun/sdk/demo/demo_module_1/demo_module_1.h
components/net-snmp/sun/sdk/demo/demo_module_10/Makefile
components/net-snmp/sun/sdk/demo/demo_module_10/README_demo_module_10
components/net-snmp/sun/sdk/demo/demo_module_10/SDK-DEMO10-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_10/demo_module_10.c
components/net-snmp/sun/sdk/demo/demo_module_10/demo_module_10.h
components/net-snmp/sun/sdk/demo/demo_module_10/get_data
components/net-snmp/sun/sdk/demo/demo_module_10/get_refreshtime
components/net-snmp/sun/sdk/demo/demo_module_10/get_status
components/net-snmp/sun/sdk/demo/demo_module_10/set_status
components/net-snmp/sun/sdk/demo/demo_module_10/walk_demo_module_10
components/net-snmp/sun/sdk/demo/demo_module_11/Makefile
components/net-snmp/sun/sdk/demo/demo_module_11/MyTable.c
components/net-snmp/sun/sdk/demo/demo_module_11/MyTable.h
components/net-snmp/sun/sdk/demo/demo_module_11/README_demo_module_11
components/net-snmp/sun/sdk/demo/demo_module_12/EXAMPLE-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_12/README_demo_module_12
components/net-snmp/sun/sdk/demo/demo_module_12/runmib2c
components/net-snmp/sun/sdk/demo/demo_module_12/runmibcodegen
components/net-snmp/sun/sdk/demo/demo_module_2/Makefile
components/net-snmp/sun/sdk/demo/demo_module_2/README_demo_module_2
components/net-snmp/sun/sdk/demo/demo_module_2/SDK-DEMO1-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_2/demo_module_2.c
components/net-snmp/sun/sdk/demo/demo_module_2/demo_module_2.h
components/net-snmp/sun/sdk/demo/demo_module_3/Makefile
components/net-snmp/sun/sdk/demo/demo_module_3/README_demo_module_3
components/net-snmp/sun/sdk/demo/demo_module_3/SDK-DEMO1-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_3/demo_module_3.c
components/net-snmp/sun/sdk/demo/demo_module_3/demo_module_3.h
components/net-snmp/sun/sdk/demo/demo_module_4/Makefile
components/net-snmp/sun/sdk/demo/demo_module_4/README_demo_module_4
components/net-snmp/sun/sdk/demo/demo_module_4/SDK-DEMO4-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_4/demo_module_4.conf
components/net-snmp/sun/sdk/demo/demo_module_4/me4LoadGroup.c
components/net-snmp/sun/sdk/demo/demo_module_4/me4LoadGroup.h
components/net-snmp/sun/sdk/demo/demo_module_5/Makefile
components/net-snmp/sun/sdk/demo/demo_module_5/README_demo_module_5
components/net-snmp/sun/sdk/demo/demo_module_5/SDK-DEMO5-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_5/demo_module_5.c
components/net-snmp/sun/sdk/demo/demo_module_5/demo_module_5.h
components/net-snmp/sun/sdk/demo/demo_module_6/Makefile
components/net-snmp/sun/sdk/demo/demo_module_6/README_demo_module_6
components/net-snmp/sun/sdk/demo/demo_module_6/SDK-DEMO6-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_6/demo_module_6.c
components/net-snmp/sun/sdk/demo/demo_module_6/demo_module_6.h
components/net-snmp/sun/sdk/demo/demo_module_6/get_demo_module_6
components/net-snmp/sun/sdk/demo/demo_module_7/Makefile
components/net-snmp/sun/sdk/demo/demo_module_7/README_demo_module_7
components/net-snmp/sun/sdk/demo/demo_module_7/SDK-DEMO6-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_7/demo_module_7.c
components/net-snmp/sun/sdk/demo/demo_module_7/demo_module_7.h
components/net-snmp/sun/sdk/demo/demo_module_7/get_filesize
components/net-snmp/sun/sdk/demo/demo_module_7/register_file
components/net-snmp/sun/sdk/demo/demo_module_7/unregister_file
components/net-snmp/sun/sdk/demo/demo_module_8/Makefile
components/net-snmp/sun/sdk/demo/demo_module_8/README_demo_module_8
components/net-snmp/sun/sdk/demo/demo_module_8/SDK-DEMO1-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_8/demo_module_8.c
components/net-snmp/sun/sdk/demo/demo_module_8/getme1LoadGroup
components/net-snmp/sun/sdk/demo/demo_module_8/me1LoadGroup.c
components/net-snmp/sun/sdk/demo/demo_module_8/me1LoadGroup.h
components/net-snmp/sun/sdk/demo/demo_module_9/Makefile
components/net-snmp/sun/sdk/demo/demo_module_9/README_demo_module_9
components/net-snmp/sun/sdk/demo/demo_module_9/SDK-DEMO9-MIB.txt
components/net-snmp/sun/sdk/demo/demo_module_9/demo_module_9.c
components/net-snmp/sun/sdk/demo/demo_module_9/demo_module_9.h
components/net-snmp/sun/sdk/demo/demo_module_9/get_demo_module_9
components/net-snmp/sun/sdk/demo/demo_module_9/set_demo_module_9
components/net-snmp/sun/sdk/demo/demo_module_9/walk_demo_module_9
components/net-snmp/sun/sma_buildrev.c
components/net-snmp/sun/snmpd.conf
components/net-snmp/svc-net-snmp
make-rules/shared-macros.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWnet-snmp-addons.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# Legacy package information for renamed SUNWnet-snmp-addons package
+#
+
+set name=pkg.fmri value=pkg://solaris/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=consolidation/sfw/sfw-incorporation type=require
+depend fmri=system/management/snmp/net-snmp/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWnet-snmp-core.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# Legacy package information for renamed SUNWnet-snmp-core package
+#
+
+set name=pkg.fmri value=pkg://solaris/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=consolidation/sfw/sfw-incorporation type=require
+depend fmri=system/management/snmp/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWnet-snmp-doc.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# Legacy package information for renamed SUNWnet-snmp-doc package
+#
+
+set name=pkg.fmri value=pkg://solaris/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=consolidation/sfw/sfw-incorporation type=require
+depend fmri=system/management/snmp/net-snmp/[email protected] type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWnet-snmp-utils.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,34 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# Legacy package information for renamed SUNWnet-snmp-utils package
+#
+
+set name=pkg.fmri value=pkg://solaris/[email protected],5.11-0.132
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend [email protected] type=require
+depend fmri=consolidation/sfw/sfw-incorporation type=require
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,122 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+include ../../make-rules/shared-macros.mk
+
+PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
+DOXYGEN=/usr/bin/doxygen
+
+COMPONENT_NAME=		net-snmp
+COMPONENT_VERSION=	5.4.1
+PERL_VERSION=	5.8.4
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH= sha1:ac5ba033c10d53d3057415121f8c4936c643c208
+#COMPONENT_ARCHIVE_URL=	http://ftp.ntua.gr/mirror/net-snmp/net-snmp/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
+COMPONENT_ARCHIVE_URL= http://ftp.ntua.gr/mirror/net-snmp/OldFiles/net-snmp-5.4.x/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
+
+
+include $(WS_TOP)/make-rules/prep.mk
+include $(WS_TOP)/make-rules/configure.mk
+include $(WS_TOP)/make-rules/ips.mk
+
+CFLAGS += $(studio_C99_ENABLE)
+CPPFLAGS += "-DFALSE_SHARING_ALIGN=64"
+
+CONFIGURE_OPTIONS  +=	--with-default-snmp-version=3
+CONFIGURE_OPTIONS  +=	--with-sys-contact="[email protected]"
+CONFIGURE_OPTIONS  +=	--with-sys-location=Unknown
+CONFIGURE_OPTIONS  +=	--with-logfile=/var/log/snmpd.log
+CONFIGURE_OPTIONS  +=	--with-persistent-directory=/var/net-snmp
+
+CONFIGURE_OPTIONS  +=	--with-mibdirs=/etc/net-snmp/snmp/mibs
+CONFIGURE_OPTIONS  +=	--enable-agentx-dom-sock-only
+CONFIGURE_OPTIONS  +=	--enable-ucd-snmp-compatibility
+CONFIGURE_OPTIONS  +=	--enable-ipv6
+CONFIGURE_OPTIONS  +=	--enable-mfd-rewrites
+CONFIGURE_OPTIONS  +=	--with-pkcs
+CONFIGURE_OPTIONS  +=	--with-transports="UDP TCP UDPIPv6 TCPIPv6"
+
+# Which MIB modules do we want to build
+MIB_MOBULES.sparc = ucd-snmp/lmSensors
+MIB_MODULES = host disman/event-mib ucd-snmp/diskio udp-mib tcp-mib if-mib
+MIB_MOBULES += $(MIB_MODULES.$(MACH))
+CONFIGURE_OPTIONS  +=	--with-mib-modules="$(MIB_MODULES)"
+
+# Only build 32 bit Perl support
+PERL_ARGS =			DESTDIR=$(PROTO_DIR) INSTALLDIRS=vendor
+CONFIGURE_OPTIONS.32  +=	PERL="$(PERL)"
+CONFIGURE_OPTIONS.32  +=	--with-perl-modules="$(PERL_ARGS)"
+CONFIGURE_OPTIONS.32  +=	--disable-perl-cc-checks
+
+CONFIGURE_OPTIONS.64  +=	--disable-embedded-perl
+CONFIGURE_OPTIONS.64  +=	--without-perl-modules
+
+CONFIGURE_OPTIONS	+=	CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS	+=	CPPFLAGS="$(CPPFLAGS)"
+CONFIGURE_OPTIONS	+=	CC="$(CC)"
+
+ARCHNAME=$(shell $(PERL) -V:archname | sed -e "s/archname='\(.*\)'\;/\1/")
+
+PKG_MACROS +=	ARCHNAME=$(ARCHNAME)
+PKG_MACROS +=	BUILD_DIR=$(BUILD_DIR)
+PKG_MACROS +=	PERL_VERSION=$(PERL_VERSION)
+
+COMPONENT_PRE_CONFIGURE_ACTION = \
+	($(CLONEY) $(SOURCE_DIR) $(@D); $(CLONEY) $(COMPONENT_DIR)/sun $(@D)/sun)
+
+# for the goofy definition of ARCH in the extra Makefiles
+ARCH=32
+ARCH=$(BITS:64=$(MACH64))
+
+CCSMAKE_ARGS =	CC="$(CC)" CFGPREFIX=/usr CFGLIB64=/usr/lib/$(MACH64)
+CCSMAKE_ARGS +=	CFGLIB=/usr/lib ARCH=$(ARCH) ROOT=$(PROTO_DIR)
+
+$(BUILD_32): COMPONENT_POST_BUILD_ACTION= \
+	(cd $(BUILD_DIR)/$(MACH32)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS))
+
+$(BUILD_64): COMPONENT_POST_BUILD_ACTION= \
+	(cd $(BUILD_DIR)/$(MACH64)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS))
+
+$(INSTALL_32): COMPONENT_POST_INSTALL_ACTION= \
+	($(MKDIR) -p $(BUILD_DIR)/prototype/$(MACH)/etc/net-snmp/snmp/mibs; \
+	 cd $(BUILD_DIR)/$(MACH32)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS) install)
+
+$(INSTALL_64): COMPONENT_POST_INSTALL_ACTION= \
+	($(MKDIR) -p $(BUILD_DIR)/prototype/$(MACH64)/etc/net-snmp/snmp/mibs; \
+	 cd $(BUILD_DIR)/$(MACH64)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS) install)
+
+# common targets
+build:	$(BUILD_32_and_64) $(BUILD_DIR_32)/.docs
+
+$(INSTALL_64): COMPONENT_INSTALL_ARGS += DESTDIR=$(BUILD_DIR)/prototype/$(MACH64)
+
+install:	build $(INSTALL_32_and_64)
+
+test:	$(BUILD_32)
+	$(KSH93) ./run-tests $(BUILD_DIR) $(MACH32) $(MACH64)
+
+# build the docs
+$(BUILD_DIR_32)/.docs:
+	(cd $(@D) ; $(ENV) srcdir=$(@D) $(DOXYGEN) -u $(@D)/doxygen.conf ; \
+	    $(ENV) srcdir=$(@D) $(DOXYGEN) $(@D)/doxygen.conf)
+	$(TOUCH) [email protected]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/net-snmp-addons.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,44 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/system/management/snmp/net-snmp/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Net-SNMP addon libraries"
+set name=info.classification value="org.opensolaris.category.2008:System/Enterprise Management"
+set name=info.upstream_url value="http://www.net-snmp.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2008/355
+
+license COPYING license="BSD, BSD-like"
+
+dir path=usr
+dir path=usr/lib
+dir path=usr/lib/$(MACH64)
+
+file $(MACH64)/sun/agent/modules/seaExtensions/libseaExtensions.so path=usr/lib/$(MACH64)/libseaExtensions.so
+file $(MACH32)/sun/agent/modules/seaExtensions/libseaExtensions.so path=usr/lib/libseaExtensions.so
+
+legacy pkg=SUNWnet-snmp-addons \
+	name="Net-SNMP addon libraries" \
+	desc="Net-SNMP addon libraries (5.4.1)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/net-snmp-base.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,590 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+
+set name=pkg.fmri value=pkg:/system/management/snmp/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Net-SNMP Agent files and libraries"
+set name=info.upstream_url value="http://www.net-snmp.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+set name=info.classification value="org.opensolaris.category.2008:System/Enterprise Management"
+
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2008/355
+
+license COPYING license="BSD, BSD-like"
+
+dir path=etc
+dir path=etc/net-snmp
+dir path=etc/net-snmp/snmp
+dir path=etc/net-snmp/snmp/mib2c-data
+dir path=etc/net-snmp/snmp/mibs
+dir path=etc/net-snmp/snmp/snmpconf-data
+dir path=etc/net-snmp/snmp/snmpconf-data/snmp-data
+dir path=etc/net-snmp/snmp/snmpconf-data/snmpd-data
+dir path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data
+dir path=lib
+dir path=lib/svc
+dir path=lib/svc/manifest group=sys
+dir path=lib/svc/manifest/application group=sys
+dir path=lib/svc/manifest/application/management group=sys
+dir path=lib/svc/method
+dir path=usr
+dir path=usr/bin
+dir path=usr/include
+dir path=usr/include/net-snmp
+dir path=usr/include/net-snmp/agent
+dir path=usr/include/net-snmp/library
+dir path=usr/include/net-snmp/machine
+dir path=usr/include/net-snmp/snmplib
+dir path=usr/include/net-snmp/system
+dir path=usr/include/ucd-snmp
+dir path=usr/lib
+dir path=usr/lib/$(MACH64)
+dir path=usr/lib/net-snmp
+dir path=usr/perl5
+dir path=usr/perl5/$(PERL_VERSION)
+dir path=usr/perl5/$(PERL_VERSION)/man
+dir path=usr/perl5/$(PERL_VERSION)/man/man3
+dir path=usr/perl5/vendor_perl
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/Bundle
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/Bundle/NetSNMP
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/default_store
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/ASN
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/default_store
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/OID
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/TrapReceiver
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/SNMP
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/Bundle
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP
+dir path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/agent
+dir path=usr/sbin
+dir path=usr/sbin/$(MACH64)
+dir path=usr/sbin/$(MACH32)
+file local/mib2c-conf.d/default-mfd-top.m2c path=etc/net-snmp/snmp/mib2c-data/default-mfd-top.m2c
+file local/mib2c-conf.d/details-enums.m2i path=etc/net-snmp/snmp/mib2c-data/details-enums.m2i
+file local/mib2c-conf.d/details-node.m2i path=etc/net-snmp/snmp/mib2c-data/details-node.m2i
+file local/mib2c-conf.d/details-table.m2i path=etc/net-snmp/snmp/mib2c-data/details-table.m2i
+file local/mib2c-conf.d/generic-ctx-copy.m2i path=etc/net-snmp/snmp/mib2c-data/generic-ctx-copy.m2i
+file local/mib2c-conf.d/generic-ctx-get.m2i path=etc/net-snmp/snmp/mib2c-data/generic-ctx-get.m2i
+file local/mib2c-conf.d/generic-ctx-set.m2i path=etc/net-snmp/snmp/mib2c-data/generic-ctx-set.m2i
+file local/mib2c-conf.d/generic-data-allocate.m2i path=etc/net-snmp/snmp/mib2c-data/generic-data-allocate.m2i
+file local/mib2c-conf.d/generic-data-context.m2i path=etc/net-snmp/snmp/mib2c-data/generic-data-context.m2i
+file local/mib2c-conf.d/generic-get-char.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-char.m2i
+file local/mib2c-conf.d/generic-get-decl-bot.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-decl-bot.m2i
+file local/mib2c-conf.d/generic-get-decl.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-decl.m2i
+file local/mib2c-conf.d/generic-get-long.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-long.m2i
+file local/mib2c-conf.d/generic-get-oid.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-oid.m2i
+file local/mib2c-conf.d/generic-header-bottom.m2i path=etc/net-snmp/snmp/mib2c-data/generic-header-bottom.m2i
+file local/mib2c-conf.d/generic-header-top.m2i path=etc/net-snmp/snmp/mib2c-data/generic-header-top.m2i
+file local/mib2c-conf.d/generic-source-includes.m2i path=etc/net-snmp/snmp/mib2c-data/generic-source-includes.m2i
+file local/mib2c-conf.d/generic-table-constants.m2c path=etc/net-snmp/snmp/mib2c-data/generic-table-constants.m2c
+file local/mib2c-conf.d/generic-table-enums.m2c path=etc/net-snmp/snmp/mib2c-data/generic-table-enums.m2c
+file local/mib2c-conf.d/generic-table-indexes-from-oid.m2i path=etc/net-snmp/snmp/mib2c-data/generic-table-indexes-from-oid.m2i
+file local/mib2c-conf.d/generic-table-indexes-set.m2i path=etc/net-snmp/snmp/mib2c-data/generic-table-indexes-set.m2i
+file local/mib2c-conf.d/generic-table-indexes-to-oid.m2i path=etc/net-snmp/snmp/mib2c-data/generic-table-indexes-to-oid.m2i
+file local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i path=etc/net-snmp/snmp/mib2c-data/generic-table-indexes-varbind-setup.m2i
+file local/mib2c-conf.d/generic-table-indexes.m2i path=etc/net-snmp/snmp/mib2c-data/generic-table-indexes.m2i
+file local/mib2c-conf.d/generic-table-oids.m2c path=etc/net-snmp/snmp/mib2c-data/generic-table-oids.m2c
+file local/mib2c-conf.d/generic-value-map-func.m2i path=etc/net-snmp/snmp/mib2c-data/generic-value-map-func.m2i
+file local/mib2c-conf.d/generic-value-map-reverse.m2i path=etc/net-snmp/snmp/mib2c-data/generic-value-map-reverse.m2i
+file local/mib2c-conf.d/generic-value-map.m2i path=etc/net-snmp/snmp/mib2c-data/generic-value-map.m2i
+file local/mib2c-conf.d/m2c-internal-warning.m2i path=etc/net-snmp/snmp/mib2c-data/m2c-internal-warning.m2i
+file local/mib2c-conf.d/m2c_setup_enum.m2i path=etc/net-snmp/snmp/mib2c-data/m2c_setup_enum.m2i
+file local/mib2c-conf.d/m2c_setup_node.m2i path=etc/net-snmp/snmp/mib2c-data/m2c_setup_node.m2i
+file local/mib2c-conf.d/m2c_setup_table.m2i path=etc/net-snmp/snmp/mib2c-data/m2c_setup_table.m2i
+file local/mib2c-conf.d/m2c_table_save_defaults.m2i path=etc/net-snmp/snmp/mib2c-data/m2c_table_save_defaults.m2i
+file local/mib2c-conf.d/mfd-access-container-cached-defines.m2i path=etc/net-snmp/snmp/mib2c-data/mfd-access-container-cached-defines.m2i
+file local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i path=etc/net-snmp/snmp/mib2c-data/mfd-access-unsorted-external-defines.m2i
+file local/mib2c-conf.d/mfd-data-access.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-data-access.m2c
+file local/mib2c-conf.d/mfd-data-get.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-data-get.m2c
+file local/mib2c-conf.d/mfd-data-set.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-data-set.m2c
+file local/mib2c-conf.d/mfd-doxygen.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-doxygen.m2c
+file local/mib2c-conf.d/mfd-interactive-setup.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-interactive-setup.m2c
+file local/mib2c-conf.d/mfd-interface.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-interface.m2c
+file local/mib2c-conf.d/mfd-makefile.m2m path=etc/net-snmp/snmp/mib2c-data/mfd-makefile.m2m
+file local/mib2c-conf.d/mfd-persistence.m2i path=etc/net-snmp/snmp/mib2c-data/mfd-persistence.m2i
+file local/mib2c-conf.d/mfd-readme.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-readme.m2c
+file local/mib2c-conf.d/mfd-top.m2c path=etc/net-snmp/snmp/mib2c-data/mfd-top.m2c
+file local/mib2c-conf.d/node-get.m2i path=etc/net-snmp/snmp/mib2c-data/node-get.m2i
+file local/mib2c-conf.d/node-set.m2i path=etc/net-snmp/snmp/mib2c-data/node-set.m2i
+file local/mib2c-conf.d/node-storage.m2i path=etc/net-snmp/snmp/mib2c-data/node-storage.m2i
+file local/mib2c-conf.d/node-validate.m2i path=etc/net-snmp/snmp/mib2c-data/node-validate.m2i
+file local/mib2c-conf.d/node-varbind-validate.m2i path=etc/net-snmp/snmp/mib2c-data/node-varbind-validate.m2i
+file local/mib2c-conf.d/parent-dependencies.m2i path=etc/net-snmp/snmp/mib2c-data/parent-dependencies.m2i
+file local/mib2c-conf.d/parent-set.m2i path=etc/net-snmp/snmp/mib2c-data/parent-set.m2i
+file local/mib2c-conf.d/subagent.m2c path=etc/net-snmp/snmp/mib2c-data/subagent.m2c
+file local/mib2c-conf.d/syntax-COUNTER64-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-COUNTER64-get.m2i
+file local/mib2c-conf.d/syntax-DateAndTime-get.m2d path=etc/net-snmp/snmp/mib2c-data/syntax-DateAndTime-get.m2d
+file local/mib2c-conf.d/syntax-DateAndTime-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-DateAndTime-get.m2i
+file local/mib2c-conf.d/syntax-DateAndTime-readme.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-DateAndTime-readme.m2i
+file local/mib2c-conf.d/syntax-InetAddress-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-InetAddress-get.m2i
+file local/mib2c-conf.d/syntax-InetAddress-set.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-InetAddress-set.m2i
+file local/mib2c-conf.d/syntax-InetAddressType-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-InetAddressType-get.m2i
+file local/mib2c-conf.d/syntax-InetAddressType-set.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-InetAddressType-set.m2i
+file local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-RowStatus-dependencies.m2i
+file local/mib2c-conf.d/syntax-RowStatus-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-RowStatus-get.m2i
+file local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-RowStatus-varbind-validate.m2i
+file local/mib2c-conf.d/syntax-StorageType-dependencies.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-StorageType-dependencies.m2i
+file local/mib2c-conf.d/syntax-TestAndIncr-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-TestAndIncr-get.m2i
+file local/mib2c.access_functions.conf path=etc/net-snmp/snmp/mib2c.access_functions.conf
+file local/mib2c.array-user.conf path=etc/net-snmp/snmp/mib2c.array-user.conf
+file local/mib2c.check_values.conf path=etc/net-snmp/snmp/mib2c.check_values.conf
+file local/mib2c.check_values_local.conf path=etc/net-snmp/snmp/mib2c.check_values_local.conf
+file local/mib2c.column_defines.conf path=etc/net-snmp/snmp/mib2c.column_defines.conf
+file local/mib2c.column_enums.conf path=etc/net-snmp/snmp/mib2c.column_enums.conf
+file local/mib2c.column_storage.conf path=etc/net-snmp/snmp/mib2c.column_storage.conf
+file local/mib2c.conf path=etc/net-snmp/snmp/mib2c.conf
+file local/mib2c.container.conf path=etc/net-snmp/snmp/mib2c.container.conf
+file local/mib2c.create-dataset.conf path=etc/net-snmp/snmp/mib2c.create-dataset.conf
+file local/mib2c.emulation.conf path=etc/net-snmp/snmp/mib2c.emulation.conf
+file local/mib2c.genhtml.conf path=etc/net-snmp/snmp/mib2c.genhtml.conf
+file local/mib2c.int_watch.conf path=etc/net-snmp/snmp/mib2c.int_watch.conf
+file local/mib2c.iterate.conf path=etc/net-snmp/snmp/mib2c.iterate.conf
+file local/mib2c.iterate_access.conf path=etc/net-snmp/snmp/mib2c.iterate_access.conf
+file local/mib2c.mfd.conf path=etc/net-snmp/snmp/mib2c.mfd.conf
+file local/mib2c.notify.conf path=etc/net-snmp/snmp/mib2c.notify.conf
+file local/mib2c.old-api.conf path=etc/net-snmp/snmp/mib2c.old-api.conf
+file local/mib2c.perl.conf path=etc/net-snmp/snmp/mib2c.perl.conf
+file local/mib2c.row.conf path=etc/net-snmp/snmp/mib2c.row.conf
+file local/mib2c.scalar.conf path=etc/net-snmp/snmp/mib2c.scalar.conf
+file local/mib2c.table_data.conf path=etc/net-snmp/snmp/mib2c.table_data.conf
+file $(MACH32)/sun/agent/mibs/ENTITY-MIB.txt path=etc/net-snmp/snmp/mibs/ENTITY-MIB.txt
+file $(MACH64)/mibs/LM-SENSORS-MIB.txt path=etc/net-snmp/snmp/mibs/LM-SENSORS-MIB.txt
+file $(MACH64)/mibs/NETWORK-SERVICES-MIB.txt path=etc/net-snmp/snmp/mibs/NETWORK-SERVICES-MIB.txt
+file $(MACH32)/sun/agent/mibs/SUN-MIB.txt path=etc/net-snmp/snmp/mibs/SUN-MIB.txt
+file $(MACH32)/sun/agent/mibs/SUN-SEA-EXTENSIONS-MIB.txt path=etc/net-snmp/snmp/mibs/SUN-SEA-EXTENSIONS-MIB.txt
+file $(MACH32)/sun/agent/mibs/SUN-SEA-PROXY-MIB.txt path=etc/net-snmp/snmp/mibs/SUN-SEA-PROXY-MIB.txt
+file $(MACH32)/sun/agent/mibs/smatrap.mib path=etc/net-snmp/snmp/mibs/smatrap.mib
+file mibs/AGENTX-MIB.txt path=etc/net-snmp/snmp/mibs/AGENTX-MIB.txt
+file mibs/DISMAN-EVENT-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-EVENT-MIB.txt
+file mibs/DISMAN-EXPRESSION-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-EXPRESSION-MIB.txt
+file mibs/DISMAN-NSLOOKUP-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-NSLOOKUP-MIB.txt
+file mibs/DISMAN-PING-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-PING-MIB.txt
+file mibs/DISMAN-SCHEDULE-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-SCHEDULE-MIB.txt
+file mibs/DISMAN-SCRIPT-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-SCRIPT-MIB.txt
+file mibs/DISMAN-TRACEROUTE-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-TRACEROUTE-MIB.txt
+file mibs/EtherLike-MIB.txt path=etc/net-snmp/snmp/mibs/EtherLike-MIB.txt
+file mibs/HCNUM-TC.txt path=etc/net-snmp/snmp/mibs/HCNUM-TC.txt
+file mibs/HOST-RESOURCES-MIB.txt path=etc/net-snmp/snmp/mibs/HOST-RESOURCES-MIB.txt
+file mibs/HOST-RESOURCES-TYPES.txt path=etc/net-snmp/snmp/mibs/HOST-RESOURCES-TYPES.txt
+file mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt path=etc/net-snmp/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
+file mibs/IANA-LANGUAGE-MIB.txt path=etc/net-snmp/snmp/mibs/IANA-LANGUAGE-MIB.txt
+file mibs/IANA-RTPROTO-MIB.txt path=etc/net-snmp/snmp/mibs/IANA-RTPROTO-MIB.txt
+file mibs/IANAifType-MIB.txt path=etc/net-snmp/snmp/mibs/IANAifType-MIB.txt
+file mibs/IF-INVERTED-STACK-MIB.txt path=etc/net-snmp/snmp/mibs/IF-INVERTED-STACK-MIB.txt
+file mibs/IF-MIB.txt path=etc/net-snmp/snmp/mibs/IF-MIB.txt
+file mibs/INET-ADDRESS-MIB.txt path=etc/net-snmp/snmp/mibs/INET-ADDRESS-MIB.txt
+file mibs/IP-FORWARD-MIB.txt path=etc/net-snmp/snmp/mibs/IP-FORWARD-MIB.txt
+file mibs/IP-MIB.txt path=etc/net-snmp/snmp/mibs/IP-MIB.txt
+file mibs/IPV6-FLOW-LABEL-MIB.txt path=etc/net-snmp/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt
+file mibs/IPV6-ICMP-MIB.txt path=etc/net-snmp/snmp/mibs/IPV6-ICMP-MIB.txt
+file mibs/IPV6-MIB.txt path=etc/net-snmp/snmp/mibs/IPV6-MIB.txt
+file mibs/IPV6-TC.txt path=etc/net-snmp/snmp/mibs/IPV6-TC.txt
+file mibs/IPV6-TCP-MIB.txt path=etc/net-snmp/snmp/mibs/IPV6-TCP-MIB.txt
+file mibs/IPV6-UDP-MIB.txt path=etc/net-snmp/snmp/mibs/IPV6-UDP-MIB.txt
+file mibs/MTA-MIB.txt path=etc/net-snmp/snmp/mibs/MTA-MIB.txt
+file mibs/NET-SNMP-AGENT-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-AGENT-MIB.txt
+file mibs/NET-SNMP-EXAMPLES-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt
+file mibs/NET-SNMP-EXTEND-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
+file mibs/NET-SNMP-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-MIB.txt
+file mibs/NET-SNMP-MONITOR-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-MONITOR-MIB.txt
+file mibs/NET-SNMP-SYSTEM-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-SYSTEM-MIB.txt
+file mibs/NET-SNMP-TC.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-TC.txt
+file mibs/NET-SNMP-VACM-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-VACM-MIB.txt
+file mibs/NOTIFICATION-LOG-MIB.txt path=etc/net-snmp/snmp/mibs/NOTIFICATION-LOG-MIB.txt
+file mibs/RFC-1215.txt path=etc/net-snmp/snmp/mibs/RFC-1215.txt
+file mibs/RFC1155-SMI.txt path=etc/net-snmp/snmp/mibs/RFC1155-SMI.txt
+file mibs/RFC1213-MIB.txt path=etc/net-snmp/snmp/mibs/RFC1213-MIB.txt
+file mibs/RMON-MIB.txt path=etc/net-snmp/snmp/mibs/RMON-MIB.txt
+file mibs/SMUX-MIB.txt path=etc/net-snmp/snmp/mibs/SMUX-MIB.txt
+file mibs/SNMP-COMMUNITY-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-COMMUNITY-MIB.txt
+file mibs/SNMP-FRAMEWORK-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-FRAMEWORK-MIB.txt
+file mibs/SNMP-MPD-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-MPD-MIB.txt
+file mibs/SNMP-NOTIFICATION-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-NOTIFICATION-MIB.txt
+file mibs/SNMP-PROXY-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-PROXY-MIB.txt
+file mibs/SNMP-TARGET-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-TARGET-MIB.txt
+file mibs/SNMP-USER-BASED-SM-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt
+file mibs/SNMP-USM-AES-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-USM-AES-MIB.txt
+file mibs/SNMP-USM-DH-OBJECTS-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
+file mibs/SNMP-VIEW-BASED-ACM-MIB.txt path=etc/net-snmp/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
+file mibs/SNMPv2-CONF.txt path=etc/net-snmp/snmp/mibs/SNMPv2-CONF.txt
+file mibs/SNMPv2-MIB.txt path=etc/net-snmp/snmp/mibs/SNMPv2-MIB.txt
+file mibs/SNMPv2-SMI.txt path=etc/net-snmp/snmp/mibs/SNMPv2-SMI.txt
+file mibs/SNMPv2-TC.txt path=etc/net-snmp/snmp/mibs/SNMPv2-TC.txt
+file mibs/SNMPv2-TM.txt path=etc/net-snmp/snmp/mibs/SNMPv2-TM.txt
+file mibs/TCP-MIB.txt path=etc/net-snmp/snmp/mibs/TCP-MIB.txt
+file mibs/TRANSPORT-ADDRESS-MIB.txt path=etc/net-snmp/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt
+file mibs/TUNNEL-MIB.txt path=etc/net-snmp/snmp/mibs/TUNNEL-MIB.txt
+file mibs/UCD-DEMO-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-DEMO-MIB.txt
+file mibs/UCD-DISKIO-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-DISKIO-MIB.txt
+file mibs/UCD-DLMOD-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-DLMOD-MIB.txt
+file mibs/UCD-IPFILTER-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-IPFILTER-MIB.txt
+file mibs/UCD-IPFWACC-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-IPFWACC-MIB.txt
+file mibs/UCD-SNMP-MIB-OLD.txt path=etc/net-snmp/snmp/mibs/UCD-SNMP-MIB-OLD.txt
+file mibs/UCD-SNMP-MIB.txt path=etc/net-snmp/snmp/mibs/UCD-SNMP-MIB.txt
+file mibs/UDP-MIB.txt path=etc/net-snmp/snmp/mibs/UDP-MIB.txt
+file apps/snmp_perl_trapd.pl path=etc/net-snmp/snmp/snmp_perl_trapd.pl
+file local/snmpconf.dir/snmp-data/authopts path=etc/net-snmp/snmp/snmpconf-data/snmp-data/authopts
+file local/snmpconf.dir/snmp-data/debugging path=etc/net-snmp/snmp/snmpconf-data/snmp-data/debugging
+file local/snmpconf.dir/snmp-data/mibs path=etc/net-snmp/snmp/snmpconf-data/snmp-data/mibs
+file local/snmpconf.dir/snmp-data/output path=etc/net-snmp/snmp/snmpconf-data/snmp-data/output
+file local/snmpconf.dir/snmp-data/snmpconf-config path=etc/net-snmp/snmp/snmpconf-data/snmp-data/snmpconf-config
+file local/snmpconf.dir/snmpd-data/acl path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/acl
+file local/snmpconf.dir/snmpd-data/basic_setup path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/basic_setup
+file local/snmpconf.dir/snmpd-data/extending path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/extending
+file local/snmpconf.dir/snmpd-data/monitor path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/monitor
+file local/snmpconf.dir/snmpd-data/operation path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/operation
+file local/snmpconf.dir/snmpd-data/snmpconf-config path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/snmpconf-config
+file local/snmpconf.dir/snmpd-data/system path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/system
+file local/snmpconf.dir/snmpd-data/trapsinks path=etc/net-snmp/snmp/snmpconf-data/snmpd-data/trapsinks
+file local/snmpconf.dir/snmptrapd-data/authentication path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/authentication
+file local/snmpconf.dir/snmptrapd-data/formatting path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/formatting
+file local/snmpconf.dir/snmptrapd-data/logging path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/logging
+file local/snmpconf.dir/snmptrapd-data/runtime path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/runtime
+file local/snmpconf.dir/snmptrapd-data/snmpconf-config path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/snmpconf-config
+file local/snmpconf.dir/snmptrapd-data/traphandle path=etc/net-snmp/snmp/snmpconf-data/snmptrapd-data/traphandle
+file $(MACH32)/sun/snmpd.conf path=etc/net-snmp/snmp/snmpd.conf
+file net-snmp.xml path=lib/svc/manifest/application/management/net-snmp.xml restart_fmri=svc:/system/manifest-import:default
+file svc-net-snmp path=lib/svc/method/svc-net-snmp
+file path=usr/bin/encode_keychange
+file path=usr/bin/fixproc
+file path=usr/bin/ipf-mod.pl
+file path=usr/bin/mib2c
+file path=usr/bin/mib2c-update
+file usr/bin/net-snmp-config path=usr/bin/net-snmp-config-32
+file build/prototype/$(MACH64)/usr/bin/$(MACH64)/net-snmp-config path=usr/bin/net-snmp-config-64
+file path=usr/bin/snmpbulkget
+file path=usr/bin/snmpbulkwalk
+file path=usr/bin/snmpcheck
+file path=usr/bin/snmpconf
+file path=usr/bin/snmpdelta
+file path=usr/bin/snmpdf
+file path=usr/bin/snmpget
+file path=usr/bin/snmpgetnext
+file path=usr/bin/snmpnetstat
+file path=usr/bin/snmpset
+file path=usr/bin/snmpstatus
+file path=usr/bin/snmptable
+file path=usr/bin/snmptest
+file path=usr/bin/snmptranslate
+file path=usr/bin/snmptrap
+file path=usr/bin/snmpusm
+file path=usr/bin/snmpvacm
+file path=usr/bin/snmpwalk
+file path=usr/bin/tkmib
+file path=usr/bin/traptoemail
+file path=usr/include/net-snmp/agent/agent_callbacks.h
+file path=usr/include/net-snmp/agent/agent_handler.h
+file path=usr/include/net-snmp/agent/agent_index.h
+file path=usr/include/net-snmp/agent/agent_module_config.h
+file path=usr/include/net-snmp/agent/agent_read_config.h
+file path=usr/include/net-snmp/agent/agent_registry.h
+file path=usr/include/net-snmp/agent/agent_trap.h
+file path=usr/include/net-snmp/agent/all_helpers.h
+file path=usr/include/net-snmp/agent/auto_nlist.h
+file path=usr/include/net-snmp/agent/baby_steps.h
+file path=usr/include/net-snmp/agent/bulk_to_next.h
+file path=usr/include/net-snmp/agent/cache_handler.h
+file path=usr/include/net-snmp/agent/debug_handler.h
+file path=usr/include/net-snmp/agent/ds_agent.h
+file path=usr/include/net-snmp/agent/instance.h
+file path=usr/include/net-snmp/agent/mfd.h
+file path=usr/include/net-snmp/agent/mib_module_config.h
+file path=usr/include/net-snmp/agent/mib_module_includes.h
+file path=usr/include/net-snmp/agent/mib_modules.h
+file path=usr/include/net-snmp/agent/mode_end_call.h
+file path=usr/include/net-snmp/agent/multiplexer.h
+file path=usr/include/net-snmp/agent/net-snmp-agent-includes.h
+file path=usr/include/net-snmp/agent/null.h
+file path=usr/include/net-snmp/agent/old_api.h
+file path=usr/include/net-snmp/agent/read_only.h
+file path=usr/include/net-snmp/agent/row_merge.h
+file path=usr/include/net-snmp/agent/scalar_group.h
+file path=usr/include/net-snmp/agent/scalar.h
+file path=usr/include/net-snmp/agent/serialize.h
+file path=usr/include/net-snmp/agent/set_helper.h
+file path=usr/include/net-snmp/agent/snmp_agent.h
+file path=usr/include/net-snmp/agent/snmp_vars.h
+file path=usr/include/net-snmp/agent/stash_cache.h
+file path=usr/include/net-snmp/agent/stash_to_next.h
+file path=usr/include/net-snmp/agent/table_array.h
+file path=usr/include/net-snmp/agent/table_container.h
+file path=usr/include/net-snmp/agent/table_data.h
+file path=usr/include/net-snmp/agent/table_dataset.h
+file path=usr/include/net-snmp/agent/table_iterator.h
+file path=usr/include/net-snmp/agent/table_tdata.h
+file path=usr/include/net-snmp/agent/table.h
+file path=usr/include/net-snmp/agent/util_funcs.h
+file path=usr/include/net-snmp/agent/var_struct.h
+file path=usr/include/net-snmp/agent/watcher.h
+file path=usr/include/net-snmp/config_api.h
+file path=usr/include/net-snmp/definitions.h
+file path=usr/include/net-snmp/library/asn1.h
+file path=usr/include/net-snmp/library/callback.h
+file path=usr/include/net-snmp/library/check_varbind.h
+file path=usr/include/net-snmp/library/cmu_compat.h
+file path=usr/include/net-snmp/library/container_binary_array.h
+file path=usr/include/net-snmp/library/container_iterator.h
+file path=usr/include/net-snmp/library/container_list_ssll.h
+file path=usr/include/net-snmp/library/container_null.h
+file path=usr/include/net-snmp/library/container.h
+file path=usr/include/net-snmp/library/data_list.h
+file path=usr/include/net-snmp/library/default_store.h
+file path=usr/include/net-snmp/library/factory.h
+file path=usr/include/net-snmp/library/fd_event_manager.h
+file path=usr/include/net-snmp/library/file_utils.h
+file path=usr/include/net-snmp/library/getopt.h
+file path=usr/include/net-snmp/library/int64.h
+file path=usr/include/net-snmp/library/keytools.h
+file path=usr/include/net-snmp/library/lcd_time.h
+file path=usr/include/net-snmp/library/md5.h
+file path=usr/include/net-snmp/library/mib.h
+file path=usr/include/net-snmp/library/mt_support.h
+file path=usr/include/net-snmp/library/oid_stash.h
+file path=usr/include/net-snmp/library/parse.h
+file path=usr/include/net-snmp/library/read_config.h
+file path=usr/include/net-snmp/library/README
+file path=usr/include/net-snmp/library/scapi.h
+file path=usr/include/net-snmp/library/snmp_alarm.h
+file path=usr/include/net-snmp/library/snmp_api.h
+file path=usr/include/net-snmp/library/snmp_assert.h
+file path=usr/include/net-snmp/library/snmp_client.h
+file path=usr/include/net-snmp/library/snmp_debug.h
+file path=usr/include/net-snmp/library/snmp_enum.h
+file path=usr/include/net-snmp/library/snmp_impl.h
+file path=usr/include/net-snmp/library/snmp_logging.h
+file path=usr/include/net-snmp/library/snmp_parse_args.h
+file path=usr/include/net-snmp/library/snmp_secmod.h
+file path=usr/include/net-snmp/library/snmp_service.h
+file path=usr/include/net-snmp/library/snmp_transport.h
+file path=usr/include/net-snmp/library/snmp-tc.h
+file path=usr/include/net-snmp/library/snmp.h
+file path=usr/include/net-snmp/library/snmpCallbackDomain.h
+file path=usr/include/net-snmp/library/snmpTCPDomain.h
+file path=usr/include/net-snmp/library/snmpTCPIPv6Domain.h
+file path=usr/include/net-snmp/library/snmpUDPDomain.h
+file path=usr/include/net-snmp/library/snmpUDPIPv6Domain.h
+file path=usr/include/net-snmp/library/snmpUnixDomain.h
+file path=usr/include/net-snmp/library/snmpusm.h
+file path=usr/include/net-snmp/library/snmpv3-security-includes.h
+file path=usr/include/net-snmp/library/snmpv3.h
+file path=usr/include/net-snmp/library/system.h
+file path=usr/include/net-snmp/library/text_utils.h
+file path=usr/include/net-snmp/library/tools.h
+file path=usr/include/net-snmp/library/transform_oids.h
+file path=usr/include/net-snmp/library/ucd_compat.h
+file path=usr/include/net-snmp/library/vacm.h
+file path=usr/include/net-snmp/library/winpipe.h
+file path=usr/include/net-snmp/library/winservice.h
+file path=usr/include/net-snmp/machine/generic.h
+file path=usr/include/net-snmp/mib_api.h
+file path=usr/include/net-snmp/net-snmp-config.h
+file path=usr/include/net-snmp/net-snmp-includes.h
+file path=usr/include/net-snmp/output_api.h
+file path=usr/include/net-snmp/pdu_api.h
+file path=usr/include/net-snmp/session_api.h
+file path=usr/include/net-snmp/snmpv3_api.h
+file path=usr/include/net-snmp/system/aix.h
+file path=usr/include/net-snmp/system/bsd.h
+file path=usr/include/net-snmp/system/bsdi.h
+file path=usr/include/net-snmp/system/bsdi3.h
+file path=usr/include/net-snmp/system/bsdi4.h
+file path=usr/include/net-snmp/system/cygwin.h
+file path=usr/include/net-snmp/system/darwin.h
+file path=usr/include/net-snmp/system/darwin7.h
+file path=usr/include/net-snmp/system/darwin8.h
+file path=usr/include/net-snmp/system/darwin9.h
+file path=usr/include/net-snmp/system/dragonfly.h
+file path=usr/include/net-snmp/system/dynix.h
+file path=usr/include/net-snmp/system/freebsd.h
+file path=usr/include/net-snmp/system/freebsd2.h
+file path=usr/include/net-snmp/system/freebsd3.h
+file path=usr/include/net-snmp/system/freebsd4.h
+file path=usr/include/net-snmp/system/freebsd5.h
+file path=usr/include/net-snmp/system/freebsd6.h
+file path=usr/include/net-snmp/system/generic.h
+file path=usr/include/net-snmp/system/hpux.h
+file path=usr/include/net-snmp/system/irix.h
+file path=usr/include/net-snmp/system/linux.h
+file path=usr/include/net-snmp/system/mingw32.h
+file path=usr/include/net-snmp/system/mips.h
+file path=usr/include/net-snmp/system/netbsd.h
+file path=usr/include/net-snmp/system/openbsd.h
+file path=usr/include/net-snmp/system/osf5.h
+file path=usr/include/net-snmp/system/solaris.h
+file path=usr/include/net-snmp/system/solaris2.3.h
+file path=usr/include/net-snmp/system/solaris2.4.h
+file path=usr/include/net-snmp/system/solaris2.5.h
+file path=usr/include/net-snmp/system/solaris2.6.h
+file path=usr/include/net-snmp/system/sunos.h
+file path=usr/include/net-snmp/system/svr5.h
+file path=usr/include/net-snmp/system/sysv.h
+file path=usr/include/net-snmp/system/ultrix4.h
+file path=usr/include/net-snmp/types.h
+file path=usr/include/net-snmp/utilities.h
+file path=usr/include/net-snmp/varbind_api.h
+file path=usr/include/net-snmp/version.h
+file path=usr/include/ucd-snmp/agent_index.h
+file path=usr/include/ucd-snmp/agent_read_config.h
+file path=usr/include/ucd-snmp/agent_registry.h
+file path=usr/include/ucd-snmp/agent_trap.h
+file path=usr/include/ucd-snmp/asn1.h
+file path=usr/include/ucd-snmp/auto_nlist.h
+file path=usr/include/ucd-snmp/callback.h
+file path=usr/include/ucd-snmp/default_store.h
+file path=usr/include/ucd-snmp/ds_agent.h
+file path=usr/include/ucd-snmp/header_complex.h
+file path=usr/include/ucd-snmp/int64.h
+file path=usr/include/ucd-snmp/keytools.h
+file path=usr/include/ucd-snmp/mib_module_config.h
+file path=usr/include/ucd-snmp/mib.h
+file path=usr/include/ucd-snmp/mibincl.h
+file path=usr/include/ucd-snmp/parse.h
+file path=usr/include/ucd-snmp/read_config.h
+file path=usr/include/ucd-snmp/scapi.h
+file path=usr/include/ucd-snmp/snmp_agent.h
+file path=usr/include/ucd-snmp/snmp_alarm.h
+file path=usr/include/ucd-snmp/snmp_api.h
+file path=usr/include/ucd-snmp/snmp_client.h
+file path=usr/include/ucd-snmp/snmp_debug.h
+file path=usr/include/ucd-snmp/snmp_impl.h
+file path=usr/include/ucd-snmp/snmp_logging.h
+file path=usr/include/ucd-snmp/snmp_parse_args.h
+file path=usr/include/ucd-snmp/snmp_vars.h
+file path=usr/include/ucd-snmp/snmp-tc.h
+file path=usr/include/ucd-snmp/snmp.h
+file path=usr/include/ucd-snmp/snmpusm.h
+file path=usr/include/ucd-snmp/snmpv3.h
+file path=usr/include/ucd-snmp/struct.h
+file path=usr/include/ucd-snmp/system.h
+file path=usr/include/ucd-snmp/tools.h
+file path=usr/include/ucd-snmp/transform_oids.h
+file path=usr/include/ucd-snmp/ucd-snmp-agent-includes.h
+file path=usr/include/ucd-snmp/ucd-snmp-config.h
+file path=usr/include/ucd-snmp/ucd-snmp-includes.h
+file path=usr/include/ucd-snmp/util_funcs.h
+file path=usr/include/ucd-snmp/var_struct.h
+file path=usr/include/ucd-snmp/version.h
+file $(MACH64)/sun/agent/modules/entityMib/libentity.so path=usr/lib/$(MACH64)/libentity.so
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmp.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmp.so.15.1.0
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpagent.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmpagent.so.15.1.0
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmphelpers.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmphelpers.so.15.1.0
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpmibs.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmpmibs.so.15.1.0
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmptrapd.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmptrapd.so.15.1.0
+file $(MACH32)/sun/agent/modules/entityMib/libentity.so path=usr/lib/libentity.so
+file path=usr/lib/libnetsnmp.so.15.1.0
+file path=usr/lib/libnetsnmpagent.so.15.1.0
+file path=usr/lib/libnetsnmphelpers.so.15.1.0
+file path=usr/lib/libnetsnmpmibs.so.15.1.0
+file path=usr/lib/libnetsnmptrapd.so.15.1.0
+file path=usr/lib/libsnmp.so.15.1.0
+file $(MACH32)/sun/masfcnv path=usr/lib/net-snmp/masfcnv
+file $(MACH32)/sun/masfd path=usr/lib/net-snmp/masfd
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::agent::default_store.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::agent.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::ASN.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::default_store.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::netsnmp_request_infoPtr.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::OID.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::TrapReceiver.3
+file path=usr/perl5/$(PERL_VERSION)/man/man3/SNMP.3
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/Bundle/NetSNMP/.packlist
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/agent.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/agent.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/default_store/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/default_store/default_store.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/agent/default_store/default_store.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/ASN/ASN.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/ASN/ASN.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/ASN/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/default_store/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/default_store/default_store.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/default_store/default_store.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/OID/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/OID/OID.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/OID/OID.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/TrapReceiver/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/TrapReceiver/TrapReceiver.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/NetSNMP/TrapReceiver/TrapReceiver.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/SNMP/autosplit.ix
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/SNMP/SNMP.bs
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/auto/SNMP/SNMP.so
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/Bundle/Makefile.subs.pl
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/agent.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/agent/default_store.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/agent/netsnmp_request_infoPtr.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/agent/Support.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/ASN.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/default_store.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/OID.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/NetSNMP/TrapReceiver.pm
+file path=usr/perl5/vendor_perl/$(PERL_VERSION)/$(ARCHNAME)/SNMP.pm
+file build/prototype/$(MACH64)/usr/sbin/$(MACH64)/snmpd path=usr/sbin/$(MACH64)/snmpd
+file build/prototype/$(MACH64)/usr/sbin/$(MACH64)/snmptrapd path=usr/sbin/$(MACH64)/snmptrapd
+file usr/sbin/snmpd path=usr/sbin/$(MACH32)/snmpd
+file usr/sbin/snmptrapd path=usr/sbin/$(MACH32)/snmptrapd
+hardlink path=usr/sbin/snmpd target=../../usr/lib/isaexec
+hardlink path=usr/sbin/snmptrapd target=../../usr/lib/isaexec
+link path=usr/bin/net-snmp-config target=./net-snmp-config-32 variant.arch=i386
+link path=usr/bin/net-snmp-config target=./net-snmp-config-64 variant.arch=sparc
+link path=usr/bin/snmpinform target=snmptrap
+link path=usr/lib/$(MACH64)/libnetsnmp.so target=./libnetsnmp.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmp.so.15 target=./libnetsnmp.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmpagent.so target=./libnetsnmpagent.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmphelpers.so target=./libnetsnmphelpers.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmpmibs.so target=./libnetsnmpmibs.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmptrapd.so target=./libnetsnmptrapd.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.15.1.0
+link path=usr/lib/libnetsnmp.so target=./libnetsnmp.so.15.1.0
+link path=usr/lib/libnetsnmp.so.15 target=./libnetsnmp.so.15.1.0
+link path=usr/lib/libnetsnmpagent.so target=./libnetsnmpagent.so.15.1.0
+link path=usr/lib/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.15.1.0
+link path=usr/lib/libnetsnmphelpers.so target=./libnetsnmphelpers.so.15.1.0
+link path=usr/lib/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.15.1.0
+link path=usr/lib/libnetsnmpmibs.so target=./libnetsnmpmibs.so.15.1.0
+link path=usr/lib/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.15.1.0
+link path=usr/lib/libnetsnmptrapd.so target=./libnetsnmptrapd.so.15.1.0
+link path=usr/lib/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.15.1.0
+link path=usr/lib/libsnmp.so target=./libsnmp.so.15.1.0
+link path=usr/lib/libsnmp.so.15 target=./libsnmp.so.15.1.0
+
+legacy pkg=SUNWnet-snmp-utils \
+	name="Net-SNMP Agent applications and utilities" \
+	desc="Net-SNMP Agent applications and utilities (5.4.1)"
+legacy pkg=SUNWnet-snmp-mgr \
+	name="Net-SNMP Agent Configuration files and Startup scripts" \
+	desc="Net-SNMP Agent Configuration files and Startup scripts (5.4.1)"
+legacy pkg=SUNWnet-snmp-core \
+	name="Net-SNMP Agent files and libraries" \
+	desc="Net-SNMP Agent files and libraries (5.4.1)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/net-snmp-documentation.p5m	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,641 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+
+set name=info.classification value="org.opensolaris.category.2008:System/Enterprise Management"
+set name=pkg.summary value="Net-SNMP Agent manpages and html documentation files"
+set name=info.upstream_url value="http://www.net-snmp.org/"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+set name=pkg.fmri value=pkg:/system/management/snmp/net-snmp/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2008/355
+
+license COPYING license="BSD, BSD-like"
+
+dir path=usr
+dir path=usr/demo
+dir path=usr/demo/net-snmp
+dir path=usr/demo/net-snmp/demo_module_1
+dir path=usr/demo/net-snmp/demo_module_10
+dir path=usr/demo/net-snmp/demo_module_11
+dir path=usr/demo/net-snmp/demo_module_12
+dir path=usr/demo/net-snmp/demo_module_2
+dir path=usr/demo/net-snmp/demo_module_3
+dir path=usr/demo/net-snmp/demo_module_4
+dir path=usr/demo/net-snmp/demo_module_5
+dir path=usr/demo/net-snmp/demo_module_6
+dir path=usr/demo/net-snmp/demo_module_7
+dir path=usr/demo/net-snmp/demo_module_8
+dir path=usr/demo/net-snmp/demo_module_9
+dir path=usr/share
+dir path=usr/share/doc
+dir path=usr/share/doc/net-snmp
+dir path=usr/share/doc/net-snmp/html
+dir path=usr/share/man
+dir path=usr/share/man/man1
+dir path=usr/share/man/man3
+dir path=usr/share/man/man5
+dir path=usr/share/man/man8
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/demo_module_6.h path=usr/demo/net-snmp/demo_module_6/demo_module_6.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/SDK-DEMO6-MIB.txt path=usr/demo/net-snmp/demo_module_6/SDK-DEMO6-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/README_demo_module_6 path=usr/demo/net-snmp/demo_module_6/README_demo_module_6
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/Makefile path=usr/demo/net-snmp/demo_module_6/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/demo_module_6.c path=usr/demo/net-snmp/demo_module_6/demo_module_6.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_6/get_demo_module_6 path=usr/demo/net-snmp/demo_module_6/get_demo_module_6
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/SDK-DEMO10-MIB.txt path=usr/demo/net-snmp/demo_module_10/SDK-DEMO10-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/get_status path=usr/demo/net-snmp/demo_module_10/get_status
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/Makefile path=usr/demo/net-snmp/demo_module_10/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/demo_module_10.c path=usr/demo/net-snmp/demo_module_10/demo_module_10.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/set_status path=usr/demo/net-snmp/demo_module_10/set_status
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/walk_demo_module_10 path=usr/demo/net-snmp/demo_module_10/walk_demo_module_10
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/get_data path=usr/demo/net-snmp/demo_module_10/get_data
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/demo_module_10.h path=usr/demo/net-snmp/demo_module_10/demo_module_10.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/README_demo_module_10 path=usr/demo/net-snmp/demo_module_10/README_demo_module_10
+file build/$(MACH32)/sun/sdk/demo/demo_module_10/get_refreshtime path=usr/demo/net-snmp/demo_module_10/get_refreshtime
+file build/$(MACH32)/sun/sdk/demo/demo_module_1/SDK-DEMO1-MIB.txt path=usr/demo/net-snmp/demo_module_1/SDK-DEMO1-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_1/README_demo_module_1 path=usr/demo/net-snmp/demo_module_1/README_demo_module_1
+file build/$(MACH32)/sun/sdk/demo/demo_module_1/demo_module_1.h path=usr/demo/net-snmp/demo_module_1/demo_module_1.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_1/Makefile path=usr/demo/net-snmp/demo_module_1/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_1/demo_module_1.c path=usr/demo/net-snmp/demo_module_1/demo_module_1.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_5/demo_module_5.h path=usr/demo/net-snmp/demo_module_5/demo_module_5.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_5/SDK-DEMO5-MIB.txt path=usr/demo/net-snmp/demo_module_5/SDK-DEMO5-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_5/README_demo_module_5 path=usr/demo/net-snmp/demo_module_5/README_demo_module_5
+file build/$(MACH32)/sun/sdk/demo/demo_module_5/demo_module_5.c path=usr/demo/net-snmp/demo_module_5/demo_module_5.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_5/Makefile path=usr/demo/net-snmp/demo_module_5/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/Makefile path=usr/demo/net-snmp/demo_module_8/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/getme1LoadGroup path=usr/demo/net-snmp/demo_module_8/getme1LoadGroup
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/README_demo_module_8 path=usr/demo/net-snmp/demo_module_8/README_demo_module_8
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/me1LoadGroup.h path=usr/demo/net-snmp/demo_module_8/me1LoadGroup.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/SDK-DEMO1-MIB.txt path=usr/demo/net-snmp/demo_module_8/SDK-DEMO1-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/me1LoadGroup.c path=usr/demo/net-snmp/demo_module_8/me1LoadGroup.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_8/demo_module_8.c path=usr/demo/net-snmp/demo_module_8/demo_module_8.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_2/demo_module_2.h path=usr/demo/net-snmp/demo_module_2/demo_module_2.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_2/README_demo_module_2 path=usr/demo/net-snmp/demo_module_2/README_demo_module_2
+file build/$(MACH32)/sun/sdk/demo/demo_module_2/Makefile path=usr/demo/net-snmp/demo_module_2/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_2/SDK-DEMO1-MIB.txt path=usr/demo/net-snmp/demo_module_2/SDK-DEMO1-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_2/demo_module_2.c path=usr/demo/net-snmp/demo_module_2/demo_module_2.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_11/MyTable.c path=usr/demo/net-snmp/demo_module_11/MyTable.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_11/README_demo_module_11 path=usr/demo/net-snmp/demo_module_11/README_demo_module_11
+file build/$(MACH32)/sun/sdk/demo/demo_module_11/Makefile path=usr/demo/net-snmp/demo_module_11/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_11/MyTable.h path=usr/demo/net-snmp/demo_module_11/MyTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entAliasMappingTable.h path=usr/demo/net-snmp/demo_module_11/entAliasMappingTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entLPMappingTable.h path=usr/demo/net-snmp/demo_module_11/entLPMappingTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entLastChangeTime.h path=usr/demo/net-snmp/demo_module_11/entLastChangeTime.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entLogicalTable.h path=usr/demo/net-snmp/demo_module_11/entLogicalTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entPhysicalContainsTable.h path=usr/demo/net-snmp/demo_module_11/entPhysicalContainsTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/entPhysicalTable.h path=usr/demo/net-snmp/demo_module_11/entPhysicalTable.h
+file build/$(MACH32)/sun/agent/modules/entityMib/stdhdr.h path=usr/demo/net-snmp/demo_module_11/stdhdr.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/get_filesize path=usr/demo/net-snmp/demo_module_7/get_filesize
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/register_file path=usr/demo/net-snmp/demo_module_7/register_file
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/README_demo_module_7 path=usr/demo/net-snmp/demo_module_7/README_demo_module_7
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/SDK-DEMO6-MIB.txt path=usr/demo/net-snmp/demo_module_7/SDK-DEMO6-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/demo_module_7.h path=usr/demo/net-snmp/demo_module_7/demo_module_7.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/unregister_file path=usr/demo/net-snmp/demo_module_7/unregister_file
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/demo_module_7.c path=usr/demo/net-snmp/demo_module_7/demo_module_7.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_7/Makefile path=usr/demo/net-snmp/demo_module_7/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_3/demo_module_3.h path=usr/demo/net-snmp/demo_module_3/demo_module_3.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_3/README_demo_module_3 path=usr/demo/net-snmp/demo_module_3/README_demo_module_3
+file build/$(MACH32)/sun/sdk/demo/demo_module_3/SDK-DEMO1-MIB.txt path=usr/demo/net-snmp/demo_module_3/SDK-DEMO1-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_3/demo_module_3.c path=usr/demo/net-snmp/demo_module_3/demo_module_3.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_3/Makefile path=usr/demo/net-snmp/demo_module_3/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/Makefile path=usr/demo/net-snmp/demo_module_9/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/demo_module_9.c path=usr/demo/net-snmp/demo_module_9/demo_module_9.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/set_demo_module_9 path=usr/demo/net-snmp/demo_module_9/set_demo_module_9
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/SDK-DEMO9-MIB.txt path=usr/demo/net-snmp/demo_module_9/SDK-DEMO9-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/walk_demo_module_9 path=usr/demo/net-snmp/demo_module_9/walk_demo_module_9
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/get_demo_module_9 path=usr/demo/net-snmp/demo_module_9/get_demo_module_9
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/README_demo_module_9 path=usr/demo/net-snmp/demo_module_9/README_demo_module_9
+file build/$(MACH32)/sun/sdk/demo/demo_module_9/demo_module_9.h path=usr/demo/net-snmp/demo_module_9/demo_module_9.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_12/EXAMPLE-MIB.txt path=usr/demo/net-snmp/demo_module_12/EXAMPLE-MIB.txt
+file build/$(MACH32)/sun/sdk/demo/demo_module_12/README_demo_module_12 path=usr/demo/net-snmp/demo_module_12/README_demo_module_12
+file build/$(MACH32)/sun/sdk/demo/demo_module_12/runmib2c path=usr/demo/net-snmp/demo_module_12/runmib2c
+file build/$(MACH32)/sun/sdk/demo/demo_module_12/runmibcodegen path=usr/demo/net-snmp/demo_module_12/runmibcodegen
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/me4LoadGroup.h path=usr/demo/net-snmp/demo_module_4/me4LoadGroup.h
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/README_demo_module_4 path=usr/demo/net-snmp/demo_module_4/README_demo_module_4
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/Makefile path=usr/demo/net-snmp/demo_module_4/Makefile
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/demo_module_4.conf path=usr/demo/net-snmp/demo_module_4/demo_module_4.conf
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/me4LoadGroup.c path=usr/demo/net-snmp/demo_module_4/me4LoadGroup.c
+file build/$(MACH32)/sun/sdk/demo/demo_module_4/SDK-DEMO4-MIB.txt path=usr/demo/net-snmp/demo_module_4/SDK-DEMO4-MIB.txt
+file build/$(MACH32)/docs/html/acconfig_8h-source.html path=usr/share/doc/net-snmp/html/acconfig_8h-source.html
+file build/$(MACH32)/docs/html/agent__callbacks_8h-source.html path=usr/share/doc/net-snmp/html/agent__callbacks_8h-source.html
+file build/$(MACH32)/docs/html/agent__handler_8c-source.html path=usr/share/doc/net-snmp/html/agent__handler_8c-source.html
+file build/$(MACH32)/docs/html/agent__handler_8h-source.html path=usr/share/doc/net-snmp/html/agent__handler_8h-source.html
+file build/$(MACH32)/docs/html/agent__handler_8h.html path=usr/share/doc/net-snmp/html/agent__handler_8h.html
+file build/$(MACH32)/docs/html/agent__index_8c-source.html path=usr/share/doc/net-snmp/html/agent__index_8c-source.html
+file build/$(MACH32)/docs/html/agent__index_8h-source.html path=usr/share/doc/net-snmp/html/agent__index_8h-source.html
+file build/$(MACH32)/docs/html/agent__module__config_8h-source.html path=usr/share/doc/net-snmp/html/agent__module__config_8h-source.html
+file build/$(MACH32)/docs/html/agent__read__config_8c-source.html path=usr/share/doc/net-snmp/html/agent__read__config_8c-source.html
+file build/$(MACH32)/docs/html/agent__read__config_8h-source.html path=usr/share/doc/net-snmp/html/agent__read__config_8h-source.html
+file build/$(MACH32)/docs/html/agent__registry_8c-source.html path=usr/share/doc/net-snmp/html/agent__registry_8c-source.html
+file build/$(MACH32)/docs/html/agent__registry_8h-source.html path=usr/share/doc/net-snmp/html/agent__registry_8h-source.html
+file build/$(MACH32)/docs/html/agent__trap_8c-source.html path=usr/share/doc/net-snmp/html/agent__trap_8c-source.html
+file build/$(MACH32)/docs/html/agent__trap_8h-source.html path=usr/share/doc/net-snmp/html/agent__trap_8h-source.html
+file build/$(MACH32)/docs/html/all__helpers_8c-source.html path=usr/share/doc/net-snmp/html/all__helpers_8c-source.html
+file build/$(MACH32)/docs/html/all__helpers_8h-source.html path=usr/share/doc/net-snmp/html/all__helpers_8h-source.html
+file build/$(MACH32)/docs/html/annotated.html path=usr/share/doc/net-snmp/html/annotated.html
+file build/$(MACH32)/docs/html/asn1_8c-source.html path=usr/share/doc/net-snmp/html/asn1_8c-source.html
+file build/$(MACH32)/docs/html/asn1_8h-source.html path=usr/share/doc/net-snmp/html/asn1_8h-source.html
+file build/$(MACH32)/docs/html/auto__nlist_8c-source.html path=usr/share/doc/net-snmp/html/auto__nlist_8c-source.html
+file build/$(MACH32)/docs/html/auto__nlist_8h-source.html path=usr/share/doc/net-snmp/html/auto__nlist_8h-source.html
+file build/$(MACH32)/docs/html/autonlist_8h-source.html path=usr/share/doc/net-snmp/html/autonlist_8h-source.html
+file build/$(MACH32)/docs/html/baby__steps_8c-source.html path=usr/share/doc/net-snmp/html/baby__steps_8c-source.html
+file build/$(MACH32)/docs/html/baby__steps_8h-source.html path=usr/share/doc/net-snmp/html/baby__steps_8h-source.html
+file build/$(MACH32)/docs/html/bulk__to__next_8c-source.html path=usr/share/doc/net-snmp/html/bulk__to__next_8c-source.html
+file build/$(MACH32)/docs/html/bulk__to__next_8h-source.html path=usr/share/doc/net-snmp/html/bulk__to__next_8h-source.html
+file build/$(MACH32)/docs/html/cache__handler_8c-source.html path=usr/share/doc/net-snmp/html/cache__handler_8c-source.html
+file build/$(MACH32)/docs/html/cache__handler_8h-source.html path=usr/share/doc/net-snmp/html/cache__handler_8h-source.html
+file build/$(MACH32)/docs/html/callback_8c-source.html path=usr/share/doc/net-snmp/html/callback_8c-source.html
+file build/$(MACH32)/docs/html/callback_8h-source.html path=usr/share/doc/net-snmp/html/callback_8h-source.html
+file build/$(MACH32)/docs/html/check__varbind_8c-source.html path=usr/share/doc/net-snmp/html/check__varbind_8c-source.html
+file build/$(MACH32)/docs/html/check__varbind_8h-source.html path=usr/share/doc/net-snmp/html/check__varbind_8h-source.html
+file build/$(MACH32)/docs/html/classes.html path=usr/share/doc/net-snmp/html/classes.html
+file build/$(MACH32)/docs/html/cmu__compat_8c-source.html path=usr/share/doc/net-snmp/html/cmu__compat_8c-source.html
+file build/$(MACH32)/docs/html/cmu__compat_8h-source.html path=usr/share/doc/net-snmp/html/cmu__compat_8h-source.html
+file build/$(MACH32)/docs/html/config__api_8h-source.html path=usr/share/doc/net-snmp/html/config__api_8h-source.html
+file build/$(MACH32)/docs/html/container_8c-source.html path=usr/share/doc/net-snmp/html/container_8c-source.html
+file build/$(MACH32)/docs/html/container_8h-source.html path=usr/share/doc/net-snmp/html/container_8h-source.html
+file build/$(MACH32)/docs/html/container__binary__array_8c-source.html path=usr/share/doc/net-snmp/html/container__binary__array_8c-source.html
+file build/$(MACH32)/docs/html/container__binary__array_8h-source.html path=usr/share/doc/net-snmp/html/container__binary__array_8h-source.html
+file build/$(MACH32)/docs/html/container__iterator_8c-source.html path=usr/share/doc/net-snmp/html/container__iterator_8c-source.html
+file build/$(MACH32)/docs/html/container__iterator_8h-source.html path=usr/share/doc/net-snmp/html/container__iterator_8h-source.html
+file build/$(MACH32)/docs/html/container__iterator_8h.html path=usr/share/doc/net-snmp/html/container__iterator_8h.html
+file build/$(MACH32)/docs/html/container__list__ssll_8c-source.html path=usr/share/doc/net-snmp/html/container__list__ssll_8c-source.html
+file build/$(MACH32)/docs/html/container__list__ssll_8h-source.html path=usr/share/doc/net-snmp/html/container__list__ssll_8h-source.html
+file build/$(MACH32)/docs/html/container__null_8c-source.html path=usr/share/doc/net-snmp/html/container__null_8c-source.html
+file build/$(MACH32)/docs/html/container__null_8h-source.html path=usr/share/doc/net-snmp/html/container__null_8h-source.html
+file build/$(MACH32)/docs/html/data__list_8c-source.html path=usr/share/doc/net-snmp/html/data__list_8c-source.html
+file build/$(MACH32)/docs/html/data__list_8h-source.html path=usr/share/doc/net-snmp/html/data__list_8h-source.html
+file build/$(MACH32)/docs/html/data__set_8c-example.html path=usr/share/doc/net-snmp/html/data__set_8c-example.html
+file build/$(MACH32)/docs/html/data__set_8c-source.html path=usr/share/doc/net-snmp/html/data__set_8c-source.html
+file build/$(MACH32)/docs/html/data__set_8h-source.html path=usr/share/doc/net-snmp/html/data__set_8h-source.html
+file build/$(MACH32)/docs/html/debug__handler_8c-source.html path=usr/share/doc/net-snmp/html/debug__handler_8c-source.html
+file build/$(MACH32)/docs/html/debug__handler_8h-source.html path=usr/share/doc/net-snmp/html/debug__handler_8h-source.html
+file build/$(MACH32)/docs/html/default__store_8c-source.html path=usr/share/doc/net-snmp/html/default__store_8c-source.html
+file build/$(MACH32)/docs/html/default__store_8h-source.html path=usr/share/doc/net-snmp/html/default__store_8h-source.html
+file build/$(MACH32)/docs/html/definitions_8h-source.html path=usr/share/doc/net-snmp/html/definitions_8h-source.html
+file build/$(MACH32)/docs/html/delayed__instance_8c-example.html path=usr/share/doc/net-snmp/html/delayed__instance_8c-example.html
+file build/$(MACH32)/docs/html/delayed__instance_8c-source.html path=usr/share/doc/net-snmp/html/delayed__instance_8c-source.html
+file build/$(MACH32)/docs/html/delayed__instance_8h-source.html path=usr/share/doc/net-snmp/html/delayed__instance_8h-source.html
+file build/$(MACH32)/docs/html/deprecated.html path=usr/share/doc/net-snmp/html/deprecated.html
+file build/$(MACH32)/docs/html/ds__agent_8h-source.html path=usr/share/doc/net-snmp/html/ds__agent_8h-source.html
+file build/$(MACH32)/docs/html/example_8c-source.html path=usr/share/doc/net-snmp/html/example_8c-source.html
+file build/$(MACH32)/docs/html/example_8h-source.html path=usr/share/doc/net-snmp/html/example_8h-source.html
+file build/$(MACH32)/docs/html/examples.html path=usr/share/doc/net-snmp/html/examples.html
+file build/$(MACH32)/docs/html/factory_8h-source.html path=usr/share/doc/net-snmp/html/factory_8h-source.html
+file build/$(MACH32)/docs/html/fd__event__manager_8c-source.html path=usr/share/doc/net-snmp/html/fd__event__manager_8c-source.html
+file build/$(MACH32)/docs/html/fd__event__manager_8h-source.html path=usr/share/doc/net-snmp/html/fd__event__manager_8h-source.html
+file build/$(MACH32)/docs/html/file__utils_8c-source.html path=usr/share/doc/net-snmp/html/file__utils_8c-source.html
+file build/$(MACH32)/docs/html/file__utils_8h-source.html path=usr/share/doc/net-snmp/html/file__utils_8h-source.html
+file build/$(MACH32)/docs/html/files.html path=usr/share/doc/net-snmp/html/files.html
+file build/$(MACH32)/docs/html/functions.html path=usr/share/doc/net-snmp/html/functions.html
+file build/$(MACH32)/docs/html/functions_vars.html path=usr/share/doc/net-snmp/html/functions_vars.html
+file build/$(MACH32)/docs/html/getopt_8c-source.html path=usr/share/doc/net-snmp/html/getopt_8c-source.html
+file build/$(MACH32)/docs/html/getopt_8h-source.html path=usr/share/doc/net-snmp/html/getopt_8h-source.html
+file build/$(MACH32)/docs/html/globals.html path=usr/share/doc/net-snmp/html/globals.html
+file build/$(MACH32)/docs/html/globals_defs.html path=usr/share/doc/net-snmp/html/globals_defs.html
+file build/$(MACH32)/docs/html/globals_func.html path=usr/share/doc/net-snmp/html/globals_func.html
+file build/$(MACH32)/docs/html/globals_type.html path=usr/share/doc/net-snmp/html/globals_type.html
+file build/$(MACH32)/docs/html/group__access__multiplexer.html path=usr/share/doc/net-snmp/html/group__access__multiplexer.html
+file build/$(MACH32)/docs/html/group__agent.html path=usr/share/doc/net-snmp/html/group__agent.html
+file build/$(MACH32)/docs/html/group__agent__registry.html path=usr/share/doc/net-snmp/html/group__agent__registry.html
+file build/$(MACH32)/docs/html/group__agent__trap.html path=usr/share/doc/net-snmp/html/group__agent__trap.html
+file build/$(MACH32)/docs/html/group__asn1__packet__parse.html path=usr/share/doc/net-snmp/html/group__asn1__packet__parse.html
+file build/$(MACH32)/docs/html/group__baby__steps.html path=usr/share/doc/net-snmp/html/group__baby__steps.html
+file build/$(MACH32)/docs/html/group__bulk__to__next.html path=usr/share/doc/net-snmp/html/group__bulk__to__next.html
+file build/$(MACH32)/docs/html/group__cache__handler.html path=usr/share/doc/net-snmp/html/group__cache__handler.html
+file build/$(MACH32)/docs/html/group__callback.html path=usr/share/doc/net-snmp/html/group__callback.html
+file build/$(MACH32)/docs/html/group__container.html path=usr/share/doc/net-snmp/html/group__container.html
+file build/$(MACH32)/docs/html/group__container__iterator.html path=usr/share/doc/net-snmp/html/group__container__iterator.html
+file build/$(MACH32)/docs/html/group__data__list.html path=usr/share/doc/net-snmp/html/group__data__list.html
+file build/$(MACH32)/docs/html/group__debug.html path=usr/share/doc/net-snmp/html/group__debug.html
+file build/$(MACH32)/docs/html/group__default__store.html path=usr/share/doc/net-snmp/html/group__default__store.html
+file build/$(MACH32)/docs/html/group__handler.html path=usr/share/doc/net-snmp/html/group__handler.html
+file build/$(MACH32)/docs/html/group__instance.html path=usr/share/doc/net-snmp/html/group__instance.html
+file build/$(MACH32)/docs/html/group__leaf.html path=usr/share/doc/net-snmp/html/group__leaf.html
+file build/$(MACH32)/docs/html/group__library.html path=usr/share/doc/net-snmp/html/group__library.html
+file build/$(MACH32)/docs/html/group__mib__maintenance.html path=usr/share/doc/net-snmp/html/group__mib__maintenance.html
+file build/$(MACH32)/docs/html/group__mib__utilities.html path=usr/share/doc/net-snmp/html/group__mib__utilities.html
+file build/$(MACH32)/docs/html/group__mode__end__call.html path=usr/share/doc/net-snmp/html/group__mode__end__call.html
+file build/$(MACH32)/docs/html/group__multiplexer.html path=usr/share/doc/net-snmp/html/group__multiplexer.html
+file build/$(MACH32)/docs/html/group__oid__stash.html path=usr/share/doc/net-snmp/html/group__oid__stash.html
+file build/$(MACH32)/docs/html/group__old__api.html path=usr/share/doc/net-snmp/html/group__old__api.html
+file build/$(MACH32)/docs/html/group__read__config.html path=usr/share/doc/net-snmp/html/group__read__config.html
+file build/$(MACH32)/docs/html/group__read__only.html path=usr/share/doc/net-snmp/html/group__read__only.html
+file build/$(MACH32)/docs/html/group__row__merge.html path=usr/share/doc/net-snmp/html/group__row__merge.html
+file build/$(MACH32)/docs/html/group__scalar.html path=usr/share/doc/net-snmp/html/group__scalar.html
+file build/$(MACH32)/docs/html/group__scalar__group__group.html path=usr/share/doc/net-snmp/html/group__scalar__group__group.html
+file build/$(MACH32)/docs/html/group__serialize.html path=usr/share/doc/net-snmp/html/group__serialize.html
+file build/$(MACH32)/docs/html/group__snmp__agent.html path=usr/share/doc/net-snmp/html/group__snmp__agent.html
+file build/$(MACH32)/docs/html/group__snmp__alarm.html path=usr/share/doc/net-snmp/html/group__snmp__alarm.html
+file build/$(MACH32)/docs/html/group__snmp__client.html path=usr/share/doc/net-snmp/html/group__snmp__client.html
+file build/$(MACH32)/docs/html/group__snmp__logging.html path=usr/share/doc/net-snmp/html/group__snmp__logging.html
+file build/$(MACH32)/docs/html/group__stash__cache.html path=usr/share/doc/net-snmp/html/group__stash__cache.html
+file build/$(MACH32)/docs/html/group__stash__to__next.html path=usr/share/doc/net-snmp/html/group__stash__to__next.html
+file build/$(MACH32)/docs/html/group__table.html path=usr/share/doc/net-snmp/html/group__table.html
+file build/$(MACH32)/docs/html/group__table__array.html path=usr/share/doc/net-snmp/html/group__table__array.html
+file build/$(MACH32)/docs/html/group__table__container.html path=usr/share/doc/net-snmp/html/group__table__container.html
+file build/$(MACH32)/docs/html/group__table__data.html path=usr/share/doc/net-snmp/html/group__table__data.html
+file build/$(MACH32)/docs/html/group__table__dataset.html path=usr/share/doc/net-snmp/html/group__table__dataset.html
+file build/$(MACH32)/docs/html/group__table__generic.html path=usr/share/doc/net-snmp/html/group__table__generic.html
+file build/$(MACH32)/docs/html/group__table__indexes.html path=usr/share/doc/net-snmp/html/group__table__indexes.html
+file build/$(MACH32)/docs/html/group__table__iterator.html path=usr/share/doc/net-snmp/html/group__table__iterator.html
+file build/$(MACH32)/docs/html/group__table__maintenance.html path=usr/share/doc/net-snmp/html/group__table__maintenance.html
+file build/$(MACH32)/docs/html/group__table__row.html path=usr/share/doc/net-snmp/html/group__table__row.html
+file build/$(MACH32)/docs/html/group__table__rows.html path=usr/share/doc/net-snmp/html/group__table__rows.html
+file build/$(MACH32)/docs/html/group__tdata.html path=usr/share/doc/net-snmp/html/group__tdata.html
+file build/$(MACH32)/docs/html/group__util.html path=usr/share/doc/net-snmp/html/group__util.html
+file build/$(MACH32)/docs/html/group__utilities.html path=usr/share/doc/net-snmp/html/group__utilities.html
+file build/$(MACH32)/docs/html/group__watcher.html path=usr/share/doc/net-snmp/html/group__watcher.html
+file build/$(MACH32)/docs/html/index.html path=usr/share/doc/net-snmp/html/index.html
+file build/$(MACH32)/docs/html/inet__ntop_8c-source.html path=usr/share/doc/net-snmp/html/inet__ntop_8c-source.html
+file build/$(MACH32)/docs/html/inet__pton_8c-source.html path=usr/share/doc/net-snmp/html/inet__pton_8c-source.html
+file build/$(MACH32)/docs/html/instance_8c-source.html path=usr/share/doc/net-snmp/html/instance_8c-source.html
+file build/$(MACH32)/docs/html/instance_8h-source.html path=usr/share/doc/net-snmp/html/instance_8h-source.html
+file build/$(MACH32)/docs/html/int64_8c-source.html path=usr/share/doc/net-snmp/html/int64_8c-source.html
+file build/$(MACH32)/docs/html/int64_8h-source.html path=usr/share/doc/net-snmp/html/int64_8h-source.html
+file build/$(MACH32)/docs/html/kernel_8c-source.html path=usr/share/doc/net-snmp/html/kernel_8c-source.html
+file build/$(MACH32)/docs/html/kernel_8h-source.html path=usr/share/doc/net-snmp/html/kernel_8h-source.html
+file build/$(MACH32)/docs/html/keytools_8c-source.html path=usr/share/doc/net-snmp/html/keytools_8c-source.html
+file build/$(MACH32)/docs/html/keytools_8h-source.html path=usr/share/doc/net-snmp/html/keytools_8h-source.html
+file build/$(MACH32)/docs/html/lcd__time_8c-source.html path=usr/share/doc/net-snmp/html/lcd__time_8c-source.html
+file build/$(MACH32)/docs/html/lcd__time_8h-source.html path=usr/share/doc/net-snmp/html/lcd__time_8h-source.html
+file build/$(MACH32)/docs/html/libsnmp_8h-source.html path=usr/share/doc/net-snmp/html/libsnmp_8h-source.html
+file build/$(MACH32)/docs/html/m2m_8h-source.html path=usr/share/doc/net-snmp/html/m2m_8h-source.html
+file build/$(MACH32)/docs/html/md5_8c-source.html path=usr/share/doc/net-snmp/html/md5_8c-source.html
+file build/$(MACH32)/docs/html/md5_8h-source.html path=usr/share/doc/net-snmp/html/md5_8h-source.html
+file build/$(MACH32)/docs/html/mfd_8h-source.html path=usr/share/doc/net-snmp/html/mfd_8h-source.html
+file build/$(MACH32)/docs/html/mib_8c-source.html path=usr/share/doc/net-snmp/html/mib_8c-source.html
+file build/$(MACH32)/docs/html/mib_8h-source.html path=usr/share/doc/net-snmp/html/mib_8h-source.html
+file build/$(MACH32)/docs/html/mib__api_8h-source.html path=usr/share/doc/net-snmp/html/mib__api_8h-source.html
+file build/$(MACH32)/docs/html/mib__module__config_8h-source.html path=usr/share/doc/net-snmp/html/mib__module__config_8h-source.html
+file build/$(MACH32)/docs/html/mib__modules_8c-source.html path=usr/share/doc/net-snmp/html/mib__modules_8c-source.html
+file build/$(MACH32)/docs/html/mib__modules_8h-source.html path=usr/share/doc/net-snmp/html/mib__modules_8h-source.html
+file build/$(MACH32)/docs/html/mode__end__call_8c-source.html path=usr/share/doc/net-snmp/html/mode__end__call_8c-source.html
+file build/$(MACH32)/docs/html/mode__end__call_8h-source.html path=usr/share/doc/net-snmp/html/mode__end__call_8h-source.html
+file build/$(MACH32)/docs/html/modules.html path=usr/share/doc/net-snmp/html/modules.html
+file build/$(MACH32)/docs/html/mt__support_8c-source.html path=usr/share/doc/net-snmp/html/mt__support_8c-source.html
+file build/$(MACH32)/docs/html/mt__support_8h-source.html path=usr/share/doc/net-snmp/html/mt__support_8h-source.html
+file build/$(MACH32)/docs/html/multiplexer_8c-source.html path=usr/share/doc/net-snmp/html/multiplexer_8c-source.html
+file build/$(MACH32)/docs/html/multiplexer_8h-source.html path=usr/share/doc/net-snmp/html/multiplexer_8h-source.html
+file build/$(MACH32)/docs/html/net-snmp-agent-includes_8h-source.html path=usr/share/doc/net-snmp/html/net-snmp-agent-includes_8h-source.html
+file build/$(MACH32)/docs/html/net-snmp-config_8h-source.html path=usr/share/doc/net-snmp/html/net-snmp-config_8h-source.html
+file build/$(MACH32)/docs/html/net-snmp-includes_8h-source.html path=usr/share/doc/net-snmp/html/net-snmp-includes_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable_8c-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable_8c-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__access_8c-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__access_8c-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__access_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__access_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__checkfns_8c-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__checkfns_8c-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__checkfns_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__checkfns_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__checkfns__local_8c-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__checkfns__local_8c-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__checkfns__local_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__checkfns__local_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__columns_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__columns_8h-source.html
+file build/$(MACH32)/docs/html/netSnmpHostsTable__enums_8h-source.html path=usr/share/doc/net-snmp/html/netSnmpHostsTable__enums_8h-source.html
+file build/$(MACH32)/docs/html/notification_8c-example.html path=usr/share/doc/net-snmp/html/notification_8c-example.html
+file build/$(MACH32)/docs/html/notification_8c-source.html path=usr/share/doc/net-snmp/html/notification_8c-source.html
+file build/$(MACH32)/docs/html/notification_8h-source.html path=usr/share/doc/net-snmp/html/notification_8h-source.html
+file build/$(MACH32)/docs/html/null_8c-source.html path=usr/share/doc/net-snmp/html/null_8c-source.html
+file build/$(MACH32)/docs/html/null_8h-source.html path=usr/share/doc/net-snmp/html/null_8h-source.html
+file build/$(MACH32)/docs/html/object__monitor_8c-source.html path=usr/share/doc/net-snmp/html/object__monitor_8c-source.html
+file build/$(MACH32)/docs/html/object__monitor_8h-source.html path=usr/share/doc/net-snmp/html/object__monitor_8h-source.html
+file build/$(MACH32)/docs/html/oid__stash_8c-source.html path=usr/share/doc/net-snmp/html/oid__stash_8c-source.html
+file build/$(MACH32)/docs/html/oid__stash_8h-source.html path=usr/share/doc/net-snmp/html/oid__stash_8h-source.html
+file build/$(MACH32)/docs/html/old__api_8c-source.html path=usr/share/doc/net-snmp/html/old__api_8c-source.html
+file build/$(MACH32)/docs/html/old__api_8h-source.html path=usr/share/doc/net-snmp/html/old__api_8h-source.html
+file build/$(MACH32)/docs/html/output__api_8h-source.html path=usr/share/doc/net-snmp/html/output__api_8h-source.html
+file build/$(MACH32)/docs/html/pages.html path=usr/share/doc/net-snmp/html/pages.html
+file build/$(MACH32)/docs/html/parse_8c-source.html path=usr/share/doc/net-snmp/html/parse_8c-source.html
+file build/$(MACH32)/docs/html/parse_8h-source.html path=usr/share/doc/net-snmp/html/parse_8h-source.html
+file build/$(MACH32)/docs/html/pdu__api_8h-source.html path=usr/share/doc/net-snmp/html/pdu__api_8h-source.html
+file build/$(MACH32)/docs/html/pkcs_8c-source.html path=usr/share/doc/net-snmp/html/pkcs_8c-source.html
+file build/$(MACH32)/docs/html/read__config_8c-source.html path=usr/share/doc/net-snmp/html/read__config_8c-source.html
+file build/$(MACH32)/docs/html/read__config_8h-source.html path=usr/share/doc/net-snmp/html/read__config_8h-source.html
+file build/$(MACH32)/docs/html/read__only_8c-source.html path=usr/share/doc/net-snmp/html/read__only_8c-source.html
+file build/$(MACH32)/docs/html/read__only_8h-source.html path=usr/share/doc/net-snmp/html/read__only_8h-source.html
+file build/$(MACH32)/docs/html/row__merge_8c-source.html path=usr/share/doc/net-snmp/html/row__merge_8c-source.html
+file build/$(MACH32)/docs/html/row__merge_8h-source.html path=usr/share/doc/net-snmp/html/row__merge_8h-source.html
+file build/$(MACH32)/docs/html/scalar_8c-source.html path=usr/share/doc/net-snmp/html/scalar_8c-source.html
+file build/$(MACH32)/docs/html/scalar_8h-source.html path=usr/share/doc/net-snmp/html/scalar_8h-source.html
+file build/$(MACH32)/docs/html/scalar__group_8c-source.html path=usr/share/doc/net-snmp/html/scalar__group_8c-source.html
+file build/$(MACH32)/docs/html/scalar__group_8h-source.html path=usr/share/doc/net-snmp/html/scalar__group_8h-source.html
+file build/$(MACH32)/docs/html/scalar__int_8c-example.html path=usr/share/doc/net-snmp/html/scalar__int_8c-example.html
+file build/$(MACH32)/docs/html/scalar__int_8c-source.html path=usr/share/doc/net-snmp/html/scalar__int_8c-source.html
+file build/$(MACH32)/docs/html/scalar__int_8h-source.html path=usr/share/doc/net-snmp/html/scalar__int_8h-source.html
+file build/$(MACH32)/docs/html/scapi_8c-source.html path=usr/share/doc/net-snmp/html/scapi_8c-source.html
+file build/$(MACH32)/docs/html/scapi_8h-source.html path=usr/share/doc/net-snmp/html/scapi_8h-source.html
+file build/$(MACH32)/docs/html/serialize_8c-source.html path=usr/share/doc/net-snmp/html/serialize_8c-source.html
+file build/$(MACH32)/docs/html/serialize_8h-source.html path=usr/share/doc/net-snmp/html/serialize_8h-source.html
+file build/$(MACH32)/docs/html/session__api_8h-source.html path=usr/share/doc/net-snmp/html/session__api_8h-source.html
+file build/$(MACH32)/docs/html/set__helper_8h-source.html path=usr/share/doc/net-snmp/html/set__helper_8h-source.html
+file build/$(MACH32)/docs/html/snmp-tc_8c-source.html path=usr/share/doc/net-snmp/html/snmp-tc_8c-source.html
+file build/$(MACH32)/docs/html/snmp-tc_8h-source.html path=usr/share/doc/net-snmp/html/snmp-tc_8h-source.html
+file build/$(MACH32)/docs/html/snmpAAL5PVCDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpAAL5PVCDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpAAL5PVCDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpAAL5PVCDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpCallbackDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpCallbackDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpCallbackDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpCallbackDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpIPXDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpIPXDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpIPXDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpIPXDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpSTDDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpSTDDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpSTDDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpSTDDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpTCPDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpTCPDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpTCPDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpTCPDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpTCPIPv6Domain_8c-source.html path=usr/share/doc/net-snmp/html/snmpTCPIPv6Domain_8c-source.html
+file build/$(MACH32)/docs/html/snmpTCPIPv6Domain_8h-source.html path=usr/share/doc/net-snmp/html/snmpTCPIPv6Domain_8h-source.html
+file build/$(MACH32)/docs/html/snmpUDPDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpUDPDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpUDPDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpUDPDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmpUDPIPv6Domain_8c-source.html path=usr/share/doc/net-snmp/html/snmpUDPIPv6Domain_8c-source.html
+file build/$(MACH32)/docs/html/snmpUDPIPv6Domain_8h-source.html path=usr/share/doc/net-snmp/html/snmpUDPIPv6Domain_8h-source.html
+file build/$(MACH32)/docs/html/snmpUnixDomain_8c-source.html path=usr/share/doc/net-snmp/html/snmpUnixDomain_8c-source.html
+file build/$(MACH32)/docs/html/snmpUnixDomain_8h-source.html path=usr/share/doc/net-snmp/html/snmpUnixDomain_8h-source.html
+file build/$(MACH32)/docs/html/snmp_8c-source.html path=usr/share/doc/net-snmp/html/snmp_8c-source.html
+file build/$(MACH32)/docs/html/snmp_8h-source.html path=usr/share/doc/net-snmp/html/snmp_8h-source.html
+file build/$(MACH32)/docs/html/snmp__agent_8c-source.html path=usr/share/doc/net-snmp/html/snmp__agent_8c-source.html
+file build/$(MACH32)/docs/html/snmp__agent_8h-source.html path=usr/share/doc/net-snmp/html/snmp__agent_8h-source.html
+file build/$(MACH32)/docs/html/snmp__alarm_8c-source.html path=usr/share/doc/net-snmp/html/snmp__alarm_8c-source.html
+file build/$(MACH32)/docs/html/snmp__alarm_8h-source.html path=usr/share/doc/net-snmp/html/snmp__alarm_8h-source.html
+file build/$(MACH32)/docs/html/snmp__api_8c-source.html path=usr/share/doc/net-snmp/html/snmp__api_8c-source.html
+file build/$(MACH32)/docs/html/snmp__api_8h-source.html path=usr/share/doc/net-snmp/html/snmp__api_8h-source.html
+file build/$(MACH32)/docs/html/snmp__assert_8h-source.html path=usr/share/doc/net-snmp/html/snmp__assert_8h-source.html
+file build/$(MACH32)/docs/html/snmp__auth_8c-source.html path=usr/share/doc/net-snmp/html/snmp__auth_8c-source.html
+file build/$(MACH32)/docs/html/snmp__client_8c-source.html path=usr/share/doc/net-snmp/html/snmp__client_8c-source.html
+file build/$(MACH32)/docs/html/snmp__client_8h-source.html path=usr/share/doc/net-snmp/html/snmp__client_8h-source.html
+file build/$(MACH32)/docs/html/snmp__debug_8c-source.html path=usr/share/doc/net-snmp/html/snmp__debug_8c-source.html
+file build/$(MACH32)/docs/html/snmp__debug_8h-source.html path=usr/share/doc/net-snmp/html/snmp__debug_8h-source.html
+file build/$(MACH32)/docs/html/snmp__enum_8c-source.html path=usr/share/doc/net-snmp/html/snmp__enum_8c-source.html
+file build/$(MACH32)/docs/html/snmp__enum_8h-source.html path=usr/share/doc/net-snmp/html/snmp__enum_8h-source.html
+file build/$(MACH32)/docs/html/snmp__impl_8h-source.html path=usr/share/doc/net-snmp/html/snmp__impl_8h-source.html
+file build/$(MACH32)/docs/html/snmp__logging_8c-source.html path=usr/share/doc/net-snmp/html/snmp__logging_8c-source.html
+file build/$(MACH32)/docs/html/snmp__logging_8h-source.html path=usr/share/doc/net-snmp/html/snmp__logging_8h-source.html
+file build/$(MACH32)/docs/html/snmp__parse__args_8c-source.html path=usr/share/doc/net-snmp/html/snmp__parse__args_8c-source.html
+file build/$(MACH32)/docs/html/snmp__parse__args_8h-source.html path=usr/share/doc/net-snmp/html/snmp__parse__args_8h-source.html
+file build/$(MACH32)/docs/html/snmp__perl_8c-source.html path=usr/share/doc/net-snmp/html/snmp__perl_8c-source.html
+file build/$(MACH32)/docs/html/snmp__secmod_8c-source.html path=usr/share/doc/net-snmp/html/snmp__secmod_8c-source.html
+file build/$(MACH32)/docs/html/snmp__secmod_8h-source.html path=usr/share/doc/net-snmp/html/snmp__secmod_8h-source.html
+file build/$(MACH32)/docs/html/snmp__service_8c-source.html path=usr/share/doc/net-snmp/html/snmp__service_8c-source.html
+file build/$(MACH32)/docs/html/snmp__service_8h-source.html path=usr/share/doc/net-snmp/html/snmp__service_8h-source.html
+file build/$(MACH32)/docs/html/snmp__transport_8c-source.html path=usr/share/doc/net-snmp/html/snmp__transport_8c-source.html
+file build/$(MACH32)/docs/html/snmp__transport_8h-source.html path=usr/share/doc/net-snmp/html/snmp__transport_8h-source.html
+file build/$(MACH32)/docs/html/snmp__vars_8c-source.html path=usr/share/doc/net-snmp/html/snmp__vars_8c-source.html
+file build/$(MACH32)/docs/html/snmp__vars_8h-source.html path=usr/share/doc/net-snmp/html/snmp__vars_8h-source.html
+file build/$(MACH32)/docs/html/snmp__version_8c-source.html path=usr/share/doc/net-snmp/html/snmp__version_8c-source.html
+file build/$(MACH32)/docs/html/snmpd_8c-source.html path=usr/share/doc/net-snmp/html/snmpd_8c-source.html
+file build/$(MACH32)/docs/html/snmpd_8h-source.html path=usr/share/doc/net-snmp/html/snmpd_8h-source.html
+file build/$(MACH32)/docs/html/snmpksm_8c-source.html path=usr/share/doc/net-snmp/html/snmpksm_8c-source.html
+file build/$(MACH32)/docs/html/snmpksm_8h-source.html path=usr/share/doc/net-snmp/html/snmpksm_8h-source.html
+file build/$(MACH32)/docs/html/snmplocalsm_8c-source.html path=usr/share/doc/net-snmp/html/snmplocalsm_8c-source.html
+file build/$(MACH32)/docs/html/snmplocalsm_8h-source.html path=usr/share/doc/net-snmp/html/snmplocalsm_8h-source.html
+file build/$(MACH32)/docs/html/snmpsm__init_8h-source.html path=usr/share/doc/net-snmp/html/snmpsm__init_8h-source.html
+file build/$(MACH32)/docs/html/snmpusm_8c-source.html path=usr/share/doc/net-snmp/html/snmpusm_8c-source.html
+file build/$(MACH32)/docs/html/snmpusm_8h-source.html path=usr/share/doc/net-snmp/html/snmpusm_8h-source.html
+file build/$(MACH32)/docs/html/snmpv3-security-includes_8h-source.html path=usr/share/doc/net-snmp/html/snmpv3-security-includes_8h-source.html
+file build/$(MACH32)/docs/html/snmpv3_8c-source.html path=usr/share/doc/net-snmp/html/snmpv3_8c-source.html
+file build/$(MACH32)/docs/html/snmpv3_8h-source.html path=usr/share/doc/net-snmp/html/snmpv3_8h-source.html
+file build/$(MACH32)/docs/html/snmpv3__api_8h-source.html path=usr/share/doc/net-snmp/html/snmpv3__api_8h-source.html
+file build/$(MACH32)/docs/html/snprintf_8c-source.html path=usr/share/doc/net-snmp/html/snprintf_8c-source.html
+file build/$(MACH32)/docs/html/stash__cache_8c-source.html path=usr/share/doc/net-snmp/html/stash__cache_8c-source.html
+file build/$(MACH32)/docs/html/stash__cache_8h-source.html path=usr/share/doc/net-snmp/html/stash__cache_8h-source.html
+file build/$(MACH32)/docs/html/stash__to__next_8c-source.html path=usr/share/doc/net-snmp/html/stash__to__next_8c-source.html
+file build/$(MACH32)/docs/html/stash__to__next_8h-source.html path=usr/share/doc/net-snmp/html/stash__to__next_8h-source.html
+file build/$(MACH32)/docs/html/strlcpy_8c-source.html path=usr/share/doc/net-snmp/html/strlcpy_8c-source.html
+file build/$(MACH32)/docs/html/strtok__r_8c-source.html path=usr/share/doc/net-snmp/html/strtok__r_8c-source.html
+file build/$(MACH32)/docs/html/strtol_8c-source.html path=usr/share/doc/net-snmp/html/strtol_8c-source.html
+file build/$(MACH32)/docs/html/strtoul_8c-source.html path=usr/share/doc/net-snmp/html/strtoul_8c-source.html
+file build/$(MACH32)/docs/html/structiterator__info__s.html path=usr/share/doc/net-snmp/html/structiterator__info__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__agent__request__info__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__agent__request__info__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__column__info__t.html path=usr/share/doc/net-snmp/html/structnetsnmp__column__info__t.html
+file build/$(MACH32)/docs/html/structnetsnmp__data__list__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__data__list__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__handler__registration__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__handler__registration__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__iterator__info__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__iterator__info__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__mib__handler__access__methods.html path=usr/share/doc/net-snmp/html/structnetsnmp__mib__handler__access__methods.html
+file build/$(MACH32)/docs/html/structnetsnmp__mib__handler__methods.html path=usr/share/doc/net-snmp/html/structnetsnmp__mib__handler__methods.html
+file build/$(MACH32)/docs/html/structnetsnmp__mib__handler__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__mib__handler__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__monitor__callback__header__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__monitor__callback__header__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__request__info__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__request__info__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__table__registration__info__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__table__registration__info__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__table__request__info__s.html path=usr/share/doc/net-snmp/html/structnetsnmp__table__request__info__s.html
+file build/$(MACH32)/docs/html/structsnmp__pdu.html path=usr/share/doc/net-snmp/html/structsnmp__pdu.html
+file build/$(MACH32)/docs/html/structsnmp__session.html path=usr/share/doc/net-snmp/html/structsnmp__session.html
+file build/$(MACH32)/docs/html/structvariable__list.html path=usr/share/doc/net-snmp/html/structvariable__list.html
+file build/$(MACH32)/docs/html/system_8c-source.html path=usr/share/doc/net-snmp/html/system_8c-source.html
+file build/$(MACH32)/docs/html/system_8h-source.html path=usr/share/doc/net-snmp/html/system_8h-source.html
+file build/$(MACH32)/docs/html/table_8c-source.html path=usr/share/doc/net-snmp/html/table_8c-source.html
+file build/$(MACH32)/docs/html/table_8h-source.html path=usr/share/doc/net-snmp/html/table_8h-source.html
+file build/$(MACH32)/docs/html/table__array_8c-source.html path=usr/share/doc/net-snmp/html/table__array_8c-source.html
+file build/$(MACH32)/docs/html/table__array_8h-source.html path=usr/share/doc/net-snmp/html/table__array_8h-source.html
+file build/$(MACH32)/docs/html/table__container_8c-source.html path=usr/share/doc/net-snmp/html/table__container_8c-source.html
+file build/$(MACH32)/docs/html/table__container_8h-source.html path=usr/share/doc/net-snmp/html/table__container_8h-source.html
+file build/$(MACH32)/docs/html/table__data_8c-source.html path=usr/share/doc/net-snmp/html/table__data_8c-source.html
+file build/$(MACH32)/docs/html/table__data_8h-source.html path=usr/share/doc/net-snmp/html/table__data_8h-source.html
+file build/$(MACH32)/docs/html/table__dataset_8c-source.html path=usr/share/doc/net-snmp/html/table__dataset_8c-source.html
+file build/$(MACH32)/docs/html/table__dataset_8h-source.html path=usr/share/doc/net-snmp/html/table__dataset_8h-source.html
+file build/$(MACH32)/docs/html/table__generic_8c-source.html path=usr/share/doc/net-snmp/html/table__generic_8c-source.html
+file build/$(MACH32)/docs/html/table__iterator_8c-source.html path=usr/share/doc/net-snmp/html/table__iterator_8c-source.html
+file build/$(MACH32)/docs/html/table__iterator_8h-source.html path=usr/share/doc/net-snmp/html/table__iterator_8h-source.html
+file build/$(MACH32)/docs/html/table__iterator_8h.html path=usr/share/doc/net-snmp/html/table__iterator_8h.html
+file build/$(MACH32)/docs/html/table__row_8c-source.html path=usr/share/doc/net-snmp/html/table__row_8c-source.html
+file build/$(MACH32)/docs/html/table__tdata_8c-source.html path=usr/share/doc/net-snmp/html/table__tdata_8c-source.html
+file build/$(MACH32)/docs/html/table__tdata_8h-source.html path=usr/share/doc/net-snmp/html/table__tdata_8h-source.html
+file build/$(MACH32)/docs/html/test__binary__array_8c-source.html path=usr/share/doc/net-snmp/html/test__binary__array_8c-source.html
+file build/$(MACH32)/docs/html/text__utils_8c-source.html path=usr/share/doc/net-snmp/html/text__utils_8c-source.html
+file build/$(MACH32)/docs/html/text__utils_8h-source.html path=usr/share/doc/net-snmp/html/text__utils_8h-source.html
+file build/$(MACH32)/docs/html/todo.html path=usr/share/doc/net-snmp/html/todo.html
+file build/$(MACH32)/docs/html/tools_8c-source.html path=usr/share/doc/net-snmp/html/tools_8c-source.html
+file build/$(MACH32)/docs/html/tools_8h-source.html path=usr/share/doc/net-snmp/html/tools_8h-source.html
+file build/$(MACH32)/docs/html/tools_8h.html path=usr/share/doc/net-snmp/html/tools_8h.html
+file build/$(MACH32)/docs/html/transform__oids_8h-source.html path=usr/share/doc/net-snmp/html/transform__oids_8h-source.html
+file build/$(MACH32)/docs/html/types_8h-source.html path=usr/share/doc/net-snmp/html/types_8h-source.html
+file build/$(MACH32)/docs/html/ucd-snmp-includes_8h-source.html path=usr/share/doc/net-snmp/html/ucd-snmp-includes_8h-source.html
+file build/$(MACH32)/docs/html/ucdDemoPublic_8c-source.html path=usr/share/doc/net-snmp/html/ucdDemoPublic_8c-source.html
+file build/$(MACH32)/docs/html/ucdDemoPublic_8h-source.html path=usr/share/doc/net-snmp/html/ucdDemoPublic_8h-source.html
+file build/$(MACH32)/docs/html/ucd__compat_8c-source.html path=usr/share/doc/net-snmp/html/ucd__compat_8c-source.html
+file build/$(MACH32)/docs/html/ucd__compat_8h-source.html path=usr/share/doc/net-snmp/html/ucd__compat_8h-source.html
+file build/$(MACH32)/docs/html/utilities_8h-source.html path=usr/share/doc/net-snmp/html/utilities_8h-source.html
+file build/$(MACH32)/docs/html/vacm_8c-source.html path=usr/share/doc/net-snmp/html/vacm_8c-source.html
+file build/$(MACH32)/docs/html/vacm_8h-source.html path=usr/share/doc/net-snmp/html/vacm_8h-source.html
+file build/$(MACH32)/docs/html/var__struct_8h-source.html path=usr/share/doc/net-snmp/html/var__struct_8h-source.html
+file build/$(MACH32)/docs/html/varbind__api_8h-source.html path=usr/share/doc/net-snmp/html/varbind__api_8h-source.html
+file build/$(MACH32)/docs/html/version_8h-source.html path=usr/share/doc/net-snmp/html/version_8h-source.html
+file build/$(MACH32)/docs/html/watched_8c-example.html path=usr/share/doc/net-snmp/html/watched_8c-example.html
+file build/$(MACH32)/docs/html/watched_8c-source.html path=usr/share/doc/net-snmp/html/watched_8c-source.html
+file build/$(MACH32)/docs/html/watched_8h-source.html path=usr/share/doc/net-snmp/html/watched_8h-source.html
+file build/$(MACH32)/docs/html/watcher_8c-source.html path=usr/share/doc/net-snmp/html/watcher_8c-source.html
+file build/$(MACH32)/docs/html/watcher_8h-source.html path=usr/share/doc/net-snmp/html/watcher_8h-source.html
+file build/$(MACH32)/docs/html/winpipe_8c-source.html path=usr/share/doc/net-snmp/html/winpipe_8c-source.html
+file build/$(MACH32)/docs/html/winpipe_8h-source.html path=usr/share/doc/net-snmp/html/winpipe_8h-source.html
+file build/$(MACH32)/docs/html/winservice_8c-source.html path=usr/share/doc/net-snmp/html/winservice_8c-source.html
+file build/$(MACH32)/docs/html/winservice_8h-source.html path=usr/share/doc/net-snmp/html/winservice_8h-source.html
+file path=usr/share/man/man1/encode_keychange.1
+file path=usr/share/man/man1/fixproc.1
+file path=usr/share/man/man1/mib2c-update.1
+file path=usr/share/man/man1/mib2c.1
+file path=usr/share/man/man1/net-snmp-config.1
+file path=usr/share/man/man1/snmpbulkget.1
+file path=usr/share/man/man1/snmpbulkwalk.1
+file path=usr/share/man/man1/snmpcmd.1
+file path=usr/share/man/man1/snmpconf.1
+file path=usr/share/man/man1/snmpdelta.1
+file path=usr/share/man/man1/snmpdf.1
+file path=usr/share/man/man1/snmpget.1
+file path=usr/share/man/man1/snmpgetnext.1
+file path=usr/share/man/man1/snmpinform.1
+file path=usr/share/man/man1/snmpnetstat.1
+file path=usr/share/man/man1/snmpset.1
+file path=usr/share/man/man1/snmptable.1
+file path=usr/share/man/man1/snmptest.1
+file path=usr/share/man/man1/snmptranslate.1
+file path=usr/share/man/man1/snmptrap.1
+file path=usr/share/man/man1/snmpusm.1
+file path=usr/share/man/man1/snmpvacm.1
+file path=usr/share/man/man1/snmpwalk.1
+file path=usr/share/man/man1/tkmib.1
+file path=usr/share/man/man1/traptoemail.1
+file path=usr/share/man/man3/add_mibdir.3
+file path=usr/share/man/man3/add_module_replacement.3
+file path=usr/share/man/man3/config_perror.3
+file path=usr/share/man/man3/config_pwarn.3
+file path=usr/share/man/man3/default_store.3
+file path=usr/share/man/man3/fprint_description.3
+file path=usr/share/man/man3/fprint_objid.3
+file path=usr/share/man/man3/fprint_value.3
+file path=usr/share/man/man3/fprint_variable.3
+file path=usr/share/man/man3/get_module_node.3
+file path=usr/share/man/man3/init_mib.3
+file path=usr/share/man/man3/init_mib_internals.3
+file path=usr/share/man/man3/mib_api.3
+file path=usr/share/man/man3/netsnmp_Container_iterator.3
+file path=usr/share/man/man3/netsnmp_agent.3
+file path=usr/share/man/man3/netsnmp_baby_steps.3
+file path=usr/share/man/man3/netsnmp_bulk_to_next.3
+file path=usr/share/man/man3/netsnmp_cache_handler.3
+file path=usr/share/man/man3/netsnmp_container.3
+file path=usr/share/man/man3/netsnmp_debug.3
+file path=usr/share/man/man3/netsnmp_ds_get_boolean.3
+file path=usr/share/man/man3/netsnmp_ds_get_int.3
+file path=usr/share/man/man3/netsnmp_ds_get_string.3
+file path=usr/share/man/man3/netsnmp_ds_register_config.3
+file path=usr/share/man/man3/netsnmp_ds_register_premib.3
+file path=usr/share/man/man3/netsnmp_ds_set_boolean.3
+file path=usr/share/man/man3/netsnmp_ds_set_int.3
+file path=usr/share/man/man3/netsnmp_ds_set_string.3
+file path=usr/share/man/man3/netsnmp_ds_shutdown.3
+file path=usr/share/man/man3/netsnmp_example_scalar_int.3
+file path=usr/share/man/man3/netsnmp_handler.3
+file path=usr/share/man/man3/netsnmp_instance.3
+file path=usr/share/man/man3/netsnmp_iterator_info_s.3
+file path=usr/share/man/man3/netsnmp_leaf.3
+file path=usr/share/man/man3/netsnmp_library.3
+file path=usr/share/man/man3/netsnmp_mib_handler_methods.3
+file path=usr/share/man/man3/netsnmp_mib_utilities.3
+file path=usr/share/man/man3/netsnmp_mode_end_call.3
+file path=usr/share/man/man3/netsnmp_multiplexer.3
+file path=usr/share/man/man3/netsnmp_old_api.3
+file path=usr/share/man/man3/netsnmp_read_only.3
+file path=usr/share/man/man3/netsnmp_row_merge.3
+file path=usr/share/man/man3/netsnmp_scalar.3
+file path=usr/share/man/man3/netsnmp_scalar_group_group.3
+file path=usr/share/man/man3/netsnmp_serialize.3
+file path=usr/share/man/man3/netsnmp_stash_cache.3
+file path=usr/share/man/man3/netsnmp_table.3
+file path=usr/share/man/man3/netsnmp_table_array.3
+file path=usr/share/man/man3/netsnmp_table_data.3
+file path=usr/share/man/man3/netsnmp_table_dataset.3
+file path=usr/share/man/man3/netsnmp_table_iterator.3
+file path=usr/share/man/man3/netsnmp_utilities.3
+file path=usr/share/man/man3/netsnmp_watcher.3
+file path=usr/share/man/man3/print_description.3
+file path=usr/share/man/man3/print_mib.3
+file path=usr/share/man/man3/print_objid.3
+file path=usr/share/man/man3/print_value.3
+file path=usr/share/man/man3/print_variable.3
+file path=usr/share/man/man3/read_all_mibs.3
+file path=usr/share/man/man3/read_config.3
+file path=usr/share/man/man3/read_config_print_usage.3
+file path=usr/share/man/man3/read_configs.3
+file path=usr/share/man/man3/read_mib.3
+file path=usr/share/man/man3/read_module.3
+file path=usr/share/man/man3/read_module_node.3
+file path=usr/share/man/man3/read_objid.3
+file path=usr/share/man/man3/read_premib_configs.3
+file path=usr/share/man/man3/register_app_config_handler.3
+file path=usr/share/man/man3/register_app_premib_handler.3
+file path=usr/share/man/man3/register_config_handler.3
+file path=usr/share/man/man3/register_mib_handlers.3
+file path=usr/share/man/man3/register_premib_handler.3
+file path=usr/share/man/man3/send_easy_trap.3
+file path=usr/share/man/man3/send_trap_vars.3
+file path=usr/share/man/man3/send_v2trap.3
+file path=usr/share/man/man3/shutdown_mib.3
+file path=usr/share/man/man3/snmp_agent_api.3
+file path=usr/share/man/man3/snmp_alarm.3
+file path=usr/share/man/man3/snmp_alarm_register.3
+file path=usr/share/man/man3/snmp_alarm_register_hr.3
+file path=usr/share/man/man3/snmp_alarm_unregister.3
+file path=usr/share/man/man3/snmp_api.3
+file path=usr/share/man/man3/snmp_api_errstring.3
+file path=usr/share/man/man3/snmp_close.3
+file path=usr/share/man/man3/snmp_error.3
+file path=usr/share/man/man3/snmp_free_pdu.3
+file path=usr/share/man/man3/snmp_open.3
+file path=usr/share/man/man3/snmp_perror.3
+file path=usr/share/man/man3/snmp_read.3
+file path=usr/share/man/man3/snmp_select_info.3
+file path=usr/share/man/man3/snmp_send.3
+file path=usr/share/man/man3/snmp_sess_api.3
+file path=usr/share/man/man3/snmp_sess_async_send.3
+file path=usr/share/man/man3/snmp_sess_close.3
+file path=usr/share/man/man3/snmp_sess_error.3
+file path=usr/share/man/man3/snmp_sess_init.3
+file path=usr/share/man/man3/snmp_sess_open.3
+file path=usr/share/man/man3/snmp_sess_perror.3
+file path=usr/share/man/man3/snmp_sess_read.3
+file path=usr/share/man/man3/snmp_sess_select_info.3
+file path=usr/share/man/man3/snmp_sess_send.3
+file path=usr/share/man/man3/snmp_sess_session.3
+file path=usr/share/man/man3/snmp_sess_timeout.3
+file path=usr/share/man/man3/snmp_set_mib_warnings.3
+file path=usr/share/man/man3/snmp_set_save_descriptions.3
+file path=usr/share/man/man3/snmp_timeout.3
+file path=usr/share/man/man3/snmp_trap_api.3
+file path=usr/share/man/man3/snprint_objid.3
+file path=usr/share/man/man3/snprint_value.3
+file path=usr/share/man/man3/snprint_variable.3
+file path=usr/share/man/man3/sprint_realloc_objid.3
+file path=usr/share/man/man3/sprint_realloc_value.3
+file path=usr/share/man/man3/sprint_realloc_variable.3
+file path=usr/share/man/man3/unregister_app_config_handler.3
+file path=usr/share/man/man3/unregister_config_handler.3
+file path=usr/share/man/man5/mib2c.conf.5
+file path=usr/share/man/man5/snmp.conf.5
+file path=usr/share/man/man5/snmp_config.5
+file path=usr/share/man/man5/snmpd.conf.5
+file path=usr/share/man/man5/snmpd.examples.5
+file path=usr/share/man/man5/snmpd.internal.5
+file path=usr/share/man/man5/snmptrapd.conf.5
+file path=usr/share/man/man5/variables.5
+file path=usr/share/man/man8/snmpd.8
+file path=usr/share/man/man8/snmptrapd.8
+legacy pkg=SUNWnet-snmp-doc \
+	name="Net-SNMP Agent manpages and html documentation files" \
+	desc="Net-SNMP Agent manpages and html documentation files (5.4.1)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/net-snmp.xml	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+    CDDL HEADER START
+   
+    The contents of this file are subject to the terms of the
+    Common Development and Distribution License (the "License").
+    You may not use this file except in compliance with the License.
+   
+    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+    or http://www.opensolaris.org/os/licensing.
+    See the License for the specific language governing permissions
+    and limitations under the License.
+   
+    When distributing Covered Code, include this CDDL HEADER in each
+    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+    If applicable, add the following below this CDDL HEADER, with the
+    fields enclosed by brackets "[]" replaced with your own identifying
+    information: Portions Copyright [yyyy] [name of copyright owner]
+   
+    CDDL HEADER END
+   
+    Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+
+    NOTE:  This service description is not editable; its contents
+    may be overwritten by package or patch operations, including
+    operating system upgrade.  Make customizations in a different
+    file.
+
+    Service manifest for the net-snmp daemon
+-->
+
+<service_bundle type='manifest' name='SUNWnet-snmp-core:net-snmp'>
+
+<service
+	name='application/management/net-snmp'
+	type='service'
+	version='1'>
+
+	<create_default_instance enabled='false' />
+
+	<single_instance />
+
+	<dependency
+		name='milestone'
+		grouping='require_all'
+		restart_on='none'
+		type='service'> 
+		<service_fmri value='svc:/milestone/sysconfig' />
+	</dependency>
+
+	<!-- Need / & /usr filesystems mounted, /var mounted read/write -->
+	<dependency
+		name='fs-local'
+		type='service'
+		grouping='require_all'
+		restart_on='none'>
+			<service_fmri value='svc:/system/filesystem/local' />
+	</dependency>
+
+	<dependency
+		name='name-services'
+		grouping='optional_all'
+		restart_on='none'
+		type='service'>
+		<service_fmri value='svc:/milestone/name-services' />
+	</dependency>
+
+	<dependency
+		name='system-log'
+		grouping='optional_all'
+		restart_on='none'
+		type='service'>
+		<service_fmri value='svc:/system/system-log' />
+	</dependency>
+
+	<dependency
+		name='rstat'
+		grouping='optional_all'
+		restart_on='none'
+		type='service'>
+		<service_fmri value='svc:/network/rpc/rstat' />
+	</dependency>
+
+	<dependency name='cryptosvc'
+		grouping='require_all'
+		restart_on='restart'
+		type='service'>
+			<service_fmri value='svc:/system/cryptosvc' />
+	</dependency>
+
+	<dependency
+		name='network'
+		grouping='require_all'
+		restart_on='restart'
+		type='service'>
+			<service_fmri value='svc:/milestone/network' />
+	</dependency>
+
+	<dependency
+		name='config-file'
+		grouping='require_all'
+		restart_on='refresh'
+		type='path'>
+			<service_fmri 
+			   value='file://localhost/etc/net-snmp/snmp/snmpd.conf' />
+	</dependency>
+
+	<exec_method
+        	type='method'
+		name='start'
+		exec='/lib/svc/method/svc-net-snmp'
+		timeout_seconds='60'>
+	</exec_method>
+
+	<exec_method
+       type='method'
+	   name='stop'
+	   exec=':kill'
+	   timeout_seconds='60'>
+	</exec_method>
+
+	<exec_method
+	   type='method'
+	   name='refresh'
+	   exec=':kill -HUP'
+	   timeout_seconds='60'>
+	</exec_method>
+
+	<property_group name='general' type='framework'>
+		<!-- to start/stop net-snmp -->
+		<propval name='action_authorization' type='astring'
+			value='solaris.smf.manage.net-snmp' />
+		<propval name='value_authorization' type='astring'
+			value='solaris.smf.manage.net-snmp' />
+		<propval name='arch_type' type='integer' value='0' />
+	</property_group>
+	
+	<stability value='Unstable' />
+
+	<template>
+		<common_name>
+			<loctext xml:lang='C'>
+			net-snmp SNMP daemon
+			</loctext>
+		</common_name>
+
+		<documentation>
+			<manpage title='snmpd' section='8' 
+			    manpath='/usr/share/man/' />
+		</documentation>
+
+	</template>
+
+</service>
+
+</service_bundle>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/001.scapi.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,31 @@
+--- net-snmp-5.4.1/snmplib/scapi.c	Fri Sep 15 05:47:01 2006
++++ net-snmp-5.4.1.mod/snmplib/scapi.c	Sat Jul  4 02:58:34 2009
[email protected]@ -406,11 +406,11 @@
+     int            rval = SNMPERR_SUCCESS;
+ #endif
+     int            ret;
++    unsigned int   tmp_len;
+ 
+ #ifdef NETSNMP_USE_OPENSSL
+     const EVP_MD   *hashfn;
+     EVP_MD_CTX     ctx, *cptr;
+-    unsigned int   tmp_len;
+ #endif
+ 
+     DEBUGTRACE;
[email protected]@ -479,13 +479,11 @@
+ 
+ #ifndef NETSNMP_DISABLE_MD5
+     if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
+-	rval = pkcs_digest(CKM_MD5, buf, buf_len, MAC, &tmp_len);
+-        *MAC_len = tmp_len;
++	rval = pkcs_digest(CKM_MD5, buf, buf_len, MAC, MAC_len);
+     } else
+ #endif
+         if (ISTRANSFORM(hashtype, HMACSHA1Auth)) {
+-	rval = pkcs_digest(CKM_SHA_1, buf, buf_len, MAC, &tmp_len);
+-        *MAC_len = tmp_len;
++	rval = pkcs_digest(CKM_SHA_1, buf, buf_len, MAC, MAC_len);
+     } else {
+         return (SNMPERR_GENERR);
+     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/002.pkcs.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,31 @@
+--- net-snmp-5.4.1/snmplib/pkcs.c	Tue Nov  6 02:00:04 2007
++++ net-snmp-5.4.1/snmplib/pkcs.mod.c	Tue Nov  6 01:58:30 2007
[email protected]@ -1,5 +1,5 @@
+ /*
+- * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
++ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+  * Use is subject to license terms specified in the COPYING file
+  * distributed with the Net-SNMP package.
+  */
[email protected]@ -107,10 +107,12 @@
+ {
+     int            slotcount, i;
+ 
++    (void) C_Finalize(NULL);
++
+     if (pSlot != NULL) {
+         slotcount = pSlot->count;
+         for (i = 0; i < slotcount; i++) {
+-            if (pSlot->pSession->hdl != NULL) {
++            if (pSlot->pSession != NULL) {
+                 free(pSlot->pSession->hdl);
+             }
+         }
[email protected]@ -117,7 +119,6 @@
+         free(pSlot);
+     }
+ 
+-    (void) C_Finalize(NULL);
+     return 0;
+ }
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/003.solaris-ip-mib.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,491 @@
+--- net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c	(revision 0)
++++ net-snmp-5.4.1-patch/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c	(revision 0)
[email protected]@ -0,0 +1,199 @@
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <net-snmp/agent/net-snmp-agent-includes.h>
++#include <net-snmp/data_access/ipstats.h>
++#include <net-snmp/data_access/systemstats.h>
++
++#include "kernel_sunos5.h"
++
++static int _systemstats(mibgroup_e, netsnmp_container *, u_int);
++static void _add_ipstats(mib2_ipIfStatsEntry_t *, mib2_ipIfStatsEntry_t *);
++static int _insert_entry(netsnmp_container *, mib2_ipIfStatsEntry_t *);
++
++void
++netsnmp_access_systemstats_arch_init(void)
++{
++    init_kernel_sunos5();
++}
++
++/*
++ * @retval  0 success
++ * @retval -1 container error
++ * @retval -2 could not create entry (probably malloc)
++ */
++int
++netsnmp_access_systemstats_container_arch_load(netsnmp_container* container,
++                                             u_int load_flags)
++{
++    int rc; 
++    
++    if (container == NULL)
++        return (-1);
++
++    if ((rc = _systemstats(MIB_IP_TRAFFIC_STATS, container, load_flags)) < 0)
++        return (rc);
++#if defined(NETSNMP_ENABLE_IPV6)
++    if ((rc = _systemstats(MIB_IP6, container, load_flags)) < 0) {
++            netsnmp_access_systemstats_container_free(container,
++                NETSNMP_ACCESS_SYSTEMSTATS_FREE_NOFLAGS);
++        return (rc);
++    }
++#endif
++    return (0);
++}
++
++/*
++ * @retval 0 success 
++ * @retval <0 error
++ */
++static int
++_systemstats(mibgroup_e mib, netsnmp_container *container, u_int load_flags)
++{
++    mib2_ipIfStatsEntry_t ipe, iptot;
++    req_e req = GET_FIRST;
++    int ipversion = (mib == MIB_IP6) ? MIB2_INETADDRESSTYPE_ipv6 :
++                                       MIB2_INETADDRESSTYPE_ipv4;
++    bzero((void *)&iptot, sizeof(iptot));
++
++    while (getMibstat(mib, &ipe, sizeof(ipe), req, 
++                      &Get_everything, NULL) == 0) { 
++        req = GET_NEXT;
++        netsnmp_assert(ipe.ipIfStatsIPVersion == ipversion);
++        _add_ipstats(&iptot, &ipe);
++    }
++    iptot.ipIfStatsIPVersion = ipversion;
++    return _insert_entry(container, &iptot);
++}
++
++static void
++_add_ipstats(mib2_ipIfStatsEntry_t *o1, mib2_ipIfStatsEntry_t *o2)
++{
++    o1->ipIfStatsInHdrErrors += o2->ipIfStatsInHdrErrors;
++    o1->ipIfStatsInTooBigErrors += o2->ipIfStatsInTooBigErrors;
++    o1->ipIfStatsInNoRoutes += o2->ipIfStatsInNoRoutes;
++    o1->ipIfStatsInAddrErrors += o2->ipIfStatsInAddrErrors;
++    o1->ipIfStatsInUnknownProtos += o2->ipIfStatsInUnknownProtos;
++    o1->ipIfStatsInTruncatedPkts += o2->ipIfStatsInTruncatedPkts;
++    o1->ipIfStatsInDiscards += o2->ipIfStatsInDiscards;
++    o1->ipIfStatsOutDiscards += o2->ipIfStatsOutDiscards;
++    o1->ipIfStatsOutFragOKs += o2->ipIfStatsOutFragOKs;
++    o1->ipIfStatsOutFragFails += o2->ipIfStatsOutFragFails;
++    o1->ipIfStatsOutFragCreates += o2->ipIfStatsOutFragCreates;
++    o1->ipIfStatsReasmReqds += o2->ipIfStatsReasmReqds;
++    o1->ipIfStatsReasmOKs += o2->ipIfStatsReasmOKs;
++    o1->ipIfStatsReasmFails += o2->ipIfStatsReasmFails;
++    o1->ipIfStatsOutNoRoutes += o2->ipIfStatsOutNoRoutes;
++    o1->ipIfStatsReasmDuplicates += o2->ipIfStatsReasmDuplicates;
++    o1->ipIfStatsReasmPartDups += o2->ipIfStatsReasmPartDups;
++    o1->ipIfStatsForwProhibits += o2->ipIfStatsForwProhibits;
++    o1->udpInCksumErrs += o2->udpInCksumErrs;
++    o1->udpInOverflows += o2->udpInOverflows;
++    o1->rawipInOverflows += o2->rawipInOverflows;
++    o1->ipIfStatsInWrongIPVersion += o2->ipIfStatsInWrongIPVersion;
++    o1->ipIfStatsOutWrongIPVersion += o2->ipIfStatsOutWrongIPVersion;
++    o1->ipIfStatsOutSwitchIPVersion += o2->ipIfStatsOutSwitchIPVersion;
++    o1->ipIfStatsHCInReceives += o2->ipIfStatsHCInReceives;
++    o1->ipIfStatsHCInOctets += o2->ipIfStatsHCInOctets;
++    o1->ipIfStatsHCInForwDatagrams += o2->ipIfStatsHCInForwDatagrams;
++    o1->ipIfStatsHCInDelivers += o2->ipIfStatsHCInDelivers;
++    o1->ipIfStatsHCOutRequests += o2->ipIfStatsHCOutRequests;
++    o1->ipIfStatsHCOutForwDatagrams += o2->ipIfStatsHCOutForwDatagrams;
++    o1->ipIfStatsOutFragReqds += o2->ipIfStatsOutFragReqds;
++    o1->ipIfStatsHCOutTransmits += o2->ipIfStatsHCOutTransmits;
++    o1->ipIfStatsHCOutOctets += o2->ipIfStatsHCOutOctets;
++    o1->ipIfStatsHCInMcastPkts += o2->ipIfStatsHCInMcastPkts;
++    o1->ipIfStatsHCInMcastOctets += o2->ipIfStatsHCInMcastOctets;
++    o1->ipIfStatsHCOutMcastPkts += o2->ipIfStatsHCOutMcastPkts;
++    o1->ipIfStatsHCOutMcastOctets += o2->ipIfStatsHCOutMcastOctets;
++    o1->ipIfStatsHCInBcastPkts += o2->ipIfStatsHCInBcastPkts;
++    o1->ipIfStatsHCOutBcastPkts += o2->ipIfStatsHCOutBcastPkts;
++    o1->ipsecInSucceeded += o2->ipsecInSucceeded;
++    o1->ipsecInFailed += o2->ipsecInFailed;
++    o1->ipInCksumErrs += o2->ipInCksumErrs;
++    o1->tcpInErrs += o2->tcpInErrs;
++    o1->udpNoPorts += o2->udpNoPorts;
++}
++
++/*
++ * @retval 0 entry was successfully inserted in the container 
++ * @retval -1 container error
++ * @retval -2 memory allocation error
++ */
++static int 
++_insert_entry(netsnmp_container *container, mib2_ipIfStatsEntry_t *ipe)
++{
++    netsnmp_systemstats_entry *ep =
++        netsnmp_access_systemstats_entry_create(ipe->ipIfStatsIPVersion); 
++
++    DEBUGMSGTL(("access:systemstats:arch", "insert entry for v%d\n",
++                ipe->ipIfStatsIPVersion)); 
++    if (ep == NULL) {
++        DEBUGMSGT(("access:systemstats:arch", "insert failed (alloc)"));
++        return (-2);
++    }
++
++    ep->stats.HCInReceives.low = 
++        ipe->ipIfStatsHCInReceives & 0xffffffff;
++    ep->stats.HCInReceives.high = ipe->ipIfStatsHCInReceives >> 32;
++    ep->stats.HCInOctets.low = 
++        ipe->ipIfStatsHCInOctets & 0xffffffff;
++    ep->stats.HCInOctets.high = ipe->ipIfStatsHCInOctets >> 32;
++    ep->stats.InHdrErrors = ipe->ipIfStatsInHdrErrors;
++    ep->stats.InAddrErrors = ipe->ipIfStatsInAddrErrors;
++    ep->stats.InUnknownProtos = ipe->ipIfStatsInUnknownProtos;
++    ep->stats.InTruncatedPkts = ipe->ipIfStatsInTruncatedPkts;
++    ep->stats.HCInForwDatagrams.low = 
++        ipe->ipIfStatsHCInForwDatagrams & 0xffffffff;
++    ep->stats.HCInForwDatagrams.high = 
++        ipe->ipIfStatsHCInForwDatagrams >> 32;
++    ep->stats.ReasmReqds = ipe->ipIfStatsReasmReqds; 
++    ep->stats.ReasmOKs = ipe->ipIfStatsReasmOKs; 
++    ep->stats.ReasmFails = ipe->ipIfStatsReasmFails; 
++    ep->stats.InDiscards = ipe->ipIfStatsInDiscards;
++    ep->stats.HCInDelivers.low = 
++        ipe->ipIfStatsHCInDelivers & 0xffffffff; 
++    ep->stats.HCInDelivers.high = 
++        ipe->ipIfStatsHCInDelivers >> 32; 
++    ep->stats.HCOutRequests.low = 
++        ipe->ipIfStatsHCOutRequests & 0xffffffff;
++    ep->stats.HCOutRequests.high = 
++        ipe->ipIfStatsHCOutRequests >> 32; 
++    ep->stats.OutNoRoutes = ipe->ipIfStatsOutNoRoutes; 
++    ep->stats.HCOutForwDatagrams.low = 
++        ipe->ipIfStatsHCOutForwDatagrams & 0xffffffff;
++    ep->stats.HCOutForwDatagrams.high = 
++        ipe->ipIfStatsHCOutForwDatagrams >> 32;
++    ep->stats.OutDiscards = ipe->ipIfStatsOutDiscards; 
++    ep->stats.OutFragOKs = ipe->ipIfStatsOutFragOKs; 
++    ep->stats.OutFragFails = ipe->ipIfStatsOutFragFails; 
++    ep->stats.OutFragCreates = ipe->ipIfStatsOutFragCreates; 
++    ep->stats.HCOutTransmits.low = 
++        ipe->ipIfStatsHCOutTransmits & 0xffffffff;
++    ep->stats.HCOutTransmits.high = ipe->ipIfStatsHCOutTransmits >> 32;
++    ep->stats.HCOutOctets.low = ipe->ipIfStatsHCOutOctets & 0xffffffff;
++    ep->stats.HCOutOctets.high = ipe->ipIfStatsHCOutOctets >> 32;
++    ep->stats.HCInMcastPkts.low = ipe->ipIfStatsHCInMcastPkts & 0xffffffff;
++    ep->stats.HCInMcastPkts.high = ipe->ipIfStatsHCInMcastPkts >> 32;
++    ep->stats.HCInMcastOctets.low = 
++        ipe->ipIfStatsHCInMcastOctets & 0xffffffff;
++    ep->stats.HCInMcastOctets.high = ipe->ipIfStatsHCInMcastOctets >> 32;
++    ep->stats.HCOutMcastPkts.low = 
++        ipe->ipIfStatsHCOutMcastPkts & 0xffffffff;
++    ep->stats.HCOutMcastPkts.high = ipe->ipIfStatsHCOutMcastPkts >> 32;
++    ep->stats.HCOutMcastOctets.low = 
++        ipe->ipIfStatsHCOutMcastOctets & 0xffffffff;
++    ep->stats.HCOutMcastOctets.high = ipe->ipIfStatsHCOutMcastOctets >> 32;
++    ep->stats.HCInBcastPkts.low = ipe->ipIfStatsHCInBcastPkts & 0xffffffff;
++    ep->stats.HCInBcastPkts.high = ipe->ipIfStatsHCInBcastPkts >> 32;
++    ep->stats.HCOutBcastPkts.low = 
++        ipe->ipIfStatsHCOutBcastPkts & 0xffffffff;
++    ep->stats.HCOutBcastPkts.high = ipe->ipIfStatsHCOutBcastPkts >> 32;
++
++    if (CONTAINER_INSERT(container, ep) < 0) {
++        DEBUGMSGT(("access:systemstats:arch", "unable to insert entry")); 
++        netsnmp_access_systemstats_entry_free(ep); 
++        return (-1);
++    }
++    return (0);
++}
+--- net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c	(revision 0)
++++ net-snmp-5.4.1-patch/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c	(revision 0)
[email protected]@ -0,0 +1,286 @@
++/*
++ *  IP-MIB architecture support
++ *
++ */
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <net-snmp/agent/net-snmp-agent-includes.h>
++#include <net-snmp/data_access/ipaddress.h>
++#include <net-snmp/data_access/interface.h>
++
++#include "ip-mib/ipAddressTable/ipAddressTable_constants.h"
++
++#include "kernel_sunos5.h"
++#include "mibII/mibII_common.h"
++
++static int _load_v4(netsnmp_container *container, int idx_offset);
++#if defined( NETSNMP_ENABLE_IPV6 )
++static int _load_v6(netsnmp_container *container, int idx_offset);
++#endif
++
++/*
++ * initialize arch specific storage
++ *
++ * @retval  0: success
++ * @retval <0: error
++ */
++int
++netsnmp_arch_ipaddress_entry_init(netsnmp_ipaddress_entry *entry)
++{
++    init_kernel_sunos5();
++    return 0;
++}
++
++/*
++ * cleanup arch specific storage
++ */
++void
++netsnmp_arch_ipaddress_entry_cleanup(netsnmp_ipaddress_entry *entry)
++{
++    /*
++     * Nothing to do.
++     */
++}
++
++/*
++ * copy arch specific storage
++ */
++int
++netsnmp_arch_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
++                                  netsnmp_ipaddress_entry *rhs)
++{
++    /*
++     * Nothing to do. 
++     */
++    return 0;
++}
++
++/*
++ * create a new entry
++ */
++int
++netsnmp_arch_ipaddress_create(netsnmp_ipaddress_entry *entry)
++{
++    if (NULL == entry)
++        return -1;
++
++    DEBUGMSGT(("access:ipaddress:create", "not applicable\n"));
++        return 0;
++}
++
++/*
++ * delete an entry
++ */
++int
++netsnmp_arch_ipaddress_delete(netsnmp_ipaddress_entry *entry)
++{
++    if (NULL == entry)
++        return -1;
++
++    DEBUGMSGT(("access:ipaddress:create", "not applicable\n"));
++    return 0;
++}
++
++/**
++ *
++ * @retval  0 no errors
++ * @retval !0 errors
++ */
++int
++netsnmp_arch_ipaddress_container_load(netsnmp_container *container,
++                                      u_int load_flags)
++{
++    int rc = 0, idx_offset = 0;
++
++    if (!(load_flags & NETSNMP_ACCESS_IPADDRESS_LOAD_IPV6_ONLY)) {
++        rc = _load_v4(container, idx_offset);
++        if(rc < 0) {
++            u_int flags = NETSNMP_ACCESS_IPADDRESS_FREE_KEEP_CONTAINER;
++            netsnmp_access_ipaddress_container_free(container, flags);
++        }
++    }
++
++#if defined( NETSNMP_ENABLE_IPV6 )
++
++    if (!(load_flags & NETSNMP_ACCESS_IPADDRESS_LOAD_IPV4_ONLY)) {
++        if (rc < 0)
++            rc = 0;
++
++        idx_offset = rc;
++
++        rc = _load_v6(container, idx_offset);
++        if(rc < 0) {
++            u_int flags = NETSNMP_ACCESS_IPADDRESS_FREE_KEEP_CONTAINER;
++            netsnmp_access_ipaddress_container_free(container, flags);
++        }
++    }
++#endif
++
++    /*
++     * return no errors (0) if we found any interfaces
++     */
++    if(rc > 0)
++        rc = 0;
++    return rc;
++}
++
++/*
++ * @retval >=idx_offset ok
++ * @retval -1 memory allocation error
++ * @retval -2 interface lookup error
++ * @retval -3 container error
++ */
++static int
++_load_v4(netsnmp_container *container, int idx_offset)
++{
++    mib2_ipAddrEntry_t      ipae;
++    netsnmp_ipaddress_entry *entry;
++    req_e                   req = GET_FIRST;
++    int                     rc = 0;
++
++    DEBUGMSGTL(("access:ipaddress:container", "loading v4\n"));
++    while ((rc = getMibstat(MIB_IP_ADDR, &ipae, sizeof(ipae), req,
++                            &Get_everything, NULL)) == 0) {
++        req = GET_NEXT;
++        entry = netsnmp_access_ipaddress_entry_create();
++        if (entry == NULL)
++            return (-1);    
++        if (ipae.ipAdEntAddr == INADDR_ANY)
++            continue;
++
++        ipae.ipAdEntIfIndex.o_bytes[ipae.ipAdEntIfIndex.o_length] = '\0';
++        DEBUGMSGTL(("access:ipaddress:container", "found if %s\n",
++                    ipae.ipAdEntIfIndex.o_bytes));
++        /* Obtain interface index */
++        entry->if_index = 
++            netsnmp_access_interface_index_find(ipae.ipAdEntIfIndex.o_bytes);
++        if (entry->if_index == 0) {
++            DEBUGMSGTL(("access:ipaddress:container", "cannot find if %s\n",
++                        ipae.ipAdEntIfIndex));
++            netsnmp_access_ipaddress_entry_free(entry);
++            return (-2);    
++        }
++
++        if (strchr((const char *)&ipae.ipAdEntIfIndex.o_bytes, ':') != 0)
++            entry->flags |= NETSNMP_ACCESS_IPADDRESS_ISALIAS;
++
++        /* Get the address */
++        entry->ia_address_len = sizeof(ipae.ipAdEntAddr);
++        netsnmp_assert(entry->ia_address_len == 4 &&
++            entry->ia_address_len <= sizeof(entry->ia_address));
++        memcpy(&entry->ia_address, &ipae.ipAdEntAddr, entry->ia_address_len);
++
++        /* prefix */
++        entry->ia_prefix_len = ipae.ipAdEntInfo.ae_subnet_len;
++
++        /* set the Origin */
++        if (ipae.ipAdEntInfo.ae_flags & IFF_DHCPRUNNING)
++            entry->ia_origin = IPADDRESSORIGINTC_DHCP;
++        else
++            entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
++
++        /* set ipv4 constants */
++        entry->ia_type = IPADDRESSTYPE_UNICAST;
++        entry->ia_status = IPADDRESSSTATUSTC_PREFERRED;
++
++        entry->ns_ia_index = ++idx_offset;
++
++        DEBUGMSGTL(("access:ipaddress:container", "insert if %d, addrlen %d\n", 
++                    entry->if_index, entry->ia_address_len));
++
++        if (CONTAINER_INSERT(container, entry) < 0) {
++            DEBUGMSGTL(("access:ipaddress:container", "unable to insert %s\n", 
++                        ipae.ipAdEntIfIndex.o_bytes));
++            netsnmp_access_ipaddress_entry_free(entry);
++            return (-3);
++        }
++    }
++    return (idx_offset);
++}
++
++/*
++ * @retval >=idx_offset ok
++ * @retval -1 memory allocation error
++ * @retval -2 interface lookup error
++ * @retval -3 container error
++ */
++#if defined( NETSNMP_ENABLE_IPV6 )
++static int
++_load_v6(netsnmp_container *container, int idx_offset)
++{
++    mib2_ipv6AddrEntry_t    ip6ae;
++    netsnmp_ipaddress_entry *entry;
++    req_e                   req = GET_FIRST;
++    int                     rc = 0;
++
++    DEBUGMSGTL(("access:ipaddress:container", "loading v6... cache %d\n",
++                MIB_IP6_ADDR));
++    while ((rc = getMibstat(MIB_IP6_ADDR, &ip6ae, sizeof(ip6ae), req,
++                            &Get_everything, NULL)) == 0) {
++        req = GET_NEXT;
++        entry = netsnmp_access_ipaddress_entry_create();
++        if (entry == NULL)
++            return (-1);    
++        if (bcmp((const void *)&ip6ae.ipv6AddrAddress,
++                 (const void *)&in6addr_any,
++                 sizeof (ip6ae.ipv6AddrAddress)) == 0)
++            continue;
++
++        ip6ae.ipv6AddrIfIndex.o_bytes[ip6ae.ipv6AddrIfIndex.o_length] = '\0';
++        DEBUGMSGTL(("access:ipaddress:container", "found if %s\n",
++                    ip6ae.ipv6AddrIfIndex.o_bytes));
++
++        /* Obtain interface index */
++        entry->if_index = 
++            netsnmp_access_interface_index_find(
++            ip6ae.ipv6AddrIfIndex.o_bytes);
++        if (entry->if_index == 0) {
++            DEBUGMSGTL(("access:ipaddress:container", "cannot find if %s\n", 
++                        ip6ae.ipv6AddrIfIndex.o_bytes));
++            netsnmp_access_ipaddress_entry_free(entry);
++            return (-2);    
++        }
++
++        /* Get the address */
++        entry->ia_address_len = sizeof(ip6ae.ipv6AddrAddress);
++        netsnmp_assert(entry->ia_address_len == 16 &&
++                       entry->ia_address_len <= sizeof(entry->ia_address));
++        memcpy(&entry->ia_address, &ip6ae.ipv6AddrAddress, 
++               entry->ia_address_len);
++               
++        /* prefix */
++        entry->ia_prefix_len = ip6ae.ipv6AddrPfxLength;
++
++        /* type is anycast? (mib2.h: 1 = yes, 2 = no) */
++        entry->ia_type = (ip6ae.ipv6AddrAnycastFlag == 1) ? 
++            IPADDRESSTYPE_ANYCAST : IPADDRESSTYPE_UNICAST;
++
++        /* origin (mib2.h: 1 = stateless, 2 = stateful, 3 = unknown) */
++        DEBUGMSGTL(("access:ipaddress:container", "origin %d\n", 
++                        ip6ae.ipv6AddrType));
++        if (ip6ae.ipv6AddrType == 1)
++            entry->ia_origin = IPADDRESSORIGINTC_LINKLAYER;
++        else if (ip6ae.ipv6AddrInfo.ae_flags & IFF_DHCPRUNNING)
++            entry->ia_origin = IPADDRESSORIGINTC_DHCP;
++        else
++            entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
++        
++        /* status */
++        entry->ia_status = ip6ae.ipv6AddrStatus;
++
++        entry->ns_ia_index = ++idx_offset;
++        
++        DEBUGMSGTL(("access:ipaddress:container", "insert if %d, addrlen %d\n", 
++                    entry->if_index, entry->ia_address_len));
++
++        if (CONTAINER_INSERT(container, entry) < 0) {
++            DEBUGMSGTL(("access:ipaddress:container", "unable to insert %s\n", 
++                        ip6ae.ipv6AddrIfIndex.o_bytes));
++            netsnmp_access_ipaddress_entry_free(entry);
++            return (-3);
++        }
++    }    
++    return (idx_offset);
++}
++#endif /* defined( NETSNMP_ENABLE_IPV6 ) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/004.16436.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,162 @@
+Index: net-snmp/include/net-snmp/system/solaris.h
+===================================================================
+--- net-snmp/include/net-snmp/system/solaris.h	(revision 16435)
++++ net-snmp/include/net-snmp/system/solaris.h	(revision 16436)
[email protected]@ -38,3 +38,10 @@
+ 
+ /* Solaris 7+ */
+ #define NETSNMP_DONT_USE_NLIST 1
++
++/*
++ * NEW_MIB_COMPLIANT is a define used in Solaris 10U4+ to enable additional
++ * MIB information (it affects the structs in <inet/mib2.h>
++ */ 
++ 
++#define NEW_MIB_COMPLIANT
+Index: net-snmp/configure.in
+===================================================================
+--- net-snmp/configure.in	(revision 16435)
++++ net-snmp/configure.in	(revision 16436)
[email protected]@ -1339,8 +1339,9 @@
+ AC_CHECK_TYPES([off64_t])
+ AC_CHECK_TYPES([uintptr_t, intptr_t])
+ 
+-# solaris specific type
++# solaris specific types
+ AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
++AC_CHECK_TYPES([mib2_ipIfStatsEntry_t],,,[#include <inet/mib2.h>])
+ 
+ # guess IPv6 stack type.
+ if test "x$enable_ipv6" = "xyes"; then
+Index: net-snmp/agent/mibgroup/kernel_sunos5.h
+===================================================================
+--- net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16435)
++++ net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16436)
[email protected]@ -71,7 +71,11 @@
+     MIB_TRANSMISSION = 14,
+     MIB_SNMP = 15,
+ #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
+-    MIB_IP6_ADDR = 16,
++#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
++    MIB_IP_TRAFFIC_STATS,
++#endif
++    MIB_IP6,
++    MIB_IP6_ADDR,
+     MIB_TCP6_CONN,
+     MIB_UDP6_ENDPOINT,
+ #endif
+Index: net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c
+===================================================================
+--- net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16435)
++++ net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16436)
[email protected]@ -3,9 +3,9 @@
+  */
+ #include <net-snmp/net-snmp-config.h>
+ #include <net-snmp/net-snmp-includes.h>
+-#include "mibII/mibII_common.h"
+ #include "if-mib/ifTable/ifTable_constants.h"
+ #include "kernel_sunos5.h"
++#include "mibII/mibII_common.h"
+ 
+ #include <net-snmp/agent/net-snmp-agent-includes.h>
+ 
+Index: net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h
+===================================================================
+--- net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h	(revision 16435)
++++ net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h	(revision 16436)
[email protected]@ -20,6 +20,8 @@
+ config_require(ip-mib/data_access/ipaddress_common)
+ #if defined( linux )
+ config_require(ip-mib/data_access/ipaddress_linux)
++#elif defined( solaris2 )
++config_require(ip-mib/data_access/ipaddress_solaris2)
+ #else
+ config_error(the ipaddress data access library is not available in this environment.)
+ #endif
+Index: net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h
+===================================================================
+--- net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h	(revision 16435)
++++ net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h	(revision 16436)
[email protected]@ -20,6 +20,8 @@
+ config_require(ip-mib/data_access/systemstats_common)
+ #if defined( linux )
+ config_require(ip-mib/data_access/systemstats_linux)
++#elif defined( solaris2 )
++config_require(ip-mib/data_access/systemstats_solaris2)
+ #else
+ config_error(the systemstats data access library is not available in this environment.)
+ #endif
+Index: net-snmp/agent/mibgroup/mibII.h
+===================================================================
+--- net-snmp/agent/mibgroup/mibII.h	(revision 16435)
++++ net-snmp/agent/mibgroup/mibII.h	(revision 16436)
[email protected]@ -30,3 +30,10 @@
+ #if defined( linux )
+ config_require(ip-mib ip-forward-mib tcp-mib udp-mib)
+ #endif
++
++/*
++ * For Solaris, enable additional tables when it has extended MIB support.
++ */
++#if defined( solaris2 ) && defined( HAVE_MIB2_IPIFSTATSENTRY_T )
++config_require(ip-mib/ipSystemStatsTable ip-mib/ipAddressTable)
++#endif
+Index: net-snmp/agent/mibgroup/kernel_sunos5.c
+===================================================================
+--- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16435)
++++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16436)
[email protected]@ -45,6 +45,7 @@
+ #include <kstat.h>
+ #include <errno.h>
+ #include <time.h>
++#include <ctype.h>
+ 
+ #include <sys/sockio.h>
+ #include <sys/socket.h>
[email protected]@ -103,6 +104,13 @@
+     {MIB_TRANSMISSION, 0, (void *) -1, 0, 0, 0, 0},
+     {MIB_SNMP, 0, (void *) -1, 0, 0, 0, 0},
+ #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
++#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
++    {MIB_IP_TRAFFIC_STATS, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0,
++     30, 0, 0},
++    {MIB_IP6, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
++#else
++    {MIB_IP6, 20 * sizeof(mib2_ipv6IfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
++#endif
+     {MIB_IP6_ADDR, 20 * sizeof(mib2_ipv6AddrEntry_t), (void *)-1, 0, 30, 0, 0},
+     {MIB_TCP6_CONN, 1000 * sizeof(mib2_tcp6ConnEntry_t), (void *) -1, 0, 30,
+      0, 0},
[email protected]@ -131,6 +139,10 @@
+     {MIB2_TRANSMISSION, 0,},
+     {MIB2_SNMP, 0,},
+ #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
++#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
++    {MIB2_IP, MIB2_IP_TRAFFIC_STATS},
++#endif
++    {MIB2_IP6, 0},
+     {MIB2_IP6, MIB2_IP6_ADDR},
+     {MIB2_TCP6, MIB2_TCP6_CONN},
+     {MIB2_UDP6, MIB2_UDP6_ENTRY},
[email protected]@ -343,7 +355,8 @@
+     kstat_ctl_t    *ksc;
+     kstat_t        *ks, *kstat_data;
+     kstat_named_t  *d;
+-    size_t          i, instance;
++    uint_t          i;
++    int             instance;
+     char            module_name[64];
+     int             ret;
+     u_longlong_t    val;    /* The largest value */
[email protected]@ -900,7 +913,11 @@
+     req = (struct opthdr *)(tor + 1);
+     req->level = groupname;
+     req->name = subgroupname;
++#if defined( SOLARIS_HAVE_RFC4293_SUPPORT )
++    req->len = 1; /* Used as a flag for S10 to grab extra data */
++#else
+     req->len = 0;
++#endif
+     strbuf.len = tor->OPT_length + tor->OPT_offset;
+     flags = 0;
+     if ((rc = putmsg(sd, &strbuf, NULL, flags))) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/005.16736.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,759 @@
+Index: net-snmp/agent/mibgroup/kernel_sunos5.h
+===================================================================
+--- net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16735)
++++ net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16736)
[email protected]@ -193,6 +193,8 @@
+     int             getKstatString(const char *statname, const char *varname,
+                                    char *value, size_t value_len);
+ 
++    int             solaris2_if_nametoindex(const char *, int);
++
+ #ifdef _STDC_COMPAT
+ #ifdef __cplusplus
+ }
+Index: net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c
+===================================================================
+--- net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16735)
++++ net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16736)
[email protected]@ -14,6 +14,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/sockio.h>
+ #include <strings.h>
++#include <string.h>
+ 
+ static int _set_ip_flags_v4(netsnmp_interface_entry *, mib2_ifEntry_t *);
+ static int _match_ifname_v4addr(void *ifname, void *ipaddr);
[email protected]@ -43,25 +44,7 @@
+ #if defined(HAVE_IF_NAMETOINDEX)
+     return if_nametoindex(name);
+ #else /* use GIFINDEX */
+-    int             sd;
+-    struct ifreq    ifr;
+-
+-    if (name == 0) {
+-        return (0);
+-    }
+-
+-    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+-        return (0);
+-    }
+-
+-    strncpy(ifr.ifr_name, name, IFNAMSIZ);
+-    if (ioctl(sd, SIOCGIFINDEX, (char *) &ifr) < 0) {
+-        close(sd);
+-        return (0);
+-    }
+-
+-    close(sd);
+-    return (ifr.ifr_index);
++    return solaris2_if_nametoindex(name, strlen(name));
+ #endif /* defined(HAVE_IF_NAMETOINDEX) */
+ }
+ 
+Index: net-snmp/agent/mibgroup/mibII/interfaces.c
+===================================================================
+--- net-snmp/agent/mibgroup/mibII/interfaces.c	(revision 16735)
++++ net-snmp/agent/mibgroup/mibII/interfaces.c	(revision 16736)
[email protected]@ -2245,71 +2245,7 @@
+ int
+ Interface_Index_By_Name(char *Name, int Len)
+ {
+-    int             i, sd, lastlen = 0, interfaces = 0;
+-    struct ifconf   ifc;
+-    struct ifreq   *ifrp = NULL;
+-    char           *buf = NULL;
+-
+-    if (Name == 0) {
+-        return 0;
+-    }
+-    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+-        return 0;
+-    }
+-
+-    /*
+-     * Cope with lots of interfaces and brokenness of ioctl SIOCGIFCONF
+-     * on some platforms; see W. R. Stevens, ``Unix Network Programming
+-     * Volume I'', p.435.  
+-     */
+-
+-    for (i = 8;; i += 8) {
+-        buf = calloc(i, sizeof(struct ifreq));
+-        if (buf == NULL) {
+-            close(sd);
+-            return 0;
+-        }
+-        ifc.ifc_len = i * sizeof(struct ifreq);
+-        ifc.ifc_buf = (caddr_t) buf;
+-
+-        if (ioctl(sd, SIOCGIFCONF, (char *) &ifc) < 0) {
+-            if (errno != EINVAL || lastlen != 0) {
+-                /*
+-                 * Something has gone genuinely wrong.  
+-                 */
+-                free(buf);
+-                close(sd);
+-                return 0;
+-            }
+-            /*
+-             * Otherwise, it could just be that the buffer is too small.  
+-             */
+-        } else {
+-            if (ifc.ifc_len == lastlen) {
+-                /*
+-                 * The length is the same as the last time; we're done.  
+-                 */
+-                break;
+-            }
+-            lastlen = ifc.ifc_len;
+-        }
+-        free(buf);
+-    }
+-
+-    ifrp = ifc.ifc_req;
+-    interfaces = (ifc.ifc_len / sizeof(struct ifreq)) + 1;
+-
+-    for (i = 1; i < interfaces; i++, ifrp++) {
+-        if (strncmp(ifrp->ifr_name, Name, Len) == 0) {
+-            free(buf);
+-            close(sd);
+-            return i;
+-        }
+-    }
+-
+-    free(buf);
+-    close(sd);
+-    return 0;
++    return (solaris2_if_nametoindex(Name, Len));
+ }
+ 
+ #endif                          /* solaris2 */
+Index: net-snmp/agent/mibgroup/kernel_sunos5.c
+===================================================================
+--- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16735)
++++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16736)
[email protected]@ -169,11 +169,14 @@
+ getif(mib2_ifEntry_t *ifbuf, size_t size, req_e req_type, mib2_ifEntry_t *resp,
+       size_t *length, int (*comp)(void *, void *), void *arg);
+ static void 
+-set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,int mtu);
++set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
++            int mtu);
+ static int get_if_stats(mib2_ifEntry_t *ifp);
+ 
+-static int get_phys_address(mib2_ifEntry_t *ifp);
+-static int _dlpi_phys_address(int fd, char *paddr, int maxlen, int *paddrlen);
++static int _dlpi_open(const char *devname);
++static int _dlpi_get_phys_address(int fd, char *paddr, int maxlen,
++                                  int *paddrlen);
++static int _dlpi_get_iftype(int fd, unsigned int *iftype);
+ static int _dlpi_attach(int fd, int ppa);
+ static int _dlpi_parse_devname(char *devname, int *ppap);
+ 
[email protected]@ -1047,7 +1050,7 @@
+       mib2_ifEntry_t *resp,  size_t *length, int (*comp)(void *, void *),
+       void *arg)
+ {
+-    int             i, ret;
++    int             fd, i, ret;
+     int             ifsd, ifsd6 = -1;
+     struct lifreq   lifreq, *lifrp;
+     mib2_ifEntry_t *ifp;
[email protected]@ -1109,6 +1112,15 @@
+ 
+         memset(ifp, 0, sizeof(mib2_ifEntry_t));
+ 
++        if ((fd = _dlpi_open(ifnp->if_name)) != -1) {
++            /* Could open DLPI... now try to grab some info */
++            (void) _dlpi_get_phys_address(fd, ifp->ifPhysAddress.o_bytes,
++                                sizeof(ifp->ifPhysAddress.o_bytes),
++                                &ifp->ifPhysAddress.o_length);
++            (void) _dlpi_get_iftype(fd, &ifp->ifType);
++            close(fd);
++        }
++
+         set_if_info(ifp, ifnp->if_index, ifnp->if_name, if_flags, 
+                     lifrp->lifr_metric);
+ 
[email protected]@ -1117,9 +1129,6 @@
+             continue;
+         }
+ 
+-        /* try to obtain the physical address */
+-        (void) get_phys_address(ifp);
+-
+         /*
+          * Once we reach here we know that all went well, so move to
+          * the next ifEntry. 
[email protected]@ -1294,8 +1303,11 @@
+ #endif /*defined(HAVE_IF_NAMEINDEX)&&defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)*/
+ 
+ static void
+-set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags, int mtu)
++set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
++            int mtu)
+ { 
++    boolean_t havespeed = B_FALSE;
++
+     /*
+      * Set basic information 
+      */
[email protected]@ -1307,101 +1319,122 @@
+     ifp->ifLastChange = 0;      /* Who knows ...  */
+     ifp->flags = flags;
+     ifp->ifMtu = mtu;
++    ifp->ifSpeed = 0;
+ 
+-    /* make ifOperStatus depend on link status if available */
+-    if (ifp->ifAdminStatus == 1) {
+-        int i_tmp;
+-        /* only UPed interfaces get correct link status - if any */
+-        if (getKstatInt(NULL, name,"link_up",&i_tmp) == 0) {
+-            ifp->ifOperStatus = i_tmp ? 1 : 2;
+-        }
+-    }
+-
+     /*
+-     * Set link Type and Speed
++     * Get link speed
+      */
+-    ifp->ifType = 1;
+-    ifp->ifSpeed = 0;
+-
+-    if ((getKstatInt(NULL, name, "ifspeed", &ifp->ifSpeed) == 0) &&
+-        (ifp->ifSpeed != 0)) {
++    if ((getKstatInt(NULL, name, "ifspeed", &ifp->ifSpeed) == 0)) {
+         /*
+          * check for SunOS patch with half implemented ifSpeed 
+          */
+-        if (ifp->ifSpeed < 10000) {
++        if (ifp->ifSpeed > 0 && ifp->ifSpeed < 10000) {
+             ifp->ifSpeed *= 1000000;
+         }
++	havespeed = B_TRUE;
+     } else if (getKstatInt(NULL, name, "ifSpeed", &ifp->ifSpeed) == 0) {
+         /*
+          * this is good 
+          */
++	havespeed = B_TRUE;
+     }
+ 
+-    switch (name[0]) {
+-    case 'a':          /* ath (802.11) */
+-        if (name[1] == 't' && name[2] == 'h')
+-            ifp->ifType = 71;
+-        break;
+-    case 'l':          /* le / lo / lane (ATM LAN Emulation) */
+-        if (name[1] == 'o') {
+-        if (!ifp->ifSpeed)
+-            ifp->ifSpeed = 127000000;
+-        ifp->ifType = 24;
+-        } else if (name[1] == 'e') {
+-        if (!ifp->ifSpeed)
+-            ifp->ifSpeed = 10000000;
+-        ifp->ifType = 6;
+-        } else if (name[1] == 'a') {
+-        if (!ifp->ifSpeed)
+-            ifp->ifSpeed = 155000000;
+-        ifp->ifType = 37;
+-        }
+-        break;
++    /* make ifOperStatus depend on link status if available */
++    if (ifp->ifAdminStatus == 1) {
++        int i_tmp;
++        /* only UPed interfaces get correct link status - if any */
++        if (getKstatInt(NULL, name,"link_up",&i_tmp) == 0) {
++            ifp->ifOperStatus = i_tmp ? 1 : 2;
++#ifdef IFF_FAILED
++        } else if (flags & IFF_FAILED) {
++            /*
++	     * If IPMP is used, and if the daemon marks the interface
++	     * as 'failed', then we know for sure something is amiss.
++             */
++            ifp->ifOperStatus = 2;
++#endif
++	} else if (havespeed == B_TRUE && ifp->ifSpeed == 0) {
++	    /* Heuristic */
++	    ifp->ifOperStatus = 2;
++	}
++    }
+ 
+-    case 'g':          /* ge (gigabit ethernet card)  */
+-    case 'c':          /* ce (Cassini Gigabit-Ethernet (PCI) */
+-        if (!ifp->ifSpeed)
+-        ifp->ifSpeed = 1000000000;
+-        ifp->ifType = 6;
+-        break;
+-
+-    case 'h':          /* hme (SBus card) */
+-    case 'e':          /* eri (PCI card) */
+-    case 'b':          /* be */
+-    case 'd':          /* dmfe -- found on netra X1 */
+-        if (!ifp->ifSpeed)
+-        ifp->ifSpeed = 100000000;
+-        ifp->ifType = 6;
+-        break;
+-
+-    case 'f':          /* fa (Fore ATM) */
+-        if (!ifp->ifSpeed)
+-        ifp->ifSpeed = 155000000;
+-        ifp->ifType = 37;
+-        break;
+-
+-    case 'q':         /* qe (QuadEther)/qa (Fore ATM)/qfe (QuadFastEther) */
+-        if (name[1] == 'a') {
+-        if (!ifp->ifSpeed)
+-            ifp->ifSpeed = 155000000;
+-        ifp->ifType = 37;
+-        } else if (name[1] == 'e') {
++    /*
++     * Set link Type and Speed (if it could not be determined from kstat)
++     */
++    if (ifp->ifType == 24) {
++        ifp->ifSpeed = 127000000;
++    } else if (ifp->ifType == 1 || ifp->ifType == 0) {
++        /*
++	 * Could not get the type from DLPI, so lets fall back to the hardcoded
++	 * values.
++	 */
++        switch (name[0]) {
++        case 'a':          /* ath (802.11) */
++            if (name[1] == 't' && name[2] == 'h')
++                ifp->ifType = 71;
++            break;
++        case 'l':          /* le / lo / lane (ATM LAN Emulation) */
++            if (name[1] == 'o') {
+             if (!ifp->ifSpeed)
++                ifp->ifSpeed = 127000000;
++            ifp->ifType = 24;
++            } else if (name[1] == 'e') {
++            if (!ifp->ifSpeed)
+                 ifp->ifSpeed = 10000000;
+             ifp->ifType = 6;
+-        } else if (name[1] == 'f') {
++            } else if (name[1] == 'a') {
+             if (!ifp->ifSpeed)
+-                ifp->ifSpeed = 100000000;
++                ifp->ifSpeed = 155000000;
++            ifp->ifType = 37;
++            }
++            break;
++    
++        case 'g':          /* ge (gigabit ethernet card)  */
++        case 'c':          /* ce (Cassini Gigabit-Ethernet (PCI) */
++            if (!ifp->ifSpeed)
++            ifp->ifSpeed = 1000000000;
+             ifp->ifType = 6;
++            break;
++    
++        case 'h':          /* hme (SBus card) */
++        case 'e':          /* eri (PCI card) */
++        case 'b':          /* be */
++        case 'd':          /* dmfe -- found on netra X1 */
++            if (!ifp->ifSpeed)
++            ifp->ifSpeed = 100000000;
++            ifp->ifType = 6;
++            break;
++    
++        case 'f':          /* fa (Fore ATM) */
++            if (!ifp->ifSpeed)
++            ifp->ifSpeed = 155000000;
++            ifp->ifType = 37;
++            break;
++    
++        case 'q':         /* qe (QuadEther)/qa (Fore ATM)/qfe (QuadFastEther) */
++            if (name[1] == 'a') {
++            if (!ifp->ifSpeed)
++                ifp->ifSpeed = 155000000;
++            ifp->ifType = 37;
++            } else if (name[1] == 'e') {
++                if (!ifp->ifSpeed)
++                    ifp->ifSpeed = 10000000;
++                ifp->ifType = 6;
++            } else if (name[1] == 'f') {
++                if (!ifp->ifSpeed)
++                    ifp->ifSpeed = 100000000;
++                ifp->ifType = 6;
++            }
++            break;
++    
++        case 'i':          /* ibd (Infiniband)/ip.tun (IP tunnel) */
++            if (name[1] == 'b')
++                ifp->ifType = 199;
++            else if (name[1] == 'p')
++                ifp->ifType = 131;
++            break;
+         }
+-        break;
+-
+-    case 'i':          /* ibd (Infiniband)/ip.tun (IP tunnel) */
+-        if (name[1] == 'b')
+-            ifp->ifType = 199;
+-        else if (name[1] == 'p')
+-            ifp->ifType = 131;
+-        break;
+     }
+ }
+ 
[email protected]@ -1491,68 +1524,69 @@
+ }
+ 
+ /*
+- * Obtain the physical address using DLPI. Pieces of this code is directly
+- * taken from libdlpi, which unfortunately is not yet commonly available. 
++ * Open a DLPI device.
++ *
++ * On success the file descriptor is returned.
++ * On error -1 is returned.
+  */
+-
+-static int 
+-get_phys_address(mib2_ifEntry_t *ifp)
++static int
++_dlpi_open(const char *devname)
+ {
+-    char                  *devstr;
+-    int                   fd;
+-    int                   ppa = -1;
+-    int                   rc = -1;
++    char *devstr;
++    int fd = -1;
++    int ppa = -1;
+ 
+-    DEBUGMSGTL(("kernel_sunos5", "get_phys_address called\n"));
++    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
+ 
+-    if ((devstr = malloc(5 + ifp->ifDescr.o_length + 1)) == NULL)
++    if (devname == NULL)
+         return (-1);
+-    (void) sprintf(devstr, "/dev/%s", ifp->ifDescr.o_bytes);
++
++    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
++        return (-1);
++    (void) sprintf(devstr, "/dev/%s", devname);
+     DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
+     /*
+      * First try opening the device using style 1, if the device does not
+      * exist we try style 2. Modules will not be pushed, so something like
+      * ip tunnels will not work. 
+      */
+-    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
+-        rc = _dlpi_phys_address(fd, ifp->ifPhysAddress.o_bytes,
+-                                sizeof(ifp->ifPhysAddress.o_bytes),
+-                                &ifp->ifPhysAddress.o_length);
+-    } else if (_dlpi_parse_devname(devstr, &ppa) == 0) {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
+-                    devstr, ppa));
+-        /* try style 2 */
+-        if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
+-             DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
+-             if (_dlpi_attach(fd, ppa) == 0) {
+-                 DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
+-                 rc = _dlpi_phys_address(fd, ifp->ifPhysAddress.o_bytes,
+-                                         sizeof(ifp->ifPhysAddress.o_bytes),
+-                                         &ifp->ifPhysAddress.o_length);
+-             }
+-         } 
+-     }
++   
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
++    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
++        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
++            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
++                       devstr, ppa));
++            /* try style 2 */
++            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
+ 
+-     free(devstr);
+-     if (fd != -1)
+-         close(fd);
++            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
++                if (_dlpi_attach(fd, ppa) == 0) {
++                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
++                } else {
++                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
++                    close(fd);
++                    fd = -1;
++                }
++            } else {
++                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
++            }
++        } 
++    } else {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
++    }
+ 
+-     if (rc == 0) {
+-         /* successful */        
+-         DEBUGMSGTL(("kernel_sunos5:dlpi", "got phys addr using DLPI\n"));
+-         return (0);
+-     } else {
+-         DEBUGMSGTL(("kernel_sunos5:dlpi", "unable to get phys address\n"));
+-         return (-1);
+-     }
++    /* clean up */
++    free(devstr);
++
++    return (fd);
+ }
+ 
+ /*
+- *
++ * Obtain the physical address of the interface using DLPI
+  */
+ static int
+-_dlpi_phys_address(int fd, char *addr, int maxlen, int *addrlen)
++_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
+ {
+     dl_phys_addr_req_t  paddr_req;
+     union DL_primitives *dlp;
[email protected]@ -1560,6 +1594,8 @@
+     char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
+     int                 flag = 0;
+ 
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
++
+     paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
+     paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
+     ctlbuf.buf = (char *)&paddr_req;
[email protected]@ -1570,7 +1606,7 @@
+     ctlbuf.maxlen = sizeof(buf);
+     ctlbuf.len = 0;
+     ctlbuf.buf = buf;
+-    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
++    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
+         return (-1);
+ 
+     if (ctlbuf.len < sizeof(uint32_t))
[email protected]@ -1580,6 +1616,7 @@
+     case DL_PHYS_ADDR_ACK: {
+         dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
+ 
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
+         if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
+             return (-1); 
+         (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
[email protected]@ -1589,16 +1626,137 @@
+     case DL_ERROR_ACK: {
+         dl_error_ack_t *errp = (dl_error_ack_t *)buf;
+ 
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
+         if (ctlbuf.len < DL_ERROR_ACK_SIZE)
+             return (-1);
+         return (errp->dl_errno);
+     }
+     default:
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
+         return (-1);
+     }
+ }
+ 
++/*
++ * Query the interface about it's type.
++ */
+ static int
++_dlpi_get_iftype(int fd, unsigned int *iftype)
++{
++    dl_info_req_t info_req;
++    union DL_primitives *dlp;
++    struct strbuf       ctlbuf;
++    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
++    int                 flag = 0;
++
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
++
++    info_req.dl_primitive = DL_INFO_REQ;
++    ctlbuf.buf = (char *)&info_req;
++    ctlbuf.len = DL_INFO_REQ_SIZE;
++    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
++        return (-1);
++    }
++    
++    ctlbuf.maxlen = sizeof(buf);
++    ctlbuf.len = 0;
++    ctlbuf.buf = buf;
++    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
++        return (-1);
++    }
++
++    if (ctlbuf.len < sizeof(uint32_t))
++        return (-1);
++    dlp = (union DL_primitives *)buf;
++    switch (dlp->dl_primitive) {
++    case DL_INFO_ACK: {
++        dl_info_ack_t *info = (dl_info_ack_t *)buf;
++
++        if (ctlbuf.len < DL_INFO_ACK_SIZE)
++            return (-1); 
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
++	           info->dl_mac_type));
++	switch (info->dl_mac_type) {
++	case DL_CSMACD:
++	case DL_ETHER:
++	case DL_ETH_CSMA:
++		*iftype = 6;
++		break;
++	case DL_TPB:	/* Token Passing Bus */
++		*iftype = 8;
++		break;
++	case DL_TPR:	/* Token Passing Ring */
++		*iftype = 9;
++		break;
++	case DL_HDLC:
++		*iftype = 118;
++		break;
++	case DL_FDDI:
++		*iftype = 15;
++		break;
++	case DL_FC:	/* Fibre channel */
++		*iftype = 56;
++		break;
++	case DL_ATM:
++		*iftype = 37;
++		break;
++	case DL_X25:
++	case DL_ISDN:
++		*iftype = 63;
++		break;
++	case DL_HIPPI:
++		*iftype = 47;
++		break;
++#ifdef DL_IB
++	case DL_IB:
++		*iftype = 199;
++		break;
++#endif
++	case DL_FRAME:	/* Frame Relay */
++		*iftype = 32;
++		break;
++	case DL_LOOP:
++		*iftype = 24;
++		break;
++#ifdef DL_WIFI
++	case DL_WIFI:
++		*iftype = 71;
++		break;
++#endif
++#ifdef DL_IPV4	/* then IPv6 is also defined */
++	case DL_IPV4:	/* IPv4 Tunnel */
++	case DL_IPV6:	/* IPv6 Tunnel */
++		*iftype = 131;
++		break;
++#endif
++	default:
++		*iftype = 1;	/* Other */
++		break;
++	}
++	
++        return (0);
++    }
++    case DL_ERROR_ACK: {
++        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi",
++                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
++                    errp->dl_unix_errno));
++
++        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
++            return (-1);
++        return (errp->dl_errno);
++    }
++    default:
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
++        return (-1);
++    }
++}
++
++static int
+ _dlpi_attach(int fd, int ppa)
+ {
+     dl_attach_req_t     attach_req;
[email protected]@ -1680,8 +1838,83 @@
+     } else {
+ 	return 1;
+     }
+-}	
++}
+ 
++/*
++ * Try to determine the index of a particular interface. If mfd-rewrites is
++ * specified, then this function would only be used when the system does not
++ * have if_nametoindex(3SOCKET).
++ */
++int
++solaris2_if_nametoindex(const char *Name, int Len)
++{
++    int             i, sd, lastlen = 0, interfaces = 0;
++    struct ifconf   ifc;
++    struct ifreq   *ifrp = NULL;
++    char           *buf = NULL;
++
++    if (Name == 0) {
++        return 0;
++    }
++    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
++        return 0;
++    }
++
++    /*
++     * Cope with lots of interfaces and brokenness of ioctl SIOCGIFCONF
++     * on some platforms; see W. R. Stevens, ``Unix Network Programming
++     * Volume I'', p.435.  
++     */
++
++    for (i = 8;; i += 8) {
++        buf = calloc(i, sizeof(struct ifreq));
++        if (buf == NULL) {
++            close(sd);
++            return 0;
++        }
++        ifc.ifc_len = i * sizeof(struct ifreq);
++        ifc.ifc_buf = (caddr_t) buf;
++
++        if (ioctl(sd, SIOCGIFCONF, (char *) &ifc) < 0) {
++            if (errno != EINVAL || lastlen != 0) {
++                /*
++                 * Something has gone genuinely wrong.  
++                 */
++                free(buf);
++                close(sd);
++                return 0;
++            }
++            /*
++             * Otherwise, it could just be that the buffer is too small.  
++             */
++        } else {
++            if (ifc.ifc_len == lastlen) {
++                /*
++                 * The length is the same as the last time; we're done.  
++                 */
++                break;
++            }
++            lastlen = ifc.ifc_len;
++        }
++        free(buf);
++    }
++
++    ifrp = ifc.ifc_req;
++    interfaces = (ifc.ifc_len / sizeof(struct ifreq)) + 1;
++
++    for (i = 1; i < interfaces; i++, ifrp++) {
++        if (strncmp(ifrp->ifr_name, Name, Len) == 0) {
++            free(buf);
++            close(sd);
++            return i;
++        }
++    }
++
++    free(buf);
++    close(sd);
++    return 0;
++}
++
+ #ifdef _STDC_COMPAT
+ #ifdef __cplusplus
+ }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/006.16742.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,625 @@
+Index: net-snmp/agent/mibgroup/kernel_sunos5.c
+===================================================================
+--- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16741)
++++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16742)
[email protected]@ -173,12 +173,14 @@
+             int mtu);
+ static int get_if_stats(mib2_ifEntry_t *ifp);
+ 
++#if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
+ static int _dlpi_open(const char *devname);
+ static int _dlpi_get_phys_address(int fd, char *paddr, int maxlen,
+                                   int *paddrlen);
+ static int _dlpi_get_iftype(int fd, unsigned int *iftype);
+ static int _dlpi_attach(int fd, int ppa);
+ static int _dlpi_parse_devname(char *devname, int *ppap);
++#endif
+ 
+ 
+ 
[email protected]@ -1044,8 +1046,300 @@
+  * Get info for interfaces group. Mimics getmib interface as much as possible
+  * to be substituted later if SunSoft decides to extend its mib2 interface.
+  */
++
+ #if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
++
++/*
++ * If IFTABLE_REWRITES is enabled, then we will also rely on DLPI to obtain
++ * information from the NIC.
++ */
++
++/*
++ * Open a DLPI device.
++ *
++ * On success the file descriptor is returned.
++ * On error -1 is returned.
++ */
+ static int
++_dlpi_open(const char *devname)
++{
++    char *devstr;
++    int fd = -1;
++    int ppa = -1;
++
++    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
++
++    if (devname == NULL)
++        return (-1);
++
++    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
++        return (-1);
++    (void) sprintf(devstr, "/dev/%s", devname);
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
++    /*
++     * First try opening the device using style 1, if the device does not
++     * exist we try style 2. Modules will not be pushed, so something like
++     * ip tunnels will not work. 
++     */
++   
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
++    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
++        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
++            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
++                       devstr, ppa));
++            /* try style 2 */
++            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
++
++            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
++                if (_dlpi_attach(fd, ppa) == 0) {
++                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
++                } else {
++                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
++                    close(fd);
++                    fd = -1;
++                }
++            } else {
++                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
++            }
++        } 
++    } else {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
++    }
++
++    /* clean up */
++    free(devstr);
++
++    return (fd);
++}
++
++/*
++ * Obtain the physical address of the interface using DLPI
++ */
++static int
++_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
++{
++    dl_phys_addr_req_t  paddr_req;
++    union DL_primitives *dlp;
++    struct strbuf       ctlbuf;
++    char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
++    int                 flag = 0;
++
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
++
++    paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
++    paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
++    ctlbuf.buf = (char *)&paddr_req;
++    ctlbuf.len = DL_PHYS_ADDR_REQ_SIZE;
++    if (putmsg(fd, &ctlbuf, NULL, 0) < 0)
++        return (-1);
++    
++    ctlbuf.maxlen = sizeof(buf);
++    ctlbuf.len = 0;
++    ctlbuf.buf = buf;
++    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
++        return (-1);
++
++    if (ctlbuf.len < sizeof(uint32_t))
++        return (-1);
++    dlp = (union DL_primitives *)buf;
++    switch (dlp->dl_primitive) {
++    case DL_PHYS_ADDR_ACK: {
++        dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
++        if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
++            return (-1); 
++        (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
++        *addrlen = phyp->dl_addr_length;
++        return (0);
++    }
++    case DL_ERROR_ACK: {
++        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
++        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
++            return (-1);
++        return (errp->dl_errno);
++    }
++    default:
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
++        return (-1);
++    }
++}
++
++/*
++ * Query the interface about it's type.
++ */
++static int
++_dlpi_get_iftype(int fd, unsigned int *iftype)
++{
++    dl_info_req_t info_req;
++    union DL_primitives *dlp;
++    struct strbuf       ctlbuf;
++    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
++    int                 flag = 0;
++
++    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
++
++    info_req.dl_primitive = DL_INFO_REQ;
++    ctlbuf.buf = (char *)&info_req;
++    ctlbuf.len = DL_INFO_REQ_SIZE;
++    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
++        return (-1);
++    }
++    
++    ctlbuf.maxlen = sizeof(buf);
++    ctlbuf.len = 0;
++    ctlbuf.buf = buf;
++    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
++        return (-1);
++    }
++
++    if (ctlbuf.len < sizeof(uint32_t))
++        return (-1);
++    dlp = (union DL_primitives *)buf;
++    switch (dlp->dl_primitive) {
++    case DL_INFO_ACK: {
++        dl_info_ack_t *info = (dl_info_ack_t *)buf;
++
++        if (ctlbuf.len < DL_INFO_ACK_SIZE)
++            return (-1); 
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
++	           info->dl_mac_type));
++	switch (info->dl_mac_type) {
++	case DL_CSMACD:
++	case DL_ETHER:
++	case DL_ETH_CSMA:
++		*iftype = 6;
++		break;
++	case DL_TPB:	/* Token Passing Bus */
++		*iftype = 8;
++		break;
++	case DL_TPR:	/* Token Passing Ring */
++		*iftype = 9;
++		break;
++	case DL_HDLC:
++		*iftype = 118;
++		break;
++	case DL_FDDI:
++		*iftype = 15;
++		break;
++	case DL_FC:	/* Fibre channel */
++		*iftype = 56;
++		break;
++	case DL_ATM:
++		*iftype = 37;
++		break;
++	case DL_X25:
++	case DL_ISDN:
++		*iftype = 63;
++		break;
++	case DL_HIPPI:
++		*iftype = 47;
++		break;
++#ifdef DL_IB
++	case DL_IB:
++		*iftype = 199;
++		break;
++#endif
++	case DL_FRAME:	/* Frame Relay */
++		*iftype = 32;
++		break;
++	case DL_LOOP:
++		*iftype = 24;
++		break;
++#ifdef DL_WIFI
++	case DL_WIFI:
++		*iftype = 71;
++		break;
++#endif
++#ifdef DL_IPV4	/* then IPv6 is also defined */
++	case DL_IPV4:	/* IPv4 Tunnel */
++	case DL_IPV6:	/* IPv6 Tunnel */
++		*iftype = 131;
++		break;
++#endif
++	default:
++		*iftype = 1;	/* Other */
++		break;
++	}
++	
++        return (0);
++    }
++    case DL_ERROR_ACK: {
++        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
++
++        DEBUGMSGTL(("kernel_sunos5:dlpi",
++                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
++                    errp->dl_unix_errno));
++
++        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
++            return (-1);
++        return (errp->dl_errno);
++    }
++    default:
++        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
++        return (-1);
++    }
++}
++
++static int
++_dlpi_attach(int fd, int ppa)
++{
++    dl_attach_req_t     attach_req;
++    struct strbuf       ctlbuf;
++    union DL_primitives *dlp;
++    char                buf[MAX(DL_OK_ACK_SIZE, DL_ERROR_ACK_SIZE)];
++    int                 flag = 0;
++   
++    attach_req.dl_primitive = DL_ATTACH_REQ;
++    attach_req.dl_ppa = ppa;
++    ctlbuf.buf = (char *)&attach_req;
++    ctlbuf.len = DL_ATTACH_REQ_SIZE;
++    if (putmsg(fd, &ctlbuf, NULL, 0) != 0)
++        return (-1);
++
++    ctlbuf.buf = buf;
++    ctlbuf.len = 0;
++    ctlbuf.maxlen = sizeof(buf);
++    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
++        return (-1);
++
++    if (ctlbuf.len < sizeof(uint32_t))
++        return (-1); 
++
++    dlp = (union DL_primitives *)buf;
++    if (dlp->dl_primitive == DL_OK_ACK && ctlbuf.len >= DL_OK_ACK_SIZE)
++        return (0); 
++    return (-1);
++}
++
++static int
++_dlpi_parse_devname(char *devname, int *ppap)
++{
++    int ppa = 0;
++    int m = 1;
++    int i = strlen(devname) - 1;
++
++    while (i >= 0 && isdigit(devname[i])) {
++        ppa += m * (devname[i] - '0'); 
++        m *= 10;
++        i--;
++    }
++
++    if (m == 1) {
++        return (-1);
++    }
++    *ppap = ppa;
++    devname[i + 1] = '\0';
++
++    return (0);
++}
++static int
+ getif(mib2_ifEntry_t *ifbuf, size_t size, req_e req_type,
+       mib2_ifEntry_t *resp,  size_t *length, int (*comp)(void *, void *),
+       void *arg)
[email protected]@ -1229,7 +1523,8 @@
+ 
+ 	if (ioctl(ifsd, SIOCGIFFLAGS, ifrp) < 0) {
+ 	    ret = -1;
+-	    snmp_log(LOG_ERR, "SIOCGIFFLAGS %s: %s\n", ifrp->ifr_name, strerror(errno));
++	    snmp_log(LOG_ERR, "SIOCGIFFLAGS %s: %s\n", ifrp->ifr_name,
++                     strerror(errno));
+ 	    goto Return;
+ 	}
+         if_flags = ifrp->ifr_flags;
[email protected]@ -1522,294 +1817,7 @@
+                                       ifp->ifHCOutMulticastPkts);
+     return(0);
+ }
+-
+ /*
+- * Open a DLPI device.
+- *
+- * On success the file descriptor is returned.
+- * On error -1 is returned.
+- */
+-static int
+-_dlpi_open(const char *devname)
+-{
+-    char *devstr;
+-    int fd = -1;
+-    int ppa = -1;
+-
+-    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
+-
+-    if (devname == NULL)
+-        return (-1);
+-
+-    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
+-        return (-1);
+-    (void) sprintf(devstr, "/dev/%s", devname);
+-    DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
+-    /*
+-     * First try opening the device using style 1, if the device does not
+-     * exist we try style 2. Modules will not be pushed, so something like
+-     * ip tunnels will not work. 
+-     */
+-   
+-    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
+-    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
+-        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
+-            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
+-                       devstr, ppa));
+-            /* try style 2 */
+-            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
+-
+-            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
+-                if (_dlpi_attach(fd, ppa) == 0) {
+-                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
+-                } else {
+-                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
+-                    close(fd);
+-                    fd = -1;
+-                }
+-            } else {
+-                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
+-            }
+-        } 
+-    } else {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
+-    }
+-
+-    /* clean up */
+-    free(devstr);
+-
+-    return (fd);
+-}
+-
+-/*
+- * Obtain the physical address of the interface using DLPI
+- */
+-static int
+-_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
+-{
+-    dl_phys_addr_req_t  paddr_req;
+-    union DL_primitives *dlp;
+-    struct strbuf       ctlbuf;
+-    char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
+-    int                 flag = 0;
+-
+-    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
+-
+-    paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
+-    paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
+-    ctlbuf.buf = (char *)&paddr_req;
+-    ctlbuf.len = DL_PHYS_ADDR_REQ_SIZE;
+-    if (putmsg(fd, &ctlbuf, NULL, 0) < 0)
+-        return (-1);
+-    
+-    ctlbuf.maxlen = sizeof(buf);
+-    ctlbuf.len = 0;
+-    ctlbuf.buf = buf;
+-    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
+-        return (-1);
+-
+-    if (ctlbuf.len < sizeof(uint32_t))
+-        return (-1);
+-    dlp = (union DL_primitives *)buf;
+-    switch (dlp->dl_primitive) {
+-    case DL_PHYS_ADDR_ACK: {
+-        dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
+-
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
+-        if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
+-            return (-1); 
+-        (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
+-        *addrlen = phyp->dl_addr_length;
+-        return (0);
+-    }
+-    case DL_ERROR_ACK: {
+-        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
+-
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
+-        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
+-            return (-1);
+-        return (errp->dl_errno);
+-    }
+-    default:
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
+-        return (-1);
+-    }
+-}
+-
+-/*
+- * Query the interface about it's type.
+- */
+-static int
+-_dlpi_get_iftype(int fd, unsigned int *iftype)
+-{
+-    dl_info_req_t info_req;
+-    union DL_primitives *dlp;
+-    struct strbuf       ctlbuf;
+-    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
+-    int                 flag = 0;
+-
+-    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
+-
+-    info_req.dl_primitive = DL_INFO_REQ;
+-    ctlbuf.buf = (char *)&info_req;
+-    ctlbuf.len = DL_INFO_REQ_SIZE;
+-    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
+-        return (-1);
+-    }
+-    
+-    ctlbuf.maxlen = sizeof(buf);
+-    ctlbuf.len = 0;
+-    ctlbuf.buf = buf;
+-    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
+-        return (-1);
+-    }
+-
+-    if (ctlbuf.len < sizeof(uint32_t))
+-        return (-1);
+-    dlp = (union DL_primitives *)buf;
+-    switch (dlp->dl_primitive) {
+-    case DL_INFO_ACK: {
+-        dl_info_ack_t *info = (dl_info_ack_t *)buf;
+-
+-        if (ctlbuf.len < DL_INFO_ACK_SIZE)
+-            return (-1); 
+-
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
+-	           info->dl_mac_type));
+-	switch (info->dl_mac_type) {
+-	case DL_CSMACD:
+-	case DL_ETHER:
+-	case DL_ETH_CSMA:
+-		*iftype = 6;
+-		break;
+-	case DL_TPB:	/* Token Passing Bus */
+-		*iftype = 8;
+-		break;
+-	case DL_TPR:	/* Token Passing Ring */
+-		*iftype = 9;
+-		break;
+-	case DL_HDLC:
+-		*iftype = 118;
+-		break;
+-	case DL_FDDI:
+-		*iftype = 15;
+-		break;
+-	case DL_FC:	/* Fibre channel */
+-		*iftype = 56;
+-		break;
+-	case DL_ATM:
+-		*iftype = 37;
+-		break;
+-	case DL_X25:
+-	case DL_ISDN:
+-		*iftype = 63;
+-		break;
+-	case DL_HIPPI:
+-		*iftype = 47;
+-		break;
+-#ifdef DL_IB
+-	case DL_IB:
+-		*iftype = 199;
+-		break;
+-#endif
+-	case DL_FRAME:	/* Frame Relay */
+-		*iftype = 32;
+-		break;
+-	case DL_LOOP:
+-		*iftype = 24;
+-		break;
+-#ifdef DL_WIFI
+-	case DL_WIFI:
+-		*iftype = 71;
+-		break;
+-#endif
+-#ifdef DL_IPV4	/* then IPv6 is also defined */
+-	case DL_IPV4:	/* IPv4 Tunnel */
+-	case DL_IPV6:	/* IPv6 Tunnel */
+-		*iftype = 131;
+-		break;
+-#endif
+-	default:
+-		*iftype = 1;	/* Other */
+-		break;
+-	}
+-	
+-        return (0);
+-    }
+-    case DL_ERROR_ACK: {
+-        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
+-
+-        DEBUGMSGTL(("kernel_sunos5:dlpi",
+-                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
+-                    errp->dl_unix_errno));
+-
+-        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
+-            return (-1);
+-        return (errp->dl_errno);
+-    }
+-    default:
+-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
+-        return (-1);
+-    }
+-}
+-
+-static int
+-_dlpi_attach(int fd, int ppa)
+-{
+-    dl_attach_req_t     attach_req;
+-    struct strbuf       ctlbuf;
+-    union DL_primitives *dlp;
+-    char                buf[MAX(DL_OK_ACK_SIZE, DL_ERROR_ACK_SIZE)];
+-    int                 flag = 0;
+-   
+-    attach_req.dl_primitive = DL_ATTACH_REQ;
+-    attach_req.dl_ppa = ppa;
+-    ctlbuf.buf = (char *)&attach_req;
+-    ctlbuf.len = DL_ATTACH_REQ_SIZE;
+-    if (putmsg(fd, &ctlbuf, NULL, 0) != 0)
+-        return (-1);
+-
+-    ctlbuf.buf = buf;
+-    ctlbuf.len = 0;
+-    ctlbuf.maxlen = sizeof(buf);
+-    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
+-        return (-1);
+-
+-    if (ctlbuf.len < sizeof(uint32_t))
+-        return (-1); 
+-
+-    dlp = (union DL_primitives *)buf;
+-    if (dlp->dl_primitive == DL_OK_ACK && ctlbuf.len >= DL_OK_ACK_SIZE)
+-        return (0); 
+-    return (-1);
+-}
+-
+-static int
+-_dlpi_parse_devname(char *devname, int *ppap)
+-{
+-    int ppa = 0;
+-    int m = 1;
+-    int i = strlen(devname) - 1;
+-
+-    while (i >= 0 && isdigit(devname[i])) {
+-        ppa += m * (devname[i] - '0'); 
+-        m *= 10;
+-        i--;
+-    }
+-
+-    if (m == 1) {
+-        return (-1);
+-    }
+-    *ppap = ppa;
+-    devname[i + 1] = '\0';
+-
+-    return (0);
+-}
+-
+-/*
+  * Always TRUE. May be used as a comparison function in getMibstat
+  * to obtain the whole table (GET_FIRST should be used) 
+  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/007.16863.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,13 @@
+Index: net-snmp/snmplib/asn1.c
+===================================================================
+--- net-snmp/snmplib/asn1.c	(revision 16862)
++++ net-snmp/snmplib/asn1.c	(revision 16863)
[email protected]@ -2735,7 +2735,7 @@
+     }
+ 
+     CHECK_OVERFLOW_S(integer,10);
+-    testvalue = (*intp < 0) ? -1 : 0;
++    testvalue = (integer < 0) ? -1 : 0;
+ 
+     if (((*pkt_len - *offset) < 1) && !(r && asn_realloc(pkt, pkt_len))) {
+         return 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/008.ip-mib.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,13 @@
+--- net-snmp-5.4.1/agent/mibgroup/mibII.h	(revision 16428)
++++ net-snmp-5.4.1-patch/agent/mibgroup/mibII.h	(working copy)
[email protected]@ -30,3 +30,10 @@
+ #if defined( linux )
+ config_require(ip-mib ip-forward-mib tcp-mib udp-mib)
+ #endif
++
++/*
++ * For Solaris, enable additional tables.
++ */
++#if defined( solaris2 )
++config_require(ip-mib/ipSystemStatsTable ip-mib/ipAddressTable)
++#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/009.ltmain.sh.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,31 @@
+--- net-snmp-5.4.2.1/ltmain.sh	Fri Jun  6 02:34:34 2008
++++ net-snmp-5.4.2.1/ltmain.mod.sh	Tue Feb  3 11:02:05 2009
[email protected]@ -1425,7 +1425,9 @@
+ 	  if test "$prev" = rpath; then
+ 	    case "$rpath " in
+ 	    *" $arg "*) ;;
+-	    *) rpath="$rpath $arg" ;;
++	    *) rpath="$rpath $arg"
++        # This is make sure only $libdir path is encoded in RUNPATH
++        sma_rpath="$rpath" ;;
+ 	    esac
+ 	  else
+ 	    case "$xrpath " in
[email protected]@ -3915,7 +3917,7 @@
+ 	if test "$hardcode_into_libs" = yes; then
+ 	  # Hardcode the library paths
+ 	  hardcode_libdirs=
+-	  dep_rpath=
++	  dep_rpath="-R $sma_rpath"
+ 	  rpath="$finalize_rpath"
+ 	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+ 	  for libdir in $rpath; do
[email protected]@ -3935,7 +3937,7 @@
+ 		fi
+ 	      else
+ 		eval flag=\"$hardcode_libdir_flag_spec\"
+-		dep_rpath="$dep_rpath $flag"
++		#dep_rpath="$dep_rpath $flag"
+ 	      fi
+ 	    elif test -n "$runpath_var"; then
+ 	      case "$perm_rpath " in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/010.if-mib-zone.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,90 @@
+--- net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	2009-05-11 15:32:06.000000000 -0700
++++ net-snmp-5.4.1.fix/agent/mibgroup/kernel_sunos5.c	2009-05-11 16:47:40.637063871 -0700
[email protected]@ -170,7 +170,7 @@
+       size_t *length, int (*comp)(void *, void *), void *arg);
+ static void 
+ set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
+-            int mtu);
++            boolean_t flags_unknown, int mtu);
+ static int get_if_stats(mib2_ifEntry_t *ifp);
+ 
+ #if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
[email protected]@ -1332,8 +1332,9 @@
+     mib2_ifEntry_t *ifp;
+     int             nentries = size / sizeof(mib2_ifEntry_t);
+     found_e         result = NOT_FOUND;
+-    boolean_t       if_isv6;
++    boolean_t       if_isv6, flags_unknown;
+     uint64_t        if_flags;    
++    short           mtu = 0;
+     struct if_nameindex *ifname, *ifnp;
+ 
+     lifrp = &lifreq; 
[email protected]@ -1365,6 +1366,7 @@
+         memcpy(lifrp->lifr_name, ifnp->if_name, LIFNAMSIZ);
+         if_isv6 = B_FALSE;
+ 
++        flags_unknown = B_FALSE;
+         if (ioctl(ifsd, SIOCGLIFFLAGS, lifrp) < 0) {
+             if (ifsd6 == -1) {
+                 if ((ifsd6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
[email protected]@ -1373,17 +1375,19 @@
+                 }
+             }
+             if (ioctl(ifsd6, SIOCGLIFFLAGS, lifrp) < 0) {
+-                snmp_log(LOG_ERR, "SIOCGLIFFLAGS %s: %s\n", 
+-                         lifrp->lifr_name, strerror(errno));
+-                continue;
++                DEBUGMSGTL(("kernel_sunos5",
++                            "...... SIOCGLIFFLAGS failed\n"));
++                flags_unknown = B_TRUE;
+             }
+             if_isv6 = B_TRUE;
+         } 
+         if_flags = lifrp->lifr_flags;
+             
+         if (ioctl(if_isv6?ifsd6:ifsd, SIOCGLIFMTU, lifrp) < 0) {
++            mtu = 0;
+             DEBUGMSGTL(("kernel_sunos5", "...... SIOCGLIFMTU failed\n"));
+-            continue;
++        } else {
++            mtu = lifrp->lifr_mtu;
+         }
+ 
+         memset(ifp, 0, sizeof(mib2_ifEntry_t));
[email protected]@ -1398,11 +1402,12 @@
+         }
+ 
+         set_if_info(ifp, ifnp->if_index, ifnp->if_name, if_flags, 
+-                    lifrp->lifr_metric);
++                    flags_unknown, mtu);
+ 
+         if (get_if_stats(ifp) < 0) {
++            snmp_log(LOG_ERR, "Failed to get interface statistics for %s\n",
++                     ifnp->if_name);
+             DEBUGMSGTL(("kernel_sunos5", "...... get_if_stats failed\n"));
+-            continue;
+         }
+ 
+         /*
[email protected]@ -1581,7 +1586,7 @@
+ 
+ static void
+ set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
+-            int mtu)
++            boolean_t flags_unknown, int mtu)
+ { 
+     boolean_t havespeed = B_FALSE;
+ 
[email protected]@ -1592,7 +1597,10 @@
+     ifp->ifDescr.o_length = strlen(name);
+     strcpy(ifp->ifDescr.o_bytes, name);
+     ifp->ifAdminStatus = (flags & IFF_UP) ? 1 : 2;
+-    ifp->ifOperStatus = ((flags & IFF_UP) && (flags & IFF_RUNNING)) ? 1 : 2;
++    if (flags_unknown)
++        ifp->ifOperStatus = 4; /* status unknown */
++    else
++        ifp->ifOperStatus = ((flags & IFF_UP) && (flags & IFF_RUNNING)) ? 1 : 2;
+     ifp->ifLastChange = 0;      /* Who knows ...  */
+     ifp->flags = flags;
+     ifp->ifMtu = mtu;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/011.Makefile.in.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,70 @@
+Only in net-snmp-5.4.1.mod: .patches.011.Makefile.in.patch
+diff -ru net-snmp-5.4.1/agent/Makefile.in net-snmp-5.4.1.mod/agent/Makefile.in
+--- net-snmp-5.4.1/agent/Makefile.in	2007-07-05 04:56:56.000000000 +0530
++++ net-snmp-5.4.1.mod/agent/Makefile.in	2009-06-24 06:08:28.858891018 +0530
[email protected]@ -120,8 +120,11 @@
+ OBJS		= $(LIBAGENTOBJS)  $(AGENTOBJS)  mib_modules.o  auto_nlist.o
+ LOBJS		= $(LLIBAGENTOBJS) $(LAGENTOBJS) mib_modules.lo auto_nlist.lo
+ 
++LIB_LD_ADD_AGENT	=-lnetsnmp -lnetsnmphelpers
++ 
++LIB_LD_ADD_PATH_MIBS	=-Lhelpers -L../snmplib
+ 
+-all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
++all: agentlib subdirs miblib relinklib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
+ 
+ #
+ # build stuff targets
[email protected]@ -152,6 +155,10 @@
+ 
+ agentlib: $(AGENTLIB)
+ 
++relinklib:     ${LLIBAGENTOBJS} $(USELIBS)
++	$(LIB_LD_CMD) $(AGENTLIB) $(LIB_LD_ADD_PATH_MIBS) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) $(LIB_LD_ADD_AGENT)
++	$(RANLIB) $(AGENTLIB) $(LIB_LD_ADD_AGENT)
++
+ miblib: $(MIBLIB)
+ 
+ libs: $(INSTALLLIBS)
+Only in net-snmp-5.4.1.mod/agent: Makefile.in~
+diff -ru net-snmp-5.4.1/agent/helpers/Makefile.in net-snmp-5.4.1.mod/agent/helpers/Makefile.in
+--- net-snmp-5.4.1/agent/helpers/Makefile.in	2007-06-27 03:15:20.000000000 +0530
++++ net-snmp-5.4.1.mod/agent/helpers/Makefile.in	2009-06-24 06:01:35.912702710 +0530
[email protected]@ -137,8 +137,11 @@
+ 	table_tdata.lo \
+ 	watcher.lo
+ 
++LIB_LD_ADD	=-lnetsnmp
++LIB_LD_ADD_PATH	=-L../../snmplib
++
+ all: standardall
+ 
+ libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION):    $(LOBJS)
+-	$(LIB_LD_CMD) [email protected] $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS)
+-	$(RANLIB) [email protected]
++	$(LIB_LD_CMD) [email protected] $(LIB_LD_ADD_PATH) $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS) $(LIB_LD_ADD)
++	$(RANLIB) [email protected] $(LIB_LD_ADD)
+diff -ru net-snmp-5.4.1/snmplib/Makefile.in net-snmp-5.4.1.mod/snmplib/Makefile.in
+--- net-snmp-5.4.1/snmplib/Makefile.in	2007-06-19 03:04:43.000000000 +0530
++++ net-snmp-5.4.1.mod/snmplib/Makefile.in	2009-06-24 06:01:35.912972597 +0530
[email protected]@ -181,6 +181,9 @@
+ # just in case someone wants to remove libtool, change this to OBJS.
+ TOBJS=$(LOBJS)
+ 
++# To satisfy -zdefs
++LIB_LD_ADD	=-lnsl -lsocket -L$(libdir)
++
+ # 
+ CPPFLAGS = $(TOP_INCLUDES) -I. 	$(SNMPLIB_INCLUDES) @[email protected]
+ 
[email protected]@ -188,8 +191,8 @@
+ 
+ # how to build the libraries.
+ libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
+-	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected]
+-	$(RANLIB) [email protected]
++	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected] } $(LIB_LD_ADD)
++	$(RANLIB) [email protected]  $(LIB_LD_ADD)
+ 
+ libsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
+ 	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/012.Makefile.PL.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,11 @@
+--- net-snmp-5.4.1/perl/agent/Makefile.PL	Thu May 31 04:23:09 2007
++++ net-snmp-5.4.1.mod/perl/agent/Makefile.PL	Tue Jul  7 06:34:37 2009
[email protected]@ -90,7 +90,7 @@
+ 	    $Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ -L../../agent/.libs -L../../agent/ -L../../agent/helpers/.libs -L../../agent/helpers/ " . $Params{'LIBS'};
+ 	    $Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
+ #	} else {
+-	    $Params{'LIBS'} = `$opts->{'nsconfig'} --libdir` . $Params{'LIBS'};
++	    $Params{'LIBS'} = $Params{'LIBS'} . `$opts->{'nsconfig'} --libdir` 
+ #	    $Params{'PREREQ_PM'} = {'NetSNMP::OID' => '0.1'};
+ 	}
+ 	$Params{'CCFLAGS'} =~ s/ -W(all|inline|strict-prototypes|write-strings|cast-qual|no-char-subscripts)//g; # ignore developer warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/013.6852099.proxy.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,29 @@
+--- net-snmp-5.4.1/agent/mibgroup/ucd-snmp/proxy.c	Tue Oct 17 09:16:29 2006
++++ patch/net-snmp-5.4.1/agent/mibgroup/ucd-snmp/proxy.c	Tue Sep 29 07:36:48 2009
[email protected]@ -408,6 +408,8 @@
+                 /*
+                  * too large 
+                  */
++		if (pdu)
++			snmp_free_pdu(pdu);
+                 snmp_log(LOG_ERR,
+                          "proxy oid request length is too long\n");
+                 return SNMP_ERR_NOERROR;
[email protected]@ -437,6 +439,8 @@
+      */
+     if (!proxy_fill_in_session(handler, reqinfo, (void **)&configured)) {
+         netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
++	if (pdu)
++		snmp_free_pdu(pdu);
+         return SNMP_ERR_NOERROR;
+     }
+ 
[email protected]@ -451,6 +455,8 @@
+ 
+     /* Free any special parameters generated on the session */
+     proxy_free_filled_in_session_args(sp->sess, (void **)&configured);
++    if (pdu)
++	snmp_free_pdu(pdu);
+ 
+     return SNMP_ERR_NOERROR;
+ }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/014.6801093.vmstat_solaris2.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,16 @@
+--- patch/net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Thu Sep 14 17:48:50 2006
++++ net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Tue Oct  6 02:03:44 2009
[email protected]@ -525,6 +525,13 @@
+         DEBUGMSGTL(("ucd-snmp/vmstat_solaris2.c:update_stats",
+                     "time_diff: %lld\n", time_diff));
+ 
++		/*
++		 * Assign a minimum value to get around divide by zero case
++		 */
++		if (time_diff == 0) {
++			time_diff = 1;
++		}
++
+         /*
+          * swapin and swapout are in pages, MIB wants kB/s,so we just need to get kB and seconds 
+          * For the others we need to get value per second 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/015.6956251.vmstat_solaris2.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,16 @@
+--- patch/net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Tue Aug  3 06:04:52 2010
++++ net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Wed Oct  6 01:27:48 2010
[email protected]@ -589,6 +589,13 @@
+             cpu_sum += (css_new->css_cpu[i] - css_old->css_cpu[i]);
+         }
+ 
++	/*
++	 * Assign a minimum value to get around divide by zero case
++	 */
++	if (cpu_sum == 0) {
++		cpu_sum = 1;
++	}
++
+         /*
+          * Now calculate the absolute percentage values 
+          * Looks somewhat complicated sometimes but tries to get around using floats to increase speed 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/016.6934478.vmstat_solaris2.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,72 @@
+--- patch/net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Tue Oct 12 07:37:07 2010
++++ net-snmp-5.4.1/agent/mibgroup/ucd-snmp/vmstat_solaris2.c	Tue Oct 12 07:34:41 2010
[email protected]@ -709,7 +709,12 @@
+     case CPUIDLE:
+         return ((u_char *) (&cpu_perc[CPU_IDLE]));
+     case CPURAWUSER:
+-        take_snapshot(&raw_values);
++	/* Take the current snapshot */
++	if ((take_snapshot(&raw_values) == -1) && (raw_values.css_cpus == 0)) {
++		snmp_log(LOG_WARNING,
++		    "vmstat_solaris2 (var_extensible_vmstat): Something went wrong with take_snapshot.\n");
++		return (NULL);
++	}
+         /*
+          * LINTED has to be 'long' 
+          */
[email protected]@ -723,7 +728,12 @@
+          * (Has been changed to Counter32 in the latest MIB version!) 
+          */
+     case CPURAWSYSTEM:
+-        take_snapshot(&raw_values);
++	/* Take the current snapshot */
++	if ((take_snapshot(&raw_values) == -1) && (raw_values.css_cpus == 0)) {
++		snmp_log(LOG_WARNING,
++		    "vmstat_solaris2 (var_extensible_vmstat): Something went wrong with take_snapshot.\n");
++		return (NULL);
++	}
+         /*
+          * LINTED has to be 'long' 
+          */
[email protected]@ -732,7 +742,12 @@
+                      raw_values.css_cpu[CPU_WAIT]) / raw_values.css_cpus);
+         return ((u_char *) (&long_ret));
+     case CPURAWIDLE:
+-        take_snapshot(&raw_values);
++	/* Take the current snapshot */
++	if ((take_snapshot(&raw_values) == -1) && (raw_values.css_cpus == 0)) {
++		snmp_log(LOG_WARNING,
++		    "vmstat_solaris2 (var_extensible_vmstat): Something went wrong with take_snapshot.\n");
++		return (NULL);
++	}
+         /*
+          * LINTED has to be 'long' 
+          */
[email protected]@ -740,7 +755,12 @@
+             (long) (raw_values.css_cpu[CPU_IDLE] / raw_values.css_cpus);
+         return ((u_char *) (&long_ret));
+     case CPURAWWAIT:
+-        take_snapshot(&raw_values);
++	/* Take the current snapshot */
++	if ((take_snapshot(&raw_values) == -1) && (raw_values.css_cpus == 0)) {
++		snmp_log(LOG_WARNING,
++		    "vmstat_solaris2 (var_extensible_vmstat): Something went wrong with take_snapshot.\n");
++		return (NULL);
++	}
+         /*
+          * LINTED has to be 'long' 
+          */
[email protected]@ -748,7 +768,12 @@
+             (long) (raw_values.css_cpu[CPU_WAIT] / raw_values.css_cpus);
+         return ((u_char *) (&long_ret));
+     case CPURAWKERNEL:
+-        take_snapshot(&raw_values);
++	/* Take the current snapshot */
++	if ((take_snapshot(&raw_values) == -1) && (raw_values.css_cpus == 0)) {
++		snmp_log(LOG_WARNING,
++		    "vmstat_solaris2 (var_extensible_vmstat): Something went wrong with take_snapshot.\n");
++		return (NULL);
++	}
+         /*
+          * LINTED has to be 'long' 
+          */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/017.6984919.kernel_sunos5.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,11 @@
+--- patch/net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	Tue Oct 12 06:55:48 2010
++++ net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	Tue Oct 12 07:03:49 2010
[email protected]@ -82,7 +82,7 @@
+ static
+ mibcache        Mibcache[MIBCACHE_SIZE+1] = {
+     {MIB_SYSTEM, 0, (void *) -1, 0, 0, 0, 0},
+-    {MIB_INTERFACES, 10 * sizeof(mib2_ifEntry_t), (void *) -1, 0, 30, 0,
++    {MIB_INTERFACES, 50 * sizeof(mib2_ifEntry_t), (void *) -1, 0, 30, 0,
+      0},
+     {MIB_AT, 0, (void *) -1, 0, 0, 0, 0},
+     {MIB_IP, sizeof(mib2_ip_t), (void *) -1, 0, 60, 0, 0},
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/018.6932608.systemstats_common.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,19 @@
+--- patch/net-snmp-5.4.1-64/agent/mibgroup/ip-mib/data_access/systemstats_common.c	Tue Feb  8 13:58:36 2005
++++ net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/systemstats_common.c	Mon Aug  2 05:21:15 2010
[email protected]@ -339,7 +339,7 @@
+      */
+     if (0 == need_wrap_check) {
+         SNMP_FREE(prev_vals->old_stats);
+-    }
++    } else {
+     
+     /*
+      * update old stats from new stats.
[email protected]@ -346,6 +346,7 @@
+      * careful - old_stats is a pointer to stats...
+      */
+     memcpy(prev_vals->old_stats, &new_vals->stats, sizeof(new_vals->stats));
++    }
+     
+     return 0;
+ }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/019.6998845.container.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,314 @@
+--- net-snmp/include/net-snmp/library/container.h	Mon Dec  5 00:13:04 2005
++++ net-snmp/include/net-snmp/library/container.h	Fri Jan 14 17:35:37 2011
[email protected]@ -31,8 +31,16 @@
+     struct netsnmp_container_s; /** forward declare */
+ 
+     /*
+-     * function returning an int for an operation on a container
++     * function for performing an operation on a container which
++     * returns (maybe the same) container.
+      */
++
++    typedef struct netsnmp_container_s* (netsnmp_container_mod_op)
++      (struct netsnmp_container_s *, void *context, u_int flags);
++
++    /*
++     * function for setting an option on a container
++     */
+     typedef int (netsnmp_container_option)(struct netsnmp_container_s *,
+                                            int set, u_int flags);
+ 
[email protected]@ -192,6 +200,14 @@
+        netsnmp_container_op    *insert_filter;
+ 
+        /*
++	* OPTIONAL function to duplicate a container. Defaults to a shallow
++	* copy. Only the specified container is copied (i.e. sub-containers
++	* not included).
++	*/
++
++       netsnmp_container_mod_op *duplicate;
++
++       /*
+         * function to compare two object stored in the container.
+         *
+         * Returns:
[email protected]@ -219,11 +235,16 @@
+ 
+        /*
+         * sort count, for iterators to track (insert/delete
+-        * bumps coutner, invalidates iterator
++        * bumps counter, invalidates iterator)
+         */
+        u_long                          sync;
+ 
+        /*
++	* flags
++	*/
++       u_int                           flags;
++
++       /*
+         * containers can contain other containers (additional indexes)
+         */
+        struct netsnmp_container_s *next, *prev;
[email protected]@ -288,15 +309,15 @@
+ #define CONTAINER_SET_OPTIONS(x,o,rc)  do {                             \
+         if (NULL==(x)->options)                                         \
+             rc = -1;                                                    \
+-        else                                                            \
++        else {                                                          \
+             rc = (x)->options(x, 1, o);                                 \
++	     if (rc != -1 )						\
++		(x)->flags |= o;                                        \
++	}								\
+     } while(0)
+ 
+ #define CONTAINER_CHECK_OPTION(x,o,rc)    do {                          \
+-        if (NULL==(x)->options)                                         \
+-            rc = -1;                                                    \
+-        else                                                            \
+-            rc = (x)->options(x,0, o);                                  \
++	rc = x->flags & 0;                                              \
+     } while(0)
+ 
+ 
[email protected]@ -335,6 +356,12 @@
+     int CONTAINER_REMOVE(netsnmp_container *x, const void *k);
+ 
+     /*
++     * duplicate container
++     */
++    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
++		u_int flags); 
++
++    /*
+      * clear all containers. When clearing the *first* container, and
+      * *only* the first container, call the function f for each item.
+      * After calling this function, all containers should be empty.
[email protected]@ -364,7 +391,7 @@
+                 continue;
+             rc2 = x->insert(x,k);
+             if (rc2) {
+-                snmp_log(LOG_ERR,"error on subcontainer '%s' insert (%d)\n",
++                snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
+                          x->container_name ? x->container_name : "", rc2);
+                 rc = rc2;
+             }
[email protected]@ -402,6 +429,22 @@
+      * container.c. If you change one, change them both.
+      */
+     NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
++    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
++    		u_int flags)
++    {
++      if (NULL == x->duplicate) {
++    	snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
++    		x->container_name ? x->container_name : "");
++    	return NULL;
++      }
++      return x->duplicate(x, ctx, flags);
++    }
++
++    /*------------------------------------------------------------------
++     * These functions should EXACTLY match the function version in
++     * container.c. If you change one, change them both.
++     */
++    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */ 
+     int CONTAINER_FREE(netsnmp_container *x)
+     {
+ 	int  rc2, rc = 0;
[email protected]@ -474,6 +517,10 @@
+     }
+ 
+ #endif
++
++    /** Duplicate container meta-data. */
++    int netsnmp_container_data_dup(netsnmp_container *dup,
++    	netsnmp_container *c); 
+     
+     /*************************************************************************
+      *
+--- net-snmp/snmplib/container_binary_array.c	Wed Aug 23 21:23:22 2006
++++ net-snmp/snmplib/container_binary_array.c	Fri Jan 14 17:35:37 2011
[email protected]@ -36,7 +36,6 @@
+ typedef struct binary_array_table_s {
+     size_t                     max_size;   /* Size of the current data table */
+     size_t                     count;      /* Index of the next free entry */
+-    u_int                      flags;      /* flags */
+     int                        dirty;
+     int                        data_size;  /* Size of an individual entry */
+     void                     **data;       /* The table itself */
[email protected]@ -99,7 +98,7 @@
+     netsnmp_assert(t!=NULL);
+     netsnmp_assert(c->compare!=NULL);
+ 
+-    if (t->flags & CONTAINER_KEY_UNSORTED)
++    if (c->flags & CONTAINER_KEY_UNSORTED)
+         return 0;
+ 
+     if (t->dirty) {
[email protected]@ -204,11 +203,16 @@
+ int
+ netsnmp_binary_array_options_set(netsnmp_container *c, int set, u_int flags)
+ {
+-    binary_array_table *t = (binary_array_table*)c->container_data;
+-    if (set)
+-        t->flags = flags;
++#define BA_FLAGS (CONTAINER_KEY_ALLOW_DUPLICATES|CONTAINER_KEY_UNSORTED)
++
++    if (set) {
++    	if ((flags & BA_FLAGS) == flags)
++    		c->flags = flags;
++    	else
++    		flags = (u_int)-1; /* unsupported flag */
++    }
+     else
+-        return ((t->flags & flags) == flags);
++    	return ((c->flags & flags) == flags); 
+     return flags;
+ }
+ 
[email protected]@ -371,7 +375,7 @@
+     /*
+      * check for duplicates
+      */
+-    if (! (t->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
++    if (! (c->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
+         new_data = netsnmp_binary_array_get(c, entry, 1);
+         if (NULL != new_data) {
+             DEBUGMSGTL(("container","not inserting duplicate key\n"));
[email protected]@ -579,6 +583,56 @@
+     return va;
+ }
+ 
++static netsnmp_container *
++_ba_duplicate(netsnmp_container *c, void *ctx, u_int flags)
++{
++    netsnmp_container *dup;
++    binary_array_table *dupt, *t;
++
++    if (flags) {
++        snmp_log(LOG_ERR, "binary arry duplicate does not supprt flags yet\n");
++        return NULL;
++    }
++
++    dup = netsnmp_container_get_binary_array();
++    if (NULL == dup) {
++        snmp_log(LOG_ERR," no memory for binary array duplicate\n");
++        return NULL;
++    }
++    /*
++     * deal with container stuff
++     */
++    if (netsnmp_container_data_dup(dup, c) != 0) {
++        netsnmp_binary_array_release(dup);
++        return NULL;
++    }
++
++    /*
++     * deal with data
++     */
++    dupt = (binary_array_table*)dup->container_data;
++    t = (binary_array_table*)c->container_data;
++
++    dupt->max_size = t->max_size;
++    dupt->count = t->count;
++    dupt->dirty = t->dirty;
++    dupt->data_size = t->data_size;
++
++    /*
++     * shallow copy
++     */
++    dupt->data = (void**) calloc(dupt->max_size, dupt->data_size);
++    if (NULL == dupt->data) {
++        snmp_log(LOG_ERR, "no memory for binary array duplicate\n");
++        netsnmp_binary_array_release(dup);
++        return NULL;
++    }
++
++    memcpy(dupt->data, t->data, dupt->max_size * dupt->data_size);
++    
++    return dup;
++}
++
+ netsnmp_container *
+ netsnmp_container_get_binary_array(void)
+ {
[email protected]@ -592,7 +646,11 @@
+     }
+ 
+     c->container_data = netsnmp_binary_array_initialize();
+-        
++
++    /*
++     * NOTE: CHANGES HERE MUST BE DUPLICATED IN duplicate AS WELL!!
++     */
++
+     c->get_size = _ba_size;
+     c->init = NULL;
+     c->cfree = _ba_free;
[email protected]@ -604,6 +662,7 @@
+     c->get_iterator = _ba_iterator_get;
+     c->for_each = _ba_for_each;
+     c->clear = _ba_clear;
++    c->duplicate = _ba_duplicate;
+         
+     return c;
+ }
+--- net-snmp/snmplib/container.c	Fri Aug 25 15:11:06 2006
++++ net-snmp/snmplib/container.c	Fri Jan 14 17:35:37 2011
[email protected]@ -278,7 +278,7 @@
+             continue;
+         rc2 = x->insert(x,k);
+         if (rc2) {
+-            snmp_log(LOG_ERR,"error on subcontainer '%s' insert (%d)\n",
++            snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
+                      x->container_name ? x->container_name : "", rc2);
+             rc = rc2;
+         }
[email protected]@ -311,6 +311,20 @@
+ }
+ 
+ /*------------------------------------------------------------------
++ * These functions should EXACTLY match the function version in
++ * container.c. If you change one, change them both.
++ */
++netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx, u_int flags)
++{
++    if (NULL == x->duplicate) {
++        snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
++                 x->container_name ? x->container_name : "");
++        return NULL;
++    }
++    return x->duplicate(x, ctx, flags);
++}
++
++/*------------------------------------------------------------------
+  * These functions should EXACTLY match the inline version in
+  * container.h. If you change one, change them both.
+  */
[email protected]@ -408,6 +422,24 @@
+     c->find = fnd;
+ }
+ 
++int
++netsnmp_container_data_dup(netsnmp_container *dup, netsnmp_container *c)
++{
++    if (!dup || !c)
++        return -1;
++
++    if (c->container_name)
++        dup->container_name = strdup(c->container_name);
++    dup->compare = c->compare;
++    dup->ncompare = c->ncompare;
++    dup->release = c->release;
++    dup->insert_filter = c->insert_filter;
++    dup->sync = c->sync;
++    dup->flags = c->flags;
++
++    return 0;
++}
++
+ /*------------------------------------------------------------------
+  *
+  * simple comparison routines
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/020.7018550.kernel_sunos5.patch	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,29 @@
+--- net-snmp/agent/mibgroup/kernel_sunos5.c	Sat Apr 30 03:25:14 2011
++++ kernel_sunos5.c	Sat Apr 30 03:28:48 2011
[email protected]@ -86,7 +86,7 @@
+      0},
+     {MIB_AT, 0, (void *) -1, 0, 0, 0, 0},
+     {MIB_IP, sizeof(mib2_ip_t), (void *) -1, 0, 60, 0, 0},
+-    {MIB_IP_ADDR, 20 * sizeof(mib2_ipAddrEntry_t), (void *) -1, 0, 60, 0,
++    {MIB_IP_ADDR, 50 * sizeof(mib2_ipAddrEntry_t), (void *) -1, 0, 60, 0,
+      0},
+     {MIB_IP_ROUTE, 200 * sizeof(mib2_ipRouteEntry_t), (void *) -1, 0, 30,
+      0, 0},
[email protected]@ -105,13 +105,13 @@
+     {MIB_SNMP, 0, (void *) -1, 0, 0, 0, 0},
+ #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
+ #ifdef SOLARIS_HAVE_RFC4293_SUPPORT
+-    {MIB_IP_TRAFFIC_STATS, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0,
++    {MIB_IP_TRAFFIC_STATS, 50 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0,
+      30, 0, 0},
+-    {MIB_IP6, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
++    {MIB_IP6, 50 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
+ #else
+-    {MIB_IP6, 20 * sizeof(mib2_ipv6IfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
++    {MIB_IP6, 50 * sizeof(mib2_ipv6IfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
+ #endif
+-    {MIB_IP6_ADDR, 20 * sizeof(mib2_ipv6AddrEntry_t), (void *)-1, 0, 30, 0, 0},
++    {MIB_IP6_ADDR, 50 * sizeof(mib2_ipv6AddrEntry_t), (void *)-1, 0, 30, 0, 0},
+     {MIB_TCP6_CONN, 1000 * sizeof(mib2_tcp6ConnEntry_t), (void *) -1, 0, 30,
+      0, 0},
+     {MIB_UDP6_ENDPOINT, 1000 * sizeof(mib2_udp6Entry_t), (void *) -1, 0, 30,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/run-tests	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,102 @@
+#!/bin/ksh93 -x
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+#
+#pragma ident	"@(#)run-tests	1.1	09/07/08 SMI"
+#
+# *
+# * U.S. Government Rights - Commercial software. Government users are subject
+# * to the Sun Microsystems, Inc. standard license agreement and applicable
+# * provisions of the FAR and its supplements.
+#
+# Use is subject to license terms.
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+#  trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+# Run Net-SNMP testing kit
+
+# get the arch that we are building on
+arch=`uname -p`
+
+DIR=$1
+MACH32=$2
+MACH64=$3
+IPRE=usr
+IARCH=`arch`
+IPROC=`uname -p | grep sparc > /dev/null && echo sparcv9 || echo amd64`
+IROOTB=/${IPRE}/bin
+IROOTS=/${IPRE}/sbin
+
+VER=${DIR}/${MACH32}
+VER64=${DIR}/${MACH64}
+
+cd ${VER}/testing
+
+if [ ${IPROC} == "amd64" ]; then
+PATH=${IROOT}/usr/sbin/i86:${IROOTB}:${IROOTS}:/usr/ccs/bin:/usr/bin:${SPRO_VROOT}/bin:/usr/sbin:/sbin:/usr/bin:/usr/etc:/usr/sbin:/etc:.:/usr/openwin/bin
+export PATH
+#./RUNTESTS -a > test.32.out 2>&1
+./RUNTESTS -a > ${VER}/test.32.out 2>&1
+if [ $? -ne 0 ]; then
+	echo ""
+	echo "=================================================================="
+	echo "=======      Tests failed for i386 architecture ===================="
+	echo "=======          see test.32.out in           ================="
+	echo "=================================================================="
+	echo ""
+fi
+
+PATH=${IROOT}/usr/sbin/amd64:${IROOT}/usr/bin:/usr/ccs/bin:/usr/bin:${SPRO_VROOT}/bin:/usr/sbin:/sbin:/usr/bin:/usr/etc:/usr/sbin:/etc:.:/usr/openwin/bin
+export PATH
+cd ${VER64}/testing
+./RUNTESTS -a > ${VER64}/test.64.out 2>&1
+if [ $? -ne 0 ]; then
+	echo ""
+	echo "=================================================================="
+	echo "=======      Tests failed for AMD architecture ===================="
+	echo "=======          see test.64.out in $testdir ================="
+	echo "=================================================================="
+	echo ""
+fi
+fi
+
+if [ ${IPROC} == "sparcv9" ]; then
+cd ${VER64}/testing
+PATH=${IROOT}/usr/sbin:${IROOT}/usr/bin:/usr/ccs/bin:/usr/bin:${SPRO_VROOT}/bin:/usr/sbin:/sbin:/usr/bin:/usr/etc:/usr/sbin:/etc:.:/usr/openwin/bin
+export PATH
+./RUNTESTS -a > ${VER64}/test.64.out 2>&1
+if [ $? -ne 0 ]; then
+        echo ""
+        echo "=================================================================="
+        echo "=======      Tests failed for SPARC architecture ===================="
+        echo "=======          see test.64.out in $testdir ================="
+        echo "=================================================================="
+        echo ""
+fi
+fi
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,92 @@
+#
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# U.S. Government Rights - Commercial software. Government users are subject
+# to the Sun Microsystems, Inc. standard license agreement and applicable
+# provisions of the FAR and its supplements.
+#
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+# trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+#
+#
+# Makefile for sun directory in SMA
+#
+# $Log: Makefile,v $
+# Revision 1.10  2004/01/09 14:04:14  rr144420
+# 4974843 - directory change per LSARC
+#
+# Revision 1.9  2003/12/11 16:20:17  rr144420
+# 4964336 - eliminate sdk_buildrev
+#
+# Revision 1.8  2003/12/05 15:04:26  rr144420
+# 4964325 - Sun: pass ARCH=isa to make install
+#
+# Revision 1.7  2003/11/17 17:52:11  pcarroll
+# 4953668 - Sun: updated masfcnv migration script needs to be added to pkg
+#
+# Revision 1.6  2003/11/11 22:49:24  pcarroll
+# 4952508 - Sun: need to add a script to SMA pkgs for Enchilada migration
+#
+# Revision 1.5  2003/10/24 11:45:48  rr144420
+# 4943260 - add sdk_buildrev
+#
+# Revision 1.4  2003/08/21 14:41:58  rr144420
+# 4908816 - further makefile changes to install into correct lib
+#
+# Revision 1.3  2003/08/12 21:14:34  rr144420
+# 4895376 - correct Sun copyright statements. Cannot use (c), and must use Copyright Copyright in makefiles
+#
+# Revision 1.2  2003/08/01 16:32:12  rr144420
+# more of Paul's changes for packaging
+#
+# Revision 1.1  2003/07/23 15:53:28  rr144420
+# new makefiles for building sun directory
+# 
+#
+SUBDIRS		= agent
+BUILDREV_SRCS   = sma_buildrev.c
+BUILDREV_PROGS = $(BUILDREV_SRCS:.c=)
+SCRIPT_PROG	= masfcnv \
+		masfd \
+		snmpd.conf
+
+all: subdirs buildrevs
+
+buildrevs:$(BUILDREV_PROGS)
+.c:
+	$(CC) $< -o [email protected]
+
+subdirs:
+	echo "SUBDIRS:  $(MAKE) CFGPREFIX=$(CFGPREFIX) CFGLIB64=$(CFGLIB64) CFGLIB=$(CFGLIB) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH)" ; 
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making all in `pwd`/$$i"; \
+	                ( cd $$i ; $(MAKE) CFGPREFIX=$(CFGPREFIX) CFGLIB64=$(CFGLIB64) CFGLIB=$(CFGLIB) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH) ) ; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
+
+subdirs_install:
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making install in `pwd`/$$i"; \
+	                ( cd $$i ; $(MAKE) CFGPREFIX=$(CFGPREFIX) CFGLIB64=$(CFGLIB64) CFGLIB=$(CFGLIB) install ARCH=$(ARCH) ) ; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
+
+install: subdirs_install
+
+force:
+# dummy target to force rebuilding
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# U.S. Government Rights - Commercial software. Government users are subject
+# to the Sun Microsystems, Inc. standard license agreement and applicable
+# provisions of the FAR and its supplements.
+#
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+# trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+#
+#
+# Makefile for sun/agent directory in SMA
+#
+# $Log: Makefile,v $
+# Revision 1.5  2003/09/18 11:39:08  rr144420
+# 4922904 - include sea directory in makefile
+#
+# Revision 1.4  2003/08/21 14:42:00  rr144420
+# 4908816 - further makefile changes to install into correct lib
+#
+# Revision 1.3  2003/08/12 21:14:36  rr144420
+# 4895376 - correct Sun copyright statements. Cannot use (c), and must use Copyright Copyright in makefiles
+#
+# Revision 1.2  2003/08/01 16:32:16  rr144420
+# more of Paul's changes for packaging
+#
+# Revision 1.1  2003/07/23 15:53:29  rr144420
+# new makefiles for building sun directory
+# 
+#
+
+SUBDIRS		= modules mibs
+
+all:
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making all in `pwd`/$$i"; \
+			echo "SUBDIRS2:  $(MAKE) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH)" ; \
+	                ( cd $$i ; $(MAKE) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH) ROOT=$(ROOT) ) ; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
+
+install:
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making install in `pwd`/$$i"; \
+	                ( cd $$i ; $(MAKE) install ARCH=$(ARCH) ) ; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/ENTITY-MIB.txt	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,1217 @@
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, mib-2, NOTIFICATION-TYPE
+        FROM SNMPv2-SMI
+    TDomain, TAddress, TEXTUAL-CONVENTION,
+    AutonomousType, RowPointer, TimeStamp, TruthValue
+        FROM SNMPv2-TC
+    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+        FROM SNMPv2-CONF
+    SnmpAdminString
+        FROM SNMP-FRAMEWORK-MIB;
+
+entityMIB MODULE-IDENTITY
+    LAST-UPDATED "9912070000Z" 
+    ORGANIZATION "IETF ENTMIB Working Group"
+    CONTACT-INFO
+            "        WG E-mail: [email protected]
+                  Subscribe: [email protected]
+                         msg body: subscribe entmib
+
+                     Keith McCloghrie
+                     ENTMIB Working Group Chair
+                     Cisco Systems Inc.
+                     170 West Tasman Drive
+                     San Jose, CA 95134
+                     +1 408-526-5260
+                     [email protected]
+
+                     Andy Bierman
+                     ENTMIB Working Group Editor
+                     Cisco Systems Inc.
+                     170 West Tasman Drive
+                     San Jose, CA 95134
+                     +1 408-527-3711
+                     [email protected]"
+    DESCRIPTION
+            "The MIB module for representing multiple logical
+            entities supported by a single SNMP agent."
+    REVISION        "9912070000Z"
+    DESCRIPTION
+            "Initial Version of Entity MIB (Version 2).
+             This revision obsoletes RFC 2037.
+             This version published as RFC 2737."
+    REVISION        "9610310000Z"
+    DESCRIPTION
+            "Initial version (version 1), published as
+             RFC 2037."
+    ::= { mib-2 47 }
+
+entityMIBObjects OBJECT IDENTIFIER ::= { entityMIB 1 }
+
+entityPhysical OBJECT IDENTIFIER ::= { entityMIBObjects 1 }
+entityLogical  OBJECT IDENTIFIER ::= { entityMIBObjects 2 }
+entityMapping  OBJECT IDENTIFIER ::= { entityMIBObjects 3 }
+entityGeneral  OBJECT IDENTIFIER ::= { entityMIBObjects 4 }
+
+PhysicalIndex ::= TEXTUAL-CONVENTION
+    STATUS            current
+    DESCRIPTION
+            "An arbitrary value which uniquely identifies the physical
+            entity.  The value should be a small positive integer; index
+            values for different physical entities are not necessarily
+            contiguous."
+    SYNTAX INTEGER (1..2147483647)
+
+PhysicalClass ::= TEXTUAL-CONVENTION
+    STATUS            current
+    DESCRIPTION
+            "An enumerated value which provides an indication of the
+            general hardware type of a particular physical entity.
+            There are no restrictions as to the number of
+            entPhysicalEntries of each entPhysicalClass, which must be
+            instantiated by an agent.
+
+            The enumeration 'other' is applicable if the physical entity
+            class is known, but does not match any of the supported
+            values.
+
+            The enumeration 'unknown' is applicable if the physical
+            entity class is unknown to the agent.
+
+            The enumeration 'chassis' is applicable if the physical
+            entity class is an overall container for networking
+            equipment.  Any class of physical entity except a stack may
+            be contained within a chassis, and a chassis may only be
+            contained within a stack.
+
+            The enumeration 'backplane' is applicable if the physical
+            entity class is some sort of device for aggregating and
+            forwarding networking traffic, such as a shared backplane in
+            a modular ethernet switch.  Note that an agent may model a
+            backplane as a single physical entity, which is actually
+            implemented as multiple discrete physical components (within
+            a chassis or stack).
+
+            The enumeration 'container' is applicable if the physical
+            entity class is capable of containing one or more removable
+            physical entities, possibly of different types. For example,
+            each (empty or full) slot in a chassis will be modeled as a
+            container. Note that all removable physical entities should
+            be modeled within a container entity, such as field-
+            replaceable modules, fans, or power supplies.  Note that all
+            known containers should be modeled by the agent, including
+            empty containers.
+
+            The enumeration 'powerSupply' is applicable if the physical
+            entity class is a power-supplying component.
+
+            The enumeration 'fan' is applicable if the physical entity
+            class is a fan or other heat-reduction component.
+
+            The enumeration 'sensor' is applicable if the physical
+            entity class is some sort of sensor, such as a temperature
+            sensor within a router chassis.
+
+            The enumeration 'module' is applicable if the physical
+            entity class is some sort of self-contained sub-system.  If
+            it is removable, then it should be modeled within a
+            container entity, otherwise it should be modeled directly
+            within another physical entity (e.g., a chassis or another
+            module).
+
+            The enumeration 'port' is applicable if the physical entity
+            class is some sort of networking port, capable of receiving
+            and/or transmitting networking traffic.
+
+            The enumeration 'stack' is applicable if the physical entity
+            class is some sort of super-container (possibly virtual),
+            intended to group together multiple chassis entities.  A
+            stack may be realized by a 'virtual' cable, a real
+            interconnect cable, attached to multiple chassis, or may in
+            fact be comprised of multiple interconnect cables. A stack
+            should not be modeled within any other physical entities,
+            but a stack may be contained within another stack.  Only
+            chassis entities should be contained within a stack."
+    SYNTAX      INTEGER  {
+       other(1),
+       unknown(2),
+       chassis(3),
+       backplane(4),
+       container(5),
+       powerSupply(6),
+       fan(7),
+       sensor(8),
+       module(9),        
+       port(10),
+       stack(11)         
+    }
+
+SnmpEngineIdOrNone ::= TEXTUAL-CONVENTION
+    STATUS            current
+    DESCRIPTION
+            "A specially formatted SnmpEngineID string for use with the
+            Entity MIB.
+
+            If an instance of an object of SYNTAX SnmpEngineIdOrNone has
+            a non-zero length, then the object encoding and semantics
+            are defined by the SnmpEngineID textual convention (see RFC
+            2571 [RFC2571]).
+
+            If an instance of an object of SYNTAX SnmpEngineIdOrNone
+            contains a zero-length string, then no appropriate
+            SnmpEngineID is associated with the logical entity (i.e.,
+            SNMPv3 not supported)."
+    SYNTAX OCTET STRING (SIZE(0..32)) 
+
+entPhysicalTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF EntPhysicalEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This table contains one row per physical entity.  There is
+            always at least one row for an 'overall' physical entity."
+    ::= { entityPhysical 1 }
+
+entPhysicalEntry       OBJECT-TYPE
+    SYNTAX      EntPhysicalEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "Information about a particular physical entity.
+
+            Each entry provides objects (entPhysicalDescr,
+            entPhysicalVendorType, and entPhysicalClass) to help an NMS
+            identify and characterize the entry, and objects
+            (entPhysicalContainedIn and entPhysicalParentRelPos) to help
+            an NMS relate the particular entry to other entries in this
+            table."
+    INDEX   { entPhysicalIndex }
+    ::= { entPhysicalTable 1 }
+
+EntPhysicalEntry ::= SEQUENCE {
+      entPhysicalIndex          PhysicalIndex,
+      entPhysicalDescr          SnmpAdminString,
+      entPhysicalVendorType     AutonomousType,
+      entPhysicalContainedIn    INTEGER,
+      entPhysicalClass          PhysicalClass,
+      entPhysicalParentRelPos   INTEGER,
+      entPhysicalName           SnmpAdminString,
+      entPhysicalHardwareRev    SnmpAdminString,
+      entPhysicalFirmwareRev    SnmpAdminString,
+      entPhysicalSoftwareRev    SnmpAdminString,
+      entPhysicalSerialNum      SnmpAdminString,
+      entPhysicalMfgName        SnmpAdminString,
+      entPhysicalModelName      SnmpAdminString,
+      entPhysicalAlias          SnmpAdminString,
+      entPhysicalAssetID        SnmpAdminString,
+      entPhysicalIsFRU          TruthValue
+}
+
+entPhysicalIndex    OBJECT-TYPE
+    SYNTAX      PhysicalIndex
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "The index for this entry."
+    ::= { entPhysicalEntry 1 }
+
+entPhysicalDescr OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "A textual description of physical entity.  This object
+            should contain a string which identifies the manufacturer's
+            name for the physical entity, and should be set to a
+            distinct value for each version or model of the physical
+            entity. "
+    ::= { entPhysicalEntry 2 }
+
+entPhysicalVendorType OBJECT-TYPE
+    SYNTAX      AutonomousType
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "An indication of the vendor-specific hardware type of the
+            physical entity.  Note that this is different from the
+            definition of MIB-II's sysObjectID.
+
+            An agent should set this object to a enterprise-specific
+            registration identifier value indicating the specific
+            equipment type in detail.  The associated instance of
+            entPhysicalClass is used to indicate the general type of
+            hardware device.
+
+            If no vendor-specific registration identifier exists for
+            this physical entity, or the value is unknown by this agent,
+            then the value { 0 0 } is returned."
+    ::= { entPhysicalEntry 3 }
+
+entPhysicalContainedIn OBJECT-TYPE
+    SYNTAX      INTEGER (0..2147483647)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The value of entPhysicalIndex for the physical entity which
+            'contains' this physical entity.  A value of zero indicates
+            this physical entity is not contained in any other physical
+            entity.  Note that the set of 'containment' relationships
+            define a strict hierarchy; that is, recursion is not
+            allowed.
+
+            In the event a physical entity is contained by more than one
+            physical entity (e.g., double-wide modules), this object
+            should identify the containing entity with the lowest value
+            of entPhysicalIndex."
+    ::= { entPhysicalEntry 4 }
+
+entPhysicalClass OBJECT-TYPE
+    SYNTAX      PhysicalClass
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "An indication of the general hardware type of the physical
+            entity.
+
+            An agent should set this object to the standard enumeration
+            value which most accurately indicates the general class of
+            the physical entity, or the primary class if there is more
+            than one.
+
+            If no appropriate standard registration identifier exists
+            for this physical entity, then the value 'other(1)' is
+            returned. If the value is unknown by this agent, then the
+            value 'unknown(2)' is returned."
+    ::= { entPhysicalEntry 5 }
+
+entPhysicalParentRelPos OBJECT-TYPE
+    SYNTAX      INTEGER (-1..2147483647)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "An indication of the relative position of this 'child'
+            component among all its 'sibling' components. Sibling
+            components are defined as entPhysicalEntries which share the
+            same instance values of each of the entPhysicalContainedIn
+            and entPhysicalClass objects.
+
+            An NMS can use this object to identify the relative ordering
+            for all sibling components of a particular parent
+            (identified by the entPhysicalContainedIn instance in each
+            sibling entry).
+
+            This value should match any external labeling of the
+            physical component if possible. For example, for a container
+            (e.g., card slot) labeled as 'slot #3',
+            entPhysicalParentRelPos should have the value '3'.  Note
+            that the entPhysicalEntry for the module plugged in slot 3
+            should have an entPhysicalParentRelPos value of '1'.
+
+            If the physical position of this component does not match
+            any external numbering or clearly visible ordering, then
+            user documentation or other external reference material
+            should be used to determine the parent-relative position. If
+            this is not possible, then the the agent should assign a
+            consistent (but possibly arbitrary) ordering to a given set
+            of 'sibling' components, perhaps based on internal
+            representation of the components.
+
+            If the agent cannot determine the parent-relative position
+            for some reason, or if the associated value of
+            entPhysicalContainedIn is '0', then the value '-1' is
+            returned. Otherwise a non-negative integer is returned,
+            indicating the parent-relative position of this physical
+            entity.
+
+            Parent-relative ordering normally starts from '1' and
+            continues to 'N', where 'N' represents the highest
+            positioned child entity.  However, if the physical entities
+            (e.g., slots) are labeled from a starting position of zero,
+            then the first sibling should be associated with a
+            entPhysicalParentRelPos value of '0'.  Note that this
+            ordering may be sparse or dense, depending on agent
+            implementation.
+
+            The actual values returned are not globally meaningful, as
+            each 'parent' component may use different numbering
+            algorithms. The ordering is only meaningful among siblings
+            of the same parent component.
+
+            The agent should retain parent-relative position values
+            across reboots, either through algorithmic assignment or use
+            of non-volatile storage."
+    ::= { entPhysicalEntry 6 }
+
+entPhysicalName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The textual name of the physical entity.  The value of this
+            object should be the name of the component as assigned by
+            the local device and should be suitable for use in commands
+            entered at the device's `console'.  This might be a text
+            name, such as `console' or a simple component number (e.g.,
+            port or module number), such as `1', depending on the
+            physical component naming syntax of the device.
+
+            If there is no local name, or this object is otherwise not
+            applicable, then this object contains a zero-length string.
+
+            Note that the value of entPhysicalName for two physical
+            entities will be the same in the event that the console
+            interface does not distinguish between them, e.g., slot-1
+            and the card in slot-1."
+    ::= { entPhysicalEntry 7 }
+
+entPhysicalHardwareRev    OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The vendor-specific hardware revision string for the
+            physical entity.  The preferred value is the hardware
+            revision identifier actually printed on the component itself
+            (if present).
+
+            Note that if revision information is stored internally in a
+            non-printable (e.g., binary) format, then the agent must
+            convert such information to a printable format, in an
+            implementation-specific manner.
+
+            If no specific hardware revision string is associated with
+            the physical component, or this information is unknown to
+            the agent, then this object will contain a zero-length
+            string."
+    ::= { entPhysicalEntry 8 }
+
+entPhysicalFirmwareRev    OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The vendor-specific firmware revision string for the
+            physical entity.
+
+            Note that if revision information is stored internally in a
+            non-printable (e.g., binary) format, then the agent must
+            convert such information to a printable format, in an
+            implementation-specific manner.
+
+            If no specific firmware programs are associated with the
+            physical component, or this information is unknown to the
+            agent, then this object will contain a zero-length string."
+    ::= { entPhysicalEntry 9 }
+
+entPhysicalSoftwareRev    OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The vendor-specific software revision string for the
+            physical entity.
+
+            Note that if revision information is stored internally in a
+            non-printable (e.g., binary) format, then the agent must
+            convert such information to a printable format, in an
+            implementation-specific manner.
+
+            If no specific software programs are associated with the
+            physical component, or this information is unknown to the
+            agent, then this object will contain a zero-length string."
+    ::= { entPhysicalEntry 10 }
+
+entPhysicalSerialNum   OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE (0..32))
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+            "The vendor-specific serial number string for the physical
+            entity.  The preferred value is the serial number string
+            actually printed on the component itself (if present).
+
+            On the first instantiation of an physical entity, the value
+            of entPhysicalSerialNum associated with that entity is set
+            to the correct vendor-assigned serial number, if this
+            information is available to the agent.  If a serial number
+            is unknown or non-existent, the entPhysicalSerialNum will be
+            set to a zero-length string instead.
+
+            Note that implementations which can correctly identify the
+            serial numbers of all installed physical entities do not
+            need to provide write access to the entPhysicalSerialNum
+            object. Agents which cannot provide non-volatile storage for
+            the entPhysicalSerialNum strings are not required to
+            implement write access for this object.
+
+            Not every physical component will have a serial number, or
+            even need one.  Physical entities for which the associated
+            value of the entPhysicalIsFRU object is equal to 'false(2)'
+            (e.g., the repeater ports within a repeater module), do not
+            need their own unique serial number. An agent does not have
+            to provide write access for such entities, and may return a
+            zero-length string.
+
+            If write access is implemented for an instance of
+            entPhysicalSerialNum, and a value is written into the
+            instance, the agent must retain the supplied value in the
+            entPhysicalSerialNum instance associated with the same
+            physical entity for as long as that entity remains
+            instantiated. This includes instantiations across all re-
+            initializations/reboots of the network management system,
+            including those which result in a change of the physical
+            entity's entPhysicalIndex value."
+    ::= { entPhysicalEntry 11 }
+
+entPhysicalMfgName   OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The name of the manufacturer of this physical component.
+            The preferred value is the manufacturer name string actually
+            printed on the component itself (if present).
+            Note that comparisons between instances of the
+            entPhysicalModelName, entPhysicalFirmwareRev,
+            entPhysicalSoftwareRev, and the entPhysicalSerialNum
+            objects, are only meaningful amongst entPhysicalEntries with
+            the same value of entPhysicalMfgName.
+
+            If the manufacturer name string associated with the physical
+            component is unknown to the agent, then this object will
+            contain a zero-length string."
+    ::= { entPhysicalEntry 12 }
+
+entPhysicalModelName   OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The vendor-specific model name identifier string associated
+            with this physical component.  The preferred value is the
+            customer-visible part number, which may be printed on the
+            component itself.
+
+            If the model name string associated with the physical
+            component is unknown to the agent, then this object will
+            contain a zero-length string."
+    ::= { entPhysicalEntry 13 }
+
+entPhysicalAlias    OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE (0..32))
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+            "This object is an 'alias' name for the physical entity as
+            specified by a network manager, and provides a non-volatile
+            'handle' for the physical entity.
+
+            On the first instantiation of an physical entity, the value
+            of entPhysicalAlias associated with that entity is set to
+            the zero-length string.  However, agent may set the value to
+            a locally unique default value, instead of a zero-length
+            string.
+
+            If write access is implemented for an instance of
+            entPhysicalAlias, and a value is written into the instance,
+            the agent must retain the supplied value in the
+            entPhysicalAlias instance associated with the same physical
+            entity for as long as that entity remains instantiated.
+            This includes instantiations across all re-
+            initializations/reboots of the network management system,
+            including those which result in a change of the physical
+            entity's entPhysicalIndex value."
+    ::= { entPhysicalEntry 14 }
+
+entPhysicalAssetID OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE (0..32))
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+            "This object is a user-assigned asset tracking identifier
+            for the physical entity as specified by a network manager,
+            and provides non-volatile storage of this information.
+
+            On the first instantiation of an physical entity, the value
+            of entPhysicalAssetID associated with that entity is set to
+            the zero-length string.
+
+            Not every physical component will have a asset tracking
+            identifier, or even need one.  Physical entities for which
+            the associated value of the entPhysicalIsFRU object is equal
+            to 'false(2)' (e.g., the repeater ports within a repeater
+            module), do not need their own unique asset tracking
+            identifier. An agent does not have to provide write access
+            for such entities, and may instead return a zero-length
+            string.
+
+            If write access is implemented for an instance of
+            entPhysicalAssetID, and a value is written into the
+            instance, the agent must retain the supplied value in the
+            entPhysicalAssetID instance associated with the same
+            physical entity for as long as that entity remains
+            instantiated.  This includes instantiations across all re-
+            initializations/reboots of the network management system,
+            including those which result in a change of the physical
+            entity's entPhysicalIndex value.
+
+            If no asset tracking information is associated with the
+            physical component, then this object will contain a zero-
+            length string."
+    ::= { entPhysicalEntry 15 }
+
+entPhysicalIsFRU OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This object indicates whether or not this physical entity
+            is considered a 'field replaceable unit' by the vendor.  If
+            this object contains the value 'true(1)' then this
+            entPhysicalEntry identifies a field replaceable unit.  For
+            all entPhysicalEntries which represent components that are
+            permanently contained within a field replaceable unit, the
+            value 'false(2)' should be returned for this object."
+
+    ::= { entPhysicalEntry 16 }
+
+entLogicalTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF EntLogicalEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This table contains one row per logical entity.  For agents
+            which implement more than one naming scope, at least one
+            entry must exist. Agents which instantiate all MIB objects
+            within a single naming scope are not required to implement
+            this table."
+    ::= { entityLogical 1 }
+
+entLogicalEntry       OBJECT-TYPE
+    SYNTAX      EntLogicalEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "Information about a particular logical entity.  Entities
+            may be managed by this agent or other SNMP agents (possibly)
+            in the same chassis."
+    INDEX       { entLogicalIndex }
+    ::= { entLogicalTable 1 }
+
+EntLogicalEntry ::= SEQUENCE {
+      entLogicalIndex            INTEGER,
+      entLogicalDescr            SnmpAdminString,
+      entLogicalType             AutonomousType,
+      entLogicalCommunity        OCTET STRING,
+      entLogicalTAddress         TAddress,
+      entLogicalTDomain          TDomain,
+      entLogicalContextEngineID  SnmpEngineIdOrNone,
+      entLogicalContextName      SnmpAdminString
+}
+
+entLogicalIndex OBJECT-TYPE
+    SYNTAX      INTEGER (1..2147483647)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "The value of this object uniquely identifies the logical
+            entity. The value should be a small positive integer; index
+            values for different logical entities are are not
+            necessarily contiguous."
+    ::= { entLogicalEntry 1 }
+
+entLogicalDescr OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "A textual description of the logical entity.  This object
+            should contain a string which identifies the manufacturer's
+            name for the logical entity, and should be set to a distinct
+            value for each version of the logical entity. "
+    ::= { entLogicalEntry 2 }
+
+entLogicalType OBJECT-TYPE
+    SYNTAX      AutonomousType
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "An indication of the type of logical entity.  This will
+            typically be the OBJECT IDENTIFIER name of the node in the
+            SMI's naming hierarchy which represents the major MIB
+            module, or the majority of the MIB modules, supported by the
+            logical entity.  For example:
+               a logical entity of a regular host/router -> mib-2
+               a logical entity of a 802.1d bridge -> dot1dBridge
+               a logical entity of a 802.3 repeater -> snmpDot3RptrMgmt
+            If an appropriate node in the SMI's naming hierarchy cannot
+            be identified, the value 'mib-2' should be used."
+    ::= { entLogicalEntry 3 }
+
+entLogicalCommunity OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE (0..255))
+    MAX-ACCESS  read-only
+    STATUS      deprecated
+    DESCRIPTION
+            "An SNMPv1 or SNMPv2C community-string which can be used to
+            access detailed management information for this logical
+            entity.  The agent should allow read access with this
+            community string (to an appropriate subset of all managed
+            objects) and may also return a community string based on the
+            privileges of the request used to read this object.  Note
+            that an agent may return a community string with read-only
+            privileges, even if this object is accessed with a read-
+            write community string. However, the agent must take care
+            not to return a community string which allows more
+            privileges than the community string used to access this
+            object.
+
+            A compliant SNMP agent may wish to conserve naming scopes by
+            representing multiple logical entities in a single 'default'
+            naming scope.  This is possible when the logical entities
+            represented by the same value of entLogicalCommunity have no
+            object instances in common.  For example, 'bridge1' and
+            'repeater1' may be part of the main naming scope, but at
+            least one additional community string is needed to represent
+            'bridge2' and 'repeater2'.
+
+            Logical entities 'bridge1' and 'repeater1' would be
+            represented by sysOREntries associated with the 'default'
+            naming scope.
+
+            For agents not accessible via SNMPv1 or SNMPv2C, the value
+            of this object is the empty string.  This object may also
+            contain an empty string if a community string has not yet
+            been assigned by the agent, or no community string with
+            suitable access rights can be returned for a particular SNMP
+            request.
+
+            Note that this object is deprecated. Agents which implement
+            SNMPv3 access should use the entLogicalContextEngineID and
+            entLogicalContextName objects to identify the context
+            associated with each logical entity.  SNMPv3 agents may
+            return a zero-length string for this object, or may continue
+            to return a community string (e.g., tri-lingual agent
+            support)."
+    ::= { entLogicalEntry 4 }
+
+entLogicalTAddress OBJECT-TYPE
+    SYNTAX      TAddress
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The transport service address by which the logical entity
+            receives network management traffic, formatted according to
+            the corresponding value of entLogicalTDomain.
+
+            For snmpUDPDomain, a TAddress is 6 octets long, the initial
+            4 octets containing the IP-address in network-byte order and
+            the last 2 containing the UDP port in network-byte order.
+            Consult 'Transport Mappings for Version 2 of the Simple
+            Network Management Protocol' (RFC 1906 [RFC1906]) for
+            further information on snmpUDPDomain."
+    ::= { entLogicalEntry 5 }
+
+entLogicalTDomain OBJECT-TYPE
+    SYNTAX      TDomain
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "Indicates the kind of transport service by which the
+            logical entity receives network management traffic.
+            Possible values for this object are presently found in the
+            Transport Mappings for SNMPv2 document (RFC 1906
+            [RFC1906])."
+    ::= { entLogicalEntry 6 }
+
+entLogicalContextEngineID    OBJECT-TYPE
+    SYNTAX      SnmpEngineIdOrNone
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The authoritative contextEngineID that can be used to send
+            an SNMP message concerning information held by this logical
+            entity, to the address specified by the associated
+            'entLogicalTAddress/entLogicalTDomain' pair.
+
+            This object, together with the associated
+            entLogicalContextName object, defines the context associated
+            with a particular logical entity, and allows access to SNMP
+            engines identified by a contextEngineId and contextName
+            pair.
+
+            If no value has been configured by the agent, a zero-length
+            string is returned, or the agent may choose not to
+            instantiate this object at all."
+    ::= { entLogicalEntry 7 }
+
+entLogicalContextName    OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The contextName that can be used to send an SNMP message
+            concerning information held by this logical entity, to the
+            address specified by the associated
+            'entLogicalTAddress/entLogicalTDomain' pair.
+
+            This object, together with the associated
+            entLogicalContextEngineID object, defines the context
+            associated with a particular logical entity, and allows
+            access to SNMP engines identified by a contextEngineId and
+            contextName pair.
+
+            If no value has been configured by the agent, a zero-length
+            string is returned, or the agent may choose not to
+            instantiate this object at all."
+    ::= { entLogicalEntry 8 }
+
+entLPMappingTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF EntLPMappingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This table contains zero or more rows of logical entity to
+            physical equipment associations. For each logical entity
+            known by this agent, there are zero or more mappings to the
+            physical resources which are used to realize that logical
+            entity.
+
+            An agent should limit the number and nature of entries in
+            this table such that only meaningful and non-redundant
+            information is returned. For example, in a system which
+            contains a single power supply, mappings between logical
+            entities and the power supply are not useful and should not
+            be included.
+
+            Also, only the most appropriate physical component which is
+            closest to the root of a particular containment tree should
+            be identified in an entLPMapping entry.
+
+            For example, suppose a bridge is realized on a particular
+            module, and all ports on that module are ports on this
+            bridge. A mapping between the bridge and the module would be
+            useful, but additional mappings between the bridge and each
+            of the ports on that module would be redundant (since the
+            entPhysicalContainedIn hierarchy can provide the same
+            information). If, on the other hand, more than one bridge
+            was utilizing ports on this module, then mappings between
+            each bridge and the ports it used would be appropriate.
+
+            Also, in the case of a single backplane repeater, a mapping
+            for the backplane to the single repeater entity is not
+            necessary."
+    ::= { entityMapping 1 }
+
+entLPMappingEntry       OBJECT-TYPE
+    SYNTAX      EntLPMappingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "Information about a particular logical entity to physical
+            equipment association. Note that the nature of the
+            association is not specifically identified in this entry.
+            It is expected that sufficient information exists in the
+            MIBs used to manage a particular logical entity to infer how
+            physical component information is utilized."
+    INDEX       { entLogicalIndex, entLPPhysicalIndex }
+    ::= { entLPMappingTable 1 }
+
+EntLPMappingEntry ::= SEQUENCE {
+      entLPPhysicalIndex         PhysicalIndex
+}
+
+entLPPhysicalIndex OBJECT-TYPE
+    SYNTAX      PhysicalIndex
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The value of this object identifies the index value of a
+            particular entPhysicalEntry associated with the indicated
+            entLogicalEntity."
+    ::= { entLPMappingEntry 1 }
+
+entAliasMappingTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF EntAliasMappingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This table contains zero or more rows, representing
+            mappings of logical entity and physical component to
+            external MIB identifiers.  Each physical port in the system
+            may be associated with a mapping to an external identifier,
+            which itself is associated with a particular logical
+            entity's naming scope.  A 'wildcard' mechanism is provided
+            to indicate that an identifier is associated with more than
+            one logical entity."
+    ::= { entityMapping 2 }
+
+entAliasMappingEntry       OBJECT-TYPE
+    SYNTAX      EntAliasMappingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "Information about a particular physical equipment, logical
+            entity to external identifier binding. Each logical
+            entity/physical component pair may be associated with one
+            alias mapping.  The logical entity index may also be used as
+            a 'wildcard' (refer to the entAliasLogicalIndexOrZero object
+            DESCRIPTION clause for details.)
+
+            Note that only entPhysicalIndex values which represent
+            physical ports (i.e. associated entPhysicalClass value is
+            'port(10)') are permitted to exist in this table."
+    INDEX { entPhysicalIndex, entAliasLogicalIndexOrZero }
+    ::= { entAliasMappingTable 1 }
+
+EntAliasMappingEntry ::= SEQUENCE {
+      entAliasLogicalIndexOrZero        INTEGER,
+      entAliasMappingIdentifier          RowPointer
+}
+
+entAliasLogicalIndexOrZero OBJECT-TYPE
+    SYNTAX      INTEGER (0..2147483647)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "The value of this object identifies the logical entity
+            which defines the naming scope for the associated instance
+            of the 'entAliasMappingIdentifier' object.
+
+            If this object has a non-zero value, then it identifies the
+            logical entity named by the same value of entLogicalIndex.
+
+            If this object has a value of zero, then the mapping between
+            the physical component and the alias identifier for this
+            entAliasMapping entry is associated with all unspecified
+            logical entities. That is, a value of zero (the default
+            mapping) identifies any logical entity which does not have
+            an explicit entry in this table for a particular
+            entPhysicalIndex/entAliasMappingIdentifier pair.
+
+            For example, to indicate that a particular interface (e.g.,
+            physical component 33) is identified by the same value of
+            ifIndex for all logical entities, the following instance
+            might exist:
+
+                    entAliasMappingIdentifier.33.0 = ifIndex.5
+
+            In the event an entPhysicalEntry is associated differently
+            for some logical entities, additional entAliasMapping
+            entries may exist, e.g.:
+
+                    entAliasMappingIdentifier.33.0 = ifIndex.6
+                    entAliasMappingIdentifier.33.4 =  ifIndex.1
+                    entAliasMappingIdentifier.33.5 =  ifIndex.1
+                    entAliasMappingIdentifier.33.10 = ifIndex.12
+
+            Note that entries with non-zero entAliasLogicalIndexOrZero
+            index values have precedence over any zero-indexed entry. In
+            this example, all logical entities except 4, 5, and 10,
+            associate physical entity 33 with ifIndex.6."
+    ::= { entAliasMappingEntry 1 }
+
+entAliasMappingIdentifier OBJECT-TYPE
+    SYNTAX      RowPointer
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The value of this object identifies a particular conceptual
+            row associated with the indicated entPhysicalIndex and
+            entLogicalIndex pair.
+
+            Since only physical ports are modeled in this table, only
+            entries which represent interfaces or ports are allowed.  If
+            an ifEntry exists on behalf of a particular physical port,
+            then this object should identify the associated 'ifEntry'.
+            For repeater ports, the appropriate row in the
+            'rptrPortGroupTable' should be identified instead.
+
+            For example, suppose a physical port was represented by
+            entPhysicalEntry.3, entLogicalEntry.15 existed for a
+            repeater, and entLogicalEntry.22 existed for a bridge.  Then
+            there might be two related instances of
+            entAliasMappingIdentifier:
+               entAliasMappingIdentifier.3.15 == rptrPortGroupIndex.5.2
+               entAliasMappingIdentifier.3.22 == ifIndex.17
+            It is possible that other mappings (besides interfaces and
+            repeater ports) may be defined in the future, as required.
+
+            Bridge ports are identified by examining the Bridge MIB and
+            appropriate ifEntries associated with each 'dot1dBasePort',
+            and are thus not represented in this table."
+    ::= { entAliasMappingEntry 2 }
+
+entPhysicalContainsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF EntPhysicalContainsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "A table which exposes the container/'containee'
+            relationships between physical entities. This table provides
+            all the information found by constructing the virtual
+            containment tree for a given entPhysicalTable, but in a more
+            direct format.
+
+            In the event a physical entity is contained by more than one
+            other physical entity (e.g., double-wide modules), this
+            table should include these additional mappings, which cannot
+            be represented in the entPhysicalTable virtual containment
+            tree."
+    ::= { entityMapping 3 }
+
+entPhysicalContainsEntry OBJECT-TYPE
+    SYNTAX      EntPhysicalContainsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "A single container/'containee' relationship."
+    INDEX       { entPhysicalIndex, entPhysicalChildIndex }
+    ::= { entPhysicalContainsTable 1 }
+
+EntPhysicalContainsEntry ::= SEQUENCE {
+      entPhysicalChildIndex     PhysicalIndex
+}
+
+entPhysicalChildIndex OBJECT-TYPE
+    SYNTAX      PhysicalIndex
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The value of entPhysicalIndex for the contained physical
+            entity."
+    ::= { entPhysicalContainsEntry 1 }
+
+entLastChangeTime OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The value of sysUpTime at the time a conceptual row is
+            created, modified, or deleted in any of these tables:
+                    - entPhysicalTable
+                    - entLogicalTable
+                    - entLPMappingTable
+                    - entAliasMappingTable
+                    - entPhysicalContainsTable
+            "
+    ::= { entityGeneral 1 }
+
+entityMIBTraps      OBJECT IDENTIFIER ::= { entityMIB 2 }
+entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 }
+
+entConfigChange NOTIFICATION-TYPE
+    STATUS             current
+    DESCRIPTION
+            "An entConfigChange notification is generated when the value
+            of entLastChangeTime changes. It can be utilized by an NMS
+            to trigger logical/physical entity table maintenance polls.
+
+            An agent should not generate more than one entConfigChange
+            'notification-event' in a given time interval (five seconds
+            is the suggested default).  A 'notification-event' is the
+            transmission of a single trap or inform PDU to a list of
+            notification destinations.
+
+            If additional configuration changes occur within the
+            throttling period, then notification-events for these
+            changes should be suppressed by the agent until the current
+            throttling period expires.  At the end of a throttling
+            period, one notification-event should be generated if any
+            configuration changes occurred since the start of the
+            throttling period. In such a case, another throttling period
+            is started right away.
+
+            An NMS should periodically check the value of
+            entLastChangeTime to detect any missed entConfigChange
+            notification-events, e.g., due to throttling or transmission
+            loss."
+   ::= { entityMIBTrapPrefix 1 }
+
+entityConformance OBJECT IDENTIFIER ::= { entityMIB 3 }
+
+entityCompliances OBJECT IDENTIFIER ::= { entityConformance 1 }
+entityGroups      OBJECT IDENTIFIER ::= { entityConformance 2 }
+
+entityCompliance MODULE-COMPLIANCE
+    STATUS  deprecated
+    DESCRIPTION
+            "The compliance statement for SNMP entities which implement
+            version 1 of the Entity MIB."
+    MODULE  
+        MANDATORY-GROUPS {
+                           entityPhysicalGroup,
+                           entityLogicalGroup,
+                           entityMappingGroup,
+                           entityGeneralGroup,
+                           entityNotificationsGroup
+        }
+    ::= { entityCompliances 1 }
+
+entity2Compliance MODULE-COMPLIANCE
+    STATUS  current
+    DESCRIPTION
+            "The compliance statement for SNMP entities which implement
+            version 2 of the Entity MIB."
+    MODULE  
+        MANDATORY-GROUPS {
+                           entityPhysicalGroup,
+                           entityPhysical2Group,
+                           entityGeneralGroup,
+                           entityNotificationsGroup
+        }
+        GROUP entityLogical2Group
+        DESCRIPTION
+            "Implementation of this group is not mandatory for agents
+            which model all MIB object instances within a single naming
+            scope."
+
+        GROUP entityMappingGroup
+        DESCRIPTION
+            "Implementation of the entPhysicalContainsTable is mandatory
+            for all agents.  Implementation of the entLPMappingTable and
+            entAliasMappingTables are not mandatory for agents which
+            model all MIB object instances within a single naming scope.
+
+            Note that the entAliasMappingTable may be useful for all
+            agents, however implementation of the entityLogicalGroup or
+            entityLogical2Group is required to support this table."
+
+        OBJECT entPhysicalSerialNum
+        MIN-ACCESS   not-accessible
+        DESCRIPTION
+            "Read and write access is not required for agents which
+            cannot identify serial number information for physical
+            entities, and/or cannot provide non-volatile storage for
+            NMS-assigned serial numbers.
+
+            Write access is not required for agents which can identify
+            serial number information for physical entities, but cannot
+            provide non-volatile storage for NMS-assigned serial
+            numbers.
+
+            Write access is not required for physical entities for
+            physical entities for which the associated value of the
+            entPhysicalIsFRU object is equal to 'false(2)'."
+
+        OBJECT entPhysicalAlias
+        MIN-ACCESS   read-only
+        DESCRIPTION
+            "Write access is required only if the associated
+            entPhysicalClass value is equal to 'chassis(3)'."
+
+        OBJECT entPhysicalAssetID
+        MIN-ACCESS   not-accessible
+        DESCRIPTION
+            "Read and write access is not required for agents which
+            cannot provide non-volatile storage for NMS-assigned asset
+            identifiers.
+
+            Write access is not required for physical entities for which
+            the associated value of entPhysicalIsFRU is equal to
+            'false(2)'."
+    ::= { entityCompliances 2 }
+
+entityPhysicalGroup    OBJECT-GROUP
+    OBJECTS {
+              entPhysicalDescr,
+              entPhysicalVendorType,
+              entPhysicalContainedIn,
+              entPhysicalClass,
+              entPhysicalParentRelPos,
+              entPhysicalName
+            }
+    STATUS  current
+    DESCRIPTION
+            "The collection of objects which are used to represent
+            physical system components, for which a single agent
+            provides management information."
+    ::= { entityGroups 1 }
+
+entityLogicalGroup    OBJECT-GROUP
+    OBJECTS {
+              entLogicalDescr,
+              entLogicalType,
+              entLogicalCommunity,
+              entLogicalTAddress,
+              entLogicalTDomain
+            }
+    STATUS  deprecated
+    DESCRIPTION
+            "The collection of objects which are used to represent the
+            list of logical entities for which a single agent provides
+            management information."
+    ::= { entityGroups 2 }
+
+entityMappingGroup    OBJECT-GROUP
+    OBJECTS {
+              entLPPhysicalIndex,
+              entAliasMappingIdentifier,
+              entPhysicalChildIndex
+            }
+    STATUS  current
+    DESCRIPTION
+            "The collection of objects which are used to represent the
+            associations between multiple logical entities, physical
+            components, interfaces, and port identifiers for which a
+            single agent provides management information."
+    ::= { entityGroups 3 }
+
+entityGeneralGroup    OBJECT-GROUP
+    OBJECTS {
+              entLastChangeTime
+            }
+    STATUS  current
+    DESCRIPTION
+            "The collection of objects which are used to represent
+            general entity information for which a single agent provides
+            management information."
+    ::= { entityGroups 4 }
+
+entityNotificationsGroup NOTIFICATION-GROUP
+    NOTIFICATIONS { entConfigChange }
+    STATUS        current
+    DESCRIPTION
+            "The collection of notifications used to indicate Entity MIB
+            data consistency and general status information."
+    ::= { entityGroups 5 }
+
+entityPhysical2Group    OBJECT-GROUP
+    OBJECTS {
+              entPhysicalHardwareRev,
+              entPhysicalFirmwareRev,
+              entPhysicalSoftwareRev,
+              entPhysicalSerialNum,
+              entPhysicalMfgName,
+              entPhysicalModelName,
+              entPhysicalAlias,
+              entPhysicalAssetID,
+              entPhysicalIsFRU
+            }
+
+    STATUS  current
+    DESCRIPTION
+            "The collection of objects which are used to represent
+            physical system components, for which a single agent
+            provides management information.  This group augments the
+            objects contained in the entityPhysicalGroup."
+    ::= { entityGroups 6 }
+
+entityLogical2Group    OBJECT-GROUP
+    OBJECTS {
+              entLogicalDescr,
+              entLogicalType,
+              entLogicalTAddress,
+              entLogicalTDomain,
+              entLogicalContextEngineID,
+              entLogicalContextName
+            }
+    STATUS  current
+    DESCRIPTION
+            "The collection of objects which are used to represent the
+            list of logical entities for which a single SNMP entity
+            provides management information."
+    ::= { entityGroups 7 }
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# U.S. Government Rights - Commercial software. Government users are subject
+# to the Sun Microsystems, Inc. standard license agreement and applicable
+# provisions of the FAR and its supplements.
+#
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+# trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+#
+# Makefile to install mibs
+# 
+# usage:
+# "make install"
+
+# removed health-monitor-mib.mib
+
+MIBFILES= smatrap.mib \
+      ENTITY-MIB.txt \
+      SUN-MIB.txt \
+      SUN-SEA-EXTENSIONS-MIB.txt \
+      SUN-SEA-PROXY-MIB.txt
+
+all:
+# make all does nothing, but the upper-level makefile calls it
+
+install:
+	cp ./$(MIBFILES) $(ROOT)/etc/net-snmp/snmp/mibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/SUN-MIB.txt	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,39 @@
+--
+-- Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+--
+-- U.S. Government Rights - Commercial software. Government users are subject to
+-- the Sun Microsystems, Inc. standard license agreement and applicable
+-- provisions of the FAR and its supplements.
+--
+--
+-- This distribution may include materials developed by third parties. Sun, Sun
+-- Microsystems, the Sun logo and Solaris are trademarks or registered
+-- trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+--
+--
+
+---------------------------------------------------------------
+-- Systems Management Agent (SMA) SUN Enterprise definition MIB
+---------------------------------------------------------------
+
+SUN-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    enterprises, MODULE-IDENTITY FROM SNMPv2-SMI;
+
+sunMIB MODULE-IDENTITY
+    LAST-UPDATED "200309180000Z"
+    ORGANIZATION "Sun Microsystems, Inc."
+    CONTACT-INFO "Customer support"
+    DESCRIPTION
+            "MIB that defines the Sun enterprise
+            "
+    ::= { enterprises 42 }
+
+sun OBJECT IDENTIFIER ::= { enterprises 42 }
+products OBJECT IDENTIFIER ::= { sun 2 }
+management OBJECT IDENTIFIER ::= { products 2 }
+sma OBJECT IDENTIFIER ::= { management 4 }
+
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/SUN-SEA-EXTENSIONS-MIB.txt	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,384 @@
+--
+-- Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+--
+-- U.S. Government Rights - Commercial software. Government users are subject to
+-- the Sun Microsystems, Inc. standard license agreement and applicable
+-- provisions of the FAR and its supplements.
+--
+--
+-- This distribution may include materials developed by third parties. Sun, Sun
+-- Microsystems, the Sun logo and Solaris are trademarks or registered
+-- trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+--
+--
+
+----------------------------------------------------
+-- Systems Management Agent (SMA) SEA Extensions MIB
+----------------------------------------------------
+
+SUN-SEA-EXTENSIONS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    enterprises, mgmt, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks 
+        FROM RFC1155-SMI
+    DisplayString
+        FROM SNMPv2-TC
+    sunMIB
+        FROM SUN-MIB;
+
+sunSeaExtensionsMIB MODULE-IDENTITY
+    LAST-UPDATED "200309180000Z"
+    ORGANIZATION "Sun Microsystems, Inc."
+    CONTACT-INFO "Customer support"
+    DESCRIPTION
+            "The MIB that describes the sun-specific extensions to mib-2
+            "
+    ::= { sunMIB 3 }
+
+
+--  **********************************************************************
+--  SUN EXTENSIONS
+--  **********************************************************************
+
+	sunSystem	OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 1 }
+	sunInterfaces	OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 2 }
+	sunAt		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 3 }
+	sunIp		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 4 }
+	sunIcmp		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 5 }
+	sunTcp		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 6 }
+	sunUdp		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 7 }
+	sunSnmp		OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 11 }
+	sunProcesses	OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 12 }
+	sunHostPerf	OBJECT IDENTIFIER ::= { sunSeaExtensionsMIB 13 }
+
+--  **********************************************************************
+--  SUN SYSTEM GROUP
+--  **********************************************************************
+
+	agentDescr	OBJECT-TYPE
+		SYNTAX	DisplayString (SIZE (0..255))
+		ACCESS	read-only
+		STATUS	mandatory
+		DESCRIPTION
+			"The SNMP agent's description of itself."
+		::= { sunSystem 1 }
+
+	hostID	OBJECT-TYPE
+		SYNTAX  OCTET STRING (SIZE (4))
+		ACCESS  read-only
+		STATUS	mandatory
+		DESCRIPTION
+			"The unique Sun hardware identifier.
+			The value returned is four byte binary
+			string."
+		::= { sunSystem 2 }
+
+	motd	OBJECT-TYPE
+		SYNTAX	DisplayString (SIZE (0..255))
+		ACCESS  read-only
+		STATUS	mandatory
+		DESCRIPTION
+			"The first line of /etc/motd."
+		::= { sunSystem 3 }
+
+	unixTime OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The Unix system time.  Measured in seconds
+			since January 1, 1970 GMT."
+		::= { sunSystem 4 }
+
+-- the Sun Processes group
+-- the Sun Process table table
+-- This table is lists all the processes currently
+-- in execution.
+
+	sunProcessTable OBJECT-TYPE
+		SYNTAX  SEQUENCE OF PsEntry
+		ACCESS  read-only
+		STATUS  mandatory
+		::= { sunProcesses 1 }
+
+	psEntry OBJECT-TYPE
+		SYNTAX  PsEntry
+		ACCESS  read-only
+		STATUS  mandatory
+		INDEX   { psProcessID }
+		::= { sunProcessTable 1 }
+		PsEntry ::= SEQUENCE {
+		psProcessID
+		INTEGER,
+		psParentProcessID
+		INTEGER,
+		psProcessSize
+		INTEGER,
+		psProcessCpuTime
+		INTEGER,
+		psProcessState
+		DisplayString,
+		psProcessWaitChannel
+		DisplayString,
+		psProcessTTY
+		DisplayString,
+		psProcessUserName
+		DisplayString,
+		psProcessUserID
+		INTEGER,
+		psProcessName
+		DisplayString,
+		psProcessStatus
+		INTEGER
+		}
+
+	psProcessID OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The process identifier for this process."
+		::= { psEntry 1 }
+
+	psParentProcessID OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The process identifier of this process's parent."
+		::= { psEntry 2 }
+
+	psProcessSize OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The combined size of the data and stack segments
+			(in kilobytes.)"
+		::= { psEntry 3 }
+
+	psProcessCpuTime OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The CPU time (including both user and system
+			time) consumed so far."
+		::= { psEntry 4 }
+
+	psProcessState OBJECT-TYPE
+		SYNTAX  DisplayString (SIZE (0..4))
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"The run-state of the process.
+			R - Runnable
+			T - Stopped
+			P - In page wait
+			D - Non-interruptable wait
+			S - Sleeping (less than 20 seconds)
+			I - Idle (more than 20 seconds)
+			Z - Zombie"
+		::= { psEntry 5 }
+
+	psProcessWaitChannel OBJECT-TYPE
+		SYNTAX  DisplayString (SIZE (0..16))
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Reason process is waiting."
+		::= { psEntry 6 }
+
+	psProcessTTY OBJECT-TYPE
+		SYNTAX  DisplayString (SIZE (0..16))
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Terminal, if any, controlling this process."
+		::= { psEntry 7 }
+
+	psProcessUserName OBJECT-TYPE
+		SYNTAX  DisplayString (SIZE (0..16))
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Name of the user associated with this process."
+		::= { psEntry 8 }
+
+	psProcessUserID OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Numeric form of the name of the user associated
+			with this process."
+		::= { psEntry 9 }
+
+	psProcessName OBJECT-TYPE
+		SYNTAX  DisplayString (SIZE (0..64))
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Command name used to invoke this process."
+		::= { psEntry 10 }
+
+	psProcessStatus OBJECT-TYPE
+		SYNTAX  INTEGER
+		ACCESS  read-write
+		STATUS  mandatory
+		DESCRIPTION
+			"Setting this variable will cause a signal
+			of the set value to be sent to the process."
+		::= { psEntry 11 }
+
+-- the Sun Hostperf group
+
+	rsUserProcessTime OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"total number of timeticks used by user processes
+			since the system was last booted."
+		::=  { sunHostPerf 1 }
+
+	rsNiceModeTime OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"total number of timeticks used by nice mode since
+			the system was last booted."
+		::=  { sunHostPerf 2 }
+
+	rsSystemProcessTime OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"total number of timeticks used by system processes
+			since the system was last booted."
+		::=  { sunHostPerf 3 }
+
+	rsIdleModeTime OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"total number of timeticks used in idle mode since
+			the system was last booted."
+		::=  { sunHostPerf 4 }
+
+	rsDiskXfer1 OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			""
+		::=  { sunHostPerf 5 }
+
+	rsDiskXfer2 OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			""
+		::=  { sunHostPerf 6 }
+
+	rsDiskXfer3 OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			""
+		::=  { sunHostPerf 7 }
+
+	rsDiskXfer4 OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			""
+		::=  { sunHostPerf 8 }
+
+	rsVPagesIn OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of pages read in from disk."
+		::=  { sunHostPerf 9 }
+
+	rsVPagesOut OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of pages written to disk."
+		::=  { sunHostPerf 10 }
+
+	rsVSwapIn OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+		"Number of pages swapped in."
+		::=  { sunHostPerf 11 }
+
+	rsVSwapOut OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of pages swapped out."
+		::=  { sunHostPerf 12 }
+
+	rsVIntr OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+		"Number of device interrupts."
+		::=  { sunHostPerf 13 }
+		
+	rsIfInPackets OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of input packets."
+		::=  { sunHostPerf 14 }
+
+	rsIfOutPackets OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of output packets."
+		::=  { sunHostPerf 15 }
+
+	rsIfInErrors OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of input errors."
+		::=  { sunHostPerf 16 }
+		
+	rsIfOutErrors OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of output errors."
+		::=  { sunHostPerf 17 }
+
+	rsIfCollisions OBJECT-TYPE
+		SYNTAX  Counter
+		ACCESS  read-only
+		STATUS  mandatory
+		DESCRIPTION
+			"Number of output collisions."
+		::=  { sunHostPerf 18 }
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/SUN-SEA-PROXY-MIB.txt	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,529 @@
+--
+-- Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+--
+-- U.S. Government Rights - Commercial software. Government users are subject to
+-- the Sun Microsystems, Inc. standard license agreement and applicable
+-- provisions of the FAR and its supplements.
+--
+--
+-- This distribution may include materials developed by third parties. Sun, Sun
+-- Microsystems, the Sun logo and Solaris are trademarks or registered
+-- trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+--
+--
+
+------------------------------------------------
+-- Systems Management Agent (SMA) SEA Proxy  MIB
+------------------------------------------------
+
+SUN-SEA-PROXY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    DisplayString
+        FROM SNMPv2-TC
+    products
+        FROM SUN-MIB;
+
+sunSeaProxyMIB MODULE-IDENTITY
+    LAST-UPDATED "200309180000Z"
+    ORGANIZATION "Sun Microsystems, Inc."
+    CONTACT-INFO "Customer support"
+    DESCRIPTION
+            "The MIB used to manage the snmpdx master agent daemon
+            "
+    ::= { products 15 }
+
+
+--
+-- ********** Global Master agent Information ******
+--
+
+  sunSeaProxyMIBStatusFile	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This file stores the process id's of all the sub agents
+		 that are invoked by the master agent.
+		 The purpose of this file is for Master Agent recovery in
+		 case the Master Agent dies or is killed. When the Master
+		 Agent restarts, the entries in this file will indicate
+		 which subagents are spawned by it previously and what
+		 were their port numbers." 
+	::= { sunSeaProxyMIB 1 }
+
+  sunSeaProxyMIBResourceConfigFile	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This file is exclusively used by the Master Agent.
+		 When the Master Agent comes up, it reads this file.
+		 This files stores information for all those agents
+		 that can be managed by the Master Agent. Each entry
+		 in the configuration file also includes the methods
+		 for invoking these subagents. It is also possible for
+		 a subagent not to have an entry in this configuration
+		 file. Such a subagent can dynamically come up and
+		 register with the Master Agent when it comes up."
+	::= { sunSeaProxyMIB 2 }
+
+  sunSeaProxyMIBConfigurationDir	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This is the directory that contains the configuration
+		 files for the Master Agent."
+	::= { sunSeaProxyMIB 3 }
+
+  sunSeaProxyMIBTrapPort	OBJECT-TYPE
+	SYNTAX	INTEGER 
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This is the port that master agent opens to receive SNMP trap
+		 notifications from various subagents. The master agent 
+		 forwards these traps to the managers appropriately."
+	::= { sunSeaProxyMIB 4 }
+
+  sunCheckSubAgentName OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"This variable is of use to the sub agents only. It is
+		 used by the sub agents to check with the master
+		 to  check for duplicate sub agent names."
+	::= { sunSeaProxyMIB 5 }
+
+  sunSeaProxyMIBPollInterval OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This variable speicifies the time interval after which
+		 the Master Agent will perform activities other than
+		 receiving/sending of SNMP messages. The other activities
+		 include trying to find out if there is a change in the
+		 resource file, discover if all the agents are responding,
+		 and other such routine house keeping activities.
+ 		 This field contains values in seconds."
+	::= { sunSeaProxyMIB 6 }
+
+  sunSeaProxyMIBMaxAgentTimeOut OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"The value of this field can be specified in microseconds.
+		 This field signifies the max allowed time-out a subagent
+		 can request during registration; e.g., when the Master
+		 Agent sends a request to a subagent. It waits for some
+		 time-out to receive the response. This time-out can be
+		 specified in the registration file or can also be set
+		 using dynamic registration. If an agent sets this time-out
+		 outrageously high, it can create problems for the
+		 Master Agent and other agents. To avoid such a problem,
+		 the Master Agent can have a policy of specifying a
+		 maximum value for which the Master Agent will wait for
+		 a response from the subagent. This maximum value of
+		 time-out is specified with this variable."
+	::= { sunSeaProxyMIB 7 }
+
+--
+-- *********** agentTable **************
+--
+  sunSubAgentTable	OBJECT-TYPE
+	SYNTAX	SEQUENCE OF SunSubAgentEntry
+	ACCESS	not-accessible
+	STATUS	mandatory
+	DESCRIPTION
+		"This table lists all the sub-agents that are registered
+		 with the master agent. The list contains the names of all
+		 the sub agents that are currently running on the system.
+		 Some of these sub agents could be invoked by the master
+		 agent and other's could have benn invoked by other means."
+	::= { sunSeaProxyMIB 8 }
+
+  sunSubAgentTableIndex	OBJECT-TYPE
+	SYNTAX	INTEGER (0..65535)
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The next available index in sunSubAgentTable."
+	::= { sunSeaProxyMIB 9 }
+
+--
+-- ************** agentEntry(Table Entry) ************
+--
+  sunSubAgentEntry 	OBJECT-TYPE
+	SYNTAX	SunSubAgentEntry
+	ACCESS	not-accessible
+	STATUS	mandatory
+	DESCRIPTION	
+		"An entry in the sub-agent table."
+	INDEX { sunSubAgentID }
+	::= { sunSubAgentTable 1}
+
+  SunSubAgentEntry ::=
+	SEQUENCE {
+		sunSubAgentID
+			INTEGER,
+		sunSubAgentStatus
+			INTEGER,
+		sunSubAgentTimeout
+			INTEGER,
+		sunSubAgentPortNumber
+			INTEGER,
+		sunSubAgentRegistrationFile
+			DisplayString,
+		sunSubAgentAccessControlFile
+			DisplayString,
+		sunSubAgentExecutable
+			DisplayString,
+		sunSubAgentVersionNum
+			DisplayString,
+		sunSubAgentProcessID
+			INTEGER,
+		sunSubAgentName
+			DisplayString,
+  		sunSubAgentSystemUpTime
+			TimeTicks,
+		sunSubAgentWatchDogTime
+			INTEGER
+	}
+
+
+  sunSubAgentID 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"This is the id for each sub agent that is running and
+		 registered with the master agent."
+	::= { sunSubAgentEntry 1 }
+
+  sunSubAgentStatus 	OBJECT-TYPE
+	SYNTAX	INTEGER { init(1), load(2), active(3), inactive(4), destroy(5) }
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"This variable provides the state of the sub-agent. When the
+		 sub-agent is started the state is 'init'. Once the sub-agent
+		 has read it's configuration files, but has not registered
+		 with the master , the state is 'load'. After the 'load'
+		 state the  sub-agent goes into 'active' state. In this state
+		 the sub-agent has registered with the master agent and
+		 would respond to any requests from the master agent and can
+		 also generate traps."
+	::= { sunSubAgentEntry 2 }
+
+  sunSubAgentTimeout 	OBJECT-TYPE
+	SYNTAX	INTEGER 
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The max. time for which the master agent would wait
+		 for a  sub-agent to complete the request. The value is
+		 specified in usec. "
+	::= { sunSubAgentEntry 3 }
+
+  sunSubAgentPortNumber 	OBJECT-TYPE
+	SYNTAX	INTEGER (0..65535)
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The port number of the sub-agent on which it listens for
+		 requests from the master agent."
+	::= { sunSubAgentEntry 4 }
+
+  sunSubAgentRegistrationFile 	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"This is the registration file of a sub-agent. Each sub-agent
+		 has its own registration file. This file contains information
+		 pertinent to each agent. The information includes the name
+		 of the agent, the subtree OIDs managed by the respective
+		 agent, request time out, the preferred port number, etc."
+	::= { sunSubAgentEntry 5 }
+
+  sunSubAgentAccessControlFile 	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"This is a file that has the access control information
+		 for each sub agent. It stores SNMP-related community
+		 information. Every subagent and a Master Agent can have
+		 its own access control file."
+	::= { sunSubAgentEntry 6 }
+
+  sunSubAgentExecutable 	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The executable file of the sub-agent."
+	::= { sunSubAgentEntry 7 }
+  
+  sunSubAgentVersionNum 	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The version number  of the sub-agent."
+	::= { sunSubAgentEntry 8 }
+
+  sunSubAgentProcessID 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The process id of the sub-agent."
+	::= { sunSubAgentEntry 9 }
+
+  sunSubAgentName 	OBJECT-TYPE
+	SYNTAX	DisplayString
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The name of the sub-agent. This is assigned by the user."
+	::= { sunSubAgentEntry 10 }
+
+  sunSubAgentSystemUpTime 	OBJECT-TYPE
+	SYNTAX	TimeTicks
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The system up time of the sub-agent."
+	::= { sunSubAgentEntry 11 }
+
+  sunSubAgentWatchDogTime 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"This timeout is used by the Master Agent to determine
+		 if the subagent is up or not. The Master Agent will poll
+		 the subagent only if there has been no activity between
+		 the Master Agent and the subagent for this specified
+		 interval. This interval is specified in seconds."
+	::= { sunSubAgentEntry 12 }
+
+
+
+--
+-- ********** SubTreeConfigurationTable ****************
+--
+  sunSubTreeConfigurationTable        OBJECT-TYPE
+        SYNTAX SEQUENCE OF SunSubTreeConfigurationEntry
+        ACCESS not-accessible
+        STATUS mandatory
+        DESCRIPTION
+                "This is the table of subtree registration requests made
+		 by the sub agents. The enteries in this table also include
+		 the sub tree OID's of those agents that are invkoed by
+		 the master agent. This table thus consists of enteries
+		 as configured in the sub agent registration files. These
+		 sub tree OID's are flattened into a OID sub tree dispatch
+		 table in the master agent which is also defined in this MIB."
+        ::= { sunSeaProxyMIB 10 }
+
+  sunSubTreeConfigurationTableIndex	OBJECT-TYPE
+	SYNTAX	INTEGER (0..65535)
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"The next available index in sunSubTreeConfigurationTable."
+	::= { sunSeaProxyMIB 11 }
+
+--
+-- ************** RegTreeEntry(Table Entry) ************
+--
+  sunSubTreeConfigurationEntry        OBJECT-TYPE
+        SYNTAX SunSubTreeConfigurationEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+                "An entry for table registration."
+        INDEX { sunSubTreeAgentID, sunSubTreeIndex }
+        ::= { sunSubTreeConfigurationTable 1 }
+
+  SunSubTreeConfigurationEntry ::=
+        SEQUENCE {
+		sunSubTreeIndex
+			INTEGER,
+		sunSubTreeAgentID
+			INTEGER,
+		sunSubTreeOID
+			OBJECT IDENTIFIER,
+		sunSubTreeStartColumn
+			INTEGER,
+		sunSubTreeEndColumn
+			INTEGER,
+		sunSubTreeStartRow
+			INTEGER,
+		sunSubTreeEndRow
+			INTEGER,
+--		sunSubTreeView
+--			DisplayString,
+		sunSubTreeStatus
+			INTEGER
+	}
+
+  sunSubTreeIndex 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"The index of the table registration."
+	::= { sunSubTreeConfigurationEntry 1 }
+
+  sunSubTreeAgentID 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"ID of the sub-agent."
+	::= { sunSubTreeConfigurationEntry  2 }
+
+  sunSubTreeOID 	OBJECT-TYPE
+	SYNTAX	OBJECT IDENTIFIER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The oid of the subtree table that is being registered. A
+		 sub agent can have multiple sub tree oid's registered
+		 as seperate enteries."
+	::= { sunSubTreeConfigurationEntry 3 }
+
+  sunSubTreeStartColumn 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"Starting column of the sub table."
+	::= { sunSubTreeConfigurationEntry  4 }
+
+  sunSubTreeEndColumn 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"Ending column of the sub table."
+	::= { sunSubTreeConfigurationEntry  5 }
+
+  sunSubTreeStartRow 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"Starting row of the sub table."
+	::= { sunSubTreeConfigurationEntry  6 }
+
+  sunSubTreeEndRow 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"Ending row of the sub table."
+	::= { sunSubTreeConfigurationEntry  7 }
+
+
+  sunSubTreeStatus 	OBJECT-TYPE
+	SYNTAX	INTEGER { active(1), inactive(2) }
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The variable allows to activate or delete the enteries
+		 in this table."
+	::= { sunSubTreeConfigurationEntry 8 }
+
+--
+-- ********** RegTreeTable ****************
+--
+  sunSubTreeDispatchTable        OBJECT-TYPE
+        SYNTAX SEQUENCE OF SunSubTreeDispatchEntry
+        ACCESS not-accessible
+        STATUS mandatory
+        DESCRIPTION
+                "This table lists all the OID enteries that are
+		 used by the master agent to dispatch the requests to the
+		 sub agents. This table is based on the sub-tree
+		 registration configured in the sub agents registration
+		 files."
+        ::= { sunSeaProxyMIB 12 }
+
+  sunSubTreeDispatchTableIndex	OBJECT-TYPE
+	SYNTAX	INTEGER (0..65535)
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"The next available index in sunSubTreeDispatchTable."
+	::= { sunSeaProxyMIB 13 }
+
+
+--
+-- ************** Dispatch Table ************
+--
+  sunSubTreeDispatchEntry        OBJECT-TYPE
+        SYNTAX SunSubTreeDispatchEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+                "An entry for tree registration."
+        INDEX { sunSubTreeDispatchAgentID, sunSubTreeDispatchIndex }
+        ::= { sunSubTreeDispatchTable 1 }
+
+  SunSubTreeDispatchEntry ::=
+        SEQUENCE {
+		sunSubTreeDispatchIndex
+			INTEGER,
+		sunSubTreeDispatchAgentID
+			INTEGER,
+		sunSubTreeDispatchOID
+			OBJECT IDENTIFIER,
+		sunSubTreeDispatchStatus
+			INTEGER
+	}
+
+
+  sunSubTreeDispatchIndex 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		"The index of the dispatch table entry."
+	::= { sunSubTreeDispatchEntry 1 }
+
+  sunSubTreeDispatchAgentID 	OBJECT-TYPE
+	SYNTAX	INTEGER
+	ACCESS	read-only
+	STATUS	mandatory
+	DESCRIPTION
+		""
+	::= { sunSubTreeDispatchEntry  2 }
+
+  sunSubTreeDispatchOID 	OBJECT-TYPE
+	SYNTAX	OBJECT IDENTIFIER
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The oid of the subtree."
+	::= { sunSubTreeDispatchEntry 3 }
+
+
+  sunSubTreeDispatchStatus 	OBJECT-TYPE
+	SYNTAX	INTEGER { active(1), inactive(2) }
+	ACCESS	read-write
+	STATUS	mandatory
+	DESCRIPTION
+		"The variable allows to activate or delete the enteries
+		 in this table."
+	::= { sunSubTreeDispatchEntry 4 }
+
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/health-monitor-mib.mib	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,487 @@
+
+--
+-- Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+--
+-- U.S. Government Rights - Commercial software. Government users are subject
+-- to the Sun Microsystems, Inc. standard license agreement and applicable
+-- provisions of the FAR and its supplements.
+--
+--
+-- This distribution may include materials developed by third parties. Sun,
+-- Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+-- trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+--
+--
+-------------------------------------------------------
+-- Sun Management Center
+-------------------------------------------------------
+
+
+HEALTH-MONITOR-SUNMANAGEMENTCENTER-MIB DEFINITIONS ::= BEGIN
+
+
+  IMPORTS
+        enterprises, MODULE-IDENTITY, OBJECT-TYPE,  Integer32, Unsigned32
+                FROM SNMPv2-SMI
+         OBJECT-GROUP
+                FROM SNMPv2-CONF
+         DisplayString
+               FROM SNMPv2-TC;
+
+
+healthMonitor MODULE-IDENTITY
+    LAST-UPDATED "0009181435Z"
+    ORGANIZATION "Sun Microsystems Inc."
+    CONTACT-INFO
+        "        Sun Microsystems Inc.
+       Customer Support
+            Postal: 901 San Antonio Road
+       Palo Alto, CA-94303-4900
+    USA
+                         Tel: 650-960-1300
+                E-mail: [email protected]"
+    DESCRIPTION
+        "Health Monitor allows to monitor the overall state of the machine,
+	including the state of the disk, networks, RAM, and so on.
+	This module uses a set of performance rules to determine valid
+	component states."
+
+    REVISION  "9907201505Z"
+    DESCRIPTION
+        "Rev 1.0  20th July 1999 15:05, Initial version Of MIB."
+    REVISION  "0009181435Z"
+    DESCRIPTION
+         "Rev 1.1  18th Sep 2000 14:35. Changed the type of mibnode hmDNLCHits 
+          and hmDNLCMisses from Integer32 to Unsigned32."
+    ::= { modules 11 }
+
+sun       OBJECT IDENTIFIER ::= { enterprises 42 }
+products      OBJECT IDENTIFIER ::= { sun 2 }
+sunsymon  OBJECT IDENTIFIER ::= { products 12 }
+agent     OBJECT IDENTIFIER ::= { sunsymon 2 }
+modules   OBJECT IDENTIFIER ::= { agent 2 }
+
+hmSwap  OBJECT IDENTIFIER ::= { healthMonitor 1 }
+
+hmKernelcontention      OBJECT IDENTIFIER ::= { healthMonitor 2 }
+
+hmNFS   OBJECT IDENTIFIER ::= { healthMonitor 3 }
+
+hmCPU   OBJECT IDENTIFIER ::= { healthMonitor 4 }
+
+hmDiskGroup OBJECT-GROUP
+        OBJECTS {  hmDiskName, hmDiskAliasName, hmAvgWaitTransactions, 
+		hmDiskBusyPcnt, hmAvgDiskSvcTime }
+        STATUS current
+        DESCRIPTION
+        "Disk related statistics."
+        ::= { healthMonitor 5 }
+
+
+
+
+hmRAM   OBJECT IDENTIFIER ::= { healthMonitor 6 }
+
+hmKMEM  OBJECT IDENTIFIER ::= { healthMonitor 7 }
+
+hmDNLC  OBJECT IDENTIFIER ::= { healthMonitor 8 }
+
+
+
+hmSwapSpaceGroup OBJECT-GROUP
+        OBJECTS { hmAvailableSwapSpace, hmReservedSwapSpace, 
+		hmAllocatedSwapSpace, hmUsedSwapSpace }
+        STATUS current
+        DESCRIPTION
+        "Swap space related statistics."
+        ::= { hmSwap 1 }
+
+
+hmAvailableSwapSpace OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "kB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The total swap space (in 1024 byte blocks) that is currently
+		available for reservation and allocation."
+    ::= { hmSwapSpaceGroup 1 }
+
+hmReservedSwapSpace OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "kB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The total amount of swap space (in 1024 byte blocks) that is
+		not currently allocated, but is claimed by memory mappings for
+		possible future use."
+    ::= { hmSwapSpaceGroup 2 }
+
+hmAllocatedSwapSpace OBJECT-TYPE
+    SYNTAX      Integer32
+   UNITS       "kB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The total amount of swap space (in 1024 byte blocks) 
+		currently allocated for use."
+    ::= { hmSwapSpaceGroup 3 }
+
+hmUsedSwapSpace OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "kB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The total amount of swap space (in 1024 byte blocks) that is 
+		either allocated or reserved."
+    ::= { hmSwapSpaceGroup 4 }
+
+
+hmMutexGroup OBJECT-GROUP
+        OBJECTS { hmSpinsOnMutexes, hmTotNumOfCPUs }
+        STATUS current
+        DESCRIPTION
+                "Mutex related statistics."
+        ::= { hmKernelcontention 1 }
+
+
+hmSpinsOnMutexes OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Sum of spins on mutexes (lock not  acquired  on first try) 
+		for all CPUs."
+    ::= { hmMutexGroup 1 }
+
+hmTotNumOfCPUs OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total number of CPUs."
+    ::= { hmMutexGroup 2 }
+
+
+hmNFSClientRPCGroup OBJECT-GROUP
+        OBJECTS { hmTotRPCCalls, hmTotBadRPCCalls, hmTotRPCRetransmissions, 
+		hmTotBadRPCReplies, hmTotRPCCallsTimedOut, 
+		hmTotNumOfAuthRefresh, hmTotFailedCallsBV, hmTimers, 
+		hmTotMemAllocFails, hmTotSendFails }
+        STATUS current
+        DESCRIPTION
+                "Client RPC call-related statistics."
+        ::= { hmNFS 1 }
+
+
+hmTotRPCCalls OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total number of RPC calls received."
+    ::= { hmNFSClientRPCGroup 1 }
+
+hmTotBadRPCCalls OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total number of calls rejected by the RPC layer."
+    ::= { hmNFSClientRPCGroup 2 }
+
+hmTotRPCRetransmissions OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total number of calls retransmitted due to a timeout."
+    ::= { hmNFSClientRPCGroup 3 }
+
+hmTotBadRPCReplies OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of replies from server that do not correspond to 
+		any outside call."
+    ::= { hmNFSClientRPCGroup 4 }
+
+hmTotRPCCallsTimedOut OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of calls timed out while waiting for a reply from 
+		server."
+    ::= { hmNFSClientRPCGroup 5 }
+
+hmTotNumOfAuthRefresh OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of times authentication information was refreshed."
+    ::= { hmNFSClientRPCGroup 6 }
+
+hmTotFailedCallsBV OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of calls failed due to a bad verifier in response."
+    ::= { hmNFSClientRPCGroup 7 }
+
+hmTimers OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of times calculated time-out exceeds minimum 
+		specified timeout value for a call."
+    ::= { hmNFSClientRPCGroup 8 }
+
+hmTotMemAllocFails OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of failures to allocate memory."
+    ::= { hmNFSClientRPCGroup 9 }
+
+hmTotSendFails OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of failures where client is not able to send 
+		the packets for any reason."
+    ::= { hmNFSClientRPCGroup 10 }
+
+
+
+hmCPUProcInStatesGroup OBJECT-GROUP
+        OBJECTS { hmTotProcInRunQueue, hmTotProcBlocked, hmTotProcReadyInSwap } 
+        STATUS current
+        DESCRIPTION
+        "Statistics related to the number of processes in different states."
+        ::= { hmCPU 1 }
+
+
+hmTotProcInRunQueue OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of processes in the run queue."
+    ::= { hmCPUProcInStatesGroup 1 }
+
+hmTotProcBlocked OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of processes blocked for resources."
+    ::= { hmCPUProcInStatesGroup 2 }
+
+hmTotProcReadyInSwap OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of processes runnable but swapped."
+    ::= { hmCPUProcInStatesGroup 3 }
+
+
+hmDiskTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF HmDiskEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+                "Table of information for all the disks installed on 
+		the system."
+    ::= { hmDiskGroup 1 }
+
+hmDiskEntry OBJECT-TYPE
+    SYNTAX      HmDiskEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+                "Monitoring information for one disk on the system."
+    INDEX   { hmDiskName }
+    ::= { hmDiskTable 1 }
+
+HmDiskEntry ::=
+    SEQUENCE {
+        hmDiskName
+            DisplayString,
+        hmDiskAliasName
+            DisplayString,
+        hmAvgWaitTransactions
+            DisplayString,
+        hmDiskBusyPcnt
+            DisplayString,
+        hmAvgDiskSvcTime
+            DisplayString
+    }
+
+
+hmDiskName OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Name of the disk."
+    ::= { hmDiskEntry 1 }
+
+hmDiskAliasName OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Name of the disk alias (for example, c0t0d0)."
+    ::= { hmDiskEntry 2 }
+
+
+hmAvgWaitTransactions OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Average number of transactions waiting for service."
+    ::= { hmDiskEntry 3 }
+
+hmDiskBusyPcnt OBJECT-TYPE
+    SYNTAX      DisplayString
+    UNITS       "%"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Percent of time the disk is busy."
+    ::= { hmDiskEntry 4 }
+
+hmAvgDiskSvcTime OBJECT-TYPE
+    SYNTAX      DisplayString
+    UNITS       "msec"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Average service time."
+    ::= { hmDiskEntry 5 }
+
+
+
+hmRamMemoryPagingGroup OBJECT-GROUP
+        OBJECTS { hmHandspread, hmPageScanRate } 
+        STATUS current
+        DESCRIPTION
+        "Memory paging-related statistics."
+        ::= { hmRAM 1 }
+
+hmHandspread OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "MB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The distance (in pages) between front and back pageout 
+		daemon hands. The pageout daemon manages two hands on 
+		the clock.  The front hand moves through memory, clearing 
+		the reference bit, and stealing pages from processes that 
+		exceed the value maxrss.  The back hand travels behind the 
+		front hand, freeing pages that have not been referenced 
+		since the front hand passed. If the pages have been modified, 
+		they are pushed to the swap space before being freed. After 
+		pageout examines a page of memory, the amount of time that 
+		is needed to reclaim the page increases as the distance 
+		increases between the two hands, and decreases as the scan 
+		rate rises."
+    ::= { hmRamMemoryPagingGroup 1 }
+
+hmPageScanRate OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Number of pages scanned per second."
+    ::= { hmRamMemoryPagingGroup 2 }
+
+
+hmKmemStatisticsGroup OBJECT-GROUP
+        OBJECTS { hmKmemErrors, hmKmemFreeMem } 
+        STATUS current
+        DESCRIPTION
+                "Kernel-memory-related statistics."
+        ::= { hmKMEM 1 }
+
+
+hmKmemErrors OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total number of error occured related to kernel memory.  
+		These errors may be..
+		KMERR_MODIFIED: buffer modified after being fread
+		KMERR_READZONE:	readzone violation, write past end of buffer
+		KMERR_BADADDR: invalid free
+		KMERR_DUPFREE: duplicate free
+		KMERR_BADBUFTAG: boundary tag corrupted
+		etc."
+    ::= { hmKmemStatisticsGroup 1 }
+
+hmKmemFreeMem OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "MB"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "Total amount of free kernel memory in MB."
+    ::= { hmKmemStatisticsGroup 2 }
+
+
+hmDNLCStatGroup OBJECT-GROUP
+        OBJECTS { hmDNLCHits, hmDNLCMisses, hmDNLCHitRate, hmDNLCRefRate } 
+        STATUS current
+        DESCRIPTION
+                "DNLC related statistics."
+        ::= { hmDNLC 1 }
+
+
+hmDNLCHits OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The number of times a name is looked up and is found in DNLC 
+		(Directory Name Lookup Cache)."
+    ::= { hmDNLCStatGroup 1 }
+
+hmDNLCMisses OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The number of times a name is looked up and is not found in DNLC 
+		(Directory Name Lookup Cache). "
+    ::= { hmDNLCStatGroup 2 }
+
+hmDNLCHitRate OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The number of DNLC hits as a proportion of all DNLC lookups."
+    ::= { hmDNLCStatGroup 3 }
+
+hmDNLCRefRate OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+                "The number of times per second, the DNLC is looked up."
+    ::= { hmDNLCStatGroup 4 }
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/mibs/smatrap.mib	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,141 @@
+
+--
+-- Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+--
+-- U.S. Government Rights - Commercial software. Government users are subject
+-- to the Sun Microsystems, Inc. standard license agreement and applicable
+-- provisions of the FAR and its supplements.
+--
+--
+-- This distribution may include materials developed by third parties. Sun,
+-- Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+-- trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+--
+--
+
+SMA-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
+    Integer32, TimeTicks, mib-2,
+    NOTIFICATION-TYPE, enterprises           FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION, DisplayString,
+    PhysAddress, TruthValue, RowStatus,
+    TimeStamp, AutonomousType, TestAndIncr   FROM SNMPv2-TC
+    MODULE-COMPLIANCE, OBJECT-GROUP,
+    NOTIFICATION-GROUP                       FROM SNMPv2-CONF
+    snmpTraps                                FROM SNMPv2-MIB
+    IANAifType                               FROM IANAifType-MIB;
+
+notifications MODULE-IDENTITY
+    LAST-UPDATED "9808040000Z"
+    ORGANIZATION "Sun Microsystems Inc."
+    CONTACT-INFO
+        " Sun Microsystems Inc
+	  4150 Network Circle
+          Santa Clara, CA 95054
+	  e-mail: [email protected]
+	"
+	DESCRIPTION
+        "This MIB module defines notifications that are
+         generated by some monitoring modules loaded on
+         System Management Agent (SMA)."
+    ::= { sma 3 }
+
+sun OBJECT IDENTIFIER ::= { enterprises 42 } 
+products OBJECT IDENTIFIER ::= { sun 2 }
+management OBJECT IDENTIFIER ::= { products 2 }
+sma OBJECT IDENTIFIER ::= { management 4 }
+
+traps OBJECT IDENTIFIER ::= { notifications 0 }
+trapInfo OBJECT IDENTIFIER ::= {  notifications 1 }
+
+statusChange NOTIFICATION-TYPE
+OBJECTS { hostName, moduleName, statusOID, statusOIDContext, status, description , dataValue, dataValueType } 
+STATUS current 
+DESCRIPTION "A statusChange trap signifies that the status of an object has changed." ::= { traps 1 }
+
+hostName OBJECT-TYPE 
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify 
+STATUS current 
+DESCRIPTION "The name of the host on which the event occurred." 
+::= { trapInfo 1 }
+
+moduleName OBJECT-TYPE 
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify 
+STATUS current 
+DESCRIPTION "The name of the module on which the event has occured."
+::= { trapInfo 2 }
+
+statusOID  OBJECT-TYPE
+SYNTAX OBJECT IDENTIFIER
+MAX-ACCESS accessible-for-notify
+STATUS current
+DESCRIPTION "The identification of the object for which the status changed."
+::= { trapInfo 3 }
+
+statusOIDContext OBJECT-TYPE
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify
+STATUS current
+DESCRIPTION "The name of context incase the status OID is registered under a particular
+             context. If there is no special context, the value for this field will be null."
+::= { trapInfo 4 }
+
+status OBJECT-TYPE 
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify 
+STATUS current 
+DESCRIPTION "The current status of the object. One of OK, INFO, WARNING, ERROR." 
+::= { trapInfo 5 }
+
+description OBJECT-TYPE 
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify 
+STATUS current 
+DESCRIPTION "The detailed description of the event." 
+::= { trapInfo 6 }
+
+dataValue OBJECT-TYPE
+SYNTAX       DisplayString (SIZE (0..255))
+MAX-ACCESS accessible-for-notify
+STATUS current
+DESCRIPTION "The current value of the object, that generates the event."
+::= { trapInfo 7 }
+
+dataValueType OBJECT-TYPE
+SYNTAX INTEGER {
+        none(0),
+        integer(1),
+        octetString(2),
+        objectIdentifier(3),
+        integer32(4),
+        ipAddress(5),
+        counter32(6),
+        gauge32(7),
+        unsigned32(8),
+        timeTicks(9),
+        opaque(10),
+        counter64(11),
+        displayString(12),
+        physAddress(13),
+        macAddress(14),
+        truthValue(15),
+        testAndIncr(16),
+        autonomousType(17),
+        variablePointer(18),
+        rowPointer(19),
+        rowStatus(20),
+        storageType(21),
+        tDomain(22),
+        tAddress(23),
+        other(100)
+    }
+MAX-ACCESS accessible-for-notify
+STATUS current
+DESCRIPTION "The data type of the value that is present in dataValue varbind"
+::= { trapInfo 8 }
+
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/modules/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,72 @@
+
+#
+# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# U.S. Government Rights - Commercial software. Government users are subject
+# to the Sun Microsystems, Inc. standard license agreement and applicable
+# provisions of the FAR and its supplements.
+#
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+# trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+#
+#
+# Makefile for sun/agent/modules directory in SMA
+#
+# $Log: Makefile,v $
+# Revision 1.7  2003/09/04 17:53:26  rr144420
+# 4917378 - remove healthMonitor from makefiles
+#
+# Revision 1.6  2003/08/21 14:42:01  rr144420
+# 4908816 - further makefile changes to install into correct lib
+#
+# Revision 1.5  2003/08/12 21:14:38  rr144420
+# 4895376 - correct Sun copyright statements. Cannot use (c), and must use Copyright Copyright in makefiles
+#
+# Revision 1.4  2003/08/04 17:10:57  dporter
+# 4890836 - build new seaProxy module
+#
+# Revision 1.3  2003/07/31 21:34:44  pcarroll
+# Add seaExtensions to Makefile
+#
+# Revision 1.2  2003/07/28 19:27:15  augustus
+# This is the complete Entity MIB Implementation.
+#
+# Revision 1.1  2003/07/23 15:53:32  rr144420
+# new makefiles for building sun directory
+# 
+#
+
+# removed healthMonitor
+
+SUBDIRS		= entityMib seaExtensions
+
+all:
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making all in `pwd`/$$i"; \
+			echo "SUBDIRS3:  $(MAKE) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH)" ; \
+	                ( cd $$i ; $(MAKE) CC=$(CC) DEBUG=$(DEBUG) ARCH=$(ARCH) ROOT=$(ROOT) ) ; \
+			echo "====> Makeing in dir $$i"; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
+
+install:
+	@if test "$(SUBDIRS)" != ""; then \
+		it="$(SUBDIRS)" ; \
+		for i in $$it ; do       \
+			echo "making install in `pwd`/$$i"; \
+	                ( cd $$i ; $(MAKE) install ARCH=$(ARCH) ) ; \
+                        if test $$? != 0 ; then \
+				exit 1 ; \
+			fi  \
+	        done \
+	fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/modules/entityMib/Makefile	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+# U.S. Government Rights - Commercial software. Government users are subject
+# to the Sun Microsystems, Inc. standard license agreement and applicable
+# provisions of the FAR and its supplements.
+#
+# This distribution may include materials developed by third parties. Sun,
+# Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+# trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+#
+#
+
+#
+#
+# Makefile to generate libentity.so
+# 
+# usage:
+# "make" : generate library for 64bit / sparc
+# "make ARCH=32" : generate library for 32bit / sparc
+# "make ARCH=32 MACH=x86" : generate library for 32bit / x86
+# "make ARCH=amd64" : generate 64bit AMD64 libraries
+# "make clean" : remove *.o , *.so
+#
+
+MARCH=$(ARCH)
+LDFLAGS_sparcv9=-m64 -I$(ROOT)$(CFGPREFIX)/include -I.
+LDFLAGS_32=-I$(ROOT)$(CFGPREFIX)/include -I.
+LDFLAGS_amd64=-m64 -I$(ROOT)$(CFGPREFIX)/include -I.
+LDFLAGS=$(LDFLAGS_$(MARCH))
+
+LDLIBS=
+
+CFLAGS_32=-Kpic
+CFLAGS_sparcv9=-Kpic
+CFLAGS_amd64=-Kpic
+CFLAGS=$(CFLAGS_$(MARCH))
+
+PROG= libentity.so
+SRCS= entPhysicalTable.c entLPMappingTable.c entPhysicalContainsTable.c \
+	entLogicalTable.c entAliasMappingTable.c entLastChangeTime.c entity.c
+
+OBJS = $(SRCS:.c=.o)
+
+HEADERS= \
+	entAliasMappingTable.h \
+	entLogicalTable.h \
+	stdhdr.h \
+	entLPMappingTable.h \
+	entPhysicalContainsTable.h \
+	entLastChangeTime.h \
+	entPhysicalTable.h
+
+
+all:$(PROG)
+$(PROG): $(OBJS)
+	$(CC) $(LDFLAGS) $(LDLIBS) -G -o [email protected] $(OBJS)
+.c.o:
+	$(CC) $(CFLAGS) $(LDFLAGS) -o [email protected] -c $<
+
+clean:
+	rm -f entPhysicalTable.o entLPMappingTable.o \
+	entPhysicalContainsTable.o entLogicalTable.o \
+	entAliasMappingTable.o entLastChangeTime.o entity.o libentity.so
+
+install:
+	if test "$(ARCH)" = "sparcv9" ; then \
+		cp $(PROG) $(ROOT)/$(CFGLIB64); \
+	elif test "$(ARCH)" = "32" ; then \
+		cp $(PROG) $(ROOT)/$(CFGLIB); \
+	elif test "$(ARCH)" = "amd64" ; then \
+		cp $(PROG) $(ROOT)/$(CFGLIB64); \
+	fi
+
+#all
+#cp $(PROG) /usr/local/lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/agent/modules/entityMib/entAliasMappingTable.c	Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,617 @@
+/*
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject
+ * to the Sun Microsystems, Inc. standard license agreement and applicable
+ * provisions of the FAR and its supplements.
+ *
+ *
+ * This distribution may include materials developed by third parties. Sun,
+ * Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+ *
+ */
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *        : mib2c.iterate.conf,v 5.5 2002/12/16 22:50:18 hardaker Exp $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "stdhdr.h"
+#include "entAliasMappingTable.h"
+#include "entLogicalTable.h"
+#include "entPhysicalTable.h"
+#include "entLastChangeTime.h"
+
+entAliasMappingTableEntry_t *gAliasMappingTableHead;
+int gAliasMappingTableSize;
+static logicalAlias *gCurAliasEntry;
+
+
+
+/** Initialize the entAliasMappingTable table by defining its contents and how it's structured */
+void
+initialize_table_entAliasMappingTable(void)
+{
+    static oid entAliasMappingTable_oid[] = {1,3,6,1,2,1,47,1,3,2};