summaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_output.c
diff options
context:
space:
mode:
authorMasahide NAKAMURA2007-12-21 05:43:36 +0100
committerDavid S. Miller2008-01-28 23:59:39 +0100
commit0aa647746e5602e608220c10e51f49709a030f5d (patch)
tree514cde2ddf6308b0f1dfd83039cb8dd62b2c69d2 /net/xfrm/xfrm_output.c
parent[XFRM]: Define packet dropping statistics. (diff)
downloadkernel-qcow2-linux-0aa647746e5602e608220c10e51f49709a030f5d.tar.gz
kernel-qcow2-linux-0aa647746e5602e608220c10e51f49709a030f5d.tar.xz
kernel-qcow2-linux-0aa647746e5602e608220c10e51f49709a030f5d.zip
[XFRM]: Support to increment packet dropping statistics.
Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_output.c')
-rw-r--r--net/xfrm/xfrm_output.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 26fa0cb78c94..867484a046af 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -69,10 +69,13 @@ static int xfrm_output_one(struct sk_buff *skb, int err)
err = x->type->output(x, skb);
resume:
- if (err)
+ if (err) {
+ XFRM_INC_STATS(LINUX_MIB_XFRMOUTSTATEPROTOERROR);
goto error_nolock;
+ }
if (!(skb->dst = dst_pop(dst))) {
+ XFRM_INC_STATS(LINUX_MIB_XFRMOUTERROR);
err = -EHOSTUNREACH;
goto error_nolock;
}
@@ -167,6 +170,7 @@ int xfrm_output(struct sk_buff *skb)
if (skb->ip_summed == CHECKSUM_PARTIAL) {
err = skb_checksum_help(skb);
if (err) {
+ XFRM_INC_STATS(LINUX_MIB_XFRMOUTERROR);
kfree_skb(skb);
return err;
}