I had noticed that this logic was in the codepath for when we delete a flow from the datapath, but not in this codepath. Thanks for picking this up!
Acked-by: Joe Stringer <joestrin...@nicira.com> On 2 April 2014 17:18, YAMAMOTO Takashi <yamam...@valinux.co.jp> wrote: > This fixes missing netflow flows in > "ofproto-dpif - NetFlow flow expiration" tests. > > Signed-off-by: YAMAMOTO Takashi <yamam...@valinux.co.jp> > --- > ofproto/ofproto-dpif-upcall.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c > index 5b5fb6e..8639f5c 100644 > --- a/ofproto/ofproto-dpif-upcall.c > +++ b/ofproto/ofproto-dpif-upcall.c > @@ -1332,6 +1332,7 @@ revalidate_ukey(struct udpif *udpif, struct > udpif_flow_dump *udump, > struct ofpbuf xout_actions, *actions; > uint64_t slow_path_buf[128 / 8]; > struct xlate_out xout, *xoutp; > + struct netflow *netflow; > struct flow flow, udump_mask; > struct ofproto_dpif *ofproto; > struct dpif_flow_stats push; > @@ -1345,6 +1346,7 @@ revalidate_ukey(struct udpif *udpif, struct > udpif_flow_dump *udump, > ok = false; > xoutp = NULL; > actions = NULL; > + netflow = NULL; > > /* If we don't need to revalidate, we can simply push the stats > contained > * in the udump, otherwise we'll have to get the actions so we can > check > @@ -1372,7 +1374,7 @@ revalidate_ukey(struct udpif *udpif, struct > udpif_flow_dump *udump, > } > > error = xlate_receive(udpif->backer, NULL, ukey->key, ukey->key_len, > &flow, > - &ofproto, NULL, NULL, NULL, &odp_in_port); > + &ofproto, NULL, NULL, &netflow, &odp_in_port); > if (error) { > goto exit; > } > @@ -1421,6 +1423,13 @@ revalidate_ukey(struct udpif *udpif, struct > udpif_flow_dump *udump, > ok = true; > > exit: > + if (netflow) { > + if (!ok) { > + netflow_expire(netflow, &flow); > + netflow_flow_clear(netflow, &flow); > + } > + netflow_unref(netflow); > + } > ofpbuf_delete(actions); > xlate_out_uninit(xoutp); > return ok; > -- > 1.8.3.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