rtems-docs/networking/network_task_structure.rst
Marçal Comajoan Cara f29d91d0f3 Integrate images redrawn as part of GCI 2018
All of the redrawings were made by me except images/c_user/states which
was made by LukaMag. This patch serves to update all the images.

This work was part of GCI 2018.
2018-12-11 13:26:44 -06:00

36 lines
1.5 KiB
ReStructuredText

.. comment SPDX-License-Identifier: CC-BY-SA-4.0
.. COMMENT: Written by Eric Norum
.. COMMENT: COPYRIGHT (c) 1988-2002.
.. COMMENT: On-Line Applications Research Corporation (OAR).
.. COMMENT: All rights reserved.
Network Task Structure and Data Flow
####################################
A schematic diagram of the tasks and message *mbuf* queues in a simple RTEMS
networking application is shown in the following figure:
.. figure:: ../images/networking/networkflow.png
:align: center
:alt: Network Flow
The transmit task for each network interface is normally blocked waiting for a
packet to arrive in the transmit queue. Once a packet arrives, the transmit
task may block waiting for an event from the transmit interrupt handler. The
transmit interrupt handler sends an RTEMS event to the transmit task to
indicate that transmit hardware resources have become available.
The receive task for each network interface is normally blocked waiting for an
event from the receive interrupt handler. When this event is received the
receive task reads the packet and forwards it to the network stack for
subsequent processing by the network task.
The network task processes incoming packets and takes care of timed operations
such as handling TCP timeouts and aging and removing routing table entries.
The 'Network code' contains routines which may run in the context of the user
application tasks, the interface receive task or the network task. A network
semaphore ensures that the data structures manipulated by the network code
remain consistent.