Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Unified Diff: media/tools/constrained_network_server/traffic_control.py

Issue 9127009: Constrained Network test does not fail fast under fatal conditions. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Nits. Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/tools/constrained_network_server/traffic_control.py
diff --git a/media/tools/constrained_network_server/traffic_control.py b/media/tools/constrained_network_server/traffic_control.py
index aa8a157a85dd7c55f475dad1e8c9390e4a1c0da7..c27a255365b766cdd68ade24204916fc9d02285d 100755
--- a/media/tools/constrained_network_server/traffic_control.py
+++ b/media/tools/constrained_network_server/traffic_control.py
@@ -13,7 +13,7 @@ import re
import subprocess
# The maximum bandwidth limit.
-_DEFAULT_MAX_BANDWIDTH_KBPS = 1000000
+_DEFAULT_MAX_BANDWIDTH_KBIT = 1000000
class TrafficControlError(BaseException):
@@ -50,7 +50,7 @@ def CreateConstrainedPort(config):
server_port: Port to redirect traffic on [port] to (integer 1-65535).
interface: Network interface name (string).
latency: Delay added on each packet sent (integer in ms).
- bandwidth: Maximum allowed upload bandwidth (integer in kbps).
+ bandwidth: Maximum allowed upload bandwidth (integer in kbit/s).
loss: Percentage of packets to drop (integer 0-100).
Raises:
@@ -86,7 +86,7 @@ def DeleteConstrainedPort(config):
port: Port to constrain (integer 1-65535).
server_port: Port to redirect traffic on [port] to (integer 1-65535).
interface: Network interface name (string).
- bandwidth: Maximum allowed upload bandwidth (integer in kbps).
+ bandwidth: Maximum allowed upload bandwidth (integer in kbit/s).
Raises:
TrafficControlError: If any operation fails. The message in the exception
@@ -118,7 +118,7 @@ def TearDown(config):
"""
_CheckArgsExist(config, 'interface')
- command = ['tc', 'qdisc', 'del', 'dev', config['interface'], 'root']
+ command = ['sudo', 'tc', 'qdisc', 'del', 'dev', config['interface'], 'root']
try:
_Exec(command, msg='Could not delete root qdisc.')
finally:
@@ -150,8 +150,8 @@ def _AddRootQdisc(interface):
TrafficControlError: If adding the root qdisc fails for a reason other than
it already exists.
"""
- command = ['tc', 'qdisc', 'add', 'dev', interface, 'root', 'handle', '1:',
- 'htb']
+ command = ['sudo', 'tc', 'qdisc', 'add', 'dev', interface, 'root', 'handle',
+ '1:', 'htb']
try:
_Exec(command, msg=('Error creating root qdisc. '
'Make sure you have root access'))
@@ -172,19 +172,20 @@ def _ConfigureClass(option, config):
config: Constraint configuration dictionary, format:
port: Port to constrain (integer 1-65535).
interface: Network interface name (string).
- bandwidth: Maximum allowed upload bandwidth (integer in kbps).
+ bandwidth: Maximum allowed upload bandwidth (integer in kbit/s).
"""
# Use constrained port as class ID so we can attach the qdisc and filter to
# it, as well as delete the class, using only the port number.
class_id = '1:%x' % config['port']
if 'bandwidth' not in config.keys() or not config['bandwidth']:
- bandwidth = _DEFAULT_MAX_BANDWIDTH_KBPS
+ bandwidth = _DEFAULT_MAX_BANDWIDTH_KBIT
else:
bandwidth = config['bandwidth']
- bandwidth = '%dkbps' % bandwidth
- command = ['tc', 'class', option, 'dev', config['interface'], 'parent', '1:',
- 'classid', class_id, 'htb', 'rate', bandwidth, 'ceil', bandwidth]
+ bandwidth = '%dkbit' % bandwidth
+ command = ['sudo', 'tc', 'class', option, 'dev', config['interface'],
+ 'parent', '1:', 'classid', class_id, 'htb', 'rate', bandwidth,
+ 'ceil', bandwidth]
_Exec(command, msg=('Error configuring class ID %s using "%s" command.' %
(class_id, option)))
@@ -201,7 +202,7 @@ def _AddSubQdisc(config):
"""
port_hex = '%x' % config['port']
class_id = '1:%x' % config['port']
- command = ['tc', 'qdisc', 'add', 'dev', config['interface'], 'parent',
+ command = ['sudo', 'tc', 'qdisc', 'add', 'dev', config['interface'], 'parent',
class_id, 'handle', port_hex + ':0', 'netem']
# Check if packet-loss is set in the configuration.
@@ -225,7 +226,7 @@ def _AddFilter(interface, port):
"""
class_id = '1:%x' % port
- command = ['tc', 'filter', 'add', 'dev', interface, 'protocol', 'ip',
+ command = ['sudo', 'tc', 'filter', 'add', 'dev', interface, 'protocol', 'ip',
'parent', '1:', 'prio', '1', 'u32', 'match', 'ip', 'sport', port,
'0xffff', 'flowid', class_id]
_Exec(command, msg='Error adding filter on port %d.' % port)
@@ -239,7 +240,7 @@ def _DeleteFilter(interface, port):
port: Port number being filtered (integer 1-65535).
"""
handle_id = _GetFilterHandleId(interface, port)
- command = ['tc', 'filter', 'del', 'dev', interface, 'protocol', 'ip',
+ command = ['sudo', 'tc', 'filter', 'del', 'dev', interface, 'protocol', 'ip',
'parent', '1:0', 'handle', handle_id, 'prio', '1', 'u32']
_Exec(command, msg='Error deleting filter on port %d.' % port)
@@ -257,7 +258,7 @@ def _GetFilterHandleId(interface, port):
Raises:
TrafficControlError: If handle ID was not found.
"""
- command = ['tc', 'filter', 'list', 'dev', interface, 'parent', '1:']
+ command = ['sudo', 'tc', 'filter', 'list', 'dev', interface, 'parent', '1:']
output = _Exec(command, msg='Error listing filters.')
# Search for the filter handle ID associated with class ID '1:port'.
handle_id_re = re.search(
@@ -277,13 +278,14 @@ def _AddIptableRule(interface, port, server_port):
server_port: Server port to forward the packets to (integer 1-65535).
"""
# Preroute rules for accessing the port through external connections.
- command = ['iptables', '-t', 'nat', '-A', 'PREROUTING', '-i', interface, '-p',
- 'tcp', '--dport', port, '-j', 'REDIRECT', '--to-port', server_port]
+ command = ['sudo', 'iptables', '-t', 'nat', '-A', 'PREROUTING', '-i',
+ interface, '-p', 'tcp', '--dport', port, '-j', 'REDIRECT',
+ '--to-port', server_port]
_Exec(command, msg='Error adding iptables rule for port %d.' % port)
# Output rules for accessing the rule through localhost or 127.0.0.1
- command = ['iptables', '-t', 'nat', '-A', 'OUTPUT', '-p', 'tcp', '--dport',
- port, '-j', 'REDIRECT', '--to-port', server_port]
+ command = ['sudo', 'iptables', '-t', 'nat', '-A', 'OUTPUT', '-p', 'tcp',
+ '--dport', port, '-j', 'REDIRECT', '--to-port', server_port]
_Exec(command, msg='Error adding iptables rule for port %d.' % port)
@@ -295,18 +297,19 @@ def _DeleteIptableRule(interface, port, server_port):
port: Port of incoming packets (integer 1-65535).
server_port: Server port packets are forwarded to (integer 1-65535).
"""
- command = ['iptables', '-t', 'nat', '-D', 'PREROUTING', '-i', interface, '-p',
- 'tcp', '--dport', port, '-j', 'REDIRECT', '--to-port', server_port]
+ command = ['sudo', 'iptables', '-t', 'nat', '-D', 'PREROUTING', '-i',
+ interface, '-p', 'tcp', '--dport', port, '-j', 'REDIRECT',
+ '--to-port', server_port]
_Exec(command, msg='Error deleting iptables rule for port %d.' % port)
- command = ['iptables', '-t', 'nat', '-D', 'OUTPUT', '-p', 'tcp', '--dport',
- port, '-j', 'REDIRECT', '--to-port', server_port]
+ command = ['sudo', 'iptables', '-t', 'nat', '-D', 'OUTPUT', '-p', 'tcp',
+ '--dport', port, '-j', 'REDIRECT', '--to-port', server_port]
_Exec(command, msg='Error adding iptables rule for port %d.' % port)
def _DeleteAllIpTableRules():
"""Deletes all iptables rules."""
- command = ['iptables', '-t', 'nat', '-F']
+ command = ['sudo', 'iptables', '-t', 'nat', '-F']
_Exec(command, msg='Error deleting all iptables rules.')

Powered by Google App Engine
This is Rietveld 408576698