Module Name:    src
Committed By:   ozaki-r
Date:           Mon May 13 07:48:00 UTC 2019

Modified Files:
        src/sys/netinet: ip_input.c ip_output.c ip_var.h
        src/sys/netinet6: ip6_forward.c ip6_input.c ip6_output.c ip6_var.h

Log Message:
Count packets dropped by pfil


To generate a diff of this commit:
cvs rdiff -u -r1.388 -r1.389 src/sys/netinet/ip_input.c
cvs rdiff -u -r1.310 -r1.311 src/sys/netinet/ip_output.c
cvs rdiff -u -r1.127 -r1.128 src/sys/netinet/ip_var.h
cvs rdiff -u -r1.95 -r1.96 src/sys/netinet6/ip6_forward.c
cvs rdiff -u -r1.207 -r1.208 src/sys/netinet6/ip6_input.c
cvs rdiff -u -r1.218 -r1.219 src/sys/netinet6/ip6_output.c
cvs rdiff -u -r1.81 -r1.82 src/sys/netinet6/ip6_var.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/ip_input.c
diff -u src/sys/netinet/ip_input.c:1.388 src/sys/netinet/ip_input.c:1.389
--- src/sys/netinet/ip_input.c:1.388	Thu Jan 17 02:47:15 2019
+++ src/sys/netinet/ip_input.c	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_input.c,v 1.388 2019/01/17 02:47:15 knakahara Exp $	*/
+/*	$NetBSD: ip_input.c,v 1.389 2019/05/13 07:47:59 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.388 2019/01/17 02:47:15 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.389 2019/05/13 07:47:59 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -578,6 +578,7 @@ ip_input(struct mbuf *m)
 		freed = pfil_run_hooks(inet_pfil_hook, &m, ifp, PFIL_IN) != 0;
 		if (freed || m == NULL) {
 			m = NULL;
+			IP_STATINC(IP_STAT_PFILDROP_IN);
 			goto out;
 		}
 		KASSERT(m->m_len >= sizeof(struct ip));

Index: src/sys/netinet/ip_output.c
diff -u src/sys/netinet/ip_output.c:1.310 src/sys/netinet/ip_output.c:1.311
--- src/sys/netinet/ip_output.c:1.310	Mon Feb  4 10:48:46 2019
+++ src/sys/netinet/ip_output.c	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_output.c,v 1.310 2019/02/04 10:48:46 mrg Exp $	*/
+/*	$NetBSD: ip_output.c,v 1.311 2019/05/13 07:47:59 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.310 2019/02/04 10:48:46 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.311 2019/05/13 07:47:59 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -622,10 +622,10 @@ sendit:
 	 * Run through list of hooks for output packets.
 	 */
 	error = pfil_run_hooks(inet_pfil_hook, &m, ifp, PFIL_OUT);
-	if (error)
-		goto done;
-	if (m == NULL)
+	if (error || m == NULL) {
+		IP_STATINC(IP_STAT_PFILDROP_OUT);
 		goto done;
+	}
 
 	ip = mtod(m, struct ip *);
 	hlen = ip->ip_hl << 2;

Index: src/sys/netinet/ip_var.h
diff -u src/sys/netinet/ip_var.h:1.127 src/sys/netinet/ip_var.h:1.128
--- src/sys/netinet/ip_var.h:1.127	Fri Sep 14 05:09:51 2018
+++ src/sys/netinet/ip_var.h	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_var.h,v 1.127 2018/09/14 05:09:51 maxv Exp $	*/
+/*	$NetBSD: ip_var.h,v 1.128 2019/05/13 07:47:59 ozaki-r Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -147,8 +147,10 @@ struct ip_pktopts {
 #define	IP_STAT_BADADDR		29	/* invalid address on header */
 #define	IP_STAT_NOL2TP		30	/* no match l2tp found */
 #define	IP_STAT_NOIPSEC		31	/* no match ipsec(4) found */
+#define	IP_STAT_PFILDROP_IN	32	/* dropped by pfil (PFIL_IN) */
+#define	IP_STAT_PFILDROP_OUT	33	/* dropped by pfil (PFIL_OUT) */
 
-#define	IP_NSTATS		32
+#define	IP_NSTATS		34
 
 #ifdef _KERNEL
 

Index: src/sys/netinet6/ip6_forward.c
diff -u src/sys/netinet6/ip6_forward.c:1.95 src/sys/netinet6/ip6_forward.c:1.96
--- src/sys/netinet6/ip6_forward.c:1.95	Tue May  1 07:21:39 2018
+++ src/sys/netinet6/ip6_forward.c	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_forward.c,v 1.95 2018/05/01 07:21:39 maxv Exp $	*/
+/*	$NetBSD: ip6_forward.c,v 1.96 2019/05/13 07:47:59 ozaki-r Exp $	*/
 /*	$KAME: ip6_forward.c,v 1.109 2002/09/11 08:10:17 sakane Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_forward.c,v 1.95 2018/05/01 07:21:39 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_forward.c,v 1.96 2019/05/13 07:47:59 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_gateway.h"
@@ -393,10 +393,14 @@ ip6_forward(struct mbuf *m, int srcrt)
 	 * Run through list of hooks for output packets.
 	 */
 	if ((error = pfil_run_hooks(inet6_pfil_hook, &m, rt->rt_ifp,
-	    PFIL_OUT)) != 0)
+	    PFIL_OUT)) != 0) {
+		IP6_STATINC(IP6_STAT_PFILDROP_OUT);
 		goto senderr;
-	if (m == NULL)
+	}
+	if (m == NULL) {
+		IP6_STATINC(IP6_STAT_PFILDROP_OUT);
 		goto freecopy;
+	}
 	ip6 = mtod(m, struct ip6_hdr *);
 
 	error = ip6_if_output(rt->rt_ifp, origifp, m, dst, rt);

