[IPv6]: Exclude truncated packets from InHdrErrors statistics
Incoming trancated packets are counted as not only InTruncatedPkts but also InHdrErrors. They should be counted as InTruncatedPkts only. Signed-off-by: Mitsuru Chinen <mitch@linux.vnet.ibm.com> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
75559c167b
commit
60e5c16641
@ -108,8 +108,10 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
|
|||||||
|
|
||||||
/* pkt_len may be zero if Jumbo payload option is present */
|
/* pkt_len may be zero if Jumbo payload option is present */
|
||||||
if (pkt_len || hdr->nexthdr != NEXTHDR_HOP) {
|
if (pkt_len || hdr->nexthdr != NEXTHDR_HOP) {
|
||||||
if (pkt_len + sizeof(struct ipv6hdr) > skb->len)
|
if (pkt_len + sizeof(struct ipv6hdr) > skb->len) {
|
||||||
goto truncated;
|
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INTRUNCATEDPKTS);
|
||||||
|
goto drop;
|
||||||
|
}
|
||||||
if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr))) {
|
if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr))) {
|
||||||
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS);
|
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS);
|
||||||
goto drop;
|
goto drop;
|
||||||
@ -128,8 +130,6 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
|
|||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
return NF_HOOK(PF_INET6,NF_IP6_PRE_ROUTING, skb, dev, NULL, ip6_rcv_finish);
|
return NF_HOOK(PF_INET6,NF_IP6_PRE_ROUTING, skb, dev, NULL, ip6_rcv_finish);
|
||||||
truncated:
|
|
||||||
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INTRUNCATEDPKTS);
|
|
||||||
err:
|
err:
|
||||||
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS);
|
IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS);
|
||||||
drop:
|
drop:
|
||||||
|
Loading…
Reference in New Issue
Block a user