Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Apr 2012 09:20:23 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r233868 - projects/pf/head/usr.bin/netstat
Message-ID:  <201204040920.q349KNlp095152@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Wed Apr  4 09:20:22 2012
New Revision: 233868
URL: http://svn.freebsd.org/changeset/base/233868

Log:
  Print pfsync action statistics.

Modified:
  projects/pf/head/usr.bin/netstat/if.c

Modified: projects/pf/head/usr.bin/netstat/if.c
==============================================================================
--- projects/pf/head/usr.bin/netstat/if.c	Wed Apr  4 09:14:16 2012	(r233867)
+++ projects/pf/head/usr.bin/netstat/if.c	Wed Apr  4 09:20:22 2012	(r233868)
@@ -81,6 +81,32 @@ static void catchalarm(int);
 static char addr_buf[NI_MAXHOST];		/* for getnameinfo() */
 #endif
 
+static const char* pfsyncacts[] = {
+	/* PFSYNC_ACT_CLR */		"clear all request",
+	/* PFSYNC_ACT_INS */		"state insert",
+	/* PFSYNC_ACT_INS_ACK */	"state inserted ack",
+	/* PFSYNC_ACT_UPD */		"state update",
+	/* PFSYNC_ACT_UPD_C */		"compressed state update",
+	/* PFSYNC_ACT_UPD_REQ */	"uncompressed state request",
+	/* PFSYNC_ACT_DEL */		"state delete",
+	/* PFSYNC_ACT_DEL_C */		"compressed state delete",
+	/* PFSYNC_ACT_INS_F */		"fragment insert",
+	/* PFSYNC_ACT_DEL_F */		"fragment delete",
+	/* PFSYNC_ACT_BUS */		"bulk update mark",
+	/* PFSYNC_ACT_TDB */		"TDB replay counter update",
+	/* PFSYNC_ACT_EOF */		"end of frame mark",
+};
+
+static void
+pfsync_acts_stats(const char *fmt, uint64_t *a)
+{
+	int i;
+
+	for (i = 0; i < PFSYNC_ACT_MAX; i++, a++)
+		if (*a || sflag <= 1)
+			printf(fmt, *a, pfsyncacts[i], plural(*a));
+}
+
 /*
  * Dump pfsync statistics structure.
  */
@@ -109,6 +135,8 @@ pfsync_stats(u_long off, const char *nam
 
 	p(pfsyncs_ipackets, "\t%ju packet%s received (IPv4)\n");
 	p(pfsyncs_ipackets6, "\t%ju packet%s received (IPv6)\n");
+	pfsync_acts_stats("\t    %ju %s%s received\n",
+	    &pfsyncstat.pfsyncs_iacts[0]);
 	p(pfsyncs_badif, "\t\t%ju packet%s discarded for bad interface\n");
 	p(pfsyncs_badttl, "\t\t%ju packet%s discarded for bad ttl\n");
 	p(pfsyncs_hdrops, "\t\t%ju packet%s shorter than header\n");
@@ -121,10 +149,11 @@ pfsync_stats(u_long off, const char *nam
 	p(pfsyncs_badstate, "\t\t%ju failed state lookup/insert%s\n");
 	p(pfsyncs_opackets, "\t%ju packet%s sent (IPv4)\n");
 	p(pfsyncs_opackets6, "\t%ju packet%s sent (IPv6)\n");
+	pfsync_acts_stats("\t    %ju %s%s sent\n",
+	    &pfsyncstat.pfsyncs_oacts[0]);
 	p(pfsyncs_onomem, "\t\t%ju failure%s due to mbuf memory error\n");
 	p(pfsyncs_oerrors, "\t\t%ju send error%s\n");
 #undef p
-#undef p2
 }
 
 /*



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