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