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/sys/npi_sccp.h#ifndef _SYS_NPI_SCCP_H #define _SYS_NPI_SCCP_H #ident "@(#) $Name: $($Revision: 0.8.2.3 $) Copyright (c) 1997-2002 OpenSS7 Corporation." /* * LiS npi.h is version 1 */ #ifndef N_VERSION_2 #define N_CURRENT_VERSION 0x02 /* current version of NPI */ #define N_VERSION_2 0x02 /* version of npi, December 16, 1991 */ /* * Information acknowledgement */ typedef struct { np_ulong PRIM_type; /* always N_INFO_ACK */ np_ulong NSDU_size; /* maximum NSDU size */ np_ulong ENSDU_size; /* maximum ENSDU size */ np_ulong CDATA_size; /* connect data size */ np_ulong DDATA_size; /* discon data size */ np_ulong ADDR_size; /* address size */ np_ulong ADDR_length; /* address length */ np_ulong ADDR_offset; /* address offset */ np_ulong QOS_length; /* QOS values length */ np_ulong QOS_offset; /* QOS values offset */ np_ulong QOS_range_length; /* length of QOS values' range */ np_ulong QOS_range_offset; /* offset of QOS values' range */ np_ulong OPTIONS_flags; /* bit masking for options supported */ np_ulong NIDU_size; /* network i/f data unit size */ long SERV_type; /* service type */ np_ulong CURRENT_state; /* current state */ np_ulong PROVIDER_type; /* type of NS provider */ np_ulong NODU_size; /* optimal NSDU size */ np_ulong PROTOID_length; /* length of bound protocol ids */ np_ulong PROTOID_offset; /* offset of bound protocol ids */ np_ulong NPI_version; /* version # of npi that is supported */ } __N_info_ack_t; #define N_info_ack_t __N_info_ack_t /* * Bind acknowledgement */ typedef struct { np_ulong PRIM_type; /* always N_BIND_ACK */ np_ulong ADDR_length; /* address length */ np_ulong ADDR_offset; /* offset of address */ np_ulong CONIND_number; /* connection indications */ np_ulong TOKEN_value; /* value of "token" assigned to stream */ np_ulong PROTOID_length; /* length of bound protocol ids */ np_ulong PROTOID_offset; /* offset of bound protocol ids */ } __N_bind_ack_t; #define N_bind_ack_t __N_bind_ack_t #endif /* N_VERSION_2 */ /* * Extended NPI primitives for SCCP. */ #define N_NOTICE_IND 32 typedef struct { np_ulong PRIM_type; /* always N_NOTICE_IND */ np_ulong DEST_length; /* address data was sent to */ np_ulong DEST_offset; np_ulong SRC_length; /* address data was sent from */ np_ulong SRC_offset; np_ulong QOS_length; /* QOS parameters data was sent with */ np_ulong QOS_offset; np_ulong RETURN_cause; /* reason for return of data */ } N_notice_ind_t; #define N_INFORM_REQ 33 typedef struct { np_ulong PRIM_type; /* always N_INFORM_REQ */ np_ulong QOS_length; /* qos parameters */ np_ulong QOS_offset; np_ulong REASON; /* inform reason */ } N_inform_req_t; #define N_INFORM_IND 34 typedef struct { np_ulong PRIM_type; /* always N_INFORM_IND */ np_ulong QOS_length; /* qos parameters */ np_ulong QOS_offset; np_ulong REASON; /* inform reason */ } N_inform_ind_t; /* Inform reasons for use with N_INFORM_IND */ #define N_SCCP_INFR_NSP_FAILURE 1 #define N_SCCP_INFR_NSP_CONGESTION 2 #define N_SCCP_INFR_NSP_QOS_CHANGE 3 /* Inform reasons for use with N_INFORM_REQ */ #define N_SCCP_INFR_NSU_FAILURE 4 #define N_SCCP_INFR_NSU_CONGESTION 5 #define N_SCCP_INFR_NSU_QOS_CHANGE 6 /* Inform reasons for use with N_INFORM */ #define N_SCCP_INFR_UNSPECIFIED 7 #define N_COORD_REQ 35 typedef struct { np_ulong PRIM_type; /* alwyas N_COORD_REQ */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; } N_coord_req_t; #define N_COORD_RES 36 typedef struct { np_ulong PRIM_type; /* always N_COORD_RES */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; } N_coord_res_t; #define N_COORD_IND 37 typedef struct { np_ulong PRIM_type; /* alwyas N_COORD_IND */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; np_ulong SMI; /* subsystem multiplicity indicator */ } N_coord_ind_t; #define N_COORD_CON 38 typedef struct { np_ulong PRIM_type; /* always N_COORD_CON */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; np_ulong SMI; /* subsystem multiplicity indicator */ } N_coord_con_t; #define N_STATE_REQ 39 typedef struct { np_ulong PRIM_type; /* always N_STATE_REQ */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; np_ulong STATUS; /* user status */ } N_state_req_t; #define N_STATE_IND 40 typedef struct { np_ulong PRIM_type; /* always N_STATE_IND */ np_ulong ADDR_length; /* affected subsystem */ np_ulong ADDR_offset; np_ulong STATUS; /* user status */ np_ulong SMI; /* subsystem multiplicity indicator */ } N_state_ind_t; #define N_PCSTATE_IND 41 typedef struct { np_ulong PRIM_type; /* always N_PCSTATE_IND */ np_ulong ADDR_length; /* affected point code */ np_ulong ADDR_offset; np_ulong STATUS; /* status */ } N_pcstate_ind_t; #define N_TRAFFIC_IND 42 typedef struct { np_ulong PRIM_type; /* always N_TRAFFIC_IND */ np_ulong ADDR_length; /* affected user */ np_ulong ADDR_offset; np_ulong TRAFFIC_mix; /* traffic mix */ } N_traffic_ind_t; #define N_SCCP_STATUS_USER_IN_SERVICE 1 #define N_SCCP_STATUS_USER_OUT_OF_SERVICE 2 #define N_SCCP_STATUS_REMOTE_SCCP_AVAILABLE 3 #define N_SCCP_STATUS_REMOTE_SCCP_UNAVAILABLE 4 #define N_SCCP_STATUS_REMOTE_SCCP_UNEQUIPPED 5 #define N_SCCP_STATUS_REMOTE_SCCP_INACCESSIBLE 6 //#define N_SCCP_STATUS_REMOTE_SCCP_CONGESTED #define N_SCCP_STATUS_REMOTE_SCCP_CONGESTED(_x) (7 + _x) #define N_SCCP_STATUS_SIGNALLING_POINT_INACCESSIBLE 16 //#define N_SCCP_STATUS_SIGNALLING_POINT_CONGESTED #define N_SCCP_STATUS_SIGNALLING_POINT_CONGESTED(_x) (17 + _x) #define N_SCCP_STATUS_SIGNALLING_POINT_ACCESSIBLE 26 #define N_SCCP_TMIX_ALL_PREFFERED_NO_BACKUP 1 #define N_SCCP_TMIX_ALL_PREFERRED_SOME_BACKUP 2 #define N_SCCP_TMIX_ALL_PREFERRED_ALL_BACKUP 3 #define N_SCCP_TMIX_SOME_PREFERRED_NO_BACKUP 4 #define N_SCCP_TMIX_SOME_PREFERRED_SOME_BACKUP 5 #define N_SCCP_TMIX_NO_PREFERRED_NO_BACKUP 6 #define N_SCCP_TMIX_ALL 7 #define N_SCCP_TMIX_SOME 8 #define N_SCCP_TMIX_NONE 9 #ifndef NSF_UNBND #define NSF_UNBND (1<<NS_UNBND ) #define NSF_WACK_BREQ (1<<NS_WACK_BREQ ) #define NSF_WACK_UREQ (1<<NS_WACK_UREQ ) #define NSF_IDLE (1<<NS_IDLE ) #define NSF_WACK_OPTREQ (1<<NS_WACK_OPTREQ) #define NSF_WACK_RRES (1<<NS_WACK_RRES ) #define NSF_WCON_CREQ (1<<NS_WCON_CREQ ) #define NSF_WRES_CIND (1<<NS_WRES_CIND ) #define NSF_WACK_CRES (1<<NS_WACK_CRES ) #define NSF_DATA_XFER (1<<NS_DATA_XFER ) #define NSF_WCON_RREQ (1<<NS_WCON_RREQ ) #define NSF_WRES_RIND (1<<NS_WRES_RIND ) #define NSF_WACK_DREQ6 (1<<NS_WACK_DREQ6 ) #define NSF_WACK_DREQ7 (1<<NS_WACK_DREQ7 ) #define NSF_WACK_DREQ9 (1<<NS_WACK_DREQ9 ) #define NSF_WACK_DREQ10 (1<<NS_WACK_DREQ10) #define NSF_WACK_DREQ11 (1<<NS_WACK_DREQ11) #endif /* NSF_UNBND */ typedef struct sccp_addr { ulong ni; /* network indicator */ ulong ri; /* routing indicator */ ulong pc; /* point code (-1 not present) */ ulong ssn; /* subsystem number (0 not present) */ ulong gtt; /* type of global title */ ulong tt; /* translation type */ ulong es; /* encoding scheme */ ulong nplan; /* numbering plan */ ulong nai; /* nature of address indicator */ ulong alen; /* address length */ uint8_t addr[0]; /* address digits */ /* followed by address bytes */ } sccp_addr_t; #define SCCP_MAX_ADDR_LENGTH 32 #define SCCP_RI_DPC_SSN 0 /* route on DPC/SSN */ #define SCCP_RI_GT 1 /* route on GT */ #define SCCP_GTTTYPE_NONE 0 /* no GT */ #define SCCP_GTTTYPE_NAI 1 /* NAI only */ #define SCCP_GTTTYPE_TT 2 /* TT only */ #define SCCP_GTTTYPE_NP 3 /* TT, ES, NPLAN */ #define SCCP_GTTTYPE_NP_NAI 4 /* TT, ES, NPLAN and NAI */ #define N_QOS_SEL_DATA_SCCP 0x0901 typedef struct { ulong n_qos_type; /* always N_QOS_SEL_DATA_SCCP */ ulong protocol_class; /* protocol class */ ulong option_flags; /* options flags (return option) */ ulong sequence_selection; /* selected SLS value */ ulong message_priority; /* MTP message priority */ ulong importance; /* importance */ } N_qos_sel_data_sccp_t; #define N_QOS_SEL_CONN_SCCP 0x0902 typedef struct { ulong n_qos_type; /* always N_QOS_SEL_CONN_SCCP */ ulong protocol_class; /* protocol class 2 or 3 */ ulong option_flags; /* options flags (return option) */ ulong sequence_selection; /* selected SLS value */ ulong message_priority; /* MTP message priority */ ulong importance; /* importance */ } N_qos_sel_conn_sccp_t; #define N_QOS_SEL_INFO_SCCP 0x0903 typedef struct { ulong n_qos_type; /* always N_QOS_SEL_INFO_SCCP */ ulong protocol_class; /* protocol class */ ulong option_flags; /* options flags (return option) */ ulong sequence_selection; /* selected SLS value */ ulong message_priority; /* MTP message priority */ ulong importance; /* importance */ } N_qos_sel_info_sccp_t; #define N_QOS_RANGE_INFO_SCCP 0x0904 typedef struct { ulong n_qos_type; /* always N_QOS_RANGE_INFO_SCCP */ ulong protocol_classes; /* protocol class */ ulong sequence_selection; /* SLS range */ } N_qos_range_info_sccp_t; #define N_QOS_SEL_INFR_SCCP 0x0905 typedef struct { ulong n_qos_type; /* always N_QOS_SEL_INFR_SCCP */ ulong protocol_class; /* protocol class */ ulong option_flags; /* options flags (return option) */ ulong sequence_selection; /* selected SLS value */ ulong message_priority; /* MTP message priority */ ulong importance; /* importance */ } N_qos_sel_infr_sccp_t; typedef union { ulong n_qos_type; N_qos_sel_data_sccp_t sel_data; N_qos_sel_conn_sccp_t sel_conn; N_qos_sel_info_sccp_t sel_info; N_qos_range_info_sccp_t range_info; N_qos_sel_infr_sccp_t sel_infr; } N_qos_sccp_t; /* * Protocol Class bit masks with N_QOS_RANGE_SCCP protocol_classes */ #define N_QOS_PCLASS_0 0x01 #define N_QOS_PLCASS_1 0x02 #define N_QOS_PCLASS_2 0x04 #define N_QOS_PCLASS_3 0x08 #define N_QOS_PCLASS_ALL 0x0f /* * SCCP Causes */ /* * SCCP Release Causes used in N_DISCON_IND */ #define SCCP_RELC_END_USER_ORIGINATED 0x1000 #define SCCP_RELC_END_USER_BUSY 0x1001 #define SCCP_RELC_END_USER_FAILURE 0x1002 #define SCCP_RELC_SCCP_USER_ORIGINATED 0x1003 #define SCCP_RELC_REMOTE_PROCEDURE_ERROR 0x1004 #define SCCP_RELC_INCONSISTENT_CONNECTION_DATA 0x1005 #define SCCP_RELC_ACCESS_FAILURE 0x1006 #define SCCP_RELC_ACCESS_CONGESTION 0x1007 #define SCCP_RELC_SUBSYSTEM_FAILURE 0x1008 #define SCCP_RELC_SUBSYSTEM_CONGESTION 0x1009 #define SCCP_RELC_MTP_FAILURE 0x100a #define SCCP_RELC_NETWORK_CONGESTION 0x100b #define SCCP_RELC_EXPIRATION_OF_RESET_TIMER 0x100c #define SCCP_RELC_EXPIRATION_OF_RECEIVE_INACTIVITY_TIMER 0x100d #define SCCP_RELC_RESERVED 0x100e #define SCCP_RELC_UNQUALIFIED 0x100f #define SCCP_RELC_SCCP_FAILURE 0x1010 /* * SCCP Return Causes used in N_UDERROR_IND */ #define SCCP_RETC_NO_ADDRESS_TYPE_TRANSLATION 0x2000 #define SCCP_RETC_NO_ADDRESS_TRANSLATION 0x2001 #define SCCP_RETC_SUBSYSTEM_CONGESTION 0x2002 #define SCCP_RETC_SUBSYSTEM_FAILURE 0x2003 #define SCCP_RETC_UNEQUIPPED_USER 0x2004 #define SCCP_RETC_MTP_FAILURE 0x2005 #define SCCP_RETC_NETWORK_CONGESTION 0x2006 #define SCCP_RETC_UNQUALIFIED 0x2007 #define SCCP_RETC_MESSAGE_TRANSPORT_ERROR 0x2008 #define SCCP_RETC_LOCAL_PROCESSING_ERROR 0x2009 #define SCCP_RETC_NO_REASSEMBLY_AT_DESTINATION 0x200a #define SCCP_RETC_SCCP_FAILURE 0x200b #define SCCP_RETC_SCCP_HOP_COUNTER_VIOLATION 0x200c #define SCCP_RETC_SEGMENTATION_NOT_SUPPORTED 0x200d #define SCCP_RETC_SEGMENTATION_FAILURE 0x200e #define SCCP_RETC_MESSAGE_CHANGE_FAILURE 0x20f7 #define SCCP_RETC_INVALID_INS_ROUTING_REQUEST 0x20f8 #define SCCP_RETC_INVALID_INSI_ROUTING_REQUEST 0x20f9 #define SCCP_RETC_UNAUTHORIZED_MESSAGE 0x20fa #define SCCP_RETC_MESSAGE_INCOMPATIBILITY 0x20fb #define SCCP_RETC_CANNOT_PERFORM_ISNI_CONSTRAINED_ROUTING 0x20fc #define SCCP_RETC_REDUNDANT_ISNI_CONSTRAINED_ROUTING_INFO 0x20fd #define SCCP_RETC_UNABLE_TO_PERFORM_ISNI_IDENTIFICATION 0x20fe /* * SCCP Reset Causes used in N_RESET_IND/REQ */ #define SCCP_RESC_END_USER_ORIGINATED 0x3000 #define SCCP_RESC_SCCP_USER_ORIGINATED 0x3001 #define SCCP_RESC_MESSAGE_OUT_OF_ORDER_INCORRECT_PS 0x3002 #define SCCP_RESC_MESSAGE_OUT_OF_ORDER_INCORRECT_PR 0x3003 #define SCCP_RESC_REMOTE_PROC_ERROR_MESSAGE_OUT_OF_WINDOW 0x3004 #define SCCP_RESC_REMOTE_PROC_ERROR_INCORRECT_PS_AFTER_INIT 0x3005 #define SCCP_RESC_REMOTE_PROC_ERROR_GENERAL 0x3006 #define SCCP_RESC_REMOTE_END_USER_OPERATIONAL 0x3007 #define SCCP_RESC_NETWORK_OPERATIONAL 0x3008 #define SCCP_RESC_ACCESS_OPERATIONAL 0x3009 #define SCCP_RESC_NETWORK_CONGESTION 0x300a #define SCCP_RESC_NOT_OBTAINABLE 0x300b #define SCCP_RESC_UNQUALIFIED 0x300c /* * SCCP Error Causes */ #define SCCP_ERRC_LRN_MISMATCH_UNASSIGNED_DEST_LRN 0x4000 #define SCCP_ERRC_LRN_MISMATCH_INCONSISTENT_SOURCE_LRN 0x4001 #define SCCP_ERRC_POINT_CODE_MISMATCH 0x4002 #define SCCP_ERRC_SERVICE_CLASS_MISMATCH 0x4003 #define SCCP_ERRC_UNQUALIFIED 0x4004 /* * SCCP Refusal Causes used in N_DISCON_IND */ #define SCCP_REFC_END_USER_ORIGINATED 0x5000 #define SCCP_REFC_END_USER_CONGESTION 0x5001 #define SCCP_REFC_END_USER_FAILURE 0x5002 #define SCCP_REFC_SCCP_USER_ORIGINATED 0x5003 #define SCCP_REFC_DESTINATION_ADDRESS_UNKNOWN 0x5004 #define SCCP_REFC_DESTINATION_INACCESSIBLE 0x5005 #define SCCP_REFC_NETWORK_RESOURCE_QOS_NOT_AVAIL_PERM 0x5006 #define SCCP_REFC_NETWORK_RESOURCE_QOS_NOT_AVAIL_TRANS 0x5007 #define SCCP_REFC_ACCESS_FAILURE 0x5008 #define SCCP_REFC_ACCESS_CONGESTION 0x5009 #define SCCP_REFC_SUBSYSTEM_FAILURE 0x500a #define SCCP_REFC_SUBSYSTEM_CONGESTION 0x500b #define SCCP_REFC_EXPIRATION_OF_NC_ESTAB_TIMER 0x500c #define SCCP_REFC_INCOMPATIBLE_USER_DATA 0x500d #define SCCP_REFC_RESERVED 0x500e #define SCCP_REFC_UNQUALIFIED 0x500f #define SCCP_REFC_SCCP_HOP_COUNTER_VIOLATION 0x5010 #define SCCP_REFC_SCCP_FAILURE 0x5011 #define SCCP_REFC_NO_ADDRESS_TYPE_TRANSLATION 0x5012 #define SCCP_REFC_UNEQUIPPED_USER 0x5013 #endif /* _SYS_NPI_SCCP_H */
|
|||||||||||||||||||||||||||
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |