Lines Matching +full:sets +full:- +full:of +full:- +full:ports
1 .. SPDX-License-Identifier: GPL-2.0
12 The generic PPP driver in linux-2.4 provides an implementation of the
13 functionality which is of use in any PPP implementation, including:
26 the services of PPP ``channels``. A PPP channel encapsulates a
32 implementations for asynchronous serial ports, synchronous serial
33 ports, and for PPP over ethernet.
43 ---------------
45 See include/linux/ppp_channel.h for the declaration of the types and
53 send. The channel has the option of rejecting the frame for
54 flow-control reasons. In this case, start_xmit() should return 0
60 * ioctl() provides an interface which can be used by a user-space
61 program to control aspects of the channel's behaviour. This
62 procedure will be called when a user-space program does an ioctl
63 system call on an instance of /dev/ppp which is bound to the
69 notify the PPP generic layer of its presence. For example, setting
85 frame has been lost or dropped (for example, because of a FCS (frame
90 (e.g. an ioctl) to transmit this back to user-space, as user-space
91 will need it to attach an instance of /dev/ppp to this channel.
93 * ppp_unit_number() returns the unit number of the ppp network
94 interface to which this channel is connected, or -1 if the channel
99 expected to have some way for a user-level process to control it
100 independently of the ppp generic layer. For example, with the
104 Generally a user-level process will initialize the underlying
107 modem commands, and then going through some sort of dialog with the
109 as ``discovery``. Then the user-level process tells the medium to
112 to the user-level process. From that point, the PPP negotiation code
117 skbuff structures and start with the two-byte PPP protocol number.
120 any escaping of control characters, nor are there any FCS or framing
121 characters included. That is all the responsibility of the channel
123 presented to the start_xmit() function contain only the 2-byte
127 The channel must provide an instance of a ppp_channel struct to
132 represents the maximum size of the data part of the PPP frames, that
133 is, it does not include the 2-byte protocol number.
137 start of the PPP frame), it should set the ``hdrlen`` field of the
138 ppp_channel struct to the amount of headroom required. The generic
143 On the input side, channels should ideally provide at least 2 bytes of
149 --------------------------
151 The generic PPP layer has been designed to minimize the amount of data
152 that it buffers in the transmit direction. It maintains a queue of
154 queue of transmit packets for each attached channel. Normally the
165 (Deflate or BSD-Compress compression), as appropriate. After this
181 decides how many fragments to use based on the length of the packet
182 and the number of channels which are potentially able to accept a
187 scheme has the effect that more fragments are given to higher-
191 transmitted as single fragments, thus reducing the overhead of
196 ----------
198 The PPP generic layer has been designed to be SMP-safe. Locks are
200 to ensure their integrity. As part of this, the generic layer
204 structures that form the basis of the communication between the
216 * No thread may be in a call to any of ppp_input(), ppp_input_error(),
247 call either of those functions subsequently.
251 -----------------
255 channels. Although there is only one /dev/ppp, each open instance of
257 or a PPP channel. This is achieved using the file->private_data field
258 to point to a separate object for each open instance of /dev/ppp. In
260 allowing us to control an arbitrary number of PPP interfaces and
261 channels without having to fill up /dev with hundreds of device names.
265 existing unit, attached to a newly-created unit, or attached to an
274 write to the unit (i.e., to an instance of /dev/ppp attached to the
275 unit) will be subject to bundle-level compression and to fragmentation
277 PPP frame sent by a write to the channel will be sent as-is on that
281 be used for PPP negotiation but not for the transfer of data packets.
285 The ioctl calls which are available on an instance of /dev/ppp depend
291 instance the "owner" of the interface. The argument should point to
292 an int which is the desired unit number if >= 0, or -1 to assign the
293 lowest unused unit number. Being the owner of the interface means
294 that the interface will be shut down if this instance of /dev/ppp is
299 This does not make this instance the owner of the PPP interface.
304 The ioctl calls available on an instance of /dev/ppp attached to a
318 point to an int containing the channel number of the channel to bridge
324 not be part of a bridge at the same time as being part of a unit.
326 part of a bridge or unit, or ENXIO if the requested channel does not
329 * PPPIOCUNBRIDGECHAN performs the inverse of PPPIOCBRIDGECHAN, unbridging
331 does not form part of a bridge.
338 * PPPIOCSMRU sets the MRU (maximum receive unit) for the interface.
341 * PPPIOCSFLAGS sets flags which control the operation of the
348 SC_NO_TCP_CCID disable connection-id compression for
362 The values of these flags are defined in <linux/ppp-ioctl.h>. Note
363 that the values of the SC_MULTILINK, SC_MP_SHORTSEQ and
367 * PPPIOCGFLAGS returns the value of the status/control flags for the
375 SC_DC_ERROR CCP decompressor detected non-fatal error
379 * PPPIOCSCOMPRESS sets the parameters for packet compression or
381 structure (defined in <linux/ppp-ioctl.h>), which contains a
382 pointer/length pair which should describe a block of memory
389 number of this interface unit.
391 * PPPIOCSDEBUG sets the debug flags for the interface to the value in
404 CONFIG_PPP_FILTER option is enabled, the set of packets which reset
407 Two versions of this command exist, to deal with user space
408 expecting times as either 32-bit or 64-bit time_t seconds.
410 * PPPIOCSMAXCID sets the maximum connection-ID parameter (and thus the
411 number of connection slots) for the TCP header compressor and
412 decompressor. The lower 16 bits of the int pointed to by the
413 argument specify the maximum connection-ID for the compressor. If
414 the upper 16 bits of that int are non-zero, they specify the maximum
415 connection-ID for the decompressor, otherwise the decompressor's
416 maximum connection-ID is set to 15.
418 * PPPIOCSNPMODE sets the network-protocol mode for a given network
420 in <linux/ppp-ioctl.h>). The ``protocol`` field gives the PPP protocol
435 * PPPIOCGNPMODE returns the network-protocol mode for a given
437 ``protocol`` field set to the PPP protocol number for the protocol of
438 interest. On return the ``mode`` field will be set to the network-
450 packets and sets the multilink MRRU (maximum reconstructed receive
452 value. If the MRRU value is 0, processing of received multilink
456 Last modified: 7-feb-2002