Communications
Bull DPS 7000
VCAM-ISO Reference Manual
Part 1 - Session Services
GCOS 7
Software
Subject :
Description of the programming interface supporting the ISO
Session Layer services.
Special instructions :
This Revision 02 is for users of GCOS 7 Releases V6 and V7.
Revision 0 remains valid for releases V3A, V3B, and V5.
Software supported :
GCOS 7 AP/HPS Release V6.
GCOS 7 AP/HPS/EXMS Release V7
Date :
November 1995
Bull S.A.
CEDOC
Atelier de reproduction
331, Avenue Patton BP 428
49005 ANGERS Cedex
FRANCE
47 A2 60UC Rev02
Bull HN Information Systems Inc.
Publication Order Entry
MA30/843
300 Concord Road
Billerica, MA 01821
U.S.A.
Copyright Bull S.A., 1991, 1995
Bull acknowledges the rights of proprietors of trademarks mentioned herein.
Suggestions and criticisms concerning the form, content, and presentation of this
manual are invited. A form is provided at the end of this manual for this purpose.
Bull disclaims the implied warranties of merchantability and fitness for a particular
purpose and makes no express warranties except as may be stated in its written
agreement with and for its customer. In no event is Bull liable to anyone for any
indirect, special, or consequential damages.
The information and specifications in this document are subject to change without
notice. Consult your Bull Marketing Representative for product or service availability.
Preface
SCOPE AND OBJECTIVES
This manual is a reference to the GCOS7 ISO session programmatic interface (called
VCAM-ISO). Part One (this book) provides detailed information on the GCOS7
implementation of the session services. Part Two is a reference to the GPL primitives
used to implement these services.
Part Three is a reference to the C primitives used to implement these services.
VCAM-ISO is fully consistent with the ISO session service ISO 8326
and ISO8326/DAD2
and the ISO session protocol ISO 8327
and ISO8327/DAD2.
Knowledge of these documents is assumed throughout the manual.
To get started writing programs using VCAM-ISO, first read the VCAM-ISO User's Guide,
which contains many coding examples, and then refer to this manual as necessary.
INTENDED AUDIENCE
This manual is intended to be used by application programmers and also by the system
administrator (for installation and configuration).
47 A2 60UC Rev02
iii
VCAM-ISO Reference Manual Part 1 - Session Services
STRUCTURE OF THIS DOCUMENT
iv
Section 1
Gives an overview of VCAM-ISO.
Section 2
Describes the GPL primitives used to implement the
session services.
Section 3
Provides some general rules about parameters.
Section 4
Explains how SSAPs and session connections are
identified.
Section 5
Describes event handling.
Section 6
Gives information about VCAM-ISO-specific mechanisms
for flow control and segmenting data.
Section 7
Deals with the topic of addressing.
Section 8
Explains how errors are processed.
Section 9
Describes the trace facility.
Section 10
Describes the installation of VCAM-ISO
Appendix A
Is a listing of four communicating sample programs.
Appendix B
Is a statement of the ISO protocol options implemented by
VCAM-ISO.
47 A2 60UC Rev02
Preface
RELATED DOCUMENTS
ISO
Open Systems Interconnection Session Service Definition .................................ISO 8326
OSI Session Services Definition ..........................................................................ISO 8326
Draft Addendum 2
OSI Session Protocol Definition ...........................................................................ISO 8327
Draft Addendum 2
Open Systems Interconnection Session Protocol Definition ................................ISO 8327
Open Systems Interconnection Basic Reference Model......................................ISO 7498
BULL
GCOS 7 VCAM-ISO Reference Manual Part 2 - GPL Primitives.................... 47 A2 61UC
GCOS 7 VCAM-ISO Reference Manual Part 3 - C Primitives ........................ 47 A2 63UC
GCOS 7 VCAM-ISO User's Guide .................................................................. 47 A2 62UC
GCOS 7 DSAC User's Guide.......................................................................... 47 A2 75UC
GCOS 7 Network Overview and Concepts ..................................................... 47 A2 92UC
GCOS 7 Network Generation.......................................................................... 47 A2 93UC
GCOS 7 Network User's Guide....................................................................... 47 A2 94UC
Network System Messages............................................................................. 39 A2 26DM
GCOS 7 System Installation Configuration and Updating Guide .....................47 A2 18US
GCOS 7 IOF Programmer's Manual ................................................................ 47 A2 05UJ
GCOS 7 IOF-TURM: Part 1 ............................................................................. 47 A2 38UJ
GCOS 7 IOF-TURM: Part 2 ............................................................................. 47 A2 39UJ
GCOS 7 IOF-TURM: Part 3 ............................................................................. 47 A2 40UJ
GCOS 7 GCL Programmer's Manual ............................................................... 47 A2 36UJ
GCOS 7 GXTI User's Guide ........................................................................... 47 A2 65UC
Front-end Processor Manuals
DNS System Generation................................................................................. 39 A2 22DN
DNS Documentation Directory ........................................................................ 39 A4 27DN
47 A2 60UC Rev02
v
VCAM-ISO Reference Manual Part 1 - Session Services
SYNTAX NOTATION
The following conventions are used for presenting GCL command syntax.
ITEM
An item in upper case is a literal value, to be specified as
shown. The upper case is merely a convention; in practice
you can specify the item in upper or lower case.
item
An item in lower case is non-literal, indicating that a usersupplied value is expected.
In most cases it gives the type and maximum length of the
value:
char105
dec5
name31
file78
star31
a string of up to 105 alphanumeric characters
a decimal integer value of up to 5 digits
a name of up to 31 characters
a file name of up to 78 characters
a star name of up to 31 characters
In some cases, it gives the format of the value:
a
nnn
hh.mm
a single alphabetic character
a 3-digit number
a time in hours and minutes
In other cases, it is simply descriptive of the value:
device-class
condition
any-characters
vi
ITEM
An underlined item is a default value.
bool
A boolean value which is either 1 or 0. A boolean parameter
can be specified by its keyword alone, optionally prefixed by
"N". Specifying the keyword alone always sets the value to 1.
Prefixing the keyword with "N" always sets it to 0.
{}
Braces indicate a choice of values. Only one may be
selected.
[]
Square brackets indicate that the enclosed item is optional.
An item not enclosed in square brackets is mandatory.
()
Parentheses indicate that a single value or a list of values can
be specified. A list of values must be enclosed by
parentheses, with each value separated by a comma or a
space.
...
Ellipses indicate that the item concerned can be specified
more than once.
47 A2 60UC Rev02
Preface
+=$*/
These are literal characters to be specified as shown.
---
All parameters below a dashed line do not appear in the help
menus.
Example 1:
{
{
{ IMMED
{ WHEN={ [dd.mm.yy.]hh.mm
{
{ +nnnn{W|D|H|M}
{
}
} }
} }
} }
}
This means you can specify:
•
•
•
•
•
•
•
•
Nothing at all (WHEN=IMMED applies).
WHEN=IMMED (the same as nothing at all).
WHEN=22.30 to specify a time (and today's date).
WHEN=10.11.87.22.30 to specify a date and time.
WHEN=+0002W to specify 2 weeks from now.
WHEN=+0021D to specify 21 days from now.
WHEN=+005H to specify 5 hours from now.
WHEN=+0123M to specify 123 minutes from now.
Example 2:
[ PAGES=(dec4[-dec4] ...) ]
An optional parameter giving either a single value or a list of values enclosed in
parentheses, with each value separated by a comma or space. Each value can consist of
either a single number or a pair of numbers connected by a hyphen. For example:
PAGES=(2,4,10-25,33-36,78 83 90)
Example 3:
[ REPLACE ={ bool | 0 } ]
A boolean parameter whose default value is zero. You can specify:
• Nothing at all (REPLACE=0 applies)
• REPLACE=0 or simply NREPLACE
• REPLACE=1 or simply REPLACE
47 A2 60UC Rev02
vii
VCAM-ISO Reference Manual Part 1 - Session Services
viii
47 A2 60UC Rev02
Table of Contents
1.
Introduction ...........................................................................................................
1-1
1.1
VCAM-ISO OVERVIEW ..............................................................................................
1-1
1.1.1
1.1.2
Installation and Configuration .................................................................................
Programming an ISO Application ............................................................................
1-1
1-3
1.2
VCAM-ISO SERVICES ...............................................................................................
1-4
1.2.1
1.2.2
1.2.3
Opening an ISO Session Connection......................................................................
Dialog Over a Session Connection .........................................................................
Closing the Session Connection .............................................................................
1-4
1-5
1-5
1.3
DEBUGGING THE APPLICATION.............................................................................
1-6
1.4
BEHAVIOR ON LIMITS OVERFLOW ........................................................................
1-6
2.
Description of GPL Primitives forVCAM-ISO ..........................................
2-1
2.1
CLASSES OF PRIMITIVES ........................................................................................
2-1
2.2
SSAP MANAGEMENT PRIMITIVES ..........................................................................
2-2
2.3
COMMON RULES FOR GPL AND ISO SESSION SERVICE PRIMITIVES..............
2-3
2.3.1
2.3.2
GPL Primitive Forms.................................................................................................
TYPE description ......................................................................................................
2-3
2-4
2.4
SESSION CONNECTION ESTABLISHMENT PRIMITIVES ......................................
2-5
47 A2 60UC Rev02
ix
VCAM-ISO Reference Manual Part 1 - Session Services
2.5
DATA TRANSFER PHASE PRIMITIVES ...................................................................
2-6
2.6
SESSION CONNECTION RELEASE PRIMITIVES....................................................
2-9
2.7
MISCELLANEOUS PRIMITIVES................................................................................
2-10
2.8
VCAM-ISO GPL DECLARATIVE PRIMITIVES AND COMMON RULES ..................
2-11
2.8.1
2.8.2
GPL Declarative Primitives ......................................................................................
Common Rules ..........................................................................................................
2-11
2-12
3.
General Rules for Parameters and Primitives ........................................
3-1
3.1
PARAMETER DESCRIPTION CONVENTIONS ........................................................
3-2
3.1.1
3.1.2
Global Description Conventions .............................................................................
Detailed Description Conventions...........................................................................
3-2
3-2
3.2
PARAMETERS COMMON TO MOST GPL PRIMITIVES..........................................
3-3
3.2.1
3.2.2
3.2.3
3.2.4
TYPE Parameter ........................................................................................................
USERWAPTR and USERWALG Parameters ...........................................................
ERROR Parameter.....................................................................................................
Return Code Parameter ............................................................................................
3-3
3-3
3-3
3-4
3.3
GPL INPUT PARAMETERS .......................................................................................
3-5
3.3.1
3.3.2
3.3.3
3.3.4
String and Numeric Parameters ..............................................................................
Parameters Which Have a List of Possible Values ................................................
Pointer to an Input Field ...........................................................................................
Pointer to an Output Field ........................................................................................
3-5
3-5
3-5
3-6
3.4
GPL OUTPUT PARAMETERS ...................................................................................
3-7
3.4.1
3.4.2
3.4.3
String and Numeric Parameters ..............................................................................
Parameters Which Have a List of Possible Values ................................................
Pointer to an Output Field ........................................................................................
3-7
3-7
3-7
x
47 A2 60UC Rev02
Table of Contents
4.
SSAP Identification and Session Connection Identification ............
4-1
4.1
DESCRIPTION OF THE IDENTIFIERS ......................................................................
4-1
4.1.1
4.1.2
4.1.3
4.1.4
SS-provider SSAP Identifier VCAM_SSAP_ID ........................................................
SS-user SSAP Identifier USER_SSAP_ID................................................................
SS-provider Session Connection Identifier VCAM_SCN_ID .................................
SS-user Session Connection Identifier USER_SCN_ID.........................................
4-1
4-1
4-2
4-2
4.2
CONCURRENT ACCESS TO AN SSAP OR A SESSION CONTEXT.......................
4-3
5.
Event Handling .....................................................................................................
5-1
5.1
EVENT NOTIFICATION MECHANISM ......................................................................
5-1
5.1.1
5.1.2
5.1.3
Definition of Event ....................................................................................................
Definition of Credit....................................................................................................
Notification ................................................................................................................
5-1
5-1
5-2
5.2
MESSAGE ON THE SESSION CONNECTION SEMAPHORE .................................
5-3
5.2.1
5.2.2
Form of Protocolar Messages..................................................................................
Form of Non-protocolar Messages .........................................................................
5-3
5-5
5.3
MESSAGE ON THE SSAP SEMAPHORE .................................................................
5-6
6.
Data Transfer ........................................................................................................
6-1
6.1
FLOW CONTROL MECHANISM ...............................................................................
6-1
6.1.1
6.1.2
Purpose ......................................................................................................................
How Credits are Used ...............................................................................................
6-1
6-1
6.2
PORTION MODE ........................................................................................................
6-3
6.2.1
6.2.2
6.2.3
6.2.3.1
6.2.3.2
Purpose ......................................................................................................................
Emission ....................................................................................................................
Reception ...................................................................................................................
RMAXSIZE ..................................................................................................................
Particular Sequences in Reception .............................................................................
6-3
6-3
6-4
6-4
6-5
47 A2 60UC Rev02
xi
VCAM-ISO Reference Manual Part 1 - Session Services
7.
ISO Address Management...............................................................................
7-1
7.1
ISO SSAP DEFINITION ..............................................................................................
7-1
7.2
PROCESSING OF SSAPS INSIDE VCAM-ISO .........................................................
7-2
7.2.1
Selecting the Target Host and the Target Application ..........................................
7-2
7.3
VCAM-ISO SSAP........................................................................................................
7-3
7.3.1
7.3.2
7.3.3
7.3.4
VCAM-ISO SSAP Declaration ...................................................................................
VCAM-ISO SSAP Declared Without an Explicit NSAP ...........................................
VCAM-ISO SSAP Declared With an Explicit NSAP.................................................
VCAM-ISO SSAP Release .........................................................................................
7-3
7-3
7-4
7-4
7.4
OUTGOING CONNECTION PROCESSING ..............................................................
7-5
7.4.1
7.4.2
7.4.2.1
7.4.2.2
Processing of a Local Connection ..........................................................................
Processing of a Remote Connection ......................................................................
Calling Address for SSAP Declared Without an Explicit NSAP ..................................
Calling Address for SSAP Declared With an Explicit NSAP .......................................
7-5
7-6
7-6
7-6
7.5
INCOMING CONNECTION PROCESSING ...............................................................
7-7
7.5.1
7.5.2
VCAM-ISO SSAP Declared With an Explicit NSAP.................................................
VCAM-ISO SSAP Declared Without an Explicit NSAP ...........................................
7-7
7-7
8.
Error Processing .................................................................................................
8-1
8.1
SYNCHRONOUS PROCESSING...............................................................................
8-1
8.2
ASYNCHRONOUS PROCESSING ............................................................................
8-2
8.3
STRUCTURE OF ERROR AND P_ERROR...............................................................
8-3
8.3.1
8.3.2
8.3.3
Error Code and Message..........................................................................................
Cause..........................................................................................................................
Event...........................................................................................................................
8-3
8-4
8-5
8.4
PAB-SPECIFIC ERRORS...........................................................................................
8-6
8.5
RETURN CODES .......................................................................................................
8-7
xii
47 A2 60UC Rev02
Table of Contents
9.
Trace .........................................................................................................................
9-1
9.1
INTRODUCTION.........................................................................................................
9-1
9.2
PRODUCT FUNCTIONALITIES .................................................................................
9-2
9.2.1
9.2.2
Function of the VCAM User Trace Collector ..........................................................
Function of the VCAM User Trace Scanner............................................................
9-2
9-2
9.3
VCAM USER TRACE COLLECTOR ..........................................................................
9-3
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.5.1
9.3.5.2
9.3.5.3
Number of Users and Security.................................................................................
Logfile.........................................................................................................................
Selection of VCAM SSAPs and Connections to be Traced ...................................
Level of Trace ............................................................................................................
VCAM User Trace GCL Commands.........................................................................
SVTR command..........................................................................................................
DVTR command..........................................................................................................
TVTR command ..........................................................................................................
9-3
9-3
9-3
9-4
9-5
9-5
9-7
9-7
9.4
VCAM USER TRACE SCANNER...............................................................................
9-8
9.4.1
9.4.2
9.4.3
9.4.4
9.4.4.1
9.4.4.2
9.4.4.3
Calling the User Trace Scanner ...............................................................................
Using the VCAM Trace Scanner ..............................................................................
The VCAM Trace Scanner Commands....................................................................
The VCAM Trace Scanner Screen Description.......................................................
Description of the First Level Structure .......................................................................
Description of the Second Level Structures ................................................................
Description of the Structures Which Have a Level Greater than 2 .............................
9-8
9-9
9-10
9-15
9-15
9-15
9-17
10.
VCAM-ISO Installation.......................................................................................
10-1
10.1
LIMITS OF VCAM-ISO ...............................................................................................
10-1
10.1.1
10.1.2
Limits of VCAM-ISO ..................................................................................................
Behavior On Limits Overflow...................................................................................
10-1
10-1
10.2
VCAM-ISO CONFIGURATION ...................................................................................
10-2
47 A2 60UC Rev02
xiii
VCAM-ISO Reference Manual Part 1 - Session Services
Appendices
A.
Examples of Calling and Called Programs ..............................................
A-1
A.1
INTRODUCTION.........................................................................................................
A-1
A.2
CALLING USER A ......................................................................................................
A-2
A.3
CALLED USER B .......................................................................................................
A-7
A.4
CALLING USER C (SESSION V2) .............................................................................
A-11
A.5
CALLED USER D (SESSION V2) ..............................................................................
A-17
B.
Protocol Implementation Choices ...............................................................
B-1
B.1
INITIAL REMARKS.....................................................................................................
B-1
B.2
IMPLEMENTATION OF MAJOR CAPABILITIES ......................................................
B-2
B.3
IMPLEMENTATION OF MAJOR PARAMETERS......................................................
B-3
B.4
REMARKS ON PROTOCOL MACHINE PROCEDURES ..........................................
B-4
B.5
REMARKS ON ENCODING RULES ..........................................................................
B-5
xiv
47 A2 60UC Rev02
Table of Contents
B.6
REMARKS ON ERROR HANDLING PROCEDURES ...............................................
B-6
B.7
REMARKS ON OSI CONFORMANCE TESTING ......................................................
B-7
B.8
REMARKS ON INTERWORKING ISSUES (PROFILE CONSIDERATIONS) ...........
B-8
Index
....................................................................................................................................
i-1
47 A2 60UC Rev02
xv
VCAM-ISO Reference Manual Part 1 - Session Services
Illustrations
Figures
2-1
6-1
xvi
Four values of the TYPE parameter............................................................................
Establishing the maximum receiving size ...................................................................
2-4
6-4
47 A2 60UC Rev02
1. Introduction
1.1
VCAM-ISO OVERVIEW
VCAM-ISO (for Virtual Communication Access Method-ISO)
implementation of the ISO session service and protocol.
is
the
GCOS7
VCAM-ISO supplies the programmatic interface, the configuration, and the
debugging tools which are needed to manage the ISO connection between a GCOS7
application and its partner.
1.1.1
Installation and Configuration
The information about VCAM-ISO which is configured at GCOS7 system level is:
•
•
•
•
The availability of VCAM-ISO.
The maximum number of simultaneous connections.
The default transport selector.
The NSAPs for local connections.
VCAM-ISO availability
The system administrator must check that the GCOS7 version and the front-end
processor software version support VCAM-ISO.
DNS V4 (with at least 2 MB Datanet Memory Size) is required on the front-end processor.
47 A2 60UC Rev02
1-1
VCAM-ISO Reference Manual Part 1 - Session Services
Limits of VCAM-ISO
The system administrator must also define the required limits.
The maximum number of simultaneous ISO, DSA, and GXTI(TE) connections is 8500.
Note that at least one DSA connection must be present. The maximum number can be
defined via the VCAMSCN command (included in the source system configuration
member), using the parameters MAXDSA and MAXISO. For more information on this
command, refer to the System Installation Configuration and Updating Guide.
•
The maximum number of SSAPs is 1000.
•
There must be enough system memory space to store SIDUs which are waiting for
the transport layer or the application. Its size is a function of the maximum number of
allowed session connections. In case of saturation of this memory space, the SSuser can reduce the maximum size it can receive (parameter RMAXSIZE of
H_SI_CON).
ISO Addressing
The system administrator must also define the ISO address of the local system (see
Section 7 "ISO Address Management"). The default local ISO addressing values are
defined at network generation time using the high level SYS (SYSTEM) or low level LSYS
(LOCAL SYSTEM) directive with the TSEL and NSAP parameters. For more information,
refer to the Networks Overview and Generation manual.
1-2
47 A2 60UC Rev02
Introduction
1.1.2
Programming an ISO Application
A program that uses the VCAM-ISO interface relies on TWO mechanisms:
•
•
•
A set of GPL primitives, as described in Section 2 "Description of GPL Primitives for
VCAM-ISO". Each primitive is explained in detail in the "VCAM-ISO Reference
Manual Part 2 - GPL Primitives".
A set of C primitives, described in detail in the "VCAM-ISO Reference Manual Part 3
- C Primitives".
The GCOS7 semaphores with associated messages. The messages placed on the
semaphore by VCAM-ISO are described in Section 5 "Event Handling".
Some general rules about the GPL primitive parameters are given in Section 3 "General
Rules for Parameters and Primitives".
VCAM-ISO behavior on encountering an error is described in Section 8 "Error
Processing".
To help you understand how to use the primitives in practice, the listing of four
communicating example programs has been included as Appendix A. The "VCAM-ISO
User's Guide" contains several extracts from the same example programs.
The "VCAM-ISO Reference manual Part 3 - C Primitives" contains several example
programs to help you to use the C primitives.
47 A2 60UC Rev02
1-3
VCAM-ISO Reference Manual Part 1 - Session Services
1.2
VCAM-ISO SERVICES
This paragraph describes in a general way the series of actions an SS-user program
should take to use the VCAM-ISO services in the correct way.
The VCAM-ISO services are:
Open facilities:
Dialog facilities:
Close facilities:
1.2.1
Open and accept a session connection.
Send normal data, special data requests, or control
information.
Close a session connection, normally or abnormally.
Opening an ISO Session Connection
First of all, the SS-user program must define its ISO address. It calls the
H_SI_OPN_SSAP (Open) primitive to open a VCAM-ISO SSAP (refer to the "SSAP
Management Primitives" paragraph of Section 2 "Description of GPL Primitives for VCAMISO").
Secondly the program calls the GPL primitives described in the "Session Connection
Establishment" paragraph of Section 2 "Description of GPL Primitives for VCAM-ISO". For
the connection indication and confirmation, the program must wait for the corresponding
semaphore message before calling the primitive.
Each VCAM-ISO SSAP and each session connection is identified by two numeric values:
one defined by the SS-provider and the other by the SS-user (refer to Section 4 "SSAP
Identification and Session Connection Identification").
1-4
47 A2 60UC Rev02
Introduction
1.2.2
Dialog Over a Session Connection
The SS-user program calls the GPL primitives described in the "Data Transfer Phase"
paragraph of Section 2 "Description of GPL Primitives for VCAM-ISO". These primitives
are used according to ISO 8326 and ISO8326/DAD2.
When a primitive is an indication or a confirmation, the program must wait for the
corresponding semaphore message before calling the primitive.
For an S-DATA request, S-TYPED-DATA request, or S-EXPEDITED_DATA request, the
SS-user must wait for a semaphore message of type "credit" before issuing the request.
Refer to the "Flow Control Mechanism" paragraph of Section 6 "Data Transfer".
If your program needs to send an SSDU which exceeds the maximum size allowed by
VCAM, it can divide it into segments. Refer to the "Portion Mode" paragraph of Section 6
"Data Transfer".
1.2.3
Closing the Session Connection
The SS-user program calls the GPL primitives described in the "Session Connection
Release Primitives" paragraph of Section 2 "Description of GPL Primitives for VCAMISO".
When a primitive is an indication or a confirmation, the program waits for the
corresponding semaphore message before executing the primitive.
The program also has the option to close all the session connections attached to a
VCAM-ISO SSAP by means of H_SI_DCN_SSAP (Disconnect). If there is no longer a
connection on a VCAM-ISO SSAP, the SSAP can be freed by calling H_SI_CLS_SSAP
(Close).
47 A2 60UC Rev02
1-5
VCAM-ISO Reference Manual Part 1 - Session Services
1.3
DEBUGGING THE APPLICATION
VCAM-ISO provides a trace utility to help debug and maintain programs. The SS-user can
record information exchanged between itself and the SS-provider and/or between the SSprovider and the transport provider. Refer to Section 9 "Trace".
1.4
BEHAVIOR ON LIMITS OVERFLOW
On overflow of the maximum number of SSAPs or session connections, any new object
declaration is refused. For H_SI_OPN_SSAP or H_SI_CON TYPE=REQ, an error code
150 is returned to the SS-user. For an incoming connection, the transport connection is
refused.
On overflow of the space reserved for waiting SIDUs (for application or transport), VCAMISO disconnects the session connection least recently used with the biggest stored SIDU.
A provider abort indication with "MEMOVER" in the cause field is returned to the SS-user.
1-6
47 A2 60UC Rev02
2. Description of GPL Primitives for
VCAM-ISO
2.1
CLASSES OF PRIMITIVES
The GPL imperative primitives can be divided into five classes:
•
•
•
•
•
SSAP management primitives,
Session connection establishment primitives,
Data transfer primitives,
Session connection release primitives,
Miscellaneous primitives.
The names of all these primitives are prefixed by "H_SI_".
The primitives of the first and the last classes are GCOS7-specific. The others are directly
associated to ISO session services (e.g. H_SI_DT with parameter TYPE=REQ is
associated to S-DATA request).
There are also a few GPL declarative primitives, which must be used in your program.
The names of these primitives are prefixed by "H_DC_SI_" They are described at the end
of the section.
47 A2 60UC Rev02
2-1
VCAM-ISO Reference Manual Part 1 - Session Services
2.2
SSAP MANAGEMENT PRIMITIVES
Three primitives are used for VCAM-ISO SSAP management.
Primitive
H_SI_OPN_SSAP
H_SI_DCN_SSAP
H_SI_CLS_SSAP
H_SI_OPN_SSAP
H_SI_DCN_SSAP
H_SI_CLS_SSAP
2-2
Function
Open SSAP
Disconnect SSAP
Close SSAP
Creates an object, the VCAM-ISO SSAP, which contains
information about the ISO address of the SS-user. Refer to
the section "ISO Address Management" for detailed
information.
The VCAM-ISO SSAP also contains information which
permits the SS-provider to inform the SS-user of any
incoming connection requests. Refer to the section "Event
Handling".
Allows the SS-user to abort all the session connections
which have been opened on a given SSAP.
Destroys the object created by H_SI_OPN_SSAP. This is
only possible if there are no more sessions still connected
to this object.
47 A2 60UC Rev02
Description of GPL Primitives for VCAM-ISO
2.3
2.3.1
COMMON RULES FOR GPL AND ISO SESSION SERVICE PRIMITIVES
GPL Primitive Forms
All the VCAM-ISO session primitives defined in clause 11.1 of the ISO session service
definition document have their corresponding GPL primitives. Each GPL primitive has one
of these three forms.
Form 1
H_SI_XXX
TYPE={REQ | IND | RSP | CNF} other parameters;
Example:
H_SI_CON (session connection establishment primitive).
Form 2
H_SI_XXX
TYPE={REQ | IND} other parameters;
Example:
H_SI_DT (normal data transfer primitive).
Form 3
H_SI_XXX
TYPE=IND other parameters;
Example:
H_SI_PAB (provider abort treatment primitive).
47 A2 60UC Rev02
2-3
VCAM-ISO Reference Manual Part 1 - Session Services
2.3.2
TYPE description
The TYPE parameter has one of the following values.
•
•
•
•
REQ for a REQUEST of service XXX;
IND for an INDICATION of request of service XXX;
RSP for a RESPONSE to a request of service XXX;
CNF for a CONFIRMATION of request of service XXX;
For all services provided by VCAM-ISO, the following sequence of primitives is generally
used.
S S -user
H _S I_X X X
T Y P E = R E Q ...;
SSAP
SSAP
S S -user
SS-provider
H _S I_X X X
T Y P E = IN D ...;
- - - this follow ing part isn`t m andatory for som e services - - H _S I_X X X
T Y P E = R S P ...;
H _S I_X X X
T Y P E = C N F ...;
Figure 2-1. Four values of the TYPE parameter
2-4
47 A2 60UC Rev02
Description of GPL Primitives for VCAM-ISO
2.4
SESSION CONNECTION ESTABLISHMENT PRIMITIVES
To establish a session connection, the program calls the GPL primitive H_SI_CON with
different values of the TYPE parameter. Each value of TYPE corresponds to an ISO
session service primitive.
GPL Primitive
H_SI_CON
TYPE
REQ
IND
RSP
CNF
ISO Primitive
S-CONNECT request
S-CONNECT indication
S-CONNECT response
S-CONNECT confirm
In addition, a set of GCOS7-specific parameters of the H_SI_CON primitive allows SSusers to exchange information with the SS-provider about:
• The ISO address of the calling and the called SS-users. Refer to the section "ISO
Address Management".
• The identification of the current session. Refer to the section "SSAP Identification and
Session Connection Identification".
• The way to inform the SS-user about an incoming event. Refer to the section "Event
Handling".
47 A2 60UC Rev02
2-5
VCAM-ISO Reference Manual Part 1 - Session Services
2.5
DATA TRANSFER PHASE PRIMITIVES
Like the GPL session connection establishment primitive described above, some GPL
data transfer phase primitives also have four values for the TYPE parameter (REQ, IND,
RSP, CNF). In the same way, each of these values is equivalent to an ISO data transfer
primitive.
Moreover the SS-user can, when the ISO basic concatenation rules allow it, add a "give
tokens" or "please tokens" request to the invoked ISO service primitive. In this case, the
other SS-user will receive two ISO services primitives at the same time. Refer to clause
6.3.7, Table 7 of the international standard ISO 8327.
The concatenated sequences are sent by the SS-provider only when they are explicitly
requested by the SS-user. The following table shows which primitives may have token
requests or indications added to them.
GPL Primitive
H_SI_ACTD
TYPE
REQ/IND
RSP
CNF
H_SI_ACTE
REQ
IND
RSP
CNF
H_SI_ACTI
REQ/IND
RSP
CNF
H_SI_ACTR
2-6
REQ/IND
ISO Primitive
S-ACTIVITY-DISCARD req/ind
[S-TOKEN-PLEASE req]
S-ACTIVITY-DISCARD conf
[S-TOKEN-PLEASE ind ]
S-ACTIVITY-END req
[S-TOKEN-GIVE req]
S-ACTIVITY-END ind
[S-TOKEN-GIVE ind]
S-ACTIVITY-END rsp
[S-TOKEN-PLEASE req]
S-ACTIVITY-END conf
[S-TOKEN-PLEASE ind]
S-ACTIVITY-INTERRUPT req/ind
S-ACTIVITY-INTERRUPT rsp
[S-TOKEN-PLEASE req]
S-ACTIVITY-INTERRUPT conf
[S-TOKEN-PLEASE ind]
S-ACTIVITY-RESUME req/ind
[S-TOKEN-GIVE req/ind]
47 A2 60UC Rev02
Description of GPL Primitives for VCAM-ISO
GPL Primitive
H_SI_ACTS
TYPE
REQ
IND
H_SI_CD
REQ/IND
RSP
CNF
H_SI_CG
H_SI_DT
REQ/IND
REQ
IND
H_SI_EX
H_SI_GT
H_SI_PER
H_SI_PT
H_SI_RSYN
REQ/IND
REQ/IND
IND
REQ/IND
REQ/IND
RSP
CNF
H_SI_SYNMA
REQ
IND
RSP
CNF
47 A2 60UC Rev02
ISO Primitive
S-ACTIVITY-START req
[S-TOKEN-GIVE req]
S-ACTIVITY-START ind
[S-TOKEN-GIVE ind]
S-CAPABILITY-DATA req/ind
S-CAPABILITY-DATA rsp
[S-TOKEN-PLEASE req]
S-CAPABILITY-DATA conf
[S-TOKEN-PLEASE ind]
S-CONTROL-GIVE req/ind
S-DATA-req
[S-TOKEN-GIVE req]
S-DATA-ind
[S-TOKEN-GIVE ind]
S-EXPEDITED-DATA req/ind
S-TOKEN-GIVE req/ind
S-P-EXCEPTION-REPORT ind
S-TOKEN-PLEASE req/ind
S-RESYNCHRONIZE req/ind
S-RESYNCHRONIZE rsp
[S-TOKEN-PLEASE req]
S-RESYNCHRONIZE conf
[S-TOKEN-PLEASE ind]
S-SYNC-MAJOR req
[S-TOKEN-GIVE req]
S-SYNC-MAJOR ind
[S-TOKEN-GIVE ind]
S-SYNC-MAJOR rsp
[S-TOKEN-PLEASE req]
S-SYNC-MAJOR conf
[S-TOKEN-PLEASE ind]
2-7
VCAM-ISO Reference Manual Part 1 - Session Services
GPL Primitive
H_SI_SYNMI
TYPE
REQ
IND
RSP
CNF
H_SI_TD
H_SI_UER
REQ/IND
REQ
IND
ISO Primitive
S-SYNC-MINOR req
[S-TOKEN-GIVE req]
S-SYNC-MINOR ind
[S-TOKEN-GIVE ind]
S-SYNC-MINOR rsp
[S-TOKEN-PLEASE req]
S-SYNC-MINOR conf
[S-TOKEN-PLEASE ind]
S-TYPED DATA req/ind
S-U-EXCEPTION-REPORT req
S-U-EXCEPTION-REPORT ind
Generally each parameter of these GPL primitives matches an ISO session primitive
parameter. Some GCOS7-specific parameters have been added in order to transfer data
of unlimited size, as described in the paragraph "Portion Mode" in the "Data Transfer"
section.
2-8
47 A2 60UC Rev02
Description of GPL Primitives for VCAM-ISO
2.6
SESSION CONNECTION RELEASE PRIMITIVES
For each GPL connection release primitive, each value of the TYPE parameter
corresponds to an ISO service primitive. Three primitives allow termination of a session
connection in different ways.
GPL Primitive
H_SI_REL
H_SI_UAB
H_SI_PAB
TYPE
REQ
IND
RSP
CNF
REQ
IND
IND
ISO Primitive
S-RELEASE request
S-RELEASE indication
S-RELEASE response
S-RELEASE confirm
S-U-ABORT request
S-U-ABORT indication
S-P-ABORT indication
H_SI_REL
Terminates a session connection with negotiation between
the two SS-users. In this way, the users can be sure that no
data has been lost.
H_SI_UAB
Terminates a session connection with possible loss of data.
H_SI_PAB
Terminates a session connection with possible loss of data.
The reason for the abort may be:
The SS-provider has received an ABORT SPDU generated
by another SS-provider.
An error which prevents the session from being opened has
been detected by the SS-provider (for example, protocol
error, transport layer disconnect ...). Refer to the section
"Error Processing" for more information about this primitive.
All references to the previously-closed session are discarded by the SS-provider. There is
no notification on the session semaphore after these primitives. However, messages may
have been enqueued on the session semaphore before the call to these primitives. They
must be ignored.
47 A2 60UC Rev02
2-9
VCAM-ISO Reference Manual Part 1 - Session Services
2.7
MISCELLANEOUS PRIMITIVES
Two other GCOS7-specific primitives are provided to help the SS-user to manage
sessions.
GPL Primitive
H_SI_RD_STATE
H_SI_MD_SSEM
H_SI_RD_STATE
H_SI_MD_SSEM
2-10
Function
Read session state.
Modify session semaphore.
Allows the SS-users to read the current state of the
session.
Allows the SS-user program to modify the semaphore on
which it is waiting for incoming events.
47 A2 60UC Rev02
Description of GPL Primitives for VCAM-ISO
2.8
2.8.1
VCAM-ISO GPL DECLARATIVE PRIMITIVES AND COMMON RULES
GPL Declarative Primitives
Three declarative primitives are common to all imperative primitives. They should be used
in the declaration part of your application.
GPL Declarative
Macro
H_DC_SI_ERROR
H_DC_SI_SEMM
H_DC_SI_REPLACE
H_DC_SI_ERROR
H_DC_SI_SEMMSG
H_DC_SI_REPLACE
47 A2 60UC Rev02
Function
Declares error reporting structure
Declares semaphore message structure
Declares all %REPLACEs used in the GPL primitives
Must be used each time a VCAM-ISO GPL primitive is
invoked. It permits the SS-user to receive complementary
information about the error when something has gone
wrong. Refer to section "Error processing" for a description
of its structure.
The SS-user can analyze a semaphore message which
has been received from the SS-provider. Refer to the
"Event Handling" section.
Must be used before any call of VCAM-ISO GPL primitives.
It makes the correspondence between names of constants
used in the GPL primitives and their values. These names
can be used in the SS-user program.
2-11
VCAM-ISO Reference Manual Part 1 - Session Services
2.8.2
Common Rules
As a set of parameters is common to all declarative primitives, we can describe their
common rules by :
H_DC_SI_XXX
{[ NAME=i_data_identifier ]
[ ,ATTRIB=i_char_string ]
| ,NLVL1 }
[ ,PREFIX=i_char_string4 ];
Parameter description
2-12
NAME
is the name of the declarative.
ATTRIB
gives the GPL attributes of the declared structure (refer to the
GPL manual for the semantic of GPL attributes).
NLVL1
signifies that neither the DCL 1 ... line nor the termination
character (; or ,) are generated. The highest level in the
structure is 4.
PREFIX
allows the user program to define a variable prefix.
47 A2 60UC Rev02
3. General Rules for Parameters and
Primitives
This chapter describes the parameter exchange rules between the SS-user (generally a
set of procedures linked in a load-module) and the SS-provider (which is a set of GCOS7
system shared procedures). This section should help you to understand the detailed
description of each GPL primitive in the sections on imperative primitives " in Part 2 or the
C primitives described in the sections on imperative primitives in Part 3.
In this section, and in the detailed description of the GPL primitives, two kinds of
parameters are mentioned.
• GPL-primitive parameters, which are the parameters of a GPL macro. Parameters of
all the GPL primitives are described in the section "Description of Imperative Primitives
" in Part 2.
• ISO-primitive parameters, which are the parameters of an ISO session service
primitive, as described in ISO 8326/DAD2.
Although there is a correspondence between these two types of parameters, the
description of the ISO 8326 parameters is often not exactly equivalent to the GPLprimitive parameters
Examples:
• An ISO parameter, such as SS-user data, is exchanged by means of two GPL-primitive
parameters: a pointer and a length (see below for details).
• A mandatory ISO parameter such as the Session Requirements (the list of requested
functional units) becomes a set of non-mandatory GPL parameters. If one of these
GPL-primitive parameters is omitted, the value "not required" is assumed.
47 A2 60UC Rev02
3-1
VCAM-ISO Reference Manual Part 1 - Session Services
3.1
PARAMETER DESCRIPTION CONVENTIONS
In this manual, parameters are described according to the standard conventions for GPL
primitives.
For each primitive, there is a global syntax description, followed by a detailed description
of the parameters.
3.1.1
Global Description Conventions
Prefix "iv_" is used for input GPL-primitive parameters and "ov_" for output GPL-primitive
parameters.
For example "DATAPTR = iv_ptr" means that DATAPTR is an input GPL-primitive
parameter of type pointer.
Prefix "bv_" means that the GPL-primitive parameter is sometimes input and sometimes
output, depending on the type of the primitive (request, indication, response or confirm).
But parameters are never input and output in the same GPL primitive call. For
example, "DATALG = bv_logbin_16" means that DATALG is input for H_SI_DT
TYPE=REQ and output for H_SI_DT TYPE=IND.
3.1.2
Detailed Description Conventions
For each GPL-primitive parameter there is a detailed description, except when the GPLprimitive parameter corresponds to an ISO-primitive parameter, in which case you should
refer directly to the ISO service and protocol documents. The explanations of the ISOprimitive parameters have not been copied in this document.
If a GPL-primitive parameter is described as "mandatory", macro processing will fail if the
parameter is omitted.
If a GPL-primitive parameter is described as "available" and is omitted:
• If it is an input parameter, it will be replaced by a default value (the hexadecimal
representation of the default value is zero).
• If it is an output parameter, it will be ignored.
If a GPL-primitive parameter is described as "mandatory" or "available", it is checked by
the SS-provider on input and updated on output (differences between "mandatory" and
"available" are only at GPL primitive level).
If a GPL-primitive parameter is described as neither "mandatory" nor "available", it is
ignored by the SS-provider (i.e. not checked on input and not updated on output).
3-2
47 A2 60UC Rev02
General Rules for Parameters and Primitives
3.2
PARAMETERS COMMON TO MOST GPL PRIMITIVES
The following parameters are present for most GPL imperative primitives.
3.2.1
TYPE Parameter
TYPE is a parameter common to all the GPL primitives which have a corresponding ISO
primitive. The possible values of the TYPE parameter are REQ for request, IND for
indication, RSP for response and CNF for confirm.
3.2.2
USERWAPTR and USERWALG Parameters
The USERWAPTR defines a working area.
The SS-user program supplies the pointer on each GPL primitive call. The working area is
accessed by the SS-provider during primitive execution, and by the SS-user program,
when it reads certain output parameters (see below). This working area can therefore be
destroyed or reused after all the output parameters have been copied or analyzed.
The USERWALG parameter is used to define the size of the working area. The default
value is 2 Kbytes. The SS-user program can define another size if more space is needed
(for example, for user data).
In order to exchange information efficiently between the SS-user and the SS-provider, the
input GPL parameters are moved to the working area before calling VCAM-ISO.
When an input parameter is a pointer, it is the pointer which is copied into the working
area, and never the field based by this pointer.
In the same way, output information is copied into the working area, and is moved from it
to the SS-user receiving parameters by the GPL primitives.
When an output parameter is a pointer, the field based by this pointer is placed in this
working area; it will be accessed by the SS-user through this pointer.
3.2.3
ERROR Parameter
The error structure (parameter ERROR) is an output parameter common to all the GPL
primitives. It is used to report detected errors to the SS-user. It is described in detail in the
section "Error Processing".
47 A2 60UC Rev02
3-3
VCAM-ISO Reference Manual Part 1 - Session Services
3.2.4
Return Code Parameter
The return code is an output parameter common to all the GPL primitives. It is used as an
alternative means of reporting detected errors to the SS-user (refer to the section "Error
Processing"). The error code field of the error structure and the return code are
equivalent.
3-4
47 A2 60UC Rev02
General Rules for Parameters and Primitives
3.3
3.3.1
GPL INPUT PARAMETERS
String and Numeric Parameters
These parameters are described as iv_logbin_N (with N=8, 16 or 32 for logical binary of 8,
16 or 32 bits), or iv_char_N (for character string of length N).
They are copied into the user working area during the execution of the GPL primitive
before calling VCAM-ISO.
3.3.2
Parameters Which Have a List of Possible Values
These parameters are described as in the following examples:
•
EXPEDITED_FLOW = {NO | YES | iv_logbin_8}.
•
DATATK = {NOT AVAILABLE | REQUESTOR | RESPONDER |
RESPONDER_CHOICE | iv_logbin_8}.
The first part of the list is a set of keywords which are recognized by the GPL primitive
(NO, YES, ...). They are replaced by a corresponding numeric value and copied into the
user working area.
The last item of the list means that the SS-user can also supply a variable which has been
previously filled with a numeric value.
The matching between keywords (NO, YES, ...) and numeric values is done by the
declarative primitive H_DC_SI_REPLACE.
For example, C_NO and C_YES are the "%REPLACE" associated to NO and YES; they
are declared by "H_DC_SI_REPLACE PREFIX = 'C_';" (for a full list of values and
description, refer to the "VCAM-ISO Reference Manual Part 2 - GPL Primitives").
3.3.3
Pointer to an Input Field
In order to avoid copying long VCAM-ISO input parameters (SS-user data parameter for
instance), only a pointer to, and the length of, the parameter are given to the SS-provider.
This pointer must address a field which is readable by the SS-user.
3.3.4
Pointer to an Output Field
In this case, pointer is an input GPL-primitive parameter and field is an output ISOsession parameter.
47 A2 60UC Rev02
3-5
VCAM-ISO Reference Manual Part 1 - Session Services
In order to avoid copying long VCAM-ISO output parameters (for example, the SS-user
data parameters of H_SI_DT and H_SI_TD), the SS-user supplies a pointer to a free area
where the SS-provider will put the SS-user data during execution of the primitive. SS-user
data of H_SI_CD and H_SI_EX is managed in the same way.
This pointer must address a field that the SS-user can write to.
The length of this field is known before calling the GPL primitive. At this point, it has been
set in the semaphore message which has notified the incoming event to the SS-user.
3-6
47 A2 60UC Rev02
General Rules for Parameters and Primitives
3.4
3.4.1
GPL OUTPUT PARAMETERS
String and Numeric Parameters
These parameters are described as ov_logbin_N (with N=8, 16 or 32 for logical binary of
8, 16 or 32 bits), or ov_char_N (for character string of length N).
They are copied inside the GPL primitive and, after the call to VCAM-ISO, from the user
working area to the variable specified as a parameter.
3.4.2
Parameters Which Have a List of Possible Values
These parameters are described as a numeric output value (e.g. PARAMETER =
ov_logbin8).
They are copied inside the GPL primitive and after the call to VCAM-ISO, from the user
working area to the variable specified as parameter.
The matching between keywords (NO, YES, ...) and numeric values is done by the
declarative primitive H_DC_SI_REPLACE.
For example, C_NO and C_YES are the "%REPLACE" associated to NO and YES; they
are declared by "H_DC_SI_REPLACE PREFIX = 'C_';" (for a full list of values and
description, refer to the "VCAM-ISO Reference Manual Part 2 - GPL Primitives").
3.4.3
Pointer to an Output Field
In order to avoid copying medium size VCAM-ISO output parameters (SS-user data
parameters, except for H_SI_DT, H_SI_TD, H_SI_CD and H_SI_EX), only a pointer to,
and the length of, the parameter are returned to the SS-provider. The VCAM-ISO
parameter itself is set in the user working area (see above).
For ISO session level 2, before calling service primitives (except H_SI_DT, H_SI_TD,
H_SI_CD, and H_SI_EX) with TYPE=IND or TYPE=CNF, the SS-user must have
reserved enough space in the working area to receive any expected data. This can be
done using the USERWALG parameter, to specify an area of between 2 and 11 Kbytes
inclusive (the default is 2 Kbytes). During the processing of the primitive, if the value of
USERDATALG is greater than that of USERWALG, the primitive stops with an abnormal
return code (LNERR). In this case the SS-user must reserve more space for the data, if
possible.
47 A2 60UC Rev02
3-7
VCAM-ISO Reference Manual Part 1 - Session Services
3-8
47 A2 60UC Rev02
4. SSAP Identification and Session
Connection Identification
4.1
DESCRIPTION OF THE IDENTIFIERS
A VCAM-ISO SSAP is identified by two numeric values: one supplied by the SS-provider,
the VCAM_SSAP_ID, and the other supplied by the SS-user, the USER_SSAP_ID.
A session connection is also identified by a numeric value supplied by the SS-provider,
the VCAM_SCN_ID, and the other supplied by the SS-user, the USER_SCN_ID.
4.1.1
SS-provider SSAP Identifier VCAM_SSAP_ID
VCAM_SSAP_ID is a 32-bit field returned to the SS-user by the H_SI_OPN_SSAP
primitive.
VCAM_SSAP_ID is then an input parameter for all the primitives referring to a session
connection.
VCAM_SSAP_ID is valid until H_SI_CLS_SSAP.
VCAM_SSAP_ID can be divided into two equal parts of 16 bits:
• The first part (the 16 leftmost bits) is an index used by the SS-provider to retrieve the
system memory area where the SSAP object is stored.
• The second part is used to check the SSAP validity.
4.1.2
SS-user SSAP Identifier USER_SSAP_ID
The USER_SSAP_ID is a parameter recorded by the SS-provider on H_SI_OPN_SSAP.
It is a 16-bit field which is then set in all the semaphore messages concerning SSAPs.
47 A2 60UC Rev02
4-1
VCAM-ISO Reference Manual Part 1 - Session Services
4.1.3
SS-provider Session Connection Identifier VCAM_SCN_ID
VCAM_SCN_ID is a 32-bit field returned to the calling SS-user by H_SI_CON TYPE=REQ
and to the called SS-user by H_SI_CON TYPE=IND.
It is valid until H_SI_REL TYPE=RSP or TYPE=CNF, H_SI_UAB TYPE=REQ or
TYPE=IND and H_SI_PAB TYPE=IND.
VCAM_SCN_ID can be divided into two equal parts of 16 bits:
• The 16 leftmost bits of VCAM_SCN_ID constitute an index which allows the SSprovider to retrieve the system memory area where the session state is stored.
• The 16 rightmost bits constitute a key which is used for checking purposes; it ensures
that an SS-user cannot work with an invalid VCAM_SCN_ID.
The "session index" used in DSAC network administration (refer to the "AUPI Reference
Manual") is the 16 leftmost bits of the VCAM_SCN_ID field.
4.1.4
SS-user Session Connection Identifier USER_SCN_ID
The USER_SCN_ID is a parameter recorded by the SS-provider on H_SI_CON
(TYPE=REQ and TYPE=IND) primitive. It is a 16-bit field which is set in all the semaphore
messages concerning ISO sessions.
USER_SCN_ID must also be supplied for checking purposes to all the GPL-primitives
that refer to a single session.
4-2
47 A2 60UC Rev02
SSAP Identification and Session Connection Identification
4.2
CONCURRENT ACCESS TO AN SSAP OR A SESSION CONTEXT
If two primitives are executed simultaneously on the same SSAP (i.e. with the same
VCAM_SSAP_ID) or the same session (i.e. with the same VCAM_SCN_ID), VCAM-ISO
keeps one of the primitives waiting until the other has been completely executed.
47 A2 60UC Rev02
4-3
VCAM-ISO Reference Manual Part 1 - Session Services
4-4
47 A2 60UC Rev02
5. Event Handling
5.1
5.1.1
EVENT NOTIFICATION MECHANISM
Definition of Event
According to the ISO session protocol, an incoming SPDU (Session Protocol Data Unit)
will be processed by the Session Layer, and an "INDICATION" or a "CONFIRMATION"
will be issued to the application.
In VCAM-ISO, an event is a semaphore message which wakes the SS-user when an
"INDICATION" or a "CONFIRMATION" has arrived.
5.1.2
Definition of Credit
The credit is a local VCAM-ISO mechanism used to avoid congestion of the SS-provider.
A credit is a semaphore message. For further explanation, refer to the paragraph "Flow
Control Mechanism" in the section "Data transfer", or see the "User's Guide".
47 A2 60UC Rev02
5-1
VCAM-ISO Reference Manual Part 1 - Session Services
5.1.3
Notification
VCAM-ISO notifies the SS-user of an event or a credit through the GCOS7 semaphore
mechanism. Events are given to the application in two steps:
1.
A notification semaphore message is posted to the application, specifying what kind
of event it is, and how much space will be needed to get all the data.
2.
The application then calls the associated primitive (with TYPE=IND for indication or
TYPE=CNF for confirm) to receive the event and all the associated data. The
session state is changed only when the GPL primitive is executed and never when
the application is notified.
Credits are given to the application in just one step by a semaphore notification with
message.
Note:
It is the responsibility of the application to reserve enough space on its
semaphore to allow VCAM-ISO to always notify it. However, the GCOS7
semaphore queue is limited to 4096 messages.
Message priority is 15 (for a semaphore with priority) and notifications are first in, first out.
VCAM-ISO always performs a V_TEST and never waits for a free link on the semaphore.
The application is notified of the occurrence of an event through the H_WAIT primitive or
the SEPM GPL builtin. Five messages can be sent at a time on a semaphore for each
session:
•
•
•
•
•
NORMAL CREDIT
NORMAL EVENT
EXPEDITED CREDIT
EXPEDITED EVENT
S-PABORT INDICATION
VCAM-ISO events are notified through two types of semaphore:
• dialog events or credits are notified on the session semaphore defined by the
H_SI_CON primitive,
• the S-CONNECT indication is notified on the VCAM-ISO SSAP semaphore defined by
the H_SI_OPN_SSAP primitive.
The same semaphore may be used by the session and the SSAP, or by many sessions
and/or VCAM-ISO SSAPs.
Note:
Protocol checking is not finished when the SS-user is notified; so on error of the
session provider of its partner, the application can be notified of an event that
does not comply with the protocol (e.g. notification of S-DATA indication before
the S-CONNECT confirm).
The application must either take the initiative to terminate the session or receive
the event according to the VCAM-ISO interface specification.
5-2
47 A2 60UC Rev02
Event Handling
5.2
MESSAGE ON THE SESSION CONNECTION SEMAPHORE
VCAM-ISO uses a one-byte field EV_CODE to indicate which event or credit is coming.
The values, defined in "H_DC_SI_REPLACE PREFIX=C_;" are made up of the name of
the session event prefixed with C_S_ (C_S_CONIND for instance). You will find the
complete list in the section "Declarative Primitives Description", paragraph
"H_DC_SI_REPLACE", of the "VCAM-ISO Reference Manual Part 2 - GPL Primitives".
There are two types of message, depending on the value of the EV_CODE:
•
•
5.2.1
protocolar messages
non-protocolar messages.
Form of Protocolar Messages
These messages notify the application of the arrival of an event. It must then use the
appropriate primitive (with TYPE=IND or CNF) to receive the event and all its data.
-------------------------------------------| HHHHHHHHHHHHHHHHH | HHHHHHHHHHHHHHHHH
|
|--------------------------------------------|
| HHHHHHHHHHHHHHHHH |
EV_CODE
| VV
|
|--------------------------------------------|
| DATA LENGTH
|
VV
|
|--------------------------------------------|
|
RR
|
USER_SCN_ID
|
--------------------------------------------
Parameters:
H
Reserved for hardware use.
EV_CODE
logbin8
Identification of the event (for example C_S_DTIND,...). It
ensures that the event we will get is the same as the one that
was notified.
VV
47 A2 60UC Rev02
Reserved for VCAM-ISO.
5-3
VCAM-ISO Reference Manual Part 1 - Session Services
DATA LENGTH
logbin16
Length of the
- NORMAL DATA
- TYPED DATA
- EXPEDITED DATA
- CAPABILITY DATA
If DATA LENGTH is not zero, the application must reserve a
DATA BUFFER of the indicated length.
DATA LENGTH equal to "0000"x means that there is no data
coming with this event.
If this field is not used for DATA LENGTH, it is reserved for
VCAM-ISO.
RR
Reserved for VCAM-ISO: must be "D000"X.
USER_SCN_ID
logbin16
Identification given to the session by the SS-user program. It
is generally unique for a VCAM-ISO SSAP.
5-4
47 A2 60UC Rev02
Event Handling
5.2.2
Form of Non-protocolar Messages
These messages notify the SS-user of the arrival of a credit.
-------------------------------------------| HHHHHHHHHHHHHHHHH | HHHHHHHHHHHHHHHHH
|
|--------------------------------------------|
| HHHHHHHHHHHHHHHHH |
EV_CODE
| VV
|
|--------------------------------------------|
|
VV
|
|--------------------------------------------|
|
RR
|
USER_SCN_ID
|
--------------------------------------------
Parameters:
H
Reserved for hardware use.
EV_CODE
logbin8
Identification of the credit.
VV
Reserved for VCAM-ISO.
RR
Reserved for VCAM-ISO: must be "D000"X.
USER_SCN_ID
logbin16
Identification given to the session by the SS-user.
Note:
This format is for the following values of EV_CODE:
1.
C_S_NCREDIT: notification of normal credit. The SS-user can send data with the
H_SI_DT TYPE=REQ or H_SI_TD TYPE=REQ primitives.
2.
C_S_XCREDIT: notification of expedited credit. The SS-user can send expedited
data with the H_SI_EX TYPE=REQ primitive.
47 A2 60UC Rev02
5-5
VCAM-ISO Reference Manual Part 1 - Session Services
5.3
MESSAGE ON THE SSAP SEMAPHORE
These messages notify the SS-user of a request for a session connection.
-----------------------------------------| HHHHHHHHHHHHHHHHH | HHHHHHHHHHHHHHHHH
|
|------------------------------------------|
| HHHHHHHHHHHHHHHHH | EV_CODE
|
VV
|
|------------------------------------------|
|
VCAM_SCN_ID
|
|------------------------------------------|
|
RR
|
USER_SSAP_ID
|
------------------------------------------
Parameters:
H
Reserved for hardware use.
EV_CODE
logbin8
This code is defined by H_DC_SI_REPLACE. C_S_CONIND
is the event code used to indicate a connect indication.
VV
Reserved for VCAM-ISO.
VCAM_SCN_ID
logbin32
VCAM_SCN_ID is the identifier given by VCAM-ISO to the
session connection.
RR
Reserved for VCAM-ISO: must be "D000"X.
USER_SSAP_ID
logbin16
Identifier given by the SS-user to the VCAM-ISO SSAP.
5-6
47 A2 60UC Rev02
6. Data Transfer
6.1
6.1.1
FLOW CONTROL MECHANISM
Purpose
For each kind of data it is necessary to control the number of SSDUs (Session Service
Data Units) sent on the network in order to avoid any congestion.
6.1.2
How Credits are Used
Credit is the VCAM-ISO mechanism for flow control.
A credit is a semaphore message:
• when notified of a credit, the SS-user can send an SSDU or a portion of SSDU.
• when the SS-user has sent an SSDU, it must wait for a CREDIT to send the next SSDU
or portion of SSDU.
Immediately after establishment of the session connection, the SS-user can send an
SSDU. The program does not wait for a credit.
VCAM-ISO uses two kinds of credit:
• NORMAL CREDIT for NORMAL DATA SSDUs, and TYPED DATA SSDUs.
• EXPEDITED CREDIT for EXPEDITED DATA SSDUs.
As CAPABILITY DATA must be acknowledged before anything is done, flow control is not
needed. There is therefore no credit for CAPABILITY DATA.
47 A2 60UC Rev02
6-1
VCAM-ISO Reference Manual Part 1 - Session Services
CREDITs are notified by a semaphore message with an EV_CODE equal to
C_S_NCREDIT for normal credit and C_S_XCREDIT for expedited credit.
• NORMAL CREDIT is needed to issue an S-DATA request or a S-TYPED-DATA
request.-EXPEDITED CREDIT is needed to issue a S-EXPEDITED-DATA request.
Note:
6-2
Having a new credit does not mean that the partner has received the SSDU or
the portion of SSDU.
47 A2 60UC Rev02
Data Transfer
6.2
6.2.1
PORTION MODE
Purpose
ISO 8326 allows transmission of unlimited SS-user data in DT REQ/IND or TD REQ/IND.
To deal with such data lengths, VCAM-ISO uses the special mechanism described below.
Data length is limited to 10 Kbytes for other primitives, due to implementation choice.
6.2.2
Emission
If the SSDU to transmit is greater than 16 Kbytes, the SS-user must split it into SIDUs
(Session Interface Data Units) of maximum size 16 Kbytes. Each SIDU is submitted to
credit.
Values between 16 Kbytes and 32 Kbytes are allowed with the half duplex functional unit
when the SIDU is a FULL NSSDU.
The ENCLOSURE parameter of H_SI_DT and H_SI_TD allows the program to define the
type of the SIDU: full SSDU, beginning of an SSDU, middle of an SSDU, end of an SSDU.
The SS-user must respect the coherence of the items that constitute the current SSDU. It
cannot issue anything on the normal flow between two SIDUs which do not complete the
SSDU. For example, the SS-user cannot add a give token request to the data request if
the SIDU is not a complete SSDU.
Example 1:
|
|
---------------DT begin
|
ind.
|
----------------
|
|
-----------------DT middle | GT |
ind.
| ind|
------------------
|
|
---------DT end |
ind. |
----------
is invalid because the DT has not ended.
Example 2:
|
|
---------------DT begin
|
ind.
|
----------------
|
|
-----------------DT end
| GT |
ind.
| ind|
------------------
is valid.
47 A2 60UC Rev02
6-3
VCAM-ISO Reference Manual Part 1 - Session Services
6.2.3
Reception
VCAM-ISO gives the SS-user the possibility to limit the size of the data received during a
VCAM-ISO primitive. The RMAXSIZE parameter defined by the SS-user during the
connection establishment phase specifies the maximum size of any received SIDU (for
Normal and Typed SSDU).
The ENCLOSURE parameter allows the program to know the type of the SIDU: full
SSDU, beginning of an SSDU, middle of an SSDU, end of an SSDU.
H _S I_C O N T Y P E = R E Q
R M A X S IZ E = iv_logbin_16
H _S _C O N T Y P E = IN D
H _S I_C O N T Y P E = R S P
R M A X S IZ E = iv_logbin_16
H _S I_C O N T Y P E = C N F
Figure 6-1. Establishing the maximum receiving size
6.2.3.1
RMAXSIZE
RMAXSIZE must not exceed 16 Kbytes but should not be less than 2 Kbytes.
• RMAXSIZE = 0 means that the received maximum size is 16 Kbytes.
• If RMAXSIZE is big enough, the received SIDU will be a full SSDU, even if it has been
split into several SIDUs on emission.
When an SSDU is greater than RMAXSIZE, it will be returned to the SS-user as a
sequence of SIDUs. The size of each SIDU depends on the lower layers (transport,
network) and on the SS-provider of the partner. The SS-user must therefore be able to
receive all the possible sizes of SIDU lower than RMAXSIZE and all the valid
sequences of SIDU. Consequently, if the two partners use this interface, VCAM-ISO
does not warrant that the size of a sent SIDU will be the size of the received SIDU.
• The influence of RMAXSIZE on performance is explained in the section "VCAM-ISO
Installation and Configuration".
6-4
47 A2 60UC Rev02
Data Transfer
6.2.3.2
Particular Sequences in Reception
Normally, all the SIDUs belonging to the same SSDU are delivered consecutively. A give
token indication can be delivered with the last part of the SSDU.
Example:
|
|
---------------DT begin
|
ind.
|
----------------
|
|
------------DT middle |
ind.
|
-------------
--------------| DT last | GT |
|
ind. | ind |
---------------
However, there are some exceptions.
Events with destructive effect
• These events take place between SIDUs. The SIDUs which are not still delivered are
lost. Below is the list of the events with destructive effect.
ISO Primitive
S-RESYNCHRONIZE indication
S-P-EXCEPTION-REPORT indication
S-U-EXCEPTION-REPORT indication
S-ACTIVITY-INTERRUPT indication
S-ACTIVITY-DISCARD indication
S-U-ABORT indication
S-P-ABORT indication
Value of EV_CODE
C_S_RSYNIND
C_S_PERIND
C_S_UERIND
C_S_ACTIIND
C_S_ACTDIND
C_S_UABIND
C_S_PABIND
Example 1:
|
|
---------------DT begin
|
ind.
|
----------------
|
|
------------PAB
|
ind.
|
-------------
|
|
-------RSYN |
ind. |
--------
Example 2:
|
|
---------------DT begin
|
ind.
|
----------------
47 A2 60UC Rev02
|
|
-------RSYN |
cnf. |
--------
|
|
-----------DT begin |
ind
|
------------
6-5
VCAM-ISO Reference Manual Part 1 - Session Services
Events with no destructive effect
• This is the case for expedited data which is delivered with priority. The SIDUs which
follow the expedited data are not lost.
Example:
|
|
6-6
---------------DT begin
|
ind.
|
----------------
|
|
------------EX
|
ind.
|
-------------
--------| DT end |
|
ind. |
---------
47 A2 60UC Rev02
7. ISO Address Management
7.1
ISO SSAP DEFINITION
An SSAP is an addressing entity used by the SS-users to identify their access point to the
session service.
An SSAP is composed of a TSAP and an SSAPid.
SSAPid
The SSAPid is used to distinguish among the SSAPs known by a given session entity. It is
a hexadecimal string, the length of which is between 0 and 16 bytes.
TSAP
A TSAP identifies a transport service provider.
A TSAP is composed of a TSAPid and a list of NSAPs.
• TSAPid is a hexadecimal string, the length of which is between 0 and 32 bytes.
• NSAP is a hexadecimal string, the length of which is between 0 and 40 half-bytes (i.e.
0 and 20 bytes, but NSAP is not necessarily an even number of half-bytes).
47 A2 60UC Rev02
7-1
VCAM-ISO Reference Manual Part 1 - Session Services
7.2
PROCESSING OF SSAPS INSIDE VCAM-ISO
According to the ISO session service definition, information about the calling, called, and
responding SSAPs is exchanged between the two SS-users during the session
connection establishment phase. The called SSAP is also used by VCAM-ISO to choose
the target GCOS7 application.
VCAM-ISO can manage a set of calling and called SSAPs without restriction. The
SSAPid, TSAPid and NSAP have the values mentioned above, and there is no specific
limit on the number of SSAPids, TSAPids and NSAPs.
7.2.1
Selecting the Target Host and the Target Application
The SSAPids are exclusively processed by VCAM-ISO inside GCOS7.
TSAPids are used by VCAM-ISO (refer to the "Incoming Connection Processing" and
"Outgoing Connection Processing" paragraphs), and by the front-end processor
(especially when several DPS7s share a front-end processor).
The NSAP is mainly processed by the front-end processor (refer to front-end processor
documentation). It is not necessary to give to VCAM-ISO the NSAP of each GCOS7
application. However it can be used as an additional criteria for selecting the GCOS7
target application.
7-2
47 A2 60UC Rev02
ISO Address Management
7.3
VCAM-ISO SSAP
Any GCOS7 application that needs to open one or several ISO session connections must
declare one (or several) VCAM-ISO SSAP(s).
This VCAM-ISO SSAP is a GCOS7 object which is the representation of the OSI SSAP of
the GCOS7 application.
7.3.1
VCAM-ISO SSAP Declaration
A VCAM-ISO SSAP is declared by the H_SI_OPN_SSAP primitive. Information supplied
on this primitive is used:
- for incoming connections To choose and notify the GCOS7 application by means of its
semaphore address.
- for outgoing connections
To build the calling address; this information is sent according
to the ISO protocols to the called SS-user.
The SS-user must always specify the SSAPid with the H_SI_OPN_SSAP primitive,
whereas the TSAPid and NSAP parameters are optional. Also, if the NSAP has not been
specified on H_SI_OPN_SSAP, it can be given with the connection request (H_SI_CON
TYPE=REQ) primitive.
Two cases can be distinguished (and we advise using the first one):
• The SSAP declared without an explicit NSAP.
• The SSAP declared with an explicit NSAP.
7.3.2
VCAM-ISO SSAP Declared Without an Explicit NSAP
In this case only the SSAPid and TSAPid parameters are specified.
If TSAPid is omitted the default TSAPid (if it exists), declared in the GCOS7 network
configuration is assumed.
It is not allowed to declare two SSAPs with the same SSAPid and TSAPid, unless both
have an explicitly declared NSAP.
47 A2 60UC Rev02
7-3
VCAM-ISO Reference Manual Part 1 - Session Services
7.3.3
VCAM-ISO SSAP Declared With an Explicit NSAP
This method is reserved for applications that need to manage their NSAP by themselves.
It allows selection of one NSAP among the NSAPs declared in the front-end processor for
incoming and outgoing connections.
Only one explicit NSAP can be supplied on each H_SI_OPN_SSAP primitive. If an
application uses an SSAP with several NSAPs, it must call the H_SI_OPN_SSAP
primitive for each NSAP.
If the NSAP is explicitly supplied, TSAPid is mandatory. GCOS7 checks that there are not
two SSAPs with the same SSAPid, TSAPid and NSAP.
7.3.4
VCAM-ISO SSAP Release
Two primitives can be used to release a VCAM-ISO SSAP:
7-4
H_SI_DCN_SSAP
To disconnect a SSAP, i.e. to abort all the session
connections which have been opened on a given VCAM-ISO
SSAP. After H_SI_DCN_SSAP has been called, the VCAMISO SSAP cannot be used to open a new session
connection.
H_SI_CLS_SSAP
To close a VCAM-ISO SSAP, i.e. to clear all information
recorded by H_SI_OPN_SSAP. Closing a VCAM-ISO SSAP
is only possible if there is no session connection currently
attached.
47 A2 60UC Rev02
ISO Address Management
7.4
OUTGOING CONNECTION PROCESSING
An outgoing connection is initiated by an S-CONNECT request. Calling and called
addresses are parameters of this ISO primitive.
To access a remote SSAP, an application has to specify a complete address for the
called SSAP, that is:
• an SSAPid,
• a TSAPId,
• a list of NSAPs.
These parameters are supplied on the H_SI_CON primitive with TYPE=REQ.
The calling address is defined by reference to the VCAM-ISO SSAP of the calling
application (see above, "VCAM-ISO SSAP Declaration").
When it processes the H_SI_CON primitive with TYPE=REQ, VCAM-ISO first tries to
open a local session. If this processing fails, i.e. the called SSAP is not on the same
system, VCAM-ISO will try to open a remote session through the front-end processor.
7.4.1
Processing of a Local Connection
A local connection is a connection between two GCOS7 applications running on the same
host. Data are exchanged directly, without using the front-end processor.
There are three cases in which the called SSAP corresponds to a local connection:
• The number of called NSAPs is zero in the connect request. The called SSAPid and
TSAPid are then fetched and placed in the list of VCAM-ISO SSAPs declared without
an explicit NSAP.
• The called SSAPid and TSAPid match the SSAPid and TSAPid of one of the VCAMISO SSAPs declared without an explicit NSAP, and one of the called NSAPs matches
one of the default NSAPs declared in the GCOS7 network configuration.
• The called SSAPid, TSAPid, and one of the called NSAPs match the SSAPid, the
TSAPid, and the NSAP of one VCAM-ISO SSAP which has been previously declared
with an explicit NSAP.
47 A2 60UC Rev02
7-5
VCAM-ISO Reference Manual Part 1 - Session Services
7.4.2
Processing of a Remote Connection
If the outgoing connection is not local, the connection provider will try to open the
connection through each available front-end processor until it is successful.
If several front-end processors are used, the list of front-end processors is always
scanned in the same way. A load leveling of outgoing connections is performed by
computing the rank of the first front-end processor to be tried as a function of the called
TSAP.
Note:
VCAM-ISO ensures that the first front-end processor will always be the same
only if the GPL-primitive parameters which defined the called TSAP are strictly
identical.
All the addressing information (for instance the list of called NSAPs) is sent to each frontend processor without any change. For details about front-end processor algorithms used
to reach the remote system, refer to the front-end processor documentation.
Those parts of the calling address that are known by VCAM-ISO are also sent to the frontend processor, according to the algorithm described below.
7.4.2.1
Calling Address for SSAP Declared Without an Explicit NSAP
The calling NSAP is chosen by the front-end processor from among the NSAPs which are
declared as available for the current local TSAPid (refer to the front-end processor
documentation). The choice is done in such a way that the called SS-user could always
recall by using the calling SSAP supplied on the connection indication. A connection is
therefore established only if there is one NSAP compatible with the subnetwork used to
reach the remote system.
The SS-user can also supply an NSAP on the connection request in order to force one
NSAP from among the available NSAPs declared at front-end processor level.
7.4.2.2
Calling Address for SSAP Declared With an Explicit NSAP
The SSAPid, TSAPid and NSAP declared by means of H_SI_OPN_SSAP are used to
build the calling address. If there is no subnetwork compatible with the supplied NSAP, or
if the TSAPid is not declared as available for this NSAP, the front-end processor may
refuse the connect request.
7-6
47 A2 60UC Rev02
ISO Address Management
7.5
INCOMING CONNECTION PROCESSING
Note:
If the connection is local, refer to the "Processing of Local Connection"
paragraph.
An incoming connection is initiated by the arrival of a connect SPDU on a transport
connection.
Calling and called addresses are computed from the transport connect request
parameters (for calling and called TSAP) and from the connect SPDU (for calling and
called SSAPid).
• The calling address is returned to the SS-user on the H_SI_CON TYPE=IND primitive.
• The called address is used to select the VCAM-ISO SSAP, which is the remote endpoint of the connection.
VCAM-ISO scans first the VCAM-ISO SSAPs declared with an explicit NSAP, and then
the SSAPs declared without an explicit NSAP.
The algorithms are described below.
7.5.1
VCAM-ISO SSAP Declared With an Explicit NSAP
GCOS7 compares the called SSAPid, TSAPid and NSAP with the SSAPid, TSAPid and
NSAP of all the SSAPs declared with an explicit NSAP. If all these fields match, GCOS7
selects the current SSAP.
7.5.2
VCAM-ISO SSAP Declared Without an Explicit NSAP
GCOS7 compares the called SSAPid and TSAPid with the SSAPid and the TSAPid (or
the default TSAPid) of all the declared SSAPs. If all these fields match, GCOS7 selects
the current SSAP.
47 A2 60UC Rev02
7-7
VCAM-ISO Reference Manual Part 1 - Session Services
7-8
47 A2 60UC Rev02
8. Error Processing
VCAM-ISO behaves in two different ways in processing errors, depending on the nature
and the origin of the problem. In some cases an application can recover the information
concerning the error in a synchronous way, in other cases in an asynchronous way.
8.1
SYNCHRONOUS PROCESSING
A typical case is when an application uses a primitive with a wrong parameter or when it
calls a service which is not allowed at the current state of the session. For example:
• H_SI_DT TYPE=REQ with DATALG = -1
• H_SI_CON TYPE=CNF before H_SI_CON TYPE=REQ
If the application activates a service with a wrong parameter, VCAM-ISO returns a specific
return code and fills an error structure, named ERROR, which is common to all VCAMISO primitives.
Example:
H_SI_DT (TYPE=REQ) -----> | VCAM | -----> RC = WRONGPAR
ERROR = ...
47 A2 60UC Rev02
8-1
VCAM-ISO Reference Manual Part 1 - Session Services
8.2
ASYNCHRONOUS PROCESSING
This is the case when VCAM-ISO encounters an internal error which puts the session
connection into an incoherent state, and it is not possible to continue this session
connection in a normal way. For example, when VCAM-ISO decodes a wrong SPDU.
If VCAM-ISO encounters an internal error, the application will receive a return code
OBSOLETE or DONE (depending on the error) during the current VCAM-ISO primitive
and will be notified with a P_ABORT indication. To get the information concerning the
error, the application must call the H_SI_PAB primitive, which will deliver the information
in its P_ERROR field.
Examples:
H_SI_REL (TYPE=IND) -----> VCAM -----> RC = OBSOLETE
notification of the P_ABORT
H_SI_PAB (TYPE=IND) -----> VCAM -----> RC = DONE
P_ERROR = ...
8-2
47 A2 60UC Rev02
Error Processing
8.3
STRUCTURE OF ERROR AND P_ERROR
ERROR and P_ERROR are the two structures used by VCAM-ISO to return the
information concerning the error to the SS-user. They have exactly the same structure
and the same fields but they differ in their condition of use.
•
ERROR, which is common to all the VCAM-ISO primitives, is set for errors which
can be treated synchronously. This structure relates therefore to the current VCAMISO primitive.
•
P_ERROR is a specific structure of the H_SI_PAB primitive. It is used when the error
cannot be treated synchronously. Its content therefore applies to a previous VCAMISO primitive (the one in which the error was detected).
The ERROR (and P_ERROR) structure contains the following information:
8.3.1
•
an error code, giving the category of error,
•
a message, specifying the nature of the error,
•
the cause of the error,
•
the event during which the error happened.
Error Code and Message
There is a one-to-one relation between code and message. The code may allow the SSuser to see if the primitive that was used is successful or not. A code equal to zero means
no error, a code not equal to zero signals an error, in which case, the SS-user can find a
first explanation in the message field corresponding to the error code.
Below is a list of the error codes and messages with a short explanation.
0
No error.
10 ILLEGAL VALUE
The value of a parameter is incorrect.
20 BAD LENGTH
The length of a parameter is incorrect.
25 USERWA TOO SMALL
The size of the SS-user's working area is too
small.
30 PROTOCOLAR ERROR
There is an inconsistency with the ISO
protocol.
40 ADDRESS ERROR
VCAM-ISO cannot find a correspondent.
50 TRANSPORT ERROR
A problem occured while interfacing with the
transport layer.
60 ACCESS VIOLATION
Attempt to access an unreadable area.
47 A2 60UC Rev02
8-3
VCAM-ISO Reference Manual Part 1 - Session Services
8.3.2
70 ILLEGAL SEQUENCE
The current action is not possible in the
present session context.
80 BAD PREDICATE VALUE
A predicate or a composition of predicates
has an invalid value. Predicates are defined
in the ISO Session Service and Protocol.
This is most likely an SS-user error.
90 BAD ENCODING
VCAM-ISO has decoded an invalid SPDU.
100 ERROR ON SEMAPHORE
VCAM-ISO has encountered a problem in
notification.
110 NO ISO SESSION
The ISO session services are not available
on your site.
120 PROVIDER ABORT
VCAM-ISO only signals these errors with a
P_ABORT indication. Refer to the paragraph
"PAB-specific Errors" for more information.
130 STILL ACTIVE SESSION
An application tried to close a SSAP while
some sessions linked to the SSAP were still
active.
140 OBSOLETE
The event notified to the application can no
longer be delivered (because of an error in
decoding an SPDU for instance).
150 OVERFLOW
The maximum number of sessions allowed
by VCAM-ISO has been reached.
Cause
Whenever possible, VCAM-ISO indicates the origin of the error. For example, a wrong
parameter (DATATK for Data Token), or an erroneous state (STA01 - no connection).
8-4
47 A2 60UC Rev02
Error Processing
8.3.3
Event
This is used to indicate in which VCAM-ISO primitive the error was detected. The value of
this field has the following form:
<service name><type of request>.
Service name can have the following values:
ACTD, ACTE, ACTI, ACTR, ACTS, CD, CG, CON, DT, EX, GT, PAB, PER, PT, REL,
RSYN, SYNMA, SYNMI, TD, UAB, UER.
Type of request is one of the following:
REQ for request, IND for indication, RSP for response and CNF for confirmation.
There are also three other specific values that the event field may have: CLS_SSAP,
DISCN_SSAP and OPN_SSAP.
47 A2 60UC Rev02
8-5
VCAM-ISO Reference Manual Part 1 - Session Services
8.4
PAB-SPECIFIC ERRORS
These errors, signalled by the code 120, can be delivered only through a PAB indication.
The event field of the error structure is not significant. Below is a list of these errors.
8-6
PGT
Process group termination.
CLOSE_TSAP
The program tried to access a TSAP that was already closed.
DISCN_SSAP
The SSAP is disconnected
H_SI_DCN_SSAP primitive).
CLOSE_SSAP
The program tried to access an SSAP that was already
closed.
VCAM_ERROR
Internal VCAM-ISO error.
MEMOVER
Memory overflow.
NOTIF_ERROR
No more notification is possible.
TDISIND
The transport has been disconnected.
(by
means
of
the
47 A2 60UC Rev02
Error Processing
8.5
RETURN CODES
Another way for an SS-user to see if the VCAM-ISO primitive was successful or not is to
test the Return Code (RC) set by VCAM-ISO. If no error is encountered, the Return Code
is set to DONE. Otherwise, one of the following values can be set by VCAM-ISO. The
following list shows the correspondence between the Return Code and the error code.
RC = ARGERR
for code 80.
RC = ADDRERR
for code 40.
RC = BUSY
for code 130.
RC = LNERR
for code 25.
RC = OBSOLETE
for code 140.
RC = PATHNAV
for code 50.
RC = SEQERR
for codes 70, 110.
RC = SYSOV
for code 150.
RC = UBUGERR
for code 100.
RC = WRONGPAR
for codes 10, 20, 30, 60.
47 A2 60UC Rev02
8-7
VCAM-ISO Reference Manual Part 1 - Session Services
8-8
47 A2 60UC Rev02
9. Trace
Note:
9.1
This section assumes some knowledge of the GCOS7 Interactive Operator
Facility (IOF) and GCOS7 Command Language (GCL).
INTRODUCTION
The VCAM-ISO user trace utility allows you to debug your own applications. It gives, when
an SS-user asks for it, the history of data exchanged between the SS-user and the SSprovider and, optionally, the data exchanged between the SS-provider and the transport
provider.
47 A2 60UC Rev02
9-1
VCAM-ISO Reference Manual Part 1 - Session Services
9.2
PRODUCT FUNCTIONALITIES
The VCAM user trace consists of two parts:
9.2.1
•
the VCAM user trace collector, which allows the recording, for each VCAM-ISO
primitive, of a set of data structures in a file,
•
the VCAM user trace scanner, which allows a symbolic display of the previouslyrecorded data structures.
Function of the VCAM User Trace Collector
Any authorized IOF user can start the
START_VCAM_TRACE command (SVTR) with:
•
•
•
•
trace
collection
by
using
the
One file by submitter of the SVTR command. This file can be automatically allocated.
Capability of selecting the trace level (i.e. the amount of information and the level of
detail).
Capability of selecting the applications to be logged by their RON.
Capability of displaying information about trace activity by using the DVTR GCL
command, and to stop the trace collection with the TVTR GCL command.
Output may be directed to a file by means of the GCL directive LOG.
9.2.2
Function of the VCAM User Trace Scanner
Allows, through the GCL command (IOF domain) SCAN_VCAM_TRACE (SCNVTR), and
through an interactive processor, display of the structures stored at collect time.
9-2
47 A2 60UC Rev02
Trace
9.3
9.3.1
VCAM USER TRACE COLLECTOR
Number of Users and Security
A maximum of 16 users can simultaneously start the VCAM trace.
The right to use the VCAM trace is recorded in the GCOS7 catalog. A fictive application
named "VCAMTRCU" must belong to the project of the submitter of SVTR, DVTR, and
TVTR GCL commands.
9.3.2
Logfile
The logfile is a UFAS relative file. There is one file for each submitter of the VCAM user
trace collector.
The default name of the logfile is "TRC_VCAM_"#userid where #userid is the first 8
characters of the submitter name. This default logfile will be allocated on the resident
volumes.
If the file has not already been allocated by the user, it will be dynamically allocated by the
VCAM user trace.
If it is preallocated, its size must be lower than 4 megabytes and the following parameters
must be used:
Recsize=4080, Recform=f, Cisize=4096.
The logfile is managed as a circular file. When it becomes full, the oldest structures are
overwritten and lost.
9.3.3
Selection of VCAM SSAPs and Connections to be Traced
The SVTR submitter can activate the VCAM user trace with a selection of
Run_Occurrence_Number (up to 10 RONs or * for all RONs). These are the RONs of the
applications to debug (all the sessions attached to the VCAM SSAPs opened by these
RONs will be logged).
For a local connection, you should trace the two ends of the session connection in order
not to lose events such as notifications from one side to the other. For a remote
connection, all the events are logged as soon as the RON of the user application has
been selected.
Several SVTR commands can be entered by the same submitter to add further RONs to
log. There is a limit on the number of logged RONs (* stands for one RON).
47 A2 60UC Rev02
9-3
VCAM-ISO Reference Manual Part 1 - Session Services
9.3.4
Level of Trace
The SVTR submitter can select the amount of information and the level of detail by means
of the SVTR keyword ISO_TRACE_LEVEL.
This level is a numeric value between 1 and 15. The following table shows which
structures are logged for the various values of ISO_TRACE_LEVEL. Note that levels 2, 6,
13, and 15 have no meaning (the trace level immediately lower is assumed).
LEVEL Logged structures
9-4
0
No structure
1
Structures for primitives that deal with VCAM SSAPs.
3
All level 1 structures
+
Structures for session connection and release without the user data.
4
All level 3 structures
+
The first 30 bytes of user data of connection and release phase.
5
All level 4 structures
+
The user data of connection and release phase.
7
All level 5 structures
+
Structures for data transfer phase without user data.
Structures are logged after execution of the VCAM primitives.
8
All level 7 structures
+
The first 30 bytes of the user data of data transfer phase after VCAM primitive
execution.
9
All level 8 structures
+
The user data of data transfer phase after primitive execution.
10
All level 9 structures
+
Structures for data transfer phase without user data.
Structures are logged before execution of the VCAM primitives.
11
All level 10 structures
+
The first 30 bytes of user data of data transfer before VCAM primitive execution.
47 A2 60UC Rev02
Trace
LEVEL Logged structures
9.3.5
12
All level 11 structures
+
The user data of data transfer phase before primitive execution.
14
All level 12 structures
+
Structures for the interface between the session provider and the transport provider
(including TSDU).
VCAM User Trace GCL Commands
Any user can manage the execution of the trace through three GCL directives:
•
START_VCAM_TRACE (SVTR) to start the trace collector.
•
DISPLAY_VCAM_TRACE (DVTR) to display trace collector activity.
•
TERMINATE_VCAM_TRACE (TVTR) to stop the trace collector.
These free commands start batch jobs. The user must ensure that these jobs will start
immediately.
9.3.5.1
SVTR command
Format
SVTR
[ FILE
= file_44
]
[ DYNALC
= cat | uncat ]
RON
= * | (ron,[ron,...])
[ISO_TRACE_LEVEL (ILVL,ILEV,VITLV) = [0:15] ]
[DSA_TRACE_LEVEL (DLVL,DLEV,VDTLV) = [0:15] ]
[GXTI_TRACE_LEVEL (GLVL,GLEV,VGTLV) = [O:15]]
47 A2 60UC Rev02
9-5
VCAM-ISO Reference Manual Part 1 - Session Services
Parameter description
FILE
Optional parameter.
External logfile name. Filename syntax must be of the form:
char10$res | char10[.char8]:dvc:md
with:
char10:at most 10 characters
char8:at most 8 characters
dvc/md:device and media
$res:resident
Logfile can be dynamically allocated by the VCAM trace
collector, in which case the DYNALC parameter must be
used.
If file name is not specified, the default value is a resident file
of name TRC_VCAM_#userid where #userid is the first 8
characters of the submitter name of the SVTR directive. This
default logfile is automatically allocated.
Examples:
1.
"SVTR file=dir1.logfile3:be007:ms/b10 ron=* ilvl=15 dynalc=cat;"
The logfile will be allocated as "dir1.logfile3" and cataloged.
2.
"SVTR file=logfile4:be002:ms/m500 ron=x332 ilvl=4;"
The logfile will be allocated as "logfile4" and uncataloged.
DYNALC
Optional parameter.
* CAT if a cataloged logfile must be dynamically allocated.
* UNCAT if an uncataloged logfile must be dynamically
allocated.
RON
List of up to 10 RONs or *.
Each RON is an "X" character followed by 1 to 4 numeric
characters (e.g. X3456).
At least one RON or * must be specified.
9-6
47 A2 60UC Rev02
Trace
ISO_TRACE_LEVEL
Defines the level of information to be logged.
This level is in the range 0 to 15 (15 means all structures with
all possible details are logged).
DSA_TRACE_LEVEL
Defines the level of DSA information to be logged.
This level is in the range 0 to 15 (15 means all structures with
all possible details are logged).
GXTI_TRACE_LEVEL
Defines the level of GXTI information to be logged.
This level is in the range 0 to 15 (15 means that all the
structures with all possible details are logged).
9.3.5.2
DVTR command
This command has no parameter.
Function
Displays the trace collector activity:
•
Logfile name and file status.
•
Entities selected (RON) with their trace level.
•
Trace level information.
9.3.5.3
TVTR command
This command has no parameter.
Function
Stops the user trace collector previously started by SVTR.
47 A2 60UC Rev02
9-7
VCAM-ISO Reference Manual Part 1 - Session Services
9.4
VCAM USER TRACE SCANNER
The VCAM user trace scanner allows you to edit and analyze the VCAM user trace
previously collected. For examples of trace output, see the VCAM-ISO User's Guide.
9.4.1
Calling the User Trace Scanner
To call the VCAM user trace scanner, you enter the SCNVTR GCL interactive command.
Format
SCNVTR
[ TRC_FILE
= file_44
]
Parameter description
TRC_FILE
Optional parameter.
External logfile name.
Default: TRC_VCAM_#userid where #userid is the first 8
characters of submitter name of SVTR directive.
This logfile is a file which has been used during a previous
collect phase (see above, "VCAM User Trace Collector").
For logfile syntax, refer to the SVTR command description.
Example:
"SCNVTR trc_file=dir1.logfile3:be007:ms/b10;"
9-8
47 A2 60UC Rev02
Trace
9.4.2
Using the VCAM Trace Scanner
The user trace scanner is an interactive processor. It is based on a general purpose tool
designed for visualising data structures as a hierarchical tree. Each structure may be in
relation with a list of higher level structures.
In this case, the first level is a fictive structure named VCAM_TRACE. The second level is
made of a list of structures which represent the data exchanged between the user, the
session provider, and the transport provider. There are further levels only for the records
of the VCAM user trace which are TSDUs. In this way, the TSDUs can be divided into
SPDU, the SPDU into PGI and the PGI into PI.
The VCAM trace scanner allows you to walk through the hierachical structure described
above. It always displays the current list of sons with a synthetical description on each line
of the screen (its name and, for a trace record, its process and process group number).
To scan this hierarchical structure, you use GCL commands which allow you to:
•
Display one structure in detail (DUMP, DUMP_NEXT, and DUMP_PREVIOUS).
•
Go to the son or the father of a structure (FORWARD and BACK).
•
Show the next or the previous page of sons (NEXT and PREVIOUS), or go to a son
of known rank (LOCATE).
•
Show consecutively several parts of a VCAM user trace, without losing the context of
each part (WORKSPACE).
•
Search for a given string in all the trace records (SEARCH_NEXT and
SEARCH_PREVIOUS).
•
Display a list of the trace records that contain a given string (LIST_NEXT and
LIST_PREVIOUS).
•
Enable or disable the automatic
(MODIFY_LOCAL_PROFILE).
47 A2 60UC Rev02
display
of
the
current
list
of
sons
9-9
VCAM-ISO Reference Manual Part 1 - Session Services
9.4.3
The VCAM Trace Scanner Commands
BACK (B) [number]
To return several times from son to father, i.e. to decrease current level. Default value for
the NUMBER parameter is one.
Example
B 2;
DUMP (D) [item] [variable]
To dump the current structure.
The structure is displayed as a GPL structure when possible. The dump is made by
means of PCF (Program Checkout Facility, which is the GCOS7 debugging tool).
The ITEM parameter is the rank of the structure that you want to select (for instance, one
record of the VCAM user trace). Values ^ and $ allow you to select the first or the last
structure.
The VARIABLE parameter allows you to modify the editing format (example: "DUMP 3
'.A#X32';" means "Dump the substructure A of the third structure as a 32-character
hexadecimal string"). The syntax used is that of PCF.
Example
D 5 'MY_ZONE#X20';
DUMP_NEXT (DN) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the next item for the presence of a given string (or two
strings) and dump the resulting structure.
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
DN PISO_ERROR;
9-10
47 A2 60UC Rev02
Trace
DUMP_PREVIOUS (DP) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the previous item for the presence of a given string (or
two strings) and dump the resulting structure.
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
DP 'A:SEQERR';
FORWARD (F) [item]
To display the list of the son(s) of a structure.
The ITEM parameter is the rank of the structure that you want to select (for instance, one
record of the VCAM user trace). Values ^ and $ allow you to select the first or the last
structure.
Example
F 4;
LIST_NEXT (LN) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the last item for the presence of a given string (or two
strings) and list all the items found that contain the string(s).
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
LN 'VS:3' and_not_string='A:DONE';
47 A2 60UC Rev02
9-11
VCAM-ISO Reference Manual Part 1 - Session Services
LIST_PREVIOUS (LP) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the first item for the presence of a given string (or two
strings) and list all the items found that contain the string(s).
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
LP 'VS:3' and_string='PISO_ERROR';
LOCATE (L) [item]
To select a structure.
The ITEM parameter is the rank of the structure that you want to select (for instance, one
record of the VCAM user trace). Values ^ and $ allow you to select the first or the last
structure.
Example
L $;
NEXT (N) [number]
To display the next page of sons, if one screen is not large enough.
The NUMBER parameter allows you to skip several pages.
Example
N 2;
MODIFY_LOCAL_PROFILE (MLP) [MLP]
To enable or disable the automatic display of the current list of sons after the execution of
each command (MLP = 1 or 0, respectively).
Example
MLP 0;
9-12
47 A2 60UC Rev02
Trace
PREVIOUS (P) [number]
To display the previous page of sons, if one screen is not large enough.
The NUMBER parameter allows you to skip several pages.
Example
P 2;
SEARCH_NEXT (SN) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the last item for the presence of a given string (or two
strings). If the search is successful, the display is positioned on the first matching item
found. If not, the display remains unchanged.
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
SN 'US:3' and_not_string='A:DONE';
SEARCH_PREVIOUS (SP) [string] [and_string] [and_not_string]
[string2] [and_string2] [and_not_string2]
To search from the current item to the first item for the presence of a given string (or two
strings). If the search is successful, the display is positioned on the first matching item
found. If not, the display remains unchanged.
The STRING, STRING2, AND_STRING, and AND_STRING2 parameters define the
string(s) to be searched for.
The AND_NOT_STRING and AND_NOT_STRING2 can be used to refine the search
criteria further. These two parameters must not be present for the found item.
Example
SP 'TISO_TDCNIND'
47 A2 60UC Rev02
9-13
VCAM-ISO Reference Manual Part 1 - Session Services
WORKSPACE (W) [w]
To switch to another workspace.
The W parameter defines the workspace number, and is a numeric value in the range 0 to
3.
Example
W 3;
9-14
47 A2 60UC Rev02
Trace
9.4.4
The VCAM Trace Scanner Screen Description
Each screen is divided into three parts.
•
On the top of screen there is the name of the current son and of its fathers. The
number of sons is also shown.
•
The main part of the screen displays the list of sons of one father structure.
These sons are numbered from 1. This number is followed by an identifier which
defines the type of the son structure (record of the VCAM user trace associated to
one VCAM-ISO primitive, name of an SPDU, a PGI, or a PI). The last part of the line
may be filled with information about the son structure.
•
9.4.4.1
The "T:" GCL prompt appears at the bottom of the screen, and the current record
trace is indicated by the prompt "==>" on the left of the screen.
Description of the First Level Structure
The root of the tree is a fictive structure named VCAM_TRACE. You should type the
FORWARD command (or F) on this level.
9.4.4.2
Description of the Second Level Structures
These structures are associated to VCAM-ISO primitives. For each called GPL primitive
there is a structure built by the concatenation of the explicit GPL primitive parameters (i.e.
one field for each keyword of the GPL primitive). This structure may be followed by others
which correspond to indirect parameters (i.e. the information exchanged by means of a
pointer to a structure, such as user data, called reference, TSDU...).
There are three kinds of structures which are characterized by a prefix:
•
SISO_xxxx
These are the structures corresponding to the VCAM-ISO primitives. Their names
are built by the concatenation of "SISO_", the primitive name without "H_SI_", and
the value of the TYPE parameter if it exists.
Example:
SISO_CONIND for H_SI_CON TYPE=IND ...;.
Note:
47 A2 60UC Rev02
Some structures result in only one field. In this case their names are made by
concatenating SISO_ to the parameter name.
9-15
VCAM-ISO Reference Manual Part 1 - Session Services
Example
SISO_COMMONREF
•
TISO_xxxx
These are the structures corresponding to the interface between the session
provider and the transport provider. The naming conventions are the same as those
used for SISO_xxxx.
TISO_DATA is the name of the structure that contains the TSDU. It can be divided
into SPDU, PGI, and PI by means of the FORWARD command (see the next
paragraph).
•
PISO_xxxx
These are structures associated with events internal to the SS-provider which will
have consequences for the SS-user.
PISO_ABORT means that the SS-provider has decided to close the session.
PISO_ERROR means that the SS-provider has detected an error. This structure
looks like the structure declared by H_DC_SI_ERROR.
PISO_NOTIF means that he SS-provider has decided to notify the user or the
transport provider. This structure contains the message to be notified.
The name of the first structure associated with a VCAM-ISO primitive is followed by the
information described here:
Column 1
•
•
value A or B means AFTER or BEFORE execution of the VCAM primitive.
":return-code" gives the return code after the execution of the primitive.
Column 2
•
"J.P" gives the process group number and the process number of the process
executing the VCAM-ISO primitive.
Column 3
•
or
•
"US:" is followed by the user session connection identification.
"UA:" is followed by the user SSAP identification.
Column 4
•
or
•
9-16
"VS:" is followed by the VCAM session connection identification.
"VA:" is followed by the VCAM SSAP identification.
47 A2 60UC Rev02
Trace
9.4.4.3
Description of the Structures Which Have a Level Greater than 2
These levels exist only for TSDUs which are exchanged between the transport provider
and the session provider (the name of the corresponding structure is TISO_DATA).
By means of the FORWARD command, you can divide the TSDU into SPDU, the SPDU
into PGI, and the PGI into PI. The names of these PGI and PI have been deduced from
the descriptions of encoding rules of the ISO session protocol.
Note:
This manual only describes the structures logged for ISO applications. For the
DSA structures, refer to the Network Operations manual.
For the GXTI structures, refer to the GXTI User's Guide.
47 A2 60UC Rev02
9-17
VCAM-ISO Reference Manual Part 1 - Session Services
9-18
47 A2 60UC Rev02
10. VCAM-ISO Installation
10.1
10.1.1
LIMITS OF VCAM-ISO
Limits of VCAM-ISO
The limits are the following:
10.1.2
•
A maximum of 5000 DSA and ISO sessions in total. This maximum can be reduced
by means of the VCAMSCN (MAXDSA and MAXISO) command included in the
source system configuration member.
•
1000 SSAPs.
•
A system memory space used to store SIDUs which are waiting for the transport
layer or the application. Its size is a function of the maximum number of allowed
session connections. In case of saturation of this memory space, the SS-user can
reduce the maximum size it can receive (parameter RMAXSIZE of H_SI_CON).
Behavior On Limits Overflow
•
On overflow of the maximum number of SSAPs or session connections, any new
object declaration is refused. For H_SI_OPN_SSAP or H_SI_CON TYPE=REQ, an
error code 150 is returned to the SS-user. For an incoming connection, the transport
connection is refused.
•
On overflow of the space reserved for waiting SIDUs (for application or transport),
VCAM-ISO disconnects the session connection least recently used with the biggest
stored SIDU. A provider abort indication with "MEMOVER" in the cause field is
returned to the SS-user.
47 A2 60UC Rev02
10-1
VCAM-ISO Reference Manual Part 1 - Session Services
10.2
VCAM-ISO CONFIGURATION
The information about VCAM-ISO which is configured at GCOS7 system level is:
•
•
•
•
The availability of VCAM-ISO.
The maximum number of simultaneous connections.
The default transport selector.
The NSAPs for local connections.
Maximum number of simultaneous connections
The maximum number of simultaneous ISO and DSA connections is 5000. Note that at
least one DSA connection must be present. The maximum number can be defined via the
VCAMSCN command (included in the source system configuration member), using the
parameters MAXDSA and MAXISO. For more information on this command, refer to the
System Installation Configuration and Updating Guide.
ISO Addressing
The default local ISO addressing values are defined at network generation time using the
high level SYS (SYSTEM) or low level LSYS (LOCAL SYSTEM) directive with the TSEL
and NSAP parameters. For more information, refer to the Networks Overview and
Generation manual.
10-2
47 A2 60UC Rev02
A. Examples of Calling and Called Programs
A.1
INTRODUCTION
This appendix provides two examples, each of two partner applications coded using the
VCAM-ISO programming interface. The first pair are coded using the default protocol
version, and the second pair are coded using the session protocol verion 2. The calling
SS-user programs are named EX_A and EX_C (version 2), and the called SS-users are
EX_B and EX_D (version 2).
Extracts from these programs are used as examples in this manual. The same appendix
appears also in the reference manual.
47 A2 60UC Rev02
A-1
VCAM-ISO Reference Manual Part 1 - Session Services
A.2
CALLING USER A
EX_A : PROC ;
/* PROCEDURE OF CALLING USER
*/
/*======================== DECLARATION OF PARAMETERS ========================*/
DCL SSAP_ID LOGBIN(32); /* VARIABLE FOR RECEIVING SSAP ID AND
*/
DCL SCN_ID LOGBIN(32);
/* SESSION ID GIVEN BY VCAM
*/
DCL MESS CHAR(2048); /* BUFFER FOR EXCHANGING PARAMETERS BETWEEN VCAM */
/* AND USER APPLICATION
*/
DCL A_REASON LOGBIN(16); /* VARIABLE FOR RECEIVING THE REASON OF
*/
/* PROVIDER ABORT
*/
DCL A_RESULT LOGBIN(8);
/* VARIABLE FOR INDICATING THE CONNECTION
*/
/* ESTABLISHMENT RESULT
*/
DCL
M16 CHAR(16); /* BUFFER FOR RECEIVING SEMAPHORE MESSAGES
*/
DCL
DCL
/*----- BUFFERS FOR MESSAGES TO SEND ----SENDM1 CHAR(20) INIT ("GOOD MORNING") ; /* THE FIRST MESSAGE
SENDM2 CHAR(20) INIT ("WHAT ABOUT THE WEATHER ?") ; /* THE SECOND
*/
*/
*/
$H_DC_SI_SEMMSG ATTRIB='BASED(ADDR(M16))';
/* VCAM SEMAPHORE STRUCTURE DECLARATION */
$H_DC_SI_ERROR; /* VCAM ERROR STRUCTURE DECLARATION
$H_DC_SI_ERROR PREFIX='PAB_';
/* PROVIDER ABORT ERROR STRUCTURE DECLARATION
$H_DC_SI_REPLACE PREFIX=C_; /* VCAM PARAMETER VALUES REPLACE
$H_DCSEM PREFIX=SEMSGA CNT1=0 MCNT1=10 TYPE1=MSG;
/* DECLARATION OF A SEMAPHORE TO WAIT FOR INCOMING EVENTS
*/
*/
*/
*/
/*======================= OPENING AN ISO SESSION ============================*/
/*----------------------- OPENING THE LOCAL S.S.A.P.-------------------------*/
/* THE CALLING USER OPENS A LOCAL SSAP BY CALLING THE VCAM-ISO PRIMITIVE
*/
/*---------------------------------------------------------------------------*/
$H_SI_OPN_SSAP
SSAPID="EX_A"
SSAPID_LG=4
VCAM_SSAP_ID=SSAP_ID
USER_SSAP_ID=1
SEM=ADDR(SEMSGA1)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/*
TO OPEN THE LOCAL SSAP, THE USER NAMES THE SSAP AS (EX_A); IT GIVES
*/
/* ALSO THE APPLICATION RELATED SSAP ID (1).
*/
/*
A BUFFER MUST ALSO BE RESERVED BY THE USER TO EXCHANGE PARAMETERS WITH */
/* VCAM (ADDR(MESS)). AN ERROR STRUCTURE IS READY TO BE FILLED IN CASE OF
*/
/* DIFFERENT KINDS OF ERROR.
*/
/*
AT THE END OF PRIMITIVE EXECUTION, THE USER TESTS THE RETURN CODE; IF */
/* IT IS 'DONE' THE CALLING USER SSAP IS SUCCESSFULLY OPENED; OTHERWISE, THE */
/* OPEN SSAP OF THE CALLING USER IS DISCARDED AND THE TASK IS ABORTED.
*/
/*---------------------------------------------------------------------------*/
A-2
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*------------------------- CONNECTION REQUEST ------------------------------*/
/* THE CONNECTION REQUEST IS SENT ...
*/
/*---------------------------------------------------------------------------*/
$H_SI_CON
TYPE=REQ
REQ_HALFDUPLEX=YES
REQ_NEGORELEASE=YES
DATATK=REQUESTOR
RELEASETK=REQUESTOR
SEM=ADDR(SEMSGA1)
VCAM_SSAP_ID=SSAP_ID
CLD_SSAPID="EX_B"
CLD_SSAPID_LG=4
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/*
AFTER THE LOCAL SSAP IS OPENED, THE CALLING USER SENDS THE CONNECTION */
/* REQUEST IN WHICH IT SPECIFIES FIRSTLY THE FUS AND RELATIVE TOKENS WITH
*/
/* THE VALUES REQUESTED.
*/
/*
IT THEN SPECIFIES THE CORRESPONDING SSAP ID (EX_B) AND THE NAME OF
*/
/* THE SESSION (1) THAT IT WANTS TO ESTABLISH.
*/
/*
THE ADDRESS OF THE SEMAPHORE AT WHICH THE CALLING USER WAITS TO
*/
/* RECEIVE EVENTS MUST ALSO BE GIVEN (ADDR(SEMSGA1)).
*/
/*
IF THE RETURN CODE IS 'DONE', CONNECT REQUEST IS SUCCESSFULLY SENT
*/
/* BY THE CALLING USER, OTHERWISE, THE CONNECTION REQUEST FAILS AND
*/
/* THE TOTAL TASK IS ABORTED.
*/
/*---------------------------------------------------------------------------*/
/*------------------------ CONNECTION CONFIRMATION --------------------------*/
/* AFTER SENDING THE CONNECTION REQUEST, THE CALLING USER WAITS FOR THE
*/
/* CONNECTION CONFIRMATION ON ITS SEMAPHORE.
*/
/*---------------------------------------------------------------------------*/
WAIT_CONCNF :
CALL SEPM (ADDR(SEMSGA1),M16) ;
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
/*--------------------------------------------------------------------------*/
/* IF INCOMING EVENT IS PROVIDER ABORT INDICATION, THE USER SHOULD EXECUTE */
f /* THE 'PROVIDER ABORT INDICATION MACRO' TO RECEIVE DETAILED INFORMATION
*/
/* ABOUT THE FAILURE OF BEARER (SEE PROCEDURE AT THE END OF THE PROGRAM).
*/
/*--------------------------------------------------------------------------*/
IF EVCODE^=C_S_CONCNF
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/*
IF THE INCOMING EVENT IS NEITHER THE ONE EXPECTED NOR PROVIDER ABORT
*/
/* INDICATION, THE TASK SHOULD BE ABORTED.
*/
/*---------------------------------------------------------------------------*/
ELSE DO;
$H_SI_CON TYPE=CNF
SEMMSG=M16
RESULT=A_RESULT
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
47 A2 60UC Rev02
A-3
VCAM-ISO Reference Manual Part 1 - Session Services
/*---------------------------------------------------------------------------*/
/*
IF INCOMING EVENT IS CONNECTION CONFIRMATION, THE USER SHOULD EXECUTE */
/* THE CORRESPONDING VCAM-ISO PRIMITIVE TO RECEIVE IT.
*/
/* THE SEMAPHORE MESSAGE IS TAKEN BY M16. THE LOCAL SSAP ID AND THE
*/
/* ESTABLISHED SESSION CONNECTION ID ARE RETURNED BY VCAM. THE USER NAMES
*/
/* ALSO THE ESTABLISHED SESSION (1).
*/
/*---------------------------------------------------------------------------*/
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_CONCNF;
ELSE $H_ABTSK;
END;
/*--------------------------------------------------------------------------*/
/*
IF THE RC IS 'OBSOLETE', IT MEANS THAT THE MACRO H_SI_CON CANNOT BE
*/
/* EXECUTED. THE USER SHOULD CALL IT AGAIN. OR, THERE MAY BE A USER ERROR */
/* (AN INCORRECT PARAMETER FOR EXAMPLE). THE TASK SHOULD BE ABORTED.
*/
/* H_ABTSK IS A SYSTEM BUILT-IN MACRO FOR ABORTING A TASK, BUT
*/
/* OTHER INSTRUCTIONS CAN ALSO BE USED TO ABORT THE CURRENT TASK.
*/
/*
IF THE RETURN CODE IS 'DONE', THE SESSION CONNECTION IS SUCCESSFULLY */
/* ESTABLISHED.
*/
/*--------------------------------------------------------------------------*/
/*======================== BEGINNING OF DATA TRANSFER =======================*/
/*------------------------ FIRST NORMAL DATA REQUEST ------------------------*/
/*
AFTER THE CONNECTION HAS BEEN SUCCESSFULLY ESTABLISHED, THE USER CAN
*/
/* SEND THE FIRST MESSAGE.
*/
/*---------------------------------------------------------------------------*/
$H_SI_DT
TYPE=REQ
DATALG=20
DATAPTR=ADDR(SENDM1)
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/* BY DATAPTR, THE USER GIVES THE ADDRESS OF THE MESSAGE TO SEND.
*/
/*---------------------------------------------------------------------------*/
/*----------------------- SECOND NORMAL DATA REQUEST ------------------------*/
WAIT_NCREDIT1 :
/*---------------------------------------------------------------------------*/
/* WHEN THE CONNECTION IS ESTABLISHED, THE CALLING USER POSSESSES A CREDIT. */
/* HOWEVER, IT MUST WAIT FOR A CREDIT BEFORE SENDING THE SECOND MESSAGE
*/
/*---------------------------------------------------------------------------*/
CALL SEPM (ADDR(SEMSGA1), M16);
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_NCREDIT THEN $H_ABTSK;
ELSE DO;
A-4
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*--------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS NOT A CREDIT, THE SECOND DATA TRANSFER REQUEST IS */
/* DISCARDED. IF IT IS CREDIT, THE SECOND MESSAGE CAN BE SENT.
*/
/*--------------------------------------------------------------------------*/
$H_SI_DT
TYPE=REQ
DATALG=20
DATAPTR=ADDR(SENDM2)
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
END;
/*--------------------------------------------------------------------------*/
/* HERE, THE CALLING USER CANNOT GET 'OBSOLETE' AS A RETURN CODE, SINCE THE */
/* CREDIT IS GIVEN BY THE LOCAL VCAM.
*/
/*--------------------------------------------------------------------------*/
WAIT_NCREDIT2 :
CALL SEPM (ADDR(SEMSGA1), M16);
/* WAITING FOR THE CREDIT */
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_NCREDIT THEN $H_ABTSK;
/*--------------------------------------------------------------------------*/
/* WHEN THE USER SENDS A DATA SPDU, IT WILL AUTOMATICALLY RECEIVE A CREDIT. */
/* IN ORDER TO RECEIVE THE OTHER FOLLOWING EVENTS, IT STILL MAY RECEIVE
*/
/* THE CREDIT, EVEN THOUGH THERE IS NO MORE DATA TO BE SENT.
*/
/*--------------------------------------------------------------------------*/
/*======= END OF DATA TRANSFER AND BEGINNING OF CONNECTION RELEASE ==========*/
/*================== BEGINNING OF CONNECTION RELEASE ========================*/
/*------------------------ RELEASE REQUEST ----------------------------------*/
/* WHEN THE CALLING USER HAS SUCCESSFULLY SENT ALL OF ITS MESSAGES, IT
*/
/* REQUESTS ORDERLY RELEASE OF THE CONNECTION.
*/
/*---------------------------------------------------------------------------*/
$H_SI_REL
TYPE=REQ
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
47 A2 60UC Rev02
A-5
VCAM-ISO Reference Manual Part 1 - Session Services
/*------------------------ RELEASE CONFIRMATION -----------------------------*/
/*
AFTER SENDING THE RELEASE REQUEST, THE CALLING USER HAS TO WAIT FOR THE */
/* RELEASE CONFIRMATION BEFORE CLOSING THE LOCAL SSAP.
*/
/*---------------------------------------------------------------------------*/
WAIT_RELCNF :
CALL SEPM (ADDR(SEMSGA1),M16) ;
/* WAITING FOR RELEASE CONFIRMATION EVENT
*/
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_RELCNF
THEN $H_ABTSK;
ELSE DO;
/* IF THE COMING EVENT IS RELEASE CONFIRMATION
$H_SI_REL TYPE=CNF
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
RESULT=A_RESULT
USERWAPTR=ADDR(MESS)
SEMMSG=M16
ERROR=ERROR_DESC ;
*/
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_RELCNF;
ELSE $H_ABTSK;
END;
/*----------------------- CLOSING OF SSAP -----------------------------------*/
/* WHEN THE RELEASE CONFIRMATION IS SUCCESSFULLY RECEIVED, THE CALLING USER */
/* CAN CLOSE THE LOCAL SSAP.
*/
/*---------------------------------------------------------------------------*/
$H_SI_CLS_SSAP
VCAM_SSAP_ID=SSAP_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
ERROR_PROVIDER : PROC ;
/*---------------------------------------------------------------------------*/
/* THIS PROCEDURE HANDLES A PROVIDER ABORT EVENT BY USING THE CORRESPONDING */
/* VCAM MACRO. AFTER CALLING THE MACRO, THE USER CAN GET INFORMATION
*/
/* ABOUT WHAT HAPPENED IN THE BEARER.
*/
/*---------------------------------------------------------------------------*/
PAB_IND_MACRO: $H_SI_PAB TYPE=IND
SEMMSG=M16
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
REASON=A_REASON
P_ERROR=PAB_ERROR_DESC
ERROR=ERROR_DESC;
IF $H_TESTRC OBSOLETE; THEN DO;
CALL SEPM (ADDR(SEMSGA1), M16);
IF EVCODE=C_S_PABIND THEN GO TO PAB_IND_MACRO;
END;
ELSE $H_ABTSK;
/*--------------------------------------------------------------------------*/
/* IF THE RC IS 'OBSOLETE', THE USER SHOULD RETRY ON RECEIVING THE NEXT
*/
/* EVENT. OTHERWISE, THE TASK IS ABORTED.
*/
/*--------------------------------------------------------------------------*/
END ERROR_PROVIDER ;
END EX_A;
A-6
47 A2 60UC Rev02
Examples of Calling and Called Programs
A.3
CALLED USER B
EX_B : PROC ; /* PROCEDURE OF CALLED USER
*/
/*===================== DECLARATION OF PARAMETERS ===========================*/
DCL SSAP_ID LOGBIN(32); /* VARIABLE FOR RECEIVING SSAP ID GIVEN
*/
/* BY VCAM
*/
DCL SCN_ID LOGBIN(32); /* VARIABLE FOR RECEIVING SESSION ID GIVEN BY
*/
/* VCAM
*/
DCL MY_SSAPID CHAR(16); /* VARIABLE FOR CHECKING THE CALLED SSAP ID
*/
DCL MY_SSAPID_LG LOGBIN(16); /* VARIABLE FOR CHECKING THE CALLED SSAP */
/* ID LENGTH
*/
DCL DATARECVD CHAR(20); /* VARIABLE FOR RECEIVING DATA DELIVERED BY
*/
/* VCAM
*/
DCL PTRDATA PTR; /* POINTER TO RECEIVED DATA
*/
DCL LENGTH LOGBIN(32); /* LENGTH OF RECEIVED DATA
*/
DCL MESSNB FIXED BIN(15); /* NUMBER OF MESSAGE RECEIVED
*/
DCL A_REASON LOGBIN(16); /* VARIABLE FOR RECEIVING THE REASON OF A
*/
/* PROVIDER ABORT
*/
DCL A_RESULT LOGBIN(8); /* VARIABLE FOR THE RESULT OF CONNECTION
*/
/* ESTABLISHMENT
*/
DCL
DCL
MESS CHAR(2048); /* BUFFER FOR EXCHANGING PARAMETERS BETWEEN USERS */
/* AND VCAM
*/
M16 CHAR(16);
/* BUFFER FOR RECEIVING SEMAPHORE MESSAGES
*/
$H_DC_SI_SEMMSG ATTRIB='BASED(ADDR(M16))';
/* VCAM SEMAPHORE STRUCTURE DECLARATION
$H_DC_SI_ERROR; /* VCAM ERROR MESSAGE STRUCTURE DECLARATION
$H_DC_SI_ERROR PREFIX='PAB_';
/* PROVIDER ABORT ERROR STRUCTURE DECLARATION
$H_DC_SI_REPLACE PREFIX=C_; /* VCAM PARAMETERS VALUES REPLACE
$H_DCSEM PREFIX=SEMSGB CNT1=0 MCNT1=10 TYPE1=MSG;
/* DECLARATION OF A SEMAPHORE TO WAIT FOR INCOMING EVENTS
*/
*/
*/
*/
*/
/*==================== OPENING AN ISO SESSION ===============================*/
/*----------------------------- OPENNING LOCAL S.S.A.P. ---------------------*/
/* THE CALLED USER OPENS THE LOCAL SSAP BY CALLING THE DEDICATED MACRO.
*/
/*---------------------------------------------------------------------------*/
$H_SI_OPN_SSAP
SSAPID="EX_B"
SSAPID_LG=4
VCAM_SSAP_ID=SSAP_ID
USER_SSAP_ID=1
SEM=ADDR(SEMSGB1)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
47 A2 60UC Rev02
A-7
VCAM-ISO Reference Manual Part 1 - Session Services
/*------------------------- CONNECTION INDICATION ---------------------------*/
/*---------------------------------------------------------------------------*/
/* AFTER THE LOCAL SSAP HAS BEEN OPENED, THE CALLED USER WAITS TO RECEIVE
*/
/* THE CONNECTION INDICATION.
*/
/*---------------------------------------------------------------------------*/
WAIT_CONIND :
CALL SEPM (ADDR(SEMSGB1),M16) ;
/* WAITING FOR CONNECTION INDICATION EVENT
*/
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_CONIND THEN $H_ABTSK;
ELSE DO;
/*---------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS CONNECTION INDICATION, THE CORRESPONDING VCAM
*/
/* PRIMITIVE IS CALLED.
*/
/*---------------------------------------------------------------------------*/
$H_SI_CON TYPE=IND
SEMMSG=M16
SEM=ADDR(SEMSGB1)
USER_SCN_ID=1
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
CLD_SSAPID=MY_SSAPID
CLD_SSAPID_LG=MY_SSAPID_LG
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_CONIND;
ELSE $H_ABTSK;
END;
/*-------------------------- CONNECTION RESPONSE ----------------------------*/
/* IF THE RECEPTION OF CONNECTION INDICATION IS SUCCESSFUL THE CALLED USER
*/
/* GIVES ITS RESPONSE WITH THE FUs AND TOKEN OWNER REQUESTED.
*/
/*---------------------------------------------------------------------------*/
$H_SI_CON TYPE=RSP
REQ_HALFDUPLEX=YES
REQ_NEGORELEASE=YES
DATATK=REQUESTOR
RELEASETK=REQUESTOR
RESULT=ACCEPT
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC
SEM=ADDR(SEMSGB1) ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
A-8
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*------------------------ DATA RECEIVING -----------------------------------*/
MESSNB=0; /* COUNTER OF MESSAGES RECEIVED
*/
/*---------------------------------------------------------------------------*/
/* WHEN THE CONNECTION IS ESTABLISHED, THE CALLED USER WAITS FOR THE
*/
/* DATA INDICATION.
*/
/*---------------------------------------------------------------------------*/
WAIT_DTIND :
CALL SEPM (ADDR(SEMSGB1), M16);
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_DTIND
THEN $H_ABTSK;
ELSE DO;
/*---------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS A NORMAL DATA INDICATION, THE CALLED USER SHOULD
*/
/* RECEIVE IT BY GIVING THE ADDRESS OF A RECEPTION BUFFER (PTRDATA).
*/
/*---------------------------------------------------------------------------*/
PTRDATA=ADDR(DATARECVD) ; /* RESERVING SPACE FOR ARRIVING DATA
$H_SI_DT TYPE=IND
SEMMSG=M16
DATALG=LENGTH
DATAPTR=PTRDATA
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
*/
MESSNB=MESSNB+1;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_DTIND;
ELSE $H_ABTSK;
END;
IF MESSNB < 2 THEN GO TO WAIT_DTIND;
/*==================== CONNECTION RELEASE ===================================*/
/*-------------------------- RELEASE INDICATION -----------------------------*/
WAIT_RELIND :
CALL SEPM (ADDR(SEMSGB1), M16);
/* WAITING FOR RELEASE INDICATION
*/
IF EVCODE=C_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=C_S_RELIND
THEN $H_ABTSK;
ELSE DO ;
$H_SI_REL TYPE=IND
SEMMSG=M16
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_RELIND;
ELSE $H_ABTSK;
END;
47 A2 60UC Rev02
A-9
VCAM-ISO Reference Manual Part 1 - Session Services
/*------------------------ RELEASE RESPONSE ---------------------------------*/
$H_SI_REL TYPE=RSP
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
RESULT=ACCEPT
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*------------------------ CLOSING SSAP -------------------------------------*/
$H_SI_CLS_SSAP VCAM_SSAP_ID=SSAP_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
ERROR_PROVIDER : PROC ;
PAB_IND_MACRO:
$H_SI_PAB TYPE=IND
SEMMSG=M16
REASON=A_REASON
P_ERROR=PAB_ERROR_DESC
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC OBSOLETE; THEN DO;
CALL SEPM (ADDR(SEMSGB1), M16);
IF EVCODE=C_S_PABIND THEN GO TO PAB_IND_MACRO;
END;
ELSE $H_ABTSK;
END ERROR_PROVIDER;
END EX_B ;
A-10
47 A2 60UC Rev02
Examples of Calling and Called Programs
A.4
CALLING USER C (SESSION V2)
/*===========================================================================*/
/*
THIS PROGRAM GIVES AN EXAMPLE OF WRITING APPLICATIONS BY USING VCAM
*/
/*
PROGRAMMING INTERFACE, THE CALLING USER IS NAMED C AND THE CALLED IS D. */
/*
C AND D BEGIN A COMMUNICATION BY OPENING THEIR LOCAL SSAP AND THEN
*/
/*
ESTABLISHING A SESSION LEVEL CONNECTION WITH PROTOCOL SESSION 2 .
*/
/*
IT WILL BE BETTER TO EXECUTE FIRSTLY THE CALLED PROCESS FOR ENSURING */
/+*
THAT THE SSAP OF CALLED SIDE HAS BEEN OPENED BEFORE THE CONNECTION
*/
/*
REQUEST ARRIVES FROM THE CALLING SIDE.
*/
/*===========================================================================*/
EX_C : PROC ;
/* PROCEDURE OF CALLING USER
*/
/*======================== DECLARATION OF PARAMETERS ========================*/
DCL SSAP_ID
LOGBIN(32); /* VARIABLE FOR RECEIVING SSAP ID AND */
DCL SCN_ID
LOGBIN(32); /* SESSION ID GIVEN BY VCAM
*/
DCL MESS
CHAR(2048); /* BUFFER FOR EXCHANGING PARAMETERS
*/
/* BETWEEN VCAM AND USER'S APPLICATION*/
DCL A_REASON
LOGBIN(16); /* VARIABLE FOR RECEIVING THE REASON OF*/
/* PROVIDER ABORT
*/
DCL A_RESULT
LOGBIN(8); /* VARIABLE FOR INDICATING THE
*/
/* CONNECTION ESTABLISHMENT RESULT
*/
DCL THE_SEL_VERSION LOGBIN(16); /* VARIABLE FOR INDICATING THE
*/
/* CONNECTION ESTABLISHMENT RESULT
*/
DCL M16 CHAR(16);
/* BUFFER FOR RECEIVING SEMAPHORE
*/
/* MESSAGES
*/
DCL
DCL
/*----- BUFFERS FOR MESSAGES TO SEND ----*/
SENDM1 CHAR(20) INIT ("GOOD MORNING") ;
/* THE FIRST MESSAGE */
SENDM2 CHAR(20) INIT ("WHAT ABOUT THE WEATHER ?") ;/* THE SECOND
*/
$H_DC_SI_SEMMSG ATTRIB='BASED(ADDR(M16))';
/* VCAM SEMAPHORE STRUCTURE DECLARATION */
$H_DC_SI_ERROR;
/* VCAM ERROR STRUCTURE DECLARATION
$H_DC_SI_ERROR PREFIX='PAB_';
/* PROVIDER ABORT ERROR STRUCTURE DECLARATION
*/
*/
$H_DC_SI_REPLACE PREFIX=ISO_; /* VCAM PARAMETER VALUES REPLACE
$H_DCSEM PREFIX=SEMSGA CNT1=0 MCNT1=10 TYPE1=MSG;
/* DECLARATION OF A SEMAPHORE FOR WAITING ARRIVING EVENTS
*/
*/
/*======================= OPENING AN ISO SESSION ============================*/
/*----------------------- OPENING THE LOCAL S.S.A.P.-------------------------*/
/* THE CALLING USER OPENS A LOCAL SSAP BY CALLING THE VCAM-ISO PRIMITIVE
*/
/*---------------------------------------------------------------------------*/
$H_SI_OPN_SSAP
SSAPID="EX_C"
SSAPID_LG=4
VCAM_SSAP_ID=SSAP_ID
USER_SSAP_ID=1
SEM=ADDR(SEMSGA1)
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
47 A2 60UC Rev02
A-11
VCAM-ISO Reference Manual Part 1 - Session Services
/*---------------------------------------------------------------------------*/
/*
TO OPEN THE LOCAL SSAP, THE USER NAMES THE SSAP AS (EX_C), IT GIVES
*/
/* ALSO THE APPLICATION RELATED SSAP ID (1).
*/
/*
A BUFFER MUST BE ALSO RESERVED BY THE USER TO EXCHANGE PARAMETERS WITH */
/* VCAM (ADDR(MESS)). AN ERROR STRUCTURE IS READY TO BE FILLED IN THE CASE OF*/
/* DIFFERENT KINDS OF ERRORS.
*/
/*
AT THE END OF PRIMITIVE EXECUTION, THE USER TESTS THE RETURN CODE; IF */
/* IT IS 'DONE', THE CALLING USER SSAP IS SUCCESSFULLY OPENED, OTHERWISE, THE*/
/* OPENING SSAP OF CALLING USER IS DISCARDED AND THE TASK IS ABORTED.
*/
/*---------------------------------------------------------------------------*/
/*------------------------- CONNECTION REQUEST ------------------------------*/
/* THE CONNECTION REQUEST IS BEING SENT WITH THE PROPOSED PROTOCOL VERSION 2 */
/*---------------------------------------------------------------------------*/
$H_SI_CON
TYPE=REQ
REQ_VERSION=2
REQ_HALFDUPLEX=YES
REQ_NEGORELEASE=YES
DATATK=REQUESTOR
RELEASETK=REQUESTOR
SEM=ADDR(SEMSGA1)
VCAM_SSAP_ID=SSAP_ID
CLD_SSAPID="EX_D"
CLD_SSAPID_LG=4
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/*
AFTER THE LOCAL SSAP IS OPENED, THE CALLING USER SENDS THE CONNECTION */
/* REQUEST IN WHICH IT SPECIFIES FIRSTLY THE FUs AND RELATIVE TOKENS WITH
*/
/* THE VALUES REQUESTED.
*/
/*
IT THEN SPECIFIES THE CORRESPONDING SSAP ID (EX_D) AND THE NAME OF THE */
/* SESSION (1) THAT IT WANTES TO ESTABLISH.
*/
/*
THE ADDRESS OF THE SEMAPHORE AT WHICH THE CALLING USER WAITS TO RECEIVE*/
/* EVENTS MUST BE ALSO GIVEN (ADDR(SELSGA1)).
*/
/*
IF THE RETURN CODE IS 'DONE', CONNECT REQUEST IS SUCCESSFULLY SENT BY */
/* CALLING USER, OTHERWISE, THE CONNECTION REQUEST FAILS AND THE TOTAL TASK */
/* IS ABORTED.
*/
/*---------------------------------------------------------------------------*/
/*------------------------ CONNECTION CONFIRMATION --------------------------*/
/* AFTER SENDING THE CONNECTION REQUEST, THE CALLING USER WAITS FOR THE
*/
/* CONNECTION CONFIRMATION AT ITS SEMAPHORE.
*/
/*---------------------------------------------------------------------------*/
WAIT_CONCNF :
CALL SEPM (ADDR(SEMSGA1),M16) ;
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
A-12
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*--------------------------------------------------------------------------*/
/* IF INCOMING EVENT IS PROVIDER ABORT INDICATION, THE USER SHOULD EXECUTE */
/* THE 'PROVIDER ABORT INDICATION MACRO' TO RECEIVE DETAILED INFORMATION
*/
/* ABOUT THE FAILURE OF BEARER (SEE PROCEDURE AT THE END OF PROGRAM).
*/
/*--------------------------------------------------------------------------*/
IF EVCODE^=ISO_S_CONCNF
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/*
IF THE INCOMING EVENT IS NEITHER THE WAITED ONE NOR PROVIDER ABORT
*/
/* INDICATION, THE TASK SHOULD BE ABORTED.
*/
/*---------------------------------------------------------------------------*/
ELSE DO;
$H_SI_CON TYPE=CNF
SEMMSG=M16
RESULT=A_RESULT
SEL_VERSION=THE_SEL_VERSION
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
/*---------------------------------------------------------------------------*/
/*
IF THE COMING EVENT IS CONNECTION INDICATION, THE USER SHOULD EXECUTE */
/* THE CORRESPONDING VCAM MACRO TO RECEIVE IT.
*/
/* THE SEMAPHORE MESSAGE IS TAKEN BY M16. THE LOCAL SSAP ID AND THE
*/
/* ESTABLISHED SESSION CONNECTION ID ARE RETURNED BY VCAM. THE USER NAMES
*/
/* EQUALY THE ETABLISHED SESSION (1).
*/
/*---------------------------------------------------------------------------*/
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_CONCNF;
ELSE $H_ABTSK;
IF THE_SEL_VERSION^=2
THEN $H_ABTSK;
END;
/*--------------------------------------------------------------------------*/
/*
IF THE RC IS 'OBSOLETE', IT MEANS THAT THE MACRO H_SI_CON CONNOT BE
*/
/* EXECUTED, THE USER SHOULD CALL IT AGAIN. OR THERE MAY BE A USER ERROR
*/
/* (AN INCORRECT PARAMETER FOR EXAMPLE) THE TASK SHOULD BE ABORTED.
*/
/* H_ABTSK IS A SYSTEM BUILT-IN MACRO FOR ABORTING A TASK, BUT OTHERS
*/
/* INSTRUCTIONS CAN ALSO BE USED TO ABORT THE ACTUAL TASK.
*/
/*
IF THE RETURN CODE IS 'DONE', THE SESSION CONNECTION IS SUCCESSFULLY */
/* ESTABLISHED.
*/
/* IF THE SELECTED PROTOCOL VERSION IS NOT 2, THE TASK SHOULD BE ABORTED,
*/
/* SUPPOSE VERSION 2 IS MANDATORY
*/
/*--------------------------------------------------------------------------*/
/*======================== BEGINNING OF DATA TRANSFER =======================*/
/*------------------------ FIRST NORMAL DATA REQUEST ------------------------*/
/*
AFTER THE CONNECTION HAS BEEN WELL ESTABLISHED, THE USER CAN BEGIN SEND*/
/* THE FIRST MESSAGE.
*/
/*---------------------------------------------------------------------------*/
$H_SI_DT
47 A2 60UC Rev02
TYPE=REQ
DATALG=20
DATAPTR=ADDR(SENDM1)
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
A-13
VCAM-ISO Reference Manual Part 1 - Session Services
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*---------------------------------------------------------------------------*/
/* BY DATAPTR, THE USER GIVES THE ADDRESS OF THE MESSAGE TO SEND
*/
/*---------------------------------------------------------------------------*/
/*----------------------- SECOND NORMAL DATA REQUEST ------------------------*/
WAIT_NCREDIT1 :
/*---------------------------------------------------------------------------*/
/* WHEN THE CONNECTION IS ESTABLISHED, THE CALLING USER POSSESSES A CREDIT. */
/* HOWEVER, IT MUST WAIT FOR A CREDIT BEFORE SENDING HIS SECOND MESSAGE
*/
/*---------------------------------------------------------------------------*/
CALL SEPM (ADDR(SEMSGA1), M16);
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_NCREDIT THEN $H_ABTSK;
ELSE DO;
/*--------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS NOT A CREDIT, THE SECOND DATA TRANSFER REQUEST IS */
/* DISCARDED. ON THE CONTRARY, THE SECOND MESSAGE CAN BE SENT.
*/
/*--------------------------------------------------------------------------*/
$H_SI_DT
TYPE=REQ
DATALG=20
DATAPTR=ADDR(SENDM2)
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
END;
/*--------------------------------------------------------------------------*/
/* HERE, THE CALLING USER CAN NOT HAVE 'OBSOLETE' AS RETURN CODE, SINCE THE */
/* CREDIT IS GIVEN BY LOCAL VCAM.
*/
/*--------------------------------------------------------------------------*/
WAIT_NCREDIT2 :
CALL SEPM (ADDR(SEMSGA1), M16);
/* WAITING FOR THE CREDIT */
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_NCREDIT THEN $H_ABTSK;
/*--------------------------------------------------------------------------*/
/* WHEN THE USER SENDS A DATA SPDU, IT WILL AUTOMATICALLY RECEIVE A CREDIT. */
/* IN ORDER TO RECEIVE THE OTHERS FOLLOWING EVENTS, IT STILL HAS TO RECEIVE */
/* THE CREDIT EVEN THOUGH THERE IS NO MORE DATA TO BE SENT.
*/
/*--------------------------------------------------------------------------*/
/*======= END OF DATA TRANSFER AND BEGINNING OF CONNECTION RELEASE ==========*/
A-14
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*================== BEGINNING OF CONNECTION RELEASE ========================*/
/*------------------------ RELEASE REQUEST ----------------------------------*/
/* WHEN THE CALLING USER HAS SUCCESSFULLY SENT ALL OF ITS MESSAGES, IT
*/
/* REQUESTS ORDERLY RELEASE THE CONNECTION.
*/
/*---------------------------------------------------------------------------*/
$H_SI_REL
TYPE=REQ
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*------------------------ RELEASE CONFIRMATION -----------------------------*/
/*
AFTER SENDING THE RELEASE REQUEST, THE CALLING USER HAS TO WAIT FOR THE*/
/* RELEASE CONFIRMATION BEFORE CLOSING THE LOCAL SSAP.
*/
/*---------------------------------------------------------------------------*/
WAIT_RELCNF :
CALL SEPM (ADDR(SEMSGA1),M16) ;
/* WAITING FOR RELEASE CONFIRMATION EVENT
*/
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_RELCNF
THEN $H_ABTSK;
ELSE DO;
/* IF THE COMING EVENT IS RELEASE CONFIRMATION
$H_SI_REL TYPE=CNF
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
RESULT=A_RESULT
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
SEMMSG=M16
ERROR=ERROR_DESC ;
*/
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_RELCNF;
ELSE $H_ABTSK;
END;
/*----------------------- CLOSING OF SSAP -----------------------------------*/
/* WHEN THE RELEASE CONFIRMATION IS SUCCESSFULLY RECEIVED, THE CALLING USER */
/* CAN CLOSE HIS LOCAL SSAP.
*/
/*---------------------------------------------------------------------------*/
$H_SI_CLS_SSAP
VCAM_SSAP_ID=SSAP_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
47 A2 60UC Rev02
A-15
VCAM-ISO Reference Manual Part 1 - Session Services
ERROR_PROVIDER : PROC ;
/*---------------------------------------------------------------------------*/
/* THIS PROCEDURE HANDLES THE PROVIDER ABORT EVENT BY USING THE CORRESPONDING*/
/* VCAM MECRO. AFTER CALLING THE MACRO, THE USER CAN GET INFORMATION ABOUT
*/
/* WHAT HAPPENED IN THE BEARER.
*/
/*---------------------------------------------------------------------------*/
PAB_IND_MACRO: $H_SI_PAB TYPE=IND
SEMMSG=M16
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
REASON=A_REASON
P_ERROR=PAB_ERROR_DESC
ERROR=ERROR_DESC;
IF $H_TESTRC OBSOLETE; THEN DO;
CALL SEPM (ADDR(SEMSGA1), M16);
IF EVCODE=ISO_S_PABIND THEN GO TO PAB_IND_MACRO;
END;
ELSE $H_ABTSK;
/*--------------------------------------------------------------------------*/
/* IF THE RC IS 'OBSOLETE', THE USER SHOULD RETRY ON RECEIVING THE NEXT
*/
/* EVENT. OTHERWISE, THE TASK IS ABORTED.
*/
/*--------------------------------------------------------------------------*/
END ERROR_PROVIDER ;
END EX_C;
A-16
47 A2 60UC Rev02
Examples of Calling and Called Programs
A.5
CALLED USER D (SESSION V2)
EX_D : PROC ; /* PROCEDURE OF CALLED USER
*/
/*===================== DECLARATION OF PARAMETERS ===========================*/
DCL SSAP_ID LOGBIN(32);
/* VARIABLE FOR RECEIVING SSAP ID GIVEN
*/
/* BY VCAM
*/
DCL SCN_ID LOGBIN(32);
/* VARIABLE FOR RECEIVING SESSION ID GIVEN */
/* BY VCAM
*/
DCL MY_SSAPID CHAR(16);
/* VARIABLE FOR CHECKING THE CALLED SSAP ID*/
DCL MY_SSAPID_LG LOGBIN(16);/* VARIABLE FOR CHECKING THE CALLED SSAP
*/
/* ID LENGTH
*/
DCL DATARECVD CHAR(20);
/* VARIABLE FOR RECEIVING DATA DELIVERED
*/
/* BY VCAM
*/
DCL PTRDATA PTR;
/* POINTER TO RECEIVED DATA
*/
DCL LENGTH LOGBIN(32);
/* LENGTH OF RECEIVED DATA
*/
DCL MESSNB FIXED BIN(15);
/* NUMBER OF MESSAGE RECEIVED
*/
DCL A_REASON LOGBIN(16);
/* VARIABLE FOR RECEIVING THE REASON OF A */
/* PROVIDER ABORT
*/
DCL A_RESULT LOGBIN(8);
/* VARIABLE FOR THE RESULT OF CONNECTION
*/
/* ESTABLISHMENT
*/
DCL PROPOSED_VERSION LOGBIN(16); /* VARIABLE FOR THE PROPOSED PROTOCOL */
/* VERSION SESSION
*/
DCL
DCL
MESS CHAR(2048); /* BUFFER FOR EXCHANGING PARAMETERS BETWEEN USERS */
/* AND VCAM
*/
M16 CHAR(16);
/* BUFFER FOR RECEIVING SEMAPHORE MESSAGES
*/
$H_DC_SI_SEMMSG ATTRIB='BASED(ADDR(M16))';
/* VCAM SEMAPHORE STRUCTURE DECLARATION
$H_DC_SI_ERROR; /* VCAM ERROR MESSAGE STRUCTURE DECLARATION
$H_DC_SI_ERROR PREFIX='PAB_';
/* PROVIDER ABORT ERROR STRUCTURE DECLARATION
$H_DC_SI_REPLACE PREFIX=ISO_; /* VCAM PARAMETERS VALUES REPLACE
$H_DCSEM PREFIX=SEMSGB CNT1=0 MCNT1=10 TYPE1=MSG;
/* DECLARATION OF A SEMAPHORE FOR WAITING ARRIVING EVENTS
*/
*/
*/
*/
*/
/*==================== OPENING AN ISO SESSION ===============================*/
/*----------------------------- OPENNING LOCAL S.S.A.P. ---------------------*/
/* THE CALLED USER IS OPENING HIS LOCAL SSAP BY CALLING THE DEDICATED MACRO */
/*---------------------------------------------------------------------------*/
$H_SI_OPN_SSAP
SSAPID="EX_D"
SSAPID_LG=4
VCAM_SSAP_ID=SSAP_ID
USER_SSAP_ID=1
SEM=ADDR(SEMSGB1)
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
47 A2 60UC Rev02
A-17
VCAM-ISO Reference Manual Part 1 - Session Services
/*------------------------- CONNECTION INDICATION ---------------------------*/
/*---------------------------------------------------------------------------*/
/* AFTER THE LOCAL SSAP IS OPENED, THE CALLED USER WAITS FOR RECEIVING THE
*/
/* CONNECTION INDICATION.
*/
/*---------------------------------------------------------------------------*/
WAIT_CONIND :
CALL SEPM (ADDR(SEMSGB1),M16) ;
/* WAITING FOR CONNECTION INDICATION EVENT
*/
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_CONIND THEN $H_ABTSK;
ELSE DO;
/*---------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS CONNECTION INDICATION, THE CORRESPONDING VCAM MACRO*/
/* IS CALLED.
*/
/*---------------------------------------------------------------------------*/
$H_SI_CON TYPE=IND
REQ_VERSION=PROPOSED_VERSION
SEMMSG=M16
SEM=ADDR(SEMSGB1)
USER_SCN_ID=1
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
CLD_SSAPID=MY_SSAPID
CLD_SSAPID_LG=MY_SSAPID_LG
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_CONIND;
ELSE $H_ABTSK;
IF REQ_VERSION^=2
THEN DO;
PROPOSED_VERSION=2
A_RESULT=USER_REJECTION
END;
ELSE;
END;
/*-------------------------- CONNECTION RESPONSE ----------------------------*/
/* IF THE RECEPTION OF CONNECTION INDICATION IS WELL DONE, THE CALLED USER
*/
/* GIVES HIS RESPONSE WITH HIS REQUESTED FUs AND TOKEN OWNER.
*/
/* IF THE PROPOSED PROTOCOL VERSION IS NOT 2, REQUEST THE PROTOCOL VERSION 2 */
/*---------------------------------------------------------------------------*/
$H_SI_CON TYPE=RSP
REQ_VERSION=PROPOSED_VERSION
REQ_HALFDUPLEX=YES
REQ_NEGORELEASE=YES
DATATK=REQUESTOR
RELEASETK=REQUESTOR
RESULT=ACCEPT
VCAM_SSAP_ID=SSAP_ID
VCAM_SCN_ID=SCN_ID
USER_SCN_ID=1
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC
SEM=ADDR(SEMSGB1) ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
A-18
47 A2 60UC Rev02
Examples of Calling and Called Programs
/*------------------------ DATA RECEIVING -----------------------------------*/
MESSNB=0; /* COUNTER OF MESSAGES RECEIVED
*/
/*---------------------------------------------------------------------------*/
/* WHEN THE CONNECTION IS WELL ESTABLISHED, THE CALLED USER WAITS FOR THE
*/
/* DATA INDICATIONS.
*/
/*---------------------------------------------------------------------------*/
WAIT_DTIND :
CALL SEPM (ADDR(SEMSGB1), M16);
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_DTIND
THEN $H_ABTSK;
ELSE DO;
/*---------------------------------------------------------------------------*/
/* IF THE COMING EVENT IS NORMAL DATA INDICATION, THE CALLED USER SHOULD
*/
/* RECEIVE IT BY GIVING THE ADDRESS OF RECEPTION BUFFER (PTRDATA
*/
/*---------------------------------------------------------------------------*/
PTRDATA=ADDR(DATARECVD) ; /* RESERVING SPACE FOR ARRIVING DATA
$H_SI_DT TYPE=IND
SEMMSG=M16
DATALG=LENGTH
DATAPTR=PTRDATA
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
*/
MESSNB=MESSNB+1;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_DTIND;
ELSE $H_ABTSK;
END;
IF MESSNB < 2 THEN GO TO WAIT_DTIND;
/*==================== CONNECTION RELEASE ===================================*/
/*-------------------------- RELEASE INDICATION -----------------------------*/
WAIT_RELIND :
CALL SEPM (ADDR(SEMSGB1), M16);
/* WAITING FOR RELEASE INDICATION
*/
IF EVCODE=ISO_S_PABIND THEN CALL ERROR_PROVIDER;
IF EVCODE^=ISO_S_RELIND
THEN $H_ABTSK;
ELSE DO ;
$H_SI_REL TYPE=IND
SEMMSG=M16
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE; THEN IF $H_TESTRC OBSOLETE;
THEN GO TO WAIT_RELIND;
ELSE $H_ABTSK;
END;
47 A2 60UC Rev02
A-19
VCAM-ISO Reference Manual Part 1 - Session Services
/*------------------------ RELEASE RESPONSE ---------------------------------*/
$H_SI_REL TYPE=RSP
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
RESULT=ACCEPT
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
/*------------------------ CLOSING SSAP -------------------------------------*/
$H_SI_CLS_SSAP VCAM_SSAP_ID=SSAP_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC ;
IF $H_TESTRC ^DONE;
THEN $H_ABTSK;
ERROR_PROVIDER : PROC ;
PAB_IND_MACRO:
$H_SI_PAB TYPE=IND
SEMMSG=M16
REASON=A_REASON
P_ERROR=PAB_ERROR_DESC
USER_SCN_ID=1
VCAM_SCN_ID=SCN_ID
USERWALG=MEASURE(MESS)
USERWAPTR=ADDR(MESS)
ERROR=ERROR_DESC;
IF $H_TESTRC OBSOLETE; THEN DO;
CALL SEPM (ADDR(SEMSGB1), M16);
IF EVCODE=ISO_S_PABIND THEN GO TO PAB_IND_MACRO;
END;
ELSE $H_ABTSK;
END ERROR_PROVIDER;
END EX_D ;
A-20
47 A2 60UC Rev02
B. Protocol Implementation Choices
B.1
INITIAL REMARKS
This chapter is intended first of all to replace a complete PICS proforma. It gives the
standard "static" view of the VCAM implementation, ie. what is implemented (or
"supported") of the full functionality of the standard protocol. It thereby contains all the
information required to select and parameterize OSI conformance tests for the singlelayer test method.
Furthermore, some additional remarks are given regarding the "dynamic " aspect, ie. the
behavior of Instances Of Communication (IOCs) possibly run by the implementation.
These remarks are essential to interworking-related issues (profile specification and
profile testing).
Note that the terminology of this chapter is used with the strict OSI definitions of OSI
concepts:
•
•
•
"standard" matter, as opposed to "local" matter.
"static" view = "standard implementation" matters.
"dynamic" view = "standard behavior" matters (protocol machine procedures,
encoding rules, error handling procedures).
47 A2 60UC Rev02
B-1
VCAM-ISO Reference Manual Part 1 - Session Services
B.2
IMPLEMENTATION OF MAJOR CAPABILITIES
(1) Protocol versions
•
•
Version 1: supported.
Version 2: supported.
(2) Functional Units
•
All Functional Units are supported.
(3) Initial role
•
•
Initiator role: supported.
Acceptor role: supported.
(4) Protocol Mechanisms
•
•
•
•
B-2
Segmentation (in both directions): supported.
Use of expedited transport: supported. (Note that this mechanism is effective for any
relevant Instance Of Communication, if it is made available by the transport layer.)
Reuse of the transport connection: not-supported.
Extended concatenation: not supported.
47 A2 60UC Rev02
Protocol Implementation Choices
B.3
IMPLEMENTATION OF MAJOR PARAMETERS
(1) Maximum length of User Data parameter
•
•
S-DATA service primitive: unlimited length.
S-TYPED-DATA service primitive: unlimited length.
(2) Negotiable parameter "TSDU-maximum-size" (applicable if segmentation is
selected)
Value is configurable by generation of the implementation module (local matter):
•
Functional Units Duplex and Typed Data: between 2 Kbytes and 16 Kbytes.
•
Functional Unit Half-Duplex: between 2 Kbytes and 32 Kbytes.
(3) TIM Time-out
Value is configurable by generation of the implementation module (local matter).
(4) Note (standard rule)
If in an Instance of Communication (IOC), segmentation is not selected, no static
limit
on TSDU sizes is imposed by the implementation. TSDUs containing user data for SDATA and S-TYPED-DATA can be unlimited in size.
In the case of version 2, the length of SS-user data transferred by primitives other than SDATA and S-TYPED-DATA is limited to 10 Kbytes.
47 A2 60UC Rev02
B-3
VCAM-ISO Reference Manual Part 1 - Session Services
B.4
REMARKS ON PROTOCOL MACHINE PROCEDURES
General rule
Procedures for sending/receiving SPDUs are applied with no restriction, in any situation of
incoming event:
•
Valid SPDU receipt event,
•
SS-user event (session service primitive "request" or "response",
•
TS-provider event (transport service primitive "indication" or "confirm"),
•
Timer event.
Note that any case of "flexible behavior" in the standard (several alternatives allowed)
implies a dynamic "local choice" among these alternatives.
Remarks on SPDU procedures
•
AA: this SPDU is never sent, and is ignored when received, since it is related to the
non-supported reuse of transport connection mechanism.
•
ER: this SPDU is never sent ("local choice" valid according to the standard).
•
MIA: by convention, any occurrence of MIP receipt causes a matching MIA to be
sent in response ("local choice" valid according to the standard).
•
OA: this SPDU is never sent or received (SS-user data is limited to 10 Kbytes during
the connection phase).
•
CDO: this SPDU is never sent or received (SS-user data is limited to 10 Kbytes
during the connection phase).
Remarks on SPDU parameter procedures
In version 2 of protocol, when SPDU CN is sent, the DATA OVERFLOW parameter is
always absent (less than 10 Kbytes of data transferred). Reception of SPDU CN with
DATA OVERFLOW parameter results in emission of SPDU RF. There is no restriction on
the presence/length/content of other SPDU-parameters.
•
Parameters with "protocol machine" semantics are sent/received and handled as
described by the protocol machine.
•
Among the transparent parameters (user data), VCAM-ISO distinguishes between
two situations:
Note:
B-4
-
The user data passed by S-DATA and S-TYPED-DATA are
sent/received without restriction.
-
The user data given by other parameters is limited to 10 Kbytes.
When SPDU AC is sent, parameter Token Item is always absent (no restricted
functionality).
47 A2 60UC Rev02
Protocol Implementation Choices
B.5
REMARKS ON ENCODING RULES
General remark
The session protocol specification is described in the standard (ISO 8327) as comprising
two "orthogonal" dimensions:
• Protocol machine procedures (ISO 8327: clause 7 + state diagrams).
• Encoding rules (ISO 8327: clause 8 + concatenation rules).
The VCAM implementation applies no restriction on the encoding rules.
Note that any case of "flexible encoding" in the standard (several equivalent alternatives
are valid) implies a dynamic "local choice" among these alternatives when sending. When
receiving, all alternatives are accepted (as imposed by the standard).
TSDU encoding (concatenation of SPDUs)
The VCAM implementation applies no restriction on the basic concatenation. Extended
concatenation is not supported. All valid TSDU forms are accepted in receipt (as imposed
by the standard) and can be sent.
Note that in some cases a given semantic procedure (sequence of SPDUs) may be
conveyed by one or two TSDUs: each of these "flexible encoding" cases requires a "local
choice" when sending. This "local choice" is explicitly given by the VCAM interface user.
SPDU-parameter encoding
The VCAM implementation applies no restriction on the encoding rules.
Note that in some cases several equivalent encoded forms are allowed (eg. absent
parameter form or null length (empty) form for non-mandatory parameters, default rules).
In receipt, all valid forms are accepted (as imposed by the standard). In transmission,
each of these "flexible encoding" cases requires a "local choice". This "local choice" is
explicitly given by the VCAM interface user.
47 A2 60UC Rev02
B-5
VCAM-ISO Reference Manual Part 1 - Session Services
B.6
REMARKS ON ERROR HANDLING PROCEDURES
In case of receiving an erroneous SPDU (with respect to protocol machine procedures) or
an invalid TSDU/SPDU (with respect to encoding rules), an abort of the connection is
performed ("local choice" valid in response to an error situation, according to the
standard).
Sending ER SPDU (another valid alternative) is never performed.
B-6
47 A2 60UC Rev02
Protocol Implementation Choices
B.7
REMARKS ON OSI CONFORMANCE TESTING
"OSI conformance testable" functionality
A rule in the standard describing an "imposed" behavior (protocol machine procedure /
encoding rule / error handling procedure) - whether in sending or receiving direction - is
fully "conformance testable" (by a separate OSI conformance test case specific to this
behavior).
A rule in the standard describing a "flexible" behavior (several alternatives allowed in
some protocol machine procedure / encoding rule / error handling procedure) when
sending, is not fully "conformance testable", by definition according to the standard. It is
not possible to test the sending of a given alternative separately. The decomposition into
OSI conformance test cases cannot make any distinction between alternatives, but only
checks an OR condition relating the alternatives.
A "flexible" behavior when receiving is fully "conformance testable". Each of the
alternatives must be accepted in the same way, each one is checked by a separate test
case.
Configuration of the implementation
From the point of view of OSI conformance testing, configuration (or generation) is not
distinguished from implementation: conformance tests require a fixed module, with a fixed
static description (completed PICS) and a stable dynamic behavior.
47 A2 60UC Rev02
B-7
VCAM-ISO Reference Manual Part 1 - Session Services
B.8
REMARKS ON INTERWORKING ISSUES (PROFILE CONSIDERATIONS)
General remarks on "platform" and "profile" aspects
The protocol standard defines a general-purpose platform comprising a set of behavior
rules (valid use of SPDUs). Each behavior rule is tested for conformance by running a
specific conformance test case as a separate Instance Of Communication (platform
aspect = single-layer method of testing).
The final purpose of an implementation is to provide interworking facilities, by
simultaneously running n different IOCs for p different application profiles. The problem is
to define consistently both concepts of profile specification and platform conformance.
Internal execution of IOCs (viewed from inside the session)
The key point is expressed by the rule of non-configuration of IOCs:
"The behavior of an IOC is not configurable by profile consideration."
In other words:
"No IOC is ever aware of running a specific profile (identified by some protocol parameter
value, or some local convention), or a specific test case, or whatever else".
The internal algorithm executed by the VCAM implementation is strictly universal and
common to all possible IOCs. The private internal context known to an IOC, only contains:
•
the negotiable major capabilities,
•
the negotiable major parameters.
Note that a "local choice" required by the standard (eg. flexible sending behavior) is
performed by a sequence common to all IOCs.
External execution of IOCs (profile execution viewed by the session user)
The VCAM implementation is compatible with any application profile specification which
complies with the rule of non-configuration of IOC (regarding protocol machine
procedures, encoding rules, error handling rules).
A profile specification which would impose a given alternative in some given "flexible
behavior" situation, would not comply with this rule.
B-8
47 A2 60UC Rev02
Protocol Implementation Choices
The session user is the user of a particular IOC through the VCAM interface, which is
responsible for:
•
Identifying this IOC as being associated with some profile specification (this
identification condition may use some protocol parameters exchanged at connection
establishment, or some pre-arranged rules, or any complex combination of ordered
rules - the identification being entirely resolved once the connection is established).
•
Adapting his own user's behavior to the requirements of this profile, eg. by
"excluding" the use of some non-mandatory primitives (or parameters), or by
"restricting" the use of all possible parameter values.
The session user represented by the profile execution is thereby aware of an "external
context" (or "user" context) , which makes him aware of which profile is being run. But this
session user has no need to control "local choices" in cases of "flexible behavior" internal
to the session.
47 A2 60UC Rev02
B-9
VCAM-ISO Reference Manual Part 1 - Session Services
B-10
47 A2 60UC Rev02
Glossary
ACCEPTOR/ACCEPTING SS-USER
An SS-user that accepts a particular action [ISO].
CONFIRM
Last of the four primitives defined in the ISO documents. Reception of a response when
using a specific service.
Event
The term used in VCAM to define "something incoming"; it goes from the session layer to
the SS-user. Indication and confirmation are events.
FU: Functional Unit
Group of services defined for negotiation of session requirements during the session
connection phase [ISO]. An FU will be selected if both session users have required it.
INDICATION
Second of the four primitives defined in the ISO documents. Demand issued to the SSuser.
NSAP: Network Session Access Point
Access point of a network service user. The NSAP has the form of a string of bytes.
REQUEST
First of the four primitives defined in the ISO documents; it stands for a demand for a
service at the SS-user interface.
47 A2 60UC Rev02
g-1
VCAM-ISO Reference Manual Part 1 - Session Services
REQUESTOR/REQUESTING SS-USER
An SS-user that requests a specific action. [ISO]
RESPONSE
Third of the four primitives defined in the ISO documents; it stands for a demand for a
service to the SS-user interface after an indication has been received.
SESSION CONNECTION
Logical link that is established between two SS-users.
SESSION-LAYER: ( SESSION PROVIDER )
An abstract representation of the totality of the entities that provide the session service,
using the transport layer's services when dealing with a remote SS-user.
SIDU: Session Interface Data Unit
Data exchanged betweem the user and VCAM, for instance in the H_SI_DT primitive.
SPDU: Session Protocol Data Unit
Data unit exchanged by the two session entities, following the session protocol rules.
SS: Session Service
Service provided by the session protocol for an SS-user (presentation layer or
application).
SSAP: Session Service Access Point
Access point between an application (or SS-user) and a session layer. Identifies the local
or remote user of the session service. The SSAP identifier has the form of a string of
bytes.
g-2
47 A2 60UC Rev02
Glossary
SSDU: Session Service Data Unit
Data unit that is to be transferred intact (in a transparent way) between two SS-users. The
main aim of the session layer is to allow and organize transfer of SSDUs. In this
document SSDUs may also be called DATA.
Three kinds of SSDUs are defined:
• NSSDU: normal data SSDU.
• TSSDU: typed data SSDU.
• XSSDU: expedited data SSDU.
SS-USER (also called APPLICATION)
Abstract representation of the entities within a single system that makes use of the
session service [ISO].
TOKEN (or TK)
An attribute of the session connection which is dynamically assigned to one SS-user at a
time to permit a certain service to be invoked. It is a right to exclusive use of the service
[ISO].
Four tokens may be used by the session layer:
• the data token (or DATATK).
• the release token (or RELEASETK).
• the synchronize-minor token (or MINORTK).
• the major/activity token (or MAJORTK).
TSAP: Transport Service Access Point
Identifier of a transport service user. The TSAP identifier has the form of a string of bytes.
TSDU: Transport Service Data Unit
Data unit exchanged by the transport session entities.
47 A2 60UC Rev02
g-3
VCAM-ISO Reference Manual Part 1 - Session Services
g-4
47 A2 60UC Rev02
Index
A
Abort primitives
Addressing
Asynchronous error processing
2-9
7-1
8-2
Data transfer
Data transfer phase primitives
Debugging
Declarative primitives
Disconnect SSAP
DNS
DONE return code
DSAC session index
DVTR command
6-1
2-6
1-6
2-11
2-2
1-1
8-2
4-2
9-7
B
Buffer data
5-4
C
Called program example
A-7, A-17
Calling program example
A-2, A-11
Capability data
6-1
Cause of error
8-4
Close SSAP
2-2
Code
error
8-3
Coding examples
called program
A-7, A-17
calling and called programs
A-1
calling program
A-2, A-11
CON primitive and addressing
7-5
Concatenation rules
2-6
Concurrent access
to an SSAP or a session context
4-3
Configuration of VCAM-ISO
1-1
Confirmation(CNF)
2-3
CONFORMANCE TESTING
B-8
Connect SPDU
7-7
Credit
6-1
arrival of
5-5
definition of
5-1
E
ENCLOSURE parameter
ERROR
structure of
ERROR parameter
Error processing
Errors
PAB-specific
processing of
EV_CODE
Event
definition of
in which error occurred
notification mechanism
Event handling
Events with destructive effect
Events with no destructive effect
Expedited credit
Expedited data
6-3
8-3
3-5
8-1
8-6
8-1
5-3
5-1
8-5
5-1
5-1
6-5
6-6
6-2
6-6
D
Data buffer
DATA LENGTH
47 A2 60UC Rev02
5-4
5-4
i-1
VCAM-ISO Reference Manual Part 1 - Session Services
error
semaphore
F
Flow control mechanism
Forms of GPL primitives
Front-end processor
software for
6-1
2-3
7-2
1-1
GCL Commands for trace
GCOS7 target application
GPL
REPLACE
GPL declarative primitives
GPL input parameters
GPL output parameters
GXTI
structures
N
Normal credit
NSAP
explicit
G
9-5
7-2
3-6
2-11
3-6
3-8
9-17
8-3
1-3
6-2
7-1
7-4
O
OBSOLETE return code
of limits Overflow
Open SSAP
Opening an ISO session
connection
Overflow,
of limits
Overflows of limits
8-2
10-1
2-2
1-4
10-1
1-6
H
Hexadecimal representation of address
7-1
I
Indication(IND)
Installation and Configuration
installation,
of VCAM-ISO
INTERWORKING
ISO
parameters
ISO Address Management
2-3
1-1
10-1
B-9
3-2
7-1
L
Levels of trace
Limits of VCAM-ISO
Limits overflows
Local connection
Logfile for trace
LSYS directive
9-4
1-2
1-6
7-5
9-3
10-2
M
Mandatory parameters
3-3
MAXDSA
10-1, 10-2
Maximum number of connections
1-2
Maximum number of SSAPs
1-2
MAXISO
10-1, 10-2
Message
i-2
P
P_ERROR
structure of
8-3
PAB-specific errors
8-6
Parameter
ERROR
3-5
Return code
3-5
TYPE
3-4
USERWAPTR
3-4
Parameter description conventions
3-3
Parameters
common to declarative primitives
2-12
common to most GPL primitives
3-4
general rules for
3-1
GPL input
3-6
GPL output
3-8
Pointer
use of
3-4
Pointer to an Input Field
3-6
Pointer to an Output Field
3-7, 3-8
Portion mode
6-3
Primitives
classes of
2-1
declarative
2-11
for data transfer phase
2-6
for session connection
release phase
2-9
miscellaneous
2-10
primitives for VCAM-ISO
2-1
47 A2 60UC Rev02
Index
Programming an ISO Application
Protocol
implementation choices
1-3
B-1
R
Remote connection
REPLACE primitive
Request(REQ)
Response(RSP)
Return Code parameter
Return codes
DONE
OBSOLETE
RMAXSIZE parameter
7-6
2-11
2-3
2-3
3-5
8-7
8-2
8-2
6-4
47 A2 60UC Rev02
Token service
Trace
collector
GCL Commands
levels
logfile
scanner
scanner screen description
TSAP
TVTR command
TYPE parameter
2-6
9-2
9-5
9-4
9-3
9-2
9-15
7-1
9-7
2-4, 3-4
U
USER_SCN_ID
USER_SSAP_ID
USERWAPTR parameter
S
Screen description for trace
Segmenting data (portion mode)
Semaphore
session
SSAP
Session Connection
closing the
dialog over a
identification
Session connection
opening a
release primitives
SIDU
SPDU connect
SS-user data
SSAP
declaration
declared with an explicit
NSAP
declared without an explicit
NSAP
definition of
identification
release
semaphore
SSAP management primitives
SSAPid
SSDU
Subnetwork
SVTR command
Synchronous error processing
SYS directive
System administrator
tasks of
System memory space
T
4-2, 5-4
4-1
3-4
9-15
6-3
5-3
5-6
1-5
1-4
4-1
1-4
2-9
6-3
7-7
6-3
7-3
7-4, 7-7
7-3, 7-7
7-1
4-1
7-4
5-6
2-2
7-1
6-3
7-6
9-5
8-1
10-2
V
V_TEST on semaphore
VCAM-ISO
configuration
Installation
installation
Overview
services
VCAM-ISO,
limits of
VCAM_SCN_ID
VCAM_SSAP_ID
VCAMSCN command
5-2
1-1, 10-2
10-1
1-1
1-1
1-4
10-1
4-2
4-1
10-1, 10-2
W
WAIT primitive
Working area
5-2
3-4
1-1
1-2
i-3
VCAM-ISO Reference Manual Part 1 - Session Services
i-4
47 A2 60UC Rev02
© Copyright 2026 Paperzz