|
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/ua_lm.h
#ifndef __SS7_UA_LM_H__
#define __SS7_UA_LM_H__
#ident "@(#) $Name: $($Revision: 0.8.2.2 $) Copyright (c) 1997-2002 OpenSS7 Corporation."
/*
* Includes for Layer Management Primitives: used by the UA configuration
* daemons and some by the user in Application Server mode.
*/
#define LM_SG_ADD_REQ 51
#define LM_SG_DEL_REQ 52
#define LM_AS_ADD_REQ 53
#define LM_AS_DEL_REQ 54
#define LM_PROC_ADD_REQ 55
#define LM_PROC_DEL_REQ 56
#define LM_LINK_ADD_REQ 57
#define LM_LINK_DEL_REQ 58
#define LM_ROUTE_ADD_REQ 59
#define LM_ROUTE_DEL_REQ 60
#define LM_REG_RES 61
#define LM_REG_REF 62
#define LM_INFO_REQ 63
#define LM_LINK_IND 71 /* something happend on link below */
#define LM_OK_ACK 72
#define LM_ERROR_ACK 73
#define LM_REG_IND 74
#define LM_DEREG_IND 75
#define LM_ERROR_IND 76
#define LM_INFO_ACK 77
/*
* LM_INFO_REQ
* -------------------------------------------------------------------------
* Request information about the SP multiplexor which has been opened.
*/
typedef struct {
ulong prim; /* always LM_INFO_REQ */
} lm_info_req_t;
/*
* LM_INFO_ACK
* -------------------------------------------------------------------------
* This returns information about the SP multiplexor which has been opened.
* For now it just returns the identifier (clone minor number) of the SP
* associated with the multiplexor. Opening /dev/xxua_asp0X will open
* another AS/LM stream for the multiplexor, where xx is the UA protocol and
* X is the spid.
*/
typedef struct {
ulong prim; /* always LM_INFO_ACK */
ulong spid; /* SP Identifier */
} lm_info_ack_t;
/*
* Process types:
*/
#define LM_ASP 0x01 /* ASP - Application Server Process proxy */
#define LM_SGP 0x02 /* SGP - Signalling Gateway Process proxy */
#define LM_SPP 0x04 /* SPP - Signalling Point Process proxy */
#define LM_SS7 0x10 /* The ASP/SGP is an SS7 stream */
#define LM_IPC 0x20 /* The ASP/SGP is an IPC stream */
#define LM_UAP 0x40 /* The ASP/SGP/SPP is a UA proxy */
/*
* LM_SG_ADD_REQ
* -------------------------------------------------------------------------
* Requests that the driver add or augment the signalling gateway fro the
* protocol on whose user or control queue the request was issued. The AS
* identifier is for further reference. The layer or local management queue
* normally uses this primitive to add a signallingg gateway which does not
* yet exist. This is normally only done on a node acting as an ASP. The
* traffic mode describes the traffic mode to be used between the SGP on the
* SG. For ASP operation, the aspid is used to inidcate the idetnifier that
* the ASP will use when it goes up for the given SG. Only one SP is ever
* associated with an SG.
*/
typedef struct {
ulong prim; /* always LM_SG_ADD_REQ */
ulong sgid; /* SG identifier */
ulong flags; /* flags */
ulong tmode; /* Traffic Mode */
ulong prio; /* priority */
ulong cost; /* cost */
ulong aspid; /* ASP Identifier */
} lm_sg_add_req_t;
typedef struct {
ulong prim; /* always LM_SG_DEL_REQ */
ulong sgid; /* SG identifier */
} lm_sg_del_req_t;
#define LM_SG_AUTODEL 0x01 /* the SG will be removed when unused */
#define LM_SG_PERM 0x02 /* the SG will survive loss of lmq */
/*
* LM_AS_ADD_REQ
* -------------------------------------------------------------------------
* Requests that the driver add or augment the application server for the
* protocol on whose user or control queue the request was issued. The AS
* identifier is for further reference. The RC or IID identifier will be
* added to the AS if the AS already exists with the specified AS Id.
*
* The layer or local management queue normally uses this primitive to add an
* application server which does not yet exist at boot time or in response to
* an LM_REG_REQ before issuing an LM_REG_RES.
*
* The optional routing (link) key is only required for statically allocated
* Application Servers. This key is used to bind/connect SS7 provider
* streams which support the AS or to generate REG REQ to SGP/SPP IPC and
* UA proxies. I don't really intend to use this function, but it is
* there to support all SIGTRAN UA allocation modes.
*
* The ASID is provided to uniquely identify the AS within the system.
*
* The RC is only required for statically allocated AS. That is, if dynamic
* registration is desired, the RC value should be zero.
*
* The SGID is provided to provision an AS on an ASP which is serviced by a
* remote SG.
*
* The MUXID is provided to provision an AS on an SGP which is serviced by a
* local SS7 provider. The MUXID is the identifier of the local SS7 provider
* stream.
*
* Only one of SGID and MUXID should be zero, the other a specified value.
*/
typedef struct {
ulong prim; /* always LM_AS_ADD_REQ */
ulong asid; /* Application Server Index */
ulong flags; /* Allocation flags */
ulong rc; /* RC or IID for the AS */
ulong tmode; /* Traffic Mode */
ulong sgid; /* SG identifier */
ulong muxid; /* multiplexor ID */
ulong KEY_offset; /* Routing (Link) Key offset */
ulong KEY_length; /* Routing (Link) Key length */
} lm_as_add_req_t;
/*
* LM_AS_DEL_REQ
* -------------------------------------------------------------------------
* Requests that the driver remove the application server for the protocol on
* whose local or layer management stream the request was issued. The AS
* identifier must be the same as that provided in the LM_AS_ADD_REQ.
*/
typedef struct {
ulong prim; /* always LM_AS_DEL_REQ */
ulong asid; /* Application Server Index */
} lm_as_del_req_t;
#define LM_AS_STATIC (1<<0) /* AS has static allocation */
#define LM_AS_DYNAMIC (1<<1) /* AS has dynamic registration */
/*
* LM_PROC_ADD_REQ
* -------------------------------------------------------------------------
* Requests that the driver add an ASP/SGP/SPP proxy process. This is for
* static configuration of proxy processes only. Dynamic configuration will
* create SGP and SPP proxy processes on demand.
*/
typedef struct {
ulong prim; /* always LM_PROC_ADD_REQ */
ulong type; /* type of process */
ulong aspid; /* process identifier */
ulong spid; /* SP to which to add proc */
ulong load; /* load selector */
ulong prio; /* routing priority */
ulong cost; /* routing cost */
} lm_proc_add_req_t;
/*
* LM_PROC_DEL_REQ
* -------------------------------------------------------------------------
* Requests that the driver delete the indicated ASP/SGP/SPP proxy process.
* This is for static configuration of proxy processes only. Dynamic
* configuration will delete SGP and SPP proxy processes on demand.
*/
typedef struct {
ulong prim; /* always LM_PROC_DEL_REQ */
ulong type; /* type of process */
ulong aspid; /* process identifier */
ulong spid; /* SP from which to del proc */
} lm_proc_del_req_t;
/*
* LM_LINK_ADD_REQ
* -------------------------------------------------------------------------
* Requests that the driver configures and associates the indicated linked
* (muxid) stream as the indicated type of proxy and associate it with the
* indicated local or remote ASP identifier. Transport SGP or SPP proxies
* must have aspids associated with them. Transport ASP proxies have may
* either have fixed aspids associated with them or may have aspid set to
* zero, the aspid to be identified in a subsequent ASPUP message from the
* ASP if the ASP requires dynamic registration. SGP/SPP proxies have their
* sgid set to the SG to which they are to be attached. This field is
* ignored for other proxy types. If the sgid is set to zero, it applies to
* the default SG, regardless of the identifier associated with the default
* SG.
*/
typedef struct {
ulong prim; /* always LM_LINK_ADD_REQ */
ulong muxid; /* multiplexor ID */
ulong type; /* type of process */
ulong aspid; /* process Identifier */
ulong spid; /* SP identifier */
} lm_link_add_req_t;
/*
* Link add flags:
*/
#define LM_DEFAULT_PROTOID 0x00000001 /* use proto as default */
/*
* LM_LINK_DEL_REQ
* -------------------------------------------------------------------------
* Requests that the driver disassociate and possibly free the indicated
* linked (muxid) stream from the indicated protocol, process type, and
* process.
*/
typedef struct {
ulong prim; /* always LM_LINK_DEL_REQ */
ulong muxid; /* multiplexor ID */
} lm_link_del_req_t;
/*
* LM_ROUTE_ADD_REQ
* -------------------------------------------------------------------------
*/
typedef struct {
ulong prim; /* always LM_ROUTE_ADD_REQ */
} lm_route_add_req_t;
/*
* LM_ROUTE_DEL_REQ
* -------------------------------------------------------------------------
*/
typedef struct {
ulong prim; /* always LM_ROUTE_DEL_REQ */
} lm_route_del_req_t;
/*
* LM_OK_ACK
* -------------------------------------------------------------------------
* Used by the driver to indicate success of a primitive issued by local or
* layer management.
*/
typedef struct {
ulong prim; /* always LM_OK_ACK */
ulong correct_prim; /* correct primitive */
} lm_ok_ack_t;
/*
* LM_ERROR_ACK
* -------------------------------------------------------------------------
* Used by the driver to indicate failure of a primitive issued by local or
* layer management.
*/
typedef struct {
ulong prim; /* always LM_ERROR_ACK */
ulong error_prim; /* primitive in error */
ulong lm_error; /* LM error number */
ulong unix_error; /* Unix error code */
} lm_error_ack_t;
#define LMSYSERR 1
/*
* LM_REG_IND
* -------------------------------------------------------------------------
* This indication indicates to management that a registration request has
* been received from an ASP with the specified protocol Id and ASP Id and
* the indicated routing keys. If the registration request is acceptable
* management responds with a LM_REG_RES indicating the configured
* application server by routing context. If the registration request fails,
* management responds with a LM_REG_REF refusing the request.
*/
typedef struct {
ulong prim; /* always LM_REG_IND */
ulong muxid; /* stream receiving request */
ulong aspid; /* ASP generating request */
ulong load; /* Load selection of request *//* XXX */
ulong prio; /* priority of request *//* XXX */
ulong KEY_number; /* routing key number */
ulong KEY_offset; /* routing key offset */
ulong KEY_length; /* routing key length */
/* followed routing keys */
} lm_reg_ind_t;
/*
* LM_REG_RES
* -------------------------------------------------------------------------
* The response tells the multiplexer that layer management has accepted a
* registration request and provides the routing context.
*/
typedef struct {
ulong prim; /* always LM_REG_RES */
ulong muxid; /* stream receiving request */
ulong aspid; /* ASP generating request */
ulong load; /* Load selection of request *//* XXX */
ulong prio; /* priority of request *//* XXX */
ulong context; /* RC/IID of application server */
} lm_reg_res_t;
/*
* LM_ERROR_IND
* -------------------------------------------------------------------------
* The driver uses this primitive to indicate a fatal error with respect to a
* linked stream which requires that the stream be unlinked.
*/
typedef struct {
ulong prim; /* always LM_ERROR_IND */
ulong muxid; /* id of linked stream */
ulong lm_error; /* LM error number */
ulong unix_error; /* Unix error code */
} lm_error_ind_t;
union LM_primitives {
ulong prim;
lm_sg_add_req_t sg_add;
lm_sg_del_req_t sg_del;
lm_as_add_req_t as_add;
lm_as_del_req_t as_del;
lm_proc_add_req_t proc_add;
lm_proc_del_req_t proc_del;
lm_link_add_req_t link_add;
lm_link_del_req_t link_del;
lm_route_add_req_t route_add;
lm_route_del_req_t route_del;
lm_ok_ack_t ok_ack;
lm_error_ack_t error_ack;
lm_reg_ind_t reg_ind;
lm_reg_res_t reg_res;
lm_error_ind_t error_ind;
lm_info_req_t info_req;
lm_info_ack_t info_ack;
};
#endif /* __SS7_UA_LM_H__ */
|
|||||||||||||||||||||||||||
|
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
|
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
|||||||||||||||||||||||||||