NATMIP(4) | MidnightBSD Kernel Interfaces Manual | NATMIP(4) |
natmip
— IP over
ATM PVCs
device atm
options NATM
The NATM protocol stack includes support for IP over ATM. Without any additional signalling stacks or other modules it is possible to build a CLIP (classical IP over ATM) network based on PVCs.
An ATM network card (en0
in this example)
is configured for IP by something like:
ifconfig en0 128.252.200.1 netmask
0xffffff00 up
IP routing is done with special interface routes (routes with directly reachable destinations) with a link layer gateway address. The link layer address specifies the ATM interface through which the destination can be reached, the virtual channel that connects to the destination and the ATM characteristics of this channel. The address part of the link layer address (see link_addr(3)) consists of a fixed part (the first 5 bytes) and a part that depends on the kind of the PVC (UBR, CBR, VBR, ABR). Multi-byte values are big-endian encoded: the bytes with the lower numbers contain the higher order bits.
The variable part for UBR connections may be either empty or three bytes:
The variable part for CBR connections must be three bytes:
The variable part for VBR connections must be 9 bytes long and specifies three values:
The variable part for ABR connections must be 19 bytes long and specifies the following values:
To add a PVC the route(8) utility can be used:
route
add
-iface
⟨remote IP address⟩
-link
⟨iface⟩:⟨lladdr⟩The iface is the ATM interface through which remote IP address can be reached and lladdr is the link layer address as a string of dot-separated, hexadecimal bytes.
NATM also supports the old, original format. This consists of 4 byte link layer addresses (and the channels are implicit UBR):
Thus, parameter 3 means AAL5 and LLC/SNAP encapsulation (this is the required setting for interworking with other CLIP clients). Note that BPF works only with LLC/SNAP encapsulation.
Suppose you have 3 hosts 128.252.200.1, 128.252.200.2 and 128.252.200.3 connected by ATM through PVCs:
The parameters for the VBR channel are: PCR 50000, SCR 10000, MBS 10. The peak cell rate for the CBR channel is 100000.
To enable the links use the following commands:
on host 128.252.200.1:
ifconfig en0 128.252.200.1 netmask 0xffffff00 up route add -iface 128.252.200.2 -link en0:3.0.0.c9.0 route add -iface 128.252.200.3 -link en0:3.0.0.ca.3.0.c3.50.0.27.10.0.0.a
on host 128.252.200.2:
ifconfig en0 128.252.200.2 netmask 0xffffff00 up route add -iface 128.252.200.1 -link en0:3.0.0.c9.0 route add -iface 128.252.200.3 -link en0:3.0.0.cb.1.1.86.a0
on host 128.252.200.3:
ifconfig en0 128.252.200.3 netmask 0xffffff00 up route add -iface 128.252.200.1 -link en0:3.0.0.ca.3.0.c3.50.0.27.10.0.0.a route add -iface 128.252.200.2 -link en0:3.0.0.cb.1.1.86.a0
This can also be done in rc.conf(5):
on host 128.252.200.1:
network_interfaces="lo0 en0" ifconfig_en0="inet 128.252.200.1 netmask 255.255.255.0" static_routes="host2 host3" route_host2="-iface 128.252.200.2 -link en0:3.0.0.c9.0" route_host3="-iface 128.252.200.3 -link en0:3.0.0.ca.3.0.c3.50.0.27.10.0.0.a"
on host 128.252.200.2:
network_interfaces="lo0 en0" ifconfig_en0="inet 128.252.200.2 netmask 255.255.255.0" static_routes="host1 host3" route_host1="-iface 128.252.200.1 -link en0:3.0.0.c9.0" route_host3="-iface 128.252.200.3 -link en0:3.0.0.cb.1.1.86.a0"
on host 128.252.200.3:
network_interfaces="lo0 en0" ifconfig_en0="inet 128.252.200.3 netmask 255.255.255.0" static_routes="host1 host2" route_host1="-iface 128.252.200.1 -link en0:3.0.0.ca.3.0.c3.50.0.27.10.0.0.a" route_host2="-iface 128.252.200.2 -link en0:3.0.0.cb.1.1.86.a0"
Chuck Cranor of Washington University implemented the NATM protocol layer along with the EN ATM driver in 1996 for NetBSD.
August 11, 2003 | midnightbsd-3.1 |