|
OpenSS7 SS7 for the Common Man |
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
||||||||||||||||||||||||||
| Home | Overview | Status | News | Documentation | Resources | About | |||||||||||||||||||||
File /code/strss7/include/ss7/isdni_ioctl.h
#ifndef __SS7_ISDNI_IOCTL_H__
#define __SS7_ISDNI_IOCTL_H__
#ident "@(#) $Name: $($Revision: 0.8.2.2 $) Copyright (c) 1997-2002 OpenSS7 Corporation."
#define ISDN_IOC_MAGIC 'I'
/* protocol options */
#define ISDN_POPT_ACK 0x00000001
#define ISDN_POPT_ENQ 0x00000002
#define ISDN_POPT_CAUSE 0x00000004
#define ISDN_POPT_REL 0x00000008
#define ISDN_POPT_USER 0x00000010
#define ISDN_POPT_REJ 0x00000020
#define ISDN_OBJ_TYPE_DF 0 /* default */
#define ISDN_OBJ_TYPE_CH 1 /* channel */
#define ISDN_OBJ_TYPE_TG 2 /* transmission group */
#define ISDN_OBJ_TYPE_FG 3 /* facility group */
#define ISDN_OBJ_TYPE_EG 4 /* equipment group */
#define ISDN_OBJ_TYPE_XG 5 /* exchange group */
#define ISDN_OBJ_TYPE_DC 6 /* d channel */
#define ISDN_OBJ_TYPE_DL 7 /* data link */
/*
* Call specific structures
* -----------------------------------
* Calls belong to a facility group and a call control interface and call
* management interface. A call has a list of channels which are being used
* for the call.
*/
typedef struct isdn_conf_cr {
ulong fgid; /* facility group identifier */
ulong ccid; /* call control idenitifer */
ulong cmid; /* call management identifier */
/* followed by a list channel configurations */
} isdn_conf_cr_t;
typedef struct isdn_opt_conf_cr {
} isdn_opt_conf_cr_t;
typedef struct isdn_timers_cr {
ulong t301; /* ISDN T301 timer */
ulong t302; /* ISDN T302 timer */
ulong t303; /* ISDN T303 timer */
ulong t304; /* ISDN T304 timer */
ulong t305; /* ISDN T305 timer */
ulong t306; /* ISDN T306 timer */
ulong t307; /* ISDN T307 timer */
ulong t308; /* ISDN T308 timer */
ulong t309; /* ISDN T309 timer */
ulong t310; /* ISDN T310 timer */
ulong t312; /* ISDN T312 timer */
ulong t313; /* ISDN T313 timer */
ulong t314; /* ISDN T314 timer */
ulong t316; /* ISDN T316 timer */
ulong t317; /* ISDN T317 timer */
ulong t318; /* ISDN T318 timer */
ulong t319; /* ISDN T319 timer */
ulong t320; /* ISDN T320 timer */
ulong t321; /* ISDN T321 timer */
ulong t322; /* ISDN T322 timer */
} isdn_timers_cr_t;
typedef struct isdn_statem_cr_t {
isdn_timers_cr_t timers;
ulong t303_count; /* count of T303 timeouts */
ulong t308_count; /* count of T308 timeouts */
} isdn_statem_cr_t;
typedef struct isdn_stats_cr {
} isdn_stats_cr_t;
/*
* Channel specific structures
* -----------------------------------
* Channels belong to an tranmission group (all channels and data links
* sharing the same transmission facility: i.e. PRI span) and a facility
* group whose d-channels are responsible for call control for this
* channel.
*/
typedef struct isdn_conf_ch {
ulong fgid; /* facility group identifier */
ulong tgid; /* transmission group identifier */
ulong ts; /* timeslot in transmission group */
/* followed by a null list */
} isdn_conf_ch_t;
typedef struct isdn_opt_conf_ch {
} isdn_opt_conf_ch_t;
typedef struct isdn_timers_ch {
} isdn_timers_ch_t;
typedef struct isdn_statem_ch {
isdn_timers_ch_t timers;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_ch_t;
typedef struct isdn_stats_ch {
} isdn_stats_ch_t;
/*
* Transmission Group specific structures
* -----------------------------------
* Each transmission group belongs to an equipment group (all equipment
* connecting the same two endpoints).
*/
typedef struct isdn_conf_tg {
ulong egid; /* equipment group identifier */
lmi_option_t proto; /* protocol options */
/* followed by list of data link configurations */
/* followed by list of channel configurations */
} isdn_conf_tg_t;
typedef struct isdn_opt_conf_tg {
} isdn_opt_conf_tg_t;
typedef struct isdn_timers_tg {
} isdn_timers_tg_t;
typedef struct isdn_statem_tg {
isdn_timers_tg_t timers;
ulong mgm_actv;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_tg_t;
typedef struct isdn_stats_tg {
} isdn_stats_tg_t;
/*
* Facility Group specific structures
* -----------------------------------
* Each facility group belongs to an equipment group (all equipment
* connecting the same two endpoints).
*/
typedef struct isdn_conf_fg {
ulong egid; /* equipment group identifier */
lmi_option_t proto; /* protocol options */
/* followed by list of data link configurations */
/* followed by list of channel configurations */
} isdn_conf_fg_t;
typedef struct isdn_opt_conf_fg {
ulong t301; /* ISDN T301 timer */
ulong t302; /* ISDN T302 timer */
ulong t303; /* ISDN T303 timer */
ulong t304; /* ISDN T304 timer */
ulong t305; /* ISDN T305 timer */
ulong t306; /* ISDN T306 timer */
ulong t307; /* ISDN T307 timer */
ulong t308; /* ISDN T308 timer */
ulong t309; /* ISDN T309 timer */
ulong t310; /* ISDN T310 timer */
ulong t312; /* ISDN T312 timer */
ulong t313; /* ISDN T313 timer */
ulong t314; /* ISDN T314 timer */
ulong t316; /* ISDN T316 timer */
ulong t317; /* ISDN T317 timer */
ulong t318; /* ISDN T318 timer */
ulong t319; /* ISDN T319 timer */
ulong t320; /* ISDN T320 timer */
ulong t321; /* ISDN T321 timer */
ulong t322; /* ISDN T322 timer */
} isdn_opt_conf_fg_t;
typedef struct isdn_timers_fg {
} isdn_timers_fg_t;
typedef struct isdn_statem_fg {
isdn_timers_fg_t timers;
ulong mgm_actv;
ulong xry_actv;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_fg_t;
typedef struct isdn_stats_fg {
} isdn_stats_fg_t;
/*
* Equipment Group specific structures
* -----------------------------------
*/
typedef struct isdn_conf_eg {
ulong xgid; /* exchange group identifier */
lmi_option_t proto; /* protocol options */
/* followed by list of facility group configurations */
/* followed by list of transmission group configurations */
} isdn_conf_eg_t;
typedef struct isdn_opt_conf_eg {
} isdn_opt_conf_eg_t;
typedef struct isdn_timers_eg {
} isdn_timers_eg_t;
typedef struct isdn_statem_eg {
isdn_timers_eg_t timers;
ulong mgm_actv;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_eg_t;
typedef struct isdn_stats_eg {
} isdn_stats_eg_t;
/*
* Exchange Group specific structures
* -----------------------------------
*/
typedef struct isdn_conf_xg {
lmi_option_t proto; /* protocol options */
/* followed by list of equipment group configurations */
} isdn_conf_xg_t;
typedef struct isdn_opt_conf_xg {
} isdn_opt_conf_xg_t;
typedef struct isdn_timers_xg {
} isdn_timers_xg_t;
typedef struct isdn_statem_xg {
isdn_timers_xg_t timers;
ulong mgm_actv;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_xg_t;
typedef struct isdn_stats_xg {
} isdn_stats_xg_t;
/*
* D Channel specific structures
* -----------------------------------
*/
typedef struct isdn_conf_dc {
ulong fgid; /* facility group controlled by this d channel */
ulong tgid; /* transmission group for this d channel */
ulong ts; /* timeslot in transmission group */
struct dl_addr sap; /* data link address (PPA and SAPI only) */
lmi_option_t proto; /* protocol options */
} isdn_conf_dc_t;
typedef struct isdn_timers_dc {
} isdn_timers_dc_t;
typedef struct isdn_opt_conf_dc {
isdn_timers_dc_t timers;
} isdn_opt_conf_dc_t;
typedef struct isdn_statem_dc {
isdn_timers_dc_t timers;
ulong mgm_bind;
ulong xry_bind;
} isdn_statem_dc_t;
typedef struct isdn_stats_dc {
} isdn_stats_dc_t;
/*
* Data Link specific structures
* -----------------------------------
*/
typedef struct isdn_conf_dl {
ulong muxid; /* lower multiplexer id */
ulong dcid; /* d channel for this data link */
struct dl_addr dlc; /* data link address (PPA, SAPI and TEI) */
lmi_option_t proto; /* protocol options */
} isdn_conf_dl_t;
typedef struct isdn_opt_conf_dl {
} isdn_opt_conf_dl_t;
typedef struct isdn_timers_dl {
} isdn_timers_dl_t;
typedef struct isdn_statem_dl {
isdn_timers_dl_t timers;
ulong mgm_bind;
ulong xry_bind;
} isdn_statem_dl_t;
typedef struct isdn_stats_dl {
} isdn_stats_dl_t;
/*
* Default specific structures
* -----------------------------------
*/
typedef struct isdn_conf_df {
lmi_option_t proto; /* protocol options */
/* followed by list of exchange group configurations */
} isdn_conf_df_t;
typedef struct isdn_opt_conf_df {
} isdn_opt_conf_df_t;
typedef struct isdn_timers_df {
} isdn_timers_df_t;
typedef struct isdn_statem_df {
isdn_timers_df_t timers;
ulong mgm_bind;
ulong mnt_bind;
ulong xry_bind;
ulong icc_bind;
ulong ogc_bind[0];
} isdn_statem_df_t;
typedef struct isdn_stats_df {
} isdn_stats_df_t;
/*
* OPTIONS
*/
typedef struct isdn_option {
ulong type; /* object type */
ulong id; /* object id */
/* followed by object-specific options structure */
} isdn_option_t;
#define ISDN_IOCGOPTIONS _IOWR( ISDN_IOC_MAGIC, 0, isdn_option_t )
#define ISDN_IOCSOPTIONS _IOWR( ISDN_IOC_MAGIC, 1, isdn_option_t )
/*
* CONFIGURATION
*/
typedef struct isdn_config {
ulong type; /* object type */
ulong id; /* object id */
ulong cmd; /* object command */
/* followed by object-specific configuration structure */
} isdn_config_t;
#define ISDN_GET 0
#define ISDN_ADD 1
#define ISDN_CHA 2
#define ISDN_DEL 3
#define ISDN_IOCGCONFIG _IOWR( ISDN_IOC_MAGIC, 2, isdn_config_t )
#define ISDN_IOCSCONFIG _IOWR( ISDN_IOC_MAGIC, 3, isdn_config_t )
#define ISDN_IOCTCONFIG _IOWR( ISDN_IOC_MAGIC, 4, isdn_config_t )
#define ISDN_IOCCCONFIG _IOWR( ISDN_IOC_MAGIC, 5, isdn_config_t )
/*
* STATE
*/
typedef struct isdn_statem {
ulong type; /* object type */
ulong id; /* object id */
ulong flags; /* object primary flags */
ulong state; /* object primary state */
/* followed by object-specific state structure */
} isdn_statem_t;
#define ISDN_IOCGSTATEM _IOWR( ISDN_IOC_MAGIC, 6, isdn_statem_t )
#define ISDN_IOCCMRESET _IOWR( ISDN_IOC_MAGIC, 7, isdn_statem_t )
/*
* STATISTICS
*/
typedef struct isdn_stats {
ulong type; /* object type */
ulong id; /* object id */
ulong header; /* object stats header */
/* followed by object-specific stats structure */
} isdn_stats_t;
#define ISDN_IOCGSTATSP _IOWR( ISDN_IOC_MAGIC, 8, isdn_stats_t )
#define ISDN_IOCSSTATSP _IOWR( ISDN_IOC_MAGIC, 9, isdn_stats_t )
#define ISDN_IOCGSTATS _IOWR( ISDN_IOC_MAGIC, 10, isdn_stats_t )
#define ISDN_IOCCSTATS _IOWR( ISDN_IOC_MAGIC, 11, isdn_stats_t )
/*
* EVENTS
*/
typedef struct isdn_notify {
ulong type; /* object type */
ulong id; /* object id */
lmi_notify_t notify; /* notifications */
} isdn_notify_t;
#define ISDN_IOCGNOTIFY _IOR( ISDN_IOC_MAGIC, 12, isdn_notify_t )
#define ISDN_IOCSNOTIFY _IOW( ISDN_IOC_MAGIC, 13, isdn_notify_t )
#define ISDN_IOCCNOTIFY _IOW( ISDN_IOC_MAGIC, 14, isdn_notify_t )
/*
* ISDN MANAGEMENT
*/
typedef struct isdn_mgmt {
ulong type; /* object type */
ulong id; /* object id */
ulong cmd; /* command */
} isdn_mgmt_t;
#define ISDN_MGMT_BLOCK 1
#define ISDN_MGMT_UNBLOCK 2
#define ISDN_MGMT_RESET 3
#define ISDN_MGMT_QUERY 4
#define ISDN_IOCCMGMT _IOWR( ISDN_IOC_MAGIC, 15, isdn_mgmt_t )
/*
* CONTROL LOWER
*/
typedef struct isdn_pass {
ulong muxid; /* mux index of lower DL to pass message to */
ulong type; /* type of message block */
ulong band; /* band of message block */
ulong ctl_length; /* length of cntl part */
ulong dat_length; /* length of data part */
/* followed by cntl and data part of message to pass to DL */
} isdn_pass_t;
#define ISDN_IOCCPASS _IOWR( ISDN_IOC_MAGIC, 16, isdn_pass_t )
#define ISDN_IOC_FIRST 0
#define ISDN_IOC_LAST 16
#define ISDN_IOC_PRIVATE 32
#endif /* __SS7_ISDNI_IOCTL_H__ */
|
|||||||||||||||||||||||||||
|
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
|
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
|||||||||||||||||||||||||||