Pushed. Thanks for the review.
On Wed, Apr 23, 2014 at 2:30 PM, Ethan Jackson <et...@nicira.com> wrote: > Acked-by: Ethan Jackson <et...@nicira.com> > > > On Wed, Apr 23, 2014 at 1:26 PM, Andy Zhou <az...@nicira.com> wrote: >> This patch improves the code readability and comments on the >> recirculation related changes to rule_dpif_lookup() base on off-line >> discussions with Jarno. There is no behavior changes. >> >> Signed-off-by: Andy Zhou <az...@nicira.com> >> --- >> ofproto/ofproto-dpif.c | 21 ++++++++++++++------- >> 1 file changed, 14 insertions(+), 7 deletions(-) >> >> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c >> index 6a725e4..983cad5 100644 >> --- a/ofproto/ofproto-dpif.c >> +++ b/ofproto/ofproto-dpif.c >> @@ -3199,14 +3199,21 @@ rule_dpif_lookup(struct ofproto_dpif *ofproto, >> struct flow *flow, >> uint8_t table_id; >> >> if (ofproto_dpif_get_enable_recirc(ofproto)) { >> - if (flow->recirc_id == 0) { >> - if (wc) { >> - wc->masks.recirc_id = UINT32_MAX; >> - } >> - table_id = 0; >> - } else { >> - table_id = TBL_INTERNAL; >> + /* Always exactly match recirc_id since datapath supports >> + * recirculation. */ >> + if (wc) { >> + wc->masks.recirc_id = UINT32_MAX; >> } >> + >> + /* Start looking up from internal table for post recirculation flows >> + * or packets. We can also simply send all, including normal flows >> + * or packets to the internal table. They will not match any post >> + * recirculation rules except the 'catch all' rule that resubmit >> + * them to table 0. >> + * >> + * As an optimization, we send normal flows and packets to table 0 >> + * directly, saving one table lookup. */ >> + table_id = flow->recirc_id ? TBL_INTERNAL : 0; >> } else { >> table_id = 0; >> } >> -- >> 1.9.1 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev