Change in libosmo-sccp[master]: sccp_scoc: Deliver correct disconnect cause and importance to user on...

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon Jan 20 16:53:47 UTC 2020


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16960 )


Change subject: sccp_scoc: Deliver correct disconnect cause and importance to user on timer expiration
......................................................................

sccp_scoc: Deliver correct disconnect cause and importance to user on timer expiration

Change-Id: I87b84e9c3c4cb35135efdb4ba155c684917fbab7
---
M src/sccp_scoc.c
1 file changed, 17 insertions(+), 5 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/60/16960/1

diff --git a/src/sccp_scoc.c b/src/sccp_scoc.c
index b5b6547..d2fb8d1 100644
--- a/src/sccp_scoc.c
+++ b/src/sccp_scoc.c
@@ -734,6 +734,7 @@
 		udisp = &scu_prim->u.disconnect;
 		udisp->conn_id = conn->conn_id;
 		udisp->responding_addr = conn->called_addr;
+		udisp->importance = conn->importance;
 		udisp->originator = OSMO_SCCP_ORIG_UNDEFINED;
 		//udisp->in_sequence_control;
 		if (xua) {
@@ -1080,9 +1081,14 @@
 		osmo_fsm_inst_state_chg(fi, S_IDLE, 0, 0);
 		break;
 	case SCOC_E_T_IAR_EXP:
+		xua = xua_msg_alloc();
+		xua_msg_add_u32(xua, SUA_IEI_CAUSE,
+				SUA_CAUSE_T_RELEASE | SCCP_RELEASE_CAUSE_EXPIRATION_INACTIVE);
+		xua_msg_add_u32(xua, SUA_IEI_IMPORTANCE, conn->importance);
 		/* Send N-DISCONNECT.ind to local user */
-		scu_gen_encode_and_send(conn, event, NULL, OSMO_SCU_PRIM_N_DISCONNECT,
+		scu_gen_encode_and_send(conn, event, xua, OSMO_SCU_PRIM_N_DISCONNECT,
 					PRIM_OP_INDICATION);
+		talloc_free(xua);
 		/* Send RLSD to peer */
 		xua_gen_relre_and_send(conn, SCCP_RELEASE_CAUSE_EXPIRATION_INACTIVE, NULL);
 		conn_start_rel_timer(conn);
@@ -1120,14 +1126,20 @@
 		if (xua_msg_get_u32(xua, SUA_IEI_SRC_REF) != conn->remote_ref ||
 		    xua_msg_get_u32(xua, SUA_IEI_PROTO_CLASS) != conn->sccp_class) {
 			/* Release connection */
-			/* send N-DISCONNECT.ind to user */
-			scu_gen_encode_and_send(conn, event, NULL,
-						OSMO_SCU_PRIM_N_DISCONNECT,
-						PRIM_OP_INDICATION);
 			/* Stop inactivity Timers */
 			conn_stop_inact_timers(conn);
+			xua = xua_msg_alloc();
+			xua_msg_add_u32(xua, SUA_IEI_CAUSE,
+					SUA_CAUSE_T_RELEASE | SCCP_RELEASE_CAUSE_INCONSISTENT_CONN_DATA);
+			xua_msg_add_u32(xua, SUA_IEI_IMPORTANCE, conn->importance);
+			/* send N-DISCONNECT.ind to user */
+			scu_gen_encode_and_send(conn, event, xua,
+						OSMO_SCU_PRIM_N_DISCONNECT,
+						PRIM_OP_INDICATION);
+			talloc_free(xua);
 			/* Send RLSD to SCRC */
 			xua_gen_relre_and_send(conn, SCCP_RELEASE_CAUSE_INCONSISTENT_CONN_DATA, NULL);
+			talloc_free(xua);
 			/* Start release timer */
 			conn_start_rel_timer(conn);
 			osmo_fsm_inst_state_chg(fi, S_DISCONN_PEND, 0, 0);

-- 
To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16960
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Change-Id: I87b84e9c3c4cb35135efdb4ba155c684917fbab7
Gerrit-Change-Number: 16960
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200120/e7ca3792/attachment.htm>


More information about the gerrit-log mailing list