[ovs-dev] [PATCH] ofproto: Add OF1.4 elements to enum ofp_table_config

Simon Horman horms at verge.net.au
Tue Dec 3 04:15:20 UTC 2013


On Mon, Dec 02, 2013 at 02:34:12PM -0800, Ben Pfaff wrote:
> From: Simon Horman <horms at verge.net.au>
> 
> Add elements to enum ofp_table_config for table mod bits
> defined in OpenFlow1.4.
> 
> Also tidy up the indentation of existing elements.
> 
> Signed-off-by: Simon Horman <horms at verge.net.au>
> Co-authored-by: Ben Pfaff <blp at nicira.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>

Thanks, this looks good to me.

> ---
>  include/openflow/openflow-1.1.h    |   12 ------------
>  include/openflow/openflow-common.h |   16 +++++++++++-----
>  ofproto/ofproto-dpif-xlate.c       |    8 ++++----
>  3 files changed, 15 insertions(+), 21 deletions(-)
> 
> diff --git a/include/openflow/openflow-1.1.h b/include/openflow/openflow-1.1.h
> index 4ee9c5c..9015109 100644
> --- a/include/openflow/openflow-1.1.h
> +++ b/include/openflow/openflow-1.1.h
> @@ -443,18 +443,6 @@ struct ofp11_table_mod {
>  };
>  OFP_ASSERT(sizeof(struct ofp11_table_mod) == 8);
>  
> -/* Flags to indicate behavior of the flow table for unmatched packets.
> -   These flags are used in ofp_table_stats messages to describe the current
> -   configuration and in ofp_table_mod messages to configure table behavior.  */
> -enum ofp11_table_config {
> -    OFPTC11_TABLE_MISS_CONTROLLER = 0 << 0, /* Send to controller. */
> -    OFPTC11_TABLE_MISS_CONTINUE = 1 << 0, /* Continue to the next table in the
> -                                             pipeline (OpenFlow 1.0
> -                                             behavior). */
> -    OFPTC11_TABLE_MISS_DROP = 2 << 0,     /* Drop the packet. */
> -#define OFPTC11_TABLE_MISS_MASK (3 << 0)
> -};
> -
>  /* Flow setup and teardown (controller -> datapath). */
>  struct ofp11_flow_mod {
>      ovs_be64 cookie;             /* Opaque controller-issued identifier. */
> diff --git a/include/openflow/openflow-common.h b/include/openflow/openflow-common.h
> index ef9409f..bf16d59 100644
> --- a/include/openflow/openflow-common.h
> +++ b/include/openflow/openflow-common.h
> @@ -476,11 +476,17 @@ enum ofp_table {
>  };
>  
>  enum ofp_table_config {
> -    OFPTC_TABLE_MISS_CONTROLLER = 0 << 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 = 2 << 0, /* Drop the packet. */
> -    OFPTC_TABLE_MISS_MASK = 3 << 0
> +    /* OpenFlow 1.1 and 1.2 defined this field as shown.
> +     * OpenFlow 1.3 and later mark this field as deprecated, but have not
> +     * reused it for any new purpose. */
> +    OFPTC11_TABLE_MISS_CONTROLLER = 0 << 0, /* Send to controller. */
> +    OFPTC11_TABLE_MISS_CONTINUE   = 1 << 0, /* Go to next table, like OF1.0. */
> +    OFPTC11_TABLE_MISS_DROP       = 2 << 0, /* Drop the packet. */
> +    OFPTC11_TABLE_MISS_MASK       = 3 << 0,
> +
> +    /* OpenFlow 1.4. */
> +    OFPTC14_EVICTION              = 1 << 2, /* Allow table to evict flows. */
> +    OFPTC14_VACANCY_EVENTS        = 1 << 3, /* Enable vacancy events. */
>  };
>  
>  #endif /* openflow/openflow-common.h */
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index a331c0b..24bade1 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -1868,10 +1868,10 @@ xlate_table_action(struct xlate_ctx *ctx,
>  
>              /* XXX
>               * check if table configuration flags
> -             * OFPTC_TABLE_MISS_CONTROLLER, default.
> -             * OFPTC_TABLE_MISS_CONTINUE,
> -             * OFPTC_TABLE_MISS_DROP
> -             * When OF1.0, OFPTC_TABLE_MISS_CONTINUE is used. What to do? */
> +             * OFPTC11_TABLE_MISS_CONTROLLER, default.
> +             * OFPTC11_TABLE_MISS_CONTINUE,
> +             * OFPTC11_TABLE_MISS_DROP
> +             * When OF1.0, OFPTC11_TABLE_MISS_CONTINUE is used. What to do? */
>              xport = get_ofp_port(ctx->xbridge, ctx->xin->flow.in_port.ofp_port);
>              choose_miss_rule(xport ? xport->config : 0,
>                               ctx->xbridge->miss_rule,
> -- 
> 1.7.10.4
> 



More information about the dev mailing list