HP A4500A - VMEbus Single Board Computer 744 Motherboard Programmer's Manual

Acse/presentation and rose interface programmer's guide
Hide thumbs Also See for A4500A - VMEbus Single Board Computer 744 Motherboard:
Table of Contents

Advertisement

ACSE/Presentation and ROSE Interface
Programmer's Guide
Edition 4
32070-90032
HP9000 Networking
05/97
Printed in: United States
© Copyright 1997 Hewlett-Packard Company. All rights reserved.

Advertisement

Table of Contents
loading

Summary of Contents for HP A4500A - VMEbus Single Board Computer 744 Motherboard

  • Page 1 ACSE/Presentation and ROSE Interface Programmer’s Guide Edition 4 32070-90032 HP9000 Networking 05/97 Printed in: United States © Copyright 1997 Hewlett-Packard Company. All rights reserved.
  • Page 2 Legal Notices The information in this document is subject to change without notice. Hewlett-Packard makes no warranty of any kind with regard to this manual, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard...
  • Page 3 ©copyright 1980, 1984, 1986 Novell, Inc. ©copyright 1986-1992 Sun Microsystems, Inc. ©copyright 1985-86, 1988 Massachusetts Institute of Technology. ©copyright 1989-93 The Open Software Foundation, Inc. ©copyright 1986 Digital Equipment Corporation. ©copyright 1990 Motorola, Inc. ©copyright 1990, 1991, 1992 Cornell University ©copyright 1989-1991 The University of Maryland ©copyright 1988 Carnegie Mellon University Trademark Notices UNIX is a registered trademark in the United...
  • Page 5: Table Of Contents

    Contents 1. APRI Overview Systems Supported ......... .14 ASN.1 Support .
  • Page 6 Contents Binding the Endpoints ........35 Set up the Data Transfer Environment.
  • Page 7 Contents Execution Mode ......... . .58 Connection Retry .
  • Page 8 Contents A. ACSE/Presentation Reference Pages ACSE/Presentation Primitives ....... . 82 Glossary...
  • Page 9 Printing History The manual printing date and part number indicate its current edition. The printing date will change when a new edition is printed. Minor changes may be made at reprint without changing the printing date. The manual part number will change when extensive changes are made. Manual updates may be issued between editions to correct errors or document product changes.
  • Page 11 In This Book This manual describes tools and procedures for using the ACSE/Presentation and ROSE application programmatic interface for OSI products. It is divided into three chapters, which provide the following information: Chapter 1 “APRI Overview” introduces the ACSE/Presentation and ROSE Interface and the supported standards. Chapter 2 “Supported ACSE/Presentation and ROSE Calls”...
  • Page 13: Apri Overview

    APRI Overview This chapter provides an overview of what the HP ACSE/Presentation and ROSE interface provides.
  • Page 14: Systems Supported

    APRI Overview Systems Supported Systems Supported Access to the ACSE/Presentation and ROSE programmatic interface is provided with the HP OTS/9000 product on HP 9000 systems. ASN.1 Support If your application requires encoding/decoding abstract syntax notation one (ASN.1) data structures, you may need to use an ASN.1 compiler. Refer to your compiler's documentation for information about using ASN.1 in your application programs.
  • Page 15: What Is The Hp Acse/Presentation And Rose Interface

    APRI Overview What is the HP ACSE/Presentation and ROSE Interface What is the HP ACSE/Presentation and ROSE Interface The ACSE/Presentation and ROSE interface (APRI) provides a programmatic interface to the Association Control Service Element (ACSE), Remote Operation Service Element (ROSE) and Presentation layer protocols over an OSI network.
  • Page 16 APRI Overview What is the HP ACSE/Presentation and ROSE Interface #define ap_errno _ap_errno() • Any multi-threaded application program, which also includes osi_lib.h, should include it after the threads-specific include files. • See the appropriate man page regarding thread-safe information about the various api’s. Chapter 1...
  • Page 17: Standards Supported

    APRI Overview Standards Supported Standards Supported The interface provided is based on the services defined in the ISO ACSE and Presentation Service Definitions (ISO 8649 and ISO 8822) and ROSE (ISO 9072). The HP OTS/9000 subset implementation of the ACSE/Presentation library interface is based on the UNIX International OSI ACSE/Presentation Library Interface specification draft dated October 25, 1990.
  • Page 18: Limitations

    APRI Overview Standards Supported Figure 1-1 OSI MODEL - ACSE Presentation and ROSE APPLICATION PROCESS ACSE/Presentation & ROSE Interface ACSE ROSE Layer 7 PRESENTATION Layer 6 Layer 5 SESSION Layer 4 TRANSPORT Layer 3 NETWORK Layer 2 DATA LINK Layer 1 PHYSICAL PHYSICAL COMMUNICATION MEDIUM Limitations...
  • Page 19 APRI Overview Standards Supported ACSE/Presentation: • The ap_restore(), ap_save() and ap_osic() calls are not supported. • The environment file (env_file) is not supported. The user's application environment is initialized using ap_init_env(), after which individual attributes can be set or changed using ap_set_env(). •...
  • Page 20: Who Should Use This Manual

    APRI Overview Who Should Use This Manual Who Should Use This Manual This manual is provided for application programmers who need to use ACSE/Presentation and ROSE services. It is expected that the user of this manual is an experienced applications programmer with knowledge of the HP-UX operating system and programming environment, the X.25 protocol, OSI transport, session, and presentation layer functions, networking concepts and the following...
  • Page 21: Supported Acse/Presentation And Rose Calls

    Supported ACSE/Presentation and ROSE Calls This chapter provides lists and brief descriptions of the supported ACSE/ Presentation and ROSE calls and primitives.
  • Page 22: Acse/Presentation Calls And Primitives

    Supported ACSE/Presentation and ROSE Calls ACSE/Presentation Calls and Primitives ACSE/Presentation Calls and Primitives The primitives are grouped in the sequence used in an application. For example, the A_ASSOC_xxx primitives are listed in the order: A_ASSOC_REQ (request) A_ASSOC_IND (indication) A_ASSOC_RSP (response) A_ASSOC_CNF (confirmation) In the manpages entitled ap_intro and ap_env, you’ll find introductions to the A/P environment and the A/P library environment attributes.
  • Page 23: Acse/Presentation Calls

    Supported ACSE/Presentation and ROSE Calls ACSE/Presentation Calls and Primitives ap_init_env() ap_set_env() ap_get_env() • Send and receive service primitives which includes sending/receiving service requests and sending/receiving user data: ap_snd() ap_rcv() • Manage your applications: ap_error() ap_free() ap_poll() ACSE/Presentation Calls The following table lists the supported ACSE/Presentation function calls. Table 2-1 ACSE/Presentation Calls A/P Call...
  • Page 24: Acse/Presentation Primitives

    Supported ACSE/Presentation and ROSE Calls ACSE/Presentation Calls and Primitives A/P Call Description Receive an A/P primitive over an ap_rcv() association. User data may be associated with the primitive. Set an attribute in the A/P ap_set_env() environment. Send an A/P primitive over an ap_snd() association.
  • Page 25 Supported ACSE/Presentation and ROSE Calls ACSE/Presentation Calls and Primitives Primitives Description Used with ap_rcv() to indicate a request for A_ASSOC_IND association establishment. Used with ap_snd() to respond to an association A_ASSOC_RSP establishment request. Used with ap_rcv() to confirm the establishment of A_ASSOC_CNF an association.
  • Page 26 Supported ACSE/Presentation and ROSE Calls ACSE/Presentation Calls and Primitives Primitives Description Used with ap_rcv() to confirm a resynchronized P_RESYNC_CNF request. Used with ap_snd to request the setting of a minor P_SYNCMINOR_REQ sync point. P_SMINOR_REQ Used with ap_rcv to indicate a request the to set a P_SYNCMINOR_IND minor sync point.
  • Page 27: Rose Calls And Primitives

    Supported ACSE/Presentation and ROSE Calls ROSE Calls and Primitives ROSE Calls and Primitives The supported ROSE function calls and primitives are listed in Table 2-3 and in Table 2-4. Also refer to the man page RO_INTRO(5) for general information about ROSE. ROSE Calls ROSE only supports two calls as listed below.
  • Page 28 Supported ACSE/Presentation and ROSE Calls ROSE Calls and Primitives Primitives Description ROSE provider rejection indication. RO_REJECTP_IND RO_REJ_P_IND ROSE user invocation rejection request. RO_REJECTU_REQ RO_REJ_U_REQ ROSE user invocation rejection RO_REJECTU_IND indication. RO_REJ_U_IND Positive remote operation results RO_RESULT_REQ request. RO_RESULTREQ Positive remote operation results RO_RESULT_IND indication.
  • Page 29: Using Acse/Presentation

    Using ACSE/Presentation This chapter provides a sample session using ACSE/Presentation between two processes in synchronous mode.
  • Page 30: Synchronous Acse/Presentation

    Using ACSE/Presentation Synchronous ACSE/Presentation Synchronous ACSE/Presentation ACSE/Presentation calls block until the call is complete in synchronous mode. See the section, “Using Synchronous vs. Asynchronous Mode” in chapter 4 for more information. In order to use the ACSE/Presentation service, the processes do the following: 1.
  • Page 31: Summary Of Calls

    Using ACSE/Presentation Summary of Calls Summary of Calls A summary of the ACSE/Presentation calls are described in the following sections. Table 3-1 ACSE/Presentation Call Summary Process A Process B ap_open() ap_open() ap_init_env() ap_init_env() ap_set_env() (* initiator *) ap_set_env() (* responder *) ap_set_env() (* p-address *) ap_set_env() (* p-address *) ap_set_env() (* B's p-address *)
  • Page 32 Using ACSE/Presentation Summary of Calls Process A Process B ap_rcv() (* rel. ind .*) ap_poll() <====== ap_snd() (* rel. rsp *) ap_rcv() (* rel. cnf .*) ap_close() ap_close() Chapter 3...
  • Page 33: Step 1: Create A Communication Endpoint

    Using ACSE/Presentation Step 1: Create a Communication Endpoint Step 1: Create a Communication Endpoint Process A and Process B must both create communication endpoints as shown in Figure 3-1, using the call ap_open(). A communication endpoint is a file descriptor (fd) which is returned on successful completion of the ap_open() call.
  • Page 34: Step 2: Establish An Association

    Using ACSE/Presentation Step 2: Establish an Association Step 2: Establish an Association The steps to establish an association are described below. Initialize the A/P Environment To use the A/P services, each process must initialize the ACSE/Presentation environment by calling ap_init_env(). (See Figure 3-2.) The ap_init_env() call allocates memory for the environment attributes, and sets the attributes to default values.
  • Page 35: Establish Initiator And Responder Roles

    Using ACSE/Presentation Step 2: Establish an Association Establish Initiator and Responder Roles Process A and Process B establish initiator and responder roles using the attribute, AP_ROLE_ALLOWED in a call to ap_set_env(). In this example, Process A is the initiator, and Process B is the responder. (See Figure 3-3.) Figure 3-3 Establish Roles...
  • Page 36: Set Up The Data Transfer Environment

    Using ACSE/Presentation Step 2: Establish an Association APRI also supports the binding of the local presentation address without specifying a network address. This allows a single responder to receive association indications for any of the subnetworks configured on an OTS/ 9000 system.
  • Page 37: Request The Association

    Using ACSE/Presentation Step 2: Establish an Association Process A calls ap_set_env() using the AP_CNTX_NAME attribute to identify the application context name. Process A then calls ap_set_env() using the AP_PCDL attribute to propose transfer syntaxes for each proposed abstract syntax that will be used for data transfer between Process A and B.
  • Page 38: Confirm The Association

    Using ACSE/Presentation Step 2: Establish an Association Figure 3-6 Request Association Process A Process B AP Environment A AP Environment B remote p-address, appl. context name pres. context def. list ap_poll() ap_snd() Responder Initiator Communication Communication Endpoint B Endpoint A request assoc.
  • Page 39 Using ACSE/Presentation Step 2: Establish an Association Process B can reject the connection if the proposed transfer syntax is not supported by setting the res field in structure ap_cdrl_t to USER_REJ or PROV_REJ and prov_rsn is the reason for the reject. If the process cannot accept the association request for other reasons, the process sets the reason using the A_ASSOC_RSP primitive.
  • Page 40: Step 3. Exchanging Data

    Using ACSE/Presentation Step 3. Exchanging Data Step 3. Exchanging Data Once an association is established, processes can send and receive control data (primitives) and user data. It is the responsibility of the process to encode and decode data with the selected transfer syntax.
  • Page 41 Using ACSE/Presentation Step 3. Exchanging Data Figure 3-8 Send Data Process A Process B AP Environment A AP Environment B ap_get_env() AP_DCS,dcs ap_set_env() AP_PCDRL,pcdrl ap_poll() Responder Initiator ap_snd() Communication Communication ap_rcv() Endpoint B data Endpoint A Chapter 3...
  • Page 42: Step 4: Release The Association

    Using ACSE/Presentation Step 4: Release the Association Step 4: Release the Association Processes must cooperate to ensure that no data is lost when the association is released. This can be accomplished by requesting a release, accepting the release, then terminating the association. Requesting the Release After Process A has completed sending user data, it sends a release request to Process B using ap_snd() with the A_RELEASE_REQ...
  • Page 43 Using ACSE/Presentation Step 4: Release the Association The process closes the association until it receives the positive release response from Process B. Process A monitors events with ap_poll() and receives the response by calling ap_rcv(). If an association is released abnormally, for example, if a lower layer problem occurs, a provider abort (A_PABORT_IND primitive) may be received.
  • Page 44: Step 5: Closing The Communication Endpoint

    Using ACSE/Presentation Step 5: Closing the Communication Endpoint Step 5: Closing the Communication Endpoint Finally, both processes use ap_close() to close down the communication endpoint (file descriptor) and A/P environment resources (see Figure 3-11). If the association is still alive when ap_close() is invoked, the association will be aborted by the provider before the communication endpoint is released.
  • Page 45: Programming Guide

    Programming Guide This chapter provides information to assist you in writing and executing applications using the ACSE/Presentation (A/P) interface.
  • Page 46: Summary Of Programming Tasks

    Programming Guide Summary of Programming Tasks Summary of Programming Tasks The following list summarizes the tasks you need to perform in order to successfully create and execute your programs. These tasks are discussed in more detail in the following sections. 1.
  • Page 47 Programming Guide Summary of Programming Tasks 5. Decide if multiple associations need to be supported. The process accepting multiple connections needs to create additional communication endpoints and instances of the A/P environment. Review the paragraphs describing: execution mode, connection retry, and maximum number of connections supported (system, processes, and other applications).
  • Page 48: Prepare The System

    Programming Guide 1. Prepare the System 1. Prepare the System Before you use the ACSE/Presentation interfaces, make sure that the following has been done: • Verify HP OTS/9000 h as been installed correctly. • Check that the presentation addresses, in particular, the local NSAP(s) used by the ACSE/Presentation applications that have been configured in the OTS configuration file.
  • Page 49: Manage The A/P Environment

    Programming Guide 2. Manage the A/P Environment 2. Manage the A/P Environment The ACSE/Presentation environment contains the necessary information to establish and maintain an association. The primitives used to identify this information are called attributes. See Appendix A, “AP_ENV Table of Attributes”...
  • Page 50: Determine Address Handling

    Programming Guide 2. Manage the A/P Environment On the other hand, when the connection indication is received by the other process, it is established as the responder, and can no longer issue a connection request. The AP_ROLE_CURRENT is automatically set to AP_RESPONDER.
  • Page 51: Negotiating Application And Presentation Contexts

    Programming Guide 2. Manage the A/P Environment ap_set_env(fd,AP_BIND_PADDR,paddress) Note that rebinding the presentation address is not supported in this release. Binding can only be done in the AP_UNBOUND state. A/P supports extended addressing which provides for the maximum address lengths for each selector in the presentation address as shown in the following table: Table 4-1 Selector Maximum Lengths...
  • Page 52: Portability, Migration Considerations

    Programming Guide 2. Manage the A/P Environment Application Contexts (AP_CNTX_NAME) Associations must negotiate the application contexts used. The initiator proposes a service or services to run, and the responder must reply to accept or reject the context. This is a mandatory parameter in the OSI ACSE layer.
  • Page 53 Programming Guide 2. Manage the A/P Environment • Isolate the allocations and freeing of memory passed to the A/P library to a single function. For example: void *ubuf_ptr; user_get_osi_buf (&ubuf_ptr, len,”data to put in ubuf”); ap_snd (.., ubuf_ptr); • Do not statically initialize a cdata structure. For example, do not use the statement: a_assoc_req_env_t peer_application = {...};...
  • Page 54: Managing Data

    Programming Guide 3. Managing Data 3. Managing Data ACSE/Presentation (A/P) defines two types of data: control data and user data. Control data (cdata) is associated with the primitives and its content is specific to each primitive. User data (ubuf) is managed by the application and is defined by the context and transfer syntax selected.
  • Page 55: User Data Encoding/Decoding

    Programming Guide 3. Managing Data 1) First ap_snd() set AP_MORE, and send data 2) Additional ap_snd()'s set AP_MORE, and send data 3) Last ap_snd() re-set AP_MORE, and send last data When receiving data, the AP_MORE bit is set by the A/P library if the receiving ubuf is not large enough, or if a partial primitive was received.
  • Page 56: Using Synchronous Vs. Asynchronous Mode

    Programming Guide 4. Using Synchronous vs. Asynchronous Mode 4. Using Synchronous vs. Asynchronous Mode ACSE/Presentation supports both synchronous and asynchronous mode execution of calls. In synchronous mode, an ACSE/Presentation call blocks until the call can be completed. While blocked, no other tasks can be performed.
  • Page 57: Changing Modes

    Programming Guide 4. Using Synchronous vs. Asynchronous Mode If ap_rcv() is called in asynchronous mode, data is read from the communication endpoint until either: • the entire primitive is received • the ubuf argument buffer is full • no more user data is available. In the second case, the AP_MORE bit is set in the flags parameter of ap_rcv().
  • Page 58: Managing Multiple Connections

    Programming Guide 5. Managing Multiple Connections 5. Managing Multiple Connections Before writing an application with multiple connections, you may need to consider the following items: • Execution mode • Connection retry • Resource constraints Execution Mode For using multiple connections, asynchronous mode is recommended. Using multiple connections introduces factors that cannot be controlled such as: when a task will complete, how long a task will take, or whether or not tasks will complete sequentially.
  • Page 59 Programming Guide 5. Managing Multiple Connections packets and is waiting for the release indication (A_RELEASE_IND) while endpoint D is in AP_IDLE state waiting for the connection indication (A_ASSOC_IND). Figure 4-1 Multiple Connections Scenario Initiator Process Responder Process ==================================================== servicing servicing Conn C Conn B .sent all data packets...
  • Page 60: Connection Retry

    Programming Guide 5. Managing Multiple Connections Connection Retry When there is a resource shortage, ap_snd() may return AP_AGAIN. The application should re-send the same primitive as outlined in the ap_snd() manpage. NOTE In the case of a connection request (A_ASSOC_REQ), if a resource shortage occurs in the OTS stack, a reject may be received as a A_PABORT_IND or A_ABORT_IND.
  • Page 61: System Maximums

    Programming Guide 5. Managing Multiple Connections Note that if an ACSE/Presentation call (such as ap_open()) fails because of temporary memory shortage, the application may want to retry the same call later. System Maximums OTS supports up to 4096 virtual circuit (VC) connections at the transport and network layer (X.25 CONS).
  • Page 62: Other Tasks

    Programming Guide 6. Other Tasks 6. Other Tasks Other items to consider in developing A/P applications include: • File descriptors • Signal handling • Error checking File Descriptors Communication endpoints for ACSE/Presentation applications are HP-UX file descriptors. Because of unpredictable results, HP recommends you do not use HP-UX file system calls such as exec(2), dup(2), read(2), write(2), ioctl(2), or select(2) with HP OTS/9000 A CSE/Presentation file descriptors.
  • Page 63: Error Checking Routines

    Programming Guide 6. Other Tasks Signal handlers can be written to capture signals and exit, or to prevent signals from interrupting critical call sequences. Error Checking Routines Along with processing signals, ACSE/Presentation applications need to check for return codes from calls and particular error conditions that are returned.
  • Page 64: Before Running Acse/Presentation Applications

    Programming Guide 7. Before Running ACSE/Presentation Applications 7. Before Running ACSE/Presentation Applications In order to run ACSE/Presentation applications between two processes or systems, make sure: • your local and remote systems have the correct configuration such as local and destination NSAPs •...
  • Page 65: Acse/Presentation Example

    Programming Guide ACSE/Presentation Example ACSE/Presentation Example Sample programs are included online in the /opt/ots/apli/demo directory. You’ll also find: • A readme file describing how the programs work. • Header files included by the programs in the incl subdirectory. • Functions specific to the Marben ASN.1 compiler and run-time library to build, encode, decode, and free PDUs or C data structures generated by the compiler are included in the file: asn1_if.c.
  • Page 66: Program Using Rose

    Programming Guide Program using ROSE Program using ROSE Additional programs are included online in /opt/ots/rose/demo which exercise the ROSE library functions and provide an example using ROSE API tracing. Multi-threaded sample programs with similar functionality are also included online in the /opt/ots/rose/demo/threads_demo directory.
  • Page 67: Troubleshooting Your Application

    Troubleshooting Your Application This chapter describes API tracing for ACSE/Presentation followed by API tracing for ROSE.
  • Page 68: Using A/P Api Tracing

    Troubleshooting Your Application Using A/P API Tracing Using A/P API Tracing You enable tracing in your application program and the tracing output is printed to a trace file. Different levels of tracing are provided with the trace facility. For example, you can trace procedure entry and exits, error conditions, or both.
  • Page 69 Troubleshooting Your Application Using A/P API Tracing environment variables on the first valid APRI call (always ap_open) and then set the global API trace variables according to the value of the environment variables. If no environment variables are present, then no API tracing takes place.
  • Page 70: Tracing Using Global Variables

    Troubleshooting Your Application Using A/P API Tracing AP_TRACE_MAX_UDATA:. The maximum amount of user data (in bytes) that will be displayed when parameters are displayed. Default = 16. Tracing Using Global Variables A/P API tracing is controlled by three global variables. The variables are described below: ap_trace An integer value which constitutes a...
  • Page 71: Enable A/P Api Tracing Using Global Variables

    Troubleshooting Your Application Using A/P API Tracing API_TR_ENTRY_EXIT Traces procedure entry and exit. No parameter information is displayed. This is useful if you are only interested in seeing what A/P calls your program is making. Note that this trace is automatically generated if you use API_TR_INPUT, API_TR_OUTPUT, or API_TR_INT_ENTRY_EXIT.
  • Page 72: Trace Output

    Troubleshooting Your Application Using A/P API Tracing 2. Within your program, enable tracing and select the level of tracing you want by modifying the value of the ap_trace variable. For example, to enable procedure tracing, input parameters tracing, output parameters tracing, and error tracing enter the statement: ap_trace = API_TR_ENTRY_EXIT | API_TR_INPUT | API_TR_OUTPUT|API_TR_INT_ERROR;...
  • Page 73: Tracing In Multi-Threaded Applications

    Troubleshooting Your Application Using A/P API Tracing 15:53:38 <- ap_set_env() = 0 attr = AP_CNTX_NAME val->len = 4 val->buf = (4/4) 52 01 00 04 R..• The amount of data displayed is based on the value set for ap_trace_max_udata. For example, if ap_trace_max_udata is set to 16, only the first 16 bytes are displayed as shown below: val->sad.buf = (16/22) 06 69 5F 73 73 65 6C 06 69 5F 74 73 65 6C 07...
  • Page 74 Troubleshooting Your Application Using A/P API Tracing >>> thread-id = 6 >>> > pathname = /dev/osipi > oflags = 0x0 <<< thread-id = 6 <<< >>> thread-id = 7 >>> > pathname = /dev/osipi > oflags = 0x0 <<< thread-id = 7 <<<...
  • Page 75: Using Rose Api Tracing

    Troubleshooting Your Application Using ROSE API Tracing Using ROSE API Tracing Tracing is enabled in your application program and the tracing output is printed to a trace file. Different levels of tracing are provided with the trace facility. For example, you can trace procedure entry and exits, error conditions, or both.
  • Page 76: Tracing Using Global Variables

    Troubleshooting Your Application Using ROSE API Tracing AP_TRACE_FILE: The name of the file that is to receive tracing results. Default = stderr. AP_TRACE_MAX_UDATA: The maximum amount of user data (in bytes) that will be displayed when parameters are displayed. Default = 16. Tracing Using Global Variables ROSE API tracing is controlled by three global variables.
  • Page 77: Enable Rose Api Tracing

    Troubleshooting Your Application Using ROSE API Tracing Table 5-2 ROSE Tracing Types API_TR_ENTRY_EXIT Traces procedure entry and exit. No parameter information is displayed. This is useful if you are only interested in seeing what ROSE calls your program is making. Note that this trace is automatically generated if you use API_TR_INPUT, API_TR_OUTPUT, or...
  • Page 78: Trace Output

    Troubleshooting Your Application Using ROSE API Tracing 2. Within your program, enable tracing and select the level of tracing you want by modifying the value of the rose_trace variable. For example, to enable procedure tracing, input parameters tracing, output parameters tracing and error tracing, enter the statement: rose_trace = API_TR_ENTRY_EXIT|API_TR_INPUT|API_TR_OUTPUT|API_TR_I NT_ERROR;...
  • Page 79: Tracing In Multi-Threaded Applications

    Troubleshooting Your Application Using ROSE API Tracing • The amount of data displayed is based on the value set for rose_trace_max_udata. For example, if rose_trace_max_udata is set to 16, only the first 16 bytes are displayed. Tracing in Multi-threaded Applications The format of the trace output in ROSE API traces in multi-threaded applications is consistent with the format described for A/P API traces in similar applications.
  • Page 80 Troubleshooting Your Application Using ROSE API Tracing Chapter 5...
  • Page 81 ACSE/Presentation Reference Pages This appendix includes a list of the supported ACSE/Presentation attributes and a glossary of terms...
  • Page 82: Acse/Presentation Primitives

    ACSE/Presentation Primitives Table A-1 AP_ENV Table of Attributes Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) never...
  • Page 83 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) any_t None Any allowed by the C type always only in states: AP_CLD_AEQ...
  • Page 84 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) long Any allowed by the C type always only in states: AP_CLG_APID...
  • Page 85 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) ap_dcn_t None Any allowed by the C type never never AP_DPCN...
  • Page 86 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) unsigned or'd bits: bit values: always never AP_MODE_AVAIL long...
  • Page 87 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) or'd bits: NULL unsigned bit values: NULL always only in states AP_PFU_SEL...
  • Page 88 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) unsigned None bit values: in any states never AP_ROLE_CURRENT long...
  • Page 89 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) unsigned or'd bits: bit values: always never AP_SESS_AVAIL long...
  • Page 90 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) or'd bits: unsigned or'd bits: always never AP_SFU_AVAIL long...
  • Page 91 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) unsigned one of: always never AP_STATE AP_UNBOUND long Current state of the...
  • Page 92 Readable Writable Values legal for this states states Name of attribute/ Default value of attribute (* = not Data Type (value of (value of Purpose attribute supported by AP_STATE AP_STATE current release) attribute) attribute) unsigned or'd bits: NULL bit values: always never AP_TOKENS_AVAIL...
  • Page 93 Table A-2 AP_RCV Table of Attributes Ap_env This primitive valid in attribute May change Next state (values of Primitive states that must attributes AP_STATE attribute) be set A_ABORT_IND all except: none AP_STATE AP_IDLE AP_UNBOUND AP_IDLE A_ASSOC_IND AP_IDLE AP_BIND_PA AP_ACSE_SEL AP_WASSOCrsp_ASSOCind AP_CLD_AEID AP_CLD_AEQ AP_LIB_SEL...
  • Page 94 Ap_env This primitive valid in attribute May change Next state (values of Primitive states that must attributes AP_STATE attribute) be set A_ASSOC_CNF AP_WASSOCcnf_ASSOCreq none AP_ACSE_SEL (AP_IDLE, AP_DATAXFER) AP_CLD_CONN_ID AP_CNTX_NAME AP_DCS AP_INIT_SYNC_PT AP_PFU_SEL AP_PCDRL AP_PRES_SEL AP_REM_PADDR AP_SESS_SEL AP_SFU_SEL AP_STATE AP_TOKENS_AVAIL AP_TOKENS_OWNED all except: none A_PABORT_IND...
  • Page 95 Ap_env This primitive valid in attribute May change Next state (values of Primitive states that must attributes AP_STATE attribute) be set P_RESYNC_CNF AP_WRESYNcnf_RESYNreq none AP_STATE AP_DATAXFER AP_TOKENS_OWNED P_SYNCMINOR_IND AP_DATA_XFER none none no state change none none no state change P_SYNCMINOR_CNF AP_DATA_XFER AP_WRELcnf_RELreq AP_WSYNCMAcnf_SYNCMAreq...
  • Page 96 Ap_env This primitive valid in attribute May change Next state (values of Primitive states that must attributes AP_STATE attribute) be set RO_REJECTU_IND AP_DATAXFER none none no state change AP_WRELcnf_RELreq AP_WSYNCMAcnf_SYNCMAreq AP_WACTEcnf_ACTEreq no state change RO_RESULT_IND AP_DATAXFER none none AP_WRELcnf_RELreq AP_WSYNCMAcnf_SYNCMAreq AP_WACTEcnf_ACTEreq...
  • Page 97 Table A-3 AP_SND Table of Attributes Ap_env attributes Next state (values of This primitive, valid in that may be set May change Primitive AP_STATE states (must be set in attributes attribute) BOLD) A_ABORT_REQ all except: none AP_STATE AP_IDLE AP_UNBOUND AP_IDLE A_ASSOC_REQ AP_IDLE AP_BIND_PADDR...
  • Page 98 Ap_env attributes Next state (values of This primitive, valid in that may be set May change Primitive AP_STATE states (must be set in attributes attribute) BOLD) A_PABORT_REQ all except: none AP_STATE AP_IDLE AP_UNBOUND AP_IDLE none A_RELEASE_REQ AP_DATAXFER AP_STATE AP_WRELcnf_RELreq none A_RELEASE_RSP AP_WRELrsp_RELind AP_STATE...
  • Page 99 Ap_env attributes Next state (values of This primitive, valid in that may be set May change Primitive AP_STATE states (must be set in attributes attribute) BOLD) P_TOKENGIVE_REQ AP_DATAXFER none AP_STATE no state change AP_WSYNCHMAcnf_SYNCMAreq AP_TOKENS_ no state change AP_WACTEcnf_ACTEreq OWNED no state change AP_WSYNCMArsp_SYNCMAind no state change...
  • Page 100 ACSE/Presentation Reference Pages ACSE/Presentation Primitives Appendix A...
  • Page 101 NSAP. See IDP. often used on the same network with ARPA. A/P ACSE/Presentation. Used to describe the ACSE/Presentation CCITT See International part of Hewlett-Packard's APRI Consultative Committee on implementation. Telephone and Telegraph APLI ACSE/Presentation library CLNS See Connectionless network interface (see APRI).
  • Page 102 Glossary Common Management COS See Corporation for Open Information Protocol. the OSI Systems network management protocol. DARPA Defence Advanced Common Element. The OSI Research Projects Agency; a application layer service element branch of the Department of for network management. Defense (U.S.) that developed a set of networking protocols widely conformance adherence to a used in engineering and...
  • Page 103 Glossary EDI Electronic Data Interchange; communicate. Also known as an emerging Application Layer functional standard or standard standard for the electronic profiles. exchange of business data. international standard (IS) a ES End system. networking standard that has been approved by ISO or CCITT. EWOS European Workshop on Open Systems.
  • Page 104 Glossary has defined the NSAP format for a migration the non-disruptive given NSAP. It is partitioned into replacement of proprietary two parts, the authority format networks with standards-based identifier (AFI) and the initial networks. domain identifier (IDI). IDP spaces are managed by organizations MMS Manufacturing Messaging such as AFNOR, ANSI and NIST.
  • Page 105 Glossary ODA Office Document Presentation Layer Layer 6 of Architecture; a developing the OSI model; where data are put standard that enables text, into usable form. graphics and facsimile, in different document formats, to be moved proprietary networking over a multivendor network. networking that uses the products and protocols of a single vendor.
  • Page 106 Glossary SPAG Standards Promotion and X.400 CCITT standard for Applications Group; based in electronic message handling Europe and working with COS on systems (e.g., electronic mail) in the development and promotion of multivendor environments. conformance tests procedures for OSI products. X.500 Directory Services An international OSI standard for TCP transmission control...
  • Page 107 Index establish association asynchronous mode AP_PCDL description A/P calls ap_poll() setting used in a session ap_rcv() attributes A/P primitives data tables provided short names limitations audience for manual A_ASSOC_REQ receive assoc. request A_ASSOC_RSP receive release request A_PABORT_IND receive release response A_RELEASE_REQ binding endpoints AP_REM_PADDR...
  • Page 108 Index initialize the A/P environment presentation context definition list EINTR initiator presentation selector enable API tracing roles max. size encoding data process maximums endpoints programming binding migration considerations ENV_FILE limitations programming guide parameter, null ACSE/Presentation programming tasks env_file summary environment file provider abort environment variables manpages...
  • Page 109 Index calls used send data What is ACSE/Presentation sending and receiving data What is ROSE setting environment variables who should use this manual limitations short names used with man X.410 signal handlers sptype migration guidelines setting migration to standards documents supported standards X.410 synchronous mode...

Table of Contents