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

Jerome Forissier
2024-07-26T12:44:54Z

On 7/25/24 18:17, Tom Rini wrote:
> 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.

I have moved SYS_RX_ETH_BUFFER out of the 'if NET || NEW_LWIP' in v6.

Thanks,
--
Jerome