[ovs-dev] [PATCH 2/4] ofproto: Add enum ofp_table_config

Simon Horman horms at verge.net.au
Wed Nov 13 06:28:39 UTC 2013


On Tue, Nov 12, 2013 at 09:58:09PM -0800, Ben Pfaff wrote:
> On Tue, Nov 12, 2013 at 05:52:37PM -0800, Jarno Rajahalme wrote:
> > 
> > 
> > > On Nov 12, 2013, at 8:47 AM, Ben Pfaff <blp at nicira.com> wrote:
> > > 
> > >> On Tue, Nov 12, 2013 at 04:45:51PM +0900, Simon Horman wrote:
> > ...
> > >> +enum ofp_table_config {
> > >> +    OFPTC_TABLE_MISS_CONTROLLER = 0,    /* Send to controller. */
> > >> +    OFPTC_TABLE_MISS_CONTINUE = 1 << 0, /* Continue to the next table in the
> > >> +                                           pipeline (OpenFlow 1.0 behavior). */
> > >> +    OFPTC_TABLE_MISS_DROP = 1 << 1,     /* Drop the packet. */
> > >> +    OFPTC_TABLE_MISS_MASK = 3
> > >> +};
> > > 
> > > I know that at least some version of the standard writes it that way but
> > > the constants don't make any sense in that form.  0 << 0, 1 << 0, 2 <<
> > > 0, 3 << 0 are a lot more sensible.  
> > 
> > Why shift zero bits?
> 
> Only to imply more strongly, at a glance, that these are bitwise fields
> within a larger word.  I'm not sure any other bitwise fields were ever
> defined in that word, but that was the intent, at least.

OF1.4 defines more bits. Perhaps I should send a follow-up patch
to merge in the following. It didn't occur to me earlier as my patch-set
does not use the new bits.

	OFPTC_EVICTION		= 1 << 2, /* Authorise table to evict flows. */
	OFPTC_VACANCY_EVENTS	= 1 << 3, /* Enable vacancy events. */

Also, as of OF1.3 the meaning of 3 has changed, though
I don't think it is particularly important from the
point of view of the Open vSwitch implementation.

	OFPTC_DEPRECATED_MASK	= 3,	/* Deprecated bits */




More information about the dev mailing list