diff options
author | brooks <brooks@FreeBSD.org> | 2004-08-30 06:29:26 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2004-08-30 06:29:26 +0000 |
commit | 922e581a21e3c43e13da68f2584a1e249ae79fa3 (patch) | |
tree | 35ae08d1134e69679205be6a034b9bf1a6903659 | |
parent | 6cfb5e6d674efc90c8462d7a4a177ad68a8a6295 (diff) | |
download | FreeBSD-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
-rw-r--r-- | UPDATING | 5 | ||||
-rw-r--r-- | sys/net/if.c | 1 | ||||
-rw-r--r-- | sys/net/if.h | 1 | ||||
-rw-r--r-- | sys/sys/param.h | 2 |
4 files changed, 8 insertions, 1 deletions
@@ -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 <sys/types.h> |