Lines Matching refs:the
3 Description of the Interface between Linklevel and Hardwarelevel
8 is based on the struct isdn_if (defined in isdnif.h).
10 An HL-driver can register itself at LL by calling the function
12 to preset some of the fields of isdn_if. The LL sets the rest of
13 the fields. All further communication is done via callbacks using
14 the function-pointers defined in isdn_if.
18 During development of the ISDN subsystem, several changes have been
19 made to the interface. Before it went into kernel, the package
21 was 0.7.4. When the subsystem went into kernel, every functional unit
29 c.c is the revision of the common code.
30 t.t is the revision of the tty related code.
31 n.n is the revision of the network related code.
32 p.p is the revision of the ppp related code.
33 a.a is the revision of the audio related code.
34 v.v is the revision of the V.110 related code.
37 the version number. If that number starts with 0, it refers to the old,
38 separately distributed package. If it starts with one of the letters
39 above, it refers to the revision of the corresponding module.
40 ***CHANGEIx refers to the revision number of the isdnif.h
42 1. Description of the fields of isdn_if:
46 This field has to be set by the HL-driver to the number of channels
47 supported prior to calling register_isdn(). Upon return of the call,
48 the LL puts an id there, which has to be used by the HL-driver when
49 invoking the other callbacks.
55 Also to be preset by the HL-driver. With this value the HL-driver
56 tells the LL the maximum size of a data-packet it will accept.
60 To be preset by the HL-driver. Using this field, the HL-driver
61 announces the features supported. At the moment this is limited to
62 report the supported layer2 and layer3-protocols. For setting this
63 field the constants ISDN_FEATURE..., declared in isdnif.h have to be
72 To be preset by the HL-driver, if it supports sk_buff's. The driver
73 should put here the amount of additional space needed in sk_buff's for
82 packets by calling this function. Upon calling, the HL-driver must
83 already have its private data pulled off the head of the sk_buff.
87 int Channel-number locally to the driver. (starting with 0)
92 This field will be set by LL. This function has to be called by the
93 HL-driver for signaling status-changes or other events to the LL.
99 fields are described together with the descriptions of the possible
100 events. Here is only a short description of the fields:
103 command = event-type. (one of the constants ISDN_STAT_...)
112 This field has to be preset by the HL-driver. It points to a function,
114 setup, etc. The exact meaning of the parameters is described with the
115 descriptions of the possible commands.
120 command = command to perform. (one of the constants ISDN_CMD_...)
132 This field has to be preset by the HL-driver. The given function will
133 be called by the LL for delivering data to be send via B-Channel.
138 int channel-number locally to the HL-driver. (starts with 0)
140 If this is !0, the driver has to signal the delivery
141 by sending an ISDN_STAT_BSENT. If this is 0, the driver
152 This field has to be preset by the HL-driver. The given function will be
154 to the card) The data-format is hardware-specific. This function is
156 and never will be called by the tty-emulation- or network-code. If
157 this function is not supported, the driver has to set NULL here.
167 int channel-number locally to the HL-driver. (starts with 0)
176 This field has to be preset by the HL-driver. The given function will be
178 from the card) The data-format is hardware-specific. This function is
180 and never will be called by the tty-emulation- or network-code. If
181 this function is not supported, the driver has to set NULL here.
191 int channel-number locally to the HL-driver. (starts with 0)
201 This string has to be preset by the HL-driver. Its purpose is for
202 identification of the driver by the user. Eg.: it is shown in the
210 2. Description of the commands, a HL-driver has to support:
212 All commands will be performed by calling the function command() described
213 above from within the LL. The field command of the struct-parameter will
214 contain the desired command, the field driver is always set to the
217 Until now, the following commands are defined:
220 the old "num" and a new setup_type struct used for ISDN_CMD_DIAL
227 etc.) For this purpose, in the LL all ioctl-calls with an argument
229 function after subtracting 0x100 and placing the result in arg.
231 If a userlevel-program calls ioctl(0x101,...) the function gets
232 called with the field command set to 1.
246 This command is used to tell the HL-driver it should dial a given
252 arg = channel-number locally to the driver. (starting with 0)
254 parm.setup.phone = An ASCII-String containing the number to dial.
255 parm.setup.eazmsn = An ASCII-Sting containing the own EAZ or MSN.
259 If the Line has been designed as SPV (a special german
260 feature, meaning semi-leased-line) the phone has to
262 ***CHANGE0.6: In previous versions the EAZ has been given in the
268 With this command, the HL-driver is told to accept a D-Channel-setup.
274 arg = channel-number locally to the driver. (starting with 0)
279 With this command, the HL-driver is told to perform a B-Channel-setup.
285 arg = channel-number locally to the driver. (starting with 0)
290 With this command, the HL-driver is told to hangup (B-Channel if
297 arg = channel-number locally to the driver. (starting with 0)
302 With this command, the HL-driver is told not to signal incoming
303 calls to the LL.
308 arg = channel-number locally to the driver. (starting with 0)
313 With this command, the HL-driver is told to signal incoming calls for
314 the given EAZs/MSNs to the LL.
319 arg = channel-number locally to the driver. (starting with 0)
320 parm.num = ASCII-String, containing the desired EAZ's/MSN's
321 (comma-separated). If an empty String is given, the
323 regardless of the destination-address.
324 ***CHANGE0.6: New since this version the "empty-string"-feature.
328 With this command, the HL-driver is told to report the current setting
334 arg = channel-number locally to the driver. (starting with 0)
335 parm.num = ASCII-String, containing the current EAZ's/MSN's
339 With this command, the HL-driver is told to signal only incoming
340 calls with the given Service-Indicators.
345 arg = channel-number locally to the driver. (starting with 0)
346 parm.num = ASCII-String, containing the desired Service-Indicators.
350 With this command, the HL-driver is told to return the current
356 arg = channel-number locally to the driver. (starting with 0)
357 parm.num = ASCII-String, containing the current Service-Indicators.
361 With this command, the HL-driver is told to select the given Layer-2-
362 protocol. This command is issued by the LL prior to ISDN_CMD_DIAL or
369 arg = channel-number locally to the driver. (starting with 0)
371 protocol-Id is one of the constants ISDN_PROTO_L2...
376 With this command, the HL-driver is told to return the current
377 setting of the Layer-2-protocol.
382 arg = channel-number locally to the driver. (starting with 0)
385 current protocol-Id (one of the constants ISDN_L2_PROTO)
389 With this command, the HL-driver is told to select the given Layer-3-
390 protocol. This command is issued by the LL prior to ISDN_CMD_DIAL or
397 arg = channel-number locally to the driver. (starting with 0)
399 protocol-Id is one of the constants ISDN_PROTO_L3...
404 With this command, the HL-driver is told to return the current
405 setting of the Layer-3-protocol.
410 arg = channel-number locally to the driver. (starting with 0)
413 current protocol-Id (one of the constants ISDN_L3_PROTO)
417 With this command, the HL-driver is told to proceed with a incoming call.
422 arg = channel-number locally to the driver. (starting with 0)
428 With this command, the HL-driver is told to alert a proceeding call.
433 arg = channel-number locally to the driver. (starting with 0)
439 With this command, the HL-driver is told to redirect a call in proceeding
445 arg = channel-number locally to the driver. (starting with 0)
452 With this call, the LL-driver invokes protocol specific features through
453 the LL.
459 arg = The lower 8 Bits define the addressed protocol as defined
460 in ISDN_PTYPE..., the upper bits are used to differentiate
461 the protocol specific CMD.
468 With this command the HL-driver receives a fax sub-command.
474 arg = channel-number locally to the driver. (starting with 0)
478 3. Description of the events to be signaled by the HL-driver to the LL.
480 All status-changes are signaled via calling the previously described
481 function statcallb(). The field command of the struct isdn_cmd has
482 to be set by the HL-driver with the appropriate Status-Id (event-number).
483 The field arg has to be set to the channel-number (locally to the driver,
486 Until now, the following Status-Ids are defined:
490 With this call, the HL-driver signals the availability of new data
503 With this call, the HL-driver signals an incoming call to the LL.
504 If ICALLW is signalled the incoming call is a waiting call without
510 arg = channel-number, locally to the driver. (starting with 0)
521 HL-driver may send ALERTING on the D-channel in this case.
537 The keypad support now is included in the dial command.
542 With this call, the HL-driver signals availability of the ISDN-card.
553 With this call, the HL-driver signals unavailability of the ISDN-card.
554 (before unloading, while resetting/reconfiguring the card)
564 With this call, the HL-driver signals the successful establishment of
570 arg = channel-number, locally to the driver. (starting with 0)
575 With this call, the HL-driver signals the successful establishment of
576 a B-Channel-connection. (Response to ISDN_CMD_ACCEPTB or because the
579 The HL driver should call this when the logical l2/l3 protocol
580 connection on top of the physical B-channel is established.
585 arg = channel-number, locally to the driver. (starting with 0)
587 modem only). This will be appended to the CONNECT message
592 With this call, the HL-driver signals the shutdown of a
594 or caused by a remote-hangup or if the remote-station has actively
600 arg = channel-number, locally to the driver. (starting with 0)
605 With this call, the HL-driver signals the shutdown of a
609 The HL driver should call this as soon as the logical l2/l3 protocol
610 connection on top of the physical B-channel is released.
615 arg = channel-number, locally to the driver. (starting with 0)
620 With this call, the HL-driver delivers charge-unit information to the
626 arg = channel-number, locally to the driver. (starting with 0)
633 With this call, the HL-driver signals that it will be unloaded now. This
634 tells the LL to release all corresponding data-structures.
644 With this call the HL-driver signals the delivery of a data-packet.
645 This callback is used by the network-interfaces only, tty-Emulation
651 arg = channel-number, locally to the driver. (starting with 0)
653 the driver has to set this to the original length
654 of the skb at the time of receiving it from the linklevel.
658 With this call, the driver has to respond to a prior ISDN_CMD_DIAL, if
664 arg = channel-number, locally to the driver. (starting with 0)
671 using ioctl. Those HL-driver simply set the channel-parameter to a
673 the real amount, perform this call, allocating additional channels.
683 With this call, the HL-driver delivers CAUSE-messages to the LL.
684 Currently the LL does not use this messages. Their contents is simply
685 logged via kernel-messages. Therefore, currently the format of the
691 arg = channel-number, locally to the driver. (starting with 0)
696 With this call, the HL-driver delivers DISPLAY-messages to the LL.
697 Currently the LL does not use this messages.
702 arg = channel-number, locally to the driver. (starting with 0)
707 With this call, the HL-driver delivers protocol specific infos to the LL.
713 arg = The lower 8 Bits define the addressed protocol as defined
714 in ISDN_PTYPE..., the upper bits are used to differentiate
715 the protocol specific STAT.
721 With this call, the HL-driver signals the LL to disable or enable the
723 The call may be used to reduce the available number of B-channels after
724 loading the driver. The LL has to ignore a disabled channel when searching
727 The LL returns a nonzero code if the operation was not successful or the
733 arg = channel-number, locally to the driver. (starting with 0)
739 A signal can be sent to the linklevel if an Layer1-error results in
740 packet-loss on receive or send. The field errcode of the cmd.parm
741 union describes the error more precisely.
746 arg = channel-number, locally to the driver. (starting with 0)
751 With this call the HL-driver signals a fax sub-command to the LL.
757 arg = channel-number, locally to the driver. (starting with 0)