summaryrefslogtreecommitdiffstats
path: root/sys/net/rtsock.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-08-31 06:46:21 +0000
committerglebius <glebius@FreeBSD.org>2014-08-31 06:46:21 +0000
commit70b7c46209e1ad46231f23b2cda4ef4e42bd14ba (patch)
tree14bbbb2fbcb15cc9c9d3468958b19e7041eb0d3c /sys/net/rtsock.c
parent60476807974fa0ceadf96ee9dc003c3fecab92c9 (diff)
downloadFreeBSD-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.c6
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;
OpenPOWER on IntegriCloud