Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

Related

Package

Manual

Manual Pages

References

Conformance

Performance

Documentation

Design

Status

Overview

FAQ

SS7 Stack

BICC

ISUP

TCAP

SCCP

MTP Level 3

SS7 Stack Manager

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

Base Station System Application Protocol (BSSAP)

Description: OpenSS7 Project Manual Pages SS7 Stack


BSSAP

Section: OpenSS7 SS7 Stack Devices (4)
Updated: 2008-10-31
Index Return to Main Contents

NAME

BSSAP - Base Station System (BSS) Application Part (BSSAP) Driver

SYNOPSIS

#include <ss7/cci.h>
#include <ss7/bssapi.h>
#include <ss7/bssapi_ioctl.h>

int bssap_stream = open(/dev/bssap, flag);

DESCRIPTION

BSSAP
is an implementation of the Base Station System (BSS) Application Part (BSSAP) Layer 3 as defined in ETSI GSM 04.08. BSSAP provides a reliable sequenced delivery of call control messages over a connection oriented data link between a GSM BSS and a GSM MSC. BSSAP provides strong assurances that the data arrives in order on a stream and performs retransmission of lost packets. It generates and checks a per-packet checksum (at lower levels) to catch transmission errors.

MSSAP is a implemented as a STREAMS(4) multiplexing driver. sccp(4) or sua(4) streams are linked under the BSSAP multiplexing driver using the I_LINK or I_PLINK comands of streamio(7), to provide data link services to BSSAP. Once linked, the streams are configured using the IO controls listed below under ``IOCTLS''.

BSSAP provides the stream types listed below. To select a stream, device can be selected from the following:

/dev/bssap
This device provides the BSSAP protocol service interface using the Call Control Interface (CCI) described in cci(7). This interface is suitable for use with other SS7 modules and the OpenSwitch call control libraries.

IOCTLS

int retval = ioctl(fd, cmd, arg);

Options


Options can be got and set using the gsma_option structure formatted as follows:

typedef struct gsma_option {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    /* followed by object-specific options structure */
} gsma_option_t;

For the following IO controls, arg is a pointer to a gsma_option structure.

GSMA_IOCGOPTIONS
Get the options for the object with the specified type and id.
GSMA_IOCSOPTIONS
Set the options for the object with the specified type and id.

Configuration

Configuration can be managed using the IO control described below. For configuration IO controls, arg points to a gsma_config structure followed by an object type sepcific configuration structure described under ``OBJECTS'', below.

The gsma_config structure is formatted as follows:

typedef struct gsma_config {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    ulong cmd;                  /* object command */
    /* followed by object-specific configuration structures */
} gsma_config_t;

The gsma_config structure has the following members:

id,
is an identifier for the object or zero (0) on GSMA_ADD if the driver should assign a unique object identifier;
type,
specifies the object type to which the identifier applies; and
cmd,
is the action to perform on the object.

The configuration command, cmd, can be one of the following values:

GSMA_GET,
gets the object configuration and as many children of the object as will fit in the supplied buffer;
GSMA_ADD,
adds an object with the given id, or, if the id is zero (0), assigns a new identifier for the newly created object;
GSMA_CHA,
changes the configuration of the specified object; and
GSMA_DEL,
deletes the specified object.

The following IO controls are defined for confiruation management:

GSMA_IOCGCONFIG
Gets the confiruation for the specified object and as many children as will fit in the provided buffer. This IO control implies the GMSA_GET configuration command.
GSMA_IOCSCONFIG
Sets the configuration for the specified object. This IO control uses the GSMA_ADD, GSMA_CHA or GSMA_DEL configuration command.
GSMA_IOCTCONFIG
Tests the configuration for the specified object. This IO control uses the GSMA_ADD, GSMA_CHA or GSMA_DEL configuration command.
GSMA_IOCCCONFIG
Commits the configuration for the specified object. This IO control uses the GSMA_ADD, GSMA_CHA or GSMA_DEL configuration command.

State

State can be managed using the IO controls described below. For state management IO controls, arg points to a gsma_statem structure folled by an object type specific state structure described under ``OBJECTS'', below.

The gsma_statem structure is formatted as follows:

typedef struct gsma_statem {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    ulong flags;                /* object primary flags */
    ulong statem;               /* object primary state */
    /* followed by object-specific configuration structures */
} gsma_statem_t;

The gsma_statem structure has the following members:

