• Wei Dong's avatar
    [IPV6]: SNMPv2 "ipv6IfStatsOutFragCreates" counter error · dafee490
    Wei Dong authored
      When I tested linux kernel 2.6.71.7 about statistics
    "ipv6IfStatsOutFragCreates", and found that it couldn't increase
    correctly. The criteria is RFC 2465:
    
      ipv6IfStatsOutFragCreates OBJECT-TYPE
          SYNTAX      Counter32
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
             "The number of output datagram fragments that have
             been generated as a result of fragmentation at
             this output interface."
          ::= { ipv6IfStatsEntry 15 }
    
    I think there are two issues in Linux kernel. 
    1st:
    RFC2465 specifies the counter is "The number of output datagram
    fragments...". I think increasing this counter after output a fragment
    successfully is better. And it should not be increased even though a
    fragment is created but failed to output.
    
    2nd:
    If we send a big ICMP/ICMPv6 echo request to a host, and receive
    ICMP/ICMPv6 echo reply consisted of some fragments. As we know that in
    Linux kernel first fragmentation occurs in ICMP layer(maybe saying
    transport layer is better), but this is not the "real"
    fragmentation,just do some "pre-fragment" -- allocate space for date,
    and form a frag_list, etc. The "real" fragmentation happens in IP layer
    -- set offset and MF flag and so on. So I think in "fast path" for
    ip_fragment/ip6_fragment, if we send a fragment which "pre-fragment" by
    upper layer we should also increase "ipv6IfStatsOutFragCreates".
    Signed-off-by: default avatarWei Dong <weid@nanjing-fnst.com>
    Acked-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dafee490
ip_output.c 34.4 KB