Closed cyliangtw closed 8 years ago
ARM Internal Ref: ONME-2385
Do you have a border router powered up and in the ethernet network?
I powered up the border router "FireFly mbed 6LoWPAN Gateway router' by micro-USB cable. I also copied gateway binary firmware file to flash this gateway device successfully by micro-USB cable power up.
Hi,
Two things I would like to know:
Binary | Use case |
---|---|
gateway6LoWPANDynamic.bin | 6LoWPAN border router in bridge mode. Learns IPv6 prefix from Ethernet |
gateway6LoWPANStatic.bin | 6LoWPAN border router using static IPv6 prefix |
gatewayThreadDynamic.bin | Thread border router in bridge mode. Learns IPv6 prefix from Ethernet |
gatewayThreadStatic.bin | Thread border router using static IPv6 prefix |
What is common to all those routers is it they require ethernet cable to be attached to switch, or another computer before they boot up.
Those routers that learns the prefix from the Ethernet side, requires that there is active IPv6 gateway in the ethernet segment and it is sending ICMPv6 Router advertisements with the A flag (autonomous address-configuration flag) turned on.
In case you do not have IPv6 routing in your network, try out first with the static ones.
Hi,
[DBG ][m6LND]: PAN ID: 06:91 [DBG ][m6LND]: MAC 64-bit: fc:c2:3d:00:00:05:20:70 [DBG ][m6LND]: IID (Based on MAC 64-bit address): fe:c2:3d:00:00:05:20:70 [DBG ][m6LND]: Channel: 12 mesh_network_handler() 0
waiting 5s before sending registration
... send_registration() [DBG ][ns_wrap]: SOCKET_TX_DONE, 163 bytes sent [DBG ][ns_wrap]: SOCKET_TX_DONE, 163 bytes sent [DBG ][ns_wrap]: SOCKET_TX_DONE, 163 bytes sent error 6 Reconnecting to server
That explains it. You have nothing wrong in your code or boards.
The dynamic versions require IPv6 connectivity which you most probably do not have. The _mbed_clientexample you used on K64F over ethernet, uses IPv4
The static versions of the router are provided only for testing purposes. They form site-local IPv6 network that cannot be routed outside and therefore your registration fails after "send_registration()" when it receives ICMP error message from router that it cannot route.
Maybe the documentation does not state it clear enough that 6LoWPAN and Thread require IPv6
Thanks a lot, I realized thread rely on IPv6. In network topology of IoT, IoT gateway role will be in charge of the converter between IPv6 and IPv4, after that IoT host device could connect normal internet through IoT broader router. If I use Google OnHub instead of FireFly gateway, could it work to connect ARM connector ?
I followed Troubleshooting steps, still can't identify the failure. (1) Set as 6LoWPAN ND of mesh network, I got "Scan Fail: No Beacons" repeatedly. (2) Set as Thread type of mesh network, I got "ns_sal_socket_send_to: error=-4" repeatedly.
Details of log as below: =====Log (6LoWPAN ND of mesh network) =====================
[INFO][m6LND]: Start 6LoWPAN ND Bootstrap [DBG ][m6LND]: app_parse_network_event() 3 [DBG ][m6LND]: Link Layer Scan Fail: No Beacons [DBG ][m6LND]: Restart bootstrap [DBG ][m6LND]: app_parse_network_event() 3 [DBG ][m6LND]: Link Layer Scan Fail: No Beacons
===== Log (Thread type of mesh network) ===================== Start mbed-client-example-6lowpan
[INFO][m6Thread]: Start 6LoWPAN Thread bootstrap [DBG ][m6Thread]: app_parse_network_event() 0 [INFO][m6Thread]: Thread bootstrap ready [DBG ][m6Thread]: MAC 16-bit: 00:00 [DBG ][m6Thread]: PAN ID: fa:ce [DBG ][m6Thread]: MAC 64-bit: fe:c2:3d:00:00:05:20:70 [DBG ][m6Thread]: IID (Based on MAC 64-bit address): fc:c2:3d:00:00:05:20:70 mesh _network_handler() 0
... send_registration() [ERR ][ns_sal]: ns_sal_socket_send_to: error=-4 error 6 Reconnecting to server
... send_registration() [ERR ][ns_sal]: ns_sal_socket_send_to: error=-4 error 6