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 |