class PPP – create network connections over serial PPP¶
This class allows you to create a network connection over a serial port using the PPP protocol. It is only available on selected ports and boards.
Example usage:
import network
ppp = network.PPP(uart)
ppp.connect()
while not ppp.isconnected():
pass
print(ppp.ipconfig("addr4"))
# use the socket module as usual, etc
ppp.disconnect()
Constructors¶
- class network.PPP(stream)¶
Create a PPP driver object.
Arguments are:
stream is any object that supports the stream protocol, but is most commonly a
machine.UART
instance. This stream object must have anirq()
method and anIRQ_RXIDLE
constant, for use byPPP.connect
.
Methods¶
- PPP.connect(security=SEC_NONE, user=None, key=None)¶
Initiate a PPP connection with the given parameters:
security is the type of security, either
PPP.SEC_NONE
,PPP.SEC_PAP
, orPPP.SEC_CHAP
.user is an optional user name to use with the security mode.
key is an optional password to use with the security mode.
When this method is called the underlying stream has its interrupt configured to call
PPP.poll
viastream.irq(ppp.poll, stream.IRQ_RXIDLE)
. This makes sure the stream is polled, and data passed up the PPP stack, wheverver data becomes available on the stream.The connection proceeds asynchronously, in the background.
- PPP.disconnect()¶
Terminate the connection. This must be called to cleanly close the PPP connection.
- PPP.isconnected()¶
Returns
True
if the PPP link is connected and up. ReturnsFalse
otherwise.
- PPP.status()¶
Returns the PPP status.
- PPP.config(config_parameters)¶
Sets or gets parameters of the PPP interface. The only parameter that can be retrieved and set is the underlying stream, using:
stream = PPP.config("stream") PPP.config(stream=stream)
- PPP.ipconfig('param')¶
- PPP.ipconfig(param=value, ...)
See
AbstractNIC.ipconfig
.
- PPP.ifconfig([(ip, subnet, gateway, dns)])¶
See
AbstractNIC.ifconfig
.
- PPP.poll()¶
Poll the underlying stream for data, and pass it up the PPP stack. This is called automatically if the stream is a UART with a RXIDLE interrupt, so it’s not usually necessary to call it manually.