Acked-by: Jarno Rajahalme <jrajaha...@nicira.com> > On Jul 29, 2015, at 11:42 PM, Ben Pfaff <b...@nicira.com> wrote: > > To my mind, this is a good way to ensure that '*xout' gets initialized > properly in every execution. By using an initializer rather than a > series of assignment statements, we can be assured that every member > gets initialized. > > This commit makes xlate_actions() more expensive because struct > xlate_out is large and this assignment will initialize all of it due to > C rules. Later commits will fix this up by removing all of the large > members, reducing xlate_out to only a few bytes total. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > ofproto/ofproto-dpif-xlate.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index 125d4c6..b6d5d15 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -4720,6 +4720,17 @@ too_many_output_actions(const struct ofpbuf > *odp_actions OVS_UNUSED) > void > xlate_actions(struct xlate_in *xin, struct xlate_out *xout) > { > + *xout = (struct xlate_out) { > + .slow = 0, > + .fail_open = false, > + .has_learn = false, > + .has_normal = false, > + .has_fin_timeout = false, > + .nf_output_iface = NF_OUT_DROP, > + .mirrors = 0, > + .n_recircs = 0, > + }; > + > struct xlate_cfg *xcfg = ovsrcu_get(struct xlate_cfg *, &xcfgp); > struct flow_wildcards *wc = NULL; > struct flow *flow = &xin->flow; > @@ -4760,13 +4771,6 @@ xlate_actions(struct xlate_in *xin, struct xlate_out > *xout) > > ctx.xin = xin; > ctx.xout = xout; > - ctx.xout->slow = 0; > - ctx.xout->has_learn = false; > - ctx.xout->has_normal = false; > - ctx.xout->has_fin_timeout = false; > - ctx.xout->nf_output_iface = NF_OUT_DROP; > - ctx.xout->mirrors = 0; > - ctx.xout->n_recircs = 0; > > xout->odp_actions = xin->odp_actions; > if (!xout->odp_actions) { > -- > 2.1.3 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev