Bug 428934
| Summary: | Can not send redirect packet when jiffiess wraparound | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 4 | Reporter: | Li Yewang <lyw> | ||||
| Component: | kernel | Assignee: | Thomas Graf <tgraf> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Martin Jenner <mjenner> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | low | ||||||
| Version: | 4.6 | CC: | davem, nhorman, rkhan, vgoyal | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | RHSA-2008-0665 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2008-07-24 19:24:37 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
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 |
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: