On Wednesday 07 November 2012 20:17:08 Sven Eckelmann wrote:
On Wednesday 07 November 2012 20:11:33 Antonio Quartulli wrote:
+/**
- struct batadv_unicast_4addr_packet - extended unicast packet
- @u: common unicast packet header
- @src: address of the source
- @subtype: packet subtype
- */
+struct batadv_unicast_4addr_packet {
struct batadv_unicast_packet u;
uint8_t src[ETH_ALEN];
uint8_t subtype;
uint8_t reserved;
/* "4 bytes boundary + 2 bytes" long to make the payload after the
* following ethernet header again 4 bytes boundary aligned
*/
+};
This doesn't work as you think. Now you have 2 extra padding bytes at the end of the batadv_unicast_4addr_packet and therefore make the payload (IPv4 header..) after the following ethernet header again wrongly aligned.
Sry, my fault. Mixed it up with another packed which had a __be32 included (batadv_bcast_packet).
Kind regards, Sven