Home | History | Annotate | Download | only in network_emulator
      1 #!/usr/bin/env python
      2 #  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
      3 #
      4 #  Use of this source code is governed by a BSD-style license
      5 #  that can be found in the LICENSE file in the root of the source
      6 #  tree. An additional intellectual property rights grant can be found
      7 #  in the file PATENTS.  All contributing project authors may
      8 #  be found in the AUTHORS file in the root of the source tree.
      9 
     10 """Configuration class for network emulation."""
     11 
     12 
     13 class ConnectionConfig(object):
     14   """Configuration containing the characteristics of a network connection."""
     15 
     16   def __init__(self, num, name, receive_bw_kbps, send_bw_kbps, delay_ms,
     17                packet_loss_percent, queue_slots):
     18     self.num = num
     19     self.name = name
     20     self.receive_bw_kbps = receive_bw_kbps
     21     self.send_bw_kbps = send_bw_kbps
     22     self.delay_ms = delay_ms
     23     self.packet_loss_percent = packet_loss_percent
     24     self.queue_slots = queue_slots
     25 
     26   def __str__(self):
     27     """String representing the configuration.
     28 
     29     Returns:
     30         A string formatted and padded like this example:
     31     12 Name                       375 kbps   375 kbps   10   145 ms  0.1 %
     32     """
     33     left_aligned_name = self.name.ljust(24, ' ')
     34     return '%2s %24s %5s kbps %5s kbps %4s %5s ms  %3s %%' % (
     35         self.num, left_aligned_name, self.receive_bw_kbps, self.send_bw_kbps,
     36         self.queue_slots, self.delay_ms, self.packet_loss_percent)
     37