Skip to content

Border Router: packet not forwarded from ethos to interface 6 #5539

@biboc

Description

@biboc

My setup:

Linux with start_network.sh (i.e ethos and uhcpd running)
Border router on samr21
Gnrc_networking node A
Gnrc_networking node B

I run a program that sends 20 UDP packets to my nodes every 20 sec.
After some time, instead of seeing:
got packet from fe80::46:a5ff:fe3d:fc3e port 58493
uhcp: push from fe80::46:a5ff:fe3d:fc3e:58493 prefix=2001:db8::/64
gnrc_uhcpc: uhcp_handle_prefix(): got same prefix again

uhcp client gives:
uhcp_client(): timeout waiting for reply
uhcp_client(): sending REQ...
...
In a loop.

EDIT
I thought it was uhcpd which was buggy but i think it is BR. I tried to ping interface 6 from Linux, no success.
I went deeper, communication goes over ethos and it arrives at

case ETHOS_FRAME_TYPE_DATA:
            if (dev->framesize) {
                dev->last_framesize = dev->framesize;
                dev->netdev.event_callback((netdev2_t*) dev, NETDEV2_EVENT_ISR, dev->netdev.isr_arg);
            }

dev->framesize so callback should be called. I don't know where to debug then?

In the other way, uhcp client (BR) sends data and uhcpd server on Linux receives every packet:
got packet from fe80::221:d3ff:fe60:5a8d port 12345
Then it tries to answer the request but unfortunately like the ping the answer does not go to uhcp client.

What's the problem, why can't Linux communicate to BR anymore?

If I reboot the BR, it works and I see again that uhcp client and server can communicates.
How can I debug it more?

@miri64, I don't know if it is a know issue? But the network crashes somewhere, can you help to debug a bit more? I'm on April release

EDIT:
I enabled DEBUG on gnrc_netdev2.c and gnrc_netdev2_eth.c:
When it works:

gnrc_netdev2: GNRC_NETDEV_MSG_TYPE_EVENT received
gnrc_netdev2: event triggered -> 2
gnrc_netdev2_eth: received packet from 6e:e4:6f:8a:ea:23 of length 118
gnrc_netdev2: waiting for incoming messages

When it does not work:

gnrc_netdev2: GNRC_NETDEV_MSG_TYPE_EVENT received
gnrc_netdev2: event triggered -> 2
gnrc_netdev2_eth: received packet from 6f:8a:ea:23:33:33 of length 86
gnrc_netdev2: unable to forward packet of type 0
gnrc_netdev2: waiting for incoming messages

As you can see the length and address have changed and I remarked that address has been shifted when it is not working. Both call are simple ping.

Metadata

Metadata

Assignees

Labels

Area: networkArea: NetworkingType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)Type: questionThe issue poses a question regarding usage of RIOT

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions