ATMTCP(8)
β¨ atmtcp(8) β Maintenance Commands β¨
okay bestie, buckle up, because we're talking about atmtcp from the <pink>Maintenance Commands</pink> era, aka Linux, April 26, 2000. this is the little tool that sets up ATM over TCP connections and honestly? she ate. π
πΈ NAME πΈ
atmtcp β set up ATM over TCP connections. no cap, that's literally the whole job. π¦
π SYNOPSIS π
atmtcp [-d] [-v] command ...
atmtcp -V
π DESCRIPTION π
so the main purpose of atmtcp is to establish TCP connections and then configure them as virtual ATM devices. iconic behaviour honestly. these pairs of "ATM over TCP" devices are connected as if they were real ATM adapters linked by a cable or fiber β meaning SDUs sent on a given VPI/VCI are received at the other end on the same VPI/VCI. same energy on both sides, periodt. β¨
virtual interfaces and ATM over TCP connections are called links. other link types atmtcp supports are: real interfaces, files for recording and playback of ATM traffic, and printing a hex dump of the PDU content on standard output. any pair of such links can be connected with atmtcp. and if additional links are attached to such a connection, they send to all other links, except to the first link and the respective sender, and they receive from all other links. it's giving group chat but make it networking. π«Ά
atmtcp can operate with two types of virtual interfaces: ephemeral or persistent. by default, atmtcp interfaces are ephemeral. when the atmtcp process that created an interface terminates, the virtual ATM device is removed as soon all VCs are closed. but β plot twist β if the interface was previously created as a persistent interface, only the communication stops, but the interface and all VCs on it remain intact. attempts to send data on an atmtcp interface in this state fail silently, i.e. the interface behaves just like a real ATM interface without a wire. a new atmtcp process can then attach to the interface and resume operation. persistent interfaces need to be removed explicitly. no ghosting allowed. π
if atmtcp has any readable links after processing the command line, it enters a loop to perform the data forwarding. if no readable links have been specified, atmtcp terminates after processing the command line. if any setup operation fails, atmtcp terminates at this point and does not attempt to cancel previous operations (e.g. creation of permanent interfaces). so yeah, she leaves the scene, no cleanup arc. π
π OPTIONS π
-dβ print detailed progress information on standard error. she's a yapper and we love that for her. π-vβ print some progress information on standard error. just a lil update, not a whole monologue.-Vβ print version number ofatmtcpon standard output and exit. identity check, then she's gone. β¨
π COMMANDS π
create [itf]β create a persistent interface. if no interface number is specified,atmtcpuses the default value0.remove [itf]β remove a persistent interface. if the interface is still in use, it is marked as ephemeral and will be removed as soon as all VCs are closed. if no interface number is specified,atmtcpuses the default value0.virtual [itf]β link to the corresponding virtual (ATM over TCP) interface. if no interface number is specified, the kernel assigns the first available number.real [itf]β link to the corresponding ATM interface. if no interface number is specified,atmtcpuses the default value0. if a link requests that a VC be opened,atmtcpwill attempt to open a VC with the specified QoS parameters on that interface. if the operation succeeds, data can be sent or received on that VC. if the operation fails, an error code is returned to the requester. note that only data arriving on open VCs can be received and that a real ATM interface never initiates a connection.atmtcpcan share ATM interfaces with other applications. she shares, she plays nice. π«Άconnect host [port]β connect to an instance ofatmtcprunning on the specified host. if the port argument is omitted,atmtcpuses the default port2812.switch host line [port]β likeconnect, but connects to an ATM over TCP "switch" and selects the specified virtual line.listen [port]β listen for an incoming ATM over TCP connection. if the port argument is omitted,atmtcpuses the default port2812.atmtcpwaits until the connection is established. only one connection is accepted perlistencommand. one at a time bestie, she's not juggling. πlisten-bg [port]β likelisten, but run in background after beginning to listen. main character energy, but off-screen. π¬read file [stream]β play back all streams from the specified file. if a stream number is specified, only that stream is played back.write fileβ record the traffic of all links in the specified file. the PDUs from each link are stored in a stream with the same number as the link.printβ print a hex dump of the content of all received PDUs on standard output.bgβ continue to run in background (i.e. in a forked child process).wait [seconds]β wait for the specified number of seconds. if no time is specified,atmtcpwaits for a newline on standard input. press enter when you're ready, queen. β
π RESTRICTIONS π
due to recent protocol changes, atmtcp is currently not compatible with the ATM over TCP "switch". it's giving exes who don't text back. π
only AAL SDUs are exchanged, no segmentation or reassembly is performed. that implies that using different AALs (e.g. AAL5 and AAL0) on either side will reveal limitations of this emulation.
the atmtcp process needs to run during the the whole lifetime of the connection. yes, the whole time. she is committed. π
π¦ EXAMPLES π¦
create a pair of virtual ATM over TCP interfaces on the local host and connect them:
# session A
atmtcp virtual listen
# session B
atmtcp virtual connect localhost
create virtual interface 1, connect it to real ATM interface 0, then start atmsigd on the virtual interface, and log all the traffic in a file:
atmtcp virtual 1 real 0 write /tmp/log
atmsigd 1.0.5
take the previously created file and examine the traffic sent from atmsigd using saaldump:
# session A
atmtcp virtual 1 read /tmp/log 0 wait
# session B
saaldump 1.0.5
# press [Enter] in session A
π AUTHOR π
Werner Almesberger, EPFL ICA <Werner.Almesberger@epfl.ch>
π SEE ALSO π
and that's the whole page, bestie β written by the Linux crew back on April 26, 2000, and yes the manual name is atmtcp and it lives in section 8, no cap. go forth and connect those virtual ATM devices. slay. π
β¨π¦
π¦ where this page comes from
- arch rolling: linux-atm 2.5.2-9 Β· GPL-2.0-only
- debian bookworm: atm-tools 1:2.5.1-4+b2
- debian trixie: atm-tools 1:2.5.1-7
- fedora 43: linux-atm 2.5.1-45.fc43 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 44: linux-atm 2.5.1-46.fc44 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu jammy: atm-tools 1:2.5.1-4build2
- ubuntu noble: atm-tools 1:2.5.1-5.1build1
- ubuntu resolute: atm-tools 1:2.5.1-9
- ubuntu stonking: atm-tools 1:2.5.1-9
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms