Hello colleagues, Right now there are two parallel threads onto this topic ongoing on the ML, so I decided to start a third one.
Regarding handling of checksum, sizes, fields, etc. MAC frame (max 127 bytes) consists of header, payload and FCS (2 bytes). FCS is used to check that incoming frame is received w/o errors. There are two possibilities: 1) hardware verifies the FCS. Then the driver sets IEEE802154_HW_OMIT_CKSUM flag. It should pass header+data to the mac802154 layer (so it is max 125 bytes for header and data). On the transmit side, mac layer passes prepared frame without FCS (again max 125 bytes) and hardware will calculate and transmit the checksum. 2) hardware can not verify FCS. Then the driver does not set the flag and passes the full (<=127 bytes) frame to mac802154. The first thing the stack will do would be to check and strip the FCS tail. The same goes to transmit side - the whole stack works with truncated skb, then at the latest stage mac802154 will compute and append checksum and pass <=127b frame to the driver for transmission. There is no way to make real (over-the-air) frames larger than 127 bytes, without breaking standard compatibility so usefull payload is limited to 125 bytes. -- With best wishes Dmitry ------------------------------------------------------------------------------ WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel