From 922e581a21e3c43e13da68f2584a1e249ae79fa3 Mon Sep 17 00:00:00 2001 From: brooks Date: Mon, 30 Aug 2004 06:29:26 +0000 Subject: 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 --- UPDATING | 5 +++++ sys/net/if.c | 1 + sys/net/if.h | 1 + sys/sys/param.h | 2 +- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index f31d8f6..99b56a9 100644 --- a/UPDATING +++ b/UPDATING @@ -23,6 +23,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 6.x IS SLOW: developers choose to disable these features on build machines to maximize performance. +20040830: + A new variable, ifi_epoch, has been added to struct if_data + which is part if struct ifnet. This means all network drivers + and network monitoring applications need to be recompiled. + 20040828: The default configuration for the network stack has been changed such that it now runs without the Giant lock unless configured 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 */ diff --git a/sys/sys/param.h b/sys/sys/param.h index 047890b..7fad9e9 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -57,7 +57,7 @@ * is created, otherwise 1. */ #undef __FreeBSD_version -#define __FreeBSD_version 600001 /* Master, propagated to newvers */ +#define __FreeBSD_version 600002 /* Master, propagated to newvers */ #ifndef LOCORE #include -- cgit v1.1