Lines Matching full:network
3 Network Stack Architecture
12 The Zephyr network stack is a native network stack specifically designed
14 to other layers. Network stack functionality is highly configurable via Kconfig
21 High level overview of the network stack
25 :alt: Overview of the network stack architecture
28 Network stack overview
30 The network stack is layered and consists of the following parts:
32 * **Network Application.** The network application can either use the provided
34 :ref:`BSD socket API <bsd_sockets_interface>` directly to create a network
36 also use the :ref:`network management API <net_mgmt_interface>` to configure
37 the network and set related parameters such as network link options,
38 starting a scan (when applicable), listen network configuration events, etc.
39 The :ref:`network interface API <net_if_interface>` can be used to set IP
40 address to a network interface, taking the network interface down, etc.
42 * **Network Protocols.** This provides implementations for
45 * Application-level network protocols like CoAP, LWM2M, and MQTT.
48 * Core network protocols like IPv6, IPv4, UDP, TCP, ICMPv4, and ICMPv6.
52 * **Network Interface Abstraction.** This provides functionality
53 that is common in all the network interfaces, such as setting network
54 interface down, etc. There can be multiple network interfaces in the system.
55 See :ref:`network interface overview <net_if_interface>` for more details.
57 * **L2 Network Technologies.** This provides a common API for sending and
58 receiving data to and from an actual network device.
60 These network technologies include :ref:`Ethernet <ethernet_interface>`,
68 * **Network Device Drivers.** The actual low-level device drivers handle the
69 physical sending or receiving of network packets.
71 Network data flow
80 :alt: Network RX data flow
83 Network RX data flow
88 1. A network data packet is received by a device driver.
90 2. The device driver allocates enough network buffers to store the received
91 data. The network packet is placed in the proper RX queue (implemented by
100 3. The network packet is then passed to the correct L2 driver. The L2 driver
104 4. The packet is processed by a network interface. The network statistics are
110 6. A socket handler then finds an active socket to which the network packet
113 userspace context and the network stack is run in kernel context.
122 :alt: Network TX data flow
125 Network TX data flow
140 4. An IP header is added to the network packet for a UDP or TCP packet.
142 5. The network stack will check that the network interface is properly set
143 for the network packet, and also will make sure that the network interface
146 6. The network packet is then classified and placed to the proper transmit
153 data and it will also create any L2 headers for the network packet.
154 If everything is ok, the data is given to the network device driver to be
157 7. The device driver will send the packet to the network.
167 Network packet processing statistics
170 See information about network processing statistics