📄 mms_llp.h
字号:
/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//* (c) Copyright Systems Integration Specialists Company, Inc., *//* 1986 - 2001, All Rights Reserved. *//* *//* MODULE NAME : mms_llp.h *//* PRODUCT(S) : MMSEASE *//* *//* MODULE DESCRIPTION : *//* This module contains definitions related to MMSEASE interface *//* to Lower Layer Provider. *//* *//* MODIFICATION LOG : *//* Date Who Rev Comments *//* -------- --- ------ ------------------------------------------- *//* 12/14/01 EJV 01 Del code for unsupported platforms & hardware*//* 04/02/97 DTL 7.00 MMSEASE 7.0 release. See MODL70.DOC for *//* history. *//************************************************************************/#ifndef MMS_LLP_INCLUDED#define MMS_LLP_INCLUDED#ifdef __cplusplusextern "C" {#endif#include "mms_mp.h"#include "mms_pcon.h"#include "mms_err.h"#ifdef MAP30_LLC#include "suil.h"#endif/************************************************************************//* MMSEASE channel configuration parameters *//************************************************************************/extern ST_INT max_mms_chan; /* set this variable to desired */ /* size (default is */ /* DEFAULT_NUM_MMS_CHAN) */ /* normally leave these at default */extern ST_INT max_acse_chan; /* Number of ACSE channels */extern ST_INT acse_base_chan; /* ACSE Channel set select */extern ST_INT max_llc_chan; /* Number of LLC channels */extern ST_INT llc_base_chan; /* LLC Channel set select *//************************************************************************//* MESSAGE SIZE LIMIT GLOBAL VARIABLES *//************************************************************************/extern ST_INT mms_max_msgsize; /* set this variable to desired */ /* size (default is */ /* DEFAULT_MAX_MSGSIZE) */extern ST_INT max_acse_msgsize; /* normally leave as default */extern ST_INT max_llc_msgsize; /* normally leave as default *//************************************************************************//************************************************************************//* LOWER LAYER PROVIDERS *//* These values are used to select the LLP type to be used on a channel *//* by channel basis (in mms_chan_info[chan].ctxt.llp_type) */#define ACSE30_LLP 0x0002#define LLC30_AO_LLP 0x0004 /* Association Oriented */#define LLC30_AL_LLP 0x0008 /* Association Less */#define LLC30_UNKNOWN_LLP 0x0010 /* Initial for all LLC chan */#define ACSE30_PRIVATE_LLP 0x0020#define LLC30_PRIVATE_LLP 0x0040/* any LLC channel type */#define LLC30_LLP (LLC30_AO_LLP | LLC30_AL_LLP | LLC30_UNKNOWN_LLP)/************************************************************************//* MMS P-CONTEXTS */#define MAX_P_CONTEXTS 16 /* maximum supported p-contexts */#define MMS_PCI 0x0001/* MMS AP CONTEXTS */#define MMS_AP_CONTEXT 0x0001#define MMS_IS_AP_CONTEXT 0x0002#define MMS_PRIVATE_AP_CONTEXT 0x0004/* allow selection of AP context just in case, default to DIS *//* NOTE : MUST USE SUIC DEFINES FOR NOW */extern ST_UINT mllp_ap_context_sel;#define MAX_INIT_CONTEXTS 5 extern ST_BOOLEAN mllp_mult_ctxt_allowed;/************************************************************************//* PDU Logging Functions *//************************************************************************//* This function pointer is used to allow user examination of MMS PDU's *//* before they are passed into _ms_mms_decode. *//* parameters are : (chan, llp event code, P-Context mask, len, ptr) */extern ST_VOID (*u_mms_pdu_rcvd)(ST_INT chan, ST_INT type, ST_UINT ctxt, ST_INT pdu_len, ST_UCHAR *pdu);/************************************************************************//************************************************************************//* The structure below is used for all LLP types to pass a received PDU *//* to MMS-EASE. It is embedded in the LLP event structure for all LLP's *//* NOTE : only complete MMS PDU's are accepted by MMS-EASE. *//* NOTE : This structure typically is not of interest to the user. */typedef struct pdu_rx_info { ST_INT source; /* Where buf came from (LLP or MALLOC) */ ST_UINT context; /* Bit masked p-context select */ ST_BOOLEAN context_accepted; /* For assoc. confirm only */ ST_BOOLEAN eom; /* EOM flag */ ST_INT len; ST_UCHAR *buffer; } PDU_RX_INFO;/************************************************************************//************************************************************************//* ASSOCIATE INDICATION INFORMATION *//* When a association indication is received by MMSEASE, the user fun *//* 'u_mac_ass_ind_rcvd' is called with the channel and a pointer to the *//* structure below. This information may be used to determine whether *//* to accept the association. */struct acse_assinfo { struct acse_ar_info *ar_info; /* local/remote AR info */ ST_UINT ap_context; /* AP context */ ST_UINT p_contexts; /* selected p-contexts */ ST_INT num_ui; struct pdu_rx_info rxinfo[MAX_INIT_CONTEXTS]; /* received PDU info */ ST_BOOLEAN ar_matched; ST_RET success; /* assoc accepted, confirm only */ };typedef struct acse_assinfo ACSE_ASSINFO;/************************************************************************//************************************************************************//************************************************************************/struct llc_rxinfo {#ifdef MAP30_LLC LLC_ADDR_HDR *locl_addr; /* local MAC/LSAP address */ LLC_ADDR_HDR *rem_addr; /* remote MAC/LSAP address */#endif struct pdu_rx_info rx_buf; };typedef struct llc_rxinfo LLC_RXINFO;/************************************************************************//* LLC 'INITIATE' EVENT INFORMATION *//************************************************************************//* Data received information *//************************************************************************//* This structure is passed into _mms_send_data and provides additional *//* information required to send the PDU correctly *//* At this time, only LLC requires additional information */#define CONFIRMED_REQ_PDU 0x0001#define UNCONFIRMED_REQ_PDU 0x0002#define CONFIRMED_RESP_PDU 0x0003#define CONCLUDE_REQ_PDU 0x0004#define CONCLUDE_RESP_PDU 0x0005#define CONCLUDE_ERROR_PDU 0x0006#define INITIATE_REQ_PDU 0x0007#define INITIATE_RESP_PDU 0x0008#define INITIATE_ERROR_PDU 0x0009#define REJECT_PDU 0x000Atypedef struct llp_addr_info { struct llp_addr_info *next; union { struct /* LLC specific information */ { ST_INT send_type; /* See above for values */ ST_VOID *req_ptr; /* ptr to be saved in TID */ ST_BOOLEAN use_rem_addr; /* set if addr below to be used */#ifdef MAP30_LLC LLC_ADDR_HDR *rem_addr; /* remote node address */#endif } LLC; }i; } LLP_ADDR_INFO; /************************************************************************//* LLP Interface functions *//************************************************************************//* General LLP Interface Functions */ ST_RET mllp_act_ar_name (ST_CHAR *ar_name);ST_RET mllp_act_arname (ST_CHAR *ar_name, ST_INT llp_type);ST_RET mllp_ass_listen (ST_INT chan);ST_RET mllp_stop_ass_listen (ST_INT chan);ST_RET mllp_deact_ar_name (ST_CHAR *ar_name);ST_RET mllp_deact_arname (ST_CHAR *ar_name, ST_INT llp_type);ST_RET mllp_reg_ar_name (ST_INT chan, ST_CHAR *ar_name);ST_VOID u_mllp_req_timeout (ST_INT chan, MMSREQ_PEND *req_ptr);ST_RET mllp_set_chan_limits (ST_INT llp_type, ST_INT base_chan_num, ST_INT num_chans);ST_VOID mllp_chk_req_timeout (ST_INT chan, ST_UINT32 timeout);ST_RET mllp_cancel_req (MMSREQ_PEND *reqptr, ST_INT reason);ST_VOID ms_event_enable (ST_VOID);ST_VOID ms_event_disable (ST_VOID);extern ST_VOID (*(u_mms_event_notify))(ST_INT count);ST_RET mms_event_wait (ST_INT timeout);ST_UINT mllp_add_p_context (MMS_OBJ_ID *obj_id);/* ACSE Specific LLP Functions */ST_RET mllp_set_ae_invoke (ST_CHAR *ar_name, ST_BOOLEAN enable, ST_INT32 val);ST_RET mllp_set_ae_qual (ST_CHAR *ar_name, ST_BOOLEAN enable, ST_INT32 val);ST_RET mllp_set_ap_invoke (ST_CHAR *ar_name, ST_BOOLEAN enable, ST_INT32 val);ST_RET mllp_set_ap_title (ST_CHAR *ar_name, ST_BOOLEAN enable, MMS_OBJ_ID *obj);#ifdef MAP30_LLC/* LLC specific LLP functions *//* return values from 'ms_chk_llc_chan_mode' */#define ASSOCIATION_ORIENTED 2#define ASSOCIATIONLESS 3ST_RET ms_chk_llc_chan_mode (ST_INT chan);ST_RET mllp_set_llc_name_alias (ST_CHAR *name, ST_UINT alias);ST_RET mllp_set_llc_dest (ST_INT chan, ST_UINT alias);ST_CHAR *mllp_l_get_rem_name (ST_INT chan);ST_RET mllp_get_rdr_buf (ST_INT chan);ST_RET mllp_post_rdr_buf (ST_INT chan, ST_BOOLEAN state);ST_RET mllp_set_rem_addr (ST_INT chan, LLP_ADDR_INFO *add_info);#endif/************************************************************************//* Declarations for the LLP user function pointers */extern ST_VOID (*u_abort_ind_fun)(ST_INT chan, ST_INT reason, ST_BOOLEAN au_flag);extern ST_VOID (*u_llp_error_ind_fun)(ST_INT chan, ST_LONG code);extern ST_VOID (*u_release_ind_fun)(ST_INT chan);extern ST_VOID (*u_mmsexcept_ind_fun)(ST_INT code, ST_INT chan);extern ST_VOID (*u_reject_ind_fun)(ST_INT chan, REJECT_RESP_INFO *rej_ptr);extern ST_VOID (*u_mp_conclude_done_fun)(ST_INT chan, ST_RET ret_code);extern ST_VOID (*u_mp_cancel_conf_fun)(MMSREQ_PEND *req_ptr, ST_BOOLEAN errdata_pres, ERR_INFO *err_ptr);extern ST_VOID (*u_mp_abort_done_fun)(ST_INT chan);extern ST_VOID (*u_init_resp_done_fun)(ST_INT chan);#ifdef MAP30_ACSEextern ST_RET (*u_mllp_a_assoc_ind_fun)(ST_INT chan, ACSE_ASSINFO *assinfo);extern ST_RET (*u_mllp_a_assoc_conf_fun)(ST_INT chan, ACSE_ASSINFO *assinfo);#endif#ifdef MAP30_LLCextern ST_VOID (*u_mllp_l_error_ind_fun)(ST_INT chan, TRANS_ID *tid, ST_INT32 status);extern ST_RET (*u_mllp_l_assoc_ind_fun)(ST_INT chan, LLC_RXINFO *rx_info);#endif#ifdef __cplusplus}#endif#endif /* MMS_LLP_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -