Title and Copyright Information |
About This Manual |
Audience |
New and Changed Features |
Organization |
Related Documents |
Reader's Comments |
Conventions |
1 | Overview of ATM Architecture |
1.1 | ATM Subsystem |
1.1.1 | Connection Management Module |
1.1.2 | CMM Interfaces |
1.2 | ATM Subsystem Configuration |
2 | ATM Subsystem General Features |
2.1 | Header Files |
2.2 | ATM Module Configuration |
2.3 | Error Codes |
2.4 | Data Formats |
2.4.1 | Raw ATM Cells |
2.4.2 | Cooked Data |
2.4.3 | How the Data Is Carried |
2.4.4 | Time-Stamping |
2.5 | Physical Point of Attachment |
2.5.1 | Permanent Virtual Circuit PPAs |
2.5.2 | Switched Virtual Circuit PPAs |
2.6 | Memory Allocation |
2.7 | ATM Locking Macros |
2.7.1 | Locking Guidelines |
2.7.2 | Types of Locking Methods |
2.7.3 | Order of Locking Macros |
2.7.4 | Creation of ATM Threads |
2.8 | Types of Circuits |
2.9 | Global Data Structures |
2.9.1 | The atm_vc Structure |
2.9.1.1 | The conv_pp1 and conv_pp2 Members |
2.9.1.2 | The sig_pp1, sig_pp2, drv_pp1, and drv_pp2 Members |
2.9.1.3 | The vcs Member |
2.9.1.4 | The call_reference Member |
2.9.1.5 | The errno Member |
2.9.1.6 | The vci and vpi Members |
2.9.1.7 | The ppa Member |
2.9.1.8 | The selector Member |
2.9.1.9 | The direction Member |
2.9.2 | The atm_addr Structure |
2.9.2.1 | The vc Member |
2.9.2.2 | The address Member |
2.9.2.3 | The ton Member |
2.9.2.4 | The anpi Member |
2.9.2.5 | The subaddress Member |
2.9.2.6 | The subaddress_type Member |
2.9.2.7 | The eprtype Member |
2.9.2.8 | The endpoint Member |
2.9.2.9 | The state Member |
2.9.2.10 | The atm_error Member |
2.9.2.11 | The setup Member |
2.9.2.12 | The connect Member |
2.9.2.13 | The location, cause, diag_length, and diagnostic Members |
2.9.2.14 | The endstate Member |
2.9.2.15 | The conv_p1 and conv_p2 Members |
2.9.2.16 | The sig_p1 and sig_p2 Members |
2.9.2.17 | Allocating the atm_addr Structure |
2.9.3 | The atm_vc_services Structure |
2.9.3.1 | The vc Member |
2.9.3.2 | The fqos and bqos Members |
2.9.3.3 | The fmtu and bmtu Members |
2.9.3.4 | The valid_rates Member |
2.9.3.5 | The fpeakcr, bpeakcr, fsustcr, bsustcr, fburstcr, and bburstcr Members |
2.9.3.6 | The flags Member |
2.9.3.7 | The aal Member |
2.9.3.8 | The queue Member |
2.9.3.9 | The bearer_class Member |
2.9.3.10 | The lerrstat Member |
2.9.3.11 | The nerrstat Member |
2.9.3.12 | The cmm_drv_handle Member |
2.9.3.13 | The drv_resource Member |
2.9.3.14 | The converge_handle Member |
2.9.3.15 | Allocating the atm_vc_services Structure |
2.9.4 | The atm_uni_call_ie Structure |
2.9.4.1 | The ie_type Member |
2.9.4.2 | The last Member |
2.9.4.3 | The aal_params Member |
2.9.4.4 | The bb_high_layer and bb_low_layer Members |
2.9.4.5 | Allocating the atm_uni_call_ie Structure |
2.9.4.6 | Setting Fields in the atm__uni_call_ie Structure |
2.9.5 | The atm_ppa Structure |
2.9.5.1 | The driver Member |
2.9.5.2 | The sig Member |
2.9.5.3 | The ppas_id Member |
2.9.5.4 | The ton Member |
2.9.5.5 | The anpi Member |
2.9.5.6 | The addrlen Member |
2.9.5.7 | The address Member |
2.9.5.8 | The uni Member |
2.9.5.9 | The type Member |
2.9.5.10 | The esi_arg Member |
2.9.6 | The atm_esi Structure |
2.9.6.1 | The esi and esilen Members |
2.9.6.2 | The driver Member |
2.9.6.3 | The sigp1 and sigp2 Members |
2.9.7 | The atm_cause_info Structure |
2.9.7.1 | The cause Member |
2.9.7.2 | The location Member |
2.9.7.3 | The module_name Member |
2.9.7.4 | The reason Member |
2.9.7.5 | The diag_length Member |
2.9.7.6 | The diag Member |
3 | Device Driver Interface |
3.1 | Registering the Device Driver |
3.2 | Receiving Data Packets and Cells |
3.3 | Reporting Errors |
3.4 | Using ATM Device Driver Interface Structures |
3.4.1 | The atm_drv_params Structure |
3.4.1.1 | The name member |
3.4.1.2 | The unit Member |
3.4.1.3 | The type Member |
3.4.1.4 | The num_vc Member |
3.4.1.5 | The max_vcib and max_vpib Members |
3.4.1.6 | The max_vci and max_vpi Members |
3.4.1.7 | The sent Member |
3.4.1.8 | The received Member |
3.4.1.9 | The dropped Member |
3.4.1.10 | The num_vci and num_vpi Members |
3.4.1.11 | The hard_mtu Member |
3.4.1.12 | The nqueue Member |
3.4.1.13 | The flowcontrol Member |
3.4.1.14 | The rates Member |
3.4.1.15 | The capabilities Member |
3.4.1.16 | The numid Member |
3.4.1.17 | The ids Member |
3.4.2 | The atm_queue_param Structure |
3.4.2.1 | The vc Member |
3.4.2.2 | The qlength Member |
3.4.2.3 | The qtime Member |
3.4.2.4 | The flags Member |
4 | Signaling Module Interface |
4.1 | Registering the Signaling Module |
4.2 | Receiving a New Call |
4.3 | Reporting a VC Activation |
4.4 | Activating a Connection |
4.5 | Reporting a Connection Failure |
4.6 | Releasing a Connection |
4.7 | Dropping an Endpoint |
4.8 | Deleting a Connection |
4.9 | Restarting a Virtual Circuit |
4.10 | Reporting a Completed Restart |
4.11 | Reporting a Completed Status Enquiry |
4.12 | Requesting Endpoint Information |
4.13 | Adding a PPA |
4.14 | Deleting a PPA |
4.15 | Requesting VC Status |
4.16 | Using the atm_sig_params Structure |
4.16.1 | The sig_setup Member |
4.16.2 | The sig_release Member |
4.16.3 | The sig_add Member |
4.16.4 | The sig_drop Member |
4.16.5 | The sig_enquery Member |
4.16.6 | The sig_restart Member |
4.16.7 | The sig_exception Member |
4.16.8 | The sig_mmi Member |
4.16.9 | The sig_mib Member |
4.16.10 | The reserved1, reserved2, and reserved3 Members |
5 | Convergence Module Interface |
5.1 | Registering a Convergence Module |
5.2 | Receiving Data |
5.2.1 | Receiving Exception Notifications |
5.2.2 | Connecting to the ATM Module Management Interface |
5.3 | Unregistering a Convergence Module |
5.4 | Requesting Interface Parameters |
5.5 | Reserving Resources for CBR Circuits |
5.6 | Releasing Reserved Resources |
5.7 | Requesting a Connection to a Remote System |
5.8 | Adding an Endpoint to a Connection |
5.9 | Requesting a Connection Be Torn Down |
5.10 | Dropping an Endpoint from a Connection |
5.11 | Transmitting Data on an Established VC |
5.12 | Modifying VC Parameters |
5.13 | Requesting Endpoint Connection State Information |
5.14 | Binding to a PPA |
5.15 | Receiving a Connection Notification |
5.16 | Unbinding from a PPA |
5.17 | Accepting an Incoming Call |
5.18 | Rejecting an Incoming Call |
5.19 | Adding a New ATM Address |
5.20 | Deleting an ATM Address |
5.21 | Requesting VC Statistics |
5.22 | Using ATM Convergence Module Interface Structures |
5.22.1 | The atm_vc_stats Structure |
5.22.2 | The atm_cmi_addr Union |
5.22.2.1 | The addr Member |
5.22.2.2 | The vcn Member |
5.22.3 | The atm_cvg_params Structure |
5.22.3.1 | The receive Member |
5.22.3.2 | The exception Member |
5.22.3.3 | The mmi_manage Member |
5.22.3.4 | The endpt_receive Member |
5.22.3.5 | The reserved1, reserved2, and reserved3 Members |
6 | Connections |
6.1 | Making Outgoing Connections |
6.1.1 | Making the Call |
6.1.2 | Adding Parties to an Existing Connection |
6.2 | Accepting Connections |
6.3 | Controlling the Aging of Connections |
6.4 | Releasing a Connection |
6.4.1 | Release by a Convergence Module |
6.4.2 | Release by Network or Endpoint |
6.5 | Creating Permanent Virtual Circuits |
6.6 | Creating Signaling Virtual Circuits |
7 | Module Management Interface |
7.1 | Creating an MMI Path |
7.2 | Verifying the ioctl Version |
7.3 | Defining New MMI ioctl Commands |
7.4 | Using MMI Calling Conventions |
7.5 | Using the Device Driver MMI |
7.6 | Using the Signaling Module MMI |
7.7 | Using the Convergence Module MMI |
8 | Queuing Guidelines |
8.1 | Queuing in Device Drivers |
8.1.1 | Device Driver Transmit Queuing |
8.1.2 | Device Driver Receive Queuing |
8.2 | Queuing in Convergence Modules |
8.2.1 | Convergence Module Transmit Queuing |
8.2.2 | Convergence Module Receive Queuing |
9 | Flow Control |
9.1 | Hardware Flow Control |
9.2 | Software Flow Control |
9.2.1 | High-Water Mark |
9.2.2 | Low-Water Mark |
9.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 |
C | ATM Cause Codes |
Examples |
2-1 | The atm_uni_call_ie Structure Definition |
4-1 | The atm_sig_params Structure Definition |
5-1 | The atm_cvg_params Structure Definition |
B-1 | Making a Call Code Fragment |
B-2 | Adding Parties to a Point-to-Multipoint Connection Code Fragment |
B-3 | Incoming Call Processing Code Fragment |
Figures |
1-1 | ATM Subsystem |
Tables |
2-1 | The atm_vc Structure Members |
2-2 | The atm_addr Structure Members |
2-3 | The atm_vc_services Structure Members |
2-4 | Information Element Macros |
2-5 | The atm_ppa Structure Members |
2-6 | The atm_esi Structure Members |
2-7 | The atm_cause_info Structure Members |
3-1 | The atm_drv_params Structure Members |
3-2 | The atm_queue_param Structure Members |
5-1 | The atm_vc_stats Structure Members |
6-1 | Aging Parameter Values |
7-1 | The atm_mmi_path Structure Members |
Index |