Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			185 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   
 | |
| X.25 support within isdn4linux
 | |
| ==============================
 | |
| 
 | |
| This is alpha/beta test code. Use it completely at your own risk.
 | |
| As new versions appear, the stuff described here might suddenly change
 | |
| or become invalid without notice.
 | |
| 
 | |
| Keep in mind:
 | |
| 
 | |
| You are using several new parts of the 2.2.x kernel series which
 | |
| have not been tested in a large scale. Therefore, you might encounter
 | |
| more bugs as usual.
 | |
| 
 | |
| - If you connect to an X.25 neighbour not operated by yourself, ASK the
 | |
|   other side first. Be prepared that bugs in the protocol implementation
 | |
|   might result in problems.
 | |
| 
 | |
| - This implementation has never wiped out my whole hard disk yet. But as
 | |
|   this is experimental code, don't blame me if that happened to you.
 | |
|   Backing up important data will never harm.
 | |
| 
 | |
| - Monitor your isdn connections while using this software. This should
 | |
|   prevent you from undesired phone bills in case of driver problems.
 | |
|   
 | |
|  
 | |
| 
 | |
| 
 | |
| How to configure the kernel
 | |
| ===========================
 | |
|  
 | |
| The ITU-T (former CCITT) X.25 network protocol layer has been implemented
 | |
| in the Linux source tree since version 2.1.16. The isdn subsystem might be 
 | |
| useful to run X.25 on top of ISDN. If you want to try it, select
 | |
| 
 | |
|    "CCITT X.25 Packet Layer"
 | |
| 
 | |
| from the networking options as well as
 | |
| 
 | |
|    "ISDN Support" and "X.25 PLP on Top of ISDN"
 | |
| 
 | |
| from the ISDN subsystem options when you configure your kernel for
 | |
| compilation. You currently also need to enable
 | |
| "Prompt for development and/or incomplete code/drivers" from the
 | |
| "Code maturity level options" menu. For the x25trace utility to work
 | |
| you also need to enable "Packet socket".
 | |
| 
 | |
| For local testing it is also recommended to enable the isdnloop driver
 | |
| from the isdn subsystem's configuration menu.
 | |
| 
 | |
| For testing, it is recommended that all isdn drivers and the X.25 PLP
 | |
| protocol are compiled as loadable modules. Like this, you can recover
 | |
| from certain errors by simply unloading and reloading the modules.
 | |
| 
 | |
| 
 | |
| 
 | |
| What's it for? How to use it?
 | |
| =============================
 | |
| 
 | |
| X.25 on top of isdn might be useful with two different scenarios:
 | |
| 
 | |
| - You might want to access a public X.25 data network from your Linux box.
 | |
|   You can use i4l if you were physically connected to the X.25 switch
 | |
|   by an ISDN B-channel (leased line as well as dial up connection should
 | |
|   work).
 | |
| 
 | |
|   This corresponds to ITU-T recommendation X.31 Case A (circuit-mode
 | |
|   access to PSPDN [packet switched public data network]).
 | |
| 
 | |
|   NOTE: X.31 also covers a Case B (access to PSPDN via virtual
 | |
|   circuit / packet mode service). The latter mode (which in theory
 | |
|   also allows using the D-channel) is not supported by isdn4linux.
 | |
|   It should however be possible to establish such packet mode connections
 | |
|   with certain active isdn cards provided that the firmware supports X.31
 | |
|   and the driver exports this functionality to the user. Currently, 
 | |
|   the AVM B1 driver is the only driver which does so. (It should be
 | |
|   possible to access D-channel X.31 with active AVM cards using the
 | |
|   CAPI interface of the AVM-B1 driver).
 | |
| 
 | |
| - Or you might want to operate certain ISDN teleservices on your linux
 | |
|   box. A lot of those teleservices run on top of the ISO-8208
 | |
|   (DTE-DTE mode) network layer protocol. ISO-8208 is essentially the
 | |
|   same as ITU-T X.25.
 | |
| 
 | |
|   Popular candidates of such teleservices are EUROfile transfer or any
 | |
|   teleservice applying ITU-T recommendation T.90.
 | |
| 
 | |
| To use the X.25 protocol on top of isdn, just create an isdn network
 | |
| interface as usual, configure your own and/or peer's ISDN numbers,
 | |
| and choose x25iface encapsulation by
 | |
| 
 | |
|    isdnctrl encap <iface-name> x25iface.
 | |
| 
 | |
| Once encap is set like this, the device can be used by the X.25 packet layer.
 | |
| 
 | |
| All the stuff needed for X.25 is implemented inside the isdn link
 | |
| level (mainly isdn_net.c and some new source files). Thus, it should
 | |
| work with every existing HL driver. I was able to successfully open X.25
 | |
| connections on top of the isdnloop driver and the hisax driver.
 | |
| "x25iface"-encapsulation bypasses demand dialing. Dialing will be
 | |
| initiated when the upper (X.25 packet) layer requests the lapb datalink to
 | |
| be established. But hangup timeout is still active. Whenever a hangup
 | |
| occurs, all existing X.25 connections on that link will be cleared
 | |
| It is recommended to use sufficiently large hangup-timeouts for the
 | |
| isdn interfaces.
 | |
| 
 | |
| 
 | |
| In order to set up a conforming protocol stack you also need to
 | |
| specify the proper l2_prot parameter:
 | |
| 
 | |
| To operate in ISO-8208  X.25 DTE-DTE mode, use
 | |
| 
 | |
|    isdnctrl l2_prot <iface-name> x75i
 | |
| 
 | |
| To access an X.25 network switch via isdn (your linux box is the DTE), use
 | |
| 
 | |
|    isdnctrl l2_prot <iface-name> x25dte
 | |
| 
 | |
| To mimic an X.25 network switch (DCE side of the connection), use
 | |
| 
 | |
|    isdnctrl l2_prot <iface-name> x25dce
 | |
| 
 | |
| However, x25dte or x25dce is currently not supported by any real HL
 | |
| level driver. The main difference between x75i and x25dte/dce is that
 | |
| x25d[tc]e uses fixed lap_b addresses. With x75i, the side which
 | |
| initiates the isdn connection uses the DTE's lap_b address while the
 | |
| called side used the DCE's lap_b address. Thus, l2_prot x75i might
 | |
| probably work if you access a public X.25 network as long as the
 | |
| corresponding isdn connection is set up by you. At least one test
 | |
| was successful to connect via isdn4linux to an X.25 switch using this
 | |
| trick. At the switch side, a terminal adapter X.21 was used to connect
 | |
| it to the isdn.
 | |
| 
 | |
| 
 | |
| How to set up a test installation?
 | |
| ==================================
 | |
| 
 | |
| To test X.25 on top of isdn, you need to get
 | |
| 
 | |
| - a recent version of the "isdnctrl" program that supports setting the new
 | |
|   X.25 specific parameters.
 | |
| 
 | |
| - the x25-utils-2.X package from 
 | |
|   ftp://ftp.hes.iki.fi/pub/ham/linux/ax25/x25utils-*
 | |
|   (don't confuse the x25-utils with the ax25-utils)
 | |
| 
 | |
| - an application program that uses linux PF_X25 sockets (some are
 | |
|   contained in the x25-util package).
 | |
| 
 | |
| Before compiling the user level utilities make sure that the compiler/
 | |
| preprocessor will fetch the proper kernel header files of this kernel
 | |
| source tree. Either make /usr/include/linux a symbolic link pointing to 
 | |
| this kernel's include/linux directory or set the appropriate compiler flags.
 | |
| 
 | |
| When all drivers and interfaces are loaded and configured you need to
 | |
| ifconfig the network interfaces up and add X.25-routes to them. Use
 | |
| the usual ifconfig tool.
 | |
| 
 | |
| ifconfig <iface-name> up
 | |
| 
 | |
| But a special x25route tool (distributed with the x25-util package)
 | |
| is needed to set up X.25 routes. I.e. 
 | |
| 
 | |
| x25route add 01 <iface-name>
 | |
| 
 | |
| will cause all x.25 connections to the destination X.25-address
 | |
| "01" to be routed to your created isdn network interface.
 | |
| 
 | |
| There are currently no real X.25 applications available. However, for
 | |
| tests, the x25-utils package contains a modified version of telnet
 | |
| and telnetd that uses X.25 sockets instead of tcp/ip sockets. You can
 | |
| use those for your first tests. Furthermore, you might check
 | |
| ftp://ftp.hamburg.pop.de/pub/LOCAL/linux/i4l-eft/ which contains some
 | |
| alpha-test implementation ("eftp4linux") of the EUROfile transfer
 | |
| protocol.
 | |
| 
 | |
| The scripts distributed with the eftp4linux test releases might also
 | |
| provide useful examples for setting up X.25 on top of isdn.
 | |
| 
 | |
| The x25-utility package also contains an x25trace tool that can be
 | |
| used to monitor X.25 packets received by the network interfaces.
 | |
| The /proc/net/x25* files also contain useful information. 
 | |
| 
 | |
| - Henner
 |