zephyr/samples/net/sockets/packet
Jukka Rissanen 6d7f4e0b50 samples: net: socket: packet: Fix memory leak
The conn_raw_input() in connection.c will clone the incoming
packet so that it is possible to receive socket data in
multiple packet sockets. This is all fine except that if the
socket is never calling recv(), then the cloned net_pkt is never
processed and we will have a memory leak.

What this all means in practice, is that we should call recv()
for every packet socket in order to flush the socket for any
incoming data even if the socket is just sending data.

Fixes #34462

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2021-04-23 15:15:14 -05:00
..
src samples: net: socket: packet: Fix memory leak 2021-04-23 15:15:14 -05:00
CMakeLists.txt
Kconfig
prj.conf
README.rst
sample.yaml sanitycheck: inclusive language 2020-08-27 07:04:07 -04:00

.. _packet-socket-sample:

Packet socket sample
####################

Overview
********

This sample is a simple packet socket application showing usage
of packet sockets over Ethernet. The sample prints every packet
received, and sends a dummy packet every 5 seconds.
The Zephyr network subsystem does not touch any of the headers
(L2, L3, etc.).

Building and Running
********************

When the application is run, it opens a packet socket and prints
the length of the packet it receives. After that it sends a dummy
packet every 5 seconds. You can use Wireshark to observe these
sent and received packets.

See the `net-tools`_ project for more details.

This sample can be built and executed on QEMU or native_posix board as
described in :ref:`networking_with_host`.

.. _`net-tools`: https://github.com/zephyrproject-rtos/net-tools