idnits 2.17.00 (12 Aug 2021) /tmp/idnits660/draft-rfced-info-banan-esro-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2022-05-20) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 62 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Abstract section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 2 instances of too long lines in the document, the longest one being 2 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (January 1997) is 9256 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 1831 (ref. '7') (Obsoleted by RFC 5531) ** Obsolete normative reference: RFC 1832 (ref. '8') (Obsoleted by RFC 4506) Summary: 12 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet-Draft Expires: June 1997 Internet-Draft 3 Network Working Group M. Banan, Neda 4 M. Taylor, AWS 5 Category: Informational J. Cheng, AWS 6 January 1997 8 AT&T/Neda's Efficient Short Remote Operations (ESRO) 9 Protocol Specification Version 1.2 10 12 Status of this Memo: 14 This document is an Internet-Draft. Internet-Drafts are working 15 documents of the Internet Engineering Task Force (IETF), its areas, 16 and its working groups. Note that other groups may also distribute 17 working documents as Internet-Drafts. 19 Internet-Drafts are draft documents valid for a maximum of six 20 months and may be updated, replaced, or obsoleted by other documents at 21 any time. It is inappropriate to use Internet- Drafts as reference 22 material or to cite them other than as ``work in progress.'' 24 To learn the current status of any Internet-Draft, please check the 25 ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow 26 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 27 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 28 ftp.isi.edu (US West Coast). 30 Abstract: 32 This document specifies the service model, the notation and protocol 33 for Efficient Short Remote Operations (ESRO). The ESRO service is 34 similar to and is consistent with other Remote Procedure Call 35 services. The emphasis of ESRO service definition and the ESRO 36 protocol is on efficiency. ESRO is designed specifically with 37 wireless network (e.g., CDPD) usage in mind. 39 ESRO protocol provides reliable connectionless remote operation 40 services on top of UDP (or any other non-reliable connectionless 41 transport service) with minimum overhead. ESRO protocol supports 42 segmentation and reassembly, concatenation and separation as well as 43 multiplexing for service users (applications). 45 ESRO allows for trade-offs between efficiency and reliability by 46 specifying both 2-way hand-shake and 3-way hand-shake based protocols. 48 Encoding mechanisms for presentation of the parameters of remote 49 operations are outside the scope of this document. But, 50 identification (tagging) of the encoding mechanism in use (e.g., XDR, 51 BER, PER) is supported by ESRO protocol. 53 A variety of applications can use the ESRO protocol. Some early 54 applications using ESRO include efficient short message submission and 55 delivery, credit card authorization and white pages lookup. 57 Contents 59 1 INTRODUCTION 4 60 1.1 Relationship To Existing Remote Operation Services . 4 61 1.1.1 ESRO and RPC . . . . . . . . . 4 62 1.1.2 ESRO and ROSE . . . . . . . . . 4 63 1.2 Overview of ESROS . . . . . . . . . 5 64 1.3 The Remote Operation Model . . . . . . . 5 66 2 ESRO SERVICE DEFINITIONS 7 67 2.1 Acknowledged Result Service Mode . . . . . . 8 68 2.1.1 Performer side . . . . . . . . . 8 69 2.1.2 Invoker side . . . . . . . . . 10 70 2.2 Non-acknowledged Result . . . . . . . . 10 71 2.2.1 Performer side . . . . . . . . . 11 72 2.2.2 Invoker side . . . . . . . . . 11 73 2.3 Serialized Use of ESRO Services . . . . . . 11 74 2.3.1 Invoker . . . . . . . . . . 11 75 2.3.2 Performer . . . . . . . . . . 11 76 2.4 ESROS-INVOKE Service . . . . . . . . . 12 77 2.4.1 Operation-value . . . . . . . . 12 78 2.4.2 Performer-address . . . . . . . . 13 79 2.4.3 Invoker-address . . . . . . . . 13 80 2.4.4 Invoke-argument-encoding-type . . . . . 14 81 2.4.5 Invoke-argument . . . . . . . . 14 82 2.4.6 Invoke-ID . . . . . . . . . . 14 83 2.4.7 Failure-value . . . . . . . . . 14 84 2.5 ESROS-RESULT Service . . . . . . . . . 15 85 2.5.1 Result-argument-encoding-type . . . . . 15 86 2.5.2 Result-argument . . . . . . . . 16 87 2.5.3 Invoke-ID . . . . . . . . . . 16 88 2.5.4 Failure-value . . . . . . . . . 17 89 2.6 ESROS-ERROR Service . . . . . . . . . 17 90 2.6.1 Error-value . . . . . . . . . 17 91 2.6.2 Error-argument-encoding-type . . . . . 18 92 2.6.3 Error-argument . . . . . . . . . 18 93 2.6.4 Invoke-ID . . . . . . . . . . 19 94 2.6.5 Failure-value . . . . . . . . . 19 95 2.7 ESROS-FAILURE Service . . . . . . . . 19 96 2.7.1 Failure-value . . . . . . . . . 20 97 2.7.2 Invoke-ID . . . . . . . . . . 20 99 3 ESRO SERVICE NOTATION 20 100 3.1 ES-OPERATION Notation . . . . . . . . 21 101 3.2 Mapping of ESROS Notation . . . . . . . 21 102 3.2.1 Invocation of an Operation . . . . . . 21 103 3.2.2 Reply of an Operation . . . . . . . 21 105 4 REMOTE OPERATIONS PROTOCOL 23 106 4.1 Overview of the Protocol . . . . . . . . 23 107 4.1.1 Service Provision (Invoker User) . . . . 23 108 4.1.2 Service Provision (Performer User) . . . . 24 109 4.2 Protocol Procedures . . . . . . . . . 24 110 4.2.1 Service Access Point (SAP) Bind Procedure . . 24 111 4.2.2 Invoke Service Procedure . . . . . . 25 112 4.2.3 Invoke ID Assignment Procedure . . . . . 25 113 4.2.4 Functional Unit Selection Procedure . . . 26 114 4.3 Connectionless PDU Transfer For Small PDUs . . . 26 115 4.3.1 Overview . . . . . . . . . . 26 116 4.3.2 3-Way Handshake Functional Unit . . . . 27 117 4.3.3 2-Way Handshake Functional Unit . . . . 34 118 4.3.4 Segmentation and Reassembly . . . . . 39 119 4.4 Structure and Encoding of ESROS PDUs . . . . . 41 120 4.4.1 ESRO-INVOKE-PDU Format . . . . . . . 41 121 4.4.2 ESRO-RESULT-PDU Format . . . . . . . 43 122 4.4.3 ESRO-ERROR-PDU Format . . . . . . . 43 123 4.4.4 ESRO-ACK-PDU Format . . . . . . . 45 124 4.4.5 ESRO-FAILURE-PDU Format . . . . . . 45 125 4.4.6 ESRO-INVOKE-SEGMENTED-PDU Format . . . . 45 126 4.4.7 ESRO-RESULT-SEGMENTED-PDU Format . . . . 48 127 4.4.8 ESRO-ERROR-SEGMENTED-PDU Format . . . . 50 128 4.5 Concatenation and Separation . . . . . . . 50 129 4.5.1 Procedures . . . . . . . . . . 51 130 4.5.2 ESRO-CONCATENATED-PDU format . . . . . 52 131 4.6 ES Remote Operations Protocol Parameters . . . . 52 132 4.6.1 PDU size . . . . . . . . . . 52 133 4.6.2 Timers . . . . . . . . . . . 54 134 4.6.3 Use of lower layers . . . . . . . 54 136 5 ACKNOWLEDGMENTS 54 138 6 SECURITY CONSIDERATIONS 54 140 7 AUTHORS' ADDRESSES 55 141 1 INTRODUCTION 143 Efficient Short Remote Operations (ESRO) provide an efficent mechanism 144 for realization of Remote Procedure Call. This document specifies 145 many aspects of ESRO including: 147 o Service Model 149 o Service Primitives 151 o A Notation for user of the Service 153 o Confirmed Connectionless Protocol (based on a 3-way hand-shake) 155 o Unconfirmed Connectionless Protocol (based on a 2-way hand-shake) 157 1.1 Relationship To Existing Remote Operation Services 159 The overall model of ESRO is similar to and consistent with many 160 existing protocols. ESRO's distinguishing characteristic is 161 efficiency. 163 A brief comparison of ESRO and Remote Procedure Calls [7] and Remote 164 Operation Service Elements [1] follows. 166 1.1.1 ESRO and RPC 168 Remote Procedure Call (RPC) is specified in [7] (RFC-1831) and [6] 169 (RFC-1833). 171 RPC specifications define a remote procedure model that is essentially 172 same as ESRO. RPC's notation uses a syntax quite different from that 173 of ESRO. RPC can rely on a connection oriented or connectionless 174 transport mechanism. When using the connectionless mechanism, the 175 retransmission and reliability issues are considered beyond the scope 176 of the RPC specification. RPC is usually used in combination with 177 External Data Representation, XDR [8] (RFC-1832). 179 1.1.2 ESRO and ROSE 181 ROSE is specified in [1] and [2]. The service definition for ESRO 182 Service (ESROS) specified in this document is similar ROSE's Notation. 183 The Notation specified in this document for ESROS is similar ROSE's 184 Notation. The ESRO protocol specified in this document is very 185 different from the ROSE protocol [2]. 187 The operation model for ESRO Service (ESROS) is based on Remote 188 Operations Services Element (ROSE) in [1]. In ESROS model both 189 entities can invoke operations. 191 ESRO protocols can accomplish short operations with much less overhead 192 than ROSE. 194 1.2 Overview of ESROS 196 ESROS provides a service which supports interaction of applications 197 based on a remote operation model. A Remote Operation is invoked by 198 one entity; the other entity attempts to perform the Remote Operation 199 and then reports the outcome of the attempt. The ESROS protocol is 200 designed such that it could support many applications. 202 1.3 The Remote Operation Model 204 ESROS provides for performance of operations between two peer 205 sublayers. Users of the ESROS assume the roles of invoker and 206 performer which invoke and perform the operations respectively. An 207 ESROS-User can assume both roles and be an invoker for some operations 208 and be a performer for other operations. The performer is expected to 209 report either the result of the operation or an error. A result reply 210 is sent to the invoker if the operation is successful, and an error 211 reply is sent if the operation is unsuccessful. If the performer is 212 unreachable, the ESROS sends a failure indication primitive to the 213 invoker. 215 Operations are asynchronous and the invoker may continue to invoke 216 further operations without waiting for a reply. Synchronous or 217 serialized operations are also supported as a subset and a special 218 case of asynchronous service. By default the ESRO service provider on 219 both invoker and performer sides supports the asynchronous operation 220 invocation. However, if one side is to support only serialized 221 (synchronous) mode, it should be in agreement with the peer side. 223 ESROS has no authentication mechanism. Authentication is the 224 responsibility of the performer (which is outside of the scope of 225 ESROS) and the performer is not expected to honor the invoker when it 226 is not authenticated. 228 The ESROS operation model is represented in Figure 1. In this 229 example, the ESROS User on the left is the Invoker and the ESROS User 230 on the right is the Performer. The Provider is the entity providing a 231 service to the layer above it. 233 ESROS ------------------- ------------------- ESROS 234 User | Layer above ESROS | | Layer above ESROS | User 235 (Invoker) | | | | (Performer) 236 ------------------- ------------------- 237 ^ | | ^ 238 | | | | 239 v | | v 240 ESROS ------------------- ------------------- ESROS 241 Provider | ESROS | | ESROS | Provider 242 ------------------- ------------------- 243 | | 244 | | 245 | | 246 ------------------- ------------------- 247 | UDP | | UDP | 248 ------------------- ------------------- 249 \_ _/ 250 \_ _/ 251 \_ . _/ 252 \_ . .* . _/ 253 . * .* . 254 * . * 256 Figure 1: ES Remote Operation Model 258 Invoker Performer 259 ESRO SAP ESRO SAP 260 | | 261 | | 262 ESROS-INVOKE.req. | | ESROS-INVOKE.ind. 263 -------->-----------| |-------->--------- 264 | | 265 ESROS-INVOKE-P.conf.| | 266 --------<-----------| | 267 | | 268 | | 269 | | 270 ESROS-RESULT.ind. | | ESROS-RESULT.req. 271 --------<-----------| |--------<--------- 272 | | 273 | | ESROS-RESULT.conf. 274 | |-------->--------- 275 | | 276 | | 277 ESROS-ERROR.ind. | | ESROS-ERROR.req. 278 --------<-----------| |--------<--------- 279 | | 280 | | ESROS-ERROR.conf. 281 | |-------->--------- 282 | | 283 | | 284 | | 285 | | 286 ESROS-FAILURE.ind. | | ESROS-FAILURE.ind. 287 --------<-----------| |-------->--------- 288 | | 290 Figure 2: Time sequence diagram for ESRO services 292 2 ESRO SERVICE DEFINITIONS 294 ESRO service primitives are illustrated in Figure 2, Table 1 and 295 Table 2. The description of services and primitives comes in the 296 following sections. 298 ESROS-User accesses ESRO services through Efficient Short Remote 299 Operations Service Access Point (ESRO-SAP) as shown in Figure 2. 301 The RESULT.request, ERROR.request and FAILURE.indication service 302 primitives can be implemented in two different modes: 304 1. Acknowledged Result, and 306 2. Non-Acknowledged Result 307 _____________________________________________ 308 | ESRO Service |Type | 309 |________________|__________________________| 310 | ESROS-INVOKE |Non-confirmed | 311 | ESROS-INVOKE-P |Provider-initiated | 312 | ESROS-RESULT |Confirmed / Non-confirmed | 313 | ESROS-ERROR |Confirmed / Non-confirmed | 314 | ESROS-FAILURE |Provider initiated | 315 |________________|__________________________| 317 Table 1: ESRO Services 319 as described below. The difference between different modes is in 320 their reliability of service and efficiency. Reliability of service 321 is defined based on the understanding of invoker and performer about 322 the success or failure of the operation on the peer side. Table 3 and 323 Table 4 summarize understanding of performer about success or failure 324 on invoker side in different situations. In these tables the 325 FAILURE.indication refers to the primitive generated by protocol and 326 not the failure of local provider. 328 2.1 Acknowledged Result Service Mode 330 In this service mode, the result is acknowledged by invoker, but the 331 mechanism by which the acknowledgment is accomplished may not be 332 reliable. Table 3 summarizes the relationship between performer and 333 invoker in success and failure cases. 335 2.1.1 Performer side 337 In this type of service, the RESULT.confirm and ERROR.confirm 338 primitives on performer side are generated if the result/error is 339 acknowledged by invoker. 341 The FAILURE.indication on performer side is generated if result/error 342 is not acknowledged by invoker or if there is a local failure on 343 performer side. 345 >From the protocol point of view, the FAILURE.indication might be 346 because either the result/error PDU or the ack PDU is lost. The 347 outcome of this is that a FAILURE.indication is not robust as the 348 operation may have been successful from the invoker's perspective. 349 One method of compensating for this shortcoming is having the 350 performer verify the FAILURE.indication in a separate operation. 352 ____________________________________________________________ 353 | Primitive |Parameters | 354 |--------------------------+-------------------------------| 355 | |Operation-value | 356 | |Performer-address | 357 | ESROS-INVOKE.request |Invoke-argument-encoding-type | 358 | |Invoke-argument | 359 |--------------------------+-------------------------------| 360 | |Operation-value | 361 | |Invoker-address | 362 | ESROS-INVOKE.indication |Invoke-argument-encoding-type | 363 | |Invoke-argument | 364 | |Invoke-ID | 365 |--------------------------+-------------------------------| 366 | ESROS-INVOKE-P.confirm |Invoke-ID | 367 |==========================================================| 368 | | | 369 | |Result-argument-encoding-type | 370 | ESROS-RESULT.request |Result-argument | 371 | |Invoke-ID | 372 |--------------------------+-------------------------------| 373 | |Result-argument-encoding-type | 374 | ESROS-RESULT.indication |Result-argument | 375 | |Invoke-ID | 376 |--------------------------+-------------------------------| 377 | ESROS-RESULT.confirm |Invoke-ID | 378 |==========================================================| 379 | | | 380 | |Error-value | 381 | |Error-argument-encoding-type | 382 | ESROS-ERROR.request |Error-argument | 383 |--------------------------+-------------------------------| 384 | |Error-value | 385 | |Error-argument-encoding-type | 386 | ESROS-ERROR.indication |Error-argument | 387 | |Invoke-ID | 388 |--------------------------+-------------------------------| 389 | ESROS-ERROR.confirm |Invoke-ID | 390 |==========================================================| 391 | | | 392 | |Failure-value | 393 | ESROS-FAILURE.indication |Invoke-ID | 394 |__________________________|_______________________________| 396 Table 2: ESRO service primitives and associated parameters 398 ______________________________________________________________ 399 |Service Mode |Performer |Invoker | 400 |--------------------+-------------------+-------------------| 401 |Acknowledged Result |RESULT.confirm |RESULT.indication | 402 | |-------------------+-------------------| 403 | |FAILURE.indication |RESULT.indication | 404 | | (protocol) | | 405 | |-------------------+-------------------| 406 | |FAILURE.indication |FAILURE.indication | 407 | | (protocol) | (protocol) | 408 |____________________|___________________|___________________| 410 Table 3: Success and Failure in Acknowledged Result Mode 412 __________________________________________________________________ 413 |Service Mode |Performer |Invoker | 414 |------------------------+--------------------+-------------------| 415 |Non-acknowledged Result |RESULT.confirm |RESULT.indication | 416 | +--------------------+-------------------| 417 | |RESULT.confirm |FAILURE.indication | 418 | | | (protocol) | 419 | +--------------------+-------------------| 420 | |FAILURE.indication | | 421 | |(protocol) | | 422 | |does not |--- | 423 | |exist | | 424 |________________________|____________________|___________________| 426 Table 4: Success and Failure in Non-acknowledged Result Mode 428 2.1.2 Invoker side 430 When invoker receives failure indication, the performer has the 431 failure indication too. 433 This type of service can be implemented by protocols based on 3-Way 434 handshaking. 436 2.2 Non-acknowledged Result 438 In this service mode the result is not acknowledged. Table 4 439 summarizes the relationship between performer and invoker in success 440 and failure cases. 442 2.2.1 Performer side 444 In this type of service, the RESULT.confirm and ERROR.confirm 445 primitives on performer side are generated without receiving 446 additional information from the invoker peer. In other words, these 447 Primitives have no protocol-related meaning and convey no information, 448 other than end-of-operation. 450 The FAILURE.indication on performer side is not generated by protocol. 451 The only case that can generate FAILURE.indication on performer side 452 is local failure in service provider on performer side. 454 2.2.2 Invoker side 456 The FAILURE.indication on invoker side can be the resultof not 457 receiving result/error/failure from peer performer or it can result 458 from failure in local service provider. 460 This type of service can be implemented by protocols based on 2-Way 461 handshaking. 463 2.3 Serialized Use of ESRO Services 465 Although the ESRO Services are defined to support asynchronous 466 operation invocation in general, they can be used in the special case 467 of synchronous (serialized) mode too. The serialized use of ESRO 468 Services is implementation specific. However, one of the possible 469 scenarios is as follows: 471 2.3.1 Invoker 473 Invokes an operation after it receives either RESULT.indication, 474 ERROR.indication, or FAILURE.indication for the previous operation. 476 2.3.2 Performer 478 Considers an operation to be complete and accepts the next operation 479 after it receives RESULT.confirm, ERROR.confirm, or 480 FAILURE.indication. 482 Invoker Performer 483 ESROS AP ESROS AP 484 | | 485 | | 486 ESROS-INVOKE.req. | | ESROS-INVOKE.ind. 487 -------->-----------| |-------->--------- 488 | | 489 ESROS-INVOKE-P.conf.| | 490 --------<-----------| | 491 | | 492 ESROS-FAILURE.ind. | | 493 --------<-----------| | 494 | | 496 Figure 3: Time sequence diagram for ESROS-INVOKE service 498 2.4 ESROS-INVOKE Service 500 The ESROS-INVOKE service is used by an ESROS-User (the invoker) to 501 cause the invocation of an OPERATION to be performed by the other 502 ESROS-User (the performer). 504 ESROS Invoker User issues ESROS-INVOKE.request primitive to invoke an 505 operation. 507 ESROS-INVOKE.indication primitive provides the ESROS Performer User 508 with the parameters of the invoked operation. 510 ESRO Service Provider issues the ESROS-INVOKE-P.confirm primitive to 511 provide the ESROS Invoker User with Invoke-ID of the invoked 512 operation. 514 The related service structure consists of three service primitives as 515 illustrated in Figure 3 and Table 5. 517 2.4.1 Operation-value 519 This value is the identifier of the operation to be invoked. The 520 value is agreed upon between the ESROS Users. This parameter has to 521 be supplied by the invoker of the service. 523 ESROS Invoker User provides the Operation-value parameter for the 524 ESROS-INVOKE.request primitive. The Operation-value parameter of 525 ESROS-INVOKE.indication is provided to the ESROS Performer User. 527 _____________________________________________________________ 528 | Primitive |Parameters | 529 |__________________________|_________________________________| 530 | |Operation-value | 531 | |Performer-address | 532 | ESROS-INVOKE.request |Invoke-argument-encoding-type | 533 | |Invoke-argument | 534 |__________________________|_________________________________| 535 | |Operation-value | 536 | |Invoker-address | 537 | |Invoke-argument-encoding-type | 538 | ESROS-INVOKE.indication |Invoke-argument | 539 | |Invoke-ID | 540 |__________________________|_________________________________| 541 | ESROS-INVOKE-P.confirm |Invoke-ID | 542 | |Failure-value | 543 |__________________________|_________________________________| 544 | ESROS-FAILURE.indication |Invoke-ID | 545 |__________________________|_________________________________| 547 Table 5: ESROS-INVOKE service primitives and associated parameters 549 2.4.2 Performer-address 551 This parameter is the address of the ESROS Performer User which 552 consists of ESRO Service Access Point (SAP) Selector, Transport 553 Service Access Point (TSAP) Selector (e.g., port number), and Network 554 Service Access Point (NSAP) address (e.g., IP address). This 555 parameter has to be supplied by the invoker of the service. 557 ESROS Invoker User provides the Performer-address parameter for the 558 ESROS-INVOKE.request primitive. 560 2.4.3 Invoker-address 562 This parameter is the address of the ESROS Invoker User which consists 563 of ESRO Service Access Point (SAP) Selector, Transport Service Access 564 Point (TSAP) Selector (e.g. port number), and Network Service Access 565 Point (NSAP) address (e.g. IP address). 567 The Invoker-address parameter of ESROS-INVOKE.indication is provided 568 to the ESROS Performer User. 570 2.4.4 Invoke-argument-encoding-type 572 This parameter identifies the encoding type of the Invoke-argument 573 (see next subsection). The encoding type has to be agreed upon 574 between ESROS Users. This parameter has to be supplied by the invoker 575 of the service. 577 ESROS Invoker User provides the Invoke-argument-encoding-type 578 parameter for the ESROS-INVOKE.request primitive. The 579 Invoke-argument-encoding-type parameter of ESROS-INVOKE.indication is 580 provided to the ESROS Performer User. 582 2.4.5 Invoke-argument 584 This parameter is the argument of the invoked operation. The type has 585 to be agreed between the ESROS Users. This parameter has to be 586 supplied by the invoker of the service. Encoding type of the 587 Invoke-argument is specified through the Invoke-argument-encoding-type 588 parameter (see previous subsection). 590 ESROS Invoker User provides the Invoke-argument parameter for the 591 ESROS-INVOKE.request primitive. The Invoke-argument parameter of 592 ESROS-INVOKE.indication is provided to the ESROS Performer User. 594 2.4.6 Invoke-ID 596 This parameter identifies the invocation of an ESROS-INVOKE service 597 and is used to correlate this invocation with the corresponding 598 replies (ESROS-RESULT, ESROS-ERROR, and ESROS-FAILURE services.) This 599 parameter has to be supplied by the ESROS provider. 601 This parameter distinguishes several invocations of the service in 602 progress (asynchronous operations). The ESROS provider may begin to 603 reuse Invoke-ID values whenever it chooses, subject to the constraint 604 that it may not reuse an Invoke-ID value that was previously assigned 605 to an invocation of the service for which it expects, but has not yet 606 received a reply. In other words, the provider does not reuse a 607 previously used Invoke-ID unless the corresponding service is fully 608 completed. 610 2.4.7 Failure-value 612 This parameter identifies the failure that occurred during the 613 processing or transmission of any of the service primitives of ESROS. 615 Invoker Performer 616 ESROS AP ESROS AP 617 | | 618 | | 619 ESROS-RESULT.ind. | | ESROS-RESULT.req. 620 --------<-----------| |--------<--------- 621 | | 622 | | ESROS-RESULT.conf. 623 | |-------->--------- 624 | | 625 | | ESROS-FAILURE.ind. 626 | |-------->--------- 627 | | 629 Figure 4: Time sequence diagram for ESROS-RESULT service 631 This parameter has to be supplied by the ESROS provider (see also 632 Section 2.7). 634 2.5 ESROS-RESULT Service 636 The ESROS-RESULT service is used by an ESROS User to reply to a 637 previous ESROS-INVOKE.indication in the case of a successfully 638 performed operation. This service is either confirmed or 639 non-confirmed based on the service mode (see Section 2). 641 The related service structure consists of three service primitives as 642 illustrated in Figure 4 and Table 6. 644 2.5.1 Result-argument-encoding-type 646 This parameter identifies the encoding type of the Result-argument 647 (see next subsection). The encoding type has to be agreed upon 648 between the ESROS Users. This parameter has to be supplied by the 649 ESROS Performer User. 651 ESROS Performer User provides the Result-argument-encoding-type 652 parameter for the ESROS-RESULT.request primitive. The 653 Result-argument-encoding-type parameter of ESROS-RESULT.indication is 654 provided to the ESROS Invoker User. 656 ______________________________________________________________ 657 | Primitive |Parameters | 658 |__________________________|_________________________________| 659 | |Result-argument-encoding-type | 660 | |Result-argument | 661 | ESROS-RESULT.request |Invoke-ID | 662 |__________________________|_________________________________| 663 | | | 664 | |Result-argument-encoding-type | 665 | |Result-argument | 666 | ESROS-RESULT.indication |Invoke-ID | 667 |__________________________|_________________________________| 668 | | | 669 | ESROS-RESULT.confirm |Invoke-ID | 670 | |Failure-value | 671 | | | 672 |__________________________|_________________________________| 673 | ESROS-FAILURE.indication |Invoke-ID | 674 |__________________________|_________________________________| 676 Table 6: ESROS-RESULT service primitives and associated parameters 678 2.5.2 Result-argument 680 This parameter is the result of an invoked and successfully performed 681 operation. The type has to be agreed between the ESROS Users. This 682 parameter has to be supplied by the invoker of the service. Encoding 683 type of the Result-argument is specified through the 684 Result-argument-encoding-type parameter (see previous subsection). 686 ESROS Performer User provides the Result-argument parameter for the 687 ESROS-RESULT.request primitive. The Result-argument parameter of 688 ESROS-RESULT.indication is provided to the ESROS Invoker User. 690 2.5.3 Invoke-ID 692 This parameter identifies the corresponding invocation. This 693 Invoke-ID, which is originally generated by the ESROS provider at the 694 time of ESROS-INVOKE indication, is extracted from the Invoke ID that 695 has to be supplied by the ESROS performer User. The value is that of 696 the corresponding ESROS-INVOKE.indication primitive. 698 Invoker Performer 699 ESROS AP ESROS AP 700 | | 701 | | 702 ESROS-ERROR.ind. | | ESROS-ERROR.req. 703 --------<-----------| |--------<--------- 704 | | 705 | | ESROS-ERROR.conf. 706 | |-------->--------- 707 | | 708 | | ESROS-FAILURE.ind. 709 | |-------->--------- 711 Figure 5: Time sequence diagram for ESROS-ERROR service 713 2.5.4 Failure-value 715 This parameter identifies the failure that occurred during the 716 processing or transmission of any of the service primitives of ESROS. 717 This parameter has to be supplied by the ESROS provider (see also 718 Section 2.7). 720 2.6 ESROS-ERROR Service 722 The ESROS-ERROR service is used by an ESROS User to reply to a 723 previous ESROS-INVOKE.indication in the case of an unsuccessfully 724 performed operation. This service is either confirmed or 725 non-confirmed based on the service mode (see Section 2). 727 The related service structure consists of three service primitives as 728 illustrated in Figure 5 and Table 7. 730 2.6.1 Error-value 732 This parameter identifies the error in reply to a previous 733 ESROS-INVOKE.indication in the case of an unsuccessfully performed 734 operation. The value has to be agreed between the ESROS-Users. This 735 parameter has to be supplied by the ESROS Performer User. 737 ESROS Performer User provides the Error-argument parameter for the 738 ESROS-ERROR.request primitive. The Error-argument parameter of 739 ESROS-ERROR.indication is provided to the ESROS Invoker User. 741 ________________________________________________________ 742 | Primitive |Parameters | 743 |__________________________|____________________________| 744 | |Error-value | 745 | |Error-argument-encoding-type| 746 | ESROS-ERROR.request |Error-argument | 747 |__________________________|____________________________| 748 | | | 749 | |Error-value | 750 | |Error-argument-encoding-type| 751 | ESROS-ERROR.indication |Error-argument | 752 | |Invoke-ID | 753 | | | 754 |__________________________|____________________________| 755 | ESROS-ERROR.confirm |Invoke-ID | 756 | |Failure-value | 757 | | | 758 |__________________________|____________________________| 759 | ESROS-FAILURE.indication |Invoke-ID | 760 |__________________________|____________________________| 762 Table 7: ESROS-ERROR service primitives and associated parameters 764 2.6.2 Error-argument-encoding-type 766 This parameter identifies the encoding type of the Error-argument (see 767 next subsection). The encoding type has to be agreed upon between the 768 ESROS Users. This parameter has to be supplied by the ESROS Performer 769 User. 771 ESROS Performer User provides the Error-argument-encoding-type 772 parameter for the ESROS-ERROR.request primitive. The 773 Error-argument-encoding-type parameter of ESROS-ERROR.indication is 774 provided to the ESROS Invoker User. 776 2.6.3 Error-argument 778 This parameter provides additional information about the error in 779 reply to a previous ESROS-INVOKE.indication in the case of an 780 unsuccessfully performed operation. The type (if any) has to be 781 agreed between the ESROS users. This parameter has to be supplied by 782 the ESROS Performer User. Encoding type of the Error-argument is 783 specified through the Error-argument-encoding-type parameter (see 784 previous subsection). 786 Invoker Performer 787 ESROS AP ESROS AP 788 | | 789 | | 790 ESROS-FAILURE.ind. | | 791 --------<-----------| | 792 | | 793 | | ESROS-FAILURE.ind. 794 | |--------->--------- 795 | | 797 Figure 6: Time sequence diagram for ESROS-FAILURE service 799 ESROS Performer User provides the Error-argument parameter for the 800 ESROS-ERROR.request primitive. The Error-argument parameter of 801 ESROS-ERROR.indication is provided to the ESROS Invoker User. 803 2.6.4 Invoke-ID 805 This parameter identifies the corresponding invocation. This 806 Invoke-ID, which is originally generated by the ESROS provider at the 807 time of the ESROS-INVOKE.indication, is extracted from the Invoke ID 808 which has to be supplied by the ESROS performer User. The value is 809 that of the corresponding ESROS-INVOKE.indication primitive. 811 2.6.5 Failure-value 813 This parameter identifies the failure that occurred during the 814 processing or transmission of any of the service primitives of ESROS. 815 This parameter has to be supplied by the ESROS provider (see also 816 Section 2.7). 818 2.7 ESROS-FAILURE Service 820 The ESROS-FAILURE service is used by ESROS provider to indicate the 821 failure in providing an ESROS-INVOKE, ESROS-RESULT, or ESROS-ERROR 822 service. 824 The related service structure consists of one service primitive as 825 illustrated in Figure 6 and Table 8. 827 _____________________________________________ 828 | Primitive |Parameters | 829 |__________________________|_________________| 830 | |Failure-value | 831 | ESROS-FAILURE.indication |Invoke-ID | 832 |__________________________|_________________| 834 Table 8: ESROS-FAILURE service primitives and associated parameters 836 _________________________________________ 837 | Failure Value |Meaning | 838 |_______________|________________________| 839 | 0 |Transmission failure | 840 | 1 |Out of local resources | 841 | 2 |User not responding | 842 | 3 |Out of remote resources | 843 | 4 |Reassembly failure | 844 |_______________|________________________| 846 Table 9: Encoding of Failure-value 848 2.7.1 Failure-value 850 This parameter identifies the failure that occurred during the 851 processing or transmission of any of the service primitives of ESROS. 852 This parameter has to be supplied by the ESROS provider. 854 The values for encoding of Failure-value are presented in Table 9. 856 2.7.2 Invoke-ID 858 This parameter identifies the corresponding invocation. This 859 Invoke-ID, which is originally generated by ESROS provider at the time 860 of the ESROS-INVOKE.indication, is extracted from the Invoke ID which 861 has to be supplied by ESROS performer User. The value is that of the 862 corresponding ESROS-INVOKE.indication primitive. 864 3 ESRO SERVICE NOTATION 866 Users of ESRO services (invoker and performer) need to agree on a well 867 defined set of parameters which are enumerated below. 869 1. The operation's Argument data type. 871 2. The operation's Result data type. 873 3. The operation's Error data type. 875 4. The operation's value. A specific tag which uniquely identifies 876 the operation. 878 The invoker and the performer can specify these parameters using a 879 variety of mechanisms. The notation specified in this section is one 880 such mechanism. It is not the only machanism and ESRO protocol can be 881 used independent of this notation. 883 3.1 ES-OPERATION Notation 885 The Remote Operations and Operation Errors are specified in this 886 section. The notation is defined by means of the macro facility 887 defined in [3]. 889 The macros enabling the specification of operations and errors are 890 listed in Figure 7. 892 Note that this notation is very similar to the abstract operation 893 defined in [1]. The value form of ES-OPERATION is always an integer. 895 3.2 Mapping of ESROS Notation 897 3.2.1 Invocation of an Operation 899 An operation is mapped onto the ESRO Services. 901 The invocation of an operation is mapped on the ESRO-INVOKE service. 903 The value assigned to the operation is mapped on the Operation-value 904 parameter of that service. The value of the Named-Type in the 905 ARGUMENT clause of the OPERATION Macro is mapped on the Argument 906 parameter of that service. 908 3.2.2 Reply of an Operation 910 If an operation was successfully performed, the reply is mapped on the 911 ESRO-RESULT service. 913 The value of the Named-Type in the RESULT clause of the OPERATION 914 DEFINITIONS ::= 915 BEGIN 916 ES-OPERATION, ERROR; 917 -- macro definition for operations 918 ES-OPERATION MACRO ::= 919 BEGIN 920 TYPE NOTATION ::= Argument Result Errors 921 VALUE NOTATION ::= value (localValue INTEGER) 922 Argument ::= "ARGUMENT" NamedType | empty 923 Result ::= "RESULT" ResultType | empty 924 ResultType ::= NamedType | empty 925 Errors ::= "ERRORS" "{"ErrorNames"}" | empty 926 ErrorNames ::= ErrorList | empty 927 ErrorList ::= Error | ErrorList "," Error 928 Error ::= value (ERROR) | type 929 NamedType ::= identifier type | type 930 END 931 -- macro definition for operations errors 932 ERROR MACRO ::= 933 BEGIN 934 TYPE NOTATION ::= Parameter 935 VALUE NOTATION ::= value (localValue INTEGER) 936 Parameter ::= "PARAMETER" NamedType | empty 937 NamedType ::= identifier type | type 938 END 939 END 941 Figure 7: ES Remote Operation Notation 943 macro is mapped on the Result parameter of that service. 945 If an operation was not successfully performed, the reply is mapped on 946 the ESRO-ERROR service. 948 In this case one of the errors in the Identifier List of Error Names 949 in the ERROR clause of the OPERATION macro may be applied. The value 950 assigned to the applied error is mapped onto the Error parameter of 951 that service. The value of the Named-Type in the PARAMETER clause of 952 the ERROR macro of the applied error is mapped on the Error- parameter 953 of that service. 955 4 REMOTE OPERATIONS PROTOCOL 957 4.1 Overview of the Protocol 959 The ESROS protocol realizes the services defined in the section 960 entitled ESROS Service Definitions. Short operations are performed in 961 a highly efficient manner. The protocol operation is summarized below 962 and is described in detail in the following sections. 964 Two Functional Units are defined which realize the services with 2-Way 965 handshake and 3-Way handshake, called 2-Way Handshake Functional Unit 966 and 3-Way Handshake Functional Unit respectively. 968 The procedures specified in this section refer to Protocol Data Units 969 (PDUs) which are defined in Section 4.4. 971 4.1.1 Service Provision (Invoker User) 973 o An ESROS user binds to an ESRO Service Access Point (SAP) and 974 specifies whether 3-Way or 2-Way handshake Functional Unit is to 975 be associated with the SAP. 977 o An ESROS user initiates the transfer of a PDU using the INVOKE 978 service. 980 o On receipt of an ESROS-INVOKE.request service primitive from the 981 ESROS user: 983 -- The ESROS provider generates an Invoke ID, 985 -- Communicates the Invoke-ID to the invoker of the service 986 through the ESROS-INVOKE-P.confirm primitive, 988 4.1.2 Service Provision (Performer User) 990 o An ESROS user binds to an ESRO Service Access Point (SAP) and 991 specifies whether 3-Way or 2-Way handshake Functional Unit is to 992 be associated with the SAP. 994 o On receipt of an ESRO-INVOKE-PDU, the ESROS provider issues an 995 ESROS-INVOKE.indication to the ESROS performer user. 997 o On receipt of ESROS-RESULT.request or ESROS-ERROR.request from the 998 performer, the provider creates the ESRO-RESULT-PDU or 999 ESRO-ERROR-PDU. 1001 o In the case that the provider receives an ESRO-ACK-PDU for the 1002 transmitted ESRO-RESULT-PDU or ESRO-ERROR-PDU, if the 1003 corresponding SAP is associated with the 3-Way Handshake 1004 Functional Unit, it passes an ESROS-RESULT.confirm or 1005 ESROS-ERROR.confirm to the performer user. If the corresponding 1006 SAP is associated with the 2-Way handshake Functional Unit, the 1007 ESRO-ACK-PDU is dropped as an invalid PDU. 1009 o In the case that the provider is not able to deliver the 1010 ESRO-RESULT-PDU or ESRO-ERROR-PDU, it issues an 1011 ESROS-FAILURE.indication to the performer user. In the case that 1012 the performer's SAP is associated with the 3-Way handshake 1013 Functional Unit and provider doesn't receive the ESRO-ACK-PDU for 1014 a transmitted ESRO-RESULT-PDU or an ESRO-ERROR-PDU, it passes an 1015 ESROS- FAILURE.indication to the performer user. 1017 o In the case that the performer's SAP is associated with the 3-Way 1018 handshake Functional Unit and provider receives an ESRO-ACK-PDU 1019 for the operation, it passes an ESROS-RESULT.confirm or 1020 ESROS-ERROR.confirm. In the case that the performer's SAP is 1021 associated with a 2-Way handshake Functional Unit and provider 1022 doesn't receive duplicate ESROS-INVOKE-PDUs from the invoker, it 1023 passes an ESROS-RESULT.confirm or ESROS-ERROR.confirm. 1025 o On receipt of an ESRO-FAILURE-PDU, the ESROS provider issues an 1026 ESROS-FAILURE.indication to the ESROS performer user. 1028 4.2 Protocol Procedures 1030 4.2.1 Service Access Point (SAP) Bind Procedure 1032 To access the ESRO Services, an ESROS user binds to an ESRO Service 1033 Access Point and specifies the SAP to be associated with 3-Way 1034 handshake Functional Unit or 2-Way handshake Functional Unit. ESROS 1035 provider generates a SAP descriptor which is passed to the user. The 1036 handshaking for all Invoke.requests addressed to that SAP and all PDUs 1037 addressed to that SAP will be either 3-Way or 2-Way based on the 1038 Functional Unit associated with SAP and specified by user at SAP bind 1039 time. 1041 It is the responsibility of the ESROS peer users (invoker and 1042 performer) to address their operations to the appropriate SAP (3-Way 1043 or 2-Way) based on the agreement between users. 1045 4.2.2 Invoke Service Procedure 1047 An ESROS user initiates the transfer of a PDU using the INVOKE 1048 service. 1050 On receipt of an ESRO-INVOKE-PDU, the ESROS provider sends an 1051 ESROS-INVOKE.indication primitive to the ESROS performer user. 1053 4.2.3 Invoke ID Assignment Procedure 1055 On receipt of an ESROS-INVOKE.request primitive from the ESROS user, 1056 the ESROS provider generates two invoke identifiers: 1058 o Invoke-Reference-Number: Uniquely identifies the invocation 1059 between the two peers. This is a PDU field with a length of 8 1060 bits (see section 4.4). 1062 o Invoke-ID-Parameter: Uniquely identifies the invocation to the 1063 service user. This Invoke-ID-Parameter is a combination of the 1064 Invoke-Reference-Number described above and the invoker address, 1065 performer address, and the SAP Selector. 1067 The provider communicates the Invoke-ID-Parameter to the invoker of 1068 the INVOKE service through the ESROS-INVOKE-P.confirm primitive. 1070 The Invoke-Reference-Number distinguishes several invocations of the 1071 service in progress (asynchronous operations). It is also used as 1072 segment identifier when a Service Data Unit (SDU) is transferred using 1073 segmentation and reassembly. The ESROS provider may begin to reuse 1074 the Invoke-Reference-Number values whenever it chooses, subject to the 1075 constraint that it may not reuse an Invoke-Reference-Number value that 1076 was previously assigned to an invocation of the service for which it 1077 expects, but has not yet received, a reply. In other words the 1078 provider does not reuse a previously used Invoke-Reference-Number 1079 unless the corresponding service is fully completed. The same value 1080 of the Invoke-Reference-Number can be reused to identify the 1081 invocation between different peer entities. In that case, the 1082 combination of the peer entity's address and the 1083 Invoke-Reference-Number guarantees unique identification of each 1084 invocation. 1086 4.2.4 Functional Unit Selection Procedure 1088 When an ESRO Services user binds to an ESRO SAP, it associates its SAP 1089 descriptor to 3-Way Handshake Functional Unit or 2-Way Handshake 1090 Functional Unit. 1092 Based on the Functional Unit associated with SAP, provider selects the 1093 corresponding Functional Unit for all Invoke Requests or PDUs 1094 addressed to that SAP. 1096 4.3 Connectionless PDU Transfer For Small PDUs 1098 4.3.1 Overview 1100 PDUs sent by UDP use port ESRO_CL_PORT. PDUs carried by UDP are 1101 restricted to CLRO_SMALL_PDU_MAX_SIZE bytes (see 4.6.1) 1103 Each PDU is encapsulated in a single UDP datagram. 1105 For PDUs larger than CLRO_SMALL_PDU_MAX_SIZE but smaller than 1106 CLRO_SEGMENTED_PDU_MAX_SIZE bytes (see 4.6.1), segmentation and 1107 reassembly is used and each segment is transmitted in a UDP datagram. 1109 PDUs sent using UDP may be lost, and hence a retransmission strategy 1110 is defined. When a PDU is segmented, the retransmission strategy is 1111 not applied to individual segments (i.e., loss of one segment results 1112 in retransmission of the whole SDU). 1114 The optimal UDP retransmission policy will vary with the performance 1115 of the network and the needs of the transmitter, but the following are 1116 considered: 1118 The retransmission interval should be based on prior statistics if 1119 possible. Too aggressive retransmission can easily slow response time 1120 of the network at large. Depending on how well connected the invoker 1121 is to its performer, the minimum retransmission interval should be 1122 RETRANSMISSION_INTERVAL (see 4.6.2) seconds. 1124 Delivery of PDUs is asynchronous which means the ESROS does not wait 1125 for the result of a transmitted PDU and continues delivering the next 1126 PDUs. 1128 ______________________________________________________ 1129 |From Idle to: |Event | 1130 |___________________________________|_________________| 1131 |CL-Invoker Transition Diagram |ESRO-INVOKE.req | 1132 | 2-way Handshake (Connectionless) | | 1133 |___________________________________|_________________| 1134 |CL-Invoker Transition Diagram |ESRO-INVOKE.req | 1135 | 3-way Handshake (Connectionless) | | 1136 |___________________________________|_________________| 1137 |CL-Performer Transition Diagram |INVOKE-PDU | 1138 | 3-way Handshake (Connectionless) | | 1139 |___________________________________|_________________| 1140 |CL-Performer Transition Diagram |INVOKE-PDU | 1141 | 2-way Handshake (Connectionless) | | 1142 |___________________________________|_________________| 1144 Table 10: ESROS Finite State Machine 1146 This section describes the ESROS protocols in terms of state diagrams. 1147 The ESROS Finite State Machine is expressed as four separate 1148 transition diagrams. This is illustrated in Table 10. 1150 Details of each of the two transition diagrams for connectionless 1151 transmission and different handshakings are described in the following 1152 sections. The state diagrams show the state, the events, the actions 1153 taken and the resultant state.The ESROS state transition diagrams for 1154 connectionless data transmission are presented in Table 11, Table 12, 1155 Table 13, and Table 14. 1157 Transitions are identified by numbers on the state diagrams. The 1158 corresponding actions are listed next to each table. 1160 4.3.2 3-Way Handshake Functional Unit 1162 This unit implements the Acknowledged Result model of ESRO Services. 1163 3-Way handshaking is used in this unit. 1165 The RESULT.confirm and ERROR.confirm primitives on performer are 1166 generated when ESRO-ACK-PDU is received. 1168 The FAILURE.indication on performer side is resulted from remote or 1169 local failures. Not receiving ESRO-ACK-PDU or local failure can 1170 generate FAILURE.indication primitive. 1172 The FAILURE.indication on invoker side is generated if a local failure 1173 happens or a ESRO-FAILURE-PDU is received. 1175 _______________________________________________________________ 1176 | State |STA01 |STA02 |STA03 |STA04 | 1177 | |CL Invoker|Invoke PDU |ACK-PDU |Invoker | 1178 |Event |Start |Send |Send |RefNu Wait| 1179 |-----------------+----------+-----------+---------+----------+ 1180 |U: INVOKE.request|(1) STA02 | | | | 1181 |-----------------+----------+-----------+---------+----------+ 1182 |T: INVOKE PDU | |(2) STA02 | | | 1183 | Retransmit | | | | | 1184 |-----------------+----------+-----------+---------+----------+ 1185 |T: Last Timer | |(3) STA04 | | | 1186 |-----------------+----------+-----------+---------+----------+ 1187 |P: Result-PDU | | | |(9) STA04 | 1188 |-----------------+----------+-----------+---------+----------+ 1189 |P: Failure-PDU | |(5) STA04 | | | 1190 |-----------------+----------+-----------+---------+----------+ 1191 |P: ACK-PDU | |(6) STA02 | | | 1192 | (Hold On) | | | | | 1193 |-----------------+----------+-----------+---------+----------+ 1194 |P: Duplicate | | |(7) STA03| | 1195 | Result-PDU | | | | | 1196 |-----------------+----------+-----------+---------+----------+ 1197 |T: RefNu Timer | | | |(8) STA01 | 1198 |-----------------+----------+-----------+---------+----------+ 1199 |P: Result-PDU | |(4) STA03 | | | 1200 |-----------------+----------+-----------+---------+----------+ 1201 |T: Inactivity | | |(10) | | 1202 | Timer | | |STA04 | | 1203 |_________________|__________|___________|_________|__________| 1205 Table 11: ESROS State Transition Diagram-Connectionless Transmission, 1206 3-Way HS. P = Protocol, T = Timer, U = User, I = Internal. 1208 The transmission of INVOKE, RESULT, and ERROR SDUs can be in a single 1209 PDU (when it fits in one UDP) or a sequence of segment PDUs. 1211 3-Way Handshake Connectionless Transmission: Invoker 1213 For each transition number in the state diagram Table 11, the 1214 corresponding actions are listed below: 1216 1. INVOKE.request: 1218 o Assign Invoke-ID. 1220 o Issue ESROS-INVOKE-P.confirm primitive. 1222 o Assign invoke reference number. 1224 o Send operation in one ESRO-INVOKE-PDU or in segmented INVOKE- 1225 PDUs depending on the size of the operation. 1227 o Initialize retransmission counter. 1229 o Initialize retransmission timer. 1231 2. Invoke PDU Retransmit: 1233 o Retransmit operation in one ESRO-INVOKE-PDU or segmented PDUs 1234 while number of retransmissions is less than 1235 MAX_RETRANSMISSIONS. 1237 o Increment the retransmission counter. When MAX_RETRANSMISSIONS 1238 reached, start LAST_TIMER, otherwise initialize retransmission 1239 timer. 1241 3. Last Timer: 1243 o Issue ESROS-FAILURE.indication primitive. 1245 o Initialize reference number timer. 1247 4. ESRO-RESULT-PDU or ESRO-ERROR-PDU (or reassembled ESRO- 1248 RESULT-SEGMENTED-PDU or ESRO-ERROR-SEGMENTED-PDU when the PDU is 1249 received in segmented format): 1251 o Send ESRO-ACK-PDU. 1253 o Issue ESROS-RESULT.indication or ESROS-ERROR.indication 1254 primitive. 1256 o Initialize inactivity timer. 1258 5. ESRO-FAILURE-PDU: 1260 o Issue ESROS-FAILURE.indication primitive with User not 1261 Responding failure cause. 1263 o Initialize reference number timer. 1265 6. ESRO-ACK-PDU (Hold on): 1267 o For future use (no action). 1269 7. Duplicate ESRO-RESULT-PDU or ESRO-ERROR-PDU: 1271 o Initialize inactivity timer (Ignore PDU). 1273 o Send ESRO-ACK-PDU. 1275 8. Invoke reference number timer: 1277 o Release the invoke reference number. 1279 9. ESRO-RESULT-PDU or ESRO-ERROR-PDU: 1281 o Reset Invoke reference number timer. 1283 10. Inactivity timer: 1285 o Initialize reference number timer. 1287 On receipt of an ESROS-INVOKE.request, ESROS provider generates an 1288 Invoke- Reference-Number and an Invoke-ID (see Section 4.2.3). The 1289 provider issues an ESROS-INVOKE-P.confirm primitive and passes the 1290 Invoke-ID to the invoker. 1292 The ESROS provider initiates the timer for the Invoke-ID and transmits 1293 the PDU. Based on the size of SDU, if segmentation is required, the 1294 SDU is segmented and transmitted in a sequence of segmented PDUs. If 1295 the ESRO-RESULT-PDU or ESRO-ERROR-PDU associated with the invoke ID is 1296 not received within the INVOKE_PDU_RETRANSMISSION_INTERVAL (see 4.6.2) 1297 period, the SDU is retransmitted (in one PDU or segmented and 1298 transmitted in a sequence of segment PDUs). The retransmission is 1299 repeated for a maximum of MAX_RETRANSMISSIONS unless an 1300 ESRO-RESULT-PDU or ESRO-ERROR-PDU is received. 1302 If the ESRO-RESULT-PDU or ESRO-ERROR-PDU is received in a segmented 1303 format, the reassembly process reassembles the sequence of segment 1304 PDUs. 1306 In the case that the Hold-on ESRO-ACK-PDU is received from the 1307 performer, the provider stops retransmitting the ESRO-INVOKE-PDU and 1308 waits for the ESRO- RESULT-PDU or ESRO-ERROR-PDU for a period equal to 1309 the multiplication of INVOKE_PDU_RETRANSMISSION_INTERVAL (see 4.6.2) 1310 and MAX_RETRANSMISSIONS (see 4.6.2, for future use). 1312 In the case that the ESRO-INVOKE-PDU is sent MAX_RETRANSMISSIONS 1313 (see 4.6.2) times and no ESRO-RESULT-PDU or ESRO-ERROR-PDU is 1314 received, the ESROS provider sends an ESROS-FAILURE.indication 1315 primitive, with the Invoke-ID of the failed PDU and the Failure-value 1316 as parameters, to the invoker. 1318 When an ESRO-RESULT-PDU or ESRO-ERROR-PDU is received (whether in one 1319 PDU or reassembled from a sequence of segmented PDUs), the provider 1320 issues an ESROS-RESULT.indication or ESROS-ERROR.indication to the 1321 invoker user, sends an ESRO-ACK-PDU and initializes the inactivity 1322 timer. In the case that duplicate ESRO- RESULT-PDU or ESRO-ERROR-PDU 1323 ____________________________________________________________________ 1324 | State |STA01 |STA02 |STA03 |STA04 | 1325 | |CL Performer |Invoke PDU |ACK-PDU |Performer | 1326 |Event |Start |Received |Wait |RefNu Wait | 1327 |-----------------+-------------+-----------+----------+-----------| 1328 |P: Invoke-PDU |(1) STA02 | | | | 1329 |-----------------+-------------+-----------+----------+-----------| 1330 |U: RESULT.req. | |(2) STA03 | | | 1331 |-----------------+-------------+-----------+----------+-----------| 1332 |P: ACK-PDU | | |(3) STA04 | | 1333 |-----------------+-------------+-----------+----------+-----------| 1334 |P: Invoke-PDU | |(4) STA02 |(6) STA03 |(7) STA04 | 1335 | Duplicate | | | | | 1336 |-----------------+-------------+-----------+----------+-----------| 1337 |T: Result-PDU | | |(5) STA03 | | 1338 | Retransmission | | | | | 1339 | Timer | | | | | 1340 |-----------------+-------------+-----------+----------+-----------| 1341 |I: Failure | |(8) STA01 | | | 1342 |-----------------+-------------+-----------+----------+-----------| 1343 |T: Last Time | | |(9) STA04 | | 1344 |-----------------+-------------+-----------+----------+-----------| 1345 |T: RefNu Timer | | | |(10) STA01 | 1346 |-----------------+-------------+-----------+----------+-----------| 1347 |P: ACK-PDU | | | |(11) STA04 | 1348 | Duplicate | | | | | 1349 |-----------------+-------------+-----------+----------+-----------| 1350 |U/P: Hold On ACK | |(12) STA02 | | | 1351 ____________________________________________________________________ 1353 Table 12: ESROS State Transition Diagram-Connectionless Transmission, 1354 3-Way HS: Performer. P = Protocol, T = Timer, U = User, I = Internal. 1356 are received, they are ignored, the inactivity timer is reset, and an 1357 ESRO-ACK-PDU is retransmitted. 1359 When no duplicate ESRO-RESULT-PDU or ESRO-ERROR-PDU is received for a 1360 period equal to INACTIVITY_TIME (see 4.6.2), or in the case of 1361 ESRO-INVOKE- PDU retransmission time-out, or in the case of internal 1362 failure, the provider initializes the reference number timer. After 1363 REFERENCE_NUMBER_TIME (see 4.6.2), the reference number is released. 1365 3-Way Handshake Connectionless Transmission: Performer 1367 For each transition number in the state diagram above, the 1368 corresponding actions are listed below: 1370 1. ESRO-INVOKE-PDU (as a single PDU or a sequence of segment PDUs): 1372 o Issue ESROS-INVOKE.indication primitive. 1374 2. ESROS-RESULT.request or ESROS-ERROR.request: 1376 o Add invoke reference number to the active list. 1378 o Transmit ESRO-RESULT-PDU or ESRO-ERROR-PDU (in a single PDU or 1379 a sequence of segment PDUs). 1381 o Set ESRO-RESULT-PDU or ESRO-ERROR-PDU retransmission timer. 1383 3. ESRO-ACK-PDU: 1385 o Initialize invoke reference number timer. 1387 o Issue ESROS-RESULT.confirm or ESROS-ERROR.confirm. 1389 4. Duplicate ESRO-INVOKE-PDU: 1391 o No action (ignore the duplicate ESRO-INVOKE-PDU). 1393 5. ESRO-RESULT-PDU or ESRO-ERROR-PDU retransmission timer: 1395 o Retransmit ESRO-RESULT-PDU or ESRO-ERROR-PDU (in a single PDU 1396 or in a segmented format) while number of retransmissions is 1397 less than MAX_RETRANSMISSIONS. 1399 o Increment the transmission counter. 1401 6. Duplicate ESRO-INVOKE-PDU: 1403 o Retransmit ESRO-RESULT-PDU or ESRO-ERROR-PDU. 1405 o Reset ESRO-RESULT-PDU or ESRO-ERROR-PDU retransmission timer. 1407 o Re-initialize the number of retransmissions counter to 1. 1409 7. Duplicate ESRO-INVOKE-PDU: 1411 o Reset invoke reference number timer. 1413 8. Internal failure: 1415 o Send ESRO-FAILURE-PDU. 1417 o Release the invoke reference number. 1419 9. Last time: 1421 o Issue ESROS-FAILURE.indication. 1423 o Initialize invoke reference number timer. 1425 10. Invoke reference number timer: 1427 o Release the invoke reference number. 1429 11. Duplicate ESRO-ACK-PDU: 1431 o Reset invoke reference number timer. 1433 12. Hold-on ACK request: 1435 o Send hold-on ESRO-ACK-PDU (for future use). 1437 On receipt of an ESRO-INVOKE-PDU, the ESROS provider issues an 1438 ESROS-INVOKE.indication to the ESROS performer user. The provider 1439 ignores the duplicate ESRO-INVOKE-PDUs. 1441 In the case of internal failure or no response from performer user, 1442 the provider sends an ESRO-FAILURE-PDU and releases the invoke 1443 reference number. 1445 On receipt of a Hold-on request from the performer user, or based on 1446 other information, provider sends a Hold-on ESRO-ACK-PDU (future use). 1448 On receipt of either ESROS-RESULT.request or ESROS-ERROR.request from 1449 the ESROS performer user, the ESROS provider initiates the 1450 retransmission timer for the ESRO-RESULT-PDU or ESRO-ERROR-PDU and 1451 transmits the ESRO-RESULT-PDU or ESRO-ERROR-PDU in a single PDU or in 1452 a sequence of segment PDUs. If the ESRO-ACK-PDU associated with the 1453 Invoke-ID is not received within 1454 RESULT_ERROR_PDU_RETRANSMISSION_INTERVAL (see 4.6.2), the PDU is 1455 retransmitted. 1457 When provider is waiting for ESRO-ACK-PDU and a duplicate 1458 ESRO-INVOKE-PDU arrives, ESRO-RESULT-PDU or ESRO-ERROR-PDU is 1459 retransmitted (in a single PDU or in a sequence of segment PDUs), the 1460 retransmission timer is reset and counter for number of 1461 retransmissions is re-initialized to 1. 1463 If after MAX_TRANSMISSIONS (see 4.6.2) no ESRO-ACK-PDU is received, 1464 the provider issues an ESROS-FAILURE.indication primitive, with the 1465 Invoke-ID of the failed PDU and the Failure-value as parameters, to 1466 the performer user. Then the provider sets the reference number timer 1467 and releases the reference number after REFERENCE_NUMBER_TIME 1468 (see 4.6.2). 1470 On receipt of ESRO-ACK-PDU associated with the Invoke-ID before 1471 MAX_TRANSMISSIONS (see 4.6.2), the provider issues a 1472 ESROS-RESULT.confirm or ESROS-ERROR.confirm primitive and sets the 1473 reference number timer and releases the reference number after 1474 REFERENCE_NUMBER_TIME (see 4.6.2). 1476 The duplicate ESRO-ACK-PDU and duplicate ESRO-INVOKE-PDUs are ignored 1477 while provider waits for the reference number timer to expire. 1479 4.3.3 2-Way Handshake Functional Unit 1481 This Functional Unit implements the Not-Acknowledged Result model of 1482 ESRO Services. 2-Way handshaking is used in this unit. 1484 The RESULT.confirm and ERROR.confirm primitives on performer side are 1485 generated based on time-out, i.e. when no duplicate ESRO-INVOKE-PDU 1486 is received in a specified period of time, provider issues 1487 RESULT.confirm or ERROR.confirm primitive. 1489 The FAILURE.indication on performer side is generated as a result of 1490 local failure or after time-out of retransmission of ESRO-RESULT-PDU 1491 or ESRO-ERROR-PDU. 1493 The FAILURE.indication on invoker side is generated if a local failure 1494 happens or a ESRO-FAILURE-PDU is received. 1496 The transmission of INVOKE, RESULT, and ERROR PDUs can be in a single 1497 PDU (when it fits in one PDU) or a sequence of segmented PDUs. 1499 2-Way Handshake Connectionless Transmission: Invoker 1501 For each transition number in the state diagram above, the 1502 corresponding actions are listed below: 1504 1. INVOKE.request: 1506 o Assign Invoke-ID. 1508 o Issue ESROS-INVOKE-P.confirm primitive. 1510 o Assign invoke reference number. 1512 o Send ESRO-INVOKE-PDU in a single PDU or as a sequence of 1513 segment PDUs. 1515 o Initialize retransmission counter. 1517 ______________________________________________________________ 1518 | State |STA01 |STA02 |STA03 | 1519 | |2-Way HS |Invoke PDU |Invoker | 1520 | |CL Invoker |Send |RefNu Wait| 1521 |Event |Start | | | 1522 |-------------------------+-----------+-----------+----------| 1523 |U: INVOKE.req. |(1) STA02 | | | 1524 |-------------------------+-----------+-----------+----------| 1525 |T: Invoke PDU Retransmit | |(2) STA02 | | 1526 |-------------------------+-----------+-----------+----------| 1527 |T: Last Timer | |(3) STA03 | | 1528 |-------------------------+-----------+-----------+----------| 1529 |P: Result/Error PDU | |(4) STA03 | | 1530 |-------------------------+-----------+-----------+----------| 1531 |P: Failure-PDU | |(5) STA03 | | 1532 |-------------------------+-----------+-----------+----------| 1533 |P: Duplicate Result PDU | | |(6) STA03 | 1534 |-------------------------+-----------+-----------+----------| 1535 |T: RefNu Timer | | |(7) STA01 | 1536 |_________________________|___________|___________|__________| 1538 Table 13: ESROS State Transition Diagram-Connectionless Transmission, 1539 2-Way HS: Invoker p = Protocol, T = Timer, U = User, I = Internal. 1541 2. Invoke PDU Retransmit: 1543 o Retransmit ESRO-INVOKE-PDU (in a single PDU or in a sequence of 1544 segment PDUs) while number of retransmissions is less than 1545 MAX_RETRANSMISSIONS. 1547 o Increment the transmission counter. When MAX_RETRANSMISSIONS 1548 reached, start LAST_TIMER. 1550 3. Last Timer: 1552 o Issue ESROS-FAILURE.indication primitive. 1554 o Initialize reference number timer. 1556 4. ESRO-RESULT-PDU or ESRO-ERROR-PDU: 1558 o Issue ESROS-RESULT.indication or ESROS-ERROR.indication 1559 primitive. 1561 o Initialize reference number timer. 1563 5. ESRO-FAILURE-PDU: 1565 o Issue ESROS-FAILURE.indication primitive with User not 1566 Responding failure cause. 1568 o Initialize reference number timer. 1570 6. Duplicate ESRO-RESULT-PDU or ESRO-ERROR-PDU: 1572 o Reset Invoke reference number timer. 1574 7. Invoke reference number timer: 1576 o Release the invoke reference number. 1578 On receipt of an ESROS-INVOKE.request, ESROS provider generates an 1579 Invoke- Reference-Number and an Invoke-ID (see 4.2.3). The provider 1580 issues an ESROS-INVOKE-P.confirm primitive and passes the Invoke-ID to 1581 the invoker. 1583 The ESROS provider initiates the timer for the Invoke-ID and transmits 1584 the PDU. The PDU is transmitted as a single PDU or a sequence of 1585 segment PDUs. If the ESRO- RESULT-PDU or ESRO-ERROR-PDU associated 1586 with the invoke ID is not received within the 1587 INVOKE_PDU_RETRANSMISSION_INTERVAL (see 4.6.2) period, the PDU is 1588 retransmitted. The retransmission is repeated for a maximum of 1589 MAX_RETRANSMISSIONS unless an ESRO-RESULT-PDU or ESRO-ERROR-PDU is 1590 received. 1592 In the case that the ESRO-INVOKE-PDU is sent MAX_RETRANSMISSIONS 1593 (see 4.6.2) times and no ESRO-RESULT-PDU or ESRO-ERROR-PDU is 1594 received, the ESROS provider sends an ESROS-FAILURE.indication 1595 primitive, with the Invoke-ID of the failed PDU and the Failure-value 1596 as parameters, to the invoker. If ESRO- FAILURE-PDU is received, the 1597 ESROS provider sends and ESROS-FAILURE.indication primitive, with the 1598 Invoke-Id of the failed PDU and the Failure- value as parameters to 1599 the invoker. 1601 When an ESRO-RESULT-PDU or ESRO-ERROR-PDU is received, the provider 1602 issues an ESROS-RESULT.indication or ESROS-ERROR.indication to the 1603 invoker user, and initializes the Reference-Number timer. In the case 1604 that duplicate ESRO-RESULT-PDU or ESRO-ERROR-PDU are received, they 1605 are ignored. In the case of internal failure, the provider 1606 initializes the reference number timer. After REFERENCE_NUMBER_TIME 1607 (see 4.6.2), the reference number is released. 1609 2-Way Handshake Connectionless Transmission: Performer 1610 ___________________________________________________________________ 1611 | State |STA01 |STA02 |STA03 |STA04 | 1612 | |2-Way HS CL|Invoke PDU|Result PDU|Performer | 1613 |Event |Performer |Received |Retransmit|RefNu Wait | 1614 | |Start | | | | 1615 |-------------------+-----------+----------+----------+-----------| 1616 |P: Invoke-PDU |(1) STA02 | | | | 1617 |-------------------+-----------+----------+----------+-----------| 1618 |P: Invoke-PDU | |(2) STA02 |(5) STA03 |(7) STA04 | 1619 | Duplicate | | | | | 1620 |-------------------+-----------+----------+----------+-----------| 1621 |U: RESULT.req. | |(3) STA03 | | | 1622 |-------------------+-----------+----------+----------+-----------| 1623 |I: Failure | |(4) STA01 | | | 1624 |-------------------+-----------+----------+----------+-----------| 1625 |T: Inactivity Timer| | |(6) STA04 | | 1626 |-------------------+-----------+----------+----------+-----------| 1627 |T: RefNu Timer | | | |(8) STA01 | 1628 ___________________________________________________________________ 1630 Table 14: ESROS State Transition Diagram-Connectionless Transmission, 1631 2-Way HS: Performer. P = Protocol, T = Timer, U = User, I = Internal. 1633 For each transition number in the state diagram above, the 1634 corresponding actions are listed below: 1636 1. ESRO-INVOKE-PDU (received in a single PDU or reassembled from a 1637 sequence of segment PDUs): 1639 o Issue ESROS-INVOKE.indication primitive. 1641 2. Duplicate ESRO-INVOKE-PDU: 1643 o No action (ignore the duplicate ESRO-INVOKE-PDU). 1645 3. ESROS-RESULT.request or ESROS-ERROR.request: 1647 o Add invoke reference number to the active list. 1649 o Transmit ESRO-RESULT-PDU or ESRO-ERROR-PDU (as a single PDU or 1650 as a sequence of segment PDUs.) 1652 o Set Inactivity timer. 1654 4. Internal failure: 1656 o Send ESRO-FAILURE-PDU. 1658 o Release the invoke reference number. 1660 5. Duplicate ESRO-INVOKE-PDU: 1662 o Retransmit ESRO-RESULT-PDU or ESRO-ERROR-PDU (as a single PDU 1663 or as a sequence of segment PDUs.) 1665 o Set Inactivity timer. 1667 6. Inactivity Timer: 1669 o Issue ESROS-RESULT.confirm. 1671 o Initialize invoke reference number timer. 1673 7. Duplicate ESRO-INVOKE-PDU: 1675 o Reset invoke reference number timer. 1677 8. Invoke reference number timer: 1679 o Release the invoke reference number. 1681 On receipt of an ESRO-INVOKE-PDU (as a single PDU or reassembled from 1682 a sequence of segment PDUs), the ESROS provider issues an 1683 ESROS-INVOKE.indication to the ESROS performer user. The provider 1684 ignores the duplicate ESRO-INVOKE-PDUs. 1686 In the case of internal failure or no response from performer user, 1687 the provider sends an ESRO-FAILURE-PDU and releases the invoke 1688 reference number. 1690 On receipt of either ESROS-RESULT.request or ESROS-ERROR.request from 1691 the ESROS performer user, the ESROS provider initiates the inactivity 1692 timer for the ESRO- RESULT-PDU or ESRO-ERROR-PDU and transmits the 1693 ESRO-RESULT-PDU or ESRO-ERROR-PDU (in a single PDU or as a sequence of 1694 segment PDUs.) If a duplicate ESRO-INVOKE-PDU associated with the 1695 Invoke-ID is received within INACTIVITY_TIME interval (see 4.6.2), the 1696 PDU is retransmitted. 1698 If no duplicate ESRO-INVOKE-PDU is received within the INACTIVITY_TIME 1699 interval (see 4.6.2), provider issues a ESROS-RESULT.confirm or 1700 ESROS-ERROR.confirm primitive and sets the reference number timer and 1701 releases the reference number after REFERENCE_NUMBER_TIME (see 4.6.2). 1703 The duplicate ESRO-INVOKE-PDUs are ignored while provider waits for 1704 the reference number timer to expire. 1706 4.3.4 Segmentation and Reassembly 1708 Small ESRO Service Data Units (ESRO-SDUs) can benefit from the 1709 efficiencies of connectionless feature of ESROS (See Section 4.3.1). 1711 When an ESRO-SDU is too large to fit in a single connectionless PDU it 1712 is segmented and reassembled. There might be similar mechanisms in 1713 the upper layers with different levels of efficiency. When in 1714 addition to the ESROS segmentation/reassembly, the upper layers are 1715 capable of segmentation/reassembly services, then the ESROS user can 1716 decide whether to use ESROS segmenting/reassembly mechanism depending 1717 on the factors such as reliability of the underlying network. 1719 In the case of segmentation/reassembly in ESROS layer, transmission of 1720 operation segments is not acknowledged. This results in an efficient 1721 transmission over a reliable underlying network. However failure of 1722 one segment results in retransmission of all segments. 1724 When acknowledged segments are desired, the ESROS user should 1725 implement it using the acknowledged result service of ESROS. 1727 The ESROS segmentation/reassembly is accommodated by: 1729 o Use of two additional PDU codes for segmented INVOKE PDU. 1731 o Use of one byte segmentation information, which contains 1732 First/Other flag and segment number. 1734 o Use of unused bits of RESULT and ERROR PDUs to identify a 1735 segmented RESULT or ERROR PDU. 1737 Segmentation and Assembly applies to INVOKE, RESULT, and ERROR SDUs. 1739 The sender of the message is responsible for segmenting the ESRO-SDU 1740 into segments that fit in CL PDUs. The segmented ESRO-SDU is sent in 1741 a sequence of segments each carrying a segment of the SDU. The 1742 Invoke-Reference-Number is a unique identifier that is used as the 1743 segment identifier which relates all segments of an ESRO-SDU. In 1744 addition to this identifier, the first segment specifies the total 1745 number of segments (number-of-segments). Other segments have a 1746 segment sequence number (segment- number). The receiver is 1747 responsible for sequencing (based on segment-number) and reassembling 1748 the entire ESRO-SDU. 1750 Segmenting/Reassembling over the Connectionless ESRO Service 1752 The sender maps the original ESRO-SDU into an ordered sequence of 1753 segments. Several ESRO-SDU segment sequences can exist over the same 1754 ESROS association, distinguished by their Invoke-Reference-Number 1755 (used as segment identifier.) 1757 All segments in the sequence have the same Invoke-Reference-Number 1758 assigned by sender. 1760 The first segment specifies the total number of segments. All 1761 segments in the sequence except the first one shall be sequentially 1762 numbered, starting at 1 (first segment has an implicit segment number 1763 of 0). 1765 Each segment is transmitted in one UDP PDU and is sent by sender. All 1766 segments of a segmented ESRO-SDU are identified by the same 1767 Invoke-Reference-Number. For a given operation, the receiver should 1768 not impose any restrictions on the order of arrival of segments. 1770 There is no requirement that any segment content be of 1771 CLRO_SMALL_PDU_MAX_SIZE for connectionless transmission; however, no 1772 more than CLRO_MAX_PDU_SEGMENTS segments can be derived from a single 1773 ESRO-SDU. 1775 The receiver reassembles a sequence of segments into a single 1776 ESRO-SDU. An ESRO-SDU shall not be further processed unless all 1777 segments of the ESRO-SDU are received. Failure to receive the SDU 1778 shall be determined by the following event: 1780 o Expiration of Reassembly Timer (see Section 4.3.4). 1782 In the event of the above mentioned failure, the receiver shall 1783 discard a partially assembled sequence. 1785 The reassembly is done as described below: 1787 o In the case of segmented Invoke ESRO-SDU, the encoding type and 1788 operation-value fields are carried in the first segment used for 1789 the whole operation. These three fields are ignored in the 1790 segments other than the first one. 1792 o In the case of segmented Result ESRO-SDU, the encoding type of the 1793 first segment is used for all segments. The encoding type field 1794 of segments other than the first one are ignored. 1796 o In the case of segmented Error ESRO-SDU, the encoding type and 1797 Error-value field of the first segment are used for all segments. 1798 These two fields are ignored in segments other than the first one. 1800 Sender sends all segments of a segmented ESRO-SDU one after the other. 1801 There is no mechanism for retransmission of a single segment. In the 1802 case that the sender receives a failure indication for a segment, it 1803 means that receiver has failed in reassembly process, and the sender 1804 retransmits the whole ESRO-SDU (all segments). 1806 Reassembly Timer 1808 The Reassembly Timer is a local timer maintained by the receiver of 1809 the segments that assists in performing the reassembly function. This 1810 timer determines how long a receiver waits to receive all segments of 1811 a segment sequence. 1813 The Reassembly Timer shall be started on receipt of a segment with 1814 different sequence identifier (Invoke-Reference-Number). On receipt 1815 of all segments composing a sequence, the corresponding reassembly 1816 timer shall be stopped. 1818 The value of the Reassembly Timer is defined based on the network 1819 characteristics and the number of segments. This requires that the 1820 transmission of all segments of a single ESRO-SDU must be completed 1821 within this time limit. 1823 4.4 Structure and Encoding of ESROS PDUs 1825 Five PDU types are used in the ESRO protocol which are described in 1826 the following sections. PDU type coding is presented in Table 15. 1828 The octets are numbered in increasing order, starting from 1. The 1829 bits of an octet are numbered from 1 to 8, where 1 is the low-order 1830 bit. 1832 4.4.1 ESRO-INVOKE-PDU Format 1834 Bit string format of the ESRO-INVOKE-PDU is represented in Table 16 1835 and Table 17. 1837 _______________________________________ 1838 | PDU Name |PDU Type Code | 1839 _______________________________________ 1840 | ESRO-INVOKE |0 | 1841 | ESRO-RESULT |1 | 1842 | ESRO-ERROR |2 | 1843 | ESRO-ACK |3 | 1844 | ESRO-FAILURE |4 | 1845 | ESRO-SEGMENTED-INVOKE |5 | 1846 _______________________________________ 1848 Table 15: PDU Coding 1850 __________________________________________________________ 1851 |Bit |8 | 7 |6 |5 |4 |3 |2 |1 | 1852 |----------+--+------------------------+--+--+--+--+--+--| 1853 |Octet 1 | Performer SAP |0 |0 |0 |0 | 1854 |----------+--+------------------------+--+--+--+--+--+--| 1855 |Octet 2 | Invoke Reference Number | 1856 |----------+--+------------------------+--+--+--+--+--+--| 1857 |Octet 3 |Parameter Encoding Type |Operation Value | 1858 |----------+--+------------------------+--+--+--+--+--+--| 1859 |Octet 4 | | 1860 | ... | Operation Information | 1861 |Octet N | | 1862 |__________|_____________________________________________| 1864 Table 16: ESRO-INVOKE-PDU format. ESRO-INVOKE-PDU Type Code = 0. 1865 Note: Invoker SAP = Performer SAP - 1. 1867 _______________________ 1868 | Value | Meaning | 1869 |_______|______________| 1870 | 0 | BER [5] | 1871 |_______|______________| 1872 | 1 | PER [4] | 1873 |_______|______________| 1874 | 2 | XDR [8] | 1875 |_______|______________| 1876 | 3 | Reserved | 1877 |_______|______________| 1879 Table 17: Parameter Encoding Type for ESRO-INVOKE-PDU 1881 --------------------------------------------------------- 1882 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 1883 |--------|-----------|-----|-----|-----|-----|-----|-----| 1884 | | Parameter | | | | | | | 1885 | | Encoding | | | | | | | 1886 |Octet 1 | Type | 0 | 0 | 0 | 0 | 0 | 1 | 1887 | | | | | | | | | 1888 | | | | | | | | | 1889 | | | | | | | | | 1890 |--------|-----------------------------------------------| 1891 |Octet 2 | Invoke Reference Number | 1892 |--------|-----------------------------------------------| 1893 |Octet 3 | | 1894 |... | Result-parameter | 1895 |Octet N | | 1896 --------------------------------------------------------- 1897 ESRO-RESULT-PDU Type Code = 1. 1899 Table 18: ESRO-RESULT-PDU format 1900 _______________________ 1901 | Value | Meaning | 1902 |_______|______________| 1903 | 0 | Basic | 1904 |_______|______________| 1905 | 1 | Packed | 1906 |_______|______________| 1907 | 2 | XDR | 1908 |_______|______________| 1909 | 3 | Reserved | 1910 |_______|______________| 1912 Table 19: Parameter Encoding Type for ESRO-RESULT-PDU 1914 4.4.2 ESRO-RESULT-PDU Format 1916 Bit string format of the ESRO-RESULT-PDU is represented in Table 18 1917 and Table 19. 1919 4.4.3 ESRO-ERROR-PDU Format 1921 Bit string format of the ESRO-ERROR-PDU is represented in Table 20 and 1922 Table 21. 1924 --------------------------------------------------------- 1925 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 1926 |--------|-----------|-----|-----|-----|-----|-----|-----| 1927 | | Parameter | | | | | | | 1928 | | Encoding | | | | | | | 1929 |Octet 1 | Type | 0 | 0 | 0 | 0 | 1 | 0 | 1930 | | | | | | | | | 1931 | | | | | | | | | 1932 | | | | | | | | | 1933 |--------|-----------------------------------------------| 1934 |Octet 2 | Invoke Reference Number | 1935 |--------|-----------------------------------------------| 1936 |Octet 3 | Error Value | 1937 |--------|-----------------------------------------------| 1938 |Octet 4 | | 1939 |... | Error parameter | 1940 |Octet N | | 1941 --------------------------------------------------------- 1942 ESRO-ERROR-PDU Type Code = 2. 1944 Table 20: ESRO-ERROR-PDU format 1946 _______________________ 1948 | Value | Meaning | 1949 |_______|______________| 1950 | 0 | Basic | 1951 |_______|______________| 1952 | 1 | Packed | 1953 |_______|______________| 1954 | 2 | XDR | 1955 |_______|______________| 1956 | 3 | Reserved | 1957 |_______|______________| 1959 Table 21: Parameter Encoding Type for ESRO-ERROR-PDU 1961 --------------------------------------------------------- 1962 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 1963 |--------|-----------------------|-----|-----|-----|-----| 1964 | | ESRO-ACK-PDU Type | | | | | 1965 |Octet 1 | | 0 | 0 | 1 | 1 | 1966 |--------|-----------------------------------------------| 1967 |Octet 2 | Invoke Reference Number | 1968 --------------------------------------------------------- 1969 ESRO-ACK-PDU Type Code = 3. 1971 Table 22: Fields of ESRO-ACK-PDU 1973 _____________________________________________ 1974 | ESRO-ACK-PDU Type | Meaning | 1975 |___________________|________________________| 1976 | 0 |Complete 3-way handshake| 1977 |___________________|________________________| 1978 | 1 | Hold on | 1979 |___________________|________________________| 1981 Table 23: Encoding of ESRO-ACK-PDU Type 1983 4.4.4 ESRO-ACK-PDU Format 1985 Bit string format of the ESRO-ACK-PDU is represented in Table 22 and 1986 Table 23. 1988 4.4.5 ESRO-FAILURE-PDU Format 1990 Bit string format of the ESROS-FAILURE-PDU is represented in Table 24 1991 and Table 25. 1993 The first nibble of the first octet of ESRO-FAILURE-PDU shall be set 1994 to zero. 1996 4.4.6 ESRO-INVOKE-SEGMENTED-PDU Format 1998 Bit string format of the ESRO-INVOKE-SEGMENTED-PDU is represented in 1999 Table 25 and Table 26. 2001 Note: Invoker SAP = Performer SAP - 1. 2003 --------------------------------------------------------- 2004 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 2005 |--------|-----------------------|-----|-----|-----|-----| 2006 |Octet 1 | Not used | 0 | 1 | 0 | 0 | 2007 |--------|-----------------------------------------------| 2008 |Octet 2 | Invoke Reference Number | 2009 |--------|-----------------------------------------------| 2010 |Octet 3 | Failure Value | 2011 ---------------------------------------------------------- 2012 ESRO-FAILURE-PDU Type Code = 4. 2014 Table 24: ESRO-FAILURE-PDU format 2016 ________________________________________ 2017 | Failure Value | Meaning | 2018 |_______________|_______________________| 2019 | 0 |Transmission failure | 2020 |_______________|_______________________| 2021 | 1 |Out of local resources | 2022 |_______________|_______________________| 2023 | 2 | User not responding | 2024 |_______________|_______________________| 2025 | 3 |Out of remote resources| 2026 |_______________|_______________________| 2028 Table 25: Encoding of failure value 2030 ----------------------------------------------------------------- 2031 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 2032 |--------|---------------------------|------|------|------|------| 2033 |Octet 1 | Performer Service | 0 | 1 | 0 | 1 | 2034 | | Access Point Selector | | | | | 2035 |--------|-------------------------------------------------------| 2036 |Octet 2 | Invoke Reference Number | 2037 |--------|-------------------------------------------------------| 2038 | | Parameter | | 2039 | | Encoding | | 2040 |Octet 3 | Type | Operation Value | 2041 | | | | 2042 | | | | 2043 | | | | 2044 |--------|-------------------------------------------------------| 2045 |Octet 4 |First/| | 2046 | |Other | Segment Number | 2047 |--------|-------------------------------------------------------| 2048 |Octet 5 | | 2049 |... | Operation Information | 2050 |Octet N | | 2051 ----------------------------------------------------------------| 2052 ESRO-INVOKE-PDU Type Code = 5. 2054 Table 26: ESRO-INVOKE-SEGMENTED-PDU format 2055 _______________________ 2056 | Value | Meaning | 2057 |_______|______________| 2058 | 0 | Basic | 2059 |_______|______________| 2060 | 1 | Packed | 2061 |_______|______________| 2062 | 2 | XDR | 2063 |_______|______________| 2064 | 3 | Reserved | 2065 |_______|______________| 2067 Table 27: Parameter Encoding Type for ESRO-INVOKE-SEGMENTED-PDU 2069 o For the first segment, the first/other bit is set to one, and the 2070 segment number field contains the total number of segments. 2072 o For segments other than the first one, the first/other bit is set 2073 to zero, and the segment number field has the sequence number of 2074 the segment. 2076 The values of the three fields Performer-SAP, Parameter-Encoding-Type, 2077 and Operation-Value of the first segment are used by performer and 2078 these fields are ignored in the segments other than the first one. 2080 4.4.7 ESRO-RESULT-SEGMENTED-PDU Format 2082 Bit string format of the ESRO-RESULT-SEGMENTED-PDU is represented in 2083 Table 28 and Table 29. 2085 o For the first segment, the first/other bit is set to one, and the 2086 segment number field contains the total number of segments. 2088 o For segments other than the first one, the first/other bit is set 2089 to zero, and the segment number field has the sequence number of 2090 the segment. 2092 The values of the Parameter-Encoding-Type field of the first segment 2093 is used by invoker and this field is ignored in the segments other 2094 than the first one. 2096 ----------------------------------------------------------------- 2097 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 2098 |--------|-------------|------|------|------|------|------|------| 2099 | | Parameter | | | | | | | 2100 | | Encoding | | | | | | | 2101 |Octet 1 | Type | 0 | 1 | 0 | 0 | 0 | 1 | 2102 | | | | | | | | | 2103 | | | | | | | | | 2104 | | | | | | | | | 2105 |--------|-------------------------------------------------------| 2106 |Octet 2 | Invoke Reference Number | 2107 |--------|-------------------------------------------------------| 2108 |Octet 4 |First/| | 2109 | |Other | Segment Number | 2110 |--------|-------------------------------------------------------| 2111 |Octet 5 | | 2112 |... | Result Parameter | 2113 |Octet N | | 2114 ----------------------------------------------------------------| 2115 ESRO-RESULT-SEGMENTED-PDU Type Code = 1. 2117 Table 28: ESRO-RESULT-SEGMENTED-PDU format 2119 _______________________ 2120 | Value | Meaning | 2121 |_______|______________| 2122 | 0 | Basic | 2123 |_______|______________| 2124 | 1 | Packed | 2125 |_______|______________| 2126 | 2 | XDR | 2127 |_______|______________| 2128 | 3 | Reserved | 2129 |_______|______________| 2131 Table 29: Parameter Encoding Type for ESRO-RESULT-SEGMENTED-PDU 2132 ----------------------------------------------------------------- 2133 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 2134 |--------|-------------|------|------|------|------|------|------| 2135 | | Parameter | | | | | | | 2136 | | Encoding | | | | | | | 2137 |Octet 1 | Type | 0 | 1 | 0 | 0 | 1 | 0 | 2138 | | | | | | | | | 2139 | | | | | | | | | 2140 | | | | | | | | | 2141 |--------|-------------------------------------------------------| 2142 |Octet 2 | Invoke Reference Number | 2143 |--------|-------------------------------------------------------| 2144 |Octet 3 |First/| | 2145 | |Other | Segment Number | 2146 |--------|-------------------------------------------------------| 2147 |Octet 4 | Error Value | 2148 |--------|-------------------------------------------------------| 2149 |Octet 5 | | 2150 |... | Error Parameter | 2151 |Octet N | | 2152 ----------------------------------------------------------------| 2153 ESRO-ERROR-SEGMENTED-PDU Type Code = 2. 2155 Table 30: ESRO-ERROR-SEGMENTED-PDU 2157 4.4.8 ESRO-ERROR-SEGMENTED-PDU Format 2159 Bit string format of the ESRO-ERROR-PDU is represented in Table 30 and 2160 Table 31. 2162 o For the first segment, the first/other bit is set to one, and the 2163 segment number field contains the total number of segments. 2165 o For segments other than the first one, the first/other bit is set 2166 to zero, and the segment number field has the sequence number of 2167 the segment. 2169 The values of the Parameter-Encoding-Type field of the first segment 2170 is used by invoker and this field is ignored in the segments other 2171 than the first one. 2173 4.5 Concatenation and Separation 2175 The procedure for concatenation and separation conveys multiple 2176 ESRO-PDUs in one TSDU. This is accomplished by ESRO-CONCATENATED-PDU. 2178 _______________________ 2179 | Value | Meaning | 2180 |_______|______________| 2181 | 0 | Basic | 2182 |_______|______________| 2183 | 1 | Packed | 2184 |_______|______________| 2185 | 2 | XDR | 2186 |_______|______________| 2187 | 3 | Reserved | 2188 |_______|______________| 2190 Table 31: Parameter Encoding Type for ESRO-SEGMENTED-ERROR-PDU 2192 An ESRO-CONCATENATED-PDU can contain one or more of the following 2193 PDUs: INVOKE, RESULT, ERROR, FAILURE, and ACK. 2195 The ESRO-PDUs within a concatenated set may be distinguished by means 2196 of the length indicator. A one byte length indicator comes before 2197 each ESRO-PDU. 2199 The number of ESRO-PDUs in an ESRO-CONCATENATED-PDU is bounded by the 2200 maximum length of TSDU. 2202 4.5.1 Procedures 2204 Concatenation 2206 The ESROS provider concatenates PDUs as follows: 2208 o PDU type code 8 is used. 2210 o The length indicator which is the total length of first ESRO-PDU 2211 (header and data) in octets is placed after PDU type code in 2212 length indicator field of ESRO- CONCATENATED-PDU (see 2213 Section 4.5.2). 2215 o The first PDU (header and data) is placed after the length 2216 indicator field and in the ESRO-PDU field of ESRO-CONCATENATED-PDU 2217 (see Section 4.5.2). 2219 o For any additional ESRO-PDU, the length indicator and PDUs are 2220 concatenated. 2222 Separation 2224 When the ESRO service provider receives a PDU with PDU type code 8, it 2225 separates the concatenated PDUs as described below: 2227 o Length indicator field coming after type code field (see 2228 Section 4.5.2) specifies the total length of the first PDU in 2229 octets. 2231 o The first PDU is in the ESRO-PDU field after the length indicator 2232 field (see Section 4.5.2). 2234 o Any additional PDU has its length indicator field specifying the 2235 total length of PDU, followed by PDU itself (see Section 4.5.2). 2237 o PDUs are separated until the end of the ESRO-CONCATENATED-PDU is 2238 reached. 2240 4.5.2 ESRO-CONCATENATED-PDU format 2242 Bit string format of the ESRO-CONCATENATED-PDU containing multiple 2243 concatenated ESRO-PDUs is represented in Table 32. 2245 Length Indicator field 2247 This field is contained in one octet and comes before each ESROS-PDU 2248 in the concatenated PDU. The length indicated is total length of the 2249 ESRO-PDU (including header and data) coming after it in octets. 2251 ESRO-PDU field 2253 This field contains an ESRO-INVOKE-PDU, ESRO-RESULT-PDU, ESRO-ERROR- 2254 PDU, ESRO-FAILURE-PDU, or ESRO-ACK-PDU. 2256 The length of this field is specified by the length indicator field 2257 coming before it. 2259 4.6 ES Remote Operations Protocol Parameters 2261 4.6.1 PDU size 2263 o CLRO_SMALL_PDU_MAX_SIZE: 2265 ________________________________________________________________ 2266 |Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 2267 |--------|---------------------------|------|------|------|------| 2268 |Octet 1 | Not used | 1 | 0 | 0 | 0 | 2269 |--------|-------------------------------------------------------| 2270 |Octet 2 | Length Indicator | 2271 |--------|-------------------------------------------------------| 2272 |Octet 3 | | 2273 |... | ESRO-PDU | 2274 |Octet N | | 2275 |--------|-------------------------------------------------------| 2276 |Octet | | 2277 | N+1 | Length Indicator | 2278 |--------|-------------------------------------------------------| 2279 |Octet | | 2280 | N+2 | ESRO-PDU | 2281 | ... | | 2282 |--------|-------------------------------------------------------| 2283 | ... | ... | 2284 |________|_______________________________________________________| 2285 ESRO-CONCATENATED-PDU Type Code = 8. 2287 Table 32: ESRO-CONCATENATED-PDU format 2289 The value of this parameter should be chosen based on the 2290 specifics of the subnetwork in use. For example, in CDPD the 2291 maximum size of SN-Userdata size can be up to 2048 bytes (see part 2292 404-2.b of CDPD Specification V1.1). Based on this value and IP 2293 and UDP protocol information fields, the value of 2294 CLRO_SMALL_PDU_MAX_SIZE may be determined for CDPD. Again based on 2295 the specifics of the subnetwork, the optimum value of 2296 CLRO_SMALL_PDU_MAX_SIZE may best be determined based on field 2297 experience and may be smaller than the maximum size that the 2298 subnetwork supports. 2300 o CLRO_SEGMENTED_PDU_MAX_SIZE 2302 The value of this parameter should be chosen based on the 2303 specifics of the subnetwork in use. The optimum value of 2304 CLRO_SEGMENTED_PDU_MAX_SIZE may best be determined based on field 2305 experience. 2307 o CLRO_MAX_PDU_SEGMENTS 2309 The value of this parameter should be chosen based on the 2310 specifics of the subnetwork in use. The optimum value of 2311 CLRO_MAX_PDU_SEGMENTS may best be determined based on field 2312 experience. In any case, this value should be smaller than 127. 2314 4.6.2 Timers 2316 o INVOKE_PDU_RETRANSMISSION_INTERVAL: 2318 The INVOKE_PDU retransmission interval should be specified and 2319 optimized based on the characteristics of the network in use. 2321 o RESULT_ERROR_PDU_RETRANSMISSION_INTERVAL: 2323 The RESULT and ERROR-PDU retransmission interval should be 2324 specified and optimized based on the characteristics of the 2325 network in use. 2327 o MAX_RETRANSMISSIONS: 2329 The maximum number of retransmissions should be specified and 2330 optimized based on the characteristics of the network in use. 2332 o INACTIVITY_TIME: 2334 The minimum waiting time during which no duplicate PDU is received 2335 should be specified and optimized based on the characteristics of 2336 the network in use. 2338 o REFERENCE_NUMBER_TIME: The reference number lifetime timer should 2339 be specified and optimized based on the characteristics of the 2340 network in use. 2342 4.6.3 Use of lower layers 2344 ESRO protocol uses UDP port number 259. 2346 5 ACKNOWLEDGMENTS 2348 Development of this specification was funded by AT&T Wireless Services 2349 (AWS). This protocol specification has been derived from AT&T Wireless 2350 Services' document titled: ``Limited Size Remote Operation Services 2351 (LSROS)'', Revision 0.8, dated April 20, 1995. 2353 This specification is technically consistent with CDPD Forum's 2354 Implementor's Guidelines Part 1028, Release 1.03, June 21, 1996. 2356 6 SECURITY CONSIDERATIONS 2358 ESROS has no authentication mechanism. Authentication is the 2359 responsibility of the performer (which is outside of the scope of 2360 ESROS) and the performer is not expected to honor the invoker when it 2361 is not authenticated. 2363 7 AUTHORS' ADDRESSES 2365 Mohsen Banan 2366 Neda Communications, Inc. 2367 17005 SE 31st Place 2368 Bellevue, WA 98008 2369 email: mohsen@neda.com 2371 Mark S. Taylor 2372 Director of Strategic Engineering 2373 AT&T Wireless Services 2374 Wireless Data Division 2375 10230 NE Points Drive 2376 Kirkland, WA 98033-7869 USA 2377 email: mark.taylor@airdata.com 2379 Jia-bing Cheng 2380 AT&T Wireless Services 2381 Wireless Data Division 2382 10230 NE Points Drive 2383 Kirkland, WA 98033-7869 USA 2384 email: jcheng@airdata.com 2386 References 2388 [1] Remote Operations: Model, Notation and Service Definition, March 2389 1988. Recommendation X.219. 2390 [2] Remote Operations: Protocol Specification, March 1988. 2391 Recommendation X.229. 2393 [3] Specification of Abstract Syntax Notation One, 1988. 2394 Recommendation X.208. 2395 [4] Information Processing --- Open Systems 2396 Interconnection --- Specification of Packed Encoding Rules for 2397 Abstract Syntax Notation One (ASN.1). International Standard 2398 8825-2. 2400 [5] Information Processing --- Open Systems 2401 Interconnection --- Specification of Basic Encoding Rules for 2402 Abstract Syntax Notation One (ASN.1), 1987. International Standard 2403 8825. 2405 [6] R. Srinivasan. Binding protocols for onc rpc version 2. Request 2406 for Comments 1833, Sun Microsystems Inc, 08 1995. 2408 [7] R. Srinivasan. Rpc: Remote procedure call protocol specification 2409 version 2. Request for Comments 1831, Sun Microsystems Inc, 08 2410 1995. 2411 [8] R. Srinivasan. Xdr: External data representation standard. 2412 Request for Comments 1832, Sun Microsystems Inc, 08 1995. 2414 Internet-Draft Expires: June 1997 Internet-Draft