lynxis lazus has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-iuh/+/38944?usp=email )

 (

4 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted 
one.
 )Change subject: iu_client: use new struct osmo_rnc_id
......................................................................

iu_client: use new struct osmo_rnc_id

The osmo_rnc_id is a libosmocore type which can be used across
different libraries.
In preparation to notify the SGSN when a new RAC/LAC is learned.

Depends-on: I17a2adedc2c2ab158f40d58280f5df5c6967b8ec (libosmocore)
Change-Id: Id8db70bd3d63b0533b637402a91757eb677c38b7
---
M src/iu_client.c
1 file changed, 19 insertions(+), 18 deletions(-)

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




diff --git a/src/iu_client.c b/src/iu_client.c
index ea5ebe8..7f4ba3d 100644
--- a/src/iu_client.c
+++ b/src/iu_client.c
@@ -27,6 +27,7 @@

 #include <asn1c/asn1helpers.h>

+#include <osmocom/gsm/protocol/gsm_04_08_gprs.h>
 #include <osmocom/ranap/iu_client.h>

 #include <osmocom/core/logging.h>
@@ -73,7 +74,7 @@
 struct ranap_iu_rnc {
        struct llist_head entry;

-       uint16_t rnc_id;
+       struct osmo_rnc_id rnc_id;
        struct osmo_sccp_addr sccp_addr;

        /* A list of struct iu_lac_rac_entry */
@@ -209,18 +210,18 @@
        }
 }

-static struct ranap_iu_rnc *iu_rnc_alloc(uint16_t rnc_id, struct 
osmo_sccp_addr *addr)
+static struct ranap_iu_rnc *iu_rnc_alloc(const struct osmo_rnc_id *rnc_id, 
struct osmo_sccp_addr *addr)
 {
        struct ranap_iu_rnc *rnc = talloc_zero(talloc_iu_ctx, struct 
ranap_iu_rnc);
        OSMO_ASSERT(rnc);

        INIT_LLIST_HEAD(&rnc->lac_rac_list);

-       rnc->rnc_id = rnc_id;
+       rnc->rnc_id = *rnc_id;
        rnc->sccp_addr = *addr;
        llist_add(&rnc->entry, &rnc_list);

-       LOGPIU(LOGL_NOTICE, "New RNC %d at %s\n", rnc->rnc_id, 
osmo_sccp_addr_dump(addr));
+       LOGPIU(LOGL_NOTICE, "New RNC %s at %s\n", 
osmo_rnc_id_name(&rnc->rnc_id), osmo_sccp_addr_dump(addr));

        return rnc;
 }
@@ -253,11 +254,11 @@
        return false;
 }

-static struct ranap_iu_rnc *iu_rnc_id_find(uint16_t rnc_id)
+static struct ranap_iu_rnc *iu_rnc_id_find(struct osmo_rnc_id *rnc_id)
 {
        struct ranap_iu_rnc *rnc;
        llist_for_each_entry(rnc, &rnc_list, entry) {
-               if (rnc->rnc_id == rnc_id)
+               if (!osmo_rnc_id_cmp(&rnc->rnc_id, rnc_id))
                        return rnc;
        }
        return NULL;
@@ -270,7 +271,7 @@
        return !strcmp(buf, osmo_sccp_addr_dump(b));
 }

