You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: components/eppp_link/README.md
+33-1Lines changed: 33 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# ESP PPP Link component (eppp_link)
2
2
3
3
The component provides a general purpose connectivity engine between two microcontrollers, one acting as PPP server, the other one as PPP client.
4
-
This component could be used for extending network using physical serial connection. Applications could vary from providing PRC engine for multiprocessor solutions to serial connection to POSIX machine. This uses a standard PPP protocol (if enabled) to negotiate IP addresses and networking, so standard PPP toolset could be used, e.g. a `pppd` service on linux. Typical application is a WiFi connectivity provider for chips that do not have WiFi.
4
+
This component could be used for extending network using physical serial connection. Applications could vary from providing RPC engine for multiprocessor solutions to serial connection to POSIX machine. This uses a standard PPP protocol (if enabled) to negotiate IP addresses and networking, so standard PPP toolset could be used, e.g. a `pppd` service on linux. Typical application is a WiFi connectivity provider for chips that do not have WiFi.
5
5
Uses simplified TUN network interface by default to enable faster data transfer on non-UART transports.
6
6
7
7
## Typical application
@@ -21,6 +21,27 @@ brings in the WiFi connectivity from the communication coprocessor.
21
21
+----------------+ +----------------+
22
22
```
23
23
24
+
## Features
25
+
26
+
### Network Interface Modes
27
+
28
+
Standard PPP Mode (where PPP protocols is preferred) or simple tunnel using TUN Mode.
29
+
30
+
### Transport layer
31
+
32
+
UART, SPI, SDIO, Ethernet
33
+
34
+
### Support for logical channels
35
+
36
+
Allows channeling custom data (e.g. 802.11 frames)
37
+
38
+
## (Other) usecases
39
+
40
+
Besides the communication coprocessor example mentioned above, this component could be used to:
41
+
* Bring Wi-Fi connectivity to a computer using ESP32 chip.
42
+
* Connect your microcontroller to the internet via a pppd server (running on a raspberry)
43
+
* Bridging two networks with two microcontrollers
44
+
24
45
## Configuration
25
46
26
47
### Choose the transport layer
@@ -39,6 +60,14 @@ Use `idf.py menuconfig` to select the transport layer:
39
60
40
61
Use PPP netif for UART; Keep the default (TUN) for others
41
62
63
+
### Channel support (multiple logical channels)
64
+
65
+
*`CONFIG_EPPP_LINK_CHANNELS_SUPPORT` -- Enable support for multiple logical channels (default: disabled)
66
+
*`CONFIG_EPPP_LINK_NR_OF_CHANNELS` -- Number of logical channels (default: 2, range: 1-8, only visible if channel support is enabled)
67
+
68
+
When channel support is enabled, the EPPP link can multiplex multiple logical data streams over the same transport. The number of channels is configurable. Channel support is not available for Ethernet transport.
69
+
70
+
To use channels in your application, use the `eppp_add_channels()` API and provide your own channel transmit/receive callbacks. These APIs and related types are only available when channel support is enabled in Kconfig.
42
71
43
72
## API
44
73
@@ -57,6 +86,9 @@ Use PPP netif for UART; Keep the default (TUN) for others
57
86
*`eppp_netif_start()` -- Starts the network, could be called after startup or whenever a connection is lost
58
87
*`eppp_netif_stop()` -- Stops the network
59
88
*`eppp_perform()` -- Perform one iteration of the PPP task (need to be called regularly in task-less configuration)
89
+
#ifdef CONFIG_EPPP_LINK_CHANNELS_SUPPORT
90
+
*`eppp_add_channels()` -- Register channel transmit/receive callbacks (only available if channel support is enabled)
0 commit comments