OpenSS7 STREAMS Interface
This subsection resents the allowable sequence of SDLI primitives. The sequence is described using a state transition table that defines possible states as viewed by the SDL user. The state transition table describes transitions based on the current state of the interfacen and a given SDLI event. Each transition consists of a state change and possibly an interface action. The states, events, and related transition actions are described below, followed by the state transition table itself.
The following table describes the states associated with SDLI. It presents the state name used in the state transition table, the corresponding SDLI state name used throughout this specification, and a brief description of the state.
Table 3. SDLI States
LMI_UNATTACHED |
1 |
No PPA attached, awaiting LMI_ATTACH_REQ. |
CD_UNATTACHED |
LMI_ATTACH_PENDING |
2 |
Waiting for attach. |
(none) |
LMI_UNUSABLE |
3 |
Device cannot be used, stream in hung state. |
CD_UNUSABLE |
LMI_DISABLED |
4 |
PPA attached, awaiting LMI_ENABLE_REQ |
CD_DISABLED |
LMI_ENABLE_PENDING |
5 |
Waiting to send LMI_ENABLE_CON |
CD_ENABLE_PENDING |
LMI_ENABLED |
6 |
Ready for use, awaiting primitive exchange. |
CD_ENABLED |
LMI_DISABLE_PENDING |
7 |
Waiting to send LMI_DISABLE_CON |
CD_DISABLE_PENDING |
(none) |
- |
Input section enabled; disabled after data arrives |
CD_INPUT_ALLOWED |
(none) |
- |
Output section active only |
CD_OUTPUT_ACTIVE |
(none) |
- |
Xray-ing another ppa |
CD_XRAY |
The following tables describe the variables and actions used to describe SDLI state transtions.
The variables are used to distinguish various uses of the same SDLI primitive. To distinguish between events which are dependent upon the state of some value other that the current state, a variable is used to track the value.
Table 4. SDLI State Transition Variables
VARIABLE |
DESCRIPTION |
(none) |
(none) |
The actions represent steps the SDL provider must take during certain state transitions to maintain the interface state. When an action is indicated in the state transition table, the SDL provider should change the state as indicated and perform the specified action.
Table 5. SDLI State Transition Actions
ACTION |
DESCRIPTION |
(none) |
(none) |
The following table describes events initiated by the SDL user that correspond to the various request and response primitives of SDLI. The table presents the event name used in the state transition table, a brief description of the event (including the corresponding SDLI primitive), and a mapping of the event to the associated Communications Device Interface (CDI) primitive.
Table 6. SDLI User-Originated Events
FSM EVENT |
DESCRIPTION |
CDI MAPPING |
ATTACH_REQ |
LMI_ATTACH_REQ primitive |
CD_ATTACH_REQ primitive |
DETACH_REQ |
LMI_DETACH_REQ primitive |
CD_DETACH_REQ primitive |
UNITDATA_REQ |
? |
CD_UNITDATA_REQ primitive |
ENABLE_REQ |
LMI_ENABLE_REQ primitive |
CD_ENABLE_REQ |
DISABLE_REQ |
LMI_DISABLE_REQ primitive |
CD_DISABLE_REQ |
The following table describes the events initiated by the SDL provider that correspond to the various indication, confirmation, and acknowledgement primitives of SDLI. The table represents the event name used in the state transition table, a brief description of the event (including the corresponding SDLI primitive), and a mapping of the event onto the Communications Device Interface (CDI).
Table 7. SDLI Provider-Originated Events
FSM EVENT |
DESCRIPTION |
CDI MAPPING |
UNITDATA_IND |
? |
CD_UNITDATA_IND |
CONNECT_CON |
? |
? |
DISCON_IND |
? |
? |
OK_ACK |
LMI_OK_ACK primitive |
CD_OK_ACK |
ERROR_ACK |
LMI_ERORR_ACK primitive |
CD_ERROR_ACK |
ENABLE_CON |
LMI_ENABLE_CON primitive |
CD_ENABLE_CON |
DISABLE_CON |
LMI_DISABLE_CON primitive |
CD_DISABLE_CON |
Tables ??? to ??? describe the SDLI state transitiosn. Each column represents a state of the SDLI (Table 2) and each row represents a SDLI event (Tables ??? and ???). The intersecting cell defines the resulting state transition (i.e. next state) and associated actions, if any, that must be executed by the SDLI provider to maintain the interface state. Each cell may contain the following
- This transition cannot occur.
n The current input results in a transition to state "n"
n[a] The list of actions "a" should be exectued following the specified state transition "n" (see Table ??? for actions).
The LMI_INFO_REQ and LMI_INFO_ACK primitives are excluded from the state transition table because they can be issued from many states and, when fully processed, do not cuase a state transition to occur. However, the SDL user may not issue a LMI_INFO_REQ if any local acknowledgements are pending. In other words, this primitive may not be issued until the SDL user receives the acknowledgement for any previously issued primitive that is expecting local positive acknowledgement. Thus, this primitive may not be issued from the LMI_ATTACH_PENDING, LMI_DETACH_PENDING, LMI_ENABLE_PENDING, LMI_DISABLE_PENDING states. Failure to comply by this restriction may result in loss of primitives at the stream head if the SDL user is a user process. Once a LMI_INFO_REQ has been issued, the SDL provider must respond with the appropriate acknowledgement primitive.
The following apply to the maintenance of SDLI state:
The SDL provider is responsible for keeping a record of the state of the interface as viewed by the SDL user, to be returned in the LMI_INFO_ACK.
The following points clarify the state transition table:
To ensure accurate processing of SDLI primitives, the SDL provider must adhere to the following rules concerning the receipt and generation of STREAMS M_FLUSH messages during various state transitions.
The following table presents the allowed sequence of SDLI primitives for the common local management phase of communication.
Table 8. SDLI State Transition Table - Local Management Phase
STATES |
UNATT. ATTACH PEND |
DETACH PEND |
DISABLED |
DISABLE PEND |
ENABLE PEND |
ENABLED |
|
ATTACH_REQ |
- |
- |
- |
- |
- |
- |
- |
DETACH_REQ |
- |
- |
- |
- |
- |
- |
- |
ENABLE_REQ |
- |
- |
- |
- |
- |
- |
- |
ENABLE_CON |
- |
- |
- |
- |
- |
- |
- |
DISABLE_REQ |
- |
- |
- |
- |
- |
- |
- |
DISABLE_CON |
- |
- |
- |
- |
- |
- |
- |
The following table presents the allowed sequence of SDLI primitives for the connection and data transfer phases.
Table 9. SDLI State Transition Table - Connection and Data Transfer
STATES |
ENABLED |
UNITDATA_REQ |
- |
UNITDATA_IND |
- |
UDERROR_IND |
- |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
OpenSS7 |
© Copyright 1997-2001, OpenSS7, All Rights Reserved. Last modified: $Date:$ |