Looks good.  We should be on the lookout for a less Linux-specific name, but it 
seems fine for now.

--Justin


On Dec 21, 2011, at 3:40 PM, Ben Pfaff wrote:

> This priority's mean is completely different from the priority of an
> OpenFlow rule, so it is confusing for it to have the same name.
> 
> Signed-off-by: Ben Pfaff <b...@nicira.com>
> ---
> lib/classifier.c       |    2 +-
> lib/flow.c             |   12 +++++++-----
> lib/flow.h             |    2 +-
> lib/odp-util.c         |   12 ++++++------
> ofproto/ofproto-dpif.c |   18 +++++++++---------
> 5 files changed, 24 insertions(+), 22 deletions(-)
> 
> diff --git a/lib/classifier.c b/lib/classifier.c
> index dab8f62..26751ca 100644
> --- a/lib/classifier.c
> +++ b/lib/classifier.c
> @@ -74,7 +74,7 @@ cls_rule_init_exact(const struct flow *flow,
>                     unsigned int priority, struct cls_rule *rule)
> {
>     rule->flow = *flow;
> -    rule->flow.priority = 0;
> +    rule->flow.skb_priority = 0;
>     flow_wildcards_init_exact(&rule->wc);
>     rule->priority = priority;
> }
> diff --git a/lib/flow.c b/lib/flow.c
> index 922412f..fa7ae4f 100644
> --- a/lib/flow.c
> +++ b/lib/flow.c
> @@ -312,7 +312,9 @@ invalid:
> 
> }
> 
> -/* Initializes 'flow' members from 'packet', 'tun_id', and 'ofp_in_port'.
> +/* Initializes 'flow' members from 'packet', 'skb_priority', 'tun_id', and
> + * 'ofp_in_port'.
> + *
>  * Initializes 'packet' header pointers as follows:
>  *
>  *    - packet->l2 to the start of the Ethernet header.
> @@ -328,7 +330,7 @@ invalid:
>  *      present and has a correct length, and otherwise NULL.
>  */
> void
> -flow_extract(struct ofpbuf *packet, uint32_t priority, ovs_be64 tun_id,
> +flow_extract(struct ofpbuf *packet, uint32_t skb_priority, ovs_be64 tun_id,
>              uint16_t ofp_in_port, struct flow *flow)
> {
>     struct ofpbuf b = *packet;
> @@ -339,7 +341,7 @@ flow_extract(struct ofpbuf *packet, uint32_t priority, 
> ovs_be64 tun_id,
>     memset(flow, 0, sizeof *flow);
>     flow->tun_id = tun_id;
>     flow->in_port = ofp_in_port;
> -    flow->priority = priority;
> +    flow->skb_priority = skb_priority;
> 
>     packet->l2 = b.data;
>     packet->l3 = NULL;
> @@ -502,7 +504,7 @@ flow_zero_wildcards(struct flow *flow, const struct 
> flow_wildcards *wildcards)
>     if (wc & FWW_ND_TARGET) {
>         memset(&flow->nd_target, 0, sizeof flow->nd_target);
>     }
> -    flow->priority = 0;
> +    flow->skb_priority = 0;
> }
> 
> char *
> @@ -519,7 +521,7 @@ flow_format(struct ds *ds, const struct flow *flow)
>     ds_put_format(ds, "priority%"PRIu32
>                       ":tunnel%#"PRIx64
>                       ":in_port%04"PRIx16,
> -                      flow->priority,
> +                      flow->skb_priority,
>                       ntohll(flow->tun_id),
>                       flow->in_port);
> 
> diff --git a/lib/flow.h b/lib/flow.h
> index 7606cb3..32492e8 100644
> --- a/lib/flow.h
> +++ b/lib/flow.h
> @@ -57,7 +57,7 @@ struct flow {
>     struct in6_addr ipv6_src;   /* IPv6 source address. */
>     struct in6_addr ipv6_dst;   /* IPv6 destination address. */
>     struct in6_addr nd_target;  /* IPv6 neighbor discovery (ND) target. */
> -    uint32_t priority;          /* Packet priority for QoS. */
> +    uint32_t skb_priority;      /* Packet priority for QoS. */
>     uint32_t regs[FLOW_N_REGS]; /* Registers. */
>     ovs_be32 nw_src;            /* IPv4 source address. */
>     ovs_be32 nw_dst;            /* IPv4 destination address. */
> diff --git a/lib/odp-util.c b/lib/odp-util.c
> index ee1c378..490d35e 100644
> --- a/lib/odp-util.c
> +++ b/lib/odp-util.c
> @@ -1163,8 +1163,8 @@ odp_flow_key_from_flow(struct ofpbuf *buf, const struct 
> flow *flow)
>     struct ovs_key_ethernet *eth_key;
>     size_t encap;
> 
> -    if (flow->priority) {
> -        nl_msg_put_u32(buf, OVS_KEY_ATTR_PRIORITY, flow->priority);
> +    if (flow->skb_priority) {
> +        nl_msg_put_u32(buf, OVS_KEY_ATTR_PRIORITY, flow->skb_priority);
>     }
> 
>     if (flow->tun_id != htonll(0)) {
> @@ -1655,7 +1655,7 @@ odp_flow_key_to_flow(const struct nlattr *key, size_t 
> key_len,
> 
>     /* Metadata. */
>     if (present_attrs & (UINT64_C(1) << OVS_KEY_ATTR_PRIORITY)) {
> -        flow->priority = nl_attr_get_u32(attrs[OVS_KEY_ATTR_PRIORITY]);
> +        flow->skb_priority = nl_attr_get_u32(attrs[OVS_KEY_ATTR_PRIORITY]);
>         expected_attrs |= UINT64_C(1) << OVS_KEY_ATTR_PRIORITY;
>     }
> 
> @@ -1859,13 +1859,13 @@ static void
> commit_set_priority_action(const struct flow *flow, struct flow *base,
>                            struct ofpbuf *odp_actions)
> {
> -    if (base->priority == flow->priority) {
> +    if (base->skb_priority == flow->skb_priority) {
>         return;
>     }
> -    base->priority = flow->priority;
> +    base->skb_priority = flow->skb_priority;
> 
>     commit_set_action(odp_actions, OVS_KEY_ATTR_PRIORITY,
> -                      &base->priority, sizeof(base->priority));
> +                      &base->skb_priority, sizeof(base->skb_priority));
> }
> 
> /* If any of the flow key data that ODP actions can modify are different in
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 7dc8cae..56c3baf 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -227,7 +227,7 @@ struct action_xlate_ctx {
> 
>     int recurse;                /* Recursion level, via xlate_table_action. */
>     struct flow base_flow;      /* Flow at the last commit. */
> -    uint32_t original_priority; /* Priority when packet arrived. */
> +    uint32_t orig_skb_priority; /* Priority when packet arrived. */
>     uint8_t table_id;           /* OpenFlow table ID where flow was found. */
>     uint32_t sflow_n_outputs;   /* Number of output ports. */
>     uint16_t sflow_odp_port;    /* Output port for composing sFlow action. */
> @@ -2673,7 +2673,7 @@ handle_miss_upcalls(struct ofproto_dpif *ofproto, 
> struct dpif_upcall *upcalls,
>             ofpbuf_delete(upcall->packet);
>             continue;
>         }
> -        flow_extract(upcall->packet, flow.priority, flow.tun_id,
> +        flow_extract(upcall->packet, flow.skb_priority, flow.tun_id,
>                      flow.in_port, &flow);
> 
>         /* Handle 802.1ag, LACP, and STP specially. */
> @@ -4161,7 +4161,7 @@ compose_output_action__(struct action_xlate_ctx *ctx, 
> uint16_t ofp_port,
>             return;
>         }
> 
> -        pdscp = get_priority(ofport, ctx->flow.priority);
> +        pdscp = get_priority(ofport, ctx->flow.skb_priority);
>         if (pdscp) {
>             ctx->flow.nw_tos &= ~IP_DSCP_MASK;
>             ctx->flow.nw_tos |= pdscp->dscp;
> @@ -4390,10 +4390,10 @@ xlate_enqueue_action(struct action_xlate_ctx *ctx,
>     }
> 
>     /* Add datapath actions. */
> -    flow_priority = ctx->flow.priority;
> -    ctx->flow.priority = priority;
> +    flow_priority = ctx->flow.skb_priority;
> +    ctx->flow.skb_priority = priority;
>     compose_output_action(ctx, ofp_port);
> -    ctx->flow.priority = flow_priority;
> +    ctx->flow.skb_priority = flow_priority;
> 
>     /* Update NetFlow output port. */
>     if (ctx->nf_output_iface == NF_OUT_DROP) {
> @@ -4418,7 +4418,7 @@ xlate_set_queue_action(struct action_xlate_ctx *ctx,
>         return;
>     }
> 
> -    ctx->flow.priority = priority;
> +    ctx->flow.skb_priority = priority;
> }
> 
> struct xlate_reg_state {
> @@ -4616,7 +4616,7 @@ do_xlate_actions(const union ofp_action *in, size_t 
> n_in,
>             break;
> 
>         case OFPUTIL_NXAST_POP_QUEUE:
> -            ctx->flow.priority = ctx->original_priority;
> +            ctx->flow.skb_priority = ctx->orig_skb_priority;
>             break;
> 
>         case OFPUTIL_NXAST_REG_MOVE:
> @@ -4721,7 +4721,7 @@ xlate_actions(struct action_xlate_ctx *ctx,
>     ctx->nf_output_iface = NF_OUT_DROP;
>     ctx->mirrors = 0;
>     ctx->recurse = 0;
> -    ctx->original_priority = ctx->flow.priority;
> +    ctx->orig_skb_priority = ctx->flow.skb_priority;
>     ctx->table_id = 0;
>     ctx->exit = false;
> 
> -- 
> 1.7.2.5
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev

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

Reply via email to