[ovs-dev] [PATCH 1/5] lib/flow: Introduce miniflow_extract().

Jarno Rajahalme jrajahalme at nicira.com
Wed May 7 13:16:41 UTC 2014


>> 
>> 
>> +    /* Metadata. */
>>      if (md) {
>> -        flow->tunnel = md->tunnel;
>> -        flow->in_port = md->in_port;
>> -        flow->skb_priority = md->skb_priority;
>> -        flow->pkt_mark = md->pkt_mark;
>> -        flow->recirc_id = md->recirc_id;
>> -        flow->dp_hash = md->dp_hash;
>> +        if (md->tunnel.ip_dst) {
>> +            miniflow_push_words(mf, tunnel, &md->tunnel,
>> +                                sizeof md->tunnel / 4);
>> +        }
>> +        miniflow_push_uint32_check(mf, skb_priority, md->skb_priority);
>> +        miniflow_push_uint32_check(mf, pkt_mark, md->pkt_mark);
>> +        miniflow_push_uint32_check(mf, recirc_id, md->recirc_id);
>> +        miniflow_push_uint32(mf, in_port, odp_to_u32(md->in_port.odp_port));
>>      }
> 
> ... 
> 
>>          }
>>      }
>> +    if (md) {
>> +        miniflow_push_uint32_check(mf, dp_hash, md->dp_hash);
>> +    }
>> + out:
>> +    dst->map = mf.map;
>>  }
> 
> Was there a particular reason for shifting the dp_hash part to the end of the function here, rather than having it grouped with the other metadata fields? 

The only reason is that we push the miniflow data in order. I actually proposed moving the dp_hash up with the other metadata in struct flow, so that it could be pushed together with the other metadata, but did not follow through. I'll send a patch to do that.

  Jarno

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20140507/6a22db0c/attachment-0005.html>


More information about the dev mailing list