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