ISO/IEC 11578:1996
(Main)Information technology — Open Systems Interconnection — Remote Procedure Call (RPC)
Information technology — Open Systems Interconnection — Remote Procedure Call (RPC)
Facilitates the specification and development of distributed applications based on extending the well-known remote procedure call paradigm to operate between application processes on two separate real open systems in the OSI environment.
Technologies de l'information — Interconnexion de systèmes ouverts (OSI) — Appel de procédures à distance (RPC)
General Information
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD
First edition
1996-12-15
Information technology - Open Systems
Interconnection - Remote Procedure Cal1
(RW
Interconnexjon de systemes ouverts
Technologies de I ‘in forma tion -
(OS/) - Appel de procedures 2 distance (RPC)
Reference number
ISO/IEC 11578:1996(E)
---------------------- Page: 1 ----------------------
ISO/IEC 11!578:1996(E)
Contents
1
Section 1 General
2
11 Scope
3
1:2 Normative references
4
1.3 Informative References
5
1.4 Definitions
5
1.4.1 Reference model definitions
5
1.4.2 Application Layer Structure definitions
5
1.4.3 Service conventions definitions
6
1.5 Abbreviations
8
Portability
1.6
Services and Protocols 9
1.7
Conformance Requirements IO
1.8
Introduction to the RPC API 13
Section 2
14
21 RPC Programming Model Overview
14
2:1.1 CIienVServer Model
14
2.1.1.1 Interfaces
14
2.1.1.2 Remoteness
15
2.1.1.3 Binding
15
2.1.1.4 Name Services
15
2.1.1.5 Resource Models
16
2.1.1.6 Security Services
16
2.1.1.7 Server lmplementation
16
Application/Stub/Run-time System
2.1.2
16
RPC Run Time
2.1.2.1
16
2.1.2.2 Stubs
17
2.1.2.3 Application Code
18
2.2 API Operations
18
2.2.1 Binding-related Operations
18
2.2.2 Name Service Operations
18
2.2.3 Endpoint Operations
19
2.2.4 Security Operations
Stub Memory Management Operations 19
2.2.5
19
2.2.6 Management Operations
19
2.2.7 UUID Operations
20
2.3 Binding
21
2.3.1 Binding Handles
21
2.3.1.1 Client and Server Binding Handles
21
2.3.1.2 Obtaining Binding Handles
21
2.3.2 String Bindings
22
2.3.3 Binding Steps
22
2.3.3.1 Server Binding Steps
26
2.3.3.2 Client Binding Steps
26
2.3.3.3 Cal1 Routing Algorithms
29
2.3.4 Binding Methods
0 ISO/IEC 1996
All rights reserved. Unless otherwise specified, no part of thrs publication may be repro-
duced or utilized in any form or by any means, electronrc or mechanrcal, rncluding photo-
copying and microfilm, without permtssron In wntlng from the publisher.
ISO/IEC Copyright Office l Case postale 56 l CH-1 211 Geneve 20 l Swrtzerland
Printed in Switzerland
---------------------- Page: 2 ----------------------
ISO/IEC 11578:1996(E)
0 ISO/IEC
2.4 Name Service Interface 30
2.4.1 Name Service Model 30
Name Syntax Tags 30
2.4.2
Name Service Attributes 31
2.4.3
Server Entries 31
2.4.3.1
31
2.4.3.2 Group Entries
31
2.4.3.3 Profiles
32
2.4.4 Binding Searches
33
2.4.5 Search Algorithm
34
2.4.6 Name Service Caching
35
2.5 Server Model
35
2.5.1 Server Concurrency and Request Buffering
2.5.2 Management Interface 35
2.6 Server Resource Models 36
2.6.1 The Server-Oriented Model 36
2.6.2 The Service-Oriented Model 36
2.6.3 The Object-Oriented Model 36
2.7 Secu rity 37
2.8 Error Handling 37
2.9 Cancel Notification 37
2.10 Stubs 39
2.10.1 IDL to Stub Data Type Mappings 39
2.10.2 Manager EPVs 39
2.10.3 Interface Handles 39
2.10.4 Stub Memory Management 39
2.11 RPC API Routine Taxonomy 40
2.11.1 Binding Operations 40
2.11.2 Interface Operations 40
2.11.3 Protocol Sequence Operations 41
2.11.4 Local Endpoint Operations 41
Object Operations 41
2.11.5
Name Service Interface Operations 42
2.11.6
NSI Binding Operations 42
2.11.6.1
NSI Entry Operations 42
2.11.6.2
42
2.11.6.3 NSI Group Operations
NSI Profile Operations 43
2.11.6.4
43
2.11.7 Authentication Operations
43
2.11.8 The Server Listen Operation
43
2.11.9 The String Free Operation
43
2.11 .lO UUID Operations
44
2.11 .ll Stub Memory Management
44
2.11.12 Endpoint Management Operations
44
2.11.13 Name Service Management Operations
2.11.14 Local Management Services 45
2.11.15 Local/Remote Management Services 45
2.11.16 Error Messages 45
RPC API Manual Pages 47
Section 3
3.1 RPC Data Types 47
3.1 .l Unsigned Integer Types 47
3.1.2 Signed Integer Type 47
3.1.3 Unsigned Character String 47
3.1.4 Binding Handle 48
3.1.5 Binding Vector 49
Boolean Type 49
3.1.6
3.1.7 Endpoint Mag Inquiry Handle 49
Interface Handle 50
3.1.8
3.1.9 Interface tidentifier 50
3.1.10 Interface Identifier Vector 51
3.1.11 Manager Entry Point Vector 51
---------------------- Page: 3 ----------------------
ISCMEC 11578:1996(E)
0 ISOAEC
3.1.12 Name Service Handle
51
3.1.13 Protocol Sequence String
52
3.1.14 Protocol Sequence Vector
52
3.1.15 Statistics Vector
53
3.1.16 String Binding
53
3.1.17 String UUID
54
3.1.18 UUIDs
54
3.1.19 UUID Vector
54
rpc-binding-copy()
56
rpc-binding-free()
57
rpc-binding-from-string-binding ( )
58
rpc-binding-inqauth-client ( )
59
rpc-binding-inq-auth-info()
61
rpc-binding-inq-Object ( )
63
rpc-binding-reset ( ) 64
rpc-binding-serverfrom-client ( ) 65
rpc-binding-set-auth-info ( ) 66
rpc-binding-Set-Object ( ) 68
rpc-binding-to-string-binding ( ) 69
rpc-binding-vector-free ( ) 70
rpc-ep-register ( ) 71
rpc-ep-register-no-replace ( ) 74
rpc-ep-resolve-binding ( ) 76
rpc-ep-Unregister ( )
78
rpc-if-id-vector-free ( )
79
rpc-if-inq-id ( )
80
rpc~mgmt~ep~elt~inq~begin ( )
81
rpc~mgmt~ep~elt~inq~done ( )
84
rpc~mgmt~ep~elt~inq~next ( )
85
rpc-mgmt-ep-Unregister ( )
87
rpc~mgmt~inq~com~timeout ()
89
rpc~mgmt~inq~dfIt~protect~level( )
90
rpc-mgmt-inq-if-ids ( )
91
rpc~mgmt~inq~server~princ_name ( )
93
rpc-mgmt-inq-stats ( )
95
rpc~mgmt~is~server~listening ( ) 97
rpc-mgmt-set-authorizationfn () 99
rpc~mgmt~set~cancel~timeout ( ) 101
rpc-mgmt-set-comfimeout ( ) 102
rpc-mgmt-set-server-Stack-size ( ) 104
rpc-mgmt-stats-vector-free ( ) 105
rpc-mgmt-stop-server-listening ( ) 106
rpc-network-inq-protseqs ( ) 107
rpc-network-is-protseq-valid ( )
108
rpc-ns-binding-export ( )
110
rpc-ns-binding-import-begin ()
112
rpc-ns-binding-import-done ( )
114
rpc-ns-binding-import-next ()
115
rpc-ns-binding-inq-entry-name ( )
118
rpc-ns-binding-lookup-begin ( )
120
rpc-ns-binding-lookup-done()
122
rpc-ns-binding-lookup-next ( )
123
rpc-ns-binding-select ( )
126
rpc-ns-binding-unexport ( )
127
rpc-ns-entry-expand-name ( )
129
rpc-nsentry-inq-resojution ( )
130
rpc-ns-entry-Object-inq-begin ( )
132
rpc-nsentry-Object-inq-done ( )
133
rpc-ns-entry-Object-inq-next ( )
134
---------------------- Page: 4 ----------------------
0 ISO/IE@ ISWIEC 11578:1996(E)
rpc-ns-group-delete ( )
136
rpc-ns-group-mbr-add ( )
137
rpc-ns-group-mbr-inq-begin ( )
139
rpc-ns-group-mbr-inq-done ( )
141
rpc---ns-group-mbr-inq-next ( ) 142
rpc-ns-group-mbr-remove() 144
rpc-ns-mgmt-binding-unexport ( ) 146
rpc-ns-mgmt-entry-create ( ) 149
rpc-ns-mgmtentry-delete ( ) 150
rpc-ns-mgmtentry-inq-if-ids ( ) 151
rpc-ns-mgmt-handle-setexp_age() 153
rpc~ns~mgmt~inq~exp~age() 154
rpc-ns-mgmt-set-exp-age( ) 156
rpc-ns-Profile-delete() 158
rpc-ns-Profile-elt-add ( ) 159
rpc-ns-Profile-elt-inq-begin ( ) 161
rpc-ns-Profile-elt-inq-done ( ) 164
rpc~ns~profile~elt~inq~next ( ) 165
rpc~ns~profile~elt~remove ( ) 167
rpc-Object-inqfype ( ) 169
rpc-Object-set-inq-fn ( ) 171
rpc-Object-setfype ( ) 172
rpc-protseq-vectorfree ( ) 174
rpc-server-inq-bindings ( )
175
rpc-server-inq-if ( ) 177
rpc-server-listen ( )
178
rpc-server-register-auth-info ( )
180
rpc-server-register-if ( ) 182
rpc-server-unregister-if () 185
rpc-server-use-all-protseqs ( ) 187
rpc-server-use-all-protseqs-if ( ) 189
rpc-server-use-protseq ( ) 191
rpc-server-use-protseq-ep ( ) 193
rpc-server-use-protseq-if ( ) 195
rpc-sm-allocate ( ) 197
rpc-sm-client-free ( ) 198
rpc-sm-destroy-client-context ( ) 199
rpc-sm-enable-allocate ( ) 200
rpc-sm-free ( ) 201
rpc-sm-getfhread-handle ( ) 202
rpc~sm~set~client~alloc~free() 203
rpc-sm-set-thread-handle ( ) 204
rpc~sm~swap~client~alloc~free() 205
rpc-string-binding-compose ( ) 206
rpc-string-binding-parse ( ) 207
rpc-stringfree() 209
uuid-compare() 211
uuid-create() 212
uuid-create-nil() 213
214
uuid-equal( )
uuidfrom-string ( ) 215
uuid-is-nil() 216
217
uuidfo-string ()
Interface Definition Language
Section 4 219
219
4.1 Notation
IDL Language Specification
4.2 220
IDL Lexemes
4.2.1 220
Keywords and Reserved Words
4.2.1.1 220
Identifiers 220
4.2.1.2
---------------------- Page: 5 ----------------------
0 ISO/IEC
ISOAEC 11578:1996(E)
220
IDL Punctuation
4.2.1.3
221
Alternate Representation of Braces
4.2.1.4
221
4.2.1.5 White Spate
221
4.2.2 Comments
221
4.2.3 Interface Definition Structure
221
4.2.4 Interface Header
222
4.2.4.1 The uuid Attribute
222
4.2.4.2 The version Attribute
222
The endpoint Attribute
4.2.4.3
222
The local Attribute
4.2.4.4
222
The pointer default Attribute
4.2.4.5
223
Interface Body
4.2.5
223
Import Declaration
4.2.6
223
Constant Declaration
4.2.7
223
Syntax
4.2.7.1
224
Semantics and Restrittions
4.2.7.2
224
Type Declarations and Tagged Declarations
4.2.8
225
Base Types
4.2.9
225
Syntax
4.2.9.1
225
Integer Types
4.2.9.2
226
The char Types
4.2.9.3
226
The boolean Type
4.2.9.4
226
The byte Type
4.2.9.5
226
The void Type
4.2.9.6
226
4.2.9.7 The handle-t Type
226
4.2.10 Constructed Types
226
4.2.11 Structures
226
4.2.12 Unions
226
4.2.12.1 Syntax
227
4.2.12.2 Semantics and Restrittions
228
4.2.13 Enumerated Types
228
4.2.14 Pipes
228
4.2.14.1 Syntax
228
4.2.14.2 Semantics and Restrittions
228
4.2.15 Arrays
228
4.2.15.1 Syntax
229
4.2.15.2 Semantics and Restrittions
229
4.2.15.3 Arrays of Arrays
229
4.2.16 Type Attributes
229
4.2.16.1 Syntax
229
4.2.16.2 Semantics and Restrittions
229
4.2.16.3 The transmit as Attribute
230
4.2.16.4 The handle Attribute
230
4.2.16.5 The string Attribute
230
4.2.16.6 The context handle Attribute
230
4.2.17 Field Attributes
231
4.2.17.1 Syntax
231
4.2.17.2 Semantics and Restrittions
231
4.2.17.3 The ignore Attribute
231
4.2.18 Field Attributes in Array Declarations
231
4.2.18.1 Conformant Arrays
232
4.2.18.2 Varying and Conformant Varying Arrays
233
4.2.18.3 Relationships Between Attributes
4.2.18.4 Negative Size and Length Specifications 233
4.2.19 Field Attributes in String Declarations 233
233
4.2.19.1 The first is, last is and iength is Attributes
233
4.2.19.2 The max is Attribute -
234
4.2.19.3 The size -is Attribute
234
4.2.20 Pointers -
vi
---------------------- Page: 6 ----------------------
ISO/IEC 11578:1996(E)
0 ISO/IEC
4.2.20.1 Syntax 234
4.2.20.2 Semantics and Restrittions 234
4.2.20.3 Attributes Applicable to Pointers 235
4.2.20.4 Varying Arrays of Pointers 235
4.2.20.5 Restrittions on Pointers 236
Pointers as Arrays 237
4.2.21
Pointers with the string Attribute 237
4.2.21.1
Possible Ambiguity Resolved 237
4.2.21.2
237
4.2.22 Operations
The idempotent Attribute 238
4.2.22.1
238
4.2.22.2 The broadcast Attribute
238
4.2.22.3 The maybe Attribute
238
4.2.23 Parameter Declarations
238
4.2.23.1 Syntax
238
4.2.23.2 Semantics and Restrittions
238
4.2.23.3 Directional Attributes
4.2.23.4 Aliasing in Parameter Lists 239
4.2.24 Predefined Types 239
4.2.25 The error-Status-t Type 239
4.2.26 International Character Types 239
4.2.27 Anonymous Types 240
4.3 The Attribute Configuration Source 241
4.3.1 Comments 241
4.3.2 Identifiers 241
4.3.3 Syntax 241
4.3.4 Include Declaration 242
4.3.5 Specifying Binding Handles 243
4.3.5.1 The explicit handle Attribute 243
4.3.5.2 The implicit-handle Attribute 243
4.3.5.3 The auto handle Attribute 243
The represent as Attribute 244
4.3.6
4.3.7 The code andiocode Attributes 244
4.3.8 The in line and out of line Attributes 244
Returrktatuses - - 245
4.3.9
The comm Status Attribute 245
4.3.9.1
The fault Status Attribute 245
4.3.9.2
Interactioi of the comm Status and fault Status Attributes 246
4.3.9.3 -
246
4.3.10 The heap Attribute -
246
4.3.11 The enable allocate Attribute
247
4.4 IDL Grammakynopsis
247
4.4.1 Grammar Synopsis
250
4.4.2 Alphabetic Listing of Productions
4.5 IDL Constructed Identifiers 253
254
4.6 IDL and ACS Reserved Words
Section 5 Stubs 255
5.1 The Application/Stub Interface 255
5.1.1 Parameters 255
5.1.1.1 Parameter Memory Management 255
5.1.1.2 Client-side Allocation 256
5.1.1.3 Server-side Allocation 256
5.1.1.4 Aliasing 257
5.1.2 Default Manager EPVs 257
5.1.3 Interface Handle 257
5.1.4 Pipes 257
5.1.4.1 Processing of in Pipes 259
5.1.4.2 Processing of out Pipes 260
5.1.4.3 Processing of in,out Pipes 261
5.1.5 IDL and ACS Type Attributes 261
5.1.5.1 The IDL transmit as Attribute 261
-
vii
---------------------- Page: 7 ----------------------
0 ISO/IEC
ISO/lEC 11578:1996(E)
262
The IDL handle Attribute
5.1.5.2
263
Interaction of IDL transmit as and IDL handle Attributes
5.1.5.3
263
The ACS represent as Attribute
5.1.5.4
264
Interaction of the ACS represent as Attribute and the
5.1.5.5 -
IDL handle Attribute
Interaction of the ACS represent as Attribute with the 264
5.1.5.6
-
IDL transmit as Attribute
264
5.1.6 Context Hand6 Rundown
266
5.2 Interoperability Requirements on Stubs
266
5.2.1 Operation Numbers
Error Handling During Floating-Point Unmarshalling 266
5.2.2
267
Section 6 Remote Procedure Call Model
268
6.1 CIientKerver Execution Model
268
6.1.1 RPC Interface and RPC Object
268
6.1.1.1 RPC Interfaces
268
6.1.1.2 RPC Objects
269
6.1.2 Interface Version Numbering
269
6.1.2.1 Rules for Changing Version Numbers
269
6.1.2.2 Definition of an Upwardly Compatible Change
269
6.1.2.3 Non-upwardly Compatible Changes
269
Remote Procedure Calls
6.1.3
270
6.1.4 Nested RPCs
270
6.1.5 Execution Semantics
271
Context Handles
6.1.6
271
6.1.7 Threads
273
Cancels
6.1.8
275
Binding, Addressing and Name Services
62
275
6:2.1 Binding
276
6.2.2 Endpoints and the Endpoint Mapper
276
6.2.2.1 Client Operation
277
6.2.2.2 Server Operation
277
NSI Interface
6.2.3
277
Common Declarations
6.2.3.1
278
Protocol Towers
6.2.3.2
279
The server name Object Attributes
6.2.3.3
281
The group Object Attributes
6.2.3.4
282
The Profile Object Attributes
6.2.3.5
283
Encoding
6.2.3.6
283
6.2.3.7 Name Service Class Values
284
Error Handling Model
63
285
Section 7 RPC Service Definition
285
7.1 Call Representation Data Structure
285
7.2 Service Primitives
Invoke 286
7.2.1
287
7.2.2 Result
288
7.2.3 Cancel
289
7.2.4 Error
290
7.2.5 Reject
291
Section 8 Statechart Specification Language Semantics
291
8.1 The Elements of Statecharts
293
82 . State Hierarchies
293
83 . Concurrency
294
84 Graphical Expressions
294
8'4 1 Default Entrances
294
81412 Conditional Connectors
294
8.4.3 Terminal Connectors
295
85 Semantics that Require Special Consideration
295
8:5.1 Implicit Exits and Entrances (Scope of Transitions)
295
8.5.2 Conflicting Transitions
---------------------- Page: 8 ----------------------
ISO/IEC 11578:1996(E)
0 lSO/IEC
8.5.3 Execution Steps and Time 295
Synchronisation and Rate Conditions 296
8.5.4
Summary of Language Elements 297
86
8:6.1 Event Expressions 297
Condition Expressions
8.6.2 298
Action Expressions
8.6.3 298
8.6.4 Data Item Expressions 300
Atomic Numeric Expressions
8.6.4.1 300
8.6.4.2 Compound Numeric Expressions 300
8.6.4.3 String Expressions 300
Section 9 RPC Protocol Definitions 301
91 . Conformance 301
92 RPC Stub to Run-time Protocol Machine Interactions 302
9 ’2 . 1 Client Protocol Machines 302
9'2 . . 2 Server Protocol Machines 303
93 Connection-oriented Protocol 304
9 ’3 . 1 CIient/Server 304
9'3 . 2 Association Group 304
9'3 3 Association 304
9:3:3.1 Association Management Policy 305
9.3.3.2 Primary and Secondary Endpoint Addresses 305
9.3.4 Call 305
9.3.5 Transport Service Requirements 305
9.4 Connection-oriented Protocol Machines 306
9.4.1 CO CLIENT ALLOC 306
9.4.2 CO-CLIENT-GROUP 306
9.4.3 CO-CLIENT- 306
9.4.3.1 ASSOCIATION 307
9.4.3.2 CONTROL 307
9.4.3.3 CANCEL 307
9.4.3.4 CALL 307
CO SERVER GROUP 307
9.4.4
CO-SERVER- 307
9.4.5
308
9.4.5.1 ASSOCIATION
308
9.4.5.2 CONTROL
308
9.4.5.3 CANCEL
9.4.5.4 WORKING 308
9.5 Connectionless Protocol 309
9.5.1 Clientkerver 309
9.5.2 Activity 309
9.5.3 Call 309
9.5.4 Maintaining Execution Context and Monitoring Liveness 309
9.5.5 Serial Numbers 310
9.5.6 Transport Service Requirements 310
96 Connectionless Protocol Machines 311
9'6 . 1 RPC Stub to Run Time Protocol Machine Interactions 311
9'6 2 CL CLIENT 311
9:6:2.1 CÖNTROL 311
9.6.2.2 AUTHENTICATION 311
9.6.2.3 CALLBACK 311
9.6.2.4 PING 311
9.6.2.5 CANCEL 311
9.6.2.6 DATA 312
9.6.3 CL SERVER 312
9.6.3.1 CÖNTROL 312
9.6.3.2 AUTHENTICATION 312
9.6.3.3 CANCEL 312
9.6.3.4 WORKING 312
9.7 Naming Conventions 313
iX
---------------------- Page: 9 ----------------------
ISO/IEC 11578:1996(E) 0 ISOAEC
Connectionless RPC Protocol Machines 315
Section 10
CL CLIENT Machine 316
10.1
cl CLIENT Activities 316
10.1.1
318
10.1.2 CL-CLIENT States
10.1.3 CL-CLIENT Events 323
10.1.4 CL-CLIENT Conditions 326
10.1.5 CL-CLIENT Actions 331
10.1.6 CL-CLIENT Data-ltems 335
10.2 CL SERVER Machine 344
10.2.1 C?L SERVER Activities 344
10.2.2 CL-SERVER States 348
10.2.3 CL-SERVER Events 354
10.2.4 CL-SERVER Actions 358
10.2.5 CL-SERVER Conditions 364
10.2.6 CL-SERVER Data-ltems 369
Section 11 Connktion-oriented RPC Protocol Machines 381
11.1 CO CLIENT Machine 382
11.1.1 CÖ CLIENT Activities 382
11.1.2 CO-CLIENT States 384
11.1.3 CO-CLIENT Events 390
11.1.4 CO-CL1 ENT Actions 396
11.1.5 CO-CLIENT Conditions 400
11.1.6 CO-CLIENT Data-Items 404
11.2 CO CLIENT ALLOC Machine 413
11.2.1 CÖ CLIENT ALLOC Activities 414
11.2.2 CO-CL1 ENT-ALLOC States 415
11.2.3 CO-CLIENT-ALLOC Events 417
11.2.4 CO-CLIENT-ALLOC Actions 420
CO-CLIENT-ALLOC Conditions 421
11.2.5
CO-CLIENT-ALLOC Data-ltems 422
11.2.6
CO CL~ENT GROUP Machine 423
11.3
424
11.3.1 CÖ CLIEN? GROUP States
11.3.2 425
CO-CLIENT-GROUP Events
11.3.3 CO-CLIENT-GROUP Data-ltems 426
427
11.4 CO SERVER Machine
11.4.1
CÖ SERVER Activities 428
11.4.2
CO-SERVER States 430
11.4.3 CO-SERVER Events 435
11.4.4
CO-SERVER Actions 441
11.4.5
CO-SERVER Conditions 446
11.4.6 CO-SERVER Data-ltems 450
11.5
CO SERVER GROUP Machine 459
11.5.1 CÖ SERVER GROUP States 460
11.5.2 CO-SERVER-GROUP Events 461
11.5.3 CO-SERVER-GROUP Actions 463
11.5.4 CO-SERVER-GROUP Data-ltems 463
Section 12 RPC PDU EncÖdings 465
12.1 Generic PDU Structure 465
12.2 Encoding Conventions 466
12.3 Alignment 466
12.4 Common Fields 467
12.4.1 PDU Types 467
12.4.2 Protocol Version Numbers 467
12.4.3 Data Representation Format Labels 467
12.4.4 Reject Status Codes 467
12.5 Connectionless RPC PDUs 468
12.5.1 Connectionless PDU Structure 468
12.5.2 Header Encoding 468
12.5.2.1 Protocol Version Number 469
X
---------------------- Page: 10 ----------------------
ISO/lEC 11578:1996(E)
0 ISOhEC
469
12.5.2.2 PDU Type
469
12.5.2.3 Flags Fields
470
12.5.2.4 Data Representation Format Label
470
12.5.2.5 Serial Number
470
12.5.2.6 Object Identifier
470
12.5.2.7 Interface Identifier
470
12.5.2.8 Activity Identifier
470
12.5.2.9 Server Boot Time
471
12.5.2.10 Interface Version
471
12.5.2.11 Sequence Number
471
12.5.2.12 Operation Number
471
12.5.2.13 Interface Hint
471
12.5.2.14 Activity Hint
471
12.5.2.15 PDU Body Length
471
12.5.2.16 Fragment Number
472
12.5.2.17 Authentication Protocol Identifier
472
12.5.3 Connectionless PDU Definitions
472
12.5.3.1 The ack PDU
472
12.5.3.2 The cancel ack PDU
473
The cancel>DU
12.5.3.3
473
The fack PDU
12.5.3.4
474
The fault PDU
12.5.3.5
474
The nocall PDU
12.5.3.6
475
12.5.3.7 The ping PDU
475
12.5.3.8 The reject PDU
475
12.5.3.9 The request PDU
475
12.5.3.10 The response PDU
475
12.5.3.11 The working PDU
476
12.6 Connection-oriented RPC PDUs
476
12.6.1 Connection-oriented PDU Structure
476
12.6.2 Fragmentation and Reassembly
477
12.6.3 Connection-oriented PDU Data Types
477
12.6.3.1 Declarations
479
12.6.3.2 Connection-Oriented Protocol Versions
480
12.6.3.3 The frag length Field
480
12.6.3.4 Context identifiers
480
12.6.3.5 The call id Field
480
12.6.3.6 The assoc group id Field
480
12.6.3.7 The alloc hint Field
480
12.6.3.8 Authentication Data
481
12.6.3.9 Optional Connect Reject and Disconnect Data
481
12.6.4 Connection-oriented PDU Definitions
481
12.6.4.1 The alter context PDU
483
12.6.4.2 The alter-context resp PDU
484
12.6.4.3 The bindPDU -
485
12.6.4.4 The bind ack PDU
486
12.6.4.5 The bind-nak PDU
487
12.6.4.6 The cancel PDU
488
12.6.4.7 The fault PDU
490
12.6.4.8 The orphaned PDU
491
12.6.4.9 The request PDU
493
The response PDU
12.6.4.10
494
The shutdown PDU
12.6.4.11
Section 13 Security 495
The Generic RPC Security Model 496
13.1
Generic Operation 496
13.1 .l
497
13.1.2 Generic Encodings
497
13.1.2.1 Protection Levels
497
13.1.2.2 Authentication Services
xi
---------------------- Page: 11 ----------------------
ISO/IEC 11578:1996(E)
0 lSO/IEC
13.1.2.3 Authorisation Services 498
13.1.3 Underlying Security Services Required 498
13.2 Security Services for Connection-oriented Protocol 499
13.2.1 Client Association State Machine 499
13.2.2 Server Association State Machine 499
13.2.3 Sequence Numbers 499
13.2.4 The auth context id Field 500
13.2.5 Integrity Protectioi 500
13.2.6 Connection-oriented Encodings 501
13.2.6.1 Common Authentication Verifier Encodings 501
13.2.6.2 Encoding for Per-PDU Services 501
13.2.6.3 Credentials Encoding
503
Security Services for Connectionless Protocol
13.3 505
Server Receive Processing
13.3.1 505
Client Receive Processing
13.3.2 505
Conversation Manager Encodings
13.3.3 505
Challenge Request Data Encoding
13.3.3.1 505
13.3.3.2 Response Data Encoding 506
Authentication Verifier Encodings
13.3.4 506
13.3.4.1 dce c authn level none 506
13.3.4.2 dce-c-authn-level-connect 506
13.3.4.3 dce-c-authn-level-cal1 506
13.3.4.4 dce-c-authn-IevelIpkt 507
13.3.4.5 dce~c~authnIleveI_integrity 507
13.3.4.6 dce-c-authn-level-privacy 507
Section 14 Transfer Syntax NDR 509
14.1 Data Representation Format Label 510
14.2 NDR Primitive Types 511
14.2.1 Representation Conventions 511
14.2.2 Alignment of Primitive Types 511
14.2.3 Booleans 512
14.2.4 Characters 512
14.2.5 Integers and Enumerated Types 512
14.2.5.1 Enumerated Types 513
14.2.6 Floating-Point Numbers 513
14.2.6.1 IEEE Format 514
14.2.6.2 VAX Format 515
14.2.6.3 Cray Format 516
14.2.6.4 IBM Format 517
14.2.7 Uninterpreted Octets 518
14.3 NDR Constructed Types 519
14.3.1 Representation Conventions
519
14.3.2 Arrays 519
14.3.2.1 Uni-dimensional Fixed Arrays
519
14.3.2.2 Uni-dimensional Conformant Arrays
520
14.3.2.3 Uni-dimensional Varying Arrays
520
14.3.2.4 Uni-dimensional Conformant-varying Arrays
521
14.3.2.5 Ordering of Elements in Multi-dimensional Arrays
521
14.3.2.6 Multi-dimensional Fixed Arrays
521
14.3.2.7 Multi-dimensional Conformant Arrays
521
14.3.2.8 Multi-dimensional Varying Arrays
522
14.3.2.9 Multi-dimensional Conformant and Varying Arrays
522
14.3.3 Strings
523
14.3.3.1 Varying Strings
523
14.3.3.2
Conformant and Varying Strings 524
14.3.4 Arrays of Strings
524
14.3.5 Structures
525
14.3.5.1 Alignment of Constructed Types
525
14.3.6 Structures Containing Arrays
526
xii
---------------------- Page: 12 ----------------------
ISO/IEC 11578:1996(E)
0 ISO/IEC
Structures Containing a Conformant Array 526
14.3.6.1
Structures Containing a Conformant and Varying Array 527
14.3.6.2
527
14.3.7 Unions
528
14.3.8 Pipes
528
14.3.9 Pointers
529
14.3.10 Top-level Pointers
529
14.3.10.1 Top-level Full Pointers
529
14.3.10.2 Top-level Reference Pointers
530
14.3.11 Embedded Pointers
530
14.3.11 .l Embedded Full Pointers
531
14.3.11.2 Embedded Reference Pointers
531
14.3.11.3 Algorithm for Deferral of Referents
532
14.4 NDR Input and Output Streams
533
A Universal Unique Identifier
Annex
534
Al Format
536
A:2 Algorithms for Creating a UUID
536
A.2.1 Glock Sequence
536
A.2.2 System Reboot
537
A.2.3 Glock Adjustment
537
A.2.4 Glock Overrun
537
A.2.5 UUID Generation
538
String Representation of UUIDs
A3
539
Comparing UUIDs
A ’. 4
541
Protocol Sequence Strings
Annex B
543
Name Syntax Constants
Annex C
Authentication, Authorisation and Protection-level 545
Annex D
Arguments
545
The authn svc Argument
Dl .
545
The authzsvc Argument
D2 .
546
The prote; level Argument
D3 .
547
D4 . The privs Argument
547
The server princ name Argument
05 .
547
D6 . The auth identityArgument
547
D7 . Key Func%ons
549
Annex E Reject Status Codes and Parameters
549
El . Reject Status Codes
551
E2 Possible Failures
551
E-2 . 1 comm-Status Parameter
551
E-2 . . 2 fault Status Parameter
553
F IDL to%-language Mappings
Annex
553
Fl . Data Type Bindings
556
F2 . Syntax Mappings
559
G Portable Character Set
Annex
561
H Endpoint Mapper Weil-known Ports
Annex
563
I Protocol Identifiers
Annex
565
DCE CDS Attribute Names
Annex J
567
K Architected and Default Values for Protocol
Annex
Machines
569
L Protocol Tower Encoding
Annex
570
Ll . Protocol Tower Contents
571
M The dce error inq text Manual Page
Annex
572
dce-errorinqtet ( ) -
573
IDL Data Type Declarations
Annex N
573
Basic Type Declarations
NI .
575
Status Codes
N2 .
577
RP@-specific Data Types
N3 .
579
Endpoint Mapper Interface Definition
Annex Q
583
Conversation Manager Interface Definition
Annex P
583
Server Interface
PI .
---------------------- Page: 13 ----------------------
0 ISO/IEC
ISO/IEC 11578:1996(E)
82 Client Interface 585
Remote Management Interface 587
Annex 6
Annex R Mapping of RPC Protocol to an OSI Infrastructure 589
Rl . Abstract Syntax name 589
. Transfer Syntax name 589
R2
Simple RPC application context 590
R3
. Application context name 590
R ’3 1
590
R ’32 . Component ASEs
Mapping to supporting Services 590
R ’. 3 . 3
List of Figures
20
2-l Information Required to Complete an RPC
24
2-2 Server Binding Relationships
27
2-3 Decisions in Looking Up an Endpoint
28
2-4 Decisions for Selecting a Manager
272
6-l Execution Phases of an RPC Thread
273
6-2 Concurrent Call Threads Executing in Shared Execution Context
316
IO-1 CL CLIENT Statechart
344
1 o-2 CL-SERVER Statechart
382
11-1 CÖ CLIENT Statechart
11-2 CO-CLIENT ALLOC Statechart 413
11-3 CO-CLIENT-GROUP Statechart 423
427
11-4 CO-SERVER Statechart
11-5 CO-SERVER GROUP Statechart 459
14-1 NDR Format Label 510
512
14-2 The Boolean Data Type
14-3 Character Data Type 512
14-4 NDR Integer Formats 513
14-5 IEEE Single-precision Floating-Point Format 514
14-6 IEEE Double-precision Floating-Point Format 515
14-7 VAX Single-precision (F) Floating-Point Format 515
14-8 VAX Double-precision (G) Floating-Point Format 516
14-9 Cray Floating-Point Formats 517
14-10 IBM Floating-Point Formats 517
14-11 Uninterpreted Octet Representation 518
14-12 Uni-dimensional Fixed Array Representation 520
14-13 Uni-dimensional Conformant Array Representation 520
14-14 Uni-dimensional Varying Array Representation 520
14-15 Uni-dimensional Conformant and Varying Array Representation 521
14-16 Multi-dimensional Fixed Array Representation 521
14-17 Multi-dimensional Conformant Array Representation 522
14-18 Multi-dimensional Varying Array Representation 522
14-19 Multi-dimensional Conformant and Varying Array Representation 523
14-20 Varying String Representation 523
14-21 Conformant and Varying String Representation 524
14-22 Multi-dimensional Conformant and Varying Array of Strings 525
14-23 Structure Representation 525
14-24 526
Representation of a Structure Containing a Conformant Array
14-25
Representation of a Structure Containing a Conformant and Varying Array 527
14-26
Union Representation 527
14-27
Pipe Representation 528
14-28
Top-level Full Pointer Representation 529
14-29
Top-level Reference Pointer Representation 530
14-30 Embedded Full Pointer Representations 531
14-31 Embedded Reference Pointer Representation 531
14-32 NDR Input Stream 532
14-33 NDR Output Stream 532
xiv
---------------------- Page: 14 ----------------------
lSO/lEC 11578:1996(E)
0 ISO/IEC
List of Tables
48
3-I Client and Server Binding Handles
169
3-2 Rules for Returning an Object ’s Type
225
4-l Integer Base Types
4-2 IDL Directional Attributes 238
Alphabetic Listing of Productions 250
4-3
Constructed Identifier Classes 253
4-4
Transmitted Type Routines 262
5-I
Transferred Type Routines 263
5-2
Floating Point Error Handling 266
5-3
Execution Semantics 270
6-l
278
6-2 Protocol Tower Structure
279
6-3 The server name Object Attributes
280
6-4 RPC-specific Protocol Tower Layers
280
6-5 Example Protocol Tower
281
6-6 Service Group Object Attributes
282
6-7 Configuration Profile Object Attributes
286
7-l Invoke Parameters
287
7-2 Result Parameters
288
7-3 Cancel Parameters
289
7-4 Error Parameters
290
7-5 Reject Parameters
297
8-l Events Related to Other Elements
297
8-2 Compound Events
298
8-3 Conditions Related to Other Elements
298
8-4 Compound Conditions
298
8-5 Actions Related to Other Elements
299
8-6 Compound Actions
465
12-1 RPC Protocol Data Units
12-2 The First Set of PDU Flags 469
469
12-3 Second Set of PDU Flags
472
12-4 Authentication Protocol Identifiers
14-1 NDR Format Label Values 510
14-2 NDR Floating Point Types 513
A-l UUID Format 534
A-2 UUID version Field 534
A-3 UUID variant Field 534
A-4 The 4 Msb of clock seq hi and reserved 537
A-5 Field Order and Type - - - 539
B-l RPC Protocol Sequence Strings 541
RPC Name Syntax Defined Constants 543
C-l
Casts for Authorisation Information 547
D-l
RPC Key Acquisition for Authentication Services 547
D-2
Reject Status Codes 549
E-l
Failures Returned in a comm Status Parameter 551
E-2
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.