Patch "net/ipv6: Increment OUTxxx counters after netfilter hook" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net/ipv6: Increment OUTxxx counters after netfilter hook
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-ipv6-increment-outxxx-counters-after-netfilter-hook.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Apr 11 10:26:56 CEST 2018
From: Jeff Barnhill <[email protected]>
Date: Thu, 5 Apr 2018 21:29:47 +0000
Subject: net/ipv6: Increment OUTxxx counters after netfilter hook
From: Jeff Barnhill <[email protected]>
[ Upstream commit 71a1c915238c970cd9bdd5bf158b1279d6b6d55b ]
At the end of ip6_forward(), IPSTATS_MIB_OUTFORWDATAGRAMS and IPSTATS_MIB_OUTOCTETS are incremented immediately before the NF_HOOK call for NFPROTO_IPV6 / NF_INET_FORWARD. As a result, these counters get incremented regardless of whether or not the netfilter hook allows the packet to continue being processed. This change increments the counters in ip6_forward_finish() so that it will not happen if the netfilter hook chooses to terminate the packet, which is similar to how IPv4 works.
--- net/ipv6/ip6_output.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
net/ipv6/ip6_output.c +5 -2
@@ -356,6 +356,11 @@ static int ip6_forward_proxy_check(strucstatic inline int ip6_forward_finish (struct net *net,struct sock *sk,struct sk_buff *skb) { +struct dst_entry *dst =skb_dst (skb); + +__IP6_INC_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTFORWDATAGRAMS ); +__IP6_ADD_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTOCTETS , skb->len); +return dst_output (net, sk, skb); }
@@ -549,8 +554,6 @@ int ip6_forward(struct sk_buff *skb) hdr->hop_limit--; -__IP6_INC_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTFORWDATAGRAMS ); -__IP6_ADD_STATS (net,ip6_dst_idev (dst),IPSTATS_MIB_OUTOCTETS , skb->len);return NF_HOOK (NFPROTO_IPV6 ,NF_INET_FORWARD , net,NULL , skb, skb->dev, dst->dev, ip6_forward_finish);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/net-ipv6-increment-outxxx-counters-after-netfilter-hook.patch