Harald Welte has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/7699 )

Change subject: libmsc/ussd.c: use connection ref-counting and transactions
......................................................................

libmsc/ussd.c: use connection ref-counting and transactions

A subscriber may have a few active transactions at the same time.
For example, one can receive SMS messages during a call, or during
an active SS/USSD session.

We already have connection ref-counting and transactions for CC
and SMS, so let's also use both for SS/USSD.

Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0
---
M src/libmsc/transaction.c
M src/libmsc/ussd.c
M tests/msc_vlr/msc_vlr_test_authen_reuse.err
M tests/msc_vlr/msc_vlr_test_gsm_authen.err
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
M tests/msc_vlr/msc_vlr_test_no_authen.err
M tests/msc_vlr/msc_vlr_test_reject_concurrency.err
M tests/msc_vlr/msc_vlr_test_umts_authen.err
8 files changed, 248 insertions(+), 31 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c
index 28da9f3..f2c80d7 100644
--- a/src/libmsc/transaction.c
+++ b/src/libmsc/transaction.c
@@ -128,6 +128,9 @@
                _gsm411_sms_trans_free(trans);
                conn_usage_token = MSC_CONN_USE_TRANS_SMS;
                break;
+       case GSM48_PDISC_NC_SS:
+               conn_usage_token = MSC_CONN_USE_TRANS_NC_SS;
+               break;
        }

        if (trans->paging_request) {
diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c
index f285fcf..a27d47b 100644
--- a/src/libmsc/ussd.c
+++ b/src/libmsc/ussd.c
@@ -35,6 +35,10 @@
 #include <osmocom/msc/osmo_msc.h>
 #include <osmocom/msc/vlr.h>
 #include <osmocom/msc/gsm_04_08.h>
+#include <osmocom/msc/transaction.h>
+
+/* FIXME: choose a proper range */
+static uint32_t new_callref = 0x20000001;

 /* Declarations of USSD strings to be recognised */
 const char USSD_TEXT_OWN_NUMBER[] = "*#100#";
@@ -57,19 +61,60 @@
 /* Entrypoint - handler function common to all mobile-originated USSDs */
 int handle_rcv_ussd(struct gsm_subscriber_connection *conn, struct msgb *msg)
 {
-       int rc;
+       struct gsm48_hdr *gh = msgb_l3(msg);
+       struct gsm_trans *trans;
        struct ss_request req;
-       struct gsm48_hdr *gh;
+       uint8_t pdisc, tid;
+       uint8_t msg_type;
+       int rc;

-       /* TODO: Use subscriber_connection ref-counting if we ever want
-        * to keep the connection alive due ot ongoing USSD exchange.
-        * As we answer everytying synchronously so far, there's no need
-        * yet */
+       pdisc = gsm48_hdr_pdisc(gh);
+       msg_type = gsm48_hdr_msg_type(gh);
+       tid = gsm48_hdr_trans_id_flip_ti(gh);

-       cm_service_request_concludes(conn, msg);
+       /* Associate logging messages with this subscriber */
+       log_set_context(LOG_CTX_VLR_SUBSCR, conn->vsub);
+
+       DEBUGP(DMM, "Received SS/USSD data (trans_id=%x, msg_type=%s)\n",
+               tid, gsm48_pdisc_msgtype_name(pdisc, msg_type));
+
+       /* Reuse existing transaction, or create a new one */
+       trans = trans_find_by_id(conn, pdisc, tid);
+       if (!trans) {
+               /**
+                * According to GSM TS 04.80, section 2.4.2 "Register
+                * (mobile station to network direction)", the REGISTER
+                * message is sent by the mobile station to the network
+                * to assign a new transaction identifier for call independent
+                * supplementary service control and to request or acknowledge
+                * a supplementary service.
+                */
+               if (msg_type != GSM0480_MTYPE_REGISTER) {
+                       LOGP(DMM, LOGL_ERROR, "Unexpected message 
(msg_type=%s), "
+                               "transaction is not allocated yet\n",
+                               gsm48_pdisc_msgtype_name(pdisc, msg_type));
+                       gsm0480_send_ussd_reject(conn, &req,
+                               GSM_0480_PROBLEM_CODE_TAG_GENERAL,
+                               GSM_0480_GEN_PROB_CODE_UNRECOGNISED);
+                       return -EINVAL;
+               }
+
+               DEBUGP(DMM, " -> (new transaction)\n");
+               trans = trans_alloc(conn->network, conn->vsub,
+                       pdisc, tid, new_callref++);
+               if (!trans) {
+                       DEBUGP(DMM, " -> No memory for trans\n");
+                       gsm0480_send_ussd_return_error(conn, &req,
+                               GSM0480_ERR_CODE_SYSTEM_FAILURE);
+                       return -ENOMEM;
+               }
+
+               trans->conn = msc_subscr_conn_get(conn, 
MSC_CONN_USE_TRANS_NC_SS);
+               trans->dlci = OMSC_LINKID_CB(msg);
+               cm_service_request_concludes(conn, msg);
+       }

        memset(&req, 0, sizeof(req));
-       gh = msgb_l3(msg);
        rc = gsm0480_decode_ss_request(gh, msgb_l3len(msg), &req);
        if (!rc) {
                LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, "
@@ -101,5 +146,13 @@
                        GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE);
        }

+       /**
+        * TODO: as we only handle *#100# for now, and always
+        * respond with RELEASE COMPLETE, let's manually free
+        * the transaction here, until the external interface
+        * is implemented.
+        */
+       trans_free(trans);
+
        return rc;
 }
diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err 
b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
index f8ebf51..2fae418 100644
--- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err
+++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err
@@ -259,8 +259,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -268,6 +273,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -381,8 +388,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -390,6 +402,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -731,8 +745,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -740,6 +759,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -866,8 +887,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000004) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -875,6 +901,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1191,8 +1219,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000005) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1200,6 +1233,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1299,8 +1334,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000006) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1308,6 +1348,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1407,8 +1449,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000007) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1416,6 +1463,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1757,8 +1806,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000008) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1766,6 +1820,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1878,8 +1934,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000009) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1887,6 +1948,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1999,8 +2062,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 2000000a) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -2008,6 +2076,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -2338,8 +2408,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 2000000b) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -2347,6 +2422,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -2702,8 +2779,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 2000000c) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -2711,6 +2793,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err 
b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
index 646617a..22f5824 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
@@ -252,8 +252,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -261,6 +266,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -753,8 +760,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received 
Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to 
SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -762,6 +774,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -1878,8 +1892,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1887,6 +1906,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
index 0d5c819..e309c2e 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
@@ -281,8 +281,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -290,6 +295,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -837,8 +844,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received 
Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to 
SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -846,6 +858,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -2079,8 +2093,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -2088,6 +2107,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err 
b/tests/msc_vlr/msc_vlr_test_no_authen.err
index 8d9d497..af80da2 100644
--- a/tests/msc_vlr/msc_vlr_test_no_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_no_authen.err
@@ -165,8 +165,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -174,6 +179,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -541,8 +548,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received 
Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to 
SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -550,6 +562,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err 
b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
index 5d16776..8221e78 100644
--- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
+++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
@@ -1121,8 +1121,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction
+DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -1130,6 +1135,8 @@
 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
+DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err 
b/tests/msc_vlr/msc_vlr_test_umts_authen.err
index c7be31c..fcaaa97 100644
--- a/tests/msc_vlr/msc_vlr_test_umts_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err
@@ -265,8 +265,13 @@
   MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -274,6 +279,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A
 - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING
@@ -769,8 +776,13 @@
   MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER
 DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service)
 DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b)
+DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER)
+DMM  -> (new transaction)
+DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction
+DREF VLR subscr MSISDN:42342 usage increases to: 3
+DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: 
dtap,cm_service,trans_nc_ss)
 DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request 
changes to false
-DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap)
+DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss)
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
Received Event SUBSCR_CONN_E_COMMUNICATING
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: 
state_chg to SUBSCR_CONN_S_COMMUNICATING
 DMM USSD: Own number requested
@@ -778,6 +790,8 @@
 DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU
 - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 
8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d
 - DTAP matches expected message
+DREF VLR subscr MSISDN:42342 usage decreases to: 2
+DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap)
 DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: )
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
Received Event SUBSCR_CONN_E_UNUSED
 DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: 
state_chg to SUBSCR_CONN_S_RELEASING

--
To view, visit https://gerrit.osmocom.org/7699
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0
Gerrit-Change-Number: 7699
Gerrit-PatchSet: 3
Gerrit-Owner: Vadim Yanitskiy <axilira...@gmail.com>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofm...@sysmocom.de>
Gerrit-Reviewer: Vadim Yanitskiy <axilira...@gmail.com>

Reply via email to