⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x100p-ss7.c

📁 OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
💻 C
📖 第 1 页 / 共 5 页
字号:
			mp->b_datap->db_type = M_PROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);			p->sdt_primitive = SDT_IAC_CORRECT_SU_IND;			ss7_oput(xp->oq, mp);			return (QR_DONE);		}		rare();		return (-ENOBUFS);	}	rare();	return (-EBUSY);}/* *  SDT_IAC_ABORT_PROVING_IND *  ----------------------------------- */STATIC INLINE intsdt_iac_abort_proving_ind(queue_t *q, struct xp *xp){	mblk_t *mp;	sdt_iac_abort_proving_ind_t *p;	if ((mp = allocb(sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->sdt_primitive = SDT_IAC_ABORT_PROVING_IND;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  SDT_LSC_LINK_FAILURE_IND *  ----------------------------------- */STATIC INLINE intsdt_lsc_link_failure_ind(queue_t *q, struct xp *xp){	mblk_t *mp;	sdt_lsc_link_failure_ind_t *p;	if ((mp = allocb(sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->sdt_primitive = SDT_LSC_LINK_FAILURE_IND;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  SDT_TXC_TRANSMISSION_REQUEST_IND *  ----------------------------------- */STATIC INLINE intsdt_txc_transmission_request_ind(queue_t *q, struct xp *xp){	mblk_t *mp;	sdt_txc_transmission_request_ind_t *p;	if ((mp = allocb(sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->sdt_primitive = SDT_TXC_TRANSMISSION_REQUEST_IND;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}#endif/* *  SDL_RECEIVED_BITS_IND *  ----------------------------------- *  Quickly we just copy the buffer and leave the original for the lower level *  driver. */STATIC INLINE intsdl_received_bits_ind(queue_t *q, struct xp *xp, mblk_t *dp){	if (canput(xp->oq)) {		ss7_oput(xp->oq, dp);		return (QR_ABSORBED);	}	rare();	dp->b_wptr = dp->b_rptr;	/* discard contents */	return (-EBUSY);}#if 0/* *  SDL_DISCONNECT_IND *  ----------------------------------- */STATIC INLINE intsdl_disconnect_ind(queue_t *q, struct xp *xp){	mblk_t *mp;	sdl_disconnect_ind_t *p;	(void) xp;	if ((mp = allocb(sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->sdl_primitive = SDL_DISCONNECT_IND;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}#endif/* *  LMI_OK_ACK *  ----------------------------------- */STATIC INLINE intlmi_ok_ack(queue_t *q, struct xp *xp, ulong state, long prim){	mblk_t *mp;	lmi_ok_ack_t *p;	if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_OK_ACK;		p->lmi_correct_primitive = prim;		p->lmi_state = xp->i_state = state;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  LMI_ERROR_ACK *  ----------------------------------- */STATIC INLINE intlmi_error_ack(queue_t *q, struct xp *xp, ulong state, long prim, ulong errno, ulong reason){	mblk_t *mp;	lmi_error_ack_t *p;	if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_ERROR_ACK;		p->lmi_errno = errno;		p->lmi_reason = reason;		p->lmi_error_primitive = prim;		p->lmi_state = xp->i_state = state;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  LMI_ENABLE_CON *  ----------------------------------- */STATIC INLINE intlmi_enable_con(queue_t *q, struct xp *xp){	mblk_t *mp;	lmi_enable_con_t *p;	if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_ENABLE_CON;		p->lmi_state = xp->i_state = LMI_ENABLED;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  LMI_DISABLE_CON *  ----------------------------------- */STATIC INLINE intlmi_disable_con(queue_t *q, struct xp *xp){	mblk_t *mp;	lmi_disable_con_t *p;	if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_DISABLE_CON;		p->lmi_state = xp->i_state = LMI_DISABLED;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}#if 0/* *  LMI_OPTMGMT_ACK *  ----------------------------------- */STATIC INLINE intlmi_optmgmt_ack(queue_t *q, struct xp *xp, ulong flags, caddr_t opt_ptr, size_t opt_len){	mblk_t *mp;	lmi_optmgmt_ack_t *p;	if ((mp = ss7_allocb(q, sizeof(*p) + opt_len, BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_OPTMGMT_ACK;		p->lmi_opt_length = opt_len;		p->lmi_opt_offset = opt_len ? sizeof(*p) : 0;		p->lmi_mgmt_flags = flags;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  LMI_ERROR_IND *  ----------------------------------- */STATIC INLINE intlmi_error_ind(queue_t *q, struct xp *xp, ulong errno, ulong reason){	mblk_t *mp;	lmi_error_ind_t *p;	if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {		mp->b_datap->db_type = M_PCPROTO;		p = (typeof(p)) mp->b_wptr;		mp->b_wptr += sizeof(*p);		p->lmi_primitive = LMI_ERROR_IND;		p->lmi_errno = errno;		p->lmi_reason = reason;		p->lmi_state = xp->i_state;		ss7_oput(xp->oq, mp);		return (QR_DONE);	}	rare();	return (-ENOBUFS);}/* *  LMI_STATS_IND *  ----------------------------------- */STATIC INLINE intlmi_stats_ind(queue_t *q, struct xp *xp, ulong interval){	if (canput(xp->oq)) {		mblk_t *mp;		lmi_stats_ind_t *p;		if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {			mp->b_datap->db_type = M_PROTO;			p = (typeof(p)) mp->b_wptr;			mp->b_wptr += sizeof(*p);			p->lmi_primitive = LMI_STATS_IND;			p->lmi_interval = interval;			p->lmi_timestamp = jiffies;			ss7_oput(xp->oq, mp);			return (QR_DONE);		}		rare();		return (-ENOBUFS);	}	rare();	return (-EBUSY);}/* *  LMI_EVENT_IND *  ----------------------------------- */STATIC INLINE intlmi_event_ind(queue_t *q, struct xp *xp, ulong oid, ulong level){	if (canput(xp->oq)) {		mblk_t *mp;		lmi_event_ind_t *p;		if ((mp = ss7_allocb(q, sizeof(*p), BPRI_MED))) {			mp->b_datap->db_type = M_PROTO;			p = (typeof(p)) mp->b_wptr;			mp->b_wptr += sizeof(*p);			p->lmi_primitive = LMI_EVENT_IND;			p->lmi_objectid = oid;			p->lmi_timestamp = jiffies;			p->lmi_severity = level;			ss7_oput(xp->oq, mp);			return (QR_DONE);		}		rare();		return (-ENOBUFS);	}	rare();	return (-EBUSY);}#endif/* *  ========================================================================= * *  PROTOCOL STATE MACHINE FUNCTIONS * *  ========================================================================= *//* *  ------------------------------------------------------------------------ * *  Default Configuration * *  ------------------------------------------------------------------------ */STATIC lmi_option_t lmi_default_e1_chan = {	.pvar = SS7_PVAR_ITUT_00,	.popt = 0,};STATIC lmi_option_t lmi_default_t1_chan = {	.pvar = SS7_PVAR_ANSI_00,	.popt = SS7_POPT_MPLEV,};STATIC lmi_option_t lmi_default_e1_span = {	.pvar = SS7_PVAR_ITUT_00,	.popt = SS7_POPT_HSL | SS7_POPT_XSN,};STATIC lmi_option_t lmi_default_t1_span = {	.pvar = SS7_PVAR_ANSI_00,	.popt = SS7_POPT_MPLEV | SS7_POPT_HSL | SS7_POPT_XSN,};STATIC sl_config_t sl_default_e1_chan = {	.t1 = 45 * HZ,	.t2 = 5 * HZ,	.t2l = 20 * HZ,	.t2h = 100 * HZ,	.t3 = 1 * HZ,	.t4n = 8 * HZ,	.t4e = 500 * HZ / 1000,	.t5 = 100 * HZ / 1000,	.t6 = 4 * HZ,	.t7 = 1 * HZ,	.rb_abate = 3,	.rb_accept = 6,	.rb_discard = 9,	.tb_abate_1 = 128 * 272,	.tb_onset_1 = 256 * 272,	.tb_discd_1 = 384 * 272,	.tb_abate_2 = 512 * 272,	.tb_onset_2 = 640 * 272,	.tb_discd_2 = 768 * 272,	.tb_abate_3 = 896 * 272,	.tb_onset_3 = 1024 * 272,	.tb_discd_3 = 1152 * 272,	.N1 = 127,	.N2 = 8192,	.M = 5,};STATIC sl_config_t sl_default_e1_span = {	.t1 = 45 * HZ,	.t2 = 5 * HZ,	.t2l = 20 * HZ,	.t2h = 100 * HZ,	.t3 = 1 * HZ,	.t4n = 8 * HZ,	.t4e = 500 * HZ / 1000,	.t5 = 100 * HZ / 1000,	.t6 = 4 * HZ,	.t7 = 1 * HZ,	.rb_abate = 3,	.rb_accept = 6,	.rb_discard = 9,	.tb_abate_1 = 128 * 272,	.tb_onset_1 = 256 * 272,	.tb_discd_1 = 384 * 272,	.tb_abate_2 = 512 * 272,	.tb_onset_2 = 640 * 272,	.tb_discd_2 = 768 * 272,	.tb_abate_3 = 896 * 272,	.tb_onset_3 = 1024 * 272,	.tb_discd_3 = 1152 * 272,	.N1 = 127,	.N2 = 8192,	.M = 5,};STATIC sl_config_t sl_default_t1_chan = {	.t1 = 45 * HZ,	.t2 = 5 * HZ,	.t2l = 20 * HZ,	.t2h = 100 * HZ,	.t3 = 1 * HZ,	.t4n = 8 * HZ,	.t4e = 500 * HZ / 1000,	.t5 = 100 * HZ / 1000,	.t6 = 4 * HZ,	.t7 = 1 * HZ,	.rb_abate = 3,	.rb_accept = 6,	.rb_discard = 9,	.tb_abate_1 = 128 * 272,	.tb_onset_1 = 256 * 272,	.tb_discd_1 = 384 * 272,	.tb_abate_2 = 512 * 272,	.tb_onset_2 = 640 * 272,	.tb_discd_2 = 768 * 272,	.tb_abate_3 = 896 * 272,	.tb_onset_3 = 1024 * 272,	.tb_discd_3 = 1152 * 272,	.N1 = 127,	.N2 = 8192,	.M = 5,};STATIC sl_config_t sl_default_t1_span = {	.t1 = 45 * HZ,	.t2 = 5 * HZ,	.t2l = 20 * HZ,	.t2h = 100 * HZ,	.t3 = 1 * HZ,	.t4n = 8 * HZ,	.t4e = 500 * HZ / 1000,	.t5 = 100 * HZ / 1000,	.t6 = 4 * HZ,	.t7 = 1 * HZ,	.rb_abate = 3,	.rb_accept = 6,	.rb_discard = 9,	.tb_abate_1 = 128 * 272,	.tb_onset_1 = 256 * 272,	.tb_discd_1 = 384 * 272,	.tb_abate_2 = 512 * 272,	.tb_onset_2 = 640 * 272,	.tb_discd_2 = 768 * 272,	.tb_abate_3 = 896 * 272,	.tb_onset_3 = 1024 * 272,	.tb_discd_3 = 1152 * 272,	.N1 = 127,	.N2 = 8192,	.M = 5,};STATIC sdt_config_t sdt_default_e1_span = {	.Tin = 4,	.Tie = 1,	.T = 64,	.D = 256,	.t8 = 100 * HZ / 1000,	.Te = 793544,	.De = 11328000,	.Ue = 198384000,	.N = 16,	.m = 272,	.b = 8,	.f = SDT_FLAGS_ONE,};STATIC sdt_config_t sdt_default_t1_span = {	.Tin = 4,	.Tie = 1,	.T = 64,	.D = 256,	.t8 = 100 * HZ / 1000,	.Te = 577169,	.De = 9308000,	.Ue = 144292000,	.N = 16,	.m = 272,	.b = 8,	.f = SDT_FLAGS_ONE,};STATIC sdt_config_t sdt_default_e1_chan = {	.Tin = 4,	.Tie = 1,	.T = 64,	.D = 256,	.t8 = 100 * HZ / 1000,	.Te = 793544,	.De = 11328000,	.Ue = 198384000,	.N = 16,	.m = 272,	.b = 8,	.f = SDT_FLAGS_ONE,};STATIC sdt_config_t sdt_default_t1_chan = {	.Tin = 4,	.Tie = 1,	.T = 64,	.D = 256,	.t8 = 100 * HZ / 1000,	.Te = 577169,	.De = 9308000,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -