fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-bts/+/25285 )

Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY
......................................................................

rsl: parse temporary overpower value RSL CHAN ACT / MODIFY

The temporary overpower value that is to be used with FACCH and SACCH is
transferred using a proprietary RSL IE (RSL_IE_OSMO_TOP_ACCH_CAP). The
parsed value is then stored in lchan->bs_acch_overpower_db so that it
can be used.

Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c
Related: SYS#5319
---
M src/common/rsl.c
1 file changed, 26 insertions(+), 0 deletions(-)

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



diff --git a/src/common/rsl.c b/src/common/rsl.c
index e13160e..d50983d 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1596,6 +1596,26 @@
               sizeof(lchan->repeated_acch_capability));
 }

+/* Parse RSL_IE_OSMO_TOP_ACCH_CAP */
+static int parse_temporary_overpower_acch_capability(struct gsm_lchan *lchan,
+                                                    const struct tlv_parsed 
*tp)
+{
+       struct abis_rsl_osmo_temp_ovp_acch_cap *top;
+
+       lchan->bs_acch_overpower_db = 0;
+
+       if (!TLVP_PRES_LEN(tp, RSL_IE_OSMO_TEMP_OVP_ACCH_CAP, sizeof(*top)))
+               return 0;
+
+       if (!osmo_bts_has_feature(lchan->ts->trx->bts->features, 
BTS_FEAT_ACCH_TEMP_OVP))
+               return -RSL_ERR_OPT_IE_ERROR;
+
+       top = (struct abis_rsl_osmo_temp_ovp_acch_cap *)TLVP_VAL(tp, 
RSL_IE_OSMO_TEMP_OVP_ACCH_CAP);
+       lchan->bs_acch_overpower_db = top->overpower_db;
+
+       return 0;
+}
+
 /* 8.4.1 CHANnel ACTIVation is received */
 static int rsl_rx_chan_activ(struct msgb *msg)
 {
@@ -1896,6 +1916,9 @@
        lchan->rel_act_kind = LCHAN_REL_ACT_RSL;

        parse_repeated_acch_capability(lchan, &tp);
+       rc = parse_temporary_overpower_acch_capability(lchan, &tp);
+       if (rc < 0)
+               return rsl_tx_chan_act_acknack(lchan, -rc);

        /* actually activate the channel in the BTS */
        rc = l1sap_chan_act(lchan->ts->trx, dch->chan_nr, &tp);
@@ -2220,6 +2243,9 @@
        /* 9.3.54 Supported Codec Types */

        parse_repeated_acch_capability(lchan, &tp);
+       rc = parse_temporary_overpower_acch_capability(lchan, &tp);
+       if (rc < 0)
+               return rsl_tx_mode_modif_nack(lchan, -rc);

        l1sap_chan_modify(lchan->ts->trx, dch->chan_nr);


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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c
Gerrit-Change-Number: 25285
Gerrit-PatchSet: 4
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to