[ovs-dev] [PATCHv3] revalidator: Use xcache when revalidation is required.
Alex Wang
alexw at nicira.com
Wed Jun 4 23:48:24 UTC 2014
Looks good to me,
Acked-by: Alex Wang <alexw at nicira.com>
On Wed, Jun 4, 2014 at 3:08 PM, Joe Stringer <joestringer at 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 <joestringer at 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 at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20140604/15977ab5/attachment-0005.html>
More information about the dev
mailing list