pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmocom-bb/+/31359 )

Change subject: modem: Use libosmo-gprs-rlcmac L1CTL primitives
......................................................................

modem: Use libosmo-gprs-rlcmac L1CTL primitives

Related: OS#5500
Change-Id: I9d3066f19077796b2ccf70b15cc57b6488f015be
---
M src/host/layer23/src/modem/app_modem.c
1 file changed, 20 insertions(+), 11 deletions(-)

Approvals:
  fixeria: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/src/host/layer23/src/modem/app_modem.c 
b/src/host/layer23/src/modem/app_modem.c
index 28984e7..b55768f 100644
--- a/src/host/layer23/src/modem/app_modem.c
+++ b/src/host/layer23/src/modem/app_modem.c
@@ -39,6 +39,7 @@
 #include <osmocom/gsm/gsm48.h>
 #include <osmocom/gsm/protocol/gsm_04_08.h>
 #include <osmocom/gprs/rlcmac/csn1_defs.h>
+#include <osmocom/gprs/rlcmac/rlcmac_prim.h>

 #include <osmocom/bb/common/osmocom_data.h>
 #include <osmocom/bb/common/ms.h>
@@ -230,6 +231,7 @@
 static int handle_si13(struct osmocom_ms *ms, struct msgb *msg)
 {
        int rc;
+       struct osmo_gprs_rlcmac_prim *rlcmac_prim;

        if (msgb_l3len(msg) != GSM_MACBLOCK_LEN)
                return -EINVAL;
@@ -240,7 +242,10 @@
        if (rc != 0)
                return rc;

-       return 0;
+       /* Forward SI13 to RLC/MAC layer */
+       rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_l1ctl_ccch_data_ind(0 /* 
TODO: fn */, msgb_l3(msg));
+       rc = osmo_gprs_rlcmac_prim_lower_up(rlcmac_prim);
+       return rc;
 }

 static int modem_rx_bcch(struct osmocom_ms *ms, struct msgb *msg)
@@ -275,6 +280,7 @@
        struct gsm48_rrlayer *rr = &ms->rrlayer;
        uint8_t ch_type, ch_subch, ch_ts;
        int rc;
+       struct osmo_gprs_rlcmac_prim *rlcmac_prim;

        /* Discard CS channel assignment */
        if ((ia->page_mode >> 4) == 0)
@@ -340,17 +346,10 @@
                                       ia->chan_desc.h1.tsc, GSM48_CMODE_SIGN, 
0);
        }

-       const uint8_t *data = msgb_l3(msg) + sizeof(*ia) + ia->mob_alloc_len;
-       size_t data_len = msgb_l3len(msg) - (sizeof(*ia) + ia->mob_alloc_len);
-       IA_RestOctets_t iaro;
-
-       rc = osmo_gprs_rlcmac_decode_imm_ass_ro(&iaro, data, data_len);
-       if (rc != 0) {
-               LOGP(DRR, LOGL_ERROR, "Failed to decode IA Rest Octets IE\n");
+       rlcmac_prim = osmo_gprs_rlcmac_prim_alloc_l1ctl_ccch_data_ind(0 /* 
TODO: fn */, (uint8_t *)ia);
+       rc = osmo_gprs_rlcmac_prim_lower_up(rlcmac_prim);
+       if (rc < 0)
                return rc;
-       }
-
-       /* TODO: deliver decoded params to the RLC/MAC layer */

        rr->state = GSM48_RR_ST_DEDICATED;
        return 0;

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

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I9d3066f19077796b2ccf70b15cc57b6488f015be
Gerrit-Change-Number: 31359
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>
Gerrit-MessageType: merged

Reply via email to