tels.7 (2010 09)

t
tels(7) tels(7)
NAME
tels, telm - STREAMS Telnet slave (pseudo-terminal) driver, STREAMS Telnet master driver (used by tel-
netd only), respectively
SYNOPSIS
#include <sys/termios.h>
#include <sys/strtio.h>
int open("/dev/pts/t
N", O_RDWR);
DESCRIPTION
A Telnet pseudo-terminal consists of a tightly-coupled pair of character devices, called the master device
and slave device. The master and slave device drivers work together to provide a Telnet connection on
the server side where the master provides a connection to
telnetd and the slave provides a terminal
device special file access for the Telnet application processes, as depicted below:
--------------------------
| Pseudo terminal functions|
Application <--> |--------------------------| <--> telnetd
Processes | Slave | Master |
| (tels) | (telm) |
--------------------------
The slave driver,
tels with ptem (STREAMS pty emulation module) and ldterm (STREAMS line dis-
cipline module) pushed on top (not shown for simplicity), provides a terminal interface as described in
termio (7). Whereas devices that provide the terminal interface described in termio (7) have a hardware
device behind them; in contrast, the slave device has telnetd manipulating it through the master side
of the Telnet pseudo terminal.
There are no nodes in the file system for each individual master device. Rather, the master driver is set
up as a STREAMS clone (7) driver with its major device number set to the major for the clone driver and
its minor device number set to the major for the
telm driver. The master driver is opened by telnetd
using the open (2) system call with /dev/telnetm as the device file parameter. The clone open finds
the next available minor number for the master device. The master device is available only if it and its
corresponding slave device are not already opened.
In order to use the STREAMS Telnet subsystem, a node for the master driver
/dev/telnetm and N
number of Telnet slave devices must be installed.
The number of slave devices is set by a kernel tunable parameter called
nstrtel. This can be modified
using SAM; its default and minimum value is 60. The value of nstrtel is the upper limit of the number
of telnet sessions that can be opened.
Multiple opens are allowed on the Telnet slave device.
The master and slave drivers pass all STREAMS messages to their adjacent drivers. When the connection
is closed from the Telnet client side, an
M_HANGUP message is sent to the corresponding slave device
which will render that slave device unusable. The process on the slave side gets the errno ENXIO when
attempting a write (2) system call to the slave device file but it will be able to read any data remaining in
the slave stream. Finally, when all the data has been read, the read (2) system call will return 0, indicat-
ing that the slave can no longer be used.
AUTHOR
tels() and telm() were developed by HP.
FILES
/dev/telnetm Streams Telnet master clone device
/dev/pts/tN Streams slave devices where N is the minor number of the slave device and 0 < N <
nstrtel.
SEE ALSO
insf(1M), open(2), ioctl(2), streamio(7), ldterm(7), telnetd(1M), ptem(7).
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)