The compiler complains that "taking address of packed member ... of class or structure 'ip6_hdr' may result in an unaligned pointer value". We don't care if the address is aligned as we explicitly use untoh16() to convert the read value.