-static struct ranap_iu_rnc *iu_rnc_register(uint16_t rnc_id, uint16_t lac,
+static struct ranap_iu_rnc *iu_rnc_register(struct osmo_rnc_id *rnc_id, 
uint16_t lac,
                                            uint8_t rac, struct osmo_sccp_addr 
*addr)
 {
        struct ranap_iu_rnc *rnc;
@@ -282,8 +283,8 @@

        if (rnc) {
                if (!same_sccp_addr(&rnc->sccp_addr, addr)) {
-                       LOGPIU(LOGL_NOTICE, "RNC %u changed its SCCP addr to %s 
(LAC=%u RAC=%u)\n",
-                              rnc_id, osmo_sccp_addr_dump(addr), lac, rac);
+                       LOGPIU(LOGL_NOTICE, "RNC %s changed its SCCP addr to %s 
(LAC=%u RAC=%u)\n",
+                              osmo_rnc_id_name(rnc_id), 
osmo_sccp_addr_dump(addr), lac, rac);
                        rnc->sccp_addr = *addr;
                }
        } else
@@ -294,16 +295,16 @@

        if (old_rnc && old_rnc != rnc) {
                /* LAC,RAC already exists in a different RNC */
-               LOGPIU(LOGL_NOTICE, "LAC %u RAC %u moved from RNC %u %s",
-                      lac, rac, old_rnc->rnc_id, 
osmo_sccp_addr_dump(&old_rnc->sccp_addr));
-               LOGPIUC(LOGL_NOTICE, " to RNC %u %s\n",
-                       rnc->rnc_id, osmo_sccp_addr_dump(&rnc->sccp_addr));
+               LOGPIU(LOGL_NOTICE, "LAC %u RAC %u moved from RNC %s %s",
+                      lac, rac, osmo_rnc_id_name(&old_rnc->rnc_id), 
osmo_sccp_addr_dump(&old_rnc->sccp_addr));
+               LOGPIUC(LOGL_NOTICE, " to RNC %s %s\n",
+                       osmo_rnc_id_name(&rnc->rnc_id), 
osmo_sccp_addr_dump(&rnc->sccp_addr));

                llist_del(&lre->entry);
                llist_add(&lre->entry, &rnc->lac_rac_list);
        } else if (!old_rnc) {
                /* LAC,RAC not recorded yet */
-               LOGPIU(LOGL_NOTICE, "RNC %u: new LAC %u RAC %u\n", rnc_id, lac, 
rac);
+               LOGPIU(LOGL_NOTICE, "RNC %s: new LAC %u RAC %u\n", 
osmo_rnc_id_name(rnc_id), lac, rac);
                lre = talloc_zero(rnc, struct iu_lac_rac_entry);
                lre->lac = lac;
                lre->rac = rac;
@@ -376,7 +377,7 @@
        return osmo_sccp_user_sap_down(g_scu, &prim->oph);
 }

-static int iu_grnc_id_parse(struct iu_grnc_id *dst, struct RANAP_GlobalRNC_ID 
*src)
+static int iu_grnc_id_parse(struct osmo_rnc_id *dst, struct RANAP_GlobalRNC_ID 
*src)
 {
        /* The size is coming from arbitrary sender, check it gracefully */
        if (src->pLMNidentity.size != 3) {
@@ -411,7 +412,7 @@
 {
        struct new_ue_conn_ctx *new_ctx = ctx;
        struct gprs_ra_id ra_id;
-       struct iu_grnc_id grnc_id;
+       struct osmo_rnc_id rnc_id = {};
        uint16_t sai;
        struct ranap_ue_conn_ctx *ue;
        struct msgb *msg = msgb_alloc(256, "RANAP->NAS");
@@ -426,7 +427,7 @@
                ra_id.rac = asn1str_to_u8(&ies->rac);
        }

-       if (iu_grnc_id_parse(&grnc_id, &ies->globalRNC_ID) != 0) {
+       if (iu_grnc_id_parse(&rnc_id, &ies->globalRNC_ID) != 0) {
                LOGPIU(LOGL_ERROR,
                       "Failed to parse RANAP Global-RNC-ID IE\n");
                return -1;
@@ -437,7 +438,7 @@
        memcpy(msgb_gmmh(msg), ies->nas_pdu.buf, ies->nas_pdu.size);

        /* Make sure we know the RNC Id and LAC+RAC coming in on this 
connection. */
-       rnc = iu_rnc_register(grnc_id.rnc_id, ra_id.lac, ra_id.rac, 
&new_ctx->sccp_addr);
+       rnc = iu_rnc_register(&rnc_id, ra_id.lac, ra_id.rac, 
&new_ctx->sccp_addr);

        ue = ue_conn_ctx_alloc(rnc, new_ctx->conn_id);
        OSMO_ASSERT(ue);

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

Gerrit-MessageType: merged
Gerrit-Project: osmo-iuh
Gerrit-Branch: master
Gerrit-Change-Id: Id8db70bd3d63b0533b637402a91757eb677c38b7
Gerrit-Change-Number: 38944
Gerrit-PatchSet: 5
Gerrit-Owner: lynxis lazus <lyn...@fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: lynxis lazus <lyn...@fe80.eu>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>

Reply via email to