type,
is the type of the object whose state is to be managed;
id,
is the identifier of the object of the type;
flags,
are the primary state flags associated with the object ; and
state,
is the primary state of the object.

The following IO controls are defined for configuration management:

GSMA_IOCGSTATEM
Gets the state associated with the object. The argument pointer, arg, points to the gsma_statem structure and object-type-specific structure that will hold the results of the state retrieval.
GSMA_IOCCMRESET
Resets the state of the specified object. The argument pointer, arg, points to gsma_statem structure and object-type-specific structure that will hold the results of the state of the object after the reset.

Statistics

Statistics can be collected and collection intervals managed using the IO controls described below. For statistics management IO controls, arg points to a gsma_stats structure, followed by an object-type-specific statistics structure described under ``OBJECTS'', below.

The gsma_stats structure is formatted as follows:

typedef struct gsma_stats {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    ulong header;               /* object stats header */
    /* followed by object-specific configuration structures */
} gsma_stats_t;

The gsma_stats structure has the following members:

type,
is the type of the object whose state is to be managed;
id,
is the identifier of the object of the type;
header,
is a system timestamp indicating the collection time for the statistics.

The following IO controls are defined for statistics collection and management:

GSMA_IOCGSTATSP
Get the statistics periods for the specified object. The argument, arg, is a pointer to the gsma_stats structure that will hold the collected statistics periods.
GSMA_IOCSSTATSP
Set the statistics periods for the specified object. The argument arg, is a pointer to the gsma_stats structure that specifies the new collection periods.
GSMA_IOCGSTATS
Collect statistics for the specified object. The argument, arg, is a pointer to the gsma_stats structure that will hold the collected statistics.
GSMA_IOCCSTATS
Clear statistics for the specified object. The argument, arg, is ignored.

Events

Events can be managed using the IO controls described below. For event management IO controls, arg points to a gsma_notify structure.

The gsma_notify structure is formatted as follows:

typedef struct gsma_notify {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    lmi_notify_t notify;        /* object notifications */
    /* followed by object-specific configuration structures */
} gsma_notify_t;

The gsma_notify structure has the following members:

type,
the type of the object;
id,
the identifier of the object of a type; and
notify,
a bitmask of the events for which management should receive notifications.

The following IO controls are defined for event management:

GSMA_IOCGNOTIFY
Gets the notifications for the specified object. The argument, arg, points to a gsma_notify structure to hold the retrieved events. Each event flag set in the notify field of the retrieved structure corresponds to an active notification; each event flag clear, to an inactive notification.
GSMA_IOCSNOTIFY
Sets notifications for the specified object. The argument, arg, points to a gsma_notify structure that specifies the bit mask of the notifications to activate. Each notification flag that is set in the notify field of the structure will be activated.
GSMA_IOCCNOTIFY
Clears notifications for the specified object. The argument, arg, points to a gsma_notify structure that specifies the bit mask of the notifications to deactivate. Each notification flag that is set in the notify field of the structure will be deactivated.

When an event occurs for an active notification, a CC_MAINT_IND(7) indication will be generated by the CCS provider.

Management

Objects can be managed using the IO controls described below. For object management IO controls, arg points to a gsma_mgmt structure formatted as follows:

typedef struct gsma_mgmt {
    ulong type;                 /* object type */
    ulong id;                   /* object id */
    ulong cmd;                  /* object command */
} gsma_mgmt_t;

The gsma_mgmt structure has the following members:

type,
the type of the object;
id,
the identifier of the object of a type; and
cmd,
the management command.

The management command, cmd, may be one of the following values:

GSMA_MGMT_REGISTER
GSMA_MGMT_DEREGISTER
GSMA_MGMT_INHIBIT
GSMA_MGMT_UNINHIBIT

The following IO controls are defined for object management:

GSMA_IOCCMGMT
Invokes the specified management command on the specified object.

OBJECTS

BSSAP provides for management of a number of managed object. These objects are of a number of types as follows:

GSMA_OBJ_TYPE_DF
Default object. The default object represents all global and BSSAP instance information.

GSMA_OBJ_TYPE_CC
Call Control User. A call control user object represents a BSSAP user. For example, an open BSSAP stream is a BSSAP user object. BSSAP user objects are identified by their "stream token". Call control user objects are not directly manageable by BSSAP IO controls. These objects are managed in the STREAMS context through the use of the open(2), close(2), putmsg(2) and getmsg(2) ssytem calls. Information about call control users, and call control user management is performed using the protocol service interface. See cci_bssap(7).

GSMA_OBJ_TYPE_CR
Call Reference. A call reference is a reference to a call independent of the GSM-A circuits to which the call corresponds. This is to support network suspend/resume where the call is detached from the GSM-A circuit and then associated with a new GSM-A circuit when it is resumed. Calls belong to a Mobile Station (MS). A call is associated with a SCCP connection that is used for signalling for the call. A call has a list of circuits that are being used for the call.

GSMA_OBJ_TYPE_CT
Circuit. Each circuit object corresponds to a single timeslot in a GSM-A interface between an MSC and a BSS that can be used to carry MS calls. Each circuit can be engaged in a call with a Call Control user and can be engaged in management with a Management User. Each circuit belongs to a Circuit Group and can belong to a Call Reference when engaged in a call.

GSMA_OBJ_TYPE_CG
Circuit Group. Each circuit group object corresponds to a logical and physical group of circuits (i.e. circuits that are time-slots in the same GSM-A E1/T1 interface). Each circuit group constis of a set of circuits that use the same transmission facility. Each circuit group can be engaged in circuit group management with a Management User. Each circuit group belongs to a BSS or MSC.

GSMA_OBJ_TYPE_SC
SCCP Connection. An SCCP connection is a connection oriented association between a base station system BSS and a mobile switching center MSC used for call signalling for a mobile station MS. An SCCP connection is associated with a call reference.

GSMA_OBJ_TYPE_MS
Mobile Station. A mobile statiion is associated with a call reference.

GSMA_OBJ_TYPE_BSS
Base Station System. A BSS is a local or remote base station system that has a connected GSM-A interface. A BSS is a collection of circuit groups and signalling connections. A BSS can be identified by its local or remote SS7 signalling point code or a Common Language Equipment Identifier (CLEI). An integer identifier is assigned to each BSS object for identifying the object to the CCS provider.

GSMA_OBJ_TYPE_MSC
Mobile Switching Center. An MSC is a local or remote mobile switching center that has a conneced GSM-A interface. An MSC is a collection of circuit groups an signalling connections. An MSC can be identified by its local or remote SS7 signalling point code or a Common Language Equipment Identifier (CLEI). An integer identifier is assigned to each MSC object for identifying the object to the CCS provider.

GSMA_OBJ_TYPE_SP

GSMA_OBJ_TYPE_DF

Configuration

typedef struct gsma_conf_df {
} gsma_conf_df_t;

Options

typedef struct gsma_opt_conf_df {
} gsma_opt_conf_df_t;

State

typedef struct gsma_timers_df {
} gsma_timers_df_t;
typedef struct gsma_statem_df {
    gsma_timers_df_t timers;
} gsma_statem_df_t;

Statistics

typedef struct gsma_stats_df {
} gsma_stats_df_t;

Events

Management

GSMA_OBJ_TYPE_CC

Configuration


Options


State


Statistics


Events

Management

GSMA_OBJ_TYPE_CR

Configuration

typedef struct gsma_conf_cr {
} gsma_conf_cr_t;

Options

typedef struct gsma_opt_conf_cr {
} gsma_opt_conf_cr_t;

State

typedef struct gsma_timers_cr {
} gsma_timers_cr_t;
typedef struct gsma_statem_cr {
    gsma_timers_cr_t timers;
} gsma_statem_cr_t;

Statistics

typedef struct gsma_stats_cr {
} gsma_stats_cr_t;

Events

Management

GSMA_OBJ_TYPE_CT

Configuration

typedef struct gsma_conf_ct {
} gsma_conf_ct_t;

Options

typedef struct gsma_opt_conf_ct {
} gsma_opt_conf_ct_t;

State

typedef struct gsma_timers_ct {
} gsma_timers_ct_t;
typedef struct gsma_statem_ct {
    gsma_timers_ct_t timers;
} gsma_statem_ct_t;

Statistics

typedef struct gsma_stats_ct {
} gsma_stats_ct_t;

Events

Management

GSMA_OBJ_TYPE_CG

Configuration

typedef struct gsma_conf_cg {
} gsma_conf_cg_t;

Options

typedef struct gsma_opt_conf_cg {
} gsma_opt_conf_cg_t;

State

typedef struct gsma_timers_cg {
} gsma_timers_cg_t;
typedef struct gsma_statem_cg {
    gsma_timers_cg_t timers;
} gsma_statem_cg_t;

Statistics

typedef struct gsma_stats_cg {
} gsma_stats_cg_t;

Events

Management

GSMA_OBJ_TYPE_SC

Configuration

typedef struct gsma_conf_sc {
} gsma_conf_sc_t;

Options

typedef struct gsma_opt_conf_sc {
} gsma_opt_conf_sc_t;

State

typedef struct gsma_timers_sc {
} gsma_timers_sc_t;
typedef struct gsma_statem_sc {
    gsma_timers_sc_t timers;
} gsma_statem_sc_t;

Statistics

typedef struct gsma_stats_sc {
} gsma_stats_sc_t;

Events

Management

GSMA_OBJ_TYPE_MS

Configuration

typedef struct gsma_conf_ms {
} gsma_conf_ms_t;

Options

typedef struct gsma_opt_conf_ms {
} gsma_opt_conf_ms_t;

State

typedef struct gsma_timers_ms {
} gsma_timers_ms_t;
typedef struct gsma_statem_ms {
    gsma_timers_ms_t timers;
} gsma_statem_ms_t;

Statistics

typedef struct gsma_stats_ms {
} gsma_stats_ms_t;

Events

Management

GSMA_OBJ_TYPE_BSS

Configuration

typedef struct gsma_conf_bss {
    ulong spid;                 /* local signalling point id */
    struct sccp_addr add;       /* remote signalling address */
    lmi_option_t proto;         /* protocol variant and options */
} gsma_conf_bss_t;

Options

typedef struct gsma_opt_conf_bss {
    /* timer values */
} gsma_opt_conf_bss_t;

State

typedef struct gsma_timers_bss {
} gsma_timers_bss_t;
typedef struct gsma_statem_bss {
    gsma_timers_bss_t timers;
} gsma_statem_bss_t;

Statistics

typedef struct gsma_stats_bss {
} gsma_stats_bss_t;

Events

Management

GSMA_OBJ_TYPE_MSC

Configuration

typedef struct gsma_conf_msc {
    ulong spid;                 /* local signalling point id */
    struct sccp_addr add;       /* remote signalling address */
    lmi_option_t proto;         /* protocol variant and options */
} gsma_conf_msc_t;

Options

typedef struct gsma_opt_conf_msc {
} gsma_opt_conf_msc_t;

State

typedef struct gsma_timers_msc {
} gsma_timers_msc_t;
typedef struct gsma_statem_msc {
    gsma_timers_msc_t timers;
} gsma_statem_msc_t;

Statistics

typedef struct gsma_stats_msc {
} gsma_stats_msc_t;

Events

Management

GSMA_OBJ_TYPE_SP

Configuration

typedef struct gsma_conf_sp {
    ulong spid;                 /* local signalling point identifier */
    ulong srid;                 /* remote signalling point identifier */
    ulong muxid;                /* lower multiplexing driver id (SCCP connectionless) */
    lmi_option_t proto;         /* protocol variant and options */
} gsma_conf_sp_t;

Options

typedef struct gsma_opt_conf_sp {
} gsma_opt_conf_sp_t;

State

typedef struct gsma_timers_sp {
} gsma_timers_sp_t;
typedef struct gsma_statem_sp {
    gsma_timers_sp_t timers;
    ulong tst_bind;
    ulong mgm_bind;
    ulong mnt_bind;
    ulong icc_bind;
    ulong ogc_bind[0];
    /* followed by bound streams for outgoing calls */
} gsma_statem_sp_t;

Statistics

typedef struct gsma_stats_sp {
} gsma_stats_sp_t;

Events

Management

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
IOCTLS
Options
Configuration
State
Statistics
Events
Management
OBJECTS
GSMA_OBJ_TYPE_DF
GSMA_OBJ_TYPE_CC
GSMA_OBJ_TYPE_CR
GSMA_OBJ_TYPE_CT
GSMA_OBJ_TYPE_CG
GSMA_OBJ_TYPE_SC
GSMA_OBJ_TYPE_MS
GSMA_OBJ_TYPE_BSS
GSMA_OBJ_TYPE_MSC
GSMA_OBJ_TYPE_SP
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 05:40:35 GMT, November 12, 2014
Last modified: Sun, 05 Mar 2006 08:34:05 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.