[ovs-dev] [PATCH 4/9] ofproto: Correctly report table miss configuration in table stats.

Ben Pfaff blp at nicira.com
Mon Aug 11 18:14:13 UTC 2014


Thanks, applied!

On Thu, Aug 07, 2014 at 04:13:49PM -0700, Jarno Rajahalme wrote:
> Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>
> 
> On Aug 4, 2014, at 9:21 AM, Ben Pfaff <blp at nicira.com> wrote:
> 
> > OFPTC11_TABLE_MISS_MASK isn't a valid value at all, let alone always the
> > value in use.  We should report the value actually in use, as this commit
> > does.
> > 
> > There is a remaining problem: the default table configuration is
> > OFPROTO_TABLE_MISS_DEFAULT, which doesn't correspond to any particular
> > OFPTC11_* value or, more precisely, corresponds to a different OFPTC11_*
> > value based on the OpenFlow version.  The following commit fixes that
> > problem.
> > 
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> > ofproto/ofproto-provider.h | 2 +-
> > ofproto/ofproto.c          | 5 ++++-
> > 2 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/ofproto/ofproto-provider.h b/ofproto/ofproto-provider.h
> > index ca17319..4691d87 100644
> > --- a/ofproto/ofproto-provider.h
> > +++ b/ofproto/ofproto-provider.h
> > @@ -799,7 +799,7 @@ struct ofproto_class {
> >      *
> >      *   - 'ovsinsts' to all instructions.
> >      *
> > -     *   - 'config' to OFPTC11_TABLE_MISS_MASK.
> > +     *   - 'config' to the table miss configuration.
> >      *
> >      *   - 'max_entries' to 1,000,000.
> >      *
> > diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> > index ac7cb13..1c9c412 100644
> > --- a/ofproto/ofproto.c
> > +++ b/ofproto/ofproto.c
> > @@ -3084,6 +3084,8 @@ handle_table_stats_request(struct ofconn *ofconn,
> >      */
> >     stats = xcalloc(p->n_tables, sizeof *stats);
> >     for (i = 0; i < p->n_tables; i++) {
> > +        unsigned int config;
> > +
> >         stats[i].table_id = i;
> >         sprintf(stats[i].name, "table%"PRIuSIZE, i);
> >         bitmap_set_multiple(stats[i].match.bm, 0, MFF_N_IDS, 1);
> > @@ -3095,7 +3097,8 @@ handle_table_stats_request(struct ofconn *ofconn,
> >         stats[i].metadata_match = OVS_BE64_MAX;
> >         stats[i].metadata_write = OVS_BE64_MAX;
> >         stats[i].ovsinsts = (1u << N_OVS_INSTRUCTIONS) - 1;
> > -        stats[i].config = OFPTC11_TABLE_MISS_MASK;
> > +        atomic_read(&p->tables[i].config, &config);
> > +        stats[i].config = config;
> >         stats[i].max_entries = 1000000; /* An arbitrary big number. */
> >         stats[i].active_count = classifier_count(&p->tables[i].cls);
> >     }
> > -- 
> > 1.9.1
> > 
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> 



More information about the dev mailing list