<div dir="ltr"><div><div><div>Jesse, <br><br>The following patch is an incremental patch on top of yours. <br></div> -- Fix a few small bugs introduced by the cleanup patch.<br></div> -- Make mask list per table. <br> <br>
</div><div>I believe this implementation will address the rcu lock issues we discussed off line.  <br></div><div><br></div>Would you please review? <br><div><div><div><div><div><div><div><div class="gmail_extra"><br></div>
<div class="gmail_extra">Thanks, <br><br></div><div class="gmail_extra">--andy<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 18, 2013 at 4:35 PM, Jesse Gross <span dir="ltr">&lt;<a href="mailto:jesse@nicira.com" target="_blank">jesse@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="im">On Tue, Jun 18, 2013 at 4:15 PM, Andy Zhou &lt;<a href="mailto:azhou@nicira.com">azhou@nicira.com</a>&gt; wrote:<br>

&gt; Add wildcarded flow support in kernel datapath.<br>
&gt;<br>
&gt; Wildcarded flow can improve OVS flow set up performance by avoid sending<br>
&gt; matching new flows to the user space program. The exact performance boost<br>
&gt; will largely dependent on wildcarded flow hit rate.<br>
&gt;<br>
&gt; In case all new flows hits wildcard flows, the flow set up rate is<br>
&gt; within 5% of that of linux bridge module.<br>
&gt;<br>
&gt; Pravin has made significant contributions to this patch. Including API<br>
&gt; clean ups and bug fixes.<br>
&gt;<br>
&gt; Co-authored-by: Pravin B Shelar &lt;<a href="mailto:pshelar@nicira.com">pshelar@nicira.com</a>&gt;<br>
&gt; Signed-off-by: Pravin B Shelar &lt;<a href="mailto:pshelar@nicira.com">pshelar@nicira.com</a>&gt;<br>
&gt; Signed-off-by: Andy Zhou &lt;<a href="mailto:azhou@nicira.com">azhou@nicira.com</a>&gt;<br>
<br>
</div>I made some incremental changes, can you take a look to see if they<br>
seem reasonable to you?<br>
<br>
Here are the main blocks:<br>
 - Additional interface documentation.<br>
 - Fix memory leak when installing a new flow if there is an<br>
allocation failure for the mask.<br>
 - Require Ethernet addresses to be present in the key, as before.<br>
 - Make SNAP handling a little more integrated with the rest of the<br>
parsing and validation code.<br>
 - Make ovs_flow_free() and ovs_deferred_flow_free() have exactly the<br>
same behavior, just with the addition of RCU, to avoid possible<br>
confusion.<br>
 - Return errors directly rather than through an intermediate variable<br>
in ovs_flow_extract() and children.<br>
 - Enforce an exact match for the outer EtherType for vlan packets,<br>
similar to what we do for other protocols.<br>
 - Miscellaneous style fixes.<br>
</blockquote></div><br></div></div></div></div></div></div></div></div></div>