📄 x100p-ss7.c
字号:
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 + -