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

Reply via email to