lib: net_buf: move the network buffer implementation to lib
Move the net_buf implementation from the networking subsystem to a library as they have no dependency on the networking subsystem. Network buffers are used in subsystems outside of networking (e.g. Bluetooth, USB). Fixes: #36374 Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
This commit is contained in:
parent
cfc010ff4e
commit
ced80b13bf
|
@ -2803,7 +2803,6 @@ Networking:
|
|||
- samples/net/lwm2m_client/
|
||||
- samples/net/wifi/
|
||||
- samples/net/dhcpv4_client/
|
||||
- subsys/net/buf*.c
|
||||
- subsys/net/l2/ethernet/gptp/
|
||||
- subsys/net/l2/ieee802154/
|
||||
- subsys/net/l2/wifi/
|
||||
|
@ -2846,7 +2845,7 @@ Networking:
|
|||
- jukkar
|
||||
files:
|
||||
- include/zephyr/net/buf.h
|
||||
- subsys/net/buf*.c
|
||||
- lib/net_buf/
|
||||
- tests/net/buf/
|
||||
labels:
|
||||
- "area: Networking Buffers"
|
||||
|
|
|
@ -14,6 +14,7 @@ add_subdirectory_ifdef(CONFIG_CPP cpp)
|
|||
add_subdirectory(hash)
|
||||
add_subdirectory(heap)
|
||||
add_subdirectory(mem_blocks)
|
||||
add_subdirectory_ifdef(CONFIG_NET_BUF net_buf)
|
||||
add_subdirectory(os)
|
||||
add_subdirectory(utils)
|
||||
add_subdirectory_ifdef(CONFIG_SMF smf)
|
||||
|
|
|
@ -15,6 +15,8 @@ source "lib/heap/Kconfig"
|
|||
|
||||
source "lib/mem_blocks/Kconfig"
|
||||
|
||||
source "lib/net_buf/Kconfig"
|
||||
|
||||
source "lib/os/Kconfig"
|
||||
|
||||
source "lib/posix/Kconfig"
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library()
|
||||
zephyr_library_sources_ifdef(
|
||||
CONFIG_NET_BUF
|
||||
buf.c
|
||||
buf_simple.c
|
||||
)
|
|
@ -0,0 +1,62 @@
|
|||
# Network buffer configuration options
|
||||
|
||||
# Copyright (c) 2015 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
menuconfig NET_BUF
|
||||
bool "Network buffer support"
|
||||
help
|
||||
This option enables support for generic network protocol
|
||||
buffers.
|
||||
|
||||
if NET_BUF
|
||||
|
||||
config NET_BUF_LOG
|
||||
bool "Network buffer logging"
|
||||
select LOG
|
||||
help
|
||||
Enable logs and checks for the generic network buffers.
|
||||
|
||||
module = NET_BUF
|
||||
module-str = net_buf
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
if NET_BUF_LOG
|
||||
|
||||
config NET_BUF_WARN_ALLOC_INTERVAL
|
||||
int "Interval of Network buffer allocation warnings"
|
||||
default 1
|
||||
range 0 60
|
||||
help
|
||||
Interval in seconds of Network buffer allocation warnings which are
|
||||
generated when a buffer cannot immediately be allocated with K_FOREVER
|
||||
which may lead to deadlocks. Setting it to 0 makes warnings to be
|
||||
printed only once per allocation.
|
||||
|
||||
config NET_BUF_SIMPLE_LOG
|
||||
bool "Network buffer memory debugging"
|
||||
select LOG
|
||||
help
|
||||
Enable extra debug logs and checks for the generic network buffers.
|
||||
|
||||
endif # NET_BUF_LOG
|
||||
|
||||
config NET_BUF_POOL_USAGE
|
||||
bool "Network buffer pool usage tracking"
|
||||
help
|
||||
Enable network buffer pool tracking. This means that:
|
||||
* amount of free buffers in the pool is remembered
|
||||
* total size of the pool is calculated
|
||||
* pool name is stored and can be shown in debugging prints
|
||||
|
||||
config NET_BUF_ALIGNMENT
|
||||
int "Network buffer alignment restriction"
|
||||
default 0
|
||||
help
|
||||
Alignment restriction for network buffers. This is useful for
|
||||
some hardware IP with DMA that requires the buffers to be aligned
|
||||
to a certain byte boundary, or dealing with cache line restrictions.
|
||||
Default value of 0 means the alignment will be the size of a void pointer,
|
||||
any other value will force the alignment of a net buffer in bytes.
|
||||
|
||||
endif # NET_BUF
|
|
@ -47,7 +47,7 @@ add_subdirectory_ifdef(CONFIG_INPUT input)
|
|||
add_subdirectory_ifdef(CONFIG_JWT jwt)
|
||||
add_subdirectory_ifdef(CONFIG_LLEXT llext)
|
||||
add_subdirectory_ifdef(CONFIG_MODEM_MODULES modem)
|
||||
add_subdirectory_ifdef(CONFIG_NET_BUF net)
|
||||
add_subdirectory_ifdef(CONFIG_NETWORKING net)
|
||||
add_subdirectory_ifdef(CONFIG_PROFILING profiling)
|
||||
add_subdirectory_ifdef(CONFIG_RETENTION retention)
|
||||
add_subdirectory_ifdef(CONFIG_SENSING sensing)
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library()
|
||||
zephyr_library_sources_ifdef(
|
||||
CONFIG_NET_BUF
|
||||
buf.c
|
||||
buf_simple.c
|
||||
)
|
||||
zephyr_library_sources_ifdef(CONFIG_NET_HOSTNAME_ENABLE hostname.c)
|
||||
|
||||
if(CONFIG_NETWORKING)
|
||||
|
|
|
@ -5,64 +5,6 @@
|
|||
|
||||
menu "Networking"
|
||||
|
||||
config NET_BUF
|
||||
bool "Network buffer support"
|
||||
help
|
||||
This option enables support for generic network protocol
|
||||
buffers.
|
||||
|
||||
if NET_BUF
|
||||
|
||||
config NET_BUF_LOG
|
||||
bool "Network buffer logging"
|
||||
select LOG
|
||||
help
|
||||
Enable logs and checks for the generic network buffers.
|
||||
|
||||
module = NET_BUF
|
||||
module-str = net_buf
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
if NET_BUF_LOG
|
||||
|
||||
config NET_BUF_WARN_ALLOC_INTERVAL
|
||||
int "Interval of Network buffer allocation warnings"
|
||||
default 1
|
||||
range 0 60
|
||||
help
|
||||
Interval in seconds of Network buffer allocation warnings which are
|
||||
generated when a buffer cannot immediately be allocated with K_FOREVER
|
||||
which may lead to deadlocks. Setting it to 0 makes warnings to be
|
||||
printed only once per allocation.
|
||||
|
||||
config NET_BUF_SIMPLE_LOG
|
||||
bool "Network buffer memory debugging"
|
||||
select LOG
|
||||
help
|
||||
Enable extra debug logs and checks for the generic network buffers.
|
||||
|
||||
endif # NET_BUF_LOG
|
||||
|
||||
config NET_BUF_POOL_USAGE
|
||||
bool "Network buffer pool usage tracking"
|
||||
help
|
||||
Enable network buffer pool tracking. This means that:
|
||||
* amount of free buffers in the pool is remembered
|
||||
* total size of the pool is calculated
|
||||
* pool name is stored and can be shown in debugging prints
|
||||
|
||||
config NET_BUF_ALIGNMENT
|
||||
int "Network buffer alignment restriction"
|
||||
default 0
|
||||
help
|
||||
Alignment restriction for network buffers. This is useful for
|
||||
some hardware IP with DMA that requires the buffers to be aligned
|
||||
to a certain byte boundary, or dealing with cache line restrictions.
|
||||
Default value of 0 means the alignment will be the size of a void pointer,
|
||||
any other value will force the alignment of a net buffer in bytes.
|
||||
|
||||
endif # NET_BUF
|
||||
|
||||
config NETWORKING
|
||||
bool "Link layer and networking (including IP)"
|
||||
select NET_BUF
|
||||
|
|
|
@ -16,7 +16,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/host/data.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/host/uuid.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
bap_unicast_client.c
|
||||
bap_unicast_server.c
|
||||
)
|
||||
|
|
|
@ -11,7 +11,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/host/uuid.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/common/bt_str.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
)
|
||||
|
||||
add_subdirectory(${ZEPHYR_BASE}/tests/bluetooth/audio/mocks mocks)
|
||||
|
|
|
@ -13,7 +13,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/audio/bap_broadcast_source.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/audio/codec.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
)
|
||||
|
||||
add_subdirectory(${ZEPHYR_BASE}/tests/bluetooth/audio/mocks mocks)
|
||||
|
|
|
@ -11,7 +11,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/audio/cap_commander.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/audio/cap_common.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
bap_broadcast_assistant.c
|
||||
aics.c
|
||||
cap_commander.c
|
||||
|
|
|
@ -16,7 +16,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/common/bt_str.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/host/uuid.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
bap_unicast_client.c
|
||||
cap_initiator.c
|
||||
csip.c
|
||||
|
|
|
@ -11,7 +11,7 @@ add_library(uut STATIC
|
|||
${ZEPHYR_BASE}/subsys/bluetooth/audio/codec.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/common/bt_str.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
)
|
||||
|
||||
add_subdirectory(${ZEPHYR_BASE}/tests/bluetooth/audio/mocks mocks)
|
||||
|
|
|
@ -15,7 +15,7 @@ target_sources(testbinary
|
|||
src/main.c
|
||||
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/host/data.c
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
${ZEPHYR_BASE}/subsys/logging/log_minimal.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/common/bt_str.c
|
||||
${ZEPHYR_BASE}/subsys/bluetooth/host/uuid.c
|
||||
|
|
|
@ -14,5 +14,5 @@ target_sources(testbinary
|
|||
PRIVATE
|
||||
src/main.c
|
||||
|
||||
${ZEPHYR_BASE}/subsys/net/buf_simple.c
|
||||
${ZEPHYR_BASE}/lib/net_buf/buf_simple.c
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue