1.. _ppp: 2 3Point-to-Point Protocol (PPP) Support 4##################################### 5 6.. contents:: 7 :local: 8 :depth: 2 9 10Overview 11******** 12 13`Point-to-Point Protocol 14<https://en.wikipedia.org/wiki/Point-to-Point_Protocol>`_ (PPP) is a data link 15layer (layer 2) communications protocol used to establish a direct connection 16between two nodes. PPP is used over many types of serial links since IP packets 17cannot be transmitted over a modem line on their own, without some data link 18protocol. 19 20In Zephyr, each individual PPP link is modelled as a network interface. This 21is similar to how Linux implements PPP. 22 23PPP support must be enabled at compile time by setting option 24:kconfig:option:`CONFIG_NET_PPP` and :kconfig:option:`CONFIG_NET_L2_PPP`. 25The PPP support in Zephyr 2.0 is still experimental and the implementation 26supports only these protocols: 27 28* LCP (Link Control Protocol, 29 `RFC1661 <https://tools.ietf.org/html/rfc1661>`__) 30* HDLC (High-level data link control, 31 `RFC1662 <https://tools.ietf.org/html/rfc1662>`__) 32* IPCP (IP Control Protocol, 33 `RFC1332 <https://tools.ietf.org/html/rfc1332>`__) 34* IPV6CP (IPv6 Control Protocol, 35 `RFC5072 <https://tools.ietf.org/html/rfc5072>`__) 36 37See also the :zephyr_file:`samples/net/sockets/echo_server/overlay-ppp.conf` 38file for configuration option examples. 39For using PPP with GSM modem, see :ref:`gsm_modem` for additional information. 40 41Testing 42******* 43 44See the `net-tools README`_ file for more details on how to test the Zephyr PPP 45against pppd running in Linux. 46 47.. _net-tools README: 48 https://github.com/zephyrproject-rtos/net-tools/blob/master/README.md#ppp-connectivity 49