SDLI

Section: Linux STREAMS Programmer's Manual (7)
Updated: $Date: 2014/10/10 10:45:00 $
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>

fd = open("/dev/sdl", flags);
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.

SDLI drivers are normally linked using streamio(7) I_PUSH ioctl under a Signalling Data Terminal (SDT) STREAMS module conforming to the Signalling Data Terminal Interface specification sdti(7) such as sdt(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 Style 1 or Style 2 drivers may be configured to autopush the sdt(8) module and appear as sdti(7) drivers. Not all SS7 drivers need be written to the SDL interface: drivers may be written to the sdti(7), sli(7), slsi(7) and even mtpi(7) interfaces.

The SDLI interface consists of three subcomponents:

LOCAL MANAGEMENT INTERFACE
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 interface controls local management (STREAMS configuration functions) which are normally used by the SS7 Configuration Daemon ss7d(8) on the driver interface before pushing an sdt(8) module onto the stream head. The local management interface is described in detail in section "LOCAL MANAGEMENT INTERFACE".
PROTOCOL (SERVICE) INTERFACE
SDLI provides a protocol interface which utilizes M_DATA, M_PROTO and M_PCPROTO 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 interface exchanges SS7 protocol primitives between the Signalling Data Terminal (SDT) and the Signaling Data Link (SDL), but may also be used for ferry-clip conformance testing or diagnostics. The protocol interface is described in detail in section "PROTOCOL INTERFACE".
PROTOCOL MANAGEMENT INTERFACE
SDLI provides a protocol management interface which utilizes M_CTL message between modules or M_IOCTL I_STR messages from a stream head formatted per the SS7 Management Interface smi(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 management interface is described in smi(7) and detailed in section "PROTOCOL MANAGEMENT INTERFACE" below.
CONTROL INTERFACE
SDLI provides a control interface which utilizes ioctl(2) transparent calls or an I_STR ioctl from streamio(2) from a stream head to the driver, or M_CTL messages between modules. The control interface controls specific aspects of the SDL driver which are outside the scop of the SS7 protocol. These controls are normally used 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 control interface is described in the section "CONTROL INTERFACE".

 

LOCAL MANAGEMENT INTERFACE

PPA Style

From the local management view, the SDLI can support two styles for Point of Physical Address (PPA) selection. These styles are as follows:

SDT_STYLE1
A Style 1 driver is a driver whose Signalling Data Link (SDL) is associated with the stream at open time. These drivers open in the SDL_DISABLED state and do not require a SDL_ATTACH_REQ local management primitive to association them with a specific transmission channel. Style 1 drivers do not require PPA addresses.
SDT_STYLE2
A Style 2 driver is a driver whose Signalling Data Link (SDL) must be attached to the stream after open. These drivers open in the SDL_UNATTACHED state an must be attached with a SDL_ATTACH_REQ local management primitive to associate them with an SDL before then can be enabled for use. Style 2 drivers required a PPA (Physical Point of Attachment) address to indicate the physical transmission channel to which the stream is to be attached. The PPA Address is an opaque address which is meaningful only to a specific driver implementation of the SDLI.

Local Management States

From the perspective of local management, the SDL provider can be in a number of management states. Some local management primitives are applicable only in specific states. The SDL provider can be moved through the states wih local management primitives.

The management states of the SDL provider are as follows:

SDL_UNATTACHED
The SDL provider is not attached to a SDL PPA. This state is only applicable to Style 2 drivers which must be explicitly attached to a specific transmission channel. Style 2 drivers open in this state.
SDL_UNUSABLE
The SDL provider is unusable. This state occurs when the streams module is no longer able to perform local management actions on the SDL provider. This may be due to the failure, removal or failure to communicate with, some component in the system.
SDL_DISABLED
The SDL provider is attached but has not yet been enabled for use. The provider must be enabled with a SDL_ENABLE_REQ local management primitive before data or protocol primitives may be exchanged with the SDL user.
SDL_ENABLE_PENDING
The SDL provider has accepted a SDL_ENABLE_REQ request on the interface, but the provider must wait until some event occurs before the provider can be considered enabled. The provider will respond with a SDL_ENABLE_CON confirmation once the enabling is successful, or a SDL_ERROR_ACK if unsuccessful.
SDL_ENABLED
The SDL provider is enabled and ready for use (to provide SDL protocol services).
SDL_DISABLE_PENDING
The SDL provider has accepted a SDL_DISABLE_REQ request on the interface, but the provider must wait until some event occurs before the provider can be considered disabled. The provider will response with a SDL_DISABLE_CON confirmation once the disabling is successful, or a SDL_ERROR_ACK if unsuccessful.

Local Management Primitives

Local management primitive can be exchanged with the device driver as M_PROTO or M_PCPROTO primitives using the putmsg(2) or getmsg(2) system calls on the stream head after opening the device. This interface is normally used only by the SS7 Configuration Daemon ss7d(2) during STREAMS configuration, or by the upstream protocol modules during streamio(7) I_PUSH and I_POP operations. It is possible, however, for a user-level program to use this interface directly on an open SDLI driver stream head for special purposes and testing.

Only M_PROTO local management primitives will be deferred during congestion or overload of the SDL provider. Local management primitives sent as M_PCPROTO will be discarded and return a SDL_ERROR_ACK in response should it not be possible to execute them immediately.

Local management primitives provided by the SDLI are as follows:

SDL_INFO_REQ, SDL_INFO_ACK, SDL_ERROR_ACK

Invoked by the SDL user to request and return information about the SDL provider which is of interest to local configuration management. These requests are normally performed by the SS7 Configuration Daemon ss7d(8) on the newly opened stream head for the SDLI driver before pushing it under the Signalling Data Terminal sdt(8) module.

SDL_INFO_REQ
SDL_INFO_REQ uses a sdt_info_req_t structure which contains the request primitive in member sdt_primitive.
SDL_INFO_ACK
SDL_INFO_ACK uses a sdt_info_ack_t structure as follows:

typedef struct {
    sdl_ulong   sdl_primitive;  /* SDL_INFO_ACK */
    sdl_ulong   sdl_version;
    sdl_ulong   sdl_state;
    sdl_ulong   sdl_max_sdu;
    sdl_ulong   sdl_min_sdu;
    sdl_ulong   sdl_ppa_style;
    sdl_uchar   sdl_ppa_addr[8];
} sdt_info_ack_t;
sdl_version
The version of the SDLI interface specification to which the device conforms with one byte per vesion number in host order. The current (and only) version of the SDLI is 1.0.0.0 or 0x01000000.
sdl_state
The current local management state of the SDL provider.
sdl_min_sdu
The minimum data unit size which may be transferred to and from the transmission channel. For some Signalling Data Links this may be zero.
sdl_max_sdu
The maximum data unit size which may be transferred to and from the transmission channel. For some Signalling Data Links this size may be unlimited, in which case the value returned here is 0xffffffff.
sdl_ppa_style
The style of the driver which may be one of the following:
SDL_STYLE1
A Style 1 device which is implicitly associated with a transmission channel at the time that the device is opened. These devices open in the SDL_DISABLED state.
SDL_STYLE2
A Style 2 device which must be explicitly attached to a transmission channel identified by a sdl_ppa_addr in a SDL_ATTACH_REQ local management primitive after opening. These devices open in the SDL_UNATTACHED state.
sdl_ppa_addr
The PPA address that a Style 2 device is attached to. If the device is a Style 1 device or an unattached Style 2 device, this member will return all zeros.
SDL_ERROR_ACK
SDL_ERROR_ACK containing the error number in sdl_errno and an error explanation in sdl_reason will be returned by the SDL provider in the rare event that an error occurs while attempting to retrieve the information requested by a SDL_INFO_REQ.

SDL_ATTACH_REQ, SDL_OK_ACK, SDL_ERROR_ACK

Invoked by the SDL user to attach a Style 2 SDL provider to a PPA using a PPA Address. This primitive is normally used by the SS7 Configuration Daemon ss7d(8) when assembling the SS7 protocol stack.

SDL_ATTACH_REQ
Requests that the SDL provider attach to the PPA address specified in the request. The SDL_ATTACH_REQ primitive is only valid from the SDL_UNATTACHED state for a Style 2 interface. SDL_ATTACH_REQ uses the sdl_attach_req_t structure as follows:

typedef struct {
    sdl_ulong   sdl_primitive;  /* SDL_ATTACH_REQ */
    sdl_uchar   sdl_ppa_addr[8];
} sdl_attach_req_t;
sdl_ppa_addr
Specifies the PPA (Physical Point of Appearance) of the transmission channel to which the SDT provider should attach. This is an opaque address to the interface and is only meaningful to a specific driver implementation.
SDL_OK_ACK
Returned if the attach request is successful.
SDL_ERROR_ACK
Returned with the error number and explanation set if the attach request fails.

SDL_DETACH_REQ, SDL_OK_ACK, SDL_ERROR_ACK

Invoked by the SDL user to detach a Style 2 SDL provider from its PPA. This primitive is normally used by the SS7 Configuration Daemon ss7d(8) when disassembling or reconfiguring the SS7 protocol stack.

SDL_DETACH_REQ
Requests that the SDL provider detach itself from the current attached PPA. SDL_DETACH_REQ is only valid for Style 2 SDL providers in the SDL_DISABLED state. The DL_DETACH_REQ uses the sdt_detach_req_t structure which contains only the sdl_primitive.
SDL_OK_ACK
Returned if the detach request is successful.
SDL_ERROR_ACK
Returned with the error number and explanation set if the detach request fails.

SDL_ENABLE_REQ, SDL_ENABLE_CON, SDL_ERROR_ACK

SDL_DISABLE_REQ, SDL_DISABLE_CON, SDL_ERROR_ACK  

PROTOCOL MANAGEMENT INTERFACE

Protocol management primitives are provided to allow for protocol-specific configuration, state examination, statistical and event reporting. These primitives use the configuration structure sdl_conf_t, the state machine structure sdl_statem_t, statistics structure sdl_stats_t and event categories described above.

Protocol management primitives are exchanged using M_PROTO and M_PCPROTO messages in the same manner as protocol primtives, using putmsg(2) and Bgetmsg(2) system calls at the stream head or using the pass through mechanism provided by the control channel of an open multiplexor (see sls(8) and mtp(8)). These primitives are normally only used by ss7d(8) during configuration and operation, but may be used for testing and special purposes by user-level programs from the stream head.  

Protocol Configuration

Protocol management primitives are invoked by SDL management to configure or request configuration information from the SDL provider. Any M_DATA block attached to the primitives contains a sdl_conf_t structure (see below) which represents the configuration parameters. Configuration requests should normally be sent as M_PCPROTO messages.

SDL_CONFIG_SETUP
Test if the configuration parameters provided in the attached M_DATA block are settable and correct. Any values set to 0xffffffff in the configuration parameters should not be tested for change by the SDL provider. When successful, this request also write locks the configuration until a successful SDL_CONFIG_COMMIT is executed.
SLD_CONFIG_COMMIT
Commits the changes of a previous successful SDL_CONFIG_TEST operation. No configuration data is associated with this request and any attached M_DATA is ignored. When successful, this request also releases the write locks on the configuration.
SDL_CONFIG_SET
Set the configuration parameters to the values provided in the attached M_DATA block. This request will fail if the configuration is write locked.
SDL_CONFIG_GET
Get the configuration parameters. Any attached M_DATA is ignored. If the configuration is write locked, this request will only return the values which have been setup for a commit and not necessarily the current values.
Responses
Upon success, the SDL provider will return a SDL_OK_ACK to confirm a successful configuration request. The provider attaches a M_DATA block which contains a sdt_conf_t structure with the results of the configuration request.

Upon failure, the SDL provider will return a SDL_ERROR_ACK to reject the configuration request due to an error. The provider attaches a M_DATA block which contains a sdt_conf_t structure with 0xffffffff in any values which are in error. Error numbers which are specific to a configuration request rejection are as follows:

SDL_CONFLOCKED
The request attempted to perform an illegal operation on a locked configuration.
SDL_NOCONFDATA
The request was missing configuration data (i.e. missing M_DATA block or M_DATA block too short.
SDL_BADCONFDATA
Some configuration data was invalid. The attached M_DATA block contains 0xffffffff in the data elements which are considered invalid.
Datastructures
Configuration of the SDL provider uses the sdl_conf_t structure as follows:

typedef struct sdl_conf {
    sdl_ulong   pvar;   /* protocol variant */
    sdl_ulong   popt;   /* protocol options */
    sdl_ulong   N;      /* octet count      */
} sdl_conf_t;
pvar
(Protocol Variant) Default: SS7_PVAR_ITUT_96

Protocol variant which will be used for the SDT provider. When the protocol variant is set, all configuration parameters, options and state machine procedures must conform to the Signalling Data Link sections of the applicable standards. Modifications to this configuration can be made by changing other parameters in the configuration. When the value of pvar is changed, protocol variant specific default values for the rest of the configuration members, unless specified, will be used. pvar can be any of the protocol variant values specified in ss7(7).

popt
(Protocol Options) Default: 0

Options to modify the main specification as determined by pvar. popt is a bit-wise OR of the folloing option bitmasks:

SDL_POPT_HSL
When this bit is set, the SDL provider will use the High-Speed Link (HSL) version of the DAEDR as specified in Q.703 Annex A which does not perform octet counting mode but only reports single SDL_DAEDR_SU_IN_ERROR for loss of synchronization.

When this bit is clear, it indicates that normal Q.703 DAEDR behaviour should be used and SDL_DAEDR_SU_IN_ERROR reported once for every N octets during loss of syncrhonization.

N
(Octets Per SU) Default: 16

The number of octets representing an SU in octet counting mode per Q.703. This value is ignored if popt includes SDL_POPT_HSL.

 

Protocol State

Protocol management primitives may be invoked by SDL management to request and return state information about the SDL provider. This may be useful for resynchronization between protocol modules as well as for testing and diagnostic purposes. Any M_DATA block attached to the primitive or acknowledgement contains a sdl_statem_t structure (see below) which represents the current state of the protocol state machines. State requests may be sent as M_PROTO or M_PCPROTO messages from the stream head. Upstream modules may send a M_CTL message if desired.

SDL_STATE_REQ
Requests that the SDL provider return the current state variables associated with the SDL state machines. This primitive uses a sdl_state_req_t structure which contains only the sdl_primitive.
Responses
Upon success, the SDL provider will return a SDL_OK_ACK to confirm the successful state request. The provider attaches a M_DATA block which contains a sdl_statem_t structure (see "PROTOCOL STATE") containing the state variables.

Upon failure, the SDL provider will return a SDL_ERROR_ACK to reject the state request. Normally the request is successful and only the general error codes (see "ERROR HANDLING") will be returned.

Datastructures
For communicating state information, the SDL provider uses the sdl_statem_t structure as follows:

typedef struct sdl_statem {
    sdl_ulong   daedt_state;
    sdl_ulong   daedr_state;
    sdl_ulong       octet_counting_mode;
} sdl_statem_t;
daedt_state
Total state of the DAEDT state machine per Q.703. This member can take on the value SDL_STATE_IDLE or SDL_STATE_IN_SERVICE.s
daedr_state
Primary state of the DAEDR state machine per Q.703. This member can take on the values SDL_STATE_IDLE or SDL_STATE_IN_SERVICE.
octet_counting_mode
Flag of the DAEDR per Q.703. Indicates that the DAEDR is in octet counting mode per Q.703 when non-zero and in normal mode when zero. The values of this flag is undefined if the SDL_POPT_HSL protocol option is set.
 

Protocol Statistics

Protocol management primitives may be invoked by the SDL management to request and return statistical information collected during the operation of the SDL provider.

Any M_DATA block attached to the primitive or acknowledgement contains a sdl_stats_t structure (see below) which represents the statistics collected during the collection interval by the provider.

Statistics requests should be sent as low priority band M_PROTO messages. The SDLI provider will respond with low priority band M_PROTO messages for all but error conditions, which are sent as M_PCPROTO. SDL_STATS_IND messages will all be sent a low priority band M_PROTO messages. This avoids congestion resulting from syncrhonized data collection intervals across a large number of managed objects in the SS7 stack.

SDL_STATS_SET
Sets the statistics collection and aggregation parameters.
SDL_STATS_GET
Gets the statistics collection and aggrepation parameters as well as the
SDL_STATS_IND
Delivers an indication of the aggregated statistics for a collection period.
Responses
Upon success, SDL_OK_ACK acknowledges a successful statistics request and returns a M_DATA which contains the sdl_stats_t structure returning the statistics and collection and aggregation parameters. Upon failure, SDL_ERROR_ACK rejects a failed statistics request and returns a M_DATA which contains the sdl_stats_t structure returning the statistics, collection and aggregation parameters. Upon autonomous failure, SDL_ERROR_IND indicates a spontaneous failure in statistic collection or aggregation.

In error indications and acknowledgements, sdl_errno values can be a general error value (see "ERROR HANDLING") or one of:

SDL_STATSOOM
Statistics collection ran out of memory.
SDL_STATSSUSPEND
Statistics collection is congested and has been suspended.
SDL_STATSRESUME
Statistics collection congestion has cleared and has been resumed.
Datastructures
The SDL provider communicates statistics using the sdl_stats_t structure as follows:

typedef struct sdl_stats {
    sdl_ulong   octets_transmitted;
    sdl_ulong   octets_received;
} sdl_stats_t;
octets_transmitted
Provides a count (in bytes) of the octets transmitted through the DAEDT for the collection interval.
octets_received
Provides a count (in bytes) of the octets received through the DEADR for the collection interval.
 

Protocol Events

Protocol management primitives may be used by the SDL provider to indicate significant protocol management events or errors.
SDL_EVENT_REQ, SDL_EVENT_IND
Indicates a protocol management event has occured. The event indication uses the sdl_event_int_t structure as follows:

typedef struct {
    sdl_ulong   sdl_primitive; /* SDL_EVENT_IND */
    sdl_ulong   sdl_event_id;
} sdl_event_int_t;
sdl_type
The type of event which has occured. This indicates what may be the structure of any attached M_DATA block. It is one of the following values:

 

PROTOCOL INTERFACE

Protocol Primitives

Protocol primitives are as follows:

SDL_BITS_FOR_TRANSMISSION, SDL_RECEIVED_BITS
SDL_DAEDT_START_REQ
SDL_DAEDR_START_REQ
SDL_DAEDR_CORRECT_SU_IND
SDL_DAEDR_SU_IN_ERROR_IND

 

PROTOCOL MANAGEMENT INTERFACE

SDLI providers recognize the SMI M_CTL interface for protocol layer configuration, state, statistics and event management (see smi(7)) utilizing the following structures:  

Configuration

The control interface uses the sdl_conifig_t structure for configuration requests and responses as follows:

typedef struct sdl_config {
    sdl_ulong   pvar;   /* protocol variant */
    sdl_ulong   popt;   /* protocol options */
    sdl_ulong   N;      /* octets per su    */
    sdl_ulong   type;   /* interface type   */
    sdl_ulong   gtype;  /* group type       */
    sdl_ulong   rate;   /* interface rate   */
    sdl_ulong   mode;   /* interface mode   */
    sdl_ulong   clock;  /* interface clock  */
    sdl_ulong   coding; /* interface coding */
} sdl_config_t;
pvar
Protocol variant which can take on one of the values described in smi(7).
popt
Protocol options which contains a bit vector with any of the following bits set:
SDL_POPT_HSL
High speed links. When this bit is set it indicates that the SDL is a high speed link and will only deliver the first occurence of SDL_DAEDR_SU_IN_ERROR and not to enter octet_counting_mode.
SDL_POPT_XSN
Extended sequence numbers. When this bit is set it indicates that the L2 header consists of 6 octets instead of the normal 3.
N
The number of octets after which to deliver a SDL_DAEDR_SU_IN_ERROR when in octet_counting_mode. This number is meaningless when popt is has bit SDL_OPT_HSL set.

SDLI provides the following common SMI IOCTLS for protocol configuration management:

SDL_IOCTCONFIG [WR] (SMI_CONFIG_SETUP)
arg provides a pointer to a sdl_config_t structure which contains the configuration to setup and returns the results of the setup. This also locks the current configuration if successful.
SDL_IOCCCONFIG [-R] (SMI_CONFIG_COMMIT)
arg provides a pointer to a sdl_config_t structure which will contain the resulting configuration after commiting the last setup configuration. This also unlocks the current configuration if successful.
SDL_IOCSCONFIG [WR] (SMI_CONFIG_SET)
arg provides a pointer to a sdl_config_t structure which contains the configuration to set as well as returning the results of the settings.
SDL_IOCGCONFIG [-R] (SMI_CONFIG_GET)
arg provides a pointer to a sdl_config_t structure which will contain the current configuration when successful.

 

State

The control interface uses the sdl_statem_t structure for protocol state requests and responses as follows:

typedef struct sdl_statem {
    sdl_ulong   daedt_state;
    sdl_ulong   daedr_state;
    sdl_ulong   octet_counting_mode;
} sdl_statem_t;
daedt_state
State of the DAEDT state machine. This state may be either SDL_STATE_IDLE or SDL_STATE_IN_SERVICE.
daedr_state
State of the DAEDR state machine. This state may be either SDL_STATE_IDLE or SDL_STATE_IN_SERVICE.
octet_counting_mode
Flag indicating whether the DAEDR is in octet counting mode.

SDLI provides the following common SMI IOCTLS for protocol state management:

SDL_IOCCMRESET [-R] (SMI_RESET_REQ)
Performs a master reset of the SDL protocol state, placing it into the power-on condition and returns the state of the SDL. arg provides a pointer to a sdl_statem_t structure which will contain the state after master reset.
SDL_IOCGSTATEM [-R] (SMI_STATE_REQ)
Gets the current protocol state of the SDL. arg provides a pointer to a sdl_statem_t structure which will contain the state when successful.

 

Statistics

The control interface uses the sdl_stats_t structure for protocol statistics requests and responses as follows:

typedef struct sdl_stats {
    sdl_ulong   octets_transmitted;
    sdl_ulong   octets_received;
    sdl_ulong   sus_transmitted;
    sdl_ulong   sus_received;
    sdl_ulong   sus_in_error;
    sdl_ulong   breaks;
    sdl_ulong   aborts;
    sdl_ulong   residue_errors;
    sdl_ulong   framing_errors;
    sdl_ulong   frame_too_long;
    sdl_ulong   frame_too_short;
    sdl_ulong   lost_sync;
    sdl_ulong   rx_overruns;
    sdl_ulong   tx_underruns;
    sdl_ulong   dsr_transitions;
    sdl_ulong   cts_transitions;
    sdl_ulong   spurious_interrupts;
    /* others */
} sdl_stats_t;
octets_transmitted
octets_received
sus_transmitted
sus_received
sus_in_error
breaks
aborts
residue_errors
framing_errors
frame_too_long
frame_too_short
lost_sync
rx_overruns
tx_underruns
dsr_transitions
cts_transitions
spurious_interrupts

SDLI provides the following common SMI IOCTLS for protocol statistics management:

SDL_IOCSSTATSP [WR] (SMI_STATSP_SET)
SDL_IOCGSTATSP [R] (SMI_STATSP_GET)
SDL_IOCCSTATS [W] (SMI_STATS_CLR)
SDL_IOCGSTATS [R] (SMI_STATS_GET)

 

Events

 

CONTROL INTERFACE

The SDL provider is expected to support some standard ioctls to configure the SS7 Signalling Data Link driver. They may be used on a stream which is attached to the deivce to which the ioctl applies, or passed through a multiplexor using the pass through IOCTLs of the multiplexor (see mtpi(7) and slsi(7)).

If an ioctl is indicated as privileged, then using it requires sufficient access credentials. If this is not the case, EPERM will be returned.

For the following ioctls, it might not be possible to perform the set operations on all drivers implementations. For some drivers, it might not be possible to perform set operations while the interface is running. Set operations on running interfaces might result in line disruptions. Pseudo-devices should return the null value on get operations.

The ioctls provided by the SDTI are as follows:

SDL_IOCSIFRATE, SDL_IOCGIFRATE
Sets or gets the bit rate associated with the SDL interface. It may not be possible to set the bit rate on all devices (some device have a fixed bit rate). arg points to the bit rate of the line in bits per second at or above 56kbps, and the baud rate of the line in baud below 56kbps.
SDL_IOCSIFTYPE, SDL_IOCGIFTYPE
Sets or gets the interface type associated with the SDL interface. arg is a pointer to an sdl_ulong which contains one of the following values:

SDL_TYPE_NONE Unknown or unspecified. This may be used by some pseudo-devices.
SDL_TYPE_V35 Sychronous serial V.35 channel.
SDL_TYPE_DS0 64kbps DS0 channel.
SDL_TYPE_DS0A 56kbps (robbed bit) DS0A channel.
SDL_TYPE_E1 Full E1.
SDL_TYPE_T1 Full T1.
SDL_TYPE_J1 Full J1.
SDL_TYPE_ATM ATM channel.
SDL_TYPE_PACKET Packet channel.

SDL_IOCSGRPTYPE, SDL_IOCGGRPTYPE
Sets or gets the channel group (span) type associated with the current SDL interface. arg is a pointer to an sdl_ulong which contains one of the following values:

SDL_GTYPE_NONE There is no transmission channel group (span) associated with the device (i.e. the device is a Style 1 device).
SDL_GTYPE_T1 Channel within a T1 span (1 of 24 channels).
SDL_GTYPE_E1 Channel within a E1 span (1 of 30/32 channels).
SDL_GTYPE_J1 Channel within a J1 span (1 of 24 channels).
SDL_GTYPE_ATM VC within an ATM.

SDL_IOCSIFMODE, SDL_IOCGIFMODE
Sets or sets the mode associated with the SDL interface. Valid modes may depend upon interface type. arg is a pointer to an sdl_ulong which contains one of the following values:

SDL_MODE_NONE There is no mode associated with the device. This may be returned by pseudo-devices.
SDL_MODE_DSU DSU mode of serial interface.
SDL_MODE_CSU CSU mode of serial interface.
SDL_MODE_DTE DTE mode of V.35 interface.
SDL_MODE_DCE DCE mode of V.35 interface.
SDL_MODE_CLIENT Client mode (connecting) connection.
SDL_MODE_SERVER Server mode (listening) connection.
SDL_MODE_PEER Peer in peer-to-peer connections.
SDL_MODE_REM_LB Remote Loopback mode (for testing).
SDL_MODE_LOC_LB Local Loopback mode (for testing).
SDL_MODE_LB_ECHO Loopback and Echo mode (for testing).
SDL_MODE_TEST Special purpose test mode.

SDL_IOCSIFCLOCK, SDL_IOCGIFCLOCK
Sets or gets the clocking source associated with the SDL interface. Valid sources may depend upon interface type. arg is a pointer to an sdl_ulong which contains one of the following values:

SDL_CLOCK_NONE No clocking. This may be used for clockless pseudo-devices.
SDL_CLOCK_ASYNC Data stream is asynchronous.
SDL_CLOCK_INT Internally generated clock.
SDL_CLOCK_EXT External clock attached.
SDL_CLOCK_LOOP Tx clock generated from rx clock.
SDL_CLOCK_MASTER Inteface generates tx and rx clocks.
SDL_CLOCK_SLAVE Interface accepts rx and tx clocks.
SDL_CLOCK_DPLL Interface regenerates tx to rx clock w/ DPLL.

SDL_IOCSIFCODING, SDL_IOCGIFCODING
Sets or gets the line coding associated with the SDL interface. Valid codings may depend upon interface type. arg is a pointer to an sdl_ulong which contains one of the following values:

SDL_CODING_NONE No line coding or link coding unspecified. This will be used by pseudo-devices.
SDL_CODING_NRZ Non-return to zero line coding.
SDL_CODING_NRZI Manchester line coding.
SDL_CODING_AMI AMI frame coding.
SDL_CODING_B6ZS B6ZS frame coding.
SDL_CODING_B8ZS B8ZS frame coding.
SDL_CODING_ESF Extended Super Frame coding.
SDL_CODING_AAL1 ATN Adaption Layer 1 coding.
SDL_CODING_AAL2 ATN Adaption Layer 2 coding.
SDL_CODING_AAL5 ATN Adaption Layer 5 coding.

SDL_IOCDEVPRIVATE

ERRROR HANDLING
In addition to the normal errno values returned in an M_IOCNAK message (see ioctl(2) and streamio(2)), the following error codes may also be returned:
EOPNOTSUPP
The set operation will return this error number if the driver does not support setting the object of the command. The get operation returning this error number should be considered the same as a return value of NONE.
EINVAL
The set operation will return this error number if the driver does not support the selected value of the argument in its current mode.
 

ERROR HANDLING

Errors

 

IMPLEMENTATIONS

SDLI drivers which are included in the OpenSS7 release are all pseudo-devices and include:

sdl_eth(8)
SDL emulation using raw Ethernet (802.2).
sdl_ip(8)
SDL emulation using raw Internet Protocol (IP).
sdl_upd(8)
SDL emulation using User Datagram Protocol (UDP).
sdl_tcp(8)
SDL emulation using Transmission Control Protocol (TCP).
sdl_rtp(8)
SDL emulation using Real-Time Transport Protocol (RTP).
sdl_sctp(8)
SDL emulation using Stream Control Transmission Protocol (SCTP).
 

SEE ALSO

 

CAVEATS

 

AUTHOR

Brian F. G. Bidulock, <bidulock@openss7.org>.  

HISTORY

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

REFERENCES

[Q702] ITU-T Recommendation Q.702 Signalling Data Link
[Q703] ITU-T Recommendation Q.703 Signalling Link
[Q704] ITU-T Recommendation Q.704 Message Transfer Part
 

COPYRIGHT

Copyright (C) 2000 Brian Bidulock. All Rights Reserved.

PUBLIC LICENSE

This license is provided without fee, provided that the above copyright 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.


 

Index

NAME
SYNOPSIS
DESCRIPTION
LOCAL MANAGEMENT INTERFACE
PROTOCOL MANAGEMENT INTERFACE
Protocol Configuration
Protocol State
Protocol Statistics
Protocol Events
PROTOCOL INTERFACE
PROTOCOL MANAGEMENT INTERFACE
Configuration
State
Statistics
Events
CONTROL INTERFACE
ERROR HANDLING
IMPLEMENTATIONS
SEE ALSO
CAVEATS
AUTHOR
HISTORY
REFERENCES
COPYRIGHT

This document was created by man2html, using the manual pages.
Time: 05:12:10 GMT, January 08, 2001