Hi,
I have met 2 questions about flows installed in kernel.
1. when I use ovs-ofctl add 2 flows in the userspace, then send packet,
function handle_upcalls() and dpif_linux_operate__()/DPIF_OP_FLOW_PUT and
nl_sock_transact_multiple() were called, and return with no error
but then I use command "ovs-dpctl dump-flows", there is noting output.
The second time I send the the packet, and it was handled by userspace but no
in kernel.
I have no idea what's wrong? anything seems ok, but why kernel can not
create the flows?
Here is the topo:(very simple)
ovs-vsctl add-br br0
ovs-vsctl add-port br0 p0 -- set interface p0 type=internal -- set port p0
tag=100
ovs-vsctl add-port br0 p1 - set interface p1 type=internal -- set port p1
tag=100
ip netns add ns0
ip netns add ns1
ip link set p0 netns ns0
ip netns exec ns0 ip link set dev p0 up
ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
ip link set p1 netns ns1
ip netns exec ns1 ip link set dev p1 up
ip netns exec ns1 ip addr add 192.168.1.200/24 dev p1
#port p0=1, port p1=2
ovs-ofctl add-flow br0 "in_port=1,actions=2"
ovs-ofctl add-flow br0 "in_port=2,actions=1"
then use ip netns exec ns0 ping 192.168.1.200
the ovs version is 2.1.2
2. what's the format of ovs-dpctl?
[root@l3vpn2 bin]# ovs-dpctl add-flow system@ovs-system "in_port(1)" "2"
2014-09-11T15:21:28Z|00001|dpif|WARN|system@ovs-system: failed to put[create]
(Invalid argument) in_port(1), actions:2
ovs-dpctl: updating flow table (Invalid argument)
I have debuged this command, system has already execute the function
dpif_linux_flow_put(), but error 22 return
so what's the correct format of FLOW and ACTION for dpctl?
another problem, in function dpctl_put_flow():
const char *key_s = argv[argc - 2];
const char *actions_s = argv[argc - 1];
so if we omit the DP in the dpctl command, the key and action will be wrongly
retrieved
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss