>> +struct ieee802154_sechdr { >> + u8 sc; >> + u32 frame_ctr; >> + union { >> + struct { >> + u16 pan_id; >> + u16 short_addr; >> + } pan; >> + u8 hw[IEEE802154_ADDR_LEN]; >> + } key_source; >> + u8 key_id; >> +}; >> + >> +struct ieee802154_hdr { >> + u16 fc; >> + u8 seq; >> + struct ieee802154_addr source; >> + struct ieee802154_addr dest; >> + struct ieee802154_sechdr sec; >> +}; > > You're going to have to address endianness both in these structure > definitions and the code. > > For types larger than u8 you'll need to use __be16, __le16, __be32, > __le32 etc. as appropriate. > > When setting/loading values, you'll need to use cpu_to_be16(), > cpu_to_le16() etc. as appropriate.
The intention here was to explicitly not do that, and have this representation of the header be completely in host byte order. This is due to the fact that an easily accessible (i.e. no bitshifts/pointer arithmetic all over the place) representation will differ wildly from the actual packet MAC header contents, so I went with host byte order there instead. The header operations will convert them to/from the correct byte order for the actual MAC header. I see some value in being able to memcpy() to/from those fields directly when building/reading headers, but I also think that not having to do endianness conversion everywhere for a struct that cannot ever be a valid header as is outweighs this. If explicit endianness is required for this case nonetheless, I will of course change it. ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel