Title and Copyright Information
About This Manual
Audience
New and Changed Features
Organization
Related Documents
Reader's Comments
Conventions
1 Overview of DIGITAL UNIX ATM Architecture
1.1 ATM Subsystem
1.1.1 Connection Management Module
1.1.2 CMM Interfaces
1.2 ATM Subsystem Configuration
2 Configuring the ATM Software
2.1 ATM Environment
2.1.1 Classical IP Environment
2.1.2 LAN Emulation Environment
2.1.3 IP Switching
2.2 ATM Planning
2.2.1 Verifying That the ATM Subsets Are Installed
2.2.2 Configuring ATM into the Kernel
2.2.3 Preparing for the Configuration
2.2.3.1 Classical IP Information
2.2.3.2 LAN Emulation Information
2.2.3.3 IP Switching Information
2.3 Configuring ATM
2.3.1 Configuring Classical IP
2.3.1.1 Editing the /etc/atmhosts File
2.3.1.2 Adding Hosts to the hosts Database
2.3.1.3 Running atmsetup
2.3.1.4 Running netsetup (SVCs only)
2.3.1.5 Editing the /etc/atm.conf File (PVCs only)
2.3.1.6 Running atmconfig (PVCs only)
2.3.2 Configuring LAN Emulation
2.3.2.1 Editing the /etc/atmhosts File
2.3.2.2 Adding Hosts to the hosts Database
2.3.2.3 Running atmsetup
2.3.2.4 Running netsetup
2.3.3 Configuring IP Switching
2.3.3.1 Editing the /etc/hosts File
2.3.3.2 Running atmsetup
2.3.3.3 Editing the /etc/atm.conf File
2.3.3.4 Running atmconfig
2.4 Managing the ATM Environment
2.4.1 Managing ATM Networking and Displaying Information About ATM Networks
2.4.2 Managing the Signaling Module
2.4.3 Managing the Classical IP Environment
2.4.4 Managing the LAN Emulation Environment
2.4.4.1 Managing LAN Emulation Clients
2.4.4.2 Displaying the LE-ARP Table
2.4.5 Managing IP Switching
2.5 Solving Problems
2.5.1 Using the Diagnostic Map
2.5.2 Getting Started
2.5.3 Solving ATM Problems
2.5.3.1 Solving CLIP Problems
2.5.3.2 Solving LANE Problems
2.5.3.3 Solving IP Switching Problems
3 ATM Subsystem General Features
3.1 Header Files
3.2 Kernel Data File
3.3 ATM Module Configuration
3.4 Error Codes
3.5 Data Formats
3.5.1 Raw ATM Cells
3.5.2 Cooked Data
3.5.3 How the Data Is Carried
3.5.4 Time-Stamping
3.6 Physical Point of Attachment
3.6.1 Permanent Virtual Circuit PPAs
3.6.2 Switched Virtual Circuit PPAs
3.7 Memory Allocation
3.8 ATM Locking Macros
3.8.1 Locking Guidelines
3.8.2 Types of Locking Methods
3.8.3 Order of Locking Macros
3.8.4 Creation of ATM Threads
3.9 Types of Circuits
3.10 Global Data Structures
3.10.1 The atm_vc Structure
3.10.1.1 The conv_pp1 and conv_pp2 Members
3.10.1.2 The sig_pp1, sig_pp2, drv_pp1, and drv_pp2 Members
3.10.1.3 The vcs Member
3.10.1.4 The call_reference Member
3.10.1.5 The errno Member
3.10.1.6 The vci and vpi Members
3.10.1.7 The ppa Member
3.10.1.8 The selector Member
3.10.1.9 The direction Member
3.10.2 The atm_addr Structure
3.10.2.1 The vc Member
3.10.2.2 The address Member
3.10.2.3 The ton Member
3.10.2.4 The anpi Member
3.10.2.5 The subaddress Member
3.10.2.6 The subaddress_type Member
3.10.2.7 The eprtype Member
3.10.2.8 The endpoint Member
3.10.2.9 The state Member
3.10.2.10 The atm_error Member
3.10.2.11 The setup Member
3.10.2.12 The connect Member
3.10.2.13 The location, cause, diag_length, and diagnostic Members
3.10.2.14 The endstate Member
3.10.2.15 The conv_p1 and conv_p2 Members
3.10.2.16 The sig_p1 and sig_p2 Members
3.10.2.17 Allocating the atm_addr Structure
3.10.3 The atm_vc_services Structure
3.10.3.1 The vc Member
3.10.3.2 The fqos and bqos Members
3.10.3.3 The fmtu and bmtu Members
3.10.3.4 The valid_rates Member
3.10.3.5 The fpeakcr, bpeakcr, fsustcr, bsustcr, fburstcr, and bburstcr Members
3.10.3.6 The flags Member
3.10.3.7 The aal Member
3.10.3.8 The queue Member
3.10.3.9 The bearer_class Member
3.10.3.10 The lerrstat Member
3.10.3.11 The nerrstat Member
3.10.3.12 The cmm_drv_handle Member
3.10.3.13 The drv_resource Member
3.10.3.14 The converge_handle Member
3.10.3.15 Allocating the atm_vc_services Structure
3.10.4 The atm_uni_call_ie Structure
3.10.4.1 The ie_type Member
3.10.4.2 The last Member
3.10.4.3 The aal_params Member
3.10.4.4 The bb_high_layer and bb_low_layer Members
3.10.4.5 Allocating the atm_uni_call_ie Structure
3.10.4.6 Setting Fields in the atm__uni_call_ie Structure
3.10.5 The atm_ppa Structure
3.10.5.1 The driver Member
3.10.5.2 The sig Member
3.10.5.3 The ppas_id Member
3.10.5.4 The ton Member
3.10.5.5 The anpi Member
3.10.5.6 The addrlen Member
3.10.5.7 The address Member
3.10.5.8 The uni Member
3.10.5.9 The type Member
3.10.5.10 The esi_arg Member
3.10.6 The atm_esi Structure
3.10.6.1 The esi and esilen Members
3.10.6.2 The driver Member
3.10.6.3 The sigp1 and sigp2 Members
3.10.7 The atm_cause_info Structure
3.10.7.1 The cause Member
3.10.7.2 The location Member
3.10.7.3 The module_name Member
3.10.7.4 The reason Member
3.10.7.5 The diag_length Member
3.10.7.6 The diag Member
4 Device Driver Interface
4.1 Registering the Device Driver
4.2 Receiving Data Packets and Cells
4.3 Reporting Errors
4.4 Using ATM Device Driver Interface Structures
4.4.1 The atm_drv_params Structure
4.4.1.1 The name member
4.4.1.2 The unit Member
4.4.1.3 The type Member
4.4.1.4 The num_vc Member
4.4.1.5 The max_vcib and max_vpib Members
4.4.1.6 The max_vci and max_vpi Members
4.4.1.7 The sent Member
4.4.1.8 The received Member
4.4.1.9 The dropped Member
4.4.1.10 The num_vci and num_vpi Members
4.4.1.11 The hard_mtu Member
4.4.1.12 The nqueue Member
4.4.1.13 The flowcontrol Member
4.4.1.14 The rates Member
4.4.1.15 The capabilities Member
4.4.1.16 The numid Member
4.4.1.17 The ids Member
4.4.2 The atm_queue_param Structure
4.4.2.1 The vc Member
4.4.2.2 The qlength Member
4.4.2.3 The qtime Member
4.4.2.4 The flags Member
5 Signaling Module Interface
5.1 Registering the Signaling Module
5.2 Receiving a New Call
5.3 Reporting a VC Activation
5.4 Activating a Connection
5.5 Reporting a Connection Failure
5.6 Releasing a Connection
5.7 Dropping an Endpoint
5.8 Deleting a Connection
5.9 Restarting a Virtual Circuit
5.10 Reporting a Completed Restart
5.11 Reporting a Completed Status Enquiry
5.12 Requesting Endpoint Information
5.13 Adding a PPA
5.14 Deleting a PPA
5.15 Reporting Completed MIB Access
5.16 Requesting VC Status
5.17 Using the atm_oid Structure
6 Convergence Module Interface
6.1 Registering a Convergence Module
6.2 Receiving Data
6.2.1 Receiving Exception Notifications
6.2.2 Connecting to the ATM Module Management Interface
6.3 Unregistering a Convergence Module
6.4 Requesting Interface Parameters
6.5 Reserving Resources for CBR and Pacing Circuits
6.6 Releasing Reserved Resources
6.7 Requesting a Connection to a Remote System
6.8 Adding an Endpoint to a Connection
6.9 Requesting a Connection Be Torn Down
6.10 Dropping an Endpoint from a Connection
6.11 Transmitting Data on an Established VC
6.12 Modifying VC Parameters
6.13 Requesting Endpoint Connection State Information
6.14 Binding to a PPA
6.15 Receiving a Connection Notification
6.16 Unbinding from a PPA
6.17 Accepting an Incoming Call
6.18 Rejecting an Incoming Call
6.19 Adding a New ATM Address
6.20 Deleting an ATM Address
6.21 Requesting VC Statistics
6.22 Using ATM Convergence Module Interface Structures
6.22.1 The atm_vc_stats Structure
6.22.2 The atm_cmi_addr Union
6.22.2.1 The addr Member
6.22.2.2 The vcn Member
7 Connections
7.1 Making Outgoing Connections
7.1.1 Making the Call
7.1.2 Adding Parties to an Existing Connection
7.2 Accepting Connections
7.3 Controlling the Aging of Connections
7.4 Releasing a Connection
7.4.1 Release by a Convergence Module
7.4.2 Release by Network or Endpoint
7.5 Creating Permanent Virtual Circuits
7.6 Creating Signaling Virtual Circuits
8 Module Management Interface
8.1 Creating an MMI Path
8.2 Defining New MMI ioctl Commands
8.3 Using MMI Calling Conventions
8.4 Using the Device Driver MMI
8.5 Using the Signaling Module MMI
8.6 Using the Convergence Module MMI
9 Queuing Guidelines
9.1 Queuing in Device Drivers
9.1.1 Device Driver Transmit Queuing
9.1.2 Device Driver Receive Queuing
9.2 Queuing in Convergence Modules
9.2.1 Convergence Module Transmit Queuing
9.2.2 Convergence Module Receive Queuing
10 Flow Control
10.1 Hardware Flow Control
10.2 Software Flow Control
10.2.1 High-Water Mark
10.2.2 Low-Water Mark
10.3 Convergence Module Flow Control
A CMM Routines
B Connection Programming Examples
B.1 Making a Call
B.2 Adding More Parties to a Point-to-Multipoint Connection
B.3 Processing an Incoming Call