<div dir="ltr">Thanks for the review. Applied patches 1, 4, 5, 6 to master.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On 19 May 2014 13:26, Andy Zhou <span dir="ltr">&lt;<a href="mailto:azhou@nicira.com" target="_blank">azhou@nicira.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Wed, May 14, 2014 at 11:57 PM, Joe Stringer &lt;<a href="mailto:joestringer@nicira.com">joestringer@nicira.com</a>&gt; wrote:<br>


&gt; Ensure that upcall key matches flow install and flow_dump for userspace<br>
&gt; datapath. This was previously assumed, but not tested. This makes the<br>
&gt; assumption more explicit.<br>
&gt;<br>
&gt; Signed-off-by: Joe Stringer &lt;<a href="mailto:joestringer@nicira.com">joestringer@nicira.com</a>&gt;<br>
</div>Thanks for adding the tests.<br>
Acked-by: Andy Zhou &lt;<a href="mailto:azhou@nicira.com">azhou@nicira.com</a>&gt;<br>
<div class="HOEnZb"><div class="h5"><br>
&gt; ---<br>
&gt; v3: No change.<br>
&gt; v2: Shift to <a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a>.<br>
&gt; ---<br>
&gt;  tests/<a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a> |   70 ++++++++++++++++++++++++++++++++++++++++++++++++++<br>
&gt;  1 file changed, 70 insertions(+)<br>
&gt;<br>
&gt; diff --git a/tests/<a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a> b/tests/<a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a><br>
&gt; index 6e81354..2a624d1 100644<br>
&gt; --- a/tests/<a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a><br>
&gt; +++ b/tests/<a href="http://dpif-netdev.at" target="_blank">dpif-netdev.at</a><br>
&gt; @@ -51,3 +51,73 @@ skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(8),eth(src=50:54<br>
&gt;<br>
&gt;  OVS_VSWITCHD_STOP<br>
&gt;  AT_CLEANUP<br>
&gt; +<br>
&gt; +AT_SETUP([dpif-netdev - miss upcall key matches flow_install])<br>
&gt; +OVS_VSWITCHD_START(<br>
&gt; +  [add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock<br>
&gt; +   set bridge br0 datapath-type=dummy other-config:datapath-id=1234 \<br>
&gt; +                  fail-mode=secure])<br>
&gt; +AT_CHECK([ovs-appctl vlog/set dpif:dbg])<br>
&gt; +<br>
&gt; +AT_CHECK([ovs-ofctl add-flow br0 action=normal])<br>
&gt; +AT_CHECK([ovs-appctl netdev-dummy/receive p1 &#39;in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)&#39;])<br>


&gt; +sleep 1<br>
&gt; +<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | grep -A 1 &#39;miss upcall&#39; | tail -n 1], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)<br>
&gt; +])<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=<a href="http://10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff" target="_blank">10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff</a>),icmp(type=8/0,code=0/0), actions: &lt;del&gt;<br>


&gt; +])<br>
&gt; +<br>
&gt; +# Now, the same again without megaflows.<br>
&gt; +AT_CHECK([ovs-appctl upcall/disable-megaflows], [0], [megaflows disabled<br>
&gt; +])<br>
&gt; +AT_CHECK([ovs-appctl netdev-dummy/receive p1 &#39;in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)&#39;])<br>


&gt; +sleep 1<br>
&gt; +<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | grep -A 1 &#39;miss upcall&#39; | tail -n 1], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)<br>
&gt; +])<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions: &lt;del&gt;<br>


&gt; +skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=<a href="http://10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff" target="_blank">10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff</a>),icmp(type=8/0,code=0/0), actions: &lt;del&gt;<br>


&gt; +])<br>
&gt; +<br>
&gt; +OVS_VSWITCHD_STOP<br>
&gt; +AT_CLEANUP<br>
&gt; +<br>
&gt; +AT_SETUP([dpif-netdev - miss upcall key matches flow_dump])<br>
&gt; +OVS_VSWITCHD_START(<br>
&gt; +  [add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock<br>
&gt; +   set bridge br0 datapath-type=dummy other-config:datapath-id=1234 \<br>
&gt; +                  fail-mode=secure])<br>
&gt; +AT_CHECK([ovs-appctl vlog/set dpif:dbg])<br>
&gt; +<br>
&gt; +AT_CHECK([ovs-ofctl add-flow br0 action=normal])<br>
&gt; +AT_CHECK([ovs-appctl netdev-dummy/receive p1 &#39;in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)&#39;])<br>


&gt; +sleep 1<br>
&gt; +<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | grep -A 1 &#39;miss upcall&#39; | tail -n 1], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)<br>
&gt; +])<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_DUMP | STRIP_XOUT], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=<a href="http://10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff" target="_blank">10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff</a>),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: &lt;del&gt;<br>


&gt; +])<br>
&gt; +<br>
&gt; +# Now, the same again without megaflows.<br>
&gt; +AT_CHECK([ovs-appctl upcall/disable-megaflows], [0], [megaflows disabled<br>
&gt; +])<br>
&gt; +AT_CHECK([ovs-appctl netdev-dummy/receive p1 &#39;in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)&#39;])<br>


&gt; +sleep 1<br>
&gt; +<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | grep -A 1 &#39;miss upcall&#39; | tail -n 1], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)<br>
&gt; +])<br>
&gt; +AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_DUMP | STRIP_XOUT], [0], [dnl<br>
&gt; +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:0, bytes:0, used:never, actions: &lt;del&gt;<br>


&gt; +skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=<a href="http://10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff" target="_blank">10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no/0xff</a>),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: &lt;del&gt;<br>


&gt; +])<br>
&gt; +<br>
&gt; +OVS_VSWITCHD_STOP<br>
&gt; +AT_CLEANUP<br>
&gt; --<br>
&gt; 1.7.10.4<br>
&gt;<br>
</div></div></blockquote></div><br></div>