Lines Matching refs:channel

22 the services of PPP `channels'.  A PPP channel encapsulates a
24 PPP channel implementation can be arbitrarily complex internally but
27 handle ioctl requests. Currently there are PPP channel
32 natural and straightforward way, by allowing more than one channel to
38 PPP channel API
45 Each channel has to provide two functions to the generic PPP layer,
49 send. The channel has the option of rejecting the frame for
51 and the channel should call the ppp_output_wakeup() function at a
57 program to control aspects of the channel's behaviour. This
60 channel. (Usually it would only be pppd which would do this.)
64 * ppp_register_channel() is called when a channel has been created, to
67 channel code to call this function.
69 * ppp_unregister_channel() is called when a channel is to be
70 destroyed. For example, the ppp_async channel code calls this when
73 * ppp_output_wakeup() is called by a channel when it has previously
77 * ppp_input() is called by a channel when it has received a complete
80 * ppp_input_error() is called by a channel when it has detected that a
84 * ppp_channel_index() returns the channel index assigned by the PPP
85 generic layer to this channel. The channel should provide some way
87 will need it to attach an instance of /dev/ppp to this channel.
90 interface to which this channel is connected, or -1 if the channel
93 Connecting a channel to the ppp generic layer is initiated from the
94 channel code, rather than from the generic layer. The channel is
97 ppp_async channel, this is provided by the file descriptor to the
106 become a PPP channel and register itself with the generic PPP layer.
107 The channel then has to report the channel number assigned to it back
110 negotiation, accessing the channel through the /dev/ppp interface.
117 characters included. That is all the responsibility of the channel
123 The channel must provide an instance of a ppp_channel struct to
124 represent the channel. The channel is free to use the `private' field
125 however it wishes. The channel should initialize the `mtu' and
131 If the channel needs some headroom in the skbuffs presented to it for
135 PPP layer will attempt to provide that much headroom but the channel
150 queue of transmit packets for each attached channel. Normally the
167 channel's start_xmit() function. If the channel refuses to take
169 generic layer will call the channel's start_xmit() function again
170 when the channel calls ppp_output_wakeup() or when the core
179 fragment at the moment. A channel is potentially able to accept a
181 to transmit. The channel may still refuse a fragment; in this case
182 the fragment is queued up for the channel to transmit later. This
201 channel and the generic layer. This is because the channel provides
202 the storage for the ppp_channel structure, and so the channel is
206 The generic layer requires these guarantees from the channel:
214 channel at the time that ppp_unregister_channel() is called for that
215 channel.
223 * The generic layer may call the channel start_xmit() function at
227 * The generic layer will only call the channel ioctl() function in
233 channel while any thread is already executing in that function for
234 that channel.
236 * The generic layer will not call the ioctl() function for a channel
238 channel.
241 will be executing in a call from the generic layer to that channel's
253 or a PPP channel. This is achieved using the file->private_data field
262 existing channel. An instance attached to a unit can be used to send
265 attached to a channel can be used to send and receive PPP frames on
266 that channel.
273 PPP frame sent by a write to the channel will be sent as-is on that
274 channel, without any multilink header.
276 A channel is not initially attached to any unit. In this state it can
283 to a PPP channel. The ioctl calls which are available on an
297 * PPPIOCATTCHAN attaches this instance to an existing PPP channel.
298 The argument should point to an int containing the channel number.
301 channel are:
303 * PPPIOCDETACH detaches the instance from the channel. This ioctl is
309 * PPPIOCCONNECT connects this channel to a PPP interface. The
311 number. It will return an EINVAL error if the channel is already
315 * PPPIOCDISCONN disconnects this channel from the PPP interface that
316 it is connected to. It will return an EINVAL error if the channel
319 * All other ioctl commands are passed to the channel ioctl() function.