Acked-by: Jarno Rajahalme <jrajaha...@nicira.com>

On Mar 21, 2014, at 10:43 AM, Gurucharan Shetty <shet...@nicira.com> wrote:

> Commit 03fbdf8d9c80a (lib/flow: Retain ODPP_NONE on flow_extract())
> replaced packet metadata initialization function by a macro.
> Visual studio does not like nested structure initialization that
> is done in that macro.
> 
> This commit replaces the macro by a function.
> 
> CC: Jarno Rajahalme <jrajaha...@nicira.com>
> Signed-off-by: Gurucharan Shetty <gshe...@nicira.com>
> ---
> lib/packets.h                 |   15 ++++++++++++---
> ofproto/ofproto-dpif-upcall.c |    2 +-
> ofproto/ofproto-dpif.c        |    2 +-
> 3 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/packets.h b/lib/packets.h
> index 18a3b17..f6a4f43 100644
> --- a/lib/packets.h
> +++ b/lib/packets.h
> @@ -42,9 +42,18 @@ struct pkt_metadata {
> #define PKT_METADATA_INITIALIZER(PORT) \
>     (struct pkt_metadata){ { 0, 0, 0, 0, 0, 0}, 0, 0, {(PORT)} }
> 
> -#define PKT_METADATA_INITIALIZER_FLOW(FLOW) \
> -    (struct pkt_metadata){ (FLOW)->tunnel, (FLOW)->skb_priority, \
> -            (FLOW)->pkt_mark, (FLOW)->in_port }
> +static inline struct pkt_metadata
> +pkt_metadata_from_flow(const struct flow *flow)
> +{
> +    struct pkt_metadata md;
> +
> +    md.tunnel = flow->tunnel;
> +    md.skb_priority = flow->skb_priority;
> +    md.pkt_mark = flow->pkt_mark;
> +    md.in_port = flow->in_port;
> +
> +    return md;
> +}
> 
> bool dpid_from_string(const char *s, uint64_t *dpidp);
> 
> diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
> index 0048943..b931ab6 100644
> --- a/ofproto/ofproto-dpif-upcall.c
> +++ b/ofproto/ofproto-dpif-upcall.c
> @@ -1016,7 +1016,7 @@ handle_upcalls(struct handler *handler, struct list 
> *upcalls)
>         type = classify_upcall(upcall);
>         if (type == MISS_UPCALL) {
>             uint32_t hash;
> -            struct pkt_metadata md = PKT_METADATA_INITIALIZER_FLOW(&flow);
> +            struct pkt_metadata md = pkt_metadata_from_flow(&flow);
> 
>             flow_extract(packet, &md, &miss->flow);
>             hash = flow_hash(&miss->flow, 0);
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 8ce439d..744aa8c 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -3876,7 +3876,7 @@ parse_flow_and_packet(int argc, const char *argv[],
>         if (!packet->size) {
>             flow_compose(packet, flow);
>         } else {
> -            struct pkt_metadata md = PKT_METADATA_INITIALIZER_FLOW(flow);
> +            struct pkt_metadata md = pkt_metadata_from_flow(flow);
> 
>             /* Use the metadata from the flow and the packet argument
>              * to reconstruct the flow. */
> -- 
> 1.7.9.5
> 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to