Example #1
0
 def __init__(self, latency, limit=1000, loss=0, gap=0, duplicate=0, jitter=0):
     """Latency is in microseconds [us]"""
     latency_ticks = nl_us2ticks(latency)
     jitter_ticks = nl_us2ticks(jitter)
     data = self.data_format.pack(latency_ticks, limit, loss,
                                  gap, duplicate, jitter_ticks)
     Attr.__init__(self, TCA_OPTIONS, data)
Example #2
0
 def __init__(self,
              latency,
              limit=1000,
              loss=0,
              gap=0,
              duplicate=0,
              jitter=0):
     """Latency is in microseconds [us]"""
     latency_ticks = nl_us2ticks(latency)
     jitter_ticks = nl_us2ticks(jitter)
     data = self.data_format.pack(latency_ticks, limit, loss, gap,
                                  duplicate, jitter_ticks)
     Attr.__init__(self, TCA_OPTIONS, data)
Example #3
0
    def test_unpack_add_netem(self):
        """tc qdisc add dev lo root handle 1: netem delay 10ms"""
        data = "\x4c\x00\x00\x00\x24\x00\x05\x06\x07\x1b\xcc\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\xff\xff\xff\xff\x00\x00\x00\x00\x0a\x00\x01\x00\x6e\x65\x74\x65\x6d\x00\x00\x00\x1c\x00\x02\x00\x5a\x62\x02\x00\xe8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        msg = Message.unpack(data)
        self.assertEqual(msg.type, RTM_NEWQDISC)
        self.assertEqual(msg.flags, 0x605)

        st = msg.service_template
        self.assertAlmostEqual(st.tcm_handle, 0x10000)
        self.assertAlmostEqual(st.tcm_parent, 0xffffffff)
        
        attr, data = NetemOptions.unpack(data[-28:])
        self.assertEqual(attr.data.latency, nl_us2ticks(10*1000))
Example #4
0
    def test_unpack_add_netem(self):
        """tc qdisc add dev lo root handle 1: netem delay 10ms"""
        data = "\x4c\x00\x00\x00\x24\x00\x05\x06\x07\x1b\xcc\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\xff\xff\xff\xff\x00\x00\x00\x00\x0a\x00\x01\x00\x6e\x65\x74\x65\x6d\x00\x00\x00\x1c\x00\x02\x00\x5a\x62\x02\x00\xe8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        msg = Message.unpack(data)
        self.assertEqual(msg.type, RTM_NEWQDISC)
        self.assertEqual(msg.flags, 0x605)

        st = msg.service_template
        self.assertAlmostEqual(st.tcm_handle, 0x10000)
        self.assertAlmostEqual(st.tcm_parent, 0xffffffff)

        attr, data = NetemOptions.unpack(data[-28:])
        self.assertEqual(attr.data.latency, nl_us2ticks(10 * 1000))
Example #5
0
def tc_calc_xmittime(rate, size):
    TIME_UNITS_PER_SEC = 1000000#000
    return int(nl_us2ticks(int(TIME_UNITS_PER_SEC*(float(size)/rate))))
Example #6
0
 def test_add_netem_qdisc(self):
     delay = nl_us2ticks(500*1000) # 500 ms
     self.make_msg([Attr(TCA_KIND, 'netem\0'), NetemOptions(delay)])