Thank you. I am now able to transfer traffic between the different machines. 
Now the problem is different.  I had posted that as a new question as I didn't 
know about creating multiple threads. Sorry. I am asking the same question here 
again. Can you please help me out?

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

> From: je...@nicira.com
> Date: Thu, 10 Jan 2013 09:13:53 -0800
> Subject: Re: [ovs-discuss] Distinguish flows based on IP address and port 
> numbers in OvS
> To: cerisierfi...@hotmail.com
> CC: discuss@openvswitch.org
> 
> You said this before:
> 
> "If the following defines the flows, it works.
> 
> ovs-ofctl add-flow br0 "in_port=1,priority=0,actions=output:2"
> ovs-ofctl add-flow br0 "in_port=2,priority=0,actions=output:1""
> 
> Presumably you're missing port 1 in your new rules.
> 
> On Wed, Jan 9, 2013 at 7:56 PM, Mathumitha S <cerisierfi...@hotmail.com> 
> wrote:
> >
> > Hi,
> >           Thank you. But if it does not have IP Ethertype, if I use the
> > commands
> >
> >        ovs-ofctl add-flow br0 "in_port=2,priority=0,actions=output:1"
> >        ovs-ofctl add-flow br0  "in_port=3,priority=0,actions=output:1"
> >
> > i.e without specifying the IP address, it should work, right? But that too
> > is not working. Can you please help me to define the ARP rules?
> >
> > Thank you
> >
> >> From: je...@nicira.com
> >> Date: Wed, 9 Jan 2013 07:51:59 -0800
> >> Subject: Re: [ovs-discuss] Distinguish flows based on IP address and port
> >> numbers in OvS
> >> To: cerisierfi...@hotmail.com
> >> CC: discuss@openvswitch.org
> >
> >>
> >> On Wed, Jan 9, 2013 at 1:30 AM, Mathumitha S <cerisierfi...@hotmail.com>
> >> wrote:
> >> > 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 3,2,1 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 2 and 3 as input port and eth5 (port 1) as
> >> > output port of OvS. I created 2 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=100000000 queues=0=@q0,1=@q1 --
> >> > --id=@q0 create queue other-config:min-rate=20000000
> >> > other-config:max-rate=100000000 -- --id=@q1 create queue
> >> > other-config:min-rate=1000000 other-config:max-rate=100000000
> >> >
> >> > I then added the following flows in the flow table:
> >> >
> >> > ovs-ofctl add-flow br0
> >> >
> >> > "in_port=2,dl_type=0x0800,nw_proto=6,nw_src=10.6.1.2,nw_dst=10.6.2.2,tp_dst=6000,priority=7,actions=enqueue:1:0"
> >> > ovs-ofctl add-flow br0
> >> >
> >> > "in_port=3,dl_type=0x0800,nw_proto=6,nw_src=10.6.3.2,nw_dst=10.6.2.2,tp_dst=6005,priority=7,actions=enqueue:1:1"
> >> > ovs-ofctl add-flow br0
> >> >
> >> > "in_port=1,dl_type=0x0800,nw_proto=6,nw_dst=10.6.1.2,nw_src=10.6.2.2,tp_src=6000,priority=5,actions=output:2"
> >> > ovs-ofctl add-flow br0
> >> >
> >> > "in_port=1,dl_type=0x0800,nw_proto=6,nw_dst=10.6.3.2,nw_src=10.6.2.2,tp_src=6005,priority=5,actions=output:3"
> >> > ovs-ofctl add-flow br0
> >> > "in_port=2,dl_type=0x0800,nw_src=10.6.1.2,priority=0,actions=output:1"
> >> > ovs-ofctl add-flow br0
> >> > "in_port=3,dl_type=0x0800,,nw_src=10.6.3.2,priority=0,actions=output:1"
> >> >
> >> > I use iperf to generate traffic from two machines connected to eth3 and
> >> > eth4. I use iperf server in machine connected to eth5 at port 6000 for
> >> > machine connected to eth4 and at port 6005 for machine connected to
> >> > eth3.
> >> > Hence, basically I am trying ti distinguish flows based on IP address
> >> > and
> >> > destination port number.
> >> >
> >> > But when I try to generate traffic and test the scenario, I get 'No
> >> > route to
> >> > host' error.
> >> >
> >> > I basically need to enqueue different flows from different input ports
> >> > in
> >> > different queues at output port. So I only need routes for the TCP
> >> > packets,
> >> > ACK and ARP requests, right? I think I have included these in the rules
> >> > I
> >> > gave above. Can you please tell me what I am missing? Where am I going
> >> > wrong? Earlier, I was able to distinguish flows based on iperf port
> >> > numbers
> >> > when I used two iperf clients on the same machine i.e when I had just
> >> > one
> >> > input port and one output port.
> >>
> >> There are still no ARP rules. ARP does not have an IP EtherType.

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

Reply via email to