summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2004-09-08 04:50:55 +0000
committerbrooks <brooks@FreeBSD.org>2004-09-08 04:50:55 +0000
commit143d77da28b1eae3998141ecdbf493f35562a44e (patch)
treea7d4a1fc271674863cbdba33a966ff9ffbd7cf3d /sys/net
parentdaf9c8d7593cfe8d6117f47b81c179d3198595ff (diff)
downloadFreeBSD-src-143d77da28b1eae3998141ecdbf493f35562a44e.zip
FreeBSD-src-143d77da28b1eae3998141ecdbf493f35562a44e.tar.gz
Re-add ifi_epoch, to struct if_data, this time replacing ifi_unused
to avoid ABI changes. It is set to the last time the interface counters were zeroed, currently the time if_attach() was called. It is intentended to be a valid value for RFC2233's ifCounterDiscontinuityTime and to make it easier for applications to verify that the interface they find at a given index is the one that was there last time they looked. Due to space constraints ifi_epoch is a time_t rather then a struct timeval. SNMP would prefer higher precision, but this unlikely to be useful in practice.
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if.c1
-rw-r--r--sys/net/if.h5
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index 1ba833e..7a84bf8 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -384,6 +384,7 @@ if_attach(struct ifnet *ifp)
TAILQ_INIT(&ifp->if_multiaddrs);
knlist_init(&ifp->if_klist, NULL);
getmicrotime(&ifp->if_lastchange);
+ ifp->if_data.ifi_epoch = time_second;
#ifdef MAC
mac_init_ifnet(ifp);
diff --git a/sys/net/if.h b/sys/net/if.h
index 8b32fd1..77ffb1a 100644
--- a/sys/net/if.h
+++ b/sys/net/if.h
@@ -102,7 +102,10 @@ struct if_data {
u_long ifi_iqdrops; /* dropped on input, this interface */
u_long ifi_noproto; /* destined for unsupported protocol */
u_long ifi_hwassist; /* HW offload capabilities */
- u_long ifi_unused; /* XXX was ifi_xmittiming */
+ time_t ifi_epoch; /* time of attach or stat reset */
+#ifdef __alpha__
+ u_int ifi_timepad; /* time_t is int, not long on alpha */
+#endif
struct timeval ifi_lastchange; /* time of last administrative change */
};
OpenPOWER on IntegriCloud