From: Alexander Duyck <redacted>
Date: Fri, 10 Oct 2014 09:50:17 -0700
If I just use get_unaligned that is pretty easy in terms of cleanup
for the ports and IPv4 addresses, the IPv6 will still be a significant
hurdle to overcome though.
Actually, it's not that simple.
When the compiler sees things like "th->doff" it will load the 32-bit
word that 4-bit field contains and extract the value using shifts and
masking.
So we might need to sprinkle a "attribute((packed))" here and there
to make it work.