datapath: IP fragments should include L4 header in flow length.
If we can't parse a header because it is invalid or not present due to
fragmentation, we still need to include the length of that header when
comparing the flow key. The value of the field will be zero to
indicate that header was not present, rather than effectively
wildcarding the value. However, this was not done with fragments on
flow extract but is effectively done on flow setup. Since the flow
length also changes the hash, it caused all fragments to miss the
hash table and be sent to useerspace.
Reported-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Tested-by: Ben Pfaff <blp@nicira.com>