[ovs-discuss] HTB implementation in openvswitch -reg

Mathumitha S cerisierfilix at hotmail.com
Mon Jan 7 04:44:18 UTC 2013





Hi all,
                       I have OpenVSwitch installed on one 
computer which has a quad-port. I have two other computers connected to 
two ports eth4 and eth5. I have eth4 connected to openflow port 2 and 
eth5 connected to openflow port 1. I created 3 queues at eth5. If I set the min-rate and max-rate to be equal for each queue, then I get the desired output i.e all the queues output is at the configured rate but when I set the min-rate and max-rate different, the total rate gets divided equally for all queues. Why does it happen so? 

I have used a python script to create the queues and form the flow table. I have attached the python script.

After creating the queues and flow-table, 

ovs-vsctl list queue gives:

_uuid               : c0ecb2ca-d160-47e0-8aa6-706a16e0dee4
dscp                : []
external_ids        : {}
other_config        : {max-rate="1000000000", min-rate="500000000"}

_uuid               : b185925f-5d54-475f-99f7-7f7b4494ec7b
dscp                : []
external_ids        : {}
other_config        : {max-rate="1000000000", min-rate="166666666"}

_uuid               : d159b297-819d-4bf2-8b89-7c004f9e8870
dscp                : []
external_ids        : {}
other_config        : {max-rate="1000000000", min-rate="333333333"}

ovs-ofctl dump-flows br0 gives:

NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=565.288s, table=0, n_packets=6, n_bytes=360, idle_age=367, priority=0,in_port=2 actions=output:1
 cookie=0x0, duration=565.291s, table=0, n_packets=2976099, n_bytes=185344448, idle_age=132, in_port=1 actions=output:2
 cookie=0x0, duration=565.298s, table=0, n_packets=481851, n_bytes=7782220630, idle_age=351, priority=1,tcp,in_port=2,tp_dst=6005 actions=enqueue:1q1
 cookie=0x0, duration=565.294s, table=0, n_packets=482898, n_bytes=7783469380, idle_age=352, priority=1,tcp,in_port=2,tp_dst=6010 actions=enqueue:1q2
 cookie=0x0, duration=565.301s, table=0, n_packets=551341, n_bytes=7724940986, idle_age=352, priority=1,tcp,in_port=2,tp_dst=6000 actions=enqueue:1q0


When I use 3 server-client pairs and enqueue traffic from each client to a separate queue, at the server side I get the rates 308 Mbps, 310 Mbps and 310 Mbps for the 3 server-client pairs. If I just use two clients and generate traffic, then I get the rates 462 Mbps and 473 Mbps. According to the concept of HTB, the min-rates should be assigned and the excess bandwidth should be divided in proportion of their rates. Then, why is the max-rate getting equally divided? Am I wrong in understanding HTB?  Pls help me. 


Thank you

Regards,
Mathumitha

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20130107/922783f8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: diff_serv.py
Type: text/x-python
Size: 1110 bytes
Desc: not available
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20130107/922783f8/attachment-0002.py>


More information about the discuss mailing list