Cascoda / ca8210-linux

Linux kernel driver for direct SPI communication with Cascoda's CA-8210 IEEE 802.15.4 transceiver
BSD 3-Clause "New" or "Revised" License
5 stars 5 forks source link

Ping6 test gets stuck after few thousand counts #1

Closed abhijit-mahajani-imgtec closed 7 years ago

abhijit-mahajani-imgtec commented 8 years ago

We are using the ca8210 driver 1.0.1 release in https://github.com/Creatordev/openwrt. (with linux 4.1 kernel)

Once booted up the board, if we start ping6 on 6lowpan to clicker with ca8210 chip. then we observe that after 6000-7000 counts, it gets stuck

64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6685 ttl=64 time=29.770 ms
64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6686 ttl=64 time=28.520 ms
64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6687 ttl=64 time=28.448 ms
64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6688 ttl=64 time=27.314 ms
64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6689 ttl=64 time=28.476 ms
64 bytes from 2001:1418:100:823c:11cc:f070:c089:b11f: seq=6690 ttl=64 time=26.580 ms
[20723.938612] [ca8210] data confirm timed out
[20724.938664] [ca8210] data confirm timed out
[20725.938635] [ca8210] data confirm timed out
[20726.938656] [ca8210] data confirm timed out
[20727.938638] [ca8210] data confirm timed out

Afterwards any 6lowpan communication is not possible.

Similarly if we ping between Ci40 to Ci40, then we get status 241 prints on console and ping stops. There after we cannot ping from/to any Ci40.

transmitter logs:

64 bytes from 2001:1418:100::3: seq=4420 ttl=64 time=36.683 ms
64 bytes from 2001:1418:100::3: seq=4421 ttl=64 time=28.313 ms
[ 4906.251363] [ca8210] Link transmission unsuccessful, Status = 233
[ 4907.229795] [ca8210] Link transmission unsuccessful, Status = 233
[ 4908.232810] [ca8210] Link transmission unsuccessful, Status = 233

receiver logs:

[ 3951.738982] [ca8210] Link transmission unsuccessful, Status = 241
[ 3952.036947] [ca8210] data confirm timed out
abhijit-mahajani-imgtec commented 8 years ago

I have tried with the latest https://github.com/Cascoda/ca8210-linux/releases/tag/1.0.2 for 4.1 kernel.

Tried out Ping6 test between two Ci40s. and I could see that

[ 9232.600881] ca8210 spi0.0: Link transmission unsuccessful, status = 241
[ 9232.897623] ca8210 spi0.0: data confirm timed out
[ 9233.617506] ca8210 spi0.0: Synchronous confirm timeout
[ 9233.623298] ca8210 spi0.0: cascoda_api_downstream failed
[ 9233.629310] ca8210 spi0.0: async tx timeout wasn't pending when transfer complete
[ 9233.657737] ca8210 spi0.0: Unexpected msdu_handle on data confirm, Expected 246, got 245
64 bytes from 2001:1418:100::1: seq=9169 ttl=64 time=69.489 ms
[ 9233.937568] ca8210 spi0.0: data confirm timed out
64 bytes from 2001:1418:100::1: seq=9170 ttl=64 time=27.322 ms
64 bytes from 2001:1418:100::1: seq=9171 ttl=64 time=27.846 ms
64 bytes from 2001:1418:100::1: seq=9172 ttl=64 time=28.246 ms
64 bytes from 2001:1418:100::1: seq=9173 ttl=64 time=27.714 ms
64 bytes from 2001:1418:100::1: seq=9174 ttl=64 time=27.301 ms

even after getting status 241, it was getting recovered and still the ping was continued. It was running fine until 20000 odd counts. so I am fine to mark this one has fixed :)