zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10k stars 6.16k forks source link

net: tx_bufs are not freed when NET_TCP_BACKLOG_SIZE is too high #23246

Closed xhpohanka closed 4 years ago

xhpohanka commented 4 years ago

I'm playing with samples/net/sockets/dumb_http_server_mt sample on nucleo-f429zi board. I have tried several network stack configurations and found out that when I increase number of NET_TCP_BACKLOG_SIZE (Number of simultaneous incoming TCP connections) to something higher than 6 and try to flood my board with many requests then some tx buffers are lost and never freed.

For network testing I use wrk benchmarking tool with command: wrk -d 20 -t 24 -c 500 --latency http://192.1.1.145:8080

With NET_TCP_BACKLOG_SIZE=10 I have following log

*** Booting Zephyr OS build v2.1.0-rc3-19-g6a2819e8ae64  ***
[00:00:01.497,000] <dbg> eth_stm32_hal.eth_iface_init: MAC 00:80:e1:00:00:00
[00:00:01.503,000] <inf> net_config: Initializing network
[00:00:01.503,000] <inf> net_config: IPv4 address: 192.0.2.1
[00:00:01.503,000] <inf> net_config: Running dhcpv4 client...
[00:00:01.503,000] <wrn> net_if: iface 0x2001b4a0 is down
[00:00:01.503,000] <err> net_pkt: *** ERROR *** pkt 0x20010c28 is freed already by mld_send():133 (mld_send_generic():175)
[00:00:01.503,000] <err> net_if: Cannot join all nodes address ff02::1 (-1)
[00:00:01.503,000] <wrn> net_if: iface 0x2001b4a0 is down
[00:00:01.503,000] <err> net_pkt: *** ERROR *** pkt 0x20010c28 is freed already by mld_send():133 (mld_send_generic():175)
[00:00:01.503,000] <err> net_if: Cannot join solicit node address ff02::1:ff00:1 (-1)
[00:00:01.559,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:01.619,000] <inf> net_dhcpv4: Received: 192.1.1.145
[00:00:01.619,000] <inf> net_config: IPv4 address: 192.1.1.145
[00:00:01.619,000] <inf> net_config: Lease time: 43200 seconds
[00:00:01.619,000] <inf> net_config: Subnet: 255.255.255.0
[00:00:01.619,000] <inf> net_config: Router: 192.1.1.254
[00:00:01.659,000] <inf> net_config: IPv6 address: <log_strdup alloc failed>
[00:00:01.660,000] <inf> net_config: IPv6 address: <log_strdup alloc failed>
[00:00:04.660,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp6: Waiting for IPv6 HTTP connections on port 8080, sock 0
[00:00:04.660,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp4: Waiting for IPv4 HTTP connections on port 8080, sock 2
uart:~$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x2001b354      96      96      RX
0x2001b370      96      96      TX
0x2001b440      128     128     RX DATA (rx_bufs)
0x2001b468      128     128     TX DATA (tx_bufs)
No external memory pools found.
[00:00:23.615,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #1 from 192.1.1.154
[00:00:23.637,000] <dbg> net_dumb_http_srv_mt_sample.client_conn_handler: [3] Connection closed by peer
[00:00:23.638,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #2 from 192.1.1.154
[00:00:23.639,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #3 from 192.1.1.154
[00:00:23.641,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #4 from 192.1.1.154
[00:00:23.643,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #5 from <log_strdup alloc failed>
[00:00:23.645,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #6 from <log_strdup alloc failed>
[00:00:23.646,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #7 from <log_strdup alloc failed>
[00:00:23.648,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #8 from <log_strdup alloc failed>
[00:00:23.951,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #9 from <log_strdup alloc failed>
[00:00:24.452,000] <err> net_pkt: Data buffer allocation failed.
[00:00:24.452,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:24.952,000] <err> net_pkt: Data buffer allocation failed.
[00:00:24.953,000] <err> net_pkt: Data buffer allocation failed.
[00:00:25.124,000] <err> net_pkt: Data buffer allocation failed.
[00:00:25.154,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #10 from 192.1.1.154
[00:00:25.156,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #11 from 192.1.1.154
[00:00:25.157,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #12 from 192.1.1.154
[00:00:25.159,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #13 from 192.1.1.154
[00:00:25.162,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [5] Connection #14 from <log_strdup alloc failed>
[00:00:25.164,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #15 from <log_strdup alloc failed>
[00:00:25.568,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #16 from 192.1.1.154
[00:00:26.069,000] <err> net_pkt: Data buffer allocation failed.
[00:00:26.069,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:26.185,000] <err> net_pkt: Data buffer allocation failed.
[00:00:26.570,000] <err> net_pkt: Data buffer allocation failed.
[00:00:26.644,000] <err> net_pkt: Data buffer allocation failed.
[00:00:27.070,000] <err> net_pkt: Data buffer allocation failed.
[00:00:27.071,000] <err> net_pkt: Data buffer allocation failed.
[00:00:27.145,000] <err> net_pkt: Data buffer allocation failed.
[00:00:27.175,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #17 from 192.1.1.154
[00:00:27.179,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #18 from 192.1.1.154
[00:00:27.180,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #19 from 192.1.1.154
[00:00:27.183,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [5] Connection #20 from 192.1.1.154
[00:00:27.185,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #21 from <log_strdup alloc failed>
[00:00:27.188,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #22 from <log_strdup alloc failed>
[00:00:27.689,000] <err> net_pkt: Data buffer allocation failed.
[00:00:27.689,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:28.088,000] <err> net_pkt: Data buffer allocation failed.
[00:00:28.190,000] <err> net_pkt: Data buffer allocation failed.
[00:00:28.670,000] <err> net_pkt: Data buffer allocation failed.
--- 5 messages dropped ---
[00:00:29.198,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #25 from 192.1.1.154
[00:00:29.204,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #26 from 192.1.1.154
[00:00:29.210,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #27 from <log_strdup alloc failed>
[00:00:29.215,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #28 from <log_strdup alloc failed>
[00:00:29.221,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #29 from <log_strdup alloc failed>
[00:00:29.226,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #30 from <log_strdup alloc failed>
[00:00:29.232,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #31 from <log_strdup alloc failed>
[00:00:29.238,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #32 from <log_strdup alloc failed>
[00:00:29.243,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #33 from <log_strdup alloc failed>
[00:00:30.929,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #34 from <log_strdup alloc failed>
[00:00:30.930,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #35 from <log_strdup alloc failed>
[00:00:30.940,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #36 from <log_strdup alloc failed>
[00:00:30.942,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #37 from <log_strdup alloc failed>
[00:00:30.951,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #38 from <log_strdup alloc failed>
[00:00:30.953,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #39 from <log_strdup alloc failed>
[00:00:31.924,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #40 from 192.1.1.154
[00:00:32.131,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #41 from 192.1.1.154
[00:00:32.336,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #42 from 192.1.1.154
[00:00:32.542,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #43 from 192.1.1.154
[00:00:32.548,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #44 from 192.1.1.154
[00:00:32.553,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #45 from <log_strdup alloc failed>
[00:00:32.559,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #46 from <log_strdup alloc failed>
[00:00:32.565,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #47 from <log_strdup alloc failed>
[00:00:32.571,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #48 from <log_strdup alloc failed>
[00:00:32.576,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #49 from <log_strdup alloc failed>
[00:00:32.782,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #50 from <log_strdup alloc failed>
[00:00:32.788,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #51 from <log_strdup alloc failed>
[00:00:32.994,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #52 from 192.1.1.154
[00:00:33.199,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #53 from 192.1.1.154
[00:00:33.205,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #54 from 192.1.1.154
[00:00:33.211,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #55 from 192.1.1.154
[00:00:33.216,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #56 from <log_strdup alloc failed>
[00:00:33.222,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #57 from <log_strdup alloc failed>
[00:00:33.428,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #58 from <log_strdup alloc failed>
uart:~$ 
uart:~$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x2001b354      96      96      RX
0x2001b370      96      73      TX
0x2001b440      128     128     RX DATA (rx_bufs)
0x2001b468      128     69      TX DATA (tx_bufs)
No external memory pools found.

When I run of buffers completely I got zephyr Usage fault:

...
[00:00:34.237,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #44 from <log_strdup alloc failed>
[00:00:34.285,000] <err> net_pkt: Data buffer allocation failed.
[00:00:34.288,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [5] Connection #45 from 192.1.1.154
[00:00:34.789,000] <err> net_pkt: Data buffer allocation failed.
[00:00:34.789,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:35.186,000] <err> net_pkt: Data buffer allocation failed.
[00:00:35.186,000] <err> net_pkt: Data buffer allocation failed.
[00:00:35.187,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [3] Connection #46 from 192.1.1.154
[00:00:35.188,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [4] Connection #47 from 192.1.1.154
[00:00:35.216,000] <err> os: ***** USAGE FAULT *****
[00:00:35.216,000] <err> os:   Illegal use of the EPSR
[00:00:35.216,000] <err> os: r0/a1:  0x2000788c  r1/a2:  0x00000000  r2/a3:  0x2001b104
[00:00:35.216,000] <err> os: r3/a4:  0x00000000 r12/ip:  0x00000001 r14/lr:  0x08013149
[00:00:35.216,000] <err> os:  xpsr:  0x4000000f
[00:00:35.216,000] <err> os: Faulting instruction address (r15/pc): 0x00000000
[00:00:35.216,000] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:00:35.216,000] <err> os: Fault during interrupt handling

[00:00:35.216,000] <err> os: Current thread: 0x20008890 (idle)
[00:00:35.217,000] <err> os: Halting system

Is there any reasonable limit for backlog size? Is it dependent on other settings?

My current enviroment is v2.1.0-rc3, linux, zephyr-sdk.

.config is following

# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
CONFIG_NET_SAMPLE_NUM_HANDLERS=2

#
# Modules
#

#
# Optional modules. Make sure they're installed, via the project manifest.
#
# CONFIG_CIVETWEB is not set
# CONFIG_LIBMETAL is not set
# CONFIG_MBEDTLS is not set
# CONFIG_HAS_MEC_HAL is not set
# CONFIG_OPENAMP is not set
CONFIG_HAS_STM32CUBE=y
CONFIG_USE_STM32_HAL_ETH=y
CONFIG_USE_STM32_LL_RNG=y
CONFIG_USE_STM32_LL_UTILS=y
# CONFIG_MIPI_SYST_LIB is not set
# CONFIG_TINYCBOR is not set
# end of Modules

CONFIG_BOARD="nucleo_f429zi"
CONFIG_UART_3=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_ETH_STM32_HAL=y
CONFIG_UART_6=y
CONFIG_SOC="stm32f429xx"
CONFIG_SOC_SERIES="stm32f4"
CONFIG_NUM_IRQS=91
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=168000000
# CONFIG_WATCHDOG is not set
# CONFIG_UART_NS16550 is not set
CONFIG_GPIO=y
CONFIG_CORTEX_M_SYSTICK=y
CONFIG_ISR_STACK_SIZE=2048
CONFIG_CLOCK_CONTROL=y
CONFIG_SYS_CLOCK_TICKS_PER_SEC=10000
# CONFIG_SYS_POWER_MANAGEMENT is not set
CONFIG_BUILD_OUTPUT_HEX=y
# CONFIG_FLOAT is not set
CONFIG_TEXT_SECTION_OFFSET=0
CONFIG_FLASH_SIZE=2048
CONFIG_FLASH_BASE_ADDRESS=0x8000000
CONFIG_SRAM_SIZE=192
CONFIG_SRAM_BASE_ADDRESS=0x20000000
# CONFIG_SPI is not set
# CONFIG_TINYCRYPT is not set
# CONFIG_NET_L2_IEEE802154 is not set
CONFIG_CLOCK_CONTROL_STM32_CUBE=y
CONFIG_UART_STM32=y
CONFIG_GPIO_STM32=y
CONFIG_GPIO_STM32_PORTA=y
CONFIG_GPIO_STM32_PORTB=y
CONFIG_GPIO_STM32_PORTC=y
CONFIG_PINMUX_STM32=y
CONFIG_GPIO_STM32_PORTD=y
CONFIG_GPIO_STM32_PORTF=y
CONFIG_GPIO_STM32_PORTE=y
CONFIG_GPIO_STM32_PORTG=y
CONFIG_GPIO_STM32_PORTH=y
CONFIG_GPIO_STM32_PORTI=y
CONFIG_ENTROPY_STM32_RNG=y
CONFIG_GPIO_STM32_PORTJ=y
CONFIG_GPIO_STM32_PORTK=y
CONFIG_BOARD_NUCLEO_F429ZI=y

#
# Board Options
#
# CONFIG_SOC_SERIES_BEETLE is not set
# CONFIG_SOC_SERIES_MPS2 is not set
# CONFIG_SOC_SERIES_MUSCA is not set
# CONFIG_SOC_SERIES_MUSCA_B1 is not set
# CONFIG_SOC_SERIES_SAM3X is not set
# CONFIG_SOC_SERIES_SAM4S is not set
# CONFIG_SOC_SERIES_SAME70 is not set
# CONFIG_SOC_SERIES_SAMD20 is not set
# CONFIG_SOC_SERIES_SAMD21 is not set
# CONFIG_SOC_SERIES_SAMD51 is not set
# CONFIG_SOC_SERIES_SAME51 is not set
# CONFIG_SOC_SERIES_SAME53 is not set
# CONFIG_SOC_SERIES_SAME54 is not set
# CONFIG_SOC_SERIES_SAMR21 is not set
# CONFIG_SOC_SERIES_PSOC62 is not set
# CONFIG_SOC_SERIES_MEC1501X is not set
# CONFIG_SOC_SERIES_MEC1701X is not set
# CONFIG_SOC_SERIES_NRF51X is not set
# CONFIG_SOC_SERIES_NRF52X is not set
# CONFIG_SOC_SERIES_NRF53X is not set
# CONFIG_SOC_SERIES_NRF91X is not set
# CONFIG_SOC_SERIES_IMX_6X_M4 is not set
# CONFIG_SOC_SERIES_IMX7_M4 is not set
# CONFIG_SOC_SERIES_IMX_RT is not set
# CONFIG_SOC_SERIES_KINETIS_K2X is not set
# CONFIG_SOC_SERIES_KINETIS_K6X is not set
# CONFIG_SOC_SERIES_KINETIS_K8X is not set
# CONFIG_SOC_SERIES_KINETIS_KE1XF is not set
# CONFIG_SOC_SERIES_KINETIS_KL2X is not set
# CONFIG_SOC_SERIES_KINETIS_KV5X is not set
# CONFIG_SOC_SERIES_KINETIS_KWX is not set
# CONFIG_SOC_SERIES_LPC54XXX is not set
# CONFIG_SOC_SERIES_LPC55XXX is not set
# CONFIG_SOC_SERIES_EFM32HG is not set
# CONFIG_SOC_SERIES_EFM32PG12B is not set
# CONFIG_SOC_SERIES_EFM32WG is not set
# CONFIG_SOC_SERIES_EFR32FG1P is not set
# CONFIG_SOC_SERIES_EFR32MG12P is not set
# CONFIG_SOC_SERIES_STM32F0X is not set
# CONFIG_SOC_SERIES_STM32F1X is not set
# CONFIG_SOC_SERIES_STM32F2X is not set
# CONFIG_SOC_SERIES_STM32F3X is not set
CONFIG_SOC_SERIES_STM32F4X=y
# CONFIG_SOC_SERIES_STM32F7X is not set
# CONFIG_SOC_SERIES_STM32G0X is not set
# CONFIG_SOC_SERIES_STM32G4X is not set
# CONFIG_SOC_SERIES_STM32H7X is not set
# CONFIG_SOC_SERIES_STM32L0X is not set
# CONFIG_SOC_SERIES_STM32L1X is not set
# CONFIG_SOC_SERIES_STM32L4X is not set
# CONFIG_SOC_SERIES_STM32MP1X is not set
# CONFIG_SOC_SERIES_STM32WBX is not set
# CONFIG_SOC_TI_LM3S6965 is not set
# CONFIG_SOC_SERIES_CC13X2_CC26X2 is not set
# CONFIG_SOC_SERIES_CC2650 is not set
# CONFIG_SOC_SERIES_CC32XX is not set
# CONFIG_SOC_SERIES_MSP432P4XX is not set
# CONFIG_SOC_XILINX_ZYNQMP is not set

#
# Hardware Configuration
#
CONFIG_CPU_HAS_ARM_MPU=y
CONFIG_HAS_SWO=y
CONFIG_SOC_FAMILY="st_stm32"
CONFIG_SOC_FAMILY_STM32=y
CONFIG_STM32_CCM=y
# CONFIG_SOC_STM32F401XC is not set
# CONFIG_SOC_STM32F401XE is not set
# CONFIG_SOC_STM32F405XG is not set
# CONFIG_SOC_STM32F407XG is not set
# CONFIG_SOC_STM32F411XE is not set
# CONFIG_SOC_STM32F412CG is not set
# CONFIG_SOC_STM32F412ZG is not set
# CONFIG_SOC_STM32F413XX is not set
# CONFIG_SOC_STM32F415XX is not set
# CONFIG_SOC_STM32F417XX is not set
CONFIG_SOC_STM32F429XX=y
# CONFIG_SOC_STM32F437XX is not set
# CONFIG_SOC_STM32F446XX is not set
# CONFIG_SOC_STM32F469XX is not set
# CONFIG_RPROC_RSC_TABLE is not set
# CONFIG_SOC_LOG_LEVEL_OFF is not set
# CONFIG_SOC_LOG_LEVEL_ERR is not set
# CONFIG_SOC_LOG_LEVEL_WRN is not set
CONFIG_SOC_LOG_LEVEL_INF=y
# CONFIG_SOC_LOG_LEVEL_DBG is not set
CONFIG_SOC_LOG_LEVEL=3
# end of Hardware Configuration

#
# ARM Options
#
CONFIG_CPU_CORTEX=y
CONFIG_CPU_CORTEX_M=y
CONFIG_ISA_THUMB2=y
CONFIG_STACK_ALIGN_DOUBLE_WORD=y
# CONFIG_RUNTIME_NMI is not set
# CONFIG_PLATFORM_SPECIFIC_INIT is not set
CONFIG_FAULT_DUMP=2

#
# Architecture Floating Point Options
#
# end of Architecture Floating Point Options

CONFIG_CPU_CORTEX_M4=y
CONFIG_CPU_CORTEX_M_HAS_SYSTICK=y
CONFIG_CPU_CORTEX_M_HAS_BASEPRI=y
CONFIG_CPU_CORTEX_M_HAS_VTOR=y
CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS=y
CONFIG_ARMV7_M_ARMV8_M_MAINLINE=y
CONFIG_ARMV7_M_ARMV8_M_FP=y
CONFIG_XIP=y

#
# ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 options
#
CONFIG_GEN_ISR_TABLES=y
# CONFIG_ZERO_LATENCY_IRQS is not set
# end of ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 options

CONFIG_GEN_IRQ_VECTOR_TABLE=y
CONFIG_ARM_MPU=y
CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE=32
# CONFIG_MPU_STACK_GUARD is not set
# CONFIG_MPU_ALLOW_FLASH_WRITE is not set
# CONFIG_CUSTOM_SECTION_ALIGN is not set
CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE=32
CONFIG_ARCH="arm"
# end of ARM Options

# CONFIG_ARC is not set
CONFIG_ARM=y
# CONFIG_X86 is not set
# CONFIG_NIOS2 is not set
# CONFIG_RISCV is not set
# CONFIG_XTENSA is not set
# CONFIG_ARCH_POSIX is not set

#
# General Architecture Options
#
# CONFIG_ARCH_LOG_LEVEL_OFF is not set
# CONFIG_ARCH_LOG_LEVEL_ERR is not set
# CONFIG_ARCH_LOG_LEVEL_WRN is not set
CONFIG_ARCH_LOG_LEVEL_INF=y
# CONFIG_ARCH_LOG_LEVEL_DBG is not set
CONFIG_ARCH_LOG_LEVEL=3
# CONFIG_MPU_LOG_LEVEL_OFF is not set
# CONFIG_MPU_LOG_LEVEL_ERR is not set
# CONFIG_MPU_LOG_LEVEL_WRN is not set
CONFIG_MPU_LOG_LEVEL_INF=y
# CONFIG_MPU_LOG_LEVEL_DBG is not set
CONFIG_MPU_LOG_LEVEL=3
# CONFIG_HW_STACK_PROTECTION is not set
# CONFIG_USERSPACE is not set
CONFIG_PRIVILEGED_STACK_SIZE=1024
CONFIG_PRIVILEGED_STACK_TEXT_AREA=256
CONFIG_KOBJECT_TEXT_AREA=256
# CONFIG_STACK_GROWS_UP is not set

#
# Interrupt Configuration
#
# CONFIG_DYNAMIC_INTERRUPTS is not set
CONFIG_GEN_SW_ISR_TABLE=y
CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0
CONFIG_GEN_IRQ_START_VECTOR=0
# end of Interrupt Configuration
# end of General Architecture Options

CONFIG_ARCH_HAS_STACK_PROTECTION=y
CONFIG_ARCH_HAS_USERSPACE=y
CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT=y
CONFIG_ARCH_HAS_RAMFUNC_SUPPORT=y
CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION=y
CONFIG_ARCH_HAS_THREAD_ABORT=y
CONFIG_CPU_HAS_FPU=y
CONFIG_CPU_HAS_MPU=y
CONFIG_MEMORY_PROTECTION=y
CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT=y

#
# General Kernel Options
#
# CONFIG_KERNEL_LOG_LEVEL_OFF is not set
# CONFIG_KERNEL_LOG_LEVEL_ERR is not set
# CONFIG_KERNEL_LOG_LEVEL_WRN is not set
CONFIG_KERNEL_LOG_LEVEL_INF=y
# CONFIG_KERNEL_LOG_LEVEL_DBG is not set
CONFIG_KERNEL_LOG_LEVEL=3
CONFIG_MULTITHREADING=y
CONFIG_NUM_COOP_PRIORITIES=16
CONFIG_NUM_PREEMPT_PRIORITIES=15
CONFIG_MAIN_THREAD_PRIORITY=0
CONFIG_COOP_ENABLED=y
CONFIG_PREEMPT_ENABLED=y
CONFIG_PRIORITY_CEILING=0
CONFIG_NUM_METAIRQ_PRIORITIES=0
# CONFIG_SCHED_DEADLINE is not set
# CONFIG_SCHED_CPU_MASK is not set
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_IDLE_STACK_SIZE=320
CONFIG_THREAD_STACK_INFO=y
# CONFIG_THREAD_CUSTOM_DATA is not set
CONFIG_ERRNO=y
CONFIG_SCHED_DUMB=y
# CONFIG_SCHED_SCALABLE is not set
# CONFIG_SCHED_MULTIQ is not set
# CONFIG_WAITQ_SCALABLE is not set
CONFIG_WAITQ_DUMB=y

#
# Kernel Debugging and Metrics
#
# CONFIG_INIT_STACKS is not set
# CONFIG_KERNEL_DEBUG is not set
CONFIG_BOOT_BANNER=y
CONFIG_BOOT_DELAY=0
# CONFIG_EXECUTION_BENCHMARKING is not set
CONFIG_THREAD_MONITOR=y
CONFIG_THREAD_NAME=y
CONFIG_THREAD_MAX_NAME_LEN=32
# end of Kernel Debugging and Metrics

#
# Work Queue Options
#
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1024
CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1
CONFIG_OFFLOAD_WORKQUEUE_STACK_SIZE=1024
CONFIG_OFFLOAD_WORKQUEUE_PRIORITY=-1
# end of Work Queue Options

#
# Atomic Operations
#
CONFIG_ATOMIC_OPERATIONS_BUILTIN=y
# end of Atomic Operations

#
# Timer API Options
#
CONFIG_TIMESLICING=y
CONFIG_TIMESLICE_SIZE=0
CONFIG_TIMESLICE_PRIORITY=0
CONFIG_POLL=y
# end of Timer API Options

#
# Other Kernel Object Options
#
CONFIG_NUM_MBOX_ASYNC_MSGS=10
CONFIG_NUM_PIPE_ASYNC_MSGS=10
CONFIG_HEAP_MEM_POOL_SIZE=0
# end of Other Kernel Object Options

CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN=y
CONFIG_SWAP_NONATOMIC=y
CONFIG_SYS_CLOCK_EXISTS=y

#
# Initialization Priorities
#
CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40
CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50
CONFIG_APPLICATION_INIT_PRIORITY=90
# end of Initialization Priorities

#
# Security Options
#
# CONFIG_STACK_CANARIES is not set
CONFIG_STACK_POINTER_RANDOM=0
# end of Security Options

#
# SMP Options
#
CONFIG_MP_NUM_CPUS=1
# CONFIG_SCHED_IPI_SUPPORTED is not set
# end of SMP Options

CONFIG_TICKLESS_IDLE=y
CONFIG_TICKLESS_IDLE_THRESH=3
CONFIG_TICKLESS_KERNEL=y
# CONFIG_DEVICE_POWER_MANAGEMENT is not set
# end of General Kernel Options

CONFIG_HAS_DTS=y
CONFIG_HAS_DTS_GPIO=y

#
# Device Drivers
#
# CONFIG_IEEE802154 is not set
CONFIG_UART_CONSOLE_ON_DEV_NAME="UART_3"
CONFIG_CONSOLE=y
CONFIG_CONSOLE_INPUT_MAX_LINE_LEN=128
CONFIG_CONSOLE_HAS_DRIVER=y
# CONFIG_CONSOLE_HANDLER is not set
CONFIG_UART_CONSOLE=y
CONFIG_UART_CONSOLE_INIT_PRIORITY=60
# CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS is not set
# CONFIG_UART_CONSOLE_MCUMGR is not set
# CONFIG_USB_UART_CONSOLE is not set
# CONFIG_RAM_CONSOLE is not set
# CONFIG_IPM_CONSOLE_SENDER is not set
# CONFIG_IPM_CONSOLE_RECEIVER is not set
# CONFIG_UART_PIPE is not set
# CONFIG_UART_MCUMGR is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_OFF is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_ERR is not set
# CONFIG_UART_CONSOLE_LOG_LEVEL_WRN is not set
CONFIG_UART_CONSOLE_LOG_LEVEL_INF=y
# CONFIG_UART_CONSOLE_LOG_LEVEL_DBG is not set
CONFIG_UART_CONSOLE_LOG_LEVEL=3

#
# Ethernet Drivers
#
# CONFIG_ETHERNET_LOG_LEVEL_OFF is not set
# CONFIG_ETHERNET_LOG_LEVEL_ERR is not set
# CONFIG_ETHERNET_LOG_LEVEL_WRN is not set
# CONFIG_ETHERNET_LOG_LEVEL_INF is not set
CONFIG_ETHERNET_LOG_LEVEL_DBG=y
# CONFIG_ETHERNET_LOG_LEVEL_DEFAULT is not set
CONFIG_ETHERNET_LOG_LEVEL=4
CONFIG_ETH_INIT_PRIORITY=80
CONFIG_ETH_STM32_HAL_NAME="ETH_0"
CONFIG_ETH_STM32_HAL_IRQ_PRI=0
CONFIG_ETH_STM32_HAL_RX_THREAD_STACK_SIZE=1500
CONFIG_ETH_STM32_HAL_RX_THREAD_PRIO=2
CONFIG_ETH_STM32_HAL_PHY_ADDRESS=0
# CONFIG_ETH_STM32_HAL_RANDOM_MAC is not set
CONFIG_ETH_STM32_HAL_MAC3=0
CONFIG_ETH_STM32_HAL_MAC4=0
CONFIG_ETH_STM32_HAL_MAC5=0
# CONFIG_ETH_STM32_HAL_MII is not set
CONFIG_ETH_STM32_CARRIER_CHECK_RX_IDLE_TIMEOUT_MS=500
# CONFIG_ETH_SMSC911X is not set
# CONFIG_ETH_STELLARIS is not set
# CONFIG_ETH_LITEETH is not set
# end of Ethernet Drivers

# CONFIG_SLIP is not set
# CONFIG_NET_LOOPBACK is not set
CONFIG_SERIAL=y

#
# Capabilities
#
CONFIG_SERIAL_HAS_DRIVER=y
CONFIG_SERIAL_SUPPORT_INTERRUPT=y
CONFIG_UART_INTERRUPT_DRIVEN=y
# CONFIG_UART_LINE_CTRL is not set
# CONFIG_UART_DRV_CMD is not set

#
# Serial Drivers
#
# CONFIG_UART_NSIM is not set
# CONFIG_UART_1 is not set
# CONFIG_UART_2 is not set
# CONFIG_UART_4 is not set
# CONFIG_UART_5 is not set
# CONFIG_UART_7 is not set
# CONFIG_UART_8 is not set
# CONFIG_UART_9 is not set
# CONFIG_UART_10 is not set
# CONFIG_UART_ALTERA_JTAG is not set
# CONFIG_UART_PL011 is not set

#
# Interrupt Controllers
#
CONFIG_EXTI_STM32=y
CONFIG_EXTI_STM32_EXTI0_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI1_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI2_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI3_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI4_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI9_5_IRQ_PRI=0
CONFIG_EXTI_STM32_EXTI15_10_IRQ_PRI=0
CONFIG_EXTI_STM32_PVD_IRQ_PRI=0
CONFIG_EXTI_STM32_OTG_FS_WKUP_IRQ_PRI=0
CONFIG_EXTI_STM32_TAMP_STAMP_IRQ_PRI=0
CONFIG_EXTI_STM32_RTC_WKUP_IRQ_PRI=0
# CONFIG_MULTI_LEVEL_INTERRUPTS is not set
# end of Interrupt Controllers

#
# Timer Drivers
#
# CONFIG_SYSTEM_CLOCK_DISABLE is not set
# CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME is not set
# CONFIG_SYSTEM_CLOCK_SLOPPY_IDLE is not set
CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0
CONFIG_TICKLESS_CAPABLE=y
# end of Timer Drivers

CONFIG_ENTROPY_GENERATOR=y
CONFIG_ENTROPY_HAS_DRIVER=y
CONFIG_ENTROPY_NAME="ENTROPY_0"
# CONFIG_GPIO_LOG_LEVEL_OFF is not set
# CONFIG_GPIO_LOG_LEVEL_ERR is not set
# CONFIG_GPIO_LOG_LEVEL_WRN is not set
CONFIG_GPIO_LOG_LEVEL_INF=y
# CONFIG_GPIO_LOG_LEVEL_DBG is not set
CONFIG_GPIO_LOG_LEVEL=3
# CONFIG_GPIO_SHELL is not set
# CONFIG_GPIO_DW is not set
# CONFIG_GPIO_INTEL_APL is not set
# CONFIG_SHARED_IRQ is not set
# CONFIG_I2C is not set
# CONFIG_I2S is not set
# CONFIG_PWM is not set
CONFIG_PINMUX=y
CONFIG_PINMUX_NAME="PINMUX"
CONFIG_PINMUX_INIT_PRIORITY=45
CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY=2
# CONFIG_ADC is not set
# CONFIG_CLOCK_CONTROL_LOG_LEVEL_OFF is not set
# CONFIG_CLOCK_CONTROL_LOG_LEVEL_ERR is not set
# CONFIG_CLOCK_CONTROL_LOG_LEVEL_WRN is not set
CONFIG_CLOCK_CONTROL_LOG_LEVEL_INF=y
# CONFIG_CLOCK_CONTROL_LOG_LEVEL_DBG is not set
CONFIG_CLOCK_CONTROL_LOG_LEVEL=3
CONFIG_CLOCK_CONTROL_STM32_DEVICE_INIT_PRIORITY=1
# CONFIG_CLOCK_STM32_SYSCLK_SRC_HSE is not set
# CONFIG_CLOCK_STM32_SYSCLK_SRC_HSI is not set
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
CONFIG_CLOCK_STM32_HSE_BYPASS=y
CONFIG_CLOCK_STM32_HSE_CLOCK=8000000
# CONFIG_CLOCK_STM32_PLL_SRC_HSI is not set
CONFIG_CLOCK_STM32_PLL_SRC_HSE=y
CONFIG_CLOCK_STM32_PLL_M_DIVISOR=8
CONFIG_CLOCK_STM32_PLL_N_MULTIPLIER=336
CONFIG_CLOCK_STM32_PLL_P_DIVISOR=2
CONFIG_CLOCK_STM32_PLL_Q_DIVISOR=7
CONFIG_CLOCK_STM32_AHB_PRESCALER=1
CONFIG_CLOCK_STM32_APB1_PRESCALER=4
CONFIG_CLOCK_STM32_APB2_PRESCALER=2
CONFIG_CLOCK_STM32_MCO1_SRC_NOCLOCK=y
# CONFIG_CLOCK_STM32_MCO1_SRC_LSE is not set
# CONFIG_CLOCK_STM32_MCO1_SRC_HSE is not set
# CONFIG_CLOCK_STM32_MCO1_SRC_HSI is not set
# CONFIG_CLOCK_STM32_MCO1_SRC_PLLCLK is not set
CONFIG_CLOCK_STM32_MCO2_SRC_NOCLOCK=y
# CONFIG_CLOCK_STM32_MCO2_SRC_SYSCLK is not set
# CONFIG_CLOCK_STM32_MCO2_SRC_PLLI2S is not set
# CONFIG_CLOCK_STM32_MCO2_SRC_HSE is not set
# CONFIG_CLOCK_STM32_MCO2_SRC_PLLCLK is not set
# CONFIG_PTP_CLOCK is not set
# CONFIG_IPM is not set
# CONFIG_IPM_NRF_SINGLE_INSTANCE is not set
# CONFIG_IPM_LOG_LEVEL_OFF is not set
# CONFIG_IPM_LOG_LEVEL_ERR is not set
# CONFIG_IPM_LOG_LEVEL_WRN is not set
CONFIG_IPM_LOG_LEVEL_INF=y
# CONFIG_IPM_LOG_LEVEL_DBG is not set
CONFIG_IPM_LOG_LEVEL=3
# CONFIG_FLASH is not set
# CONFIG_SENSOR is not set
# CONFIG_COUNTER is not set
# CONFIG_DMA is not set
# CONFIG_USB is not set
# CONFIG_CRYPTO is not set
# CONFIG_DISPLAY is not set
# CONFIG_LED_STRIP is not set
# CONFIG_WIFI is not set
# CONFIG_LED is not set
# CONFIG_CAN is not set
# CONFIG_MODEM is not set
# CONFIG_AUDIO is not set
# CONFIG_NEURAL_NET_ACCEL is not set
# CONFIG_HWINFO is not set
# CONFIG_ESPI is not set
# CONFIG_PS2 is not set
# CONFIG_KSCAN is not set
# CONFIG_VIDEO is not set
# CONFIG_EEPROM is not set
# end of Device Drivers

#
# C Library
#
CONFIG_MINIMAL_LIBC=y
# CONFIG_NEWLIB_LIBC is not set
# CONFIG_EXTERNAL_LIBC is not set
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0
# CONFIG_MINIMAL_LIBC_LL_PRINTF is not set
CONFIG_STDOUT_CONSOLE=y
# end of C Library

#
# Additional libraries
#
# CONFIG_LVGL is not set

#
# OS Support Library
#
# CONFIG_JSON_LIBRARY is not set
CONFIG_RING_BUFFER=y
# CONFIG_BASE64 is not set
# end of OS Support Library

CONFIG_POSIX_MAX_FDS=20
# CONFIG_POSIX_API is not set
# CONFIG_PTHREAD_IPC is not set
# CONFIG_POSIX_CLOCK is not set
CONFIG_MAX_TIMER_COUNT=5
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_UPDATEHUB is not set
# CONFIG_UPDATEHUB_LOG_LEVEL_OFF is not set
# CONFIG_UPDATEHUB_LOG_LEVEL_ERR is not set
# CONFIG_UPDATEHUB_LOG_LEVEL_WRN is not set
CONFIG_UPDATEHUB_LOG_LEVEL_INF=y
# CONFIG_UPDATEHUB_LOG_LEVEL_DBG is not set
CONFIG_UPDATEHUB_LOG_LEVEL=3
# end of Additional libraries

# CONFIG_BT is not set
# CONFIG_CONSOLE_SUBSYS is not set
# CONFIG_CPLUSPLUS is not set

#
# System Monitoring Options
#
# CONFIG_BOOT_TIME_MEASUREMENT is not set
# CONFIG_STATS is not set
# end of System Monitoring Options

#
# Debugging Options
#
CONFIG_DEBUG=y
# CONFIG_TRACING is not set
# CONFIG_STACK_USAGE is not set
CONFIG_STACK_SENTINEL=y
CONFIG_PRINTK=y
CONFIG_EARLY_CONSOLE=y
# CONFIG_ASSERT is not set
# CONFIG_FORCE_NO_ASSERT is not set
# CONFIG_ASSERT_NO_FILE_INFO is not set
# CONFIG_OBJECT_TRACING is not set
# CONFIG_OVERRIDE_FRAME_POINTER_DEFAULT is not set
CONFIG_DEBUG_INFO=y
CONFIG_EXCEPTION_STACK_TRACE=y
CONFIG_OPENOCD_SUPPORT=y
# CONFIG_TRACING_CPU_STATS is not set
# CONFIG_TRACING_CTF is not set
CONFIG_HAS_SEGGER_RTT=y
# CONFIG_USE_SEGGER_RTT is not set
# end of Debugging Options

# CONFIG_DISK_ACCESS is not set

#
# File Systems
#
# CONFIG_FILE_SYSTEM is not set
# CONFIG_NVS is not set
# end of File Systems

CONFIG_LOG=y
# CONFIG_LOG_MINIMAL is not set
CONFIG_LOG_RUNTIME_FILTERING=y
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_LOG_OVERRIDE_LEVEL=0
CONFIG_LOG_MAX_LEVEL=4
# CONFIG_LOG_MIPI_SYST_ENABLE is not set

#
# Prepend log message with function name
#
# CONFIG_LOG_FUNC_NAME_PREFIX_ERR is not set
# CONFIG_LOG_FUNC_NAME_PREFIX_WRN is not set
# CONFIG_LOG_FUNC_NAME_PREFIX_INF is not set
CONFIG_LOG_FUNC_NAME_PREFIX_DBG=y
# end of Prepend log message with function name

# CONFIG_LOG_PRINTK is not set
# CONFIG_LOG_IMMEDIATE is not set
# CONFIG_LOG_ENABLE_FANCY_OUTPUT_FORMATTING is not set
CONFIG_LOG_MODE_OVERFLOW=y
# CONFIG_LOG_MODE_NO_OVERFLOW is not set
# CONFIG_LOG_BLOCK_IN_THREAD is not set
CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD=10
CONFIG_LOG_PROCESS_THREAD=y
CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=1000
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=768
CONFIG_LOG_BUFFER_SIZE=1024
CONFIG_LOG_DETECT_MISSED_STRDUP=y
CONFIG_LOG_STRDUP_MAX_STRING=46
CONFIG_LOG_STRDUP_BUF_COUNT=4
# CONFIG_LOG_STRDUP_POOL_PROFILING is not set
CONFIG_LOG_DOMAIN_ID=0
CONFIG_LOG_CMDS=y
# CONFIG_LOG_FRONTEND is not set
# CONFIG_LOG_BACKEND_UART is not set
# CONFIG_LOG_BACKEND_SWO is not set
# CONFIG_LOG_BACKEND_NET is not set

#
# Management
#
# CONFIG_MCUMGR_SMP_BT is not set
# CONFIG_MCUMGR_SMP_SHELL is not set
# CONFIG_MCUMGR_SMP_UART is not set
# CONFIG_MCUMGR is not set
# end of Management

#
# Networking
#
CONFIG_NET_BUF=y
CONFIG_NET_BUF_USER_DATA_SIZE=4
# CONFIG_NET_BUF_LOG is not set
# CONFIG_NET_BUF_LOG_LEVEL_OFF is not set
# CONFIG_NET_BUF_LOG_LEVEL_ERR is not set
# CONFIG_NET_BUF_LOG_LEVEL_WRN is not set
CONFIG_NET_BUF_LOG_LEVEL_INF=y
# CONFIG_NET_BUF_LOG_LEVEL_DBG is not set
CONFIG_NET_BUF_LOG_LEVEL=3
CONFIG_NET_BUF_POOL_USAGE=y
CONFIG_NETWORKING=y
# CONFIG_NET_HOSTNAME_ENABLE is not set

#
# Link layer options
#
# CONFIG_NET_L2_DUMMY is not set
# CONFIG_NET_L2_BT_SHELL is not set
# CONFIG_NET_L2_ETHERNET_LOG_LEVEL_OFF is not set
# CONFIG_NET_L2_ETHERNET_LOG_LEVEL_ERR is not set
# CONFIG_NET_L2_ETHERNET_LOG_LEVEL_WRN is not set
CONFIG_NET_L2_ETHERNET_LOG_LEVEL_INF=y
# CONFIG_NET_L2_ETHERNET_LOG_LEVEL_DBG is not set
# CONFIG_NET_L2_ETHERNET_LOG_LEVEL_DEFAULT is not set
CONFIG_NET_L2_ETHERNET_LOG_LEVEL=3
# CONFIG_NET_L2_ETHERNET_MGMT is not set
# CONFIG_NET_VLAN is not set
CONFIG_NET_ARP=y
CONFIG_NET_ARP_TABLE_SIZE=10
CONFIG_NET_ARP_GRATUITOUS=y
# CONFIG_NET_ARP_LOG_LEVEL_OFF is not set
# CONFIG_NET_ARP_LOG_LEVEL_ERR is not set
# CONFIG_NET_ARP_LOG_LEVEL_WRN is not set
CONFIG_NET_ARP_LOG_LEVEL_INF=y
# CONFIG_NET_ARP_LOG_LEVEL_DBG is not set
# CONFIG_NET_ARP_LOG_LEVEL_DEFAULT is not set
CONFIG_NET_ARP_LOG_LEVEL=3
# CONFIG_NET_GPTP is not set
# CONFIG_NET_LLDP is not set
# CONFIG_NET_L2_PPP is not set
# CONFIG_NET_L2_CANBUS_RAW is not set
# CONFIG_NET_L2_WIFI_MGMT is not set
# CONFIG_NET_L2_WIFI_SHELL is not set
# end of Link layer options

#
# IP stack
#
CONFIG_NET_NATIVE=y
CONFIG_NET_NATIVE_IPV6=y
CONFIG_NET_NATIVE_IPV4=y
CONFIG_NET_NATIVE_TCP=y
CONFIG_NET_NATIVE_UDP=y
# CONFIG_NET_OFFLOAD is not set
CONFIG_NET_INIT_PRIO=90
CONFIG_NET_IPV6=y
CONFIG_NET_IF_MAX_IPV6_COUNT=1
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=3
CONFIG_NET_IF_MCAST_IPV6_ADDR_COUNT=4
CONFIG_NET_IF_IPV6_PREFIX_COUNT=2
CONFIG_NET_INITIAL_HOP_LIMIT=64
CONFIG_NET_IPV6_MAX_NEIGHBORS=8
# CONFIG_NET_IPV6_FRAGMENT is not set
CONFIG_NET_IPV6_MLD=y
CONFIG_NET_IPV6_NBR_CACHE=y
CONFIG_NET_IPV6_ND=y
CONFIG_NET_IPV6_DAD=y
CONFIG_NET_IPV6_RA_RDNSS=y
# CONFIG_NET_6LO is not set
# CONFIG_NET_IPV6_LOG_LEVEL_OFF is not set
# CONFIG_NET_IPV6_LOG_LEVEL_ERR is not set
# CONFIG_NET_IPV6_LOG_LEVEL_WRN is not set
# CONFIG_NET_IPV6_LOG_LEVEL_INF is not set
# CONFIG_NET_IPV6_LOG_LEVEL_DBG is not set
CONFIG_NET_IPV6_LOG_LEVEL_DEFAULT=y
CONFIG_NET_IPV6_LOG_LEVEL=3
# CONFIG_NET_ICMPV6_LOG_LEVEL_OFF is not set
# CONFIG_NET_ICMPV6_LOG_LEVEL_ERR is not set
# CONFIG_NET_ICMPV6_LOG_LEVEL_WRN is not set
# CONFIG_NET_ICMPV6_LOG_LEVEL_INF is not set
# CONFIG_NET_ICMPV6_LOG_LEVEL_DBG is not set
CONFIG_NET_ICMPV6_LOG_LEVEL_DEFAULT=y
CONFIG_NET_ICMPV6_LOG_LEVEL=3
# CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_OFF is not set
# CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_ERR is not set
# CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_WRN is not set
# CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_INF is not set
# CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_DBG is not set
CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL_DEFAULT=y
CONFIG_NET_IPV6_NBR_CACHE_LOG_LEVEL=3
CONFIG_NET_IPV4=y
CONFIG_NET_INITIAL_TTL=64
CONFIG_NET_IF_MAX_IPV4_COUNT=1
CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=1
CONFIG_NET_IF_MCAST_IPV4_ADDR_COUNT=1
# CONFIG_NET_ICMPV4_ACCEPT_BROADCAST is not set
# CONFIG_NET_IPV4_ACCEPT_ZERO_BROADCAST is not set
CONFIG_NET_DHCPV4=y
CONFIG_NET_DHCPV4_INITIAL_DELAY_MAX=10
# CONFIG_NET_IPV4_AUTO is not set
# CONFIG_NET_IPV4_LOG_LEVEL_OFF is not set
# CONFIG_NET_IPV4_LOG_LEVEL_ERR is not set
# CONFIG_NET_IPV4_LOG_LEVEL_WRN is not set
# CONFIG_NET_IPV4_LOG_LEVEL_INF is not set
# CONFIG_NET_IPV4_LOG_LEVEL_DBG is not set
CONFIG_NET_IPV4_LOG_LEVEL_DEFAULT=y
CONFIG_NET_IPV4_LOG_LEVEL=3
# CONFIG_NET_ICMPV4_LOG_LEVEL_OFF is not set
# CONFIG_NET_ICMPV4_LOG_LEVEL_ERR is not set
# CONFIG_NET_ICMPV4_LOG_LEVEL_WRN is not set
# CONFIG_NET_ICMPV4_LOG_LEVEL_INF is not set
# CONFIG_NET_ICMPV4_LOG_LEVEL_DBG is not set
CONFIG_NET_ICMPV4_LOG_LEVEL_DEFAULT=y
CONFIG_NET_ICMPV4_LOG_LEVEL=3
# CONFIG_NET_DHCPV4_LOG_LEVEL_OFF is not set
# CONFIG_NET_DHCPV4_LOG_LEVEL_ERR is not set
# CONFIG_NET_DHCPV4_LOG_LEVEL_WRN is not set
# CONFIG_NET_DHCPV4_LOG_LEVEL_INF is not set
# CONFIG_NET_DHCPV4_LOG_LEVEL_DBG is not set
CONFIG_NET_DHCPV4_LOG_LEVEL_DEFAULT=y
CONFIG_NET_DHCPV4_LOG_LEVEL=3
CONFIG_NET_SHELL=y
CONFIG_NET_SHELL_DYN_CMD_COMPLETION=y
CONFIG_NET_TC_TX_COUNT=1
CONFIG_NET_TC_RX_COUNT=1
CONFIG_NET_TC_MAPPING_STRICT=y
CONFIG_NET_TX_DEFAULT_PRIORITY=1
CONFIG_NET_RX_DEFAULT_PRIORITY=0
CONFIG_NET_IP_ADDR_CHECK=y
CONFIG_NET_MAX_ROUTERS=2
CONFIG_NET_ROUTE=y
CONFIG_NET_MAX_ROUTES=8
CONFIG_NET_MAX_NEXTHOPS=8
CONFIG_NET_TCP=y
CONFIG_NET_TCP_CHECKSUM=y
# CONFIG_NET_TCP_LOG_LEVEL_OFF is not set
# CONFIG_NET_TCP_LOG_LEVEL_ERR is not set
# CONFIG_NET_TCP_LOG_LEVEL_WRN is not set
# CONFIG_NET_TCP_LOG_LEVEL_INF is not set
# CONFIG_NET_TCP_LOG_LEVEL_DBG is not set
CONFIG_NET_TCP_LOG_LEVEL_DEFAULT=y
CONFIG_NET_TCP_LOG_LEVEL=3
CONFIG_NET_TCP_BACKLOG_SIZE=10
# CONFIG_NET_TCP_AUTO_ACCEPT is not set
CONFIG_NET_TCP_TIME_WAIT_DELAY=0
CONFIG_NET_TCP_ACK_TIMEOUT=1000
CONFIG_NET_TCP_INIT_RETRANSMISSION_TIMEOUT=200
CONFIG_NET_TCP_RETRY_COUNT=9
CONFIG_NET_TCP1=y
# CONFIG_NET_TCP2 is not set
# CONFIG_NET_TEST_PROTOCOL is not set
CONFIG_NET_UDP=y
CONFIG_NET_UDP_CHECKSUM=y
# CONFIG_NET_UDP_MISSING_CHECKSUM is not set
# CONFIG_NET_UDP_LOG_LEVEL_OFF is not set
# CONFIG_NET_UDP_LOG_LEVEL_ERR is not set
# CONFIG_NET_UDP_LOG_LEVEL_WRN is not set
# CONFIG_NET_UDP_LOG_LEVEL_INF is not set
# CONFIG_NET_UDP_LOG_LEVEL_DBG is not set
CONFIG_NET_UDP_LOG_LEVEL_DEFAULT=y
CONFIG_NET_UDP_LOG_LEVEL=3
CONFIG_NET_MAX_CONN=20
CONFIG_NET_MAX_CONTEXTS=20
CONFIG_NET_CONTEXT_NET_PKT_POOL=y
CONFIG_NET_CONTEXT_SYNC_RECV=y
CONFIG_NET_CONTEXT_CHECK=y
# CONFIG_NET_CONTEXT_PRIORITY is not set
# CONFIG_NET_CONTEXT_TIMESTAMP is not set
# CONFIG_NET_CONTEXT_TXTIME is not set
# CONFIG_NET_TEST is not set
# CONFIG_NET_TRICKLE is not set
CONFIG_NET_PKT_RX_COUNT=96
CONFIG_NET_PKT_TX_COUNT=96
CONFIG_NET_BUF_RX_COUNT=128
CONFIG_NET_BUF_TX_COUNT=128
CONFIG_NET_BUF_FIXED_DATA_SIZE=y
# CONFIG_NET_BUF_VARIABLE_DATA_SIZE is not set
CONFIG_NET_BUF_DATA_SIZE=128
CONFIG_NET_DEFAULT_IF_FIRST=y
# CONFIG_NET_DEFAULT_IF_ETHERNET is not set
# CONFIG_NET_PKT_TIMESTAMP is not set
# CONFIG_NET_PKT_TXTIME is not set
# CONFIG_NET_PKT_RXTIME_STATS is not set
# CONFIG_NET_PKT_TXTIME_STATS is not set
# CONFIG_NET_PROMISCUOUS_MODE is not set

#
# Stack usage
#
CONFIG_NET_TX_STACK_SIZE=1200
CONFIG_NET_RX_STACK_SIZE=1500
# end of Stack usage

CONFIG_NET_MGMT=y
CONFIG_NET_MGMT_EVENT=y
CONFIG_NET_MGMT_EVENT_STACK_SIZE=768
CONFIG_NET_MGMT_EVENT_THREAD_PRIO=7
CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=2
# CONFIG_NET_MGMT_EVENT_INFO is not set
# CONFIG_NET_MGMT_EVENT_LOG_LEVEL_OFF is not set
# CONFIG_NET_MGMT_EVENT_LOG_LEVEL_ERR is not set
# CONFIG_NET_MGMT_EVENT_LOG_LEVEL_WRN is not set
# CONFIG_NET_MGMT_EVENT_LOG_LEVEL_INF is not set
# CONFIG_NET_MGMT_EVENT_LOG_LEVEL_DBG is not set
CONFIG_NET_MGMT_EVENT_LOG_LEVEL_DEFAULT=y
CONFIG_NET_MGMT_EVENT_LOG_LEVEL=3
# CONFIG_NET_DEBUG_MGMT_EVENT_STACK is not set
CONFIG_NET_STATISTICS=y
# CONFIG_NET_STATISTICS_LOG_LEVEL_OFF is not set
# CONFIG_NET_STATISTICS_LOG_LEVEL_ERR is not set
# CONFIG_NET_STATISTICS_LOG_LEVEL_WRN is not set
# CONFIG_NET_STATISTICS_LOG_LEVEL_INF is not set
# CONFIG_NET_STATISTICS_LOG_LEVEL_DBG is not set
CONFIG_NET_STATISTICS_LOG_LEVEL_DEFAULT=y
CONFIG_NET_STATISTICS_LOG_LEVEL=3
CONFIG_NET_STATISTICS_PER_INTERFACE=y
# CONFIG_NET_STATISTICS_USER_API is not set
# CONFIG_NET_STATISTICS_PERIODIC_OUTPUT is not set
CONFIG_NET_STATISTICS_IPV4=y
CONFIG_NET_STATISTICS_IPV6=y
CONFIG_NET_STATISTICS_IPV6_ND=y
CONFIG_NET_STATISTICS_ICMP=y
CONFIG_NET_STATISTICS_UDP=y
CONFIG_NET_STATISTICS_TCP=y
CONFIG_NET_STATISTICS_MLD=y
CONFIG_NET_STATISTICS_ETHERNET=y
# CONFIG_NET_STATISTICS_ETHERNET_VENDOR is not set
CONFIG_NET_LOG=y
# CONFIG_NET_PKT_LOG_LEVEL_OFF is not set
# CONFIG_NET_PKT_LOG_LEVEL_ERR is not set
# CONFIG_NET_PKT_LOG_LEVEL_WRN is not set
CONFIG_NET_PKT_LOG_LEVEL_INF=y
# CONFIG_NET_PKT_LOG_LEVEL_DBG is not set
# CONFIG_NET_PKT_LOG_LEVEL_DEFAULT is not set
CONFIG_NET_PKT_LOG_LEVEL=3
CONFIG_NET_DEBUG_NET_PKT_ALLOC=y
CONFIG_NET_DEBUG_NET_PKT_EXTERNALS=0
# CONFIG_NET_DEBUG_NET_PKT_NON_FRAGILE_ACCESS is not set
# CONFIG_NET_CORE_LOG_LEVEL_OFF is not set
# CONFIG_NET_CORE_LOG_LEVEL_ERR is not set
# CONFIG_NET_CORE_LOG_LEVEL_WRN is not set
# CONFIG_NET_CORE_LOG_LEVEL_INF is not set
# CONFIG_NET_CORE_LOG_LEVEL_DBG is not set
CONFIG_NET_CORE_LOG_LEVEL_DEFAULT=y
CONFIG_NET_CORE_LOG_LEVEL=3
# CONFIG_NET_IF_LOG_LEVEL_OFF is not set
# CONFIG_NET_IF_LOG_LEVEL_ERR is not set
# CONFIG_NET_IF_LOG_LEVEL_WRN is not set
# CONFIG_NET_IF_LOG_LEVEL_INF is not set
# CONFIG_NET_IF_LOG_LEVEL_DBG is not set
CONFIG_NET_IF_LOG_LEVEL_DEFAULT=y
CONFIG_NET_IF_LOG_LEVEL=3
# CONFIG_NET_TC_LOG_LEVEL_OFF is not set
# CONFIG_NET_TC_LOG_LEVEL_ERR is not set
# CONFIG_NET_TC_LOG_LEVEL_WRN is not set
# CONFIG_NET_TC_LOG_LEVEL_INF is not set
# CONFIG_NET_TC_LOG_LEVEL_DBG is not set
CONFIG_NET_TC_LOG_LEVEL_DEFAULT=y
CONFIG_NET_TC_LOG_LEVEL=3
# CONFIG_NET_UTILS_LOG_LEVEL_OFF is not set
# CONFIG_NET_UTILS_LOG_LEVEL_ERR is not set
# CONFIG_NET_UTILS_LOG_LEVEL_WRN is not set
# CONFIG_NET_UTILS_LOG_LEVEL_INF is not set
# CONFIG_NET_UTILS_LOG_LEVEL_DBG is not set
CONFIG_NET_UTILS_LOG_LEVEL_DEFAULT=y
CONFIG_NET_UTILS_LOG_LEVEL=3
# CONFIG_NET_CONTEXT_LOG_LEVEL_OFF is not set
# CONFIG_NET_CONTEXT_LOG_LEVEL_ERR is not set
# CONFIG_NET_CONTEXT_LOG_LEVEL_WRN is not set
# CONFIG_NET_CONTEXT_LOG_LEVEL_INF is not set
# CONFIG_NET_CONTEXT_LOG_LEVEL_DBG is not set
CONFIG_NET_CONTEXT_LOG_LEVEL_DEFAULT=y
CONFIG_NET_CONTEXT_LOG_LEVEL=3
# CONFIG_NET_CONN_LOG_LEVEL_OFF is not set
# CONFIG_NET_CONN_LOG_LEVEL_ERR is not set
# CONFIG_NET_CONN_LOG_LEVEL_WRN is not set
# CONFIG_NET_CONN_LOG_LEVEL_INF is not set
# CONFIG_NET_CONN_LOG_LEVEL_DBG is not set
CONFIG_NET_CONN_LOG_LEVEL_DEFAULT=y
CONFIG_NET_CONN_LOG_LEVEL=3
# CONFIG_NET_ROUTE_LOG_LEVEL_OFF is not set
# CONFIG_NET_ROUTE_LOG_LEVEL_ERR is not set
# CONFIG_NET_ROUTE_LOG_LEVEL_WRN is not set
# CONFIG_NET_ROUTE_LOG_LEVEL_INF is not set
# CONFIG_NET_ROUTE_LOG_LEVEL_DBG is not set
CONFIG_NET_ROUTE_LOG_LEVEL_DEFAULT=y
CONFIG_NET_ROUTE_LOG_LEVEL=3
# end of IP stack

#
# Network Protocols
#
# CONFIG_COAP is not set
# CONFIG_DNS_RESOLVER is not set
# CONFIG_MQTT_LIB is not set
# CONFIG_HTTP_PARSER is not set
# CONFIG_HTTP_PARSER_URL is not set
# CONFIG_HTTP_CLIENT is not set
# CONFIG_NET_HTTP_LOG_LEVEL_OFF is not set
# CONFIG_NET_HTTP_LOG_LEVEL_ERR is not set
# CONFIG_NET_HTTP_LOG_LEVEL_WRN is not set
# CONFIG_NET_HTTP_LOG_LEVEL_INF is not set
# CONFIG_NET_HTTP_LOG_LEVEL_DBG is not set
CONFIG_NET_HTTP_LOG_LEVEL_DEFAULT=y
CONFIG_NET_HTTP_LOG_LEVEL=3
# CONFIG_WEBSOCKET_CLIENT is not set
# CONFIG_LWM2M is not set
# CONFIG_SOCKS is not set
# CONFIG_SNTP is not set
# end of Network Protocols

#
# Network Libraries
#
CONFIG_NET_CONFIG_AUTO_INIT=y
CONFIG_NET_CONFIG_INIT_PRIO=95
CONFIG_NET_CONFIG_INIT_TIMEOUT=30
CONFIG_NET_CONFIG_NEED_IPV6=y
# CONFIG_NET_CONFIG_NEED_IPV6_ROUTER is not set
CONFIG_NET_CONFIG_NEED_IPV4=y
# CONFIG_NET_CONFIG_LOG_LEVEL_OFF is not set
# CONFIG_NET_CONFIG_LOG_LEVEL_ERR is not set
# CONFIG_NET_CONFIG_LOG_LEVEL_WRN is not set
# CONFIG_NET_CONFIG_LOG_LEVEL_INF is not set
# CONFIG_NET_CONFIG_LOG_LEVEL_DBG is not set
CONFIG_NET_CONFIG_LOG_LEVEL_DEFAULT=y
CONFIG_NET_CONFIG_LOG_LEVEL=3
CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_NET_CONFIG_MY_IPV6_ADDR="2001:db8::1"
CONFIG_NET_CONFIG_PEER_IPV6_ADDR="2001:db8::2"
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
CONFIG_NET_CONFIG_MY_IPV4_NETMASK="255.255.255.0"
CONFIG_NET_CONFIG_MY_IPV4_GW=""
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.0.2.2"
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_POSIX_NAMES=y
CONFIG_NET_SOCKETS_POLL_MAX=3
CONFIG_NET_SOCKETS_CONNECT_TIMEOUT=3000
# CONFIG_NET_SOCKETS_SOCKOPT_TLS is not set
# CONFIG_NET_SOCKETS_OFFLOAD is not set
# CONFIG_NET_SOCKETS_PACKET is not set
# CONFIG_NET_SOCKETS_CAN is not set
# CONFIG_NET_SOCKETS_NET_MGMT is not set
# CONFIG_NET_SOCKETS_LOG_LEVEL_OFF is not set
# CONFIG_NET_SOCKETS_LOG_LEVEL_ERR is not set
# CONFIG_NET_SOCKETS_LOG_LEVEL_WRN is not set
# CONFIG_NET_SOCKETS_LOG_LEVEL_INF is not set
# CONFIG_NET_SOCKETS_LOG_LEVEL_DBG is not set
CONFIG_NET_SOCKETS_LOG_LEVEL_DEFAULT=y
CONFIG_NET_SOCKETS_LOG_LEVEL=3
# CONFIG_TLS_CREDENTIALS is not set
# end of Network Libraries

#
# Network additional services
#
# CONFIG_NET_CONNECTION_MANAGER is not set
# end of Network additional services
# end of Networking

CONFIG_SHELL=y
# CONFIG_SHELL_LOG_LEVEL_OFF is not set
# CONFIG_SHELL_LOG_LEVEL_ERR is not set
# CONFIG_SHELL_LOG_LEVEL_WRN is not set
CONFIG_SHELL_LOG_LEVEL_INF=y
# CONFIG_SHELL_LOG_LEVEL_DBG is not set
CONFIG_SHELL_LOG_LEVEL=3
CONFIG_SHELL_BACKENDS=y
CONFIG_SHELL_BACKEND_SERIAL=y
CONFIG_SHELL_PROMPT_UART="uart:~$ "
CONFIG_UART_SHELL_ON_DEV_NAME="UART_3"
CONFIG_SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN=y
CONFIG_SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE=8
CONFIG_SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE=64
CONFIG_SHELL_BACKEND_SERIAL_LOG_MESSAGE_QUEUE_TIMEOUT=100
CONFIG_SHELL_BACKEND_SERIAL_LOG_MESSAGE_QUEUE_SIZE=10
CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT=y
# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG is not set
# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_INF is not set
# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN is not set
# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR is not set
# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE is not set
CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL=5
# CONFIG_SHELL_BACKEND_RTT is not set
# CONFIG_SHELL_BACKEND_TELNET is not set
# CONFIG_SHELL_BACKEND_DUMMY is not set
CONFIG_SHELL_STACK_SIZE=2048
CONFIG_SHELL_BACKSPACE_MODE_DELETE=y
CONFIG_SHELL_CMD_BUFF_SIZE=256
CONFIG_SHELL_PRINTF_BUFF_SIZE=30
CONFIG_SHELL_ARGC_MAX=12
CONFIG_SHELL_WILDCARD=y
CONFIG_SHELL_ECHO_STATUS=y
CONFIG_SHELL_VT100_COLORS=y
CONFIG_SHELL_METAKEYS=y
CONFIG_SHELL_HELP=y
CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=y
CONFIG_SHELL_HISTORY=y
CONFIG_SHELL_HISTORY_BUFFER=512
CONFIG_SHELL_STATS=y
CONFIG_SHELL_CMDS=y
CONFIG_SHELL_CMDS_RESIZE=y
# CONFIG_SHELL_CMDS_SELECT is not set
CONFIG_SHELL_LOG_BACKEND=y
# CONFIG_KERNEL_SHELL is not set
# CONFIG_DEVICE_SHELL is not set
# CONFIG_IMG_MANAGER is not set

#
# Random subsystem
#
CONFIG_ENTROPY_DEVICE_RANDOM_GENERATOR=y
# CONFIG_XOROSHIRO_RANDOM_GENERATOR is not set
CONFIG_CSPRING_ENABLED=y
CONFIG_HARDWARE_DEVICE_CS_GENERATOR=y
# end of Random subsystem

#
# Storage
#
# end of Storage

# CONFIG_SETTINGS is not set

#
# Testing
#
# CONFIG_ZTEST is not set
# CONFIG_ZTEST_MOCKING is not set
# CONFIG_TEST is not set
# CONFIG_TEST_SHELL is not set
CONFIG_TEST_EXTRA_STACKSIZE=0
# CONFIG_TEST_USERSPACE is not set
CONFIG_TEST_ARM_CORTEX_M=y
# end of Testing

# CONFIG_CHARACTER_FRAMEBUFFER is not set
# CONFIG_JWT is not set

#
# External Sources
#

#
# HALs
#
CONFIG_HAS_CMSIS_CORE=y
CONFIG_HAS_CMSIS_CORE_M=y
# end of HALs

#
# Cryptography
#
# end of Cryptography

CONFIG_FNMATCH=y
# end of External Sources

#
# Build and Link Features
#

#
# Linker Options
#
# CONFIG_LINKER_ORPHAN_SECTION_PLACE is not set
CONFIG_LINKER_ORPHAN_SECTION_WARN=y
# CONFIG_LINKER_ORPHAN_SECTION_ERROR is not set
# CONFIG_CODE_DATA_RELOCATION is not set
CONFIG_HAS_FLASH_LOAD_OFFSET=y
# CONFIG_USE_CODE_PARTITION is not set
CONFIG_FLASH_LOAD_OFFSET=0
CONFIG_FLASH_LOAD_SIZE=0
# CONFIG_HAVE_CUSTOM_LINKER_SCRIPT is not set
# CONFIG_CUSTOM_RODATA_LD is not set
# CONFIG_CUSTOM_RWDATA_LD is not set
# CONFIG_CUSTOM_SECTIONS_LD is not set
CONFIG_KERNEL_ENTRY="__start"
CONFIG_LINKER_SORT_BY_ALIGNMENT=y
# end of Linker Options

#
# Compiler Options
#
# CONFIG_NATIVE_APPLICATION is not set
CONFIG_SIZE_OPTIMIZATIONS=y
# CONFIG_SPEED_OPTIMIZATIONS is not set
# CONFIG_DEBUG_OPTIMIZATIONS is not set
# CONFIG_NO_OPTIMIZATIONS is not set
CONFIG_COMPILER_OPT=""
# end of Compiler Options

#
# Build Options
#
CONFIG_KERNEL_BIN_NAME="zephyr"
CONFIG_OUTPUT_STAT=y
CONFIG_OUTPUT_DISASSEMBLY=y
CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y
CONFIG_BUILD_OUTPUT_BIN=y
# CONFIG_BUILD_OUTPUT_EXE is not set
# CONFIG_BUILD_OUTPUT_S19 is not set
# CONFIG_BUILD_NO_GAP_FILL is not set
# CONFIG_BUILD_OUTPUT_STRIPPED is not set
# CONFIG_APPLICATION_DEFINED_SYSCALL is not set
# end of Build Options
# end of Build and Link Features

#
# Boot Options
#
# CONFIG_IS_BOOTLOADER is not set
# CONFIG_BOOTLOADER_MCUBOOT is not set
# CONFIG_REBOOT is not set
# CONFIG_MISRA_SANE is not set
# end of Boot Options

#
# Compatibility
#
CONFIG_COMPAT_INCLUDES=y
# end of Compatibility
jukkar commented 4 years ago

Tried this with nucleo_f767zi and I could reproduce the issue with wrk. I did not see similar issue with Apache bench (ab) tool, wrk seems to stress test the target more.

xhpohanka commented 4 years ago

In fact I was able to reproduce it also with Chrome but it was quite difficult to press F5 so fast :)

jukkar commented 4 years ago

I am suspecting that when the amount of incoming connections increases, we eventually run out of network buffers in some part of the code. When that happens, the code notices that but does not release some allocated buffers which will lead to buffer leak. I will be investigating this.

jukkar commented 4 years ago

@xhpohanka I hopefully managed to fix the memory leak, can you try #23334 and report does it work for you.

xhpohanka commented 4 years ago

Hello @jukkar. Thank you for the support. With your patches and dumb_http_server_mt on nucleo-f429ziand default settings everything seems to run correctly. I'm not able to break it with wrk. I also tried to increase the value of NET_TCP_BACKLOG_SIZE and it also works. However next test with NET_TCP_BACKLOG_SIZE=10 and NET_SAMPLE_NUM_HANDLERS=8 (number of threads serving client requests) shows that there still might be some leak. With such settings there are some unsuccessful data buffer allocations and net mem shows a leak.

wrk -d 10 -t 24 -c 200 http://192.0.2.1:8080

...
[00:00:28.762,000] <dbg> net_dumb_http_srv_mt_sample.process_tcp: [9] Connection #482 from 192.0.2.10
[00:00:28.762,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:28.763,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:28.764,000] <err> net_dumb_http_srv_mt_sample: Cannot accept more connections
[00:00:29.036,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:29.172,000] <err> net_pkt: Data buffer (1500) allocation failed.
[00:00:29.537,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:29.674,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:29.678,000] <err> net_pkt: Data buffer (1500) allocation failed.
[00:00:30.038,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:30.180,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:30.539,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:30.579,000] <err> net_pkt: Data buffer (1500) allocation failed.
[00:00:30.668,000] <err> eth_stm32_hal: Failed to obtain RX buffer
[00:00:30.668,000] <err> eth_stm32_hal: Failed to obtain RX buffer
[00:00:30.668,000] <err> eth_stm32_hal: Failed to obtain RX buffer
...
[00:00:30.980,000] <err> eth_stm32_hal: Failed to obtain RX buffer
[00:00:31.040,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:31.081,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:31.182,000] <err> net_pkt: Data buffer (1500) allocation failed.
uart:~$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x2001bb48      96      96      RX
0x2001bb64      96      94      TX
0x2001bc34      128     128     RX DATA (rx_bufs)
0x2001bc5c      128     126     TX DATA (tx_bufs)
No external memory pools found.
jukkar commented 4 years ago

Tried the PR with this config with Atmel SAM-E70 (300 MHz, 2 MB flash, 384 KB SRAM):

cmake -B build \
      -DBOARD=sam_e70_xplained . \
      -DCONFIG_NET_DEBUG_NET_PKT_ALLOC=y \
      -DCONFIG_NET_BUF_POOL_USAGE=y \
      -DCONFIG_NET_TCP_BACKLOG_SIZE=10  \
      -DCONFIG_KERNEL_SHELL=y \
      -DCONFIG_THREAD_MONITOR=y \
      -DCONFIG_THREAD_NAME=y \
      -DCONFIG_THREAD_STACK_INFO=y \
      -DCONFIG_INIT_STACKS=y \
      -DCONFIG_NET_PKT_RX_COUNT=200 \
      -DCONFIG_NET_PKT_TX_COUNT=200 \
      -DCONFIG_NET_BUF_RX_COUNT=300 \
      -DCONFIG_NET_BUF_TX_COUNT=300 \
      -DCONFIG_LOG=n \
      -DCONFIG_NET_LOG=n
./wrk -d 10 -t 24 -c 200 --latency http://192.0.2.1:8080
Running 10s test @ http://192.0.2.1:8080
  24 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    14.14ms   16.38ms 671.85ms   99.00%
    Req/Sec    49.78     25.60   170.00     73.60%
  Latency Distribution
     50%   13.44ms
     75%   14.69ms
     90%   15.65ms
     99%   30.36ms
  3605 requests in 10.10s, 7.36MB read
  Socket errors: connect 0, read 4023, write 0, timeout 0
Requests/sec:    356.94
Transfer/sec:    746.51KB

Tried this with multiple times and results were consistent, did not see any memory leaks.

xhpohanka commented 4 years ago

Please try to increase DCONFIG_NET_SAMPLE_NUM_HANDLERS

For example my config (I had to decrease buffers count due to sram limitation)

cmake -B build \
-DBOARD=nucleo_f429zi . \
-DCONFIG_NET_DEBUG_NET_PKT_ALLOC=y \
-DCONFIG_NET_BUF_POOL_USAGE=y \
-DCONFIG_NET_TCP_BACKLOG_SIZE=10 \
-DCONFIG_KERNEL_SHELL=y \
-DCONFIG_THREAD_MONITOR=y \
-DCONFIG_THREAD_NAME=y \
-DCONFIG_THREAD_STACK_INFO=y \
-DCONFIG_INIT_STACKS=y \
-DCONFIG_NET_PKT_RX_COUNT=100 \
-DCONFIG_NET_PKT_TX_COUNT=100 \
-DCONFIG_NET_BUF_RX_COUNT=150 \
-DCONFIG_NET_BUF_TX_COUNT=150 \
-DCONFIG_LOG=n \
-DCONFIG_NET_LOG=n \
-DCONFIG_NET_SAMPLE_NUM_HANDLERS=8

results in

$ wrk -d 10 -t 24 -c 1000 http://192.0.2.1:8080
Running 10s test @ http://192.0.2.1:8080
  24 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.06s     0.00us   1.06s   100.00%
    Req/Sec     0.00      0.00     0.00    100.00%
  1 requests in 10.07s, 16.12KB read
  Socket errors: connect 0, read 7, write 0, timeout 0
Requests/sec:      0.10
Transfer/sec:      1.60KB

$ curl http://192.0.2.1:8080
curl: (52) Empty reply from server
uart:~$ *** Booting Zephyr OS build zephyr-v2.2.0-29-g67549d8d6002  ***
uart:~$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x200200d0      100     100     RX
0x200200ec      100     100     TX
0x2002017c      150     150     RX DATA (rx_bufs)
0x200201a4      150     150     TX DATA (tx_bufs)
No external memory pools found.
uart:~$ 
uart:~$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x200200d0      100     94      RX
0x200200ec      100     69      TX
0x2002017c      150     144     RX DATA (rx_bufs)
0x200201a4      150     0       TX DATA (tx_bufs)
No external memory pools found.

Or is increasing DCONFIG_NET_SAMPLE_NUM_HANDLERS wrong configuration?

jukkar commented 4 years ago

Increasing num handlers to 8 got slightly better results, but not much. Best result out of 5 was this one

$ ./wrk -d 10 -t 24 -c 200 --latency http://192.0.2.1:8080
Running 10s test @ http://192.0.2.1:8080
  24 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    17.61ms   18.91ms 686.52ms   99.21%
    Req/Sec    50.11     34.28   250.00     82.86%
  Latency Distribution
     50%   17.72ms
     75%   18.70ms
     90%   19.94ms
     99%   32.29ms
  3949 requests in 10.02s, 8.07MB read
  Socket errors: connect 0, read 3949, write 0, timeout 0
Requests/sec:    394.25
Transfer/sec:    824.75KB

No leaks were seen. I will try with Nucleo F767zi next.

jukkar commented 4 years ago

There is something fishy with my nucleo board, the transfer rates are not that great.

./wrk -d 10 -t 24 -c 1000 http://192.0.2.1:8080
Running 10s test @ http://192.0.2.1:8080
  24 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   172.95ms  340.65ms   1.87s    88.22%
    Req/Sec    11.91     14.37    60.00     83.53%
  333 requests in 10.10s, 695.92KB read
  Socket errors: connect 0, read 375, write 0, timeout 2
Requests/sec:     32.97
Transfer/sec:     68.90KB

Slightly better when having smaller number of connections

./wrk -d 60 -t 24 -c 500 --latency http://192.0.2.1:8080
Running 1m test @ http://192.0.2.1:8080
  24 threads and 500 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   126.09ms  244.86ms   1.72s    86.81%
    Req/Sec    13.09     13.65    60.00     84.89%
  Latency Distribution
     50%   33.29ms
     75%   50.91ms
     90%  690.30ms
     99%  765.88ms
  2403 requests in 1.00m, 4.90MB read
  Socket errors: connect 0, read 2672, write 0, timeout 0
Requests/sec:     39.99
Transfer/sec:     83.57KB

I did not see any memory leaks. I wonder why the numbers are so much smaller with this stm board.

xhpohanka commented 4 years ago

It looks that there is maybe some additional issue on stm32 platform. Unfortunately I do not have any other board to test now. I checked stm32 Ethernet driver (or glue layer between HAL and zephyr) but I do not see any suspicious thing there. Also as far as I know stm32 works well with lwIP so I do not think that there is a bug inside HAL driver...

jukkar commented 4 years ago

I did some testing and stm numbers are not good. I used identical configuration options with all the boards.

Board Details KB/sec
NXP FRDM-K64F 120 MHz, 1 MB flash, 256 KB RAM 262.52
Atmel SAM-E70 300 MHz, 2 MB flash, 384 KB RAM 751.66
STM Nucleo F767zi 216 MHz, 2 MB flash, 384 KB RAM 95.70

Config in samples/net/sockets/dump_http_server_mt:

cmake -B build \
      -DBOARD=<select-the-board> . \
      -DCONFIG_NET_DEBUG_NET_PKT_ALLOC=y \
      -DCONFIG_NET_BUF_POOL_USAGE=y \
      -DCONFIG_NET_TCP_BACKLOG_SIZE=8  \
      -DCONFIG_KERNEL_SHELL=y \
      -DCONFIG_THREAD_MONITOR=y \
      -DCONFIG_THREAD_NAME=y \
      -DCONFIG_THREAD_STACK_INFO=y \
      -DCONFIG_INIT_STACKS=y \
      -DCONFIG_NET_PKT_RX_COUNT=200 \
      -DCONFIG_NET_PKT_TX_COUNT=200 \
      -DCONFIG_NET_BUF_RX_COUNT=300 \
      -DCONFIG_NET_BUF_TX_COUNT=300 \
      -DCONFIG_LOG=n \
      -DCONFIG_NET_LOG=n

Host side:

$ ./wrk -d 60 -t 24 -c 500 --latency http://192.0.2.1:8080
jukkar commented 4 years ago

Just fyi, I could replicate the memory leak in stm32f767zi by setting the net buf/pkt count low.

jukkar commented 4 years ago

Hopefully I managed to nail the nasty net buf leak, basically if the device is flooded with incoming packets, then the tx timer in tcp could trigger and we then tried to send the packet second time even if the previous msg was still pending in TX queue. This caused a memory leak which was only seen if the device is very busy. @xhpohanka can you try the latest version of the PR and report status.

xhpohanka commented 4 years ago

I have tried all previous test and they are working correctly with latest PR. I was able to stress my targets so that there were no free buffers

...
[00:00:30.653,000] <err> eth_stm32_hal: Failed to obtain RX buffer
[00:00:30.778,000] <err> net_pkt: Data buffer (48) allocation failed.
...

and it is recovering from such state without no problem.

...
[00:00:31.973,000] <err> eth_stm32_hal: Failed to obtain RX buffer
[00:00:32.281,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:32.455,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:32.782,000] <err> net_pkt: Data buffer (48) allocation failed.
$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x2001bb48      96      0       RX
0x2001bb64      96      74      TX
0x2001bc34      128     32      RX DATA (rx_bufs)
0x2001bc5c      128     0       TX DATA (tx_bufs)
No external memory pools found.
[00:00:32.956,000] <err> net_pkt: Data buffer (48) allocation failed.
[00:00:33.283,000] <err> net_pkt: Data buffer (48) allocation failed.
...
$ net mem
Fragment length 128 bytes
Network buffer pools:
Address         Total   Avail   Name
0x2001bb48      96      96      RX
0x2001bb64      96      96      TX
0x2001bc34      128     128     RX DATA (rx_bufs)
0x2001bc5c      128     128     TX DATA (tx_bufs)
No external memory pools found.

Let's hope that leaks are gone :)

jukkar commented 4 years ago

The very bad performance could be explained (at least partially) by the small amount of network buffers available. If the device just cannot handle the req, the data is dropped. The wrk tool is really stress testing the device as it floods the system with constant stream of http requests. I got a bit better performance values with apache bench tool, not sure which tool is right and how the values are calculated in each of them. Anyway, if we really got all the leaks gone, then we can probably start to investigate why the perf numbers look like that.

pfalcon commented 4 years ago

The very bad performance could be explained (at least partially) by the small amount of network buffers available.

I wouldn't agree that the amount of network buffers we have by default (now) is small. To remind, I advocated for another approach: to test (and get working) stuff with as little as possible number of buffers. That would expose many deadlocks/softlocks we have. Then we indeed can throw in more buffers, and everything would "just work" (more perfomantly, apparently).

I got a bit better performance values with apache bench tool, not sure which tool is right and how the values are calculated in each of them.

I proposed to standardize on Apache Bench because it's well-known tool, readily available in any distro (so can reproduce reports you <-> other people). I so far found ab to be enough to show issues in the stack, and didn't have a need to move beyond it (and there're many tools like wrk around, how to choose "right").

why the perf numbers look like that.

Mind that there're many "moving parts":

  1. There can be difference depending on whether Zephyr is client or server. Both @xhpohanka and myself reported concerns when Zephyr is client and downloads from a remote Internet server (big_http_download sample). Whereas you talk about using ab, i.e. Zephyr is server.
  2. It goes without saying that to measure speed, one would need to make large transfers. I'm not aware of use having HTTP server for Zephyr serving large files. Someone should write a server which just sends out memory filled with 0, 1, 2, 3, etc. repeated. Using iperf makes sense too. (I personally never got to using it, again, ab exposed enough probs from my PoV).
  3. There also may be differences whether we talk Zephyr <-> directly connected Linux box, or Zephyr <-> Internet (big_http_download). Like, there shouldn't be, but come on, we know how IT works ;-). If you want rational explanation how that may differ, consider for example that the Internet server big_http_download talks to may have TCP params tuned, making it more susceptible to any missteps in TCP it sees from Zephyr.

So, as usual, to investigate something, we need to describe/standardize the setup to test against, and that has always been problem.

xhpohanka commented 4 years ago

Just another note to speed. Even if big_http_download sample is still slow for me, last patches fixed very slow upload in my application. It was a case when a binary file is sent into zephyr board through http POST request (firmware update).

jukkar commented 4 years ago

One config option that might help (not tested), is to make the CONFIG_NET_TCP_INIT_RETRANSMISSION_TIMEOUT lower. The default value for that is 200ms. In wireshark I noticed when running some tests against Linux host, that it re-sends a packet just before our 200ms timer expires. This leads unnecessary network traffic in this case. So setting CONFIG_NET_TCP_INIT_RETRANSMISSION_TIMEOUT=150 might improve things, I have not tested this yet.

pfalcon commented 4 years ago

In my investigations (dated by now), I came to conclusion that any retransmissions are controlled by Linux side, and we indeed badly interact with Linux TCP stack, causing these retransmissions to start, and then increase in positive feedback. I believe where I stopped is trying to change some rexmit timeout params on Linux side, to test this hypothesis, and IIRC, found out these params are effectively hardcoded (or can't be controlled precisely). Again, this is all from somewhat vague memory. Definitely +1 for trying to reproduce those matters, just a word of notice that it may be not that easy to see any changes.

DenvE commented 4 years ago

Hi using nucleo_767zi, zephyr 2.3.0, just having net/dhcpv4 and mqtt, i still see Failed to obtain RX buffer.

info:prj.conf CONFIG_CPLUSPLUS=y CONFIG_STD_CPP17=y

#

C Library

#

CONFIG_MINIMAL_LIBC is not set

CONFIG_NEWLIB_LIBC=y CONFIG_LIB_CPLUSPLUS=y

end of C Library

enable networking

CONFIG_NET_CONFIG_AUTO_INIT=y CONFIG_NETWORKING=y CONFIG_NET_TCP=y CONFIG_NET_LLDP=y CONFIG_NET_L2_ETHERNET=y CONFIG_NET_L2_ETHERNET_MGMT=y

Enable IPv4 support

CONFIG_NET_IPV4=y CONFIG_NET_CONFIG_NEED_IPV4=y

CONFIG_NET_CONFIG_NEED_IPV4=y

CONFIG_NET_IPV6=n

Enable DHCPv4 support

CONFIG_NET_DHCPV4=y

Network connection manager to receive L4 events ( like receive ip address notify)

CONFIG_NET_CONNECTION_MANAGER=y CONFIG_NET_NATIVE=y

CONFIG_NET_MGMT=y CONFIG_NET_MGMT_EVENT=y

CONFIG_NET_SOCKETS=y CONFIG_NET_SOCKETS_POSIX_NAMES=y

end of # Networking

enable logging

CONFIG_LOG=y CONFIG_LOG_RUNTIME_FILTERING=y CONFIG_LOG_PRINTK=y CONFIG_COVERAGE=n CONFIG_LOG_IMMEDIATE=y

end of # logging

needed for sys_rand32_get

CONFIG_ENTROPY_GENERATOR=y CONFIG_TEST_RANDOM_GENERATOR=y

Enable the DNS resolver

CONFIG_DNS_RESOLVER=y CONFIG_DNS_SERVER_IP_ADDRESSES=y

Enable the MQTT Lib

CONFIG_MQTT_LIB=y

LOG:

Booting Zephyr OS build zephyr-v2.3.0

Hello new board definition on nucleo_f767zi !

[00:00:01.510,000] .[0m app_net: starting DHCPv4.[0m [00:00:02.900,000] .[0m app_net: IPv4 address: 192.168.1.9.[0m =========================================================> app_net_msgq: 0

[00:00:02.912,000] .[0m app_net: dhcpv4_ip_retrieved.[0m [00:00:02.918,000] .[0m main: net result 0.[0m [00:00:02.922,000] .[0m app_mdns: Doing mDNS IPv4 query.[0m [00:00:02.928,000] .[0m app_mdns: 192.168.1.25 1.25 address: 192.168.1.25.[0m [00:00:02.935,000] .[0m main: mdns result 1.[0m [00:00:02.940,000] .[0m app_mdns: DNS resolving finished.[0m [00:00:02.946,000] .[0m app_mqtt: address: 192.168.1.25.[0m [00:00:03.145,000] .[0m app_mqtt: mqtt try connect 0.[0m [00:00:03.150,000] .[0m app_mqtt: mqtt trying to connect busy.[0m [00:00:03.156,000] .[0m app_mqtt: mqtt polling !.[0m [00:00:03.163,000] .[0m app_mqtt: app_mqtt_polling - mqtt_input.[0m [00:00:03.170,000] .[0m app_mqtt: evt->type 0 .[0m ==> MQTT_EVT_CONNACK

[00:00:03.176,000] .[0m app_mqtt: MQTT client connected!.[0m [00:00:03.182,000] .[0m main: mqtt result 0.[0m [00:00:03.187,000] .[0m app_mqtt: Subscribed topic /edc/dta/controller/02:80:e1:00:12:50/in/#.[0m [00:00:03.397,000] .[0m app_mqtt: evt->type 7 .[0m ==> MQTT_EVT_SUBACK

[00:00:03.404,000] .[0m app_mqtt: SUBACK packet id: 1.[0m [00:00:10.213,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:10.620,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:11.027,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:11.434,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:11.841,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:12.248,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:12.656,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:13.063,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:13.470,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:13.877,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:14.284,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:14.691,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:15.098,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:15.505,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:15.912,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:16.319,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:16.727,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:17.134,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:17.541,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:17.948,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:18.355,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:18.762,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:19.169,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:19.576,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:19.983,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:20.390,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:20.798,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:21.205,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:21.612,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:22.019,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:22.426,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:22.833,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:23.240,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:23.647,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:24.054,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:24.461,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:24.869,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:25.276,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:25.683,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:26.090,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:26.497,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:26.904,000] .[1;31m eth_stm32_hal: Failed to obtain RX buffer.[0m [00:00:26.911,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:27.207,000] .[1;31m eth_stm32_hal: Failed to obtain RX buffer.[0m [00:00:27.318,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:27.513,000] .[1;31m eth_stm32_hal: Failed to obtain RX buffer.[0m [00:00:27.725,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:27.818,000] .[1;31m eth_stm32_hal: Failed to obtain RX buffer.[0m [00:00:28.119,000] .[1;31m eth_stm32_hal: Failed to obtain RX buffer.[0m [00:00:28.132,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:28.539,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:28.946,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

[00:00:29.353,000] .[0m app_mqtt: evt->type 2 .[0m ==> MQTT_EVT_PUBLISH

any idea: i checked and the above commits are in the zephyr.