[ovs-dev] [PATCH] ofproto: Incorrect statistics will be increased

Ben Pfaff blp at ovn.org
Tue Dec 6 17:05:01 UTC 2016


On Tue, Dec 06, 2016 at 04:55:11AM +0000, Ken Ajiro wrote:
> 
> When using controller packet-in rate limiting (controller_rate_limit in
> controller table), incorrect statistics will be increased. This patch
> fixes this issue.
> 
> Signed-off-by: Ken Ajiro <ken-ajiro at xr.jp.nec.com>
> ---
>  ofproto/connmgr.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
> index 4b927d6..bfd1ff5 100644
> --- a/ofproto/connmgr.c
> +++ b/ofproto/connmgr.c
> @@ -539,7 +539,7 @@ connmgr_get_controller_info(struct connmgr *mgr, struct shash *info)
>  
>              for (i = 0; i < N_SCHEDULERS; i++) {
>                  if (ofconn->schedulers[i]) {
> -                    const char *name = i ? "miss" : "action";
> +                    const char *name = i == 0 ? "miss" : "action";
>                      struct pinsched_stats stats;
>  
>                      pinsched_get_stats(ofconn->schedulers[i], &stats);

Hmm, taking a closer look, now I'm confused a bit.

I only see two places where the elements of "schedulers" are
distinguished.  The first is in connmgr_send_async_msg(), which treats
schedulers[1] as "miss":

        bool is_miss = (am->pin.up.public.reason == OFPR_NO_MATCH ||
                        am->pin.up.public.reason == OFPR_EXPLICIT_MISS ||
                        am->pin.up.public.reason == OFPR_IMPLICIT_MISS);
        pinsched_send(ofconn->schedulers[is_miss],
                      am->pin.up.public.flow_metadata.flow.in_port.ofp_port,
                      msg, &txq);

So it seems that connmgr_get_controller_info() should also treat
schedulers[1] as "miss", but this patch appears to change it to do the
opposite.

Can you help me to understand?

Thanks,

Ben.


More information about the dev mailing list