[IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error
When I tested Linux kernel 2.6.17.7 about statistics "ipv6IfStatsInAddrErrors", found that this counter couldn't increase correctly. The criteria is RFC2465: ipv6IfStatsInAddrErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of input datagrams discarded because the IPv6 address in their IPv6 header's destination field was not a valid address to be received at this entity. This count includes invalid addresses (e.g., ::0) and unsupported addresses (e.g., addresses with unallocated prefixes). For entities which are not IPv6 routers and therefore do not forward datagrams, this counter includes datagrams discarded because the destination address was not a local address." ::= { ipv6IfStatsEntry 5 } When I send packet to host with destination that is ether invalid address(::0) or unsupported addresses(1::1), the Linux kernel just discard the packet, and the counter doesn't increase(in the function ip6_pkt_discard). Signed-off-by: Lv Liangying <lvly@nanjing-fnst.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8fb6f732c3
commit
76d0cc1b64
|
@ -1532,6 +1532,10 @@ int ipv6_route_ioctl(unsigned int cmd, void __user *arg)
|
|||
|
||||
static int ip6_pkt_discard(struct sk_buff *skb)
|
||||
{
|
||||
int type = ipv6_addr_type(&skb->nh.ipv6h->daddr);
|
||||
if (type == IPV6_ADDR_ANY || type == IPV6_ADDR_RESERVED)
|
||||
IP6_INC_STATS(IPSTATS_MIB_INADDRERRORS);
|
||||
|
||||
IP6_INC_STATS(IPSTATS_MIB_OUTNOROUTES);
|
||||
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_NOROUTE, 0, skb->dev);
|
||||
kfree_skb(skb);
|
||||
|
|
Loading…
Reference in New Issue