mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-26 09:35:50 +00:00
The LLDP protocol defines 2 separate agents, the Transmitters and the Receivers. For the context of Zephyr, we are only interested in the Tx agent, thus we drop any LLDP frames received by Zephyr. LLDP frames are basically composed by an ethernet header followed by the LLDP Protocol Data Unit (LLDPDU). The LLDPDU is composed by several TLVs, some of them being mandatory and some optional. Our approach here is having TLVs fully configured from Kconfig, thus having the entire LLDPDU constructed on build time. The commit adds NET_ETH_PTYPE_LLDP definition and related handling. If CONFIG_NET_LLDP is enabled then ethernet_context has a pointer to the struct net_lldpdu that belongs to that ethernet interface. Also when CONFIG_NET_LLDP is enabled, the LLDP state machine will start to send packets when network interface is coming up. Currently the LLDP state machine is just a k_delayed_work() sending the LLDPDU at a given period (defined by CONFIG_NET_LLDP_TX_INTERVAL). Fixes #3233 Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com> Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
206 lines
3.2 KiB
ReStructuredText
206 lines
3.2 KiB
ReStructuredText
.. _networking_api:
|
|
|
|
Networking API
|
|
##############
|
|
|
|
.. contents::
|
|
:depth: 2
|
|
:local:
|
|
:backlinks: top
|
|
|
|
This is the full set of networking public APIs. Their exposure
|
|
depends on relevant Kconfig options. For instance IPv6 related
|
|
APIs will not be present if :option:`CONFIG_NET_IPV6` has not
|
|
been selected.
|
|
|
|
.. comment
|
|
not documenting
|
|
.. doxygengroup:: networking
|
|
.. doxygengroup:: arp
|
|
|
|
Network core helpers
|
|
********************
|
|
|
|
.. doxygengroup:: net_core
|
|
:project: Zephyr
|
|
|
|
Network buffers
|
|
***************
|
|
|
|
.. doxygengroup:: net_buf
|
|
:project: Zephyr
|
|
|
|
Network packet management
|
|
*************************
|
|
|
|
.. doxygengroup:: net_pkt
|
|
:project: Zephyr
|
|
|
|
IPv4/IPv6 primitives and helpers
|
|
********************************
|
|
|
|
.. doxygengroup:: ip_4_6
|
|
:project: Zephyr
|
|
|
|
Network interface
|
|
*****************
|
|
|
|
.. doxygengroup:: net_if
|
|
:project: Zephyr
|
|
|
|
Network Management
|
|
******************
|
|
|
|
.. doxygengroup:: net_mgmt
|
|
:project: Zephyr
|
|
|
|
Network layer 2 management
|
|
**************************
|
|
|
|
.. doxygengroup:: net_l2
|
|
:project: Zephyr
|
|
|
|
Network link address
|
|
********************
|
|
|
|
.. doxygengroup:: net_linkaddr
|
|
:project: Zephyr
|
|
|
|
Application network context
|
|
***************************
|
|
|
|
.. doxygengroup:: net_context
|
|
:project: Zephyr
|
|
|
|
BSD Sockets compatible API
|
|
**************************
|
|
|
|
.. doxygengroup:: bsd_sockets
|
|
:project: Zephyr
|
|
|
|
Network offloading support
|
|
**************************
|
|
|
|
.. doxygengroup:: net_offload
|
|
:project: Zephyr
|
|
|
|
Network statistics
|
|
******************
|
|
|
|
.. doxygengroup:: net_stats
|
|
:project: Zephyr
|
|
|
|
Trickle timer support
|
|
*********************
|
|
|
|
.. doxygengroup:: trickle
|
|
:project: Zephyr
|
|
|
|
UDP
|
|
***
|
|
|
|
.. doxygengroup:: udp
|
|
:project: Zephyr
|
|
|
|
Hostname Configuration Library
|
|
******************************
|
|
|
|
.. doxygengroup:: net_hostname
|
|
:project: Zephyr
|
|
|
|
generic Precision Time Protocol (gPTP)
|
|
**************************************
|
|
|
|
.. doxygengroup:: gptp
|
|
:project: Zephyr
|
|
|
|
Network technologies
|
|
********************
|
|
|
|
Ethernet
|
|
========
|
|
|
|
.. doxygengroup:: ethernet
|
|
:project: Zephyr
|
|
|
|
Ethernet Management
|
|
===================
|
|
|
|
.. doxygengroup:: ethernet_mgmt
|
|
:project: Zephyr
|
|
|
|
Virtual LAN definitions and helpers
|
|
===================================
|
|
|
|
.. doxygengroup:: vlan
|
|
:project: Zephyr
|
|
|
|
Link Layer Discovery Protocol definitions and helpers
|
|
=====================================================
|
|
|
|
.. doxygengroup:: lldp
|
|
:project: Zephyr
|
|
|
|
IEEE 802.15.4
|
|
=============
|
|
|
|
.. doxygengroup:: ieee802154
|
|
:project: Zephyr
|
|
|
|
IEEE 802.15.4 Management
|
|
========================
|
|
|
|
.. doxygengroup:: ieee802154_mgmt
|
|
:project: Zephyr
|
|
|
|
Network and application libraries
|
|
*********************************
|
|
|
|
Network application
|
|
===================
|
|
|
|
.. doxygengroup:: net_app
|
|
:project: Zephyr
|
|
|
|
DHCPv4
|
|
======
|
|
|
|
.. doxygengroup:: dhcpv4
|
|
:project: Zephyr
|
|
|
|
MQTT 3.1.1
|
|
==========
|
|
|
|
.. doxygengroup:: mqtt
|
|
:project: Zephyr
|
|
|
|
CoAP
|
|
====
|
|
|
|
.. doxygengroup:: coap
|
|
:project: Zephyr
|
|
|
|
DNS Resolve
|
|
===========
|
|
|
|
.. doxygengroup:: dns_resolve
|
|
:project: Zephyr
|
|
|
|
HTTP
|
|
====
|
|
|
|
.. doxygengroup:: http
|
|
:project: Zephyr
|
|
|
|
Websocket
|
|
=========
|
|
|
|
.. doxygengroup:: websocket
|
|
:project: Zephyr
|
|
|
|
Websocket console
|
|
=================
|
|
|
|
.. doxygengroup:: websocket_console
|
|
:project: Zephyr
|