Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dpif-netdev: Don't use metaflow to operate on userspace datapath fields.
If ofproto-dpif installs a flow into the userspace datapath that doesn't include a mask, we need to synthesize an exact match one. This is currently done using the metaflow infrastructure, iterating over each field and setting it to all ones. There is a conceptual mismatch here because metaflow is operating on OpenFlow fields, not datapath ones. Even though they are generally very similar, there are subtle differences, which is why it is necessary to fix up the input port mask. With Geneve options, the mapping is much more complicated and so the situation is worse. The first issue is that the metaflow to flow mapping can change over time, so we would need to do more revalidation to track this. In addition, an upcoming patch will completely disconnect the option format between ofproto-dpif and dpif-netdev, so the values written by metaflow don't make sense at all. When megaflows are turned off, ofproto-dpif internally generates masks using flow_wildcards_init_for_packet(). Since that's the same as what we want to do here, we can just use that instead of metaflow. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
- Loading branch information