From owner-svn-src-head@FreeBSD.ORG Fri Mar 12 06:31:20 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B59F1065673; Fri, 12 Mar 2010 06:31:20 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 328728FC13; Fri, 12 Mar 2010 06:31:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o2C6VKDO017180; Fri, 12 Mar 2010 06:31:20 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2C6VKgR017178; Fri, 12 Mar 2010 06:31:20 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <201003120631.o2C6VKgR017178@svn.freebsd.org> From: Kip Macy Date: Fri, 12 Mar 2010 06:31:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205069 - head/sys/net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2010 06:31:20 -0000 Author: kmacy Date: Fri Mar 12 06:31:19 2010 New Revision: 205069 URL: http://svn.freebsd.org/changeset/base/205069 Log: fix stats reporting sysctl Modified: head/sys/net/flowtable.c Modified: head/sys/net/flowtable.c ============================================================================== --- head/sys/net/flowtable.c Fri Mar 12 05:16:24 2010 (r205068) +++ head/sys/net/flowtable.c Fri Mar 12 06:31:19 2010 (r205069) @@ -1,6 +1,6 @@ /************************************************************************** -Copyright (c) 2008-2010, BitGravity Inc. +Copyright (c) 2008-2009, BitGravity Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -298,14 +298,11 @@ SYSCTL_VNET_PROC(_net_inet_flowtable, OI -#define FS_PRINT(sb, field) sbuf_printf((sb), "\t%s=%jd", #field, fs->ft_##field) +#define FS_PRINT(sb, field) sbuf_printf((sb), "\t%s: %jd\n", #field, fs->ft_##field) static void -fs_print(struct flowtable_stats *fs) +fs_print(struct sbuf *sb, struct flowtable_stats *fs) { - struct sbuf *sb; - - sb = sbuf_new(NULL, NULL, 32*1024, SBUF_FIXEDLEN); FS_PRINT(sb, collisions); FS_PRINT(sb, allocated); @@ -315,12 +312,10 @@ fs_print(struct flowtable_stats *fs) FS_PRINT(sb, frees); FS_PRINT(sb, hits); FS_PRINT(sb, lookups); - sbuf_finish(sb); - } static void -flowtable_show_stats(struct flowtable *ft) +flowtable_show_stats(struct sbuf *sb, struct flowtable *ft) { int i; struct flowtable_stats fs, *pfs; @@ -344,27 +339,32 @@ flowtable_show_stats(struct flowtable *f } else { pfs = &ft->ft_stats[0]; } - - fs_print(pfs); + fs_print(sb, pfs); } static int sysctl_flowtable_stats(SYSCTL_HANDLER_ARGS) { struct flowtable *ft; + struct sbuf *sb; + int error; + + sb = sbuf_new(NULL, NULL, 64*1024, SBUF_FIXEDLEN); ft = V_flow_list_head; while (ft != NULL) { - printf("name: %s\n", ft->ft_name); - flowtable_show_stats(ft); + sbuf_printf(sb, "\ntable name: %s\n", ft->ft_name); + flowtable_show_stats(sb, ft); ft = ft->ft_next; } + sbuf_finish(sb); + error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); - return (0); + return (error); } -SYSCTL_VNET_PROC(_net_inet_flowtable, OID_AUTO, stats, - CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_flowtable_stats, "IU", - "flowtable statistics"); +SYSCTL_VNET_PROC(_net_inet_flowtable, OID_AUTO, stats, CTLTYPE_STRING|CTLFLAG_RD, + NULL, 0, sysctl_flowtable_stats, "A", "flowtable statistics"); #ifndef RADIX_MPATH