diff options
author | glebius <glebius@FreeBSD.org> | 2014-08-31 06:46:21 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-08-31 06:46:21 +0000 |
commit | 70b7c46209e1ad46231f23b2cda4ef4e42bd14ba (patch) | |
tree | 14bbbb2fbcb15cc9c9d3468958b19e7041eb0d3c /sys/net/rtsock.c | |
parent | 60476807974fa0ceadf96ee9dc003c3fecab92c9 (diff) | |
download | FreeBSD-src-70b7c46209e1ad46231f23b2cda4ef4e42bd14ba.zip FreeBSD-src-70b7c46209e1ad46231f23b2cda4ef4e42bd14ba.tar.gz |
o Remove struct if_data from struct ifnet. Now it is merely API structure
for route(4) socket and ifmib(4) sysctl.
o Move fields from if_data to ifnet, but keep all statistic counters
separate, since they should disappear later.
o Provide function if_data_copy() to fill if_data, utilize it in routing
socket and ifmib handler.
o Provide overridable ifnet(9) method to fetch counters. If no provided,
if_get_counters_compat() would be used, that returns old counters.
Sponsored by: Netflix
Sponsored by: Nginx, Inc.
Diffstat (limited to 'sys/net/rtsock.c')
-rw-r--r-- | sys/net/rtsock.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index c7f2268..10baeb2 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1252,7 +1252,7 @@ rt_ifmsg(struct ifnet *ifp) ifm = mtod(m, struct if_msghdr *); ifm->ifm_index = ifp->if_index; ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags; - ifm->ifm_data = ifp->if_data; + if_data_copy(ifp, &ifm->ifm_data); ifm->ifm_addrs = 0; rt_dispatch(m, AF_UNSPEC); } @@ -1574,7 +1574,7 @@ sysctl_iflist_ifml(struct ifnet *ifp, struct rt_addrinfo *info, ifd = &ifm->ifm_data; } - *ifd = ifp->if_data; + if_data_copy(ifp, ifd); /* Some drivers still use ifqueue(9), add its stats. */ ifd->ifi_oqdrops += ifp->if_snd.ifq_drops; @@ -1609,7 +1609,7 @@ sysctl_iflist_ifm(struct ifnet *ifp, struct rt_addrinfo *info, ifd = &ifm->ifm_data; } - *ifd = ifp->if_data; + if_data_copy(ifp, ifd); /* Some drivers still use ifqueue(9), add its stats. */ ifd->ifi_oqdrops += ifp->if_snd.ifq_drops; |