Bug 53325
| Summary: | Errata conversion of iptables .... -m limit ##/sec | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Retired] Red Hat Linux | Reporter: | Dario Lesca <d.lesca> | ||||||||
| Component: | iptables | Assignee: | Bernhard Rosenkraenzer <bero> | ||||||||
| Status: | CLOSED ERRATA | QA Contact: | |||||||||
| Severity: | high | Docs Contact: | |||||||||
| Priority: | medium | ||||||||||
| Version: | 7.1 | CC: | d.lesca | ||||||||
| Target Milestone: | --- | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | i686 | ||||||||||
| OS: | Linux | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2001-11-07 14:15:29 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: |
|
||||||||||
|
Description
Dario Lesca
2001-09-06 18:25:24 UTC
21/second = 21*3600*24/day = 1814400/day ~= 1815126/day => not far off ;-) Created attachment 31314 [details]
patch against iptables 1.2.2
Created attachment 31315 [details]
patch against iptables 1.2.3
It's due to a rather unfortunate rounding of input values. Hmmm, with the patch applied, the slower rates become more inaccurate. For
instance, 6000/hour is rounded to 1/sec (= 3600/hour). Not so nice either. I
wonder what is more important. Fine grained rates of x/minute and y/second, or
per hour or per day?
One could probably implement a check that examines the remainder in the
calculation in the old code more closely, trying to determine the best matching
unit. Sort of, not checking the remainder against zero (like the old code does),
but only if the remainder of "rates[i].mult % period" is greater than some
threshold, the unit is found:
if (period > rates[i].mult
|| rates[i].mult % period > X)
break;
with X being some percentage of rates[i].mult or so.
Created attachment 31316 [details]
a different approach
Today I was notified that this last patch has been applied to CVS (netfilter userspace). Fixed in 1.2.4-1 (rawhide now, errata soon) |