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: 19:01:26 GMT, November 27, 2024