Network simulation script based on Dummynet.
This script only intends to support Mac and Linux so far. Additional coding and conditional checking will be required to support Windows.

BUG=None.
TEST=Tested on Linux and Mac.

Review URL: https://webrtc-codereview.appspot.com/606006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2335 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/tools/network_simulator/config.py b/tools/network_simulator/config.py
new file mode 100644
index 0000000..ac450f6
--- /dev/null
+++ b/tools/network_simulator/config.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+#  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
+#
+#  Use of this source code is governed by a BSD-style license
+#  that can be found in the LICENSE file in the root of the source
+#  tree. An additional intellectual property rights grant can be found
+#  in the file PATENTS.  All contributing project authors may
+#  be found in the AUTHORS file in the root of the source tree.
+
+"""Configuration class for network simulation."""
+
+
+class ConnectionConfig(object):
+  """Configuration containing the characteristics of a network connection."""
+
+  def __init__(self, num, name, receive_bw_kbps, send_bw_kbps, delay_ms,
+               packet_loss_percent, queue_slots):
+    self.num = num
+    self.name = name
+    self.receive_bw_kbps = receive_bw_kbps
+    self.send_bw_kbps = send_bw_kbps
+    self.delay_ms = delay_ms
+    self.packet_loss_percent = packet_loss_percent
+    self.queue_slots = queue_slots
+
+  def __str__(self):
+    """String representing the configuration.
+
+    Returns:
+        A string formatted and padded like this example:
+    12 Name                       375 kbps   375 kbps   10   145 ms  0.1 %
+    """
+    left_aligned_name = self.name.ljust(24, ' ')
+    return '%2s %24s %5s kbps %5s kbps %4s %5s ms  %3s %%' % (
+        self.num, left_aligned_name, self.receive_bw_kbps, self.send_bw_kbps,
+        self.queue_slots, self.delay_ms, self.packet_loss_percent)