31.11. Asynchronous Transfer Mode (ATM)
Prev | Chapter 31. Advanced Networking | Next

## 31.11. Asynchronous Transfer Mode (ATM)

Contributed by Harti Brandt.

### 31.11.1. Configuring Classical IP over ATM

Classical IP over ATM (CLIP) is the simplest method to use Asynchronous Transfer Mode (ATM) with IP. It can be used with Switched Virtual Circuits (SVCs) and with Permanent Virtual Circuits (PVCs). This section describes how to set up a network based on PVCs.

#### 31.11.1.1. Fully Meshed Configurations

The first method to set up a CLIP with PVCs is to connect each machine to each other machine in the network via a dedicated PVC. While this is simple to configure, it becomes impractical for a large number of machines. The following example supposes four machines in the network, each connected to the ATM network with an ATM adapter card. The first step is the planning of the IP addresses and the ATM connections between the machines. This example uses the following:

Host | IP Address
--- | ---
`hostA` | `192.168.173.1`
`hostB` | `192.168.173.2`
`hostC` | `192.168.173.3`
`hostD` | `192.168.173.4`

To build a fully meshed net, one ATM connection is needed between each pair of machines:

Machines | VPI.VCI couple
--- | ---
`hostA` - `hostB` | 0.100
`hostA` - `hostC` | 0.101
`hostA` - `hostD` | 0.102
`hostB` - `hostC` | 0.103
`hostB` - `hostD` | 0.104
`hostC` - `hostD` | 0.105

The Virtual Path Identifier VPI and Virtual Channel Identifier VCI values at each end of the connection may differ, but for simplicity, this example assumes they are the same. Next, configure the ATM interfaces on each host:

hostA`#` `ifconfig hatm0 192.168.173.1 up` hostB`#` `ifconfig hatm0 192.168.173.2 up` hostC`#` `ifconfig hatm0 192.168.173.3 up` hostD`#` `ifconfig hatm0 192.168.173.4 up`

This example assumes that the ATM interface is `hatm0` on all hosts. Next, the PVCs need to be configured on `hostA`. This should already be configured on the ATM switch; consult the manual for the switch on how to do this.

hostA`#` `atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr` hostA`#` `atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr` hostA`#` `atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr` hostB`#` `atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr` hostB`#` `atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr` hostB`#` `atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr` hostC`#` `atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr` hostC`#` `atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr` hostC`#` `atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr` hostD`#` `atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr` hostD`#` `atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr` hostD`#` `atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr`

Other traffic contracts besides `ubr` can be used if the ATM adapter supports it. In this case, the name of the traffic contract is followed by the parameters of the traffic. Help for the atmconfig(8) tool can be obtained with:

`#` `atmconfig help natm add`

Refer to atmconfig(8) for more information.

The same configuration can also be done via `/etc/rc.conf`. These lines configure `hostA`:

network_interfaces="lo0 hatm0" ifconfig_hatm0="inet 192.168.173.1 up" natm_static_routes="hostB hostC hostD" route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr" route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr" route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"

The current state of all CLIP routes can be obtained with:

hostA`#` `atmconfig natm show`

Prev | Up | Next
31.10. IPv6 | Home | 31.12. Common Address Redundancy Protocol (CARP)

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.