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. 

I then tried to just output the flows input at port 1 to port 2 and vice versa 
but I specified the network source and destination IP address or iperf port 
numbers. Even then I get 'no route to host' error. So I think I am making some 
mistake while specifying the IP address or port numbers. Can you please help me 
out?

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"

But the following does not work.

ovs-ofctl add-flow br0 
"in_port=2,dl_type=0x0800,nw_src=10.6.1.2,actions=output:1"
ovs-ofctl add-flow br0 
"in_port=1,dl_type=0x0800,nw_src=10.6.2.2,actions=output:2"

Where am I doing a mistake? Pls help me.

Regards,
Mathumitha

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

Reply via email to