Based on kernel version 3.9. Page generated on 2013-05-02 23:09 EST.
1 2 X.25 support within isdn4linux 3 ============================== 4 5 This is alpha/beta test code. Use it completely at your own risk. 6 As new versions appear, the stuff described here might suddenly change 7 or become invalid without notice. 8 9 Keep in mind: 10 11 You are using several new parts of the 2.2.x kernel series which 12 have not been tested in a large scale. Therefore, you might encounter 13 more bugs as usual. 14 15 - If you connect to an X.25 neighbour not operated by yourself, ASK the 16 other side first. Be prepared that bugs in the protocol implementation 17 might result in problems. 18 19 - This implementation has never wiped out my whole hard disk yet. But as 20 this is experimental code, don't blame me if that happened to you. 21 Backing up important data will never harm. 22 23 - Monitor your isdn connections while using this software. This should 24 prevent you from undesired phone bills in case of driver problems. 25 26 27 28 29 How to configure the kernel 30 =========================== 31 32 The ITU-T (former CCITT) X.25 network protocol layer has been implemented 33 in the Linux source tree since version 2.1.16. The isdn subsystem might be 34 useful to run X.25 on top of ISDN. If you want to try it, select 35 36 "CCITT X.25 Packet Layer" 37 38 from the networking options as well as 39 40 "ISDN Support" and "X.25 PLP on Top of ISDN" 41 42 from the ISDN subsystem options when you configure your kernel for 43 compilation. You currently also need to enable 44 "Prompt for development and/or incomplete code/drivers" from the 45 "Code maturity level options" menu. For the x25trace utility to work 46 you also need to enable "Packet socket". 47 48 For local testing it is also recommended to enable the isdnloop driver 49 from the isdn subsystem's configuration menu. 50 51 For testing, it is recommended that all isdn drivers and the X.25 PLP 52 protocol are compiled as loadable modules. Like this, you can recover 53 from certain errors by simply unloading and reloading the modules. 54 55 56 57 What's it for? How to use it? 58 ============================= 59 60 X.25 on top of isdn might be useful with two different scenarios: 61 62 - You might want to access a public X.25 data network from your Linux box. 63 You can use i4l if you were physically connected to the X.25 switch 64 by an ISDN B-channel (leased line as well as dial up connection should 65 work). 66 67 This corresponds to ITU-T recommendation X.31 Case A (circuit-mode 68 access to PSPDN [packet switched public data network]). 69 70 NOTE: X.31 also covers a Case B (access to PSPDN via virtual 71 circuit / packet mode service). The latter mode (which in theory 72 also allows using the D-channel) is not supported by isdn4linux. 73 It should however be possible to establish such packet mode connections 74 with certain active isdn cards provided that the firmware supports X.31 75 and the driver exports this functionality to the user. Currently, 76 the AVM B1 driver is the only driver which does so. (It should be 77 possible to access D-channel X.31 with active AVM cards using the 78 CAPI interface of the AVM-B1 driver). 79 80 - Or you might want to operate certain ISDN teleservices on your linux 81 box. A lot of those teleservices run on top of the ISO-8208 82 (DTE-DTE mode) network layer protocol. ISO-8208 is essentially the 83 same as ITU-T X.25. 84 85 Popular candidates of such teleservices are EUROfile transfer or any 86 teleservice applying ITU-T recommendation T.90. 87 88 To use the X.25 protocol on top of isdn, just create an isdn network 89 interface as usual, configure your own and/or peer's ISDN numbers, 90 and choose x25iface encapsulation by 91 92 isdnctrl encap <iface-name> x25iface. 93 94 Once encap is set like this, the device can be used by the X.25 packet layer. 95 96 All the stuff needed for X.25 is implemented inside the isdn link 97 level (mainly isdn_net.c and some new source files). Thus, it should 98 work with every existing HL driver. I was able to successfully open X.25 99 connections on top of the isdnloop driver and the hisax driver. 100 "x25iface"-encapsulation bypasses demand dialing. Dialing will be 101 initiated when the upper (X.25 packet) layer requests the lapb datalink to 102 be established. But hangup timeout is still active. Whenever a hangup 103 occurs, all existing X.25 connections on that link will be cleared 104 It is recommended to use sufficiently large hangup-timeouts for the 105 isdn interfaces. 106 107 108 In order to set up a conforming protocol stack you also need to 109 specify the proper l2_prot parameter: 110 111 To operate in ISO-8208 X.25 DTE-DTE mode, use 112 113 isdnctrl l2_prot <iface-name> x75i 114 115 To access an X.25 network switch via isdn (your linux box is the DTE), use 116 117 isdnctrl l2_prot <iface-name> x25dte 118 119 To mimic an X.25 network switch (DCE side of the connection), use 120 121 isdnctrl l2_prot <iface-name> x25dce 122 123 However, x25dte or x25dce is currently not supported by any real HL 124 level driver. The main difference between x75i and x25dte/dce is that 125 x25d[tc]e uses fixed lap_b addresses. With x75i, the side which 126 initiates the isdn connection uses the DTE's lap_b address while the 127 called side used the DCE's lap_b address. Thus, l2_prot x75i might 128 probably work if you access a public X.25 network as long as the 129 corresponding isdn connection is set up by you. At least one test 130 was successful to connect via isdn4linux to an X.25 switch using this 131 trick. At the switch side, a terminal adapter X.21 was used to connect 132 it to the isdn. 133 134 135 How to set up a test installation? 136 ================================== 137 138 To test X.25 on top of isdn, you need to get 139 140 - a recent version of the "isdnctrl" program that supports setting the new 141 X.25 specific parameters. 142 143 - the x25-utils-2.X package from 144 ftp://ftp.hes.iki.fi/pub/ham/linux/ax25/x25utils-* 145 (don't confuse the x25-utils with the ax25-utils) 146 147 - an application program that uses linux PF_X25 sockets (some are 148 contained in the x25-util package). 149 150 Before compiling the user level utilities make sure that the compiler/ 151 preprocessor will fetch the proper kernel header files of this kernel 152 source tree. Either make /usr/include/linux a symbolic link pointing to 153 this kernel's include/linux directory or set the appropriate compiler flags. 154 155 When all drivers and interfaces are loaded and configured you need to 156 ifconfig the network interfaces up and add X.25-routes to them. Use 157 the usual ifconfig tool. 158 159 ifconfig <iface-name> up 160 161 But a special x25route tool (distributed with the x25-util package) 162 is needed to set up X.25 routes. I.e. 163 164 x25route add 01 <iface-name> 165 166 will cause all x.25 connections to the destination X.25-address 167 "01" to be routed to your created isdn network interface. 168 169 There are currently no real X.25 applications available. However, for 170 tests, the x25-utils package contains a modified version of telnet 171 and telnetd that uses X.25 sockets instead of tcp/ip sockets. You can 172 use those for your first tests. Furthermore, you might check 173 ftp://ftp.hamburg.pop.de/pub/LOCAL/linux/i4l-eft/ which contains some 174 alpha-test implementation ("eftp4linux") of the EUROfile transfer 175 protocol. 176 177 The scripts distributed with the eftp4linux test releases might also 178 provide useful examples for setting up X.25 on top of isdn. 179 180 The x25-utility package also contains an x25trace tool that can be 181 used to monitor X.25 packets received by the network interfaces. 182 The /proc/net/x25* files also contain useful information. 183 184 - Henner