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