<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"><<a href="mailto:jesse@nicira.com" target="_blank">jesse@nicira.com</a>></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 <<a href="mailto:azhou@nicira.com">azhou@nicira.com</a>> wrote:<br>
> Add wildcarded flow support in kernel datapath.<br>
><br>
> Wildcarded flow can improve OVS flow set up performance by avoid sending<br>
> matching new flows to the user space program. The exact performance boost<br>
> will largely dependent on wildcarded flow hit rate.<br>
><br>
> In case all new flows hits wildcard flows, the flow set up rate is<br>
> within 5% of that of linux bridge module.<br>
><br>
> Pravin has made significant contributions to this patch. Including API<br>
> clean ups and bug fixes.<br>
><br>
> Co-authored-by: Pravin B Shelar <<a href="mailto:pshelar@nicira.com">pshelar@nicira.com</a>><br>
> Signed-off-by: Pravin B Shelar <<a href="mailto:pshelar@nicira.com">pshelar@nicira.com</a>><br>
> Signed-off-by: Andy Zhou <<a href="mailto:azhou@nicira.com">azhou@nicira.com</a>><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>