Lines Matching refs:uni
57 static void sig_all_calls(struct uni *, u_int sig);
58 static void set_custat(struct uni *, enum cu_stat);
60 static void input_dummy(struct uni *uni, struct uni_msg *m, struct uni_all *u);
61 static void input_global(struct uni *uni, struct uni_msg *m, struct uni_all *u);
62 static void input_unknown(struct uni *uni, struct uni_msg *m, struct uni_all *u);
80 coord_saal_establish_indication(struct uni *uni) in TIMER_FUNC_UNI()
82 switch (uni->custat) { in TIMER_FUNC_UNI()
86 sig_all_calls(uni, SIGC_LINK_ESTABLISH_indication); in TIMER_FUNC_UNI()
87 set_custat(uni, CU_STAT3); in TIMER_FUNC_UNI()
92 VERBOSE0(uni, UNI_FAC_COORD, in TIMER_FUNC_UNI()
93 "signal saal_establish.indication in CU%u", uni->custat); in TIMER_FUNC_UNI()
105 coord_saal_establish_confirm(struct uni *uni) in coord_saal_establish_confirm() argument
107 switch (uni->custat) { in coord_saal_establish_confirm()
111 VERBOSE0(uni, UNI_FAC_COORD, in coord_saal_establish_confirm()
112 "signal saal_establish.confirm in CU%u", uni->custat); in coord_saal_establish_confirm()
119 TIMER_STOP_UNI(uni, t309); in coord_saal_establish_confirm()
120 sig_all_calls(uni, SIGC_LINK_ESTABLISH_confirm); in coord_saal_establish_confirm()
121 uni->funcs->uni_output(uni, uni->arg, in coord_saal_establish_confirm()
123 set_custat(uni, CU_STAT3); in coord_saal_establish_confirm()
130 sig_all_calls(uni, SIGC_LINK_ESTABLISH_confirm); in coord_saal_establish_confirm()
131 uni->funcs->uni_output(uni, uni->arg, in coord_saal_establish_confirm()
144 coord_saal_release_confirm(struct uni *uni) in coord_saal_release_confirm() argument
146 switch (uni->custat) { in coord_saal_release_confirm()
151 VERBOSE0(uni, UNI_FAC_COORD, in coord_saal_release_confirm()
152 "signal saal_release.confirm in CU%u", uni->custat); in coord_saal_release_confirm()
159 uni->funcs->uni_output(uni, uni->arg, in coord_saal_release_confirm()
161 set_custat(uni, CU_STAT0); in coord_saal_release_confirm()
173 coord_saal_release_indication(struct uni *uni) in coord_saal_release_indication() argument
175 switch (uni->custat) { in coord_saal_release_indication()
179 VERBOSE0(uni, UNI_FAC_COORD, in coord_saal_release_indication()
180 "signal saal_release.indication in CU%u", uni->custat); in coord_saal_release_indication()
189 sig_all_calls(uni, SIGC_LINK_RELEASE_indication); in coord_saal_release_indication()
190 set_custat(uni, CU_STAT0); in coord_saal_release_indication()
203 coord_link_establish_request(struct uni *uni, uint32_t cookie) in coord_link_establish_request() argument
205 switch (uni->custat) { in coord_link_establish_request()
211 uni->funcs->saal_output(uni, uni->arg, in coord_link_establish_request()
213 if (!TIMER_ISACT(uni, t309)) in coord_link_establish_request()
214 TIMER_START_UNI(uni, t309, uni->timer309); in coord_link_establish_request()
215 set_custat(uni, CU_STAT1); in coord_link_establish_request()
217 uniapi_uni_error(uni, UNIAPI_OK, cookie, 0); in coord_link_establish_request()
225 uni_delenq_coord(uni, SIGO_LINK_ESTABLISH_request, in coord_link_establish_request()
230 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALLSTATE, cookie, 0); in coord_link_establish_request()
232 VERBOSE0(uni, UNI_FAC_COORD, in coord_link_establish_request()
234 uni->custat); in coord_link_establish_request()
241 uni->funcs->uni_output(uni, uni->arg, in coord_link_establish_request()
243 uniapi_uni_error(uni, UNIAPI_OK, cookie, 0); in coord_link_establish_request()
255 coord_link_release_request(struct uni *uni, u_int cookie) in coord_link_release_request() argument
257 switch (uni->custat) { in coord_link_release_request()
262 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALLSTATE, cookie, 0); in coord_link_release_request()
269 uni->funcs->saal_output(uni, uni->arg, in coord_link_release_request()
271 set_custat(uni, CU_STAT2); in coord_link_release_request()
272 uniapi_uni_error(uni, UNIAPI_OK, cookie, 0); in coord_link_release_request()
284 coord_t309(struct uni *uni) in coord_t309() argument
286 switch (uni->custat) { in coord_t309()
293 sig_all_calls(uni, SIGC_LINK_ESTABLISH_ERROR_indication); in coord_t309()
294 set_custat(uni, CU_STAT0); in coord_t309()
297 uni->funcs->uni_output(uni, uni->arg, in coord_t309()
303 VERBOSE0(uni, UNI_FAC_COORD, in coord_t309()
304 "signal T309 in CU%u", uni->custat); in coord_t309()
316 coord_saal_data_indication(struct uni *uni, struct uni_msg *m) in coord_saal_data_indication() argument
321 memset(&uni->cause, 0, sizeof(uni->cause)); in coord_saal_data_indication()
326 if (uni_decode_head(m, u, &uni->cx)) { in coord_saal_data_indication()
327 VERBOSE(uni, UNI_FAC_COORD, 2, "bogus message - ignored"); in coord_saal_data_indication()
333 if (uni->cx.q2932) { in coord_saal_data_indication()
334 input_dummy(uni, m, u); in coord_saal_data_indication()
336 VERBOSE(uni, UNI_FAC_COORD, 2, "dummy cref - ignored"); in coord_saal_data_indication()
344 input_global(uni, m, u); in coord_saal_data_indication()
345 else if ((c = uni_find_call(uni, &u->u.hdr.cref)) == NULL) in coord_saal_data_indication()
346 input_unknown(uni, m, u); in coord_saal_data_indication()
359 input_global(struct uni *uni, struct uni_msg *m, struct uni_all *u) in input_global() argument
361 VERBOSE(uni, UNI_FAC_COORD, 2, "GLOB MTYPE = %x", u->mtype); in input_global()
371 uni_respond_status(uni, &u->u.hdr.cref, in input_global()
372 u->u.hdr.cref.flag ? uni->glob_start : uni->glob_respond, in input_global()
381 uni_respond_status(uni, &u->u.hdr.cref, in input_global()
382 uni->glob_start, UNI_CAUSE_CREF_INV); in input_global()
385 uni_enq_resp(uni, SIGR_RESTART, 0, m, u); in input_global()
396 uni_respond_status(uni, &u->u.hdr.cref, in input_global()
397 uni->glob_respond, UNI_CAUSE_CREF_INV); in input_global()
400 uni_enq_start(uni, SIGS_RESTART_ACK, 0, m, u); in input_global()
405 uni_enq_start(uni, SIGS_STATUS, 0, m, u); in input_global()
407 uni_enq_resp(uni, SIGR_STATUS, 0, m, u); in input_global()
420 input_unknown(struct uni *uni, struct uni_msg *m, struct uni_all *u) in input_unknown() argument
426 VERBOSE(uni, UNI_FAC_COORD, 2, "UNKNOWN MTYPE = %x", u->mtype); in input_unknown()
445 if ((c = uni_create_call(uni, u->u.hdr.cref.cref, 0, 0)) != NULL) { in input_unknown()
465 (void)uni_decode_body(m, u, &uni->cx); in input_unknown()
477 (void)uni_decode_body(m, u, &uni->cx); in input_unknown()
492 (void)uni_send_output(resp, uni); in input_unknown()
503 if ((c = uni_create_call(uni, u->u.hdr.cref.cref, 0, 0)) != NULL) { in input_unknown()
523 (void)uni_send_output(resp, uni); in input_unknown()
541 input_dummy(struct uni *uni __unused, struct uni_msg *m, struct uni_all *u) in input_dummy()
551 VERBOSE(c->uni, UNI_FAC_COORD, 2, "CALL MTYPE = %x %d/%s", in input_call()
639 if (uni->custat == CU_STAT0 || uni->custat == CU_STAT2) {\
640 uniapi_uni_error(uni, UNIAPI_ERROR_BADCU, \
644 if (uni->custat == CU_STAT1) { \
645 uni_delenq_coord(uni, SIG, COOKIE, msg); \
653 uni_sig_coord(struct uni *uni, enum coord_sig sig, uint32_t cookie, in uni_sig_coord() argument
659 VERBOSE(uni, UNI_FAC_ERR, 1, "Signal %d outside of range to " in uni_sig_coord()
666 VERBOSE(uni, UNI_FAC_COORD, 1, "Signal %s in state %s", in uni_sig_coord()
667 coord_sigs[sig], cunames[uni->custat]); in uni_sig_coord()
675 if (uni->custat == CU_STAT0 || uni->custat == CU_STAT1) in uni_sig_coord()
677 if (uni->custat == CU_STAT1) in uni_sig_coord()
678 uni_delenq_coord(uni, SIGO_DATA, cookie, msg);/* ??? */ in uni_sig_coord()
680 uni->funcs->saal_output(uni, uni->arg, in uni_sig_coord()
689 coord_saal_establish_indication(uni); in uni_sig_coord()
693 coord_saal_establish_confirm(uni); in uni_sig_coord()
697 coord_saal_release_confirm(uni); in uni_sig_coord()
701 coord_saal_release_indication(uni); in uni_sig_coord()
705 coord_saal_data_indication(uni, msg); in uni_sig_coord()
710 VERBOSE0(uni, UNI_FAC_ERR, "SAAL_UDATA_indication"); in uni_sig_coord()
717 coord_link_establish_request(uni, cookie); in uni_sig_coord()
721 coord_link_release_request(uni, cookie); in uni_sig_coord()
725 uni_enq_start(uni, SIGS_RESET_request, cookie, msg, NULL); in uni_sig_coord()
727 if (uni->custat == CU_STAT0) { in uni_sig_coord()
728 uni->funcs->saal_output(uni, uni->arg, in uni_sig_coord()
730 if (!TIMER_ISACT(uni, t309)) in uni_sig_coord()
731 TIMER_START_UNI(uni, t309, uni->timer309); in uni_sig_coord()
732 set_custat(uni, CU_STAT1); in uni_sig_coord()
738 uni_enq_resp(uni, SIGR_RESET_ERROR_response, cookie, msg, NULL); in uni_sig_coord()
744 uni_enq_resp(uni, SIGR_RESET_response, cookie, msg, NULL); in uni_sig_coord()
749 if ((c = uni_create_new_call(uni, cookie)) != NULL) { in uni_sig_coord()
752 if (uni->custat == CU_STAT0) { in uni_sig_coord()
753 uni->funcs->saal_output(uni, uni->arg, in uni_sig_coord()
755 if (!TIMER_ISACT(uni, t309)) in uni_sig_coord()
756 TIMER_START_UNI(uni, t309, uni->timer309); in uni_sig_coord()
757 set_custat(uni, CU_STAT1); in uni_sig_coord()
760 uniapi_uni_error(uni, UNIAPI_ERROR_NOMEM, cookie, in uni_sig_coord()
771 if ((c = uni_find_call(uni, &arg->call_proc.hdr.cref)) != NULL) { in uni_sig_coord()
775 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
787 if ((c = uni_find_call(uni, &arg->alerting.hdr.cref)) != NULL) { in uni_sig_coord()
791 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
803 if ((c = uni_find_call(uni, &arg->connect.hdr.cref)) != NULL) { in uni_sig_coord()
807 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
819 if ((c = uni_find_call(uni, &arg->connect_ack.hdr.cref)) != NULL) { in uni_sig_coord()
824 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
836 if ((c = uni_find_call(uni, &arg->release.hdr.cref)) != NULL) { in uni_sig_coord()
840 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
852 if ((c = uni_find_call(uni, &arg->release_compl.hdr.cref)) != NULL) { in uni_sig_coord()
856 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
868 if ((c = uni_find_call(uni, &arg->notify.hdr.cref)) != NULL) { in uni_sig_coord()
872 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
884 if ((c = uni_find_call(uni, &arg->cref)) != NULL) { in uni_sig_coord()
888 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
900 if ((c = uni_find_call(uni, &arg->add.hdr.cref)) != NULL) { in uni_sig_coord()
909 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
921 if ((c = uni_find_call(uni, &arg->alert.hdr.cref)) != NULL) { in uni_sig_coord()
930 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
942 if ((c = uni_find_call(uni, &arg->ack.hdr.cref)) != NULL) { in uni_sig_coord()
951 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
963 if ((c = uni_find_call(uni, &arg->rej.hdr.cref)) != NULL) { in uni_sig_coord()
972 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
984 if ((c = uni_find_call(uni, &arg->drop.hdr.cref)) != NULL) { in uni_sig_coord()
993 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
1005 if ((c = uni_find_call(uni, &arg->ack.hdr.cref)) != NULL) { in uni_sig_coord()
1014 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
1025 if ((c = uni_find_call(uni, &arg->cref)) != NULL) { in uni_sig_coord()
1028 uniapi_uni_error(uni, UNIAPI_ERROR_BAD_CALL, cookie, in uni_sig_coord()
1038 uni->funcs->uni_output(uni, uni->arg, in uni_sig_coord()
1047 uni->funcs->uni_output(uni, uni->arg, in uni_sig_coord()
1056 coord_t309(uni); in uni_sig_coord()
1068 sig_all_calls(struct uni *uni, u_int sig) in sig_all_calls() argument
1072 TAILQ_FOREACH(call, &uni->calls, link) in sig_all_calls()
1087 set_custat(struct uni *uni, enum cu_stat nstate) in set_custat() argument
1089 if (uni->custat != nstate) { in set_custat()
1090 uni->custat = nstate; in set_custat()
1091 uni_undel(uni, cufilt, NULL); in set_custat()
1099 t309_func(struct uni *uni) in t309_func() argument
1101 uni_enq_coord(uni, SIGO_T309, 0, NULL); in t309_func()
1108 uni_respond_status(struct uni *uni, struct uni_cref *cref, in uni_respond_status() argument
1120 (void)uni_send_output(resp, uni); in uni_respond_status()
1129 uni_respond_status_mtype(struct uni *uni, struct uni_cref *cref, in uni_respond_status_mtype() argument
1142 (void)uni_send_output(resp, uni); in uni_respond_status_mtype()
1152 uni_send_output(struct uni_all *u, struct uni *uni) in uni_send_output() argument
1157 if (uni->custat == CU_STAT0 || uni->custat == CU_STAT2) in uni_send_output()
1161 if ((err = uni_encode(m, u, &uni->cx)) != 0) { in uni_send_output()
1162 VERBOSE0(uni, UNI_FAC_ERR, "uni_encode failed: %08x", err); in uni_send_output()
1166 if (uni->custat == CU_STAT1) in uni_send_output()
1167 uni_delenq_coord(uni, SIGO_DATA, 0, m); in uni_send_output()
1169 uni->funcs->saal_output(uni, uni->arg, SAAL_DATA_request, m); in uni_send_output()