Decorate IPv4 structures used for byte buffer overlays as packed.
The C language only allows pointer casting to another type if both sides have
compatible alignments, unaligned casts causes undefined behavior.
Since we do not have declared (and therefore not checked) mbuf alignments for
the various input functions in the IP stack, the worst case (alignment to
char*) should be expected.
A lot of work still needs to be done on IPv6, especially on the terrible
accesses to in6_addr members.
It should have no performance impact on all unaligned architectures.
MFC after: 1 month
Reviewed by: kib
PR: 272965
Differential Revision: https://reviews.freebsd.org/D50103