laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-sgsn/+/39242?usp=email )

Change subject: Refactor mmctx_is_r99 into mmctx.c
......................................................................

Refactor mmctx_is_r99 into mmctx.c

It is related to the mmctx and should be in mmctx.c instead
of the GMM message parsing or handling.

Change-Id: I198a3c9d49667c70e8995808b3fcb5ea26e8f17a
---
M include/osmocom/sgsn/mmctx.h
M src/sgsn/gprs_gmm.c
M src/sgsn/mmctx.c
3 files changed, 17 insertions(+), 14 deletions(-)

Approvals:
  pespin: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/include/osmocom/sgsn/mmctx.h b/include/osmocom/sgsn/mmctx.h
index 03bb845..9fa06dc 100644
--- a/include/osmocom/sgsn/mmctx.h
+++ b/include/osmocom/sgsn/mmctx.h
@@ -282,6 +282,8 @@
 struct sgsn_pdp_ctx *sgsn_pdp_ctx_by_tid(const struct sgsn_mm_ctx *mm,
                                         uint8_t tid);

+bool sgsn_mm_ctx_is_r99(const struct sgsn_mm_ctx *mm);
+
 uint32_t sgsn_alloc_ptmsi(void);

 /* Called on subscriber data updates */
diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c
index 357b762..80c2148 100644
--- a/src/sgsn/gprs_gmm.c
+++ b/src/sgsn/gprs_gmm.c
@@ -479,16 +479,6 @@
        return gsm48_gmm_sendmsg(msg, 1, mm, false);
 }

-/* determine if the MS/UE supports R99 or later */
-static bool mmctx_is_r99(const struct sgsn_mm_ctx *mm)
-{
-       if (mm->ms_network_capa.len < 1)
-               return false;
-       if (mm->ms_network_capa.buf[0] & 0x01)
-               return true;
-       return false;
-}
-
 static enum gprs_ciph_algo gprs_ms_net_select_best_gea(uint8_t net_mask, 
uint8_t ms_mask) {
        uint8_t common_mask = net_mask & ms_mask;
        uint8_t r = 0;
@@ -514,8 +504,8 @@
        LOGMMCTXP(LOGL_INFO, mm, "<- GMM AUTH AND CIPHERING REQ (rand = %s,"
                  " mmctx_is_r99=%d, vec->auth_types=0x%x",
                  osmo_hexdump(vec->rand, sizeof(vec->rand)),
-                 mmctx_is_r99(mm), vec->auth_types);
-       if (mmctx_is_r99(mm) && vec
+                 sgsn_mm_ctx_is_r99(mm), vec->auth_types);
+       if (sgsn_mm_ctx_is_r99(mm) && vec
            && (vec->auth_types & OSMO_AUTH_TYPE_UMTS)) {
                LOGPC(DMM, LOGL_INFO, ", autn = %s)\n",
                      osmo_hexdump(vec->autn, sizeof(vec->autn)));
@@ -558,7 +548,7 @@
                 * the optional AUTN IE.  If a classic GSM SIM is
                 * inserted, it will simply ignore AUTN and just use
                 * RAND */
-               if (mmctx_is_r99(mm) &&
+               if (sgsn_mm_ctx_is_r99(mm) &&
                    (vec->auth_types & OSMO_AUTH_TYPE_UMTS)) {
                        msgb_tlv_put(msg, GSM48_IE_GMM_AUTN,
                                     sizeof(vec->autn), vec->autn);
@@ -602,7 +592,7 @@
         * However, on GERAN, even if we sent a UMTS AKA Authentication 
Request, the MS may decide to
         * instead reply with a GSM AKA SRES response. */
        if (is_utran
-           || (mmctx_is_r99(ctx) && (vec->auth_types & OSMO_AUTH_TYPE_UMTS)
+           || (sgsn_mm_ctx_is_r99(ctx) && (vec->auth_types & 
OSMO_AUTH_TYPE_UMTS)
                && (res_len > sizeof(vec->sres)))) {
                expect_type = OSMO_AUTH_TYPE_UMTS;
                expect_str = "UMTS RES";
diff --git a/src/sgsn/mmctx.c b/src/sgsn/mmctx.c
index e0af4ed..ae73320 100644
--- a/src/sgsn/mmctx.c
+++ b/src/sgsn/mmctx.c
@@ -597,3 +597,14 @@

        return ggsn;
 }
+
+
+/* determine if the MS/UE supports R99 or later */
+bool sgsn_mm_ctx_is_r99(const struct sgsn_mm_ctx *mm)
+{
+       if (mm->ms_network_capa.len < 1)
+               return false;
+       if (mm->ms_network_capa.buf[0] & 0x01)
+               return true;
+       return false;
+}

--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39242?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: I198a3c9d49667c70e8995808b3fcb5ea26e8f17a
Gerrit-Change-Number: 39242
Gerrit-PatchSet: 3
Gerrit-Owner: lynxis lazus <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to