Description of problem: In linux kernel, if time_after(jiffies, (rt->u.dst.rate_last +(ip_rt_redirect_load << rt->u.dst.rate_tokens)) == false, router will not send redirect packet. Here define b = rt->u.dst.rate_last +(ip_rt_redirect_load << rt->u.dst.rate_tokens), 1. If (jiffies - b <= 0x7fffffff), time_after(jiffies, b) == true, router can send redirect packet. 2. If (jiffies - b > 0x7fffffff), time_after(jiffies, b) == false, router can not send redirect packet. For example: when I add a router after system boot jiffies = (unsigned long)(-300000), rt->u.dst.rate_last = 0, rt->u.dst.rate_tokens = 0, b = 20, then time_after((unsigned long)(-300000), 20) == false, redirect packet can not be send even if router is used in the first time. When router send a redirect packet in time b, and before jiffies increased to 0x7fffffff + b, router can send redirect packet. But if a redirect packet must be send in 0x80000000+ b, time_after(jiffies, b) == false, redirect packet will not be send also. So between time (0x80000000+ b) to time b, router do not send redirect packet. That is to say, in a circle of jiffies, router has 24.9 days can not send redirect packet (0x80000000/1000/60/60/24=24.9). jiffies 0 b ------|------------------------------|-------|-------------------|---->time 0x80000000+b b 0x7fffffff+b |<----jiffies - b < 0x7fffffff--->| Version-Release number of selected component (if applicable): kernel How reproducible: Steps to Reproduce: 1. r 2. 3. Actual results: HOST1 does not receive the redirect packet from ROUTER Expected results: HOST1 can receive the redirect packet from ROUTER Additional info:
Created attachment 291815 [details] the patch for the ip_rt_send_redirect of the kernel
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.
Committed in 68.28.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/
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-2008-0665.html