Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Aug 2015 18:33:43 +0000 (UTC)
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r287077 - projects/routing/sys/net
Message-ID:  <201508231833.t7NIXhN0051849@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: melifaro
Date: Sun Aug 23 18:33:42 2015
New Revision: 287077
URL: https://svnweb.freebsd.org/changeset/base/287077

Log:
  Since we no longer return individual radix entries, it
   is not possible to do per-rte accounting. Remove rt_kpktsent.

Modified:
  projects/routing/sys/net/route.c
  projects/routing/sys/net/route.h
  projects/routing/sys/net/rtsock.c

Modified: projects/routing/sys/net/route.c
==============================================================================
--- projects/routing/sys/net/route.c	Sun Aug 23 18:33:15 2015	(r287076)
+++ projects/routing/sys/net/route.c	Sun Aug 23 18:33:42 2015	(r287077)
@@ -208,48 +208,6 @@ route_init(void)
 }
 SYSINIT(route_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, 0);
 
-static int
-rtentry_zinit(void *mem, int size, int how)
-{
-	struct rtentry *rt = mem;
-
-	rt->rt_pksent = counter_u64_alloc(how);
-	if (rt->rt_pksent == NULL)
-		return (ENOMEM);
-
-	RT_LOCK_INIT(rt);
-
-	return (0);
-}
-
-static void
-rtentry_zfini(void *mem, int size)
-{
-	struct rtentry *rt = mem;
-
-	RT_LOCK_DESTROY(rt);
-	counter_u64_free(rt->rt_pksent);
-}
-
-static int
-rtentry_ctor(void *mem, int size, void *arg, int how)
-{
-	struct rtentry *rt = mem;
-
-	bzero(rt, offsetof(struct rtentry, rt_endzero));
-	counter_u64_zero(rt->rt_pksent);
-
-	return (0);
-}
-
-static void
-rtentry_dtor(void *mem, int size, void *arg)
-{
-	struct rtentry *rt = mem;
-
-	RT_UNLOCK_COND(rt);
-}
-
 static void
 vnet_route_init(const void *unused __unused)
 {
@@ -262,8 +220,7 @@ vnet_route_init(const void *unused __unu
 	    sizeof(struct rib_head *), M_RTABLE, M_WAITOK|M_ZERO);
 
 	V_rtzone = uma_zcreate("rtentry", sizeof(struct rtentry),
-	    rtentry_ctor, rtentry_dtor,
-	    rtentry_zinit, rtentry_zfini, UMA_ALIGN_PTR, 0);
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
 	for (dom = domains; dom; dom = dom->dom_next) {
 		if (dom->dom_rtattach == NULL)
 			continue;
@@ -1403,11 +1360,12 @@ rtrequest1_fib(int req, struct rt_addrin
 		} else
 			ifa_ref(info->rti_ifa);
 		ifa = info->rti_ifa;
-		rt = uma_zalloc(V_rtzone, M_NOWAIT);
+		rt = uma_zalloc(V_rtzone, M_NOWAIT | M_ZERO);
 		if (rt == NULL) {
 			ifa_free(ifa);
 			senderr(ENOBUFS);
 		}
+		RT_LOCK_INIT(rt);
 		rt->rt_flags = RTF_UP | flags;
 		rt->rt_fibnum = fibnum;
 		/*
@@ -1415,6 +1373,7 @@ rtrequest1_fib(int req, struct rt_addrin
 		 */
 		RT_LOCK(rt);
 		if ((error = rt_setgate(rt, dst, gateway)) != 0) {
+			RT_LOCK_DESTROY(rt);
 			ifa_free(ifa);
 			uma_zfree(V_rtzone, rt);
 			senderr(error);
@@ -1450,6 +1409,7 @@ rtrequest1_fib(int req, struct rt_addrin
 			rt_mpath_conflict(rh, rt, netmask)) {
 			ifa_free(rt->rt_ifa);
 			R_Free(rt_key(rt));
+			RT_LOCK_DESTROY(rt);
 			uma_zfree(V_rtzone, rt);
 			senderr(EEXIST);
 		}

Modified: projects/routing/sys/net/route.h
==============================================================================
--- projects/routing/sys/net/route.h	Sun Aug 23 18:33:15 2015	(r287076)
+++ projects/routing/sys/net/route.h	Sun Aug 23 18:33:42 2015	(r287077)
@@ -33,7 +33,6 @@
 #ifndef _NET_ROUTE_H_
 #define _NET_ROUTE_H_
 
-#include <sys/counter.h>
 #include <net/vnet.h>
 
 /*

Modified: projects/routing/sys/net/rtsock.c
==============================================================================
--- projects/routing/sys/net/rtsock.c	Sun Aug 23 18:33:15 2015	(r287076)
+++ projects/routing/sys/net/rtsock.c	Sun Aug 23 18:33:42 2015	(r287077)
@@ -922,7 +922,6 @@ rt_getmetrics(const struct rtentry *rt, 
 	bzero(out, sizeof(*out));
 	out->rmx_mtu = rt->rt_mtu;
 	out->rmx_weight = rt->rt_weight;
-	out->rmx_pksent = counter_u64_fetch(rt->rt_pksent);
 	/* Kernel -> userland timebase conversion. */
 	out->rmx_expire = rt->rt_expire ?
 	    rt->rt_expire - time_uptime + time_second : 0;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508231833.t7NIXhN0051849>