Index: src/sys/netinet6/ip6_input.c
diff -u src/sys/netinet6/ip6_input.c:1.207 src/sys/netinet6/ip6_input.c:1.208
--- src/sys/netinet6/ip6_input.c:1.207	Thu Jan 17 02:47:15 2019
+++ src/sys/netinet6/ip6_input.c	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_input.c,v 1.207 2019/01/17 02:47:15 knakahara Exp $	*/
+/*	$NetBSD: ip6_input.c,v 1.208 2019/05/13 07:47:59 ozaki-r Exp $	*/
 /*	$KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.207 2019/01/17 02:47:15 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.208 2019/05/13 07:47:59 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_gateway.h"
@@ -348,12 +348,14 @@ ip6_input(struct mbuf *m, struct ifnet *
 #endif
 	{
 		struct in6_addr odst;
+		int error;
 
 		odst = ip6->ip6_dst;
-		if (pfil_run_hooks(inet6_pfil_hook, &m, rcvif, PFIL_IN) != 0)
-			return;
-		if (m == NULL)
+		error = pfil_run_hooks(inet6_pfil_hook, &m, rcvif, PFIL_IN);
+		if (error != 0 || m == NULL) {
+			IP6_STATINC(IP6_STAT_PFILDROP_IN);
 			return;
+		}
 		KASSERT(m->m_len >= sizeof(struct ip6_hdr));
 		ip6 = mtod(m, struct ip6_hdr *);
 		srcrt = !IN6_ARE_ADDR_EQUAL(&odst, &ip6->ip6_dst);

Index: src/sys/netinet6/ip6_output.c
diff -u src/sys/netinet6/ip6_output.c:1.218 src/sys/netinet6/ip6_output.c:1.219
--- src/sys/netinet6/ip6_output.c:1.218	Wed Apr  3 19:23:38 2019
+++ src/sys/netinet6/ip6_output.c	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_output.c,v 1.218 2019/04/03 19:23:38 maxv Exp $	*/
+/*	$NetBSD: ip6_output.c,v 1.219 2019/05/13 07:47:59 ozaki-r Exp $	*/
 /*	$KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.218 2019/04/03 19:23:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.219 2019/05/13 07:47:59 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -756,10 +756,11 @@ ip6_output(
 	/*
 	 * Run through list of hooks for output packets.
 	 */
-	if ((error = pfil_run_hooks(inet6_pfil_hook, &m, ifp, PFIL_OUT)) != 0)
-		goto done;
-	if (m == NULL)
+	error = pfil_run_hooks(inet6_pfil_hook, &m, ifp, PFIL_OUT);
+	if (error != 0 || m == NULL) {
+		IP6_STATINC(IP6_STAT_PFILDROP_OUT);
 		goto done;
+	}
 	ip6 = mtod(m, struct ip6_hdr *);
 
 	/*

Index: src/sys/netinet6/ip6_var.h
diff -u src/sys/netinet6/ip6_var.h:1.81 src/sys/netinet6/ip6_var.h:1.82
--- src/sys/netinet6/ip6_var.h:1.81	Thu Nov 29 09:51:21 2018
+++ src/sys/netinet6/ip6_var.h	Mon May 13 07:47:59 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_var.h,v 1.81 2018/11/29 09:51:21 ozaki-r Exp $	*/
+/*	$NetBSD: ip6_var.h,v 1.82 2019/05/13 07:47:59 ozaki-r Exp $	*/
 /*	$KAME: ip6_var.h,v 1.33 2000/06/11 14:59:20 jinmei Exp $	*/
 
 /*
@@ -186,8 +186,10 @@ struct	ip6_pktopts {
 #define	IP6_STAT_FASTFORWARD	400	/* packets fast forwarded */
 #define	IP6_STAT_FASTFORWARDFLOWS 401	/* number of fast forward flows */
 #define	IP6_STAT_NOIPSEC	402	/* no match ipsec(4) found */
+#define	IP6_STAT_PFILDROP_IN	403	/* dropped by pfil (PFIL_IN) */
+#define	IP6_STAT_PFILDROP_OUT	404	/* dropped by pfil (PFIL_OUT) */
 
-#define	IP6_NSTATS		403
+#define	IP6_NSTATS		405
 
 #define IP6FLOW_HASHBITS         6 /* should not be a multiple of 8 */
 

Reply via email to