stlc45xx: receiving frames with LM_FLAG_ALIGN -- not all data read?

Max Filippov jcmvbkbc at gmail.com
Sat Jan 10 22:00:16 EET 2009


Hello.

Firmware behaves strange on incoming data frames with LM_FLAG_ALIGN set: 
it seems that it shortens frames by the number of padding bytes.

Here's log:

<7>[   60.927209] stlc45xx: rx frame 0xc79d5610 96 B
<7>[   60.927240] 00000000: 43 54 4c 00 71 09 00 00 ad 00 00 92 f9 b5 26 02  CTL.q.........&.
<7>[   60.927270] 00000010: 00 00 00 00 02 00 08 03 3a 01 00 02 ee c0 ff ee  ........:.......
<7>[   60.927331] 00000020: 00 22 15 1c 09 d1 00 02 ee c0 ff ee 00 37 00 22  ."...........7."
<7>[   60.927362] 00000030: 15 1c 09 d1 00 05 3f 00 00 00 aa aa 03 00 00 00  ......?.........
<7>[   60.927392] 00000040: 08 06 00 01 08 00 06 04 00 02 00 22 15 1c 09 d1  ..........."....
<7>[   60.927453] 00000050: c0 a8 04 01 00 02 ee c0 ff ee c0 a8 04 0d 96 e9  ................
<7>[   60.927484] stlc45xx: stlc45xx_rx_data
<7>[   60.927484] stlc45xx: data->clock: 00000000:0226b5f9
<7>[   60.927514] stlc45xx: rx data 0xc79d5626 74 B
<7>[   60.927545] 00000000: 08 03 3a 01 00 02 ee c0 ff ee 00 22 15 1c 09 d1  ..:........"....
<7>[   60.927606] 00000010: 00 02 ee c0 ff ee 00 37 00 22 15 1c 09 d1 00 05  .......7."......
<7>[   60.927636] 00000020: 3f 00 00 00 aa aa 03 00 00 00 08 06 00 01 08 00  ?...............
<7>[   60.927667] 00000030: 06 04 00 02 00 22 15 1c 09 d1 c0 a8 04 01 00 02  ....."..........
<7>[   60.927698] 00000040: ee c0 ff ee c0 a8 04 0d 96 e9                    ..........

This is an ARP reply frame sent over mesh link. On the radio it looks like this (wireshark dump, with radiotap header):

0000  00 00 18 00 2e 48 00 00  00 02 71 09 80 04 f4 01   .....H.. ..q.....
0010  00 00 00 00 00 00 00 00  08 03 3a 01 00 02 ee c0   ........ ..:.....
0020  ff ee 00 22 15 1c 09 d1  00 02 ee c0 ff ee 00 37   ...".... .......7
0030  00 22 15 1c 09 d1 00 05  3f 00 00 00 aa aa 03 00   ."...... ?.......
0040  00 00 08 06 00 01 08 00  06 04 00 02 00 22 15 1c   ........ ....."..
0050  09 d1 c0 a8 04 01 00 02  ee c0 ff ee c0 a8 04 0d   ........ ........

Incoming frame in first dump has 2 padding bytes and its FCS is 2 bytes long instead of 4.
I tried to read 2 bytes more from spi, but received 2 zeros. Then I tried to find other packets with LM_FLAG_ALIGN
and found none in rather long dumps.

The question is 'Does anyone else experience this? Is it a known firmware bug? What is the right workaround?'

-- 
Max


More information about the stlc45xx-devel mailing list