$NetBSD$

--- agent/mibgroup/mibII/udp.c.orig	2011-02-01 14:16:09.000000000 +0000
+++ agent/mibgroup/mibII/udp.c
@@ -30,6 +30,10 @@
 #include "kernel_linux.h"
 #endif
 
+#ifdef NETBSD_STATS_VIA_SYSCTL
+#include "kernel_netbsd.h"
+#endif
+
 #ifdef cygwin
 #define WIN32
 #include <windows.h>
@@ -137,6 +141,12 @@ init_udp(void)
 	 *
 	 *********************/
 
+#ifdef NETBSD_STATS_VIA_SYSCTL
+#define UDP_STAT_STRUCTURE      struct udp_mib
+#define USES_SNMP_DESIGNED_UDPSTAT
+#undef UDP_NSTATS
+#endif
+
 #ifdef hpux11
 #define UDP_STAT_STRUCTURE	int
 #endif
@@ -467,6 +477,21 @@ udp_load(netsnmp_cache *cache, void *vma
     }
     return ret_value;
 }
+#elif defined(NETBSD_STATS_VIA_SYSCTL)
+int
+udp_load(netsnmp_cache *cache, void *vmagic)
+{
+    long ret_value = -1;
+
+    ret_value = netbsd_read_udp_stat(&udpstat);
+
+    if ( ret_value < 0 ) {
+        DEBUGMSGTL(("mibII/udpScalar", "Failed to load UDP scalar Group (netbsd)\n"));
+    } else {
+        DEBUGMSGTL(("mibII/udpScalar", "Loaded UDP scalar Group (netbsd)\n"));
+    }
+    return ret_value;
+}
 #elif defined(WIN32)
 int
 udp_load(netsnmp_cache *cache, void *vmagic)
