class documentation

class Tunnel: (source)

View In Hierarchy

An in-memory implementation of a tun or tap device.
Method __init__
Method add​To​Read​Buffer Deliver a datagram to this tunnel's read buffer. This makes it available to be read later using the read method.
Method read Read a datagram out of this tunnel.
Method write Write a datagram into this tunnel.
Constant EAGAIN​_STYLE Undocumented
Constant EINTR​_STYLE Undocumented
Constant EWOULDBLOCK​_STYLE Undocumented
Constant SEND​_BUFFER​_SIZE Undocumented
Instance Variable name Undocumented
Instance Variable open​Flags Undocumented
Instance Variable pending​Signals Undocumented
Instance Variable read​Buffer Undocumented
Instance Variable requested​Name Undocumented
Instance Variable system Undocumented
Instance Variable tunnel​Mode Undocumented
Instance Variable write​Buffer Undocumented
Property blocking If the file descriptor for this tunnel is open in blocking mode, True. False otherwise.
Property close​On​Exec If the file descriptor for this tunnel is marked as close-on-exec, True. False otherwise.
Constant _DEVICE​_NAME A string representing the conventional filesystem entry for the tunnel factory character special device.
def __init__(self, system, openFlags, fileMode): (source)
Parameters
systemAn _IInputOutputSystem provider to use to perform I/O.
open​Flags:intAny flags to apply when opening the tunnel device. See os.O_*.
file​Modeignored
def addToReadBuffer(self, datagram): (source)
Deliver a datagram to this tunnel's read buffer. This makes it available to be read later using the read method.
Parameters
datagram:bytesThe IPv4 datagram to deliver. If the mode of this tunnel is TAP then ethernet framing will be added automatically.
def read(self, limit): (source)
Read a datagram out of this tunnel.
Parameters
limit:intThe maximum number of bytes from the datagram to return. If the next datagram is larger than this, extra bytes are dropped and lost forever.
Returns
bytesThe datagram which was read from the tunnel. If the tunnel mode does not include TunnelFlags.IFF_NO_PI then the datagram is prefixed with a 4 byte PI header.
Raises
OSErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
IOErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
def write(self, datagram): (source)
Write a datagram into this tunnel.
Parameters
datagram:bytesThe datagram to write.
Returns
intThe number of bytes of the datagram which were written.
Raises
IOErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
EAGAIN_STYLE = (source)

Undocumented

Value
IOError(EAGAIN, 'Resource temporarily unavailable')
EINTR_STYLE = (source)

Undocumented

Value
IOError(EINTR, 'Interrupted function call')
EWOULDBLOCK_STYLE = (source)

Undocumented

Value
OSError(EWOULDBLOCK, 'Operation would block')
SEND_BUFFER_SIZE: int = (source)

Undocumented

Value
1024
name = (source)

Undocumented

openFlags = (source)

Undocumented

pendingSignals = (source)

Undocumented

readBuffer = (source)

Undocumented

requestedName = (source)

Undocumented

system = (source)

Undocumented

tunnelMode = (source)

Undocumented

writeBuffer = (source)

Undocumented

@property
blocking = (source)
If the file descriptor for this tunnel is open in blocking mode, True. False otherwise.
@property
closeOnExec = (source)
If the file descriptor for this tunnel is marked as close-on-exec, True. False otherwise.
_DEVICE_NAME: bytes = (source)
A string representing the conventional filesystem entry for the tunnel factory character special device.
Value
b'/dev/net/tun'