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

                                          
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to