Age | Commit message (Collapse) | Author |
|
Need to handle the case of devices that don't know their current speed.
In this case, ethtool will print "Unknown!" which the old code wasn't
handling right.
Move the default speed stuff down into traffic shaper code as well,
so any future policies using auto can make other choices as to what
to do in this case.
Bugfix: 3450
|
|
When validating the class rates, need to leave the array of
classes in original form for later command processing.
Bugfix 3458
|
|
Since configuration system doesn't correctly notify on addition/deletion,
have to introduce this extra verbosity to have each traffic-shaper type
check for changes.
Bugfix for 3452
|
|
|
|
Bugfix 3450
If device is offline, can't find speed. So use a sensible default
and try a few times.
|
|
Should say "greater or equal" not "less than"
Bug 2919
|
|
Bugfix 2919
As long as the bandwidth isn't auto, then validate at commit time.
|
|
Add newline in right spot so words don't run together.
|
|
One more try at explaining why rates must be correct.
|
|
Use speed of underlying interface. Bug 3137
|
|
Use tcindex to get original dsfield value.
Fixes bug: 3033
|
|
This might resolve issues with set-dscp and later dscp matches.
|
|
Add new QoS policy type "rate-limit" which is a wrapper around the
the Token Bucket Filter (TBF) qdisc.
Rate limit provides a simple way to do basic bandwidth limitation without
the complexity of the doing multiple classes in the traffic shaper
policy.
|
|
One of the parameters to TrafficShaper::_define was not being passed
or used.
|
|
Change the existing warning into a failure. No one reads warnings,
and the shaping is unstable if ceiling < bandwidth.
|
|
Slightly better message for the case of using auto value for bandwidth
on a device does not support it.
Bug: 3104
|
|
Yet another place where id needs to be converted to hex.
Should fix bug 3078.
|
|
This fixes problem which causes QoS not to fail on commit if ceiling
is a percentage.
The ceiling maybe a percentage (not fixed) value so it needs to
be interpreted before passing to tc.
|
|
Internal TC commands use hex for identifiers and one place in perl
script forgot to reformat.
Bugfix for 3142 from Chris Smith <chris.smith@conceptcoders.com>
|
|
ceiling parameter was not being forwarded to kernel.
|
|
If the customer has incorrectly assigned bandwidth and
rate ceilings for QOS, the problem can not be detected until
commit. At that point (possibly during boot), it is better to
print a warning rather than failing.
This addresses Bug 2919.
|
|
This reverts commit ff77155be360216289e1e73af50dc4b82383cc68.
|
|
Revert "More unfrozen stuff"
This reverts commit f1e5d5991c8fc1420d00ef51c826f77b2d8c2bbd.
|
|
Revert "Better validation of numeric input"
This reverts commit e1624917ba2ed574fe350b470762a732a9820cbd.
|
|
Revert "silence ethtool messages when auto bandwidth used"
This reverts commit c1b530e7bfa5c33a8f51f634f906d2412f187e90.
|
|
If device doesn't support full ethtool, then ethtool error messages
were leaking out to console, when QOS bandwidth was detecting interface
speed.
|
|
Fix for Bug 2763 and related problems. Need better handling of numeric
inputs. Real perl programmers don't use a switch, but hash instead.
|
|
Bugfix for 3010
|
|
|
|
Need to cleanup old qdisc/class/filters before applying new one.
Bugfix: 2932
|
|
The generated filtering rules were using wrong id's when
set-dscp was being used. Need to put dsmark rules on root,
and htb rules on start of that tree, and the id needs to
be printed in hex not decimal.
Bugfix: 2947
|
|
Add a bunch of checks.
* Check policy configuration at commit time
* Add check for duplicate names
* Allow _ in policy name
Bugfix: 2907
|
|
Bugfix: 2919
But configuration level in error message
|
|
Having a hardcoded switch statement is harder to update than
using a hash.
|
|
Script was using old value, and default be undefined not 0.
|
|
Fix parsing problems for update-interface that caused problems
during boot.
Bugfix: 2914
|
|
The function validate_name is no longer used.
|
|
The delete-policy option requires two arguments (for consistency),
and the validate-name option is no longer used.
|
|
For compatiablity use DSCP values in the 0..63 range and scale
in the script, rather than uses raw header values. This makes configuration
more familar to IOS users.
|
|
No functional change just change listName to listPolicy to make
it clearer what is going on.
|
|
If no suffix is given, the bandwidth value should be in "bits/sec"
(not bytes/sec), to be compatiable with other routers.
|
|
This adds ability to choose the underlying queue type for traffic shaper
classes:
drop-tail => fifo
random-detect => red
fair-queue => sfq
priority => prio
For Red, the values are computed based on the bandwidth so it is much
simpler than raw tc usage.
|
|
This makes dsmark work. Need to round up to power of 2 and also
pass parent down to handle nested case properly.
|
|
If the command to tc doesn't work, then reprint to standard out
for diagnostic. Also, fix use of sudo in delete of qdisc.
|
|
But do it in a manner safe from quoting attacks!
|
|
Matching on 'ip' uses the u32 tc filter and other match types 'interface',
'vif' use the basic tc filter. Since kernel doesn't allow mixing filter
types in the same classifier, need to catch and report the problem rather
than failing in the actual commands.
|
|
add preliminary support for dsmark (still needs testing).
allow class 2 (compute default class as n+1)
|
|
This enforces syntax checks on dscp values.
|
|
Use proper syntax for incoming interface and outgoing vlan match.
Need to catch u32 vs basic match filter conflicts.
|
|
need to lookup ifindex for interface not vlan tag (duh)
and ip field should be initialized only when ip tag is found.
|