OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Sat, 01 Nov 2008 10:43:12 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manual Page
Quick Links

Download

SCTP

SIGTRAN

SS7

Hardware

STREAMS

Asterisk

Related

Package

Manual

FAQ

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Description: Manual Page

Keywords: ss7 ss7/ip ss7 over ip ss7 mtp ss7 sccp ss7 tcap sigtran mtp sccp tcap openss7 acb56 linux telephony pstn linux telephony linux nebs linux compactpci


SDLI

Section: OpenSS7 SS7 Stack Signalling Data Link Interface (SDLI) (7)
Updated: 2008-10-31
Index Return to Main Contents

NAME

sdli - Signalling System No. 7 Signalling Data Link (SDL) Interface

SYNOPSIS

#include <ss7/sdli.h>
#include <ss7/sdli_ioctl.h>

int fd = open (``/dev/sdl'', flags);
int ret = ioctl(fd, cmd, ... /* arg */ );

DESCRIPTION


This man page describes the STREAMS interface which is used to configure and exchange data with an SS7 Signalling Data Link Interface (SDLI) for all SS7 devices conforming to the OpenSS7 Signalling Data Link Interface (SDLI) specification.

LOCAL MANAGEMENT INTERFACE

SDLI drivers are normally linked using streamio(2) I_PUSH ioctl commands under a Signalling Data Terminal (SDT) STREAMS module conforming to the Signalling Data Terminal Interface (SDTI) specification sdti(7) such as sl(8), by the SS7 Configuration Daemon ss7d(8). Yet, this interface is available for the purpose of ferry-clip conformance and diagnostic testing of the SS7 Signalling Data Link.

SDLI Stype 1 and Style 2 drviers may be configured to autopush the sl(8) module and appear as sdli(7) drivers. Not all SS7 drivers need be written to the SDT interface: drivers may be written to the sdti(7), sli(7) slsi(7) and even mtpi(7) interfaces.

SDLI provides a local management interface which utilizes M_PROTO and M_PCPROTO messages which can be exchanged with the interface using putmsg(2) and getmsg(2) system calls on the stream head once the interface is opened. The local management interfae controls local management (STREAMS configuration functions) which are normally used by the SS7 Configuration Daemon ss7d(8) on the driver interface before pushing an sl(8) module onto the stream head.

The Local Management Interface (LMI) is common to all OpenSS7 drivers and modules and is described in detail in lmi(7).

DEVICE CONTROL INTERFACE

SDLI provides a device control interface which utilizes ioctl(2) transparent calls or an I_STR ioctl under streamio(2) from a stream head to the driver. The device control interface controls aspects of the SDL driver device which are outside the scope of the SS7 protocol. These controls are normally issued by the SS7 Configuration Daemon ss7d(8) on the driver interface or multiplexor control channel before or after the protocol stack has been assembled.

The device control interface (DEVI) is common to all OpenSS7 drivers and modules and is described in detail in devi(7).

PROTOCOL SERVICE INTERFACE

SDLI provides a protocol service interface which uses M_DATA, M_PROTO and M_PCPROTO STREAMS messages which can be exchanged with write(2), read(2), putmsg(2) or getmsg(2) system calls on the stream head, or which can be exchanged with the driver by upstream pushed or linked modules. The protocol service interface exchanges SS7 protocol service primitives between the Signalling Data Terminal (SDT) and the Signalling Data Link (SDL), but may also be used for ferry-clip conformance testing or diagnostics.

The protocol service interface for SDLI is described in detail in section PROTOCOL SERVICE INTERFACE, below.

PROTOCOL MANAGEMENT INTERFACE

SDLI provides a protocol mangement interface which uses M_CTL messages between modules or M_IOCTL messages from a stream head. This interface uses the controls defined in the Local Management Interface (LMI) as detailed under INPUT OUTPUT CONTROL INTERFACE in lmi(7). The protocol management interface provides protocol configuration, state inquiry, statistics and event management (SNMP functions). This interface is normally used by the SS7 Configuration Daemon ss7d(8) on the stream after opening or during operation.

The protocol service interface for SDLI is described in detail in section PROTOCOL MANAGEMENT INTERFACE below.

PROTOCOL SERVICE INTERFACE

Protocol service interface commands are from the stream head to the SDL driver using putmsg(2) and getmsg(2) commands as follows:

fd = open("/dev/sdl");
ret = putmsg(fd, ctlptr, dataptr, flags);
ret = getmsg(fd, ctlptr, dataptr, flags);

Downstream messages are sent from the stream head using putmsg(2); upstream messages are received at the stream head using getmsg(2).

flags is either RS_HIPRI or not indicating a M_PCPROTO or an M_PROTO message respectively. ctlptr and dataptr are pointers to a strbuf structure which contains the following members:

