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 */