OpenSS7 |
© Copyright 1997-2001, OpenSS7, All Rights Reserved. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The Signalling Link (SL) Interface design is explained in the following sections:
Overview | - A brief overview of the Signalling Link driver. |
Model | - The model of a Signalling Link. |
Services | - Services provided by the Signalling Link provider. |
Primitives | - Primitives described at the Signalling Link Interface. |
Sequences | - Allowed sequences of primitives and interface state transitions |
Implementation | - Considerations for implementation of drivers using the Signalling Link Interface. |
Header File | - A header file which provides definitions for the Signalling Link Interface. |
Library Functions | - Libarary functions which are provided in user space for exercising the Signalling Link Interface. |
The SS7 Signalling Link Module provides the SS7 Level 2 (Signalling Link) state machine behavior such as specified in Q.703, T1.111 and ETSI ETS 300 008-1. This state machine behavior is common to all SS7 signalling links and depends only upon the capabilities of the CDI interface to the Signalling Data Terminal Driver. The SS7 configuration daemon pushes a cloned instance of this module onto each Signalling Data Terminal driver which it opens (drivers are listed in the daemon's config file or provided to the daemon at run-time). The module is either pushed explicitly by the daemon or is configured on the driver's autopush list.
The resulting streams module arrangement is illustrated in the diagram.
The Signalling Link Module is not a full Layer 2 OSI implementation: it only implements the lower half of OSI Layer 2. As such, it implements parts of the CDI, yet provides additional protocol-specific primitives for interacting with the Signalling Link Set module (the upper half of OSI Layer 2). The mapping of CDI primitives to Signalling Link primitives and the SS7 protocol-specific primitives which the Signalling Link module provides are detailed in the section on Signalling Links.
Because there is a one-to-one relationship between an instance of the
Signalling Link module and an instance of a Signalling Data Terminal, the
Signalling Link module relays SL_ATTACH_REQ
and
SL_ATTACH_ACK
primitives to and from the Signalling Data
Terminal. This permits the module to be configured as an autopush module for
the Signalling Data Terminal, yet still permits the SS7 configuration daemon
the ability to attach Signalling Data Terminal Drivers to specific PPAs (Style
2) or discover the PPA of the driver (Style 1).
Model
The Signalling Link level (Level 2 in the ITU-T Q.700-Series Recommendations) is reponsible for the transmission and error-free delivery of bits of information over a physical communications medium.
The model of the Signalling Link Level (MTP Level 2) is presented here to describe concepts that are used throughout the specification of the SLI. It is described in terms of an interface architecture, as well as addressing concepts needed to identify different components of the architecutre. The description of the model assumes familiarity with the Signalling System No. 7 (SS7) protocol stack.
Each Level in the SS7 Protocol Stack has two standards:
SLI is an implementation of the first type of standard. It specifies an interface to the services of the Signalling Link Level (MTP Level 2). The following figure depicts the abstract view of SLI.
Figure 1. Abstract View of SLI
The Signaling Link interface is the boundary between the MTP Level 2 (link) and MTP Level 3 (network) levels of the SS7 Reference Model. The MTP Level 3 (network) level entity is the user of the services of the Signalling Link interface (SLS user), and the signalling link layer entity is the provider of those services (SLS provider). This interface consists of a set of primitives that provide access to the signalling link level services, plus the rules for using those primitives (state transition rules). A signalling link interface service pimtiive might request a particular service or indicate a pending event.
The service primitives that make up this interface are defined as STREAMS
messages that are transfered between the user and provider of the service.
SLI is a kernel-level interface, and is targeted for STREAMS protocol modules
that either use or provide signalling link services. In addition, user
programs that wish to access a STREAMS-based signalling link provider directly
may do so using the putmsg(2)
and
getmsg(2)
system calls.
Referring to the abstract view of SLI (Figure 1), the SLS provider is
configured as a STREAMS driver, and the SLS user accesses the provider using
open(2)
to establish a stream to the SLS provider. The
stream acts as a communications endpoint between a SLS user and the SLS
provider. After the stream is created, the SLS user and SLS provider
communicate via the messages presented later in this specification.
SLI is intended to free signalling link users from specific knowledge of the characteristics of the signalling link provider. Specifically, the definition of SLI hopes to acheive the goal of allowing a SLS user to be implemented independent of a specific communciations medium. Any signalling link provider (supporting any communications medium) that conforms to the SLI specification may be subsituted beneath the SLS user to provide the signalling link services. Support of a new SLS provider should not require any changes to the implementation of the SLS user.
Each user of SLI must establish an identity to communicate with other signalling link users. This identity consists of two pieces. First, the SLS user must somehow identify the physical medium (signalling data link) over which it will communicate. This is particularly evident on ssytems that are attached to mutliple physical media (signalling data links), such as T1/E1 cards. Second, the SLS user must register itself with the SLS provider so that the provider can deliver protocol data units destined for that user. The following figure illustrates the components of this identification approach, which are explained below.
Figure 2. Signalling Link Addressing Components
The physical point of attachment (PPA in Figure 2) is the point at which a system attaches itself to a physical communications medium (signalling data link). All communication on that physical medium funnels thorugh the PPA. On systems where a SLS provider supports more than one physical medium, the SLS user must identify which medium it will communicate through. A PPA is identified by a unique PPA Identifier. For media that support physical layer multiplexing of multiple channels over a single physical medium (such as the T1/E1 cards), the PPA identifier must identify the specific channel over which communication will occur.
Two styles of SLS provider are defined by SLI, distinguished by the way they
enable a SLS user to choose a particular PPA. The style 1 provider
assigns a PPA based on the major/minor device the SLS user opened. One
possible implementation of style 1 driver would reserve a major
device for each PPA the signalling link driver would support. This would
allow the STREAMS clone open
feature to be used for each
PPA configured. This style of provider is appropriate when few PPAs will be
supported.
If the number of PPAs a SLS provider will support is large, a style 2
provider implementation is more suitable. The style 2 provider
requires a SLS user to explicitly identify the desired PPA using a special
attach
primitive. For a style 2 driver, the
open(2)
creates a stream between the SLS user and SLS
provider, and the attach
primitive then associates a
particular PPA with that stream. The format of the PPA identifier is specific
to the SLS provider, and should be described in the provider-specific addendum
documentation.
SLI provides a mechanism to get and/or modify the physical address. The
primitives to handle these functions is described in Appendix A. The physical
address value can be modified in a post-attached state. This would modify the
value for all streams for that provider for a particular PPA. The physical
address cannot be modified if even a single stream for that PPA is in the
bound state.
Services
The various features of the SLI interface are defined in terms of the services provided by the SLS provider, and the individual primitives that may flow between the SLS user and SLS provider.
The signalling link provider interface supports three modes of service: connection, connectionless and acknowledged connectionless. The connection mode is circuit-oriented and enables signalling to be transferred over an established connection in a sequenced manner. The connectionless mode is message-oriented andsupports signalling transfer in self-contained units with no logical relationship required between units. The acknowledged connectionless mode is message-oriented and guarantees that signalling units will be delivered to the destination user in the order in which they were sent. This specification also defines a set of local management functions that apply to all modes of service.
The XID and TEST services that are supported by SLI are listed below. The SLS User can issue an XID or TEST request to the SLS Provider. The Provider will transmit an XID or TEST frame to the peer SLS Provider. On receiving a response, the SLS Provider sends a confirmation primitive to the SLS User. Onreceiving an XID or TEST frame from the peer SLS Provider, the local SLS Provider sends up an XID or TEST indication primitive to the SLS User. The User must respond with an XID or TEST response frame to the Provider.
The services are tabulated below and described more fully in the remainder of this section.
Phase | Service | Primitives |
---|---|---|
Local Management | Information Reporting |
DL_INFO_REQ ,
DL_INFO_ACK ,
DL_ERROR_ACK
|
Attach |
DL_ATTACH_REQ ,
DL_DETACH_REQ ,
DL_OK_ACK ,
DL_ERROR_ACK
|
|
Bind |
DL_BIND_REQ ,
DL_BIND_ACK ,
DL_SUBS_BIND_REQ ,
DL_SUBS_BIND_ACK ,
DL_UNBIND_REQ ,
DL_SUBS_UNBIND_REQ,DL_OK_ACK ,
DL_ERROR_ACK
|
|
Other |
DL_ENABMULTI_REQ ,
DL_DISABMULTI_REQ ,
DL_PROMISCON_REQ ,
DL_PROMISCOFF_REQ ,
DL_OK_ACK ,
DL_ERROR_ACK
|
|
Connection Establishment | Connection Establishment |
DL_CONNECT_REQ ,
DL_CONNECT_IND,DL_CONNECT_RES ,
DL_CONNECT_CON ,
DL_DISCONNECT_REQ ,
DL_DISCONNECT_IND ,
DL_TOKEN_REQ ,
DL_TOKEN_ACK ,
DL_OK_ACK ,
DL_ERROR_ACK
|
Connection-mode Data Transfer | Data Transfer |
DL_DATA_REQ ,
DL_DATA_IND
|
Reset |
DL_RESET_REQ,
DL_RESET_IND,DL_RESET_RES,
DL_RESET_CON,
DL_OK_ACK,
DL_ERROR_ACK
|
|
Connection Release | Connection Release |
DL_DISCONNECT_REQ ,
DL_DISCONNECT_IND ,
DL_OK_ACK ,
DL_ERROR_ACK
|
Connectionless-mode Data Transfer | Data Transfer |
DL_UNITDATA_REQ ,
DL_UNITDATA_IND
|
QOS Management |
DL_UDQOS_REQ ,
DL_OK_ACK ,
DL_ERROR_ACK
|
|
Error Reporting |
DL_UDERROR_IND
|
|
XID and TEST services | XID |
DL_XID_REQ ,
DL_XID_IND ,
DL_XID_RES ,
DL_XID_CON
|
TEST |
DL_TEST_REQ ,
DL_TEST_IND ,
DL_TEST_RES ,
DL_TEST_CON
|
|
Acknowledged Connectionless-mode Data Transfer | Data Transfer |
DL_DATA_ACK_REQ ,
DL_DATA_ACK_IND ,
DL_DATA_ACK_STATUS_IND ,
DL_REPLY_REQ ,
DL_REPLY_IND ,
DL_REPLY_STATUS_IND ,
DL_REPLY_UPDATE_REQ ,
DL_REPLY_UPDATE_STATUS_IND
|
QOS Management |
DL_UDQOS_REQ ,
DL_OK_ACK ,
DL_ERROR_ACK
|
|
Error Reporting |
DL_UDERROR_IND
|
Following is a copy of the header file for the Signalling Link Interface:
/***************************************************************************** @(#) $Id: streams03.html,v 0.7.2.8 2001/11/29 10:40:21 brian Exp $ ----------------------------------------------------------------------------- Copyright (C) 1997-2001 Brian Bidulock. All Rights Reserved. PUBLIC LICENSE This license is provided without fee, provided that the above copy- right notice and this public license must be retained on all copies, extracts, compilations and derivative works. Use or distribution of this work in a manner that restricts its use except as provided here will render this license void. The author(s) hereby waive any and all other restrictions in respect of their copyright in this software and its associated documentation. The authors(s) of this software place in the public domain any novel methods or processes which are embodied in this software. The author(s) undertook to write it for the sake of the advancement of the Arts and Sciences, but it is provided as is, and the author(s) will not take any responsibility in it. ----------------------------------------------------------------------------- Last modified $Date: 2001/11/29 10:40:21 $ by $Author: brian $ *****************************************************************************/ #ident "@(#) $Id: streams03.html,v 0.7.2.8 2001/11/29 10:40:21 brian Exp $" #ifndef __SS7_SLI_H__ #define __SS7_SLI_H__ typedef lmi_long sl_long; typedef lmi_ulong sl_ulong; typedef lmi_ushort sl_ushort; typedef lmi_uchar sl_uchar; #define SL_PROTO_BASE 48L #define SL_DSTR_FIRST ( 1L + SL_PROTO_BASE) #define SL_PDU_REQ ( 1L + SL_PROTO_BASE) #define SL_EMERGENCY_REQ ( 2L + SL_PROTO_BASE) #define SL_EMERGENCY_CEASES_REQ ( 3L + SL_PROTO_BASE) #define SL_START_REQ ( 4L + SL_PROTO_BASE) #define SL_STOP_REQ ( 5L + SL_PROTO_BASE) #define SL_RETRIEVE_BSNT_REQ ( 6L + SL_PROTO_BASE) #define SL_RETREIVAL_REQUEST_AND_FSNC_REQ ( 7L + SL_PROTO_BASE) #define SL_RESUME_REQ ( 8L + SL_PROTO_BASE) #define SL_CLEAR_BUFFERS_REQ ( 9L + SL_PROTO_BASE) #define SL_LOCAL_PROCESSOR_OUTAGE_REQ ( 10L + SL_PROTO_BASE) #define SL_CONGESTION_DISCARD_REQ ( 11L + SL_PROTO_BASE) #define SL_CONGESTION_ACCEPT_REQ ( 12L + SL_PROTO_BASE) #define SL_NO_CONGESTION_REQ ( 13L + SL_PROTO_BASE) #define SL_POWER_ON_REQ ( 14L + SL_PROTO_BASE) #define SL_DSTR_LAST ( 14L + SL_PROTO_BASE) #define SL_USTR_LAST ( -1L - SL_PROTO_BASE) #define SL_PDU_IND ( -1L - SL_PROTO_BASE) #define SL_LINK_CONGESTED_IND ( -2L - SL_PROTO_BASE) #define SL_LINK_CONGESTION_CEASED_IND ( -3L - SL_PROTO_BASE) #define SL_RETREIVED_MESSAGE_IND ( -4L - SL_PROTO_BASE) #define SL_RETREIVAL_COMPLETE_IND ( -5L - SL_PROTO_BASE) #define SL_RB_CLEARED_IND ( -6L - SL_PROTO_BASE) #define SL_BSNT_IND ( -7L - SL_PROTO_BASE) #define SL_IN_SERVICE_IND ( -8L - SL_PROTO_BASE) #define SL_OUT_OF_SERVICE_IND ( -9L - SL_PROTO_BASE) #define SL_REMOTE_PROCESSOR_OUTAGE_IND (-10L - SL_PROTO_BASE) #define SL_REMOTE_PROCESSOR_RECOVERED_IND (-11L - SL_PROTO_BASE) #define SL_RTB_CLEARED_IND (-12L - SL_PROTO_BASE) #define SL_USTR_FIRST (-12L - SL_PROTO_BASE) /* * SLI PROTOCOL PRIMITIVES */ /* * SL_PDU_REQ, optional M_PROTO type, with M_DATA block(s) */ typedef struct { sl_ulong sl_primitive; } sl_pdu_req_t; /* * SL_PDU_IND, optional M_PROTO type, with M_DATA block(s) */ typedef struct { sl_ulong sl_primitive; } sl_pdu_ind_t; /* * PROTOCOL CONTROL PRIMITIVES */ /* * SL_EMERGENCY_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_emergency_req_t; /* * SL_EMERGENCY_CEASES_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_emergency_ceases_req_t; /* * SL_START_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_start_req_t; /* * SL_STOP_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_stop_req_t; /* * SL_RETRIEVE_BSNT_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_retreive_bsnt_req_t; /* * SL_RETREIVAL_REQUEST_AND_FSNC_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_fsnc; } sl_retreival_req_and_fsnc_t; /* * SL_RESUME_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_resume_req_t; /* * SL_CLEAR_BUFFERS_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_clear_buffers_req_t; /* * SL_LOCAL_PROCESSOR_OUTAGE_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_local_proc_outage_req_t; /* * SL_CONGESTION_DISCARD_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_cong_discard_req_t; /* * SL_CONGESTION_ACCEPT_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_cong_accept_req_t; /* * SL_NO_CONGESTION_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_no_cong_req_t; /* * SL_POWER_ON_REQ, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_power_on_req_t; /* * SL_LINK_CONGESTED_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_timestamp; sl_ulong sl_cong_level; /* status level */ sl_ulong sl_disc_level; /* discard level */ } sl_link_cong_ind_t; /* * SL_LINK_CONGESTION_CEASED_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_timestamp; sl_ulong sl_cong_level; /* status level */ sl_ulong sl_disc_level; /* discard level */ } sl_link_cong_ceased_ind_t; /* * SL_RETREIVED_MESSAGE_IND, M_PROTO or M_PCPROTO type with M_DATA block(s) */ typedef struct { sl_ulong sl_primitive; } sl_retreived_msg_ind_t; /* * SL_RETREIVAL_COMPLETE_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_retreival_comp_ind_t; /* * SL_RB_CLEARED_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_rb_cleared_ind_t; /* * SL_BSNT_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_bsnt; } sl_bsnt_ind_t; /* * SL_IN_SERVICE_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_in_service_ind_t; /* * SL_OUT_OF_SERVICE_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_timestamp; sl_ulong sl_reason; } sl_out_of_service_t; /* * These reasons for failure as so that upstream module can * collect statistics per link per ITU-T Q.752 Table 1 * requirements. */ #define SL_FAIL_UNSPECIFIED 0x0001 #define SL_FAIL_CONG_TIMEOUT 0x0002 #define SL_FAIL_ACK_TIMEOUT 0x0004 #define SL_FAIL_ABNORMAL_BSNR 0x0008 #define SL_FAIL_ABNORMAL_FIBR 0x0010 #define SL_FAIL_SUERM_EIM 0x0020 #define SL_FAIL_ALIGNMENT_NOT_POSSIBLE 0x0040 #define SL_FAIL_RECEIVED_SIO 0x0080 #define SL_FAIL_RECEIVED_SIN 0x0100 #define SL_FAIL_RECEIVED_SIE 0x0200 #define SL_FAIL_RECEIVED_SIOS 0x0400 #define SL_FAIL_T1_TIMEOUT 0x0800 /* * SL_REMOTE_PROCESSOR_OUTAGE_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_timestamp; } sl_rem_proc_out_ind_t; /* * SL_REMOTE_PROCESSOR_RECOVERED_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; sl_ulong sl_timestamp; } sl_rem_proc_recovered_ind_t; /* * SL_RTB_CLEARED_IND, M_PROTO or M_PCPROTO type */ typedef struct { sl_ulong sl_primitive; } sl_rtb_cleared_ind_t; /* * Generic single argument type */ typedef struct { sl_ulong sl_cmd; sl_ulong sl_arg; } sl_cmd_arg_t; /* * Generic double argument type */ typedef struct { sl_ulong sl_cmd; sl_ulong sl_arg1; sl_ulong sl_arg2; } sl_cmd_2arg_t; /* * Generic triple argument type */ typedef struct { sl_ulong sl_cmd; sl_ulong sl_arg1; sl_ulong sl_arg2; sl_ulong sl_arg3; } sl_cmd_3arg_t; union SL_primitives { sl_long sl_primitive; sl_cmd_arg_t cmd_arg; sl_cmd_2arg_t cmd_2arg; sl_cmd_3arg_t cmd_3arg; sl_pdu_req_t pdu_req; sl_pdu_ind_t pdu_ind; sl_emergency_req_t emergency_req; sl_emergency_ceases_req_t emergency_ceases_req; sl_start_req_t start_req; sl_stop_req_t stop_req; sl_retreive_bsnt_req_t retreive_bsnt_req; sl_retreival_req_and_fsnc_t retreival_req_and_fsnc; sl_resume_req_t resume_req; sl_clear_buffers_req_t clear_buffers_req; sl_local_proc_outage_req_t local_proc_outage_req; sl_cong_discard_req_t cong_discard_req; sl_cong_accept_req_t cong_accept_req; sl_no_cong_req_t no_cong_req; sl_power_on_req_t power_on_req; sl_link_cong_ind_t link_cong_ind; sl_link_cong_ceased_ind_t link_cong_ceased_ind; sl_retreived_msg_ind_t retreived_msg_ind; sl_retreival_comp_ind_t retreival_comp_ind; sl_rb_cleared_ind_t rb_cleared_ind; sl_bsnt_ind_t bsnt_ind; sl_in_service_ind_t in_service_ind; sl_out_of_service_t out_of_service_ind; sl_rem_proc_out_ind_t rem_proc_out_ind; sl_rem_proc_recovered_ind_t rem_proc_recovered_ind; sl_rtb_cleared_ind_t rtb_cleared_ind; }; #define SL_CMD_ARG_SIZE sizeof(sl_cmd_arg_t) #define SL_CMD_2ARG_SIZE sizeof(sl_cmd_2arg_t) #define SL_CMD_3ARG_SIZE sizeof(sl_cmd_3arg_t) #define SL_PDU_REQ_SIZE sizeof(sl_pdu_req_t) #define SL_PDU_IND_SIZE sizeof(sl_pdu_ind_t) #define SL_EMERGENCY_REQ_SIZE sizeof(sl_emergency_req_t) #define SL_EMERGENCY_CEASES_REQ_SIZE sizeof(sl_emergency_ceases_req_t) #define SL_START_REQ_SIZE sizeof(sl_start_req_t) #define SL_STOP_REQ_SIZE sizeof(sl_stop_req_t) #define SL_RETREIVE_BSNT_REQ_SIZE sizeof(sl_retreive_bsnt_req_t) #define SL_RETREIVAL_REQ_AND_FSNC_SIZE sizeof(sl_retreival_req_and_fsnc_t) #define SL_RESUME_REQ_SIZE sizeof(sl_resume_req_t) #define SL_CLEAR_BUFFERS_REQ_SIZE sizeof(sl_clear_buffers_req_t) #define SL_LOCAL_PROC_OUTAGE_REQ_SIZE sizeof(sl_local_proc_outage_req_t) #define SL_CONG_DISCARD_REQ_SIZE sizeof(sl_cong_discard_req_t) #define SL_CONG_ACCEPT_REQ_SIZE sizeof(sl_cong_accept_req_t) #define SL_NO_CONG_REQ_SIZE sizeof(sl_no_cong_req_t) #define SL_POWER_ON_REQ_SIZE sizeof(sl_power_on_req_t) #define SL_LINK_CONG_IND_SIZE sizeof(sl_link_cong_ind_t) #define SL_LINK_CONG_CEASED_IND_SIZE sizeof(sl_link_cong_ceased_ind_t) #define SL_RETREIVED_MSG_IND_SIZE sizeof(sl_retreived_msg_ind_t) #define SL_RETREIVAL_COMP_IND_SIZE sizeof(sl_retreival_comp_ind_t) #define SL_RB_CLEARED_IND_SIZE sizeof(sl_rb_cleared_ind_t) #define SL_BSNT_IND_SIZE sizeof(sl_bsnt_ind_t) #define SL_IN_SERVICE_IND_SIZE sizeof(sl_in_service_ind_t) #define SL_OUT_OF_SERVICE_SIZE sizeof(sl_out_of_service_t) #define SL_REM_PROC_OUT_IND_SIZE sizeof(sl_rem_proc_out_ind_t) #define SL_REM_PROC_RECOVERED_IND_SIZE sizeof(sl_rem_proc_recovered_ind_t) #define SL_RTB_CLEARED_IND_SIZE sizeof(sl_rtb_cleared_ind_t) #endif __SS7_SLI_H__
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
OpenSS7 |
© Copyright 1997-2001, OpenSS7, All Rights Reserved. Last modified: $Date: 2014/10/10 10:45:01 $ |