[ovs-discuss] Enqueueing traffic from different machines.

Mathumitha S cerisierfilix at hotmail.com
Thu Jan 10 11:27:38 UTC 2013





Hi,
            I have OpenvSwitch installed in a computer that has a quad port. eth3, 
eth4 and eth5 are connected to br0 with respective open flow port 
numbers as 1,3,2 and the respective IP addresses of the machines 
connected to the ports are 10.6.3.2, 10.6.1.2 and 10.6.2.2

I use 
eth3 and eth4 i.e ports 1 and 3 as input port and eth5 (port 2) as 
output port of OvS. I created 3 queues at eth5 using the following 
command:

ovs-vsctl -- set port eth5 qos=@newqos -- --id=@newqos create qos type=linux-htb other-config:max-rate=1000000000 queues=0=@q0,1=@q1,2=@q2 -- --id=@q0 create queue other-config:min-rate=1000000 other-config:max-rate=1000000 -- --id=@q1 create queue other-config:min-rate=20000000 other-config:max-rate=20000000 -- --id=@q2 create queue other-config:min-rate=10000000 other-config:max-rate=10000000

I used the following commands to define the flows:

ovs-ofctl add-flow br0 "in_port=2,actions=flood"
ovs-ofctl add-flow br0 "in_port=1,priority=0,actions=enqueue:2:0"
ovs-ofctl add-flow br0 "in_port=3,priority=0,actions=enqueue:2:0"
ovs-ofctl add-flow br0 "in_port=3,dl_type=0x0800,nw_proto=6,tp_dst=6000,priority=7,actions=enqueue:2:2"
ovs-ofctl add-flow br0 "in_port=1,dl_type=0x0800,nw_proto=6,tp_dst=6005,priority=7,actions=enqueue:2:1"

I use iperf at the machines to generate traffic and I got the expected rates of 20 Mbps and 10 Mbps (approx) for the machines connected to ports 1 and 3 respectively.

But if I change the max-rate values for the queues and set it equal to the max-rate of the qos, I get rates as 100 Mbps for both the machines even if I generate traffic at the same instant.

The command used is
ovs-vsctl -- set port eth5 qos=@newqos -- --id=@newqos create qos type=linux-htb other-config:max-rate=1000000000 queues=0=@q0,1=@q1,2=@q2 -- --id=@q0 create queue other-config:min-rate=1000000 other-config:max-rate=1000000 -- --id=@q1 create queue other-config:min-rate=20000000 other-config:max-rate=100000000 -- --id=@q2 create queue other-config:min-rate=10000000 other-config:max-rate=100000000

 If I generate traffic at the same time from both machines, then the available bandwidth should be shared between the 2 queues in the ratio of their respective weights, right? But then why am I not able to see the bandwidth sharing? Please let me know where I am going wrong.

If I queue 2 different flows from the same machine in different queues, then I can see that the bandwidth is shared. But when I use traffic from 2 different machines connected to 2 different input ports, I am not able to see the bandwidth sharing. Where am I  making a mistake?

Thank you

Regards,
Mathumitha

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20130110/ca33704c/attachment.html>


More information about the discuss mailing list