| OpenSS7 SS7 for the Common Man | © Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved. Last modified: Sun, 05 Mar 2006 08:34:24 GMT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TCI Technical SpecificationDescription: OpenSS7 Resources Library.A PDF version of this document is available here. Transaction Component InterfaceTransaction Component InterfacePrefaceSecurity WarningPermission to use, copy and distribute this documentation without modification, for any purpose and without fee or royalty is hereby granted, provided that both the above copyright notice and this permission notice appears in all copies and that the name of OpenSS7 Corporation not be used in advertising or publicity pertaining to distribution of this documentation or its contents without specific, written prior permission. OpenSS7 Corporation makes no representation about the suitability of this documentation for any purpose. It is provided “as is” without express or implied warranty. OpenSS7 Corporation disclaims all warranties with regard to this documentation including all implied warranties of merchantability, fitness for a particular purpose, non-infringement, or title; that the contents of the document are suitable for any purpose, or that the implementation of such contents will not infringe on any third party patents, copyrights, trademarks or other rights.. In no event shall OpenSS7 Corporation be liable for any direct, indirect, special or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with any use of this document or the performance or implementation of the contents thereof. AbstractThis document is a Application Program Interface containing technical details concerning the implementation of the Transaction Component Interface (TCI) for OpenSS7. It contains recommendations on software architecture as well as platform and system applicability of the Transaction Component Interface (TCI). PurposeThe purpose of this document is to provide technical documentation of the Transaction Component Interface (TCI). This document is intended to be included with the OpenSS7 STREAMS software package released by OpenSS7 Corporation. It is intended to assist software developers, maintainers and users of the Transaction Component Interface (TCI) with understanding the software architecture and technical interfaces which are made available in the software package. IntentIt is the intent of this document that it act as the primary source of information concerning the Transaction Component Interface (TCI). AudienceThe audience for this document is software developers, maintainers and users and integrators of the Transaction Component Interface (TCI). Revision HistoryTake care that you are working with a current version of this documentation: you will not be notified of updates. To ensure that you are working with a current version, check the OpenSS7 Project website for a current version. A printed (or postscript) version of this document is an UNCONTROLLED version. 1 IntroductionThis document specifies a STREAMS-based kernel-level instantiation of the ITU-T Transaction Capabilities Application Part (TCAP) Component (TC) Sub-Layer. The Transaction Component Interface (TCI) enables the user of a component sub-layer service to access and use any of a variety of conforming transaction providers without specific knowledge of the provider's protocol. The service interface is designed to support any transaction protocol but is intended for the ITU-T Recommendation Q.771 Transaction Capabilities Application Part (TCAP) Component (TC) Sub-Layer. This interface only specifies access to transaction component sub-layer services providers, and does not address issues concerning transaction or component sub-layer management, protocol performance, and performance analysis tools. The specification assumes that the reader is familiar with the ISO reference model terminology, ISO/ITU-T transaction service definitions (ROSE, ACSE, TCAP), and STREAMS. 1.1 Related Documentation
1.1.1 RoleThis document specifies an interface that supports the Transaction Component (TC) Sub-Layer services provided by the Transaction Capabilities Application Part (TCAP) as specified in ITU-T Recommendation Q.771. It may also be capable of supporting the transaction component capabilities of the Remote Operations Service Execution (ROSE) for Open Systems Interconnect for CCITT Applications as specified in ITU-T Recommendation X.219 and ISO ????. These specifications are targeted for use by developers and testers of protocol modules that require transaction component sub-layer service.1 1.2 Definitions, Acronyms, and Abbreviations
2 The Transaction Component Sub-LayerThe Transaction Component Sub-Layer provides the means to manage the dialogue of TC-Users into transaction components and dialogues. It is responsible for the routing and management of transaction component exchange within dialogues between TC-user entities. 2.1 Model of the TCIThe TCI defines the services provided by the transaction component sub-layer to the transaction component-user at the boundary between the Transaction Capabilities Application Part (TCAP) user and the Transaction Component (TC) Sub-Layer in the model presented in ITU-T Recommendation Q.771. The interface consists of a set of primitives defined as STREAMS messages that provide access to the component sub-layer services, and are transferred between the TC user entity and the TC provider. These primitives are of two types: ones that originate from the TC user, and others that originate from the TC provider, or respond to an event of the TC provider. The primitives that originate from the TC provider are either confirmations of a request or are indications to the TC user that the event has occurred. Figure 1 shows the model of the TCI.
The TCI allows the TC provider to be configured with any component sub-layer user (such as the Mobile Application Part whose upper layer interface is described in About This Manual), that also conforms to the TCI. A transaction component sub-layer user can also be a user program that conforms to the TCI and accesses the TC provider via putmsg(2) and getmsg(2) system calls. STREAMS messages that are used to communicate transaction component service primitives between the transaction component user and the transaction component provider may have one of the following formats:
The following sections describe the service primitives which define all operation classes of service. For all operation classes of service, two types of primitives exist: primitives that originate from the service user and primitives that originate from the service provider. The primitives that originate from the service user make requests to the service provider or response to an event of the service provider. The primitive that originate from the service provider are either confirmations of a request or are indications to the service user that an event has occurred. The primitive types along with the mapping of those primitives to the STREAMS message types and the service primitives of the ISO/IEC xxxxx and service definitions are listed in TCI Primitives. The format of these primitives and the rules governing the use of them are described in Management Primitives, Operation Class 1 through 3 Primitives, and Operation Class 4 Primitives. 2.2 TCI ServicesThe features of the TCI are defined in terms of the services provided by the TC provider, and the individual primitives that may flow between the TC user and the TC provider. The services supported by the TCI are based on four distinct classes of transaction, operation classes 1, 2, 3 and 4. In addition, the TCI supports services for local management. 2.2.1 Operation Class 1The main features of operation class 1 transactions are:
There are three phases to each transaction: Transaction Initiation, Transaction Data Transfer, and Transaction Termination.2 Transaction components arrive at their destination in the same order as they departed their source and the data is protected against duplication or loss of data units within some specified quality of service. 2.2.2 Operation Class 2The main features of operation class 2 transactions are:
There are three phases to each transaction: Transaction Initiation, Transaction Data Transfer, and Transaction Termination.3 Transaction components arrive at their destination in the same order as they departed their source and the data is protected against duplication or loss of data units within some specified quality of service. 2.2.3 Operation Class 3The main features of operation class 3 transactions are:
There are three phases to each transaction: Transaction Initiation, Transaction Data Transfer, and Transaction Termination.4 Transaction components arrive at their destination in the same order as they departed their source and the data is protected against duplication or loss of data units within some specified quality of service. 2.2.4 Operation Class 4The main features of operation class 4 transactions are:
Operation class 4 has no structure to the transaction and has no separate phases. Each transaction component is transmitted from source to destination independently, appropriate addressing information is included with each component sequence. As the components are transmitted independently from source to destination, there are, in general, no guarantees of proper sequence and completeness of the data transmission. 2.2.5 Component Handling
2.2.6 Local ManagementThe TCI specifications also define a set of local management functions that apply to all operation classes. These services have local significance only. Table 1 and Table 2 summarize the TCI service primitives by their state and service. Table 1. Service Primitives for Operation Classes 1, 2 and 3
Table 2. Service Primitives for Operation Class 4
3 TCI Services DefinitionThis section describes the services of the TCI primitives. Time-sequence diagrams 5 that illustrate the sequence of primitives are used. The format of the primitives will be defined later in this document. 3.1 Local Management Services DefinitionThe services defined in this section are outside the scope of the international standards. These services apply to all operation classes. They are involved for the initialization/de-initialization of a stream connected to the TC provider. They are also used to manage options supported by the TC provider and to report information on the supported parameter values. 3.1.1 Transaction Information Reporting ServiceThis service provides information on the options supported by the TC provider.
The sequence of primitives for transaction information management is shown in Figure 2.
3.1.2 TC User Bind ServiceThis service allows an originating address to be associated with a stream. It allows the TC user to negotiate the number of transaction begin indications that can remain unacknowledged for that TC user (a transaction begin indication is considered unacknowledged while it is awaiting a corresponding transaction response or abort request from the TC user). This service also defines a mechanism that allows a stream (bound to the address of the TC user) to be reserved to handle incoming transactions only. This stream is referred to as the listener stream.
The sequence of primitives for the TC user bind service is shown in Figure 3.
3.1.3 TC User Unbind ServiceThis service allows the TC user to be unbound from a network address.
The sequence of primitives for the TC user unbind service is shown in Figure 4.
3.1.4 Receipt Acknowledgement Service
An example showing the sequence of primitives for successful receive acknowledgement is depicted in Figure 4. 3.1.5 Options Mangement ServiceThis service allows the TC user to manage the QOS parameter values associated with the TC provider.
Figure 5 shows the sequence of primitives for transaction options management.
3.1.6 Error Acknowledgement Service
Figure 6 shows the sequence of primitives for the error management primitive.
3.2 Operation Class 1, 2 and 3 Transaction Services DefinitionThis section describes the required transaction service primitives that define the operation class 1, 2 and 3, structured transaction interface. The queue model for operation classes 1, 2 and 3 are discussed in more detail in ITU-T X.219 and ITU-T Q.771. The queue model represents the operation of a transaction dialogue in the abstract by a pair of queues linking two transaction users. There is one queue for each direction of component flow. Each queue represents a flow control function in one direction of transfer. The ability of a user to add objects to a queue will be determined by the behaviour of the user removing objects from that queue, and the state of the queue. The pair of queues is considered to be available for each potential transaction dialogue. Objects that are entered or removed from the queue are either as a result of interactions at the two transaction addresses, or as the result of TC provider initiatives.
Table 3 shows the ordering relationships among the queue model objects. Table 3. Ordering Relationships Between Queue Model Objects
3.2.1 Transaction InitiationA pair of queues is associated with a transaction dialogue between two
transaction users when the TC provider receives a The transaction establishment procedure will fail if the TC provider is unable
to establish a transaction dialogue, or if the destination TC user is unable
to accept the 3.2.1.1 User Primitives for Successful Transaction EstablishmentThe following user primitves support Operation Class 1, 2, or 3 Phase I (Transaction Establishment) services:
3.2.1.2 Provider Primitives for Successful Transaction EstablishmentThe following provider primitives support Operation Class 1, 2, or 3 Phase I (Transaction Establishment) services:
The sequence of primitives in a successful transaction initiation is defined by the time sequence diagrams as shown in Figure 7.
The sequence of primitives for the transaction initiation response token value determination is shown in Figure 8 (procedures for transaction initiation response token value determination are discussed in TC_BIND_REQ, and TC_BIND_ACK).
3.2.2 Transaction Component TransferFlow control on the transaction dialogue is done by management of the queue capacity, and by allowing objects of certain types to be inserted to the queues, as shown in Table 4. 3.2.2.1 Primitives for Component TransferThe following primitives support Operation Class 1, 2, or 3 Phase II (Transaction Component Transfer) services:
Figure 9 shows the sequence of primitives for successful component transfer. The sequence of primitives may remain incomplete if a `TC_END_REQ', `TC_ABORT_REQ', or `TC_ABORT_IND' primitive occurs.
3.2.3 Transaction TerminationThe transaction dialogue procedure is initialized by insertion of an end or
abort object (associated with a The sequence of primitives depends on the origin of the termination action. The sequence may be:
3.2.3.1 Primitives for Transaction TerminationThe following primitives support Operation Class 1, 2, or 3 Phase III (Transaction Termination) services:
The sequence of primitives are shown in the time sequence diagrams in the figures that follow:
A TC user may reject a transaction initiation attempt by issuing a `TC_ABORT_REQ'. The originator parameter in the `TC_ABORT_REQ' will indicate TC user invoked termination. The sequence of primitives is shown in Figure 14.
If the TC provider is unable to establish a transaction, it indicates this to the requester by an `TC_ABORT_IND'. The originator of the primitive indicates a TC provider invoked release. This is shown in Figure 15.
3.3 Operation Class 4 Transaction Services DefinitionThe operation class 4 service allows for the transfer of transaction components in one and both directions simultaneously without establishing a transaction dialogue. A set of primitives are defined that carry transaction components and control information between the TC user and the TC provider entities. The primitives are modelled as requests initiated by the TC user and indications initiated by the TC provider. Indications may be initiated by the TC provider independently from requests by the TC user. The operation class 4 transaction service consists of one phase. 3.3.1 Request and Response Primitives
Figure 16 shows the sequence of primitives for the operation class 4 mode of transfer.
Figure 17 shows the sequence of primitives for the operation class 4 error management primitive.
3.4 Component Handling Services Definition3.4.1 Component Invoke Service
3.4.2 Component Return Result Service
3.4.3 Component Error Service
3.4.4 Component Cancel Service
3.4.5 Component Reject Service
4 TCI PrimitivesThis section describes the format and parameters of the TCI primitives (Appendix A shows the mapping of TCI primitives to the primitives defined in ITU-T Q.771). In addition, it discusses the states in which the primitive is valid, the resulting state, and the acknowledgement that the primitive expects. (The state/event tables for these primitives are shown in Appendix B. The precedence tables for the TCI primitives are shown in Appendix C.) Rules for SS7 conformance are described in Addendum 1 to this document. The following tables provide a summary of the TC primitives and their parameters. Table 4. Transaction Initiation Transaction Service Primitives
Table 5. Transaction Continuation Transaction Service Primitives
Table 6. Transaction Termination Transaction Service Primitives
4.1 Management PrimitivesThese primitives apply to all operation classes. 4.1.1 Transaction Information4.1.1.1 Transaction Information RequestTC_INFO_REQThis primitive request the TC provider to return the values of all supported protocol parameters (see TC_INFO_ACK), and also the current state of the TC provider (as defined in State/Event Tables). This primitive does not affect the state of the TC provider and does not appear in the state tables. FormatThe format of the message is one `M_PCPROTO' message block and its structure is as follows: typedef struct TC_info_req {
ulong PRIM_type; /* Always TC_INFO_REQ */
} TC_info_req_t;
ParametersThe primitive has the following arguments: Valid StatesThis primitive is valid in any state where a local acknowledgement is not pending. New StateThe new state remains unchanged. RulesFor the rules governing the requests made by this primitive, see the `TC_INFO_ACK' primitive described in TC_INFO_ACK. AcknowledgementsThis primitive requires the TC provider to generate one of the following acknowledgements upon receipt of the primitive:
4.1.1.2 Transaction Information AcknowledgementTC_INFO_ACK
This primitive indicates to the TC user any relevant protocol-dependent
parameters.6 It should be initiated in response to the
FormatThe format of the message is one `M_PCPROTO' message block and its structure is as follows: typedef struct TC_info_ack {
long PRIM_type; /* always TC_INFO_ACK */
long TSDU_size; /* maximum TSDU size */
long ETSDU_size; /* maximum ETSDU size */
long CDATA_size; /* connect data size */
long DDATA_size; /* disconnect data size */
long ADDR_size; /* maximum address size */
long OPT_size; /* maximum options size */
long TIDU_size; /* transaction interface data size */
long SERV_type; /* service type */
long CURRENT_state; /* current state */
long PROVIDER_flag; /* provider flags */
long TCI_version; /* TCI version */
} TC_info_ack_t;
ParametersThe primitive has the following arguments:
4.1.2 Transaction Protocol Address Management4.1.2.1 Transaction Bind RequestTC_BIND_REQFormat typedef struct TC_bind_req {
ulong PRIM_type;
ulong ADDR_length; /* address length */
ulong ADDR_offset; /* address offset */
ulong XACT_number; /* maximum outstanding transaction reqs. */
ulong BIND_flags; /* bind flags */
} TC_bind_req_t;
typedef struct TC_subs_bind_req {
ulong PRIM_type;
} TC_subs_bind_req_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.1.2.2 Transaction Bind AcknowledgementTC_BIND_ACKFormat typedef struct TC_bind_ack {
ulong PRIM_type;
ulong ADDR_length;
ulong ADDR_offset;
ulong XACT_number;
ulong TOKEN_value;
} TC_bind_ack_t;
typedef struct TC_subs_bind_ack {
ulong PRIM_type;
} TC_subs_bind_ack_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.1.2.3 Transaction Unbind RequestTC_UNBIND_REQFormat typedef struct TC_unbind_req {
ulong PRIM_type; /* Always TC_UNBIND_REQ */
} TC_unbind_req_t;
ParametersThe primitive has the following arguments: FlagsValid StateNew StateRulesAcknowledgement4.1.2.4 Transaction Protocol Address RequestTC_ADDR_REQFormatParametersThe primitive has the following arguments: FlagsValid StateNew StateRulesAcknowledgement4.1.2.5 Transaction Protocol Address AcknowledgementTC_ADDR_ACKFormatThe format of the message is one `M_PCPROTO' message block structured as follows: ParametersThe primitive has the following arguments: FlagsValid StateNew StateRulesAcknowledgement4.1.3 Transaction Options Management4.1.3.1 Transaction Options Management RequestTC_OPTMGMT_REQFormat typedef struct TC_optmgmt_req {
ulong PRIM_type;
ulong OPT_length;
ulong OPT_offset;
ulong MGMT_flags;
} TC_optmgmt_req_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.1.3.2 Transaction Options Management AcknowledgementTC_OPTMGMT_ACKFormatThe format of the message is one `M_PCPROTO' message block structured as follows: typedef struct TC_optmgmt_ack {
ulong PRIM_type;
ulong OPT_length;
ulong OPT_offset;
ulong MGMT_flags;
} TC_optmgmt_ack_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.1.4 Transaction Error Management4.1.4.1 Transaction Successful Receipt AcknowledgementTC_OK_ACKFormatThe format of the message is one `M_PCPROTO' message block structured as follows: typedef struct TC_ok_ack {
ulong PRIM_type;
ulong CORRECT_prim;
} TC_ok_ack_t;
ParametersThe primitive has the following arguments: FlagsValid StateNew StateRulesAcknowledgement4.1.4.2 Transaction Error AcknowledgementTC_ERROR_ACKFormatThe format of the message is one `M_PCPROTO' message block structured as follows: typedef struct TC_error_ack {
ulong PRIM_type;
ulong ERROR_prim;
ulong TRPI_error;
ulong UNIX_error;
ulong DIALOG_id;
ulong INVOKE_id;
} TC_error_ack_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2 Operation Class 1, 2 and 3 PrimitivesThis section describes the operation class 1, 2, and 3 dialogue handling primitives. Primitives are grouped into phases:
4.2.1 Transaction Establishment PhaseThe transaction begin service provides means to start a transaction dialogue between two TC-users. This may be accompanied by the transfer of components previously accumulated using the component handling primitives described in Component Handling Primitives. 4.2.1.1 Transaction Begin RequestTC_BEGIN_REQThis primitive requests that the transaction component provider form a transaction dialogue to the specified destination protocol address, from the specified source protocol address, using the specified options. Any components that have been accumulated using the component handling primitives (see Component Handling Primitives), will accompany the primitive. FormatThe format of the message is one `M_PROTO' message block followed by zero or more `M_DATA' message blocks containing raw transaction user information. The `M_PROTO' message block is structured as follows: typedef struct TC_begin_req {
ulong PRIM_type; /* Always TC_BEGIN_REQ */
ulong SRC_length; /* Source address length */
ulong SRC_offset; /* Source address offset */
ulong DEST_length; /* Destination address length */
ulong DEST_offset; /* Destination address offset */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI QWP/QWOP */
} TC_begin_req_t;
ParametersThe primitive has the following arguments:
FlagsThe COMP_flags field can contain any of the following flags:
Valid StateThis primitive is valid in transaction state TC_IDLE. New StateThe new state for the transaction is TC_WACK_CREQ. RulesThe following rules apply to the specification of parameters to this primitive:
AcknowledgementThis primitive requires the transaction provider to generate one of the following acknowledgements upon receipt of the primitive:
4.2.1.2 Transaction Begin IndicationTC_BEGIN_INDThe transaction indication service primitive indicates that a peer TC user has initiated a transaction dialogue, the source protocol address associated with the peer TC user, the destination address to which the transaction dialogue is initiated, the options for the dialogue. FormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_begin_ind {
ulong PRIM_type; /* Always TC_BEGIN_IND */
ulong SRC_length; /* Source address length */
ulong SRC_offset; /* Source address offset */
ulong DEST_length; /* Destination address length */
ulong DEST_offset; /* Destination address offset */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI QWP/QWOP */
} TC_begin_ind_t;
ParametersThe primitive has the following arguments:
FlagsThe COMP_flags field can contain any of the following flags:
Valid StateThis primitive is valid in transaction state TC_IDLE. New StateThe new state of the transaction is TC_WRES_CIND. RulesThe following rules apply to the issuance of this primitive by the transaction provider:
4.2.1.3 Transaction Begin ResponseTC_BEGIN_RESThis primitive allows the destination TC user to request that the TC provider accept a previous transaction dialogue begin indication, either on the current stream or on a specified acceptor stream. FormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_begin_res {
ulong PRIM_type; /* Always TC_CONT_REQ */
ulong SRC_length; /* Source address length */
ulong SRC_offset; /* Source address offset */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI CWP/CWOP */
} TC_begin_res_t;
ParametersThe primitive has the following arguments:
FlagsThe COMP_flags field can contain any of the following flags:
Valid StateThis primitive is valid in transaction state TC_WRES_CIND. New StateThe new state of the transaction is TC_DATA_XFER. RulesAcknowledgementThis primitive requires the TC provider to generate one of the following acknowledgements upon receipt of the primitive:
4.2.1.4 Transaction Begin ConfirmTC_BEGIN_CONFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_begin_con {
ulong PRIM_type; /* Always TC_CONT_IND */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI CWP/CWOP */
} TC_begin_con_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.2 Transaction Data Transfer PhaseThe component transfer service primtiives provide for an exchange of component user data known as TSDUs, in either direction or in both directions simultaneously on a transaction dialogue. The transaction service preserves both the sequence and the boundaries of the TSDUs. 4.2.2.1 Transaction Continue RequestTC_CONT_REQFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_cont_req {
ulong PRIM_type; /* Always TC_CONT_REQ */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI CWP/CWOP */
} TC_cont_req_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.2.2 Transaction Continue IndicationTC_CONT_INDFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_cont_ind {
ulong PRIM_type; /* Always TC_CONT_IND */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* For use with ANSI CWP/CWOP */
} TC_cont_ind_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.3 Transaction Termination Phase4.2.3.1 Transaction End RequestTC_END_REQFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_end_req {
ulong PRIM_type; /* Always TC_END_REQ */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong TERM_scenario; /* Reason for termination */
} TC_end_req_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.3.2 Transaction End IndicationTC_END_INDFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_end_ind {
ulong PRIM_type; /* Always TC_END_IND */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong COMP_flags; /* Components present flag */
} TC_end_ind_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.3.3 Transaction Abort RequestTC_ABORT_REQFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_abort_req {
ulong PRIM_type; /* Always TC_ABORT_REQ */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong ABORT_reason; /* Abort reason */
} TC_abort_req_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.2.3.4 Transaction Abort IndicationTC_ABORT_INDFormatThe format of the message is one `M_PROTO' message block structured as follows: typedef struct TC_abort_ind {
ulong PRIM_type; /* Always TC_ABORT_IND */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
ulong ABORT_reason; /* Abort reason */
ulong ORIGINATOR; /* Either User or Provider originated */
} TC_abort_ind_t;
ParametersThe primitive has the following arguments:
FlagsValid StateNew StateRulesAcknowledgement4.3 Operation Class 4 Primitives4.3.1 Transaction Phase4.3.1.1 Transaction Unidirectional RequestTC_UNI_REQFormatThe format of the message is one `M_PROTO' message block, followed by zero or more `M_DATA' message blocks if any components are specified by the TC user. The format of the `M_PROTO' message block is as follows: typedef struct TC_uni_req {
ulong PRIM_type; /* Always TC_UNI_REQ */
ulong SRC_length; /* Source address length */
ulong SRC_offset; /* Source address offset */
ulong DEST_length; /* Destination address length */
ulong DEST_offset; /* Destination address offset */
ulong OPT_length; /* Options associated with the primitive */
ulong OPT_offset; /* Options associated with the primitive */
ulong DIALOG_id; /* Dialog Identifier */
} TC_uni_req_t;
ParametersThe primitive has the following arguments:
|