Re: [PATCH v5 02/20] net: introduce alternative implementation as net-lwip/

Tom Rini
2024-07-25T17:15:42Z

[-- Attachment #1: Type: text/plain, Size: 2083 bytes --]

On Thu, Jul 25, 2024 at 02:57:23PM +0200, Jerome Forissier wrote:

> Prepare the introduction of the lwIP (lightweight IP) TCP/IP stack by
> adding a new net/lwip/ directory and the NET_LWIP symbol. Network
> support is either NO_NET, NET (legacy stack) or NET_LWIP. Subsequent
> commits will introduce the lwIP code, re-work the NETDEVICE integration
> and port some of the NET commands and features to lwIP.
>
> SPL_NET cannot be enabled when NET_LWIP=y. SPL_NET pulls some symbols
> that are part of NET (such as arp_init(), arp_timeout_check(),
> arp_receive(), net_arp_wait_packet_ip()). lwIP support in SPL may be
> added later.
>
> Similarly, DFU_TFTP and FASTBOOT are not compatible with NET_LWIP
> because of dependencies on net_loop(), tftp_timeout_ms,
> tftp_timeout_count_max and other NET things. Let's add a dependency on
> !NET_LWIP for now.
>
> As for SANDBOX, NET_LWIP cannot be used either because of strong
> assumptions on the network stack. Make NET_LWIP depend on !SANDBOX so
> that the NET_LWIP alternative is not visible in make menuconfig when
> sandbox_defconfig is used.
>
> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
[snip]

Here in net/Kconfig you do..
> +if NET || NET_LWIP
> +
> +config BOOTDEV_ETH
> + bool "Enable bootdev for ethernet"
> + depends on BOOTSTD
> + default y
> + help
> + Provide a bootdev for ethernet so that is it possible to boot
> + an operating system over the network, using the PXE (Preboot
> + Execution Environment) protocol.
> +
> config SYS_RX_ETH_BUFFER
> int "Number of receive packet buffers"
> default 4

But we must have SYS_RX_ETH_BUFFER defined even in the NO_NET case as
otherwise previously <net.h> and now <net-common.h> cannot be used, and
untying that is another big mess. We include <net.h> in common areas for
function prototypes where their usage is guarded. But we use PKTBUFSRX
in some structs that aren't guarded. Trying to build for example for
am62x_beagleplay_r5 with this series blows up in a lot of places.

--
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]