flow: Split miniflow's map.
authorJarno Rajahalme <jrajahalme@nicira.com>
Fri, 17 Jul 2015 22:18:43 +0000 (15:18 -0700)
committerJarno Rajahalme <jrajahalme@nicira.com>
Fri, 17 Jul 2015 22:18:43 +0000 (15:18 -0700)
commit361d808dd9e4e27fb04c76d3da0cd7a2e9447622
treec1d4b9a194bad84e89cfeca0750a38b71cc8ddaa
parent8cd27cfd1e8fb8e4f150cd0c8eeb486f754c8643
flow: Split miniflow's map.

Use two maps in miniflow to allow for expansion of struct flow past
512 bytes.  We now have one map for tunnel related fields, and another
for the rest of the packet metadata and actual packet header fields.
This split has the benefit that for non-tunneled packets the overhead
should be minimal.

Some miniflow utilities now exist in two variants, new ones operating
over all the data, and the old ones operating only on a single 64-bit
map at a time.  The old ones require doubling of code but should
execute faster, so those are used in the datapath and classifier's
lookup path.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
lib/classifier-private.h
lib/classifier.c
lib/dpif-netdev.c
lib/flow.c
lib/flow.h
lib/match.c