Provided by: atm-tools_2.5.1-1.3_amd64 bug


       atmtcp - set up ATM over TCP connections


       atmtcp [-d] [-v] command ...
       atmtcp -V


       The  main  purpose  of  atmtcp  is  to  establish TCP connections and to configure them as
       virtual ATM devices.  Such pairs of "ATM over TCP" devices are connected as if  they  were
       real  ATM  adapters  linked  by  a  cable  or fiber, i.e. SDUs sent on a given VPI/VCI are
       received at the other end on the same VPI/VCI.

       Virtual interfaces and ATM over TCP  connections  are  called  links.   Other  link  types
       supported  by atmtcp 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.   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.

       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.
       However, 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.

       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


       -d     print detailed progress information on standard error.

       -v     print some progress information on standard error.

       -V     print version number of atmtcp on standard output and exit.


       create [itf]
              create a persistent interface. If no interface number is specified, atmtcp uses the
              default value 0.

       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, atmtcp uses the default value 0.

       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,
              atmtcp  uses  the  default value 0.  If a link requests that a VC be opened, atmtcp
              will 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.  atmtcp can share ATM interfaces with other applications.

       connect host [port]
              connect to an instance of atmtcp running  on  the  specified  host.   If  the  port
              argument is omitted, atmtcp uses the default port 2812.

       switch host line [port]
              like  connect,  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,
              atmtcp  uses  the  default  port  2812.   atmtcp  waits  until  the  connection  is
              established. Only one connection is accepted per listen command.

       listen-bg [port]
              like listen, but run in background after beginning to listen.

       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, atmtcp waits for
              a newline on standard input.


       Due  to  recent protocol changes, atmtcp is currently not compatible with the ATM over TCP

       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.


       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


       Werner Almesberger, EPFL ICA <>