Bug 507951 - [4.8]Kernel can not increase the counter of Icmp6OutDestUnreachs when forwarding packet with address unreachable.
[4.8]Kernel can not increase the counter of Icmp6OutDestUnreachs when forward...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel (Show other bugs)
4.8
All Linux
medium Severity medium
: rc
: ---
Assigned To: Danny Feng
Network QE
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-24 15:58 EDT by Flavio Leitner
Modified: 2011-05-31 06:07 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-02-16 10:57:39 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
suggested patch (1.61 KB, patch)
2009-06-24 15:58 EDT, Flavio Leitner
no flags Details | Diff
posted patch (1.62 KB, patch)
2009-07-06 22:13 EDT, Danny Feng
no flags Details | Diff

  None (edit)
Description Flavio Leitner 2009-06-24 15:58:28 EDT
Created attachment 349301 [details]
suggested patch

Description of Problem:

 It is assumed that the router with two interfaces (IF0 and IF1) exists.
 When router's IF0 received a packet, and forwarding this packet with IF1,
 the router will check the dst address. If the dst address is unreachable,
 router will send a DestUnreachs packet back to sender using the IF0.
 But the IF0's counter of OutDestUnreachs can not be increased,
 the IF1's counter of OutDestUnreachs will be increased instead.

 The counter of Icmp6OutPktTooBigs and Icmp6OutTimeExcds have the same problem.

Version-Release number of selected component:

 Red Hat Enterprise Linux Version Number: RHEL4
 Release Number:                          4.8
 Architecture:                            x86_64
 Kernel Version:                          kernel-2.6.9-89.EL
 Related Package Version:                 none
 Related Middleware / Application:        none

Drivers or hardware or architecture dependency:
 none

How reproducible:
 every time

Step to Reproduce:
 The topology as follow for example:

  IF0: eth0
  IF1: eth0.100
                               -------|------------------2002::/64
                                      |[eth0.100]
                                      |fe80::2zz:zzff:fezz:zzzz/64
    -------                       --------
   |tester |                     | Router |(RHEL4.8)
    -------                       --------
       |[eth0]                        |[eth0]
       |3ffe:501:ffff:100::xxxx/64    |3ffe:501:ffff:100::yyyy/64
 ------|------------------------------|------------fe80::/64

 Step1
   Config the tester
   #ip -6 addr add 3ffe:501:ffff:100::xxxx/64 dev eth0
   #ip -6 route add 2002::/64 via 3ffe:501:ffff:100::yyyy dev eth0

 Step2
   Config the router
   #sysctl net.ipv6.conf.all.forwarding=1
   #ip -6 addr add 3ffe:501:ffff:100::yyyy/64 dev eth0
   #ip -6 route add  2002::/64 via fe80::2zz:zzff:fezz:zzzz dev eth0.100

 Step3
   router: record the value of Icmp6OutDestUnreachs of eth0 and eth0.100
   #cat /proc/net/dev_snmp6/eth0 | grep Icmp6OutDestUnreachs
   #cat /proc/net/dev_snmp6/eth0.100 | grep Icmp6OutDestUnreachs

 Step4
   host: send icmp packets to unknown dst addr of 2002::2.
   #ping6 -I eth0 -c 1 2002::2

   (note) the ping6 command is failed by address unreachable.

 Step5
   router: record the value of Icmp6OutDestUnreachs of eth0 and eth1
   #cat /proc/net/dev_snmp6/eth0 | grep Icmp6OutDestUnreachs
   #cat /proc/net/dev_snmp6/eth0.100 | grep Icmp6OutDestUnreachs

Actual Results:
 The eth0's counter of Icmp6OutDestUnreachs can not be increased,
 but the eth0.100's counter of Icmp6OutDestUnreachs can be increased 1 count instead.

Expected Results:
 The eth0's counter of Icmp6OutDestUnreachs can be increased 1 count,
 and the eth0.100's counter of Icmp6OutDestUnreachs can not be increased.

Hardware configuration:
 Model:        PRIMERGY TX150 S5
 CPU Info:     Intel(R) Xeon(R) CPU   3040  @ 1.86GHz
 Memory Info:  6GB

Business Impact:
  Target Release: 4.9
  Errata Request: No
  Hotfix Request: No

Additional Info:
 The sosreport file is attached:
   file: sosreport-ueki.001-617398-8adccb.tar.bz2
   md5sum: 3e52026401fa6a71d43dcb132e8adccb

 The patch file is attached:
   file: net-fix-counter-of-OutDestUnreachs.patch

   This problem has already been solved in latest community's kernel.
Comment 2 RHEL Product and Program Management 2009-07-02 17:23:57 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.
Comment 3 Danny Feng 2009-07-06 22:13:52 EDT
Created attachment 350712 [details]
posted patch
Comment 4 Vivek Goyal 2009-07-14 14:52:18 EDT
Committed in 89.6.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/
Comment 12 errata-xmlrpc 2011-02-16 10:57:39 EST
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0263.html

Note You need to log in before you can comment on or make changes to this bug.