OpenSS7 STREAMS Interface
This section presents some optional primitives to perform essential management functions. The management functions supported fall into several categories:
Input output controls are provided which permit for device configuration and control. These are not part of the service primitive interface for SDLI, but provide a mechanism whereby upper-layer entities can determine characteristics of the device for use in determining protocol configuration values. For example, many of the SS7 signalling data terminal and signalling link (Level 2 state machine timer values) depend on the bit-rate of the signalling data link. Also, to perform a Level 1 connection function (L1-CONNECT) it is also necessary for an SDL provider to know the nature of the interface to determin whether lead control on the interface is appropriate. This is accomplished with the following input output controls.
Resets the interface to the power-on state.
Sets or gets interface flags. Not all SDL provider necessarily support setting of the interface flags. The argument of this ioctl command is a bit-or'ed combination of one or more of the following flags:
DEV_IF_UP |
The interface is up and running and prepared to process data. |
DEV_IF_RX_RUNNING |
The receive side of the interface is running: data received on the interface will be delivered to the SDL user.. |
DEV_IF_TX_RUNNING |
The transmit side of the interface is running: data from the SDL user will be transmitted over the interface. |
DEV_IF_SU_COMPRESS |
The interface will compress received FISUs or LSSUs. |
Gets or sets the interface type. Not all SDL providers necessarily support setting of the interface type. The argument of this command is one and only one of the following values:
DEV_TYPE_NONE |
The interface is a pseudo interface which is supported by some other protocol (e.g. SIGTRAN). |
DEV_TYPE_V35 |
The interface is a V.35 interface. V.35 interfaces must provide for lead controls. |
DEV_TYPE_DS0 |
The interface is a DS0 interface (at 64kbps). |
DEV_TYPE_DS0A |
The interface is a DS0A interface (at 56kbps). |
DEV_TYPE_E1 |
The interface is an unchannelized E1 interface (at 2.048Mbps). |
DEV_TYPE_T1 |
The interface is an unchannelized T1 interface (at 1.544Mbps). |
DEV_TYPE_J1 |
The interface is an unchannelized J1 interface (at 1.544Mbps). |
DEV_TYPE_ATM |
The interface is an ATM cell interface. |
DEV_TYPE_PACKET |
The interface is a packet interface (e.g., IP or Ethernet) |
Gets or sets the interface group type. SDL providers do not normally permit the setting of interface group type. The argument of the command is one and only one of the following values:
DEV_GTYPE_NONE |
There is no group type: the physical medium does not support the multiplexing of communications channels. |
DEV_GTYPE_T1 |
The interface is a timeslot within a T1 group. |
DEV_GTYPE_E1 |
The interface is a timeslot within an E1 group. |
DEV_GTYPE_J1 |
The interface is a timeslot within a J1 group. |
DEV_GTYPE_ATM |
The interface is a vritual circuit witin an ATM group. |
DEV_GTYPE_ETH |
The interface is a connection over an Ethernet LAN group. |
DEV_GTYPE_IP |
The interface is a connection using an IP network group. |
DEV_GTYPE_UDP |
The interface is a port to port connection using a UDP transport group. |
DEV_GTYPE_TCP |
The interface is a port to port connection using a TCP transport group. |
DEV_GTYPE_RTP |
The interface is a port to port connection using an RTP transport group. |
DEV_GTYPE_SCTP |
The interface is a stream within an SCTP transport group. |
Gets or sets the interface mode corresponding to the interface type. Not all SDL provider necessarily support the setting of the interface mode, even when the setting is applicable to the interface type. The argument of the command is one and only one of the following values:
DEV_MODE_NONE |
There is no selection of interface mode for this interface type. |
DEV_MODE_DSU |
The interface mode is Data Set. |
DEV_MODE_CSU |
The interface mode is Control Set. |
DEV_MODE_DTE |
The interface is a Data Terminal Equipment interface. |
DEV_MODE_DCE |
The interface is a Data Control Equipment interface. |
DEV_MODE_CLIENT |
The interface is in client mode (actively initiating connections). |
DEV_MODE_SERVER |
The interface is in server mode (listening for connections). |
DEV_MODE_PEER |
The interface is in peer mode (initiating and listening for connections). |
DEV_MODE_ECHO |
The interface is in echo mode. All bits transmitted on the channel will be copied to the receive channel. |
DEV_MODE_REM_LB |
The interface is in remote loopback mode. All bits transmitted will be sent down the transmit channel and remotely looped back at the other end to be received on the receive channel. |
DEV_MODE_LOC_LB |
The interface is in local loopback mode. All bits received on the receive channel will be copied to the transmit channel. |
DEV_MODE_LB_ECHO |
The interface is in loopback and echo mode. All bits received on the receive channel will be looped to the transmit channel and all bits transmitted on the transmit channel will be looped back to the receive channel. |
DEV_MODE_TEST |
The interface is in a special test mode. |
Gets or sets the interface bit rate (in bits per second). Not all SDL providers support the setting of interface rates. Those SDL provider which support the setting of bit rates may restrict the settings which are available depending on the interface type. Setting the interface type may result in a change to the setting of the interface rate. The argument to this command is the value to be got or set.
Gets or sets the interface clock mode. Not all SDL providers wil support the setting of interface clock modes. Those SDL providers which support the setting of interface clock modes may restrict the alllowable settings to those modes which are application to the interface type. The argument to these commands will take on one of the following values:
DEV_CLOCK_NONE |
There is no clock or the mode is implied by the interface type. |
DEV_CLOCK_INT |
A clock source internal to the interface is used for timing on the interface. |
DEV_CLOCK_EXT |
A clock source external to the interface is used for timing on the interface. |
DEV_CLOCK_LOOP |
The transmit clock is regenerated from the receive clock. |
DEV_CLOCK_MASTER |
The interface provides timing to the interface. |
DEV_CLOCK_SLAVE |
The interface derives its timing off of the interface. |
DEV_CLOCK_DPLL |
The interface uses a digital phase locked loop to generate timing information from the interface. |
DEV_CLOCK_ABR |
The interface uses an average bit rate mechanism toemulate a bit rate. |
DEV_CLOCK_SHAPER |
The interface uses a traffic shaping mechanism to emulate a bit rate. |
Gets or sets the interface bit coding. SDL providers do not typically support changing the bit (or frame) coding of interfaces. The argument to this command is one of the following values.
DEV_CODING_NONE |
Bits are sent on the communications channel without coding. |
DEV_CODING_NRZ |
Bits are coded using Non-Return-to-Zero coding. |
DEV_CODING_NRZI |
Bits are coded using and Inverted Non-Return-to-Zero (Manchester) coding. |
DEV_CODING_AMI |
Bits are coded using AMI frame coding on a G.703/704 facility. |
DEV_CODING_B6ZS |
Bits are coded using B6ZS frame coding on a G.703/704 facility. |
DEV_CODING_B8ZS |
Bits are coded using B8ZS frame coding on a G.703/704 facility. |
DEV_CODING_ESF |
Bits are coded using Extended Super Frame coding on a G.703/G.704 facility. |
DEV_CODING_AAL1 |
Bits are coded into ATM AAL1 cells. |
DEV_CODING_AAL2 |
Bits are coded into ATM AAL2 cells (w/o silence suppression). |
DEV_CODING_AAL5 |
Bits are coded into ATM AAL5 cells (without further coding). |
Get, sets (asserts) or clears (de-asserts) interface leads. Not all SDL providers support the setting or clearing of leads. Those SDL provider which support lead setting or clearing do not necessarily suppor the setting or clearing of all leads. Not all interface type or mode settings permit the setting or clearing of leads. The argument to this command is a bit-wise or of zero or more of the following flags:
DEV_LEAD_DTR |
Data Terminal Ready |
Get, Set or Clear |
DEV_LEAD_RTS |
Request To Send |
Get, Set or Clear |
DEV_LEAD_DCD |
Data Carrier Detect |
Get |
DEV_LEAD_CTS |
Clear To Send |
Get |
DEV_LEAD_DSR |
Data Set Ready |
Get |
Disconnects or connects the transmitter to the transmit channel for the purpose of Q.781 conformance testing. Not all SDL providers necessarily support this function. These commands do not take an argument.
Each protocol level or module in the OpenSS7 stack must know the protocol variant and protocol options which are being used for the protocol level so that the provider can alter the state machine behavior to match that variant and options. These input output control commands are provided to examine and configure the protocol variant and options.
Gets or sets the protocol variant and options. Not all SDL providers support the setting of all protocol variants and all options. Even when the SDL provider supports the setting of variants and options, not all variants or options are necessarily supported. The argument to these commands is a structure of the following format:
typedef struct lmi_option { lmi_ulong pvar; lmi_ulong popt; } lmi_options_t;
|
|
SS7_PVAR_ITUT_88 |
ITU-T Q.700 Recommendations (1988) |
SS7_PVAR_ITUT_93 |
ITU-T Q.700 Recommendations (1993) |
SS7_PVAR_ITUT_96 |
ITU-T Q.700 Recommendations (1996) |
SS7_PVAR_ITUT_00 |
ITU-T Q.700 Recommendations (2000) |
SS7_PVAR_ANSI_88 |
ANSI T1.111/1988 |
SS7_PVAR_ANSI_92 |
ANSI T1.111/1992 |
SS7_PVAR_ANSI_96 |
ANSI T1.111/1996 |
SS7_PVAR_ANSI_00 |
ANSI T1.111/2000 |
SS7_PVAR_ETSI_88 |
ETSI ETS 300 008-1 (1988) |
SS7_PVAR_ETSI_93 |
ETSI ETS 300 008-1 (1993) |
SS7_PVAR_ETSI_96 |
ETSI ETS 300 008-1 (1996) |
SS7_PVAR_ETSI_00 |
ETSI ETS 300 008-1 (2000) |
SS7_PVAR_JTTC_94 |
TTC J.Q700 Specifications (1994) |
|
|
SS7_POPT_MPLEV |
Multiple priority/congestion levels. |
SS7_POPT_PCR |
Preventative Cyclic Retransmission. |
SS7_POPT_HSL |
High speed link. |
SS7_POPT_XSN |
Extended sequence numbers (for high speed links). |
SS7_POPT_ALL |
All of the above options. |
Provisioning correct protocol configuration values which are used by state machines and timers are necessary for correct operation of the protocol layer. Configuration values may be established or queried with the following input output control commands:
Gets, sets, tests or commits the protocol configuration values. Not all SDL providers support the setting of some or any protocol configuration values. The argument to these commands is as structure of the following format:
typedef struct sdl_config { sdl_ulong N; sdl_ulong m; } sdl_config_t;
N |
the number of octets which represents an errored signal unit when in octet-counting-mode. |
m |
the maximum number of octets which are permitted in the Service Information Field (SIF) of a signal unit. This number should not be greater than the maximum SDL SDU size in bytes, nor should it be less that the minimum SDL SDU size in bytes: both as returned in an LMI_INFO_ACK. |
For diagnostic purposes it may necessary to control or examine the state variables associated with the state machines which are operating inside of the protocol layer. A set of intput output control commands are provided for establishing and examining the state variables associated with the SDL provider. These intput output control commands are as follows:
Gets or sets the state variables associated wtih the SDL provider's protocol state machines. Not all SDL providers will support the getting or setting of these values. The arguments to these commands is a structure of the following format:
typedef struct sdl_statem { sdl_ulong daedt_state; sdl_ulong daedr_state; sdl_ulong octet_couting_mode; } sdl_statem_t;
Collection and control of statistics and measurements are necessary for proper administration and provisioning of SS7. Statistic can be collected, collection intervals altered and statistis cleared and interrogated using the following input output control commands:
Get collection periods, set collection periods, get collection interval counts and clear collection interval counts. The argument of these commands use as structure formatted as shown below.
The SDL_IOCGSTATSP and SDL_IOCSSTATSP are responsible for getting and setting the statistics and measurements collection period. This is performed by setting the header of the statistics structure to the timestamp of the boundary of the collection interval and setting the appropriate counts to the during of the collection interval for that count.
The SDL_IOCGSTATS and SDL_IOCCSTATS may be used to gather or clear the statistical counts and measures as defined in the structure, each for the current collection interval.
typedef struct sdl_stats { lmi_ulong header; sdl_ulong rx_bytes; sdl_ulong tx_bytes; sdl_ulong rx_sus; sdl_ulong tx_sus; sdl_ulong rx_overruns; sdl_ulong tx_underruns; sdl_ulong rx_aborts; sdl_ulong tx_aborts; sdl_ulong rx_buffer_overflows; sdl_ulong tx_buffer_overflows; sdl_ulong rx_sus_in_error; sdl_ulong tx_sus_in_error; sdl_ulong rx_sync_transitions; sdl_ulong rx_bits_octet_counted; sdl_ulong rx_crc_errors; sdl_ulong rx_frame_errors; sdl_ulong rx_overflows; sdl_ulong rx_frame_too_long; sdl_ulong rx_frame_too_short; sdl_ulong rx_residue_errors; sdl_ulong rx_length_errors; sdl_ulong lead_cts_lost; sdl_ulong lead_dcd_lost; sdl_ulong carrier_lost; } sdl_stats_t;
Reporting of events are important for the monitoring and maintenance of SS7. Specific events can be marked for notification using the following input output control commands:
Gets, sets or clears event notifications for specific events. These commands use an argument structure formatted as follows:
typedef sdl_notify { sdl_ulong sdl_notifications; } sdl_notify_t;
SDL_EVT_LOST_SYNC |
Notify whenever frame synchronization is lost. |
SDL_EVT_SU_ERROR |
Notify whenever a signal unit is received in error. |
SDL_EVT_TX_FAIL |
Notify whenever the tranmit channel fails. |
SDL_EVT_RX_FAIL |
Notify whenever the receive channel fails. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
OpenSS7 |
© Copyright 1997-2001, OpenSS7, All Rights Reserved. Last modified: $Date:$ |