summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2004-08-30 06:29:26 +0000
committerbrooks <brooks@FreeBSD.org>2004-08-30 06:29:26 +0000
commit922e581a21e3c43e13da68f2584a1e249ae79fa3 (patch)
tree35ae08d1134e69679205be6a034b9bf1a6903659 /sys/net
parent6cfb5e6d674efc90c8462d7a4a177ad68a8a6295 (diff)
downloadFreeBSD-src-922e581a21e3c43e13da68f2584a1e249ae79fa3.zip
FreeBSD-src-922e581a21e3c43e13da68f2584a1e249ae79fa3.tar.gz
Add a new variable, ifi_epoch, to struct if_data. It is set to the last
time the interface counters were zeroed, currently the time if_attach() was called. It is indentended 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. An if_epoch "compatability" macro has not been created as ifi_epoch has never been a member of struct ifnet. Approved by: andre, bms, wollman
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if.c1
-rw-r--r--sys/net/if.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index 73d661c..0bb5389 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -387,6 +387,7 @@ if_attach(struct ifnet *ifp)
TAILQ_INIT(&ifp->if_multiaddrs);
knlist_init(&ifp->if_klist, NULL);
getmicrotime(&ifp->if_lastchange);
+ getmicrotime(&ifp->if_data.ifi_epoch);
#ifdef MAC
mac_init_ifnet(ifp);
diff --git a/sys/net/if.h b/sys/net/if.h
index 084fc9d..5a005c9 100644
--- a/sys/net/if.h
+++ b/sys/net/if.h
@@ -103,6 +103,7 @@ struct if_data {
u_long ifi_hwassist; /* HW offload capabilities */
u_long ifi_unused; /* XXX was ifi_xmittiming */
struct timeval ifi_lastchange; /* time of last administrative change */
+ struct timeval ifi_epoch; /* time of creation or stat reset */
};
#define IFF_UP 0x1 /* interface is up */
OpenPOWER on IntegriCloud