Thanks, applied to master.
On 5 June 2014 11:48, Alex Wang <al...@nicira.com> wrote: > Looks good to me, > > > Acked-by: Alex Wang <al...@nicira.com> > > > On Wed, Jun 4, 2014 at 3:08 PM, Joe Stringer <joestrin...@nicira.com> > wrote: > >> One of the reasons that xlate_cache was introduced was to ensure that >> statistics were attributed to the correct rules and interfaces according >> to the flow that was installed into the datapath, rather than according >> to the current state of the flow table. >> >> This patch makes the revalidators use the xlate_cache to attribute stats >> when full revalidation is required, as the statistics belong to the old >> ruleset. However, when revalidating, the rules may have changed while >> leaving the datapath flows intact, so we still re-create the xcache at >> that point. >> >> Signed-off-by: Joe Stringer <joestrin...@nicira.com> >> --- >> v3: Clear the xcache when revalidating. >> v2: Don't delete the old xcache when revalidating. >> Removed extraneous "ukey->xcache = NULL". >> Reset may_learn when pushing stats. >> --- >> ofproto/ofproto-dpif-upcall.c | 16 ++++++++++------ >> 1 file changed, 10 insertions(+), 6 deletions(-) >> >> diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c >> index 90e18e3..67a0ed8 100644 >> --- a/ofproto/ofproto-dpif-upcall.c >> +++ b/ofproto/ofproto-dpif-upcall.c >> @@ -1148,10 +1148,17 @@ revalidate_ukey(struct udpif *udpif, struct >> udpif_key *ukey, >> } >> >> may_learn = push.n_packets > 0; >> - if (ukey->xcache && !udpif->need_revalidate) { >> + if (ukey->xcache) { >> xlate_push_stats(ukey->xcache, may_learn, &push); >> - ok = true; >> - goto exit; >> + if (udpif->need_revalidate) { >> + xlate_cache_clear(ukey->xcache); >> + push.n_packets = 0; >> + push.n_bytes = 0; >> + may_learn = false; >> + } else { >> + ok = true; >> + goto exit; >> + } >> } >> >> error = xlate_receive(udpif->backer, NULL, ukey->key, ukey->key_len, >> &flow, >> @@ -1160,9 +1167,6 @@ revalidate_ukey(struct udpif *udpif, struct >> udpif_key *ukey, >> goto exit; >> } >> >> - if (udpif->need_revalidate) { >> - xlate_cache_clear(ukey->xcache); >> - } >> if (!ukey->xcache) { >> ukey->xcache = xlate_cache_new(); >> } >> -- >> 1.7.10.4 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> http://openvswitch.org/mailman/listinfo/dev >> > >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev