Q. How do I subscribe to the linux-x25 mailing list? A: Send an e-mail to majordomo@vger.kernel.org, which contains a line subscribe linux-x25 in the message body. Q. Where can I get information on the Linux X.25 protocol support? A: 1. The documentation directory of the >=2.2.x kernel series: /usr/src/linux/Documentation/networking/x25.txt /usr/src/linux/Documentation/networking/x25-iface.txt /usr/src/linux/Documentation/networking/lapb-module.txt 2. The x.25 utility package contains man pages for the x25 utilities. The utility programs are also good examples for using linux x.25 features. ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25-utils-2.1.20.tar.gz 3. The same ftp site contains a file ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tar.gz This contains MS-Word documents. It would be nice if somebody could convert this to postscript and/or html format, put it on a server and notify the linux-x25 community via this mailing list about it. IT SEEMS THAT THIS IS ALREADY DONE, But I don't remember where. If somebody is hosting this, please drop me note such that I can include URLs here. 4. The kernel sources itself: The PLP implementation: /usr/src/linux/net/x25/*.c /usr/src/linux/include/linux/x25.h /usr/src/linux/include/net/x25.h X.25 network device drivers: /usr/src/linux/drivers/net[/wan]/lapbether.c /usr/src/linux/drivers/net[/wan]/x25_asy.c /usr/src/linux/drivers/isdn/isdn_x25iface.c 5. I'm working on implementing Eurofile Transfer (a protocol frequently used here for transmitting files over ISDN). This also uses the x.25 protocol stack (in DTE-DTE mode, no x.25 network involved) and therefor is another example code on using X.25 with Linux. You can find it in the eurofile subdirectory of the recent isdn4k-utils distribution. (refer to http://www.isdn4linux.de for locating a mirror). Q. What is the relation of AX.25 and X.25? A: Well, first X.25 != AX.25 Second, ITU-T recommendation X.25 really specifies three protocols: 1. The X.25 network layer alias "packet layer" alias "layer 3 protocol". 2. The X.25 data link alias "lapb" alias "layer 2 protocol". 3. X.25 physical layer alias "layer 1" alias "X.21" alias "wire". If people talk about THE X.25 protocol without clarifying the layer, they usually talk about the network layer part only. AX.25 is a protocol used by the amateur radio community. It is derived from the X.25 layer 2 protocol, but includes additional address fields (which contain amateur radio call signs) allowing frames to be source-routed over several intermediate digipeaters to the final destination. Thus, AX.25 is rather different from X.25 and in particular is not related to the X.25 network layer at all. Several other protocols are used on top of AX.25 by the amateur radio community. One such protocol is ROSE, and that one is similar to X.25 network layer. Q. Is there an XOT implementation for Linux? A: Yes, ftp://ftp.com1.fr/xot/xotd-0.04.tar.gz Q. BTW, what is XOT? A: It is a method to tunnel X.25 through a tcp/ip stream. See RFC 1613 for details. Q. And what about tunneling IP inside X.25? A: The Linux X.25 stack has currently no special in-kernel support for transmitting IP datagrams inside X.25 connections. You can however do that from a user space program by opening an X.25 socket, reading the incoming ip frames from and writing the outgoing ip frames to the socket in the usual way, and pass the ip frames between the kernel and your user program by means of the ethertap network device driver. Alternatively, there are some intelligent X.25 cards (implementing the whole X.25 stack in firmware) which provide a network interface driver for Linux. Those cards currently cannot be used with AF_X25 sockets, but can tunnel IP traffic inside X.25 connections. The Linux kernel currently ships with the cycx_x25 and the sdla_x25 drivers. Q. Is it possible to do X.25 over an isdn D-channel (X.31 Case B)? A: Currently, not really. The isdn4linux link layer does not support accessing the D-channel directly. However, it should be possible to do X.25/X.31 with an active isdn card supported by linux, provided that the card's firmware supports X.31 over D-channel and the driver exports this functionality somehow to the user. Currently, the avmb1 driver for AVM active cards is the only one doing so (by means of a CAPI interface, which bypasses the isdn4linux link level). Good news: at least one person (Werner Cornelius) has just started a project to add X.31 support to the HiSax isdn driver. Q. How do I configure X.25 support when compiling the kernel. A: First, as the X.25 socket layer and related code is not considered rock solid, it will only appear in the kernel compilation config menu if you allow experimental features. To do so, go to the "Code maturity level options --->" sub-menu and answer enable the "Prompt for development and/or incomplete code/drivers". After that, you should go to the "Networking options --->" sub-menu and enable X.25 PLP support by entering 'y' (for compiling it into the kernel) or 'm' (for compiling it as a module) at the "CCITT X.25 Packet Layer (EXPERIMENTAL)" menu item. If you want to use an X.25 network device driver that needs the lapb module, you likewise need to enable the "LAPB Data Link Driver (EXPERIMENTAL)". To my knowledge, the only X.25 driver that does not need the lapb module is the X.25 on top of ISDN driver. Thus, if unsure, always enter 'm' or 'y' here. The drivers themselves are configured in another, the "Network device support --->" sub-menu. In 2.3.x kernels, this contains yet another "Wan interfaces --->" sub-sub-menu, where you can configure some X.25-capable network devices. There are currently three drivers which should be usable with the AF_X25 protocol stack: "LAPB over Ethernet driver" for doing X.25 over lapb over Ethernet (CAUTION: this is only intended for testing, it does not implement a standardised protocol, it uses ethernet broadcasting which might disturn other hosts) "X.25 async driver" for doing X.25 over lapb over async tty interface "MultiGate (COMX) synchronous serial boards support". The latter driver has a sub-menu where you also need to check "Support for LAPB protocol on MultiGate boards" in order to use it for X.25. In 2.2.x kernels, there is no special X.25 on top of isdn relies on the isdn driver's own lapb implementation. To use it, enable "X.25 PLP on top of ISDN" from the "ISDN subsystem --->" config sub-menu. In 2.2.x kernels, there is no "Wan interfaces" sub-menu, the drivers are directly configured from the "Network device support" menu, and some drivers may not be present there. Q. How do I set up X.25 on top of IEEE 802.2 LLC type 2 (which is the official protocol stack to run X.25 on local area networks)? A: Sorry, you currently can't do so. Some supplementary explanation seems to be necessary here, because the first impression based on a short inspection of the kernel sources (such as grep -i llc net/x25/*.c) or a view at the x25doc.tar.gz seems to indicate the opposite. When Jonathan Naylor, the original author of the Linux X.25 stack, started coding there was no LLC.2 implementation available for Linux. Thus, the focus was on LAPB as the datalink layer. While implementing this, an initial implementation for LLC.2 appeared in the Linux Kernel as part of an early effort to support the SNA protocol family. To prepare for possible LLC.2 support, the X.25 stack was structured in a manner that would easily allow to integrate that LLC.2 support later. But the early LLC.2 implementation was only a starting point, it did not provide an interface that other prototol stacks (such as X.25 PLP) could just plug into for using LLC.2. As almost all operators of IBM main frames started to provide TCP/IP access, there was no longer a big pressure for Linux users to support SNA -- and subsequently LLC.2 -- inside the Linux kernel and the LLC.2 project orphaned. Thus, it was not possible to finally support LLC.2 by X.25. Good news: watching http://www.linux-sna.org seems to indicate that the SNA project is gaining momentum again. Further, IBM now wants to support the Linux OS on their main frame hardware, which hopefully also increases demand for a supported SNA (and subsequently an LLC.2) stack. Thus, it is still not impossible that LLC.2 support could be added to Linux X.25 one day.