zephyr/doc/api/networking.rst
Jesus Sanchez-Palencia 598276262c net: l2: Add support for Link Layer Discovery Protocol (LLDP)
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>
2018-08-08 09:53:24 +03:00

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