QEMU networking: CONFIG_NET_TESTING breaks things, echo_server IPv6 address is "wrong"
Paul Sokolovsky
Hello,
Taking a chance, I'd like to start with drawing attention to https://jira.zephyrproject.org/browse/ZEP-687 "docs: Subsystems/Networking section is almost empty". Zephyr networking information currently is sparse, disperse, bits are out of date, and there're omissions/inconsistencies. Just linking a wiki landing page from the official docs and letting community fill in that wiki would be a good first step. Anyway, waiting for real hardware support, I decided to give QEMU networking a try. After some moderate googling, I arrived at https://gerrit.zephyrproject.org/r/gitweb?p=net-tools.git;a=summary and https://wiki.zephyrproject.org/view/Networking-with-Qemu . The initial outcome: nothing works. On a 3rd day of fiddling, with a following patch to echo_server it finally worked: --- a/samples/net/echo_server/prj_slip.conf +++ b/samples/net/echo_server/prj_slip.conf -CONFIG_NET_TESTING=y +CONFIG_NET_TESTING=n diff --git a/samples/net/echo_server/src/echo-server.c b/samples/net/echo_server/src/echo-server.c index deb0d98..9ceef46 100644 --- a/samples/net/echo_server/src/echo-server.c +++ b/samples/net/echo_server/src/echo-server.c -#define MY_IPADDR { { { 0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1 } } } +#define MY_IPADDR { { { 0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2 } } } Commentary: Both https://gerrit.zephyrproject.org/r/gitweb?p=net-tools.git;a=blob;f=README;h=38c74ad4e186794d8598f2cd0cb0302b0c0316ea;hb=HEAD and https://gerrit.zephyrproject.org/r/gitweb?p=net-tools.git;a=blob;f=loop-slip.sh;h=43ba09f04e592c734f992a34cbc46a4034f18b5b;hb=HEAD configure host's side of tun interface with address 2001:db8::1, but that's also what echo-server uses, so no talk between them. That's however a 2nd in row issue, because with CONFIG_NET_TESTING=y, an application thread doesn't really receive any packets, apparently due to app's address being configured as IN6ADDR_ANY_INIT (or something else, few minutes of looking at this NET_TESTING thing isn't enough to say what it's doing). In the nearby thread, Rohit Grover reported issues with getting echo on a real hardware, so I wonder if CONFIG_NET_TESTING=y may be involved too. That's the source code side of the issue, another is documentation. Both net-tools/README and the wiki page above omit some details to get a virtual network set up seamlessly. So, I'm not sure what the exact issue is. I may imagine following might happen: 1. There was a simple CONFIG_NET_TESTING, for things like echo_server. 2. Later, it was made into a separate module, but echo_server possibly wasn't updated to play with the new module well. 3. net-tools and wiki page predate CONFIG_NET_TESTING altogether. The obvious question is what to do in this situation. I'm personally keen to update https://wiki.zephyrproject.org/view/Networking-with-Qemu to describe a setup which actually works now (this is mostly doing steps in the right order, but also building with CONFIG_NET_TESTING=n). Thanks, Paul Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog |
|