$NetBSD: patch-ao,v 1.2 2011/05/27 10:55:25 adam Exp $

--- agent/mibgroup/if-mib/data_access/interface_sysctl.c.orig	2010-07-21 19:24:11 +0000
+++ agent/mibgroup/if-mib/data_access/interface_sysctl.c
@@ -49,7 +49,11 @@
 #   define ARCH_PROMISC_FLAG IFF_PROMISC
 #endif
 
+#if HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC
+#define starttime (*(const struct timespec*)netsnmp_get_agent_starttime())
+#else
 #define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
+#endif
 
 /* sa_len roundup macro. */
 #define ROUNDUP(a) \
@@ -183,6 +187,7 @@ netsnmp_sysctl_ifmedia_to_speed(int medi
 #endif
             }
             break;
+#ifdef IFM_TOKEN
         case IFM_TOKEN:
             switch (IFM_SUBTYPE(media)) {
                 case IFM_TOK_STP4:
@@ -204,6 +209,7 @@ netsnmp_sysctl_ifmedia_to_speed(int medi
 #endif
             }
             break;
+#endif
 #ifdef IFM_ATM
         case IFM_ATM:
             switch (IFM_SUBTYPE(media)) {
@@ -472,7 +478,11 @@ netsnmp_arch_interface_container_load(ne
                             NETSNMP_INTERFACE_FLAGS_HAS_DROPS |
                             NETSNMP_INTERFACE_FLAGS_HAS_MCAST_PKTS;
 
+#if HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC
+        if (timespeccmp(&ifp->ifm_data.ifi_lastchange, &starttime, >)) {
+#else
         if (timercmp(&ifp->ifm_data.ifi_lastchange, &starttime, >)) {
+#endif
             entry->lastchange = (ifp->ifm_data.ifi_lastchange.tv_sec -
                                  starttime.tv_sec) * 100;
             entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_LASTCHANGE;
