packet: Match userspace and kernel definition of ICMP header.
authorJesse Gross <jesse@nicira.com>
Tue, 27 Dec 2011 01:33:03 +0000 (17:33 -0800)
committerJesse Gross <jesse@nicira.com>
Tue, 27 Dec 2011 18:42:30 +0000 (10:42 -0800)
commitc4ccff78ec5bad2b602ae72e283960ec393661fe
tree4bbe2daf2544e187cedeeaced141c6d8d69a7e80
parentdeedf7e78b249383d6f7b385f9d04e08e33d0e3f
packet: Match userspace and kernel definition of ICMP header.

Current userspace considers an ICMP header to be 4 bytes consisting
of the type, code, and checksum.  The kernel considers it to be 8
bytes because it also counts the two data fields that contain
type-specific information (and are always present).  Since flow
extract will zero out headers that are not completely present this
means that an ICMP packet that has a header of 5-7 bytes will be
interpreted differently by userspace and kernel.  This fixes the
problem by adopting the kernel's version of the ICMP header in
userspace.

Signed-off-by: Jesse Gross <jesse@nicira.com>
lib/packets.h