struct strbuf {
    int     maxlen;     /* not used       */
    int     len;        /* length of data */
    void    *buf;       /* ptr to buffer  */
};

buf contains a pointer to a SDL_primitive union which contains one of the following primitives and structures:

Downstream Primitives

Downstream primitives are sent from the stream head to the protocol state machines using putmsg(2) system calls as described above. Except where otherwise noted, buf contains only the sdl_primitive field which is set to the value of the primitive.

SDL_DAEDT_TRANSMISSION_REQ
Transmit data. This primitive must be sent with an accompanying M_DATA block which is pointed to by the dataptr in a putmsg(2) or is the buffer which is the argument of a write(2) on the stream file descriptor.
SDL_DAEDT_START_REQ
Start the DAEDT state machine.
SDL_DAEDR_START_REQ
Start the DAEDR state machine.

Upstream Primitives

Upstream primitives are collected at the stream head from the protocol state machines using getmsg(2) system calls as described above. Except where otherwise noted, buf contains only the sdl_primitive field which is set to the value of the primitive.

SDL_DAEDR_RECEIVED_BITS_IND
Receive data. This primitive is received with an accompanying M_DATA block which is pointed to by the dataptr in a getmsg(2) or is the buffer which is returned from a read(2) on the stream file descriptor. This primitive indicates additional information in the sdl_daedr_received_bits_ind_t structure as follows:

typedef struct {
    sdl_ulong   sdl_primitive;  /* SDL_DAEDR_RECEIVED_BITS_IND */
    sdl_ulong   sdl_count;
} sdl_daedr_received_bits_ind_t;
sdl_primitive
Contains the primitive which is set to SDL_DAEDR_RECEIVED_BITS_IND.
sdl_count
Contains the count of the number of consecutive times that this signal unit was received since the last indication.
SDL_DAEDR_CORRECT_SU_IND
Correct Signal Unit received indication. This primitive indicates additional information in the sdl_daedr_correct_su_ind_t structure as follows:

typedef struct {
    sdl_ulong   sdl_primitive;  /* SDL_DAEDR_CORRECT_SU_IND */
    sdl_ulong   sdl_count;
} sdl_daedr_correct_su_ind_t;
sdl_primitive
Contains the primitive which is set to SDL_DAEDR_CORRECT_SU_IND.
sdl_count
Contains the count of the number of correct signal units received since the last indication.
SDL_DAEDR_SU_IN_ERROR_IND
Signal Unit received in error indication.

PROTOCOL MANAGEMENT INTERFACE

Protocol management interface comands are from the stream head to the SDL driver using streamio(2) I_STR commands as follows:

fd = open("/dev/sdl");
ret = ioctl(fd, I_STR, arg);

Where arg is a pointer to a strioctl structure which contains the following members:

struct strioctl {
    int     ic_cmd;
    int     ic_timout;
    int     ic_len;
    char    *ic_dp;
};

ic_cmd can be one of the protocol management interface commands described in the following subsections:

Protocol Options

Protocol management controls which affect protocol options are used by local management to set protocol variants and protocol options inherent to the SDL provider.

The ic_cmd contains one of the following options commands:

SDL_IOCGOPTIONS
Gets the protocol variant pvar and protocol options popt assigned to the Signalling Data Link into the provided lmi_option structure.
SDL_IOCSOPTIONS
Sets the protocol variant pvar and protocol options popt to the Signalling Data Link as provided in the lmi_option structure.

ic_dp points to a lmi_option structure which represents the protocol variant and options parameters as follows:

typedef struct lmi_option {
    lmi_ulong   pvar;
    lmi_ulong   popt;
} lmi_option_t;
pvar
Specifies the protocol variant to be used for the Signalling Data Link and may be one of the following values:
SS7_PVAR_ITUT_88ITU-T Q.703 1988 (Blue Book)
SS7_PVAR_ITUT_93ITU-T Q.703 1993 (Grey Book)
SS7_PVAR_ITUT_96ITU-T Q.703 1996 (White Book)
SS7_PVAR_ITUT_00ITU-T Q.703 2000 (? Book)
SS7_PVAR_ANSI_88ANSI T1.113-1988
SS7_PVAR_ANSI_92ANSI T1.113-1992
SS7_PVAR_ANSI_96ANSI T1.113-1996
SS7_PVAR_ANSI_00ANSI T1.113-2000
SS7_PVAR_ETSI_88ETSI 300 008-1 1988
SS7_PVAR_ETSI_93ETSI 300 008-1 1993
SS7_PVAR_ETSI_96ETSI 300 008-1 1996
SS7_PVAR_ETSI_00ETSI 300 008-1 2000
SS7_PVAR_JTTC_94JTTC JQ.703 1994
popt
Specifies the protocol options to be used for the Signalling Data Link and may be a bitwise OR of any of the following values:
SS7_POPT_MPLEVMulti Priority/Cong Levels
SS7_POPT_PCRPreventative Cyclic Retrans
SS7_POPT_HSLHigh Speed Links
SS7_POPT_XSNExtended Sequence Numbers
SS7_POPT_ALLAll options

Protocol Configuration

Protocol management controls which affect protocol configuration are invoked by local management to configure or request configuration information from the SDL provider.

The ic_cmd contains one of the following configuration commands:

SDL_IOCGCONFIG
Gets the protocol configuration of the Signalling Data Link into the provided sdl_config structure.
SDL_IOCSCONFIG
Sets the protocol configuration of the Signalling Data Link from the provided sdl_config structure.
SDL_IOCTCONFIG
Tests the protocol configuration as provided in the sdl_config structure against the Signalling Data Link for consistency and validity. Also locks the configuration of the SDL provider awaiting a commit.
SDL_IOCCCONFIG
Commits the protocol configuration as provided in the sdl_config structure to the Signalling Data Link. Also unlocks the configuration of the SDL provider.

ic_dp points to a sdl_config structure which represents the Signalling Data Link protocol configuration as follows:

typedef struct sdl_config {
    sdl_ulong   N; /* octets per su in OCM */
    sdl_ulong   m; /* maximum SIF size     */
} sdl_config_t;
N
Contains the number of octets which are considered an SU during octet-counting mode.
m
Contains the maximum SIF size in octets for the link. This is normally set to 272. procedure of ITU-T Q.703 Annex A.

Protocol State

Protocol management controls which affect protocol state are invoked by local management to request information about the state of the protocol state machines in the SDL provider.

The ic_cmd contains one of the following state commands:

SDL_IOCGSTATEM
Gets the protocol state machine variables of the Signalling Data Link into the provided sdl_statem structure.
SDL_IOCCMRESET
Performs a master reset on the protocol state machines and returns the power-on settings of the state machine variables of the Signalling Data Link into the provided sdl_statem structure.

ic_dp points to a sdl_statem structure which represents the Signalling Data Link protocol state as follows:

typedef struct sdl_statem {
    sdl_ulong   daedt_state;
    sdl_ulong   daedr_state;
    sdl_ulong   octet_counting_mode;
} sdl_statem_t;
daedt_state
Contains the Delimitation Alignment and Error Detection for the Transmit side (DAEDT) current state. This state is either 0 for idle, or non-zero for active.
daedr_state
Contains the Delimitation Alignment and Error Detection for the Receive side (DAEDR) current state. This state is either 0 for idle, or non-zero for active.
octet_counting_mode
Contains a flag which indicates whether the receiver is in octet counting mode or not.

Protocol Data Collection

Protocol management controls which affect protocol measurement data collection are invoked by local management to request and alter collection periods for data collection within the SDL provider.

ic_cmd contains one of the following collection commands:

SDL_IOCGSTATSP
Get the protocol measurement collection period information of the identified object_id into the provided lmi_sta structure.
SDL_IOCSSTATSP
Set the protocol measurement collection period information of the identified object_id using the provided lmi_sta structure.

ic_dp points to a lmi_sta structure which represnts the Signalling Data Link collection periods as follows:

typedef struct lmi_sta {
    lmi_ulong   object_id;  /* object id for stats      */
    lmi_ulong   colperiod;  /* collection period        */
    lmi_ulong   timestamp;  /* timestamp end of period  */
} lmi_sta_t;
object_id
Contains the object idenitfier for the managed object to which the collection information applies.
colperiod
Contains the collection period (in jiffies). The managed object measurement data must be collected and notified once for each collection period interval.
timestamp
Contains a timestamp (in seconds since epoch) which identifies the system time at which a collection period ends. This value is used in conjunction with the collection period to calculate the time of the next collection interval.

Protocol Statistics

Protocol management controls which affect protocol statistics are invoked by local management to request information about statistics pertaining to the SDL provider.

ic_cmd contains one of the following statistics commands:

SDL_IOCGSTATS
Get the protocol statistics of the Signalling Data Link for the current collection period into the provided sdl_stats structure.
SDL_IOCCSTATS
Clear the protocol statisics of the Signalling Data Link for the current collection period and return the statistics which were accumulated to the point of clearing during the current interval sdl_stats structure.

ic_dp points to a sdl_stats structure which represents the Signalling Data Link protocol statistics as follows:

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;            /* Q.752 Table 1.8  5,30 min */
    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_frame_overflows;
    sdl_ulong   rx_frame_too_long;
    sdl_ulong   rx_frame_too_short;
    sdl_ulong   rx_residue_errors;
    sdl_ulong   lead_cts_lost;
    sdl_ulong   lead_dcd_lost;
    sdl_ulong   carrier_lost;
} sdl_stats_t;
header
Contains the timestamp for the current collection interval for which statistics are being reported.
tx_bytes, tx_sus, tx_underruns, tx_aborts, tx_buffer_overflows, tx_sus_in_error
Contains transmitter statistics for the current collection interval.
rx_bytes, rx_sus, rx_overruns, rx_aborts, rx_buffer_overflows, rx_sus_in_error, rx_sync_transitions, rx_bits_octet_counted, rx_crc_errors, rx_frame_errorsrx_residue_errors
Contains receiver statistics for the current collection interval.
carrier_cts_lost, lead_dcd_lost, lead_lost
Contains interface statistics for the current collection interval.

Protocol Events

Protocol management controls which affect notification of events to local management are invoked by local management to request information about notifications which have been requested as well as to set notification by event.

The ic_cmd contians one of the following notify commands:

SDL_IOCGNOTIFY
Gets the protocol notification bitmask of the Signalling Data Link into the provided sdl_notify structure.
SDL_IOCSNOTIFY
Sets protocol notification for the Signalling Data Link events identified by set bits in the provided sdl_notify structure.
SDL_IOCCNOTIFY
Clears protocol notification for the Signalling Data Link events identified by set bits in the provided sdl_notify structure.

ic_dp points to a sdl_notify structure which represents the Signalling Data Link protocol event notifications as follows:

typedef struct sdl_notify {
    sdl_ulong   sdl_notifications;
} sdl_notify_t;
sdl_notifications
Contains a bit mask with bits set for each Signalling Data Link event for which notification has been requested. May also contain set bits for events for which notification should be set (SDL_IOCSNOTIFY) or cleared (SDL_IOCCNOTIFY). The mask is the bitwise OR of any of the following values:
SDL_EVT_LOST_SYNCReceived lost flag sync.
SDL_EVT_SU_ERRORSU received in error.
SDL_EVT_TX_FAILTransmitter failure.
SDL_EVT_RX_FAILReceiver failure.

SEE ALSO

devi(7), getmsg(2), ioctl(2), lmi(7), mtpi(7), putmsg(2), read(2), sdti(7), sl(8), sl(8), sli(7), slsi(7), ss7d(8), streamio(2), write(2)

BUGS

Too many to mention.

HISTORY

This STREAMS interface for SS7 is an original part of the OpenSS7 package.

REFERENCES

[1]
ITU-T Recommendation Q.702, Signalling System No. 7 --- Signalling Data Link, March 1993, (Geneva), ITU, ITU-T Telecommunication Standardization Sector of ITU. (Previously "CCITT Recommendation") <http://www.itu.int/rec/T-REC-Q.702/>
[2]
ITU-T Recommendation Q.703, Signalling System No. 7 --- Signalling Link, March 1993, (Geneva), ITU, ITU-T Telecommunication Standardization Sector of ITU. (Previously "CCITT Recommendation") <http://www.itu.int/rec/T-REC-Q.703/>
[3]
ITU-T Recommendation Q.704, Message Transfer Part --- Signalling Network Functions and Messages, March 1993, (Geneva), ITU, ITU-T Telecommunication Standardization Sector of ITU. (Previously "CCITT Recommendation") <http://www.itu.int/rec/T-REC-Q.704/>

TRADEMARKS

OpenSS7tm
is a trademark of OpenSS7 Corporation.
Linux®
is a registered trademark of Linus Torvalds.
UNIX®
is a registered trademark of The Open Group.
Solaris®
is a registered trademark of Sun Microsystems.

Other trademarks are the property of their respective owners.

IDENTIFICATION


OpenSS7 SS7 Stack: Package strss7 version 0.9a.8 released 2008-10-31.

Copyright©1997-2008OpenSS7 Corp. All Rights Reserved.
(See roff source for permission notice.)



Index

NAME
SYNOPSIS
DESCRIPTION
LOCAL MANAGEMENT INTERFACE
DEVICE CONTROL INTERFACE
PROTOCOL SERVICE INTERFACE
PROTOCOL MANAGEMENT INTERFACE
PROTOCOL SERVICE INTERFACE
Downstream Primitives
Upstream Primitives
PROTOCOL MANAGEMENT INTERFACE
Protocol Options
Protocol Configuration
Protocol State
Protocol Data Collection
Protocol Statistics
Protocol Events
SEE ALSO
BUGS
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 03:51:40 GMT, May 23, 2013
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manual Page
Last modified: Sat, 01 Nov 2008 10:43:12 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.