barebox + picotcp-1.7.0
Sascha Hauer
sha at pengutronix.de
Mon Mar 4 06:47:39 PST 2024
Hi Antony,
On Sun, Mar 03, 2024 at 09:58:03PM +0300, Antony Pavlov wrote:
> Hi all!
>
> In the message [1] Sascha proposed to have the barebox network stack
> and picotcp in parallel.
>
> This approach is used in the branch 20240303.picotcp-1.7.0 from
> https://github.com/frantony/barebox/ repo [2]:
>
> * all incoming packets go through the barebox network stack and only if
> they are not processed by it, they are forwarded to the picotcp network
> stack (all incoming ARP packets always go to the picotcp network stack).
>
> * risc-v virtual qemu machine with user networking (slirp network stack)
> is used for demonstration; one needs only qemu risc-v emulator
> for demonstration;
>
> * these barebox commands are introduced for picotcp stack capabilities
> demonstration:
>
> * dhclient --- setup picotcp network interface using the DHCP protocol;
> * ifconfig --- print/setup picotcp network interface information;
> * route --- print picotcp routing table;
> * picoping --- send ICMP ECHO_REQUEST to network hosts, receive replies;
> * picohost --- perform DNS lookup (google DNS server is used);
> * app_wget --- download file using the HTTP protocol.
>
> * tcpdump code is incorporated into barebox for network stack debugging.
> tcpdump supports parsing most of the protocols supported by barebox
> (DHCP, ARP, ICMP, DNS, TFTP and TCP).
I gave this a test on real hardware. I think the result is similar to
yours, dhclient, ifconfig, route, picoping, picohost work as expected.
app_wget does not work, it bails out with a NULL pointer exception.
I don't seem to have access to the Google DNS server, I switched this to
our local nameserver. Here global.net.nameserver should be used finally.
It's a bit odd that barebox and picotcp both use different configs, so
that we have to call barebox dhcp and also dhclient to make a network
interface usable in both barebox and picotcp. That should be a solvable
issue though.
Overall this looks like a good base for having both barebox network
stack and picotcp in parallel, so we could enable picotcp when needed
and still keep traditional barebox networking at least for a grace
period.
I'd still like to test lwip as well. Given that there are patches for
U-Boot already this should be doable without too much effort. The
integration into U-Boot likely shows the places we have to touch.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list