From: Ben Pfaff > Sent: 22 August 2017 18:35 ... > We solved the alignment problem in OVS userspace a different way, by > defining our versions of the network protocol headers so that they only > need 16-bit alignment. In turn, we did that by defining a > ovs_16aligned_be32 type as a pair of be16s and ovs_16aligned_be64 as > four be16s, and using helper functions for reads and writes. ...
If you add __attribute__((aligned(2))) to the 32bit and 64bit structure members then gcc will do the loads and shifts for you. David