-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Open
Labels
Area: networkArea: NetworkingArea: NetworkingType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)The issue reports a bug / The PR fixes a bug (including spelling errors)
Description
Description
While testing #11818 I realized that after a reset the first reply ethos is supposed to send back to the sender fails. This doesn't happen if using a wireless interface so is unrelated to gnrc.
The easiest way to see this is with a simple ping, but any message from the host requiring an ACK will fail.
As far as I could see the reply was being passed down up-to ethos, but no response was received by the host and _send was being called.
Steps to reproduce the issue
- Setup the network:
sudo ./dist/tools/ethos/setup_network.sh riot0 2001:db8::/64
- Compile a networking application with
ethos, the following patch can be applied tognrc_networking:
patch
diff --git a/examples/gnrc_networking/Makefile b/examples/gnrc_networking/Makefile
index 25c2dc858..0ac1b1a08 100644
--- a/examples/gnrc_networking/Makefile
+++ b/examples/gnrc_networking/Makefile
@@ -62,6 +62,29 @@ DEVELHELP ?= 1
# Change this to 0 show compiler invocation lines by default:
QUIET ?= 1
+ifeq (1,$(USE_ETHOS))
+ GNRC_NETIF_NUMOF := 2
+ USEMODULE += stdio_ethos
+ USEMODULE += gnrc_uhcpc
+
+ # ethos baudrate can be configured from make command
+ ETHOS_BAUDRATE ?= 115200
+ CFLAGS += -DETHOS_BAUDRATE=$(ETHOS_BAUDRATE)
+
+ # make sure ethos and uhcpd are built
+ TERMDEPS += host-tools
+
+ # For local testing, run
+ #
+ # $ cd dist/tools/ethos; sudo ./setup_network.sh riot0 2001:db8::0/64
+ #
+ #... in another shell and keep it running.
+ export TAP ?= riot0
+ TERMPROG = $(RIOTTOOLS)/ethos/ethos
+ TERMFLAGS = $(TAP) $(PORT)
+endif
+
+
include $(RIOTBASE)/Makefile.include
# Set a custom channel if needed
@@ -77,3 +100,8 @@ else
CFLAGS += -DIEEE802154_DEFAULT_CHANNEL=$(DEFAULT_CHANNEL)
endif
endif
+
+.PHONY: host-tools
+
+host-tools:
+ $(Q)env -u CC -u CFLAGS make -C $(RIOTTOOLS)
USE_ETHOS=1 make -C examples/gnrc_networking BOARD=samr21-xpro flash -j3 term
- ping once the device from your host, fails
ping6 fe80::2%riot0 -c 1 -W 10
PING fe80::2%riot0(fe80::2%riot0) 56 data bytes
--- fe80::2%riot0 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
You can see it is not a matter of timeouts since I used a 10s timeout.
- ping a second time, succeed (all subsequent ping would succeed):
PING fe80::2%riot0(fe80::2%riot0) 56 data bytes
64 bytes from fe80::2%riot0: icmp_seq=1 ttl=64 time=21.9 ms
--- fe80::2%riot0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 21.994/21.994/21.994/0.000 ms
Expected results
Should answer to first ping.
Actual results
Fails to answer to first ping.
Metadata
Metadata
Assignees
Labels
Area: networkArea: NetworkingArea: NetworkingType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)The issue reports a bug / The PR fixes a bug (including spelling errors)