<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/17146">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-bts-sysmo: merge measurement data and payload<br><br>For osmo-bts-sysmo the MPH INFO MEAS IND indication is still sent<br>separately. Lets merge the measurement information into the PH DATA<br><br>Change-Id: Iffe7865727fbf9bca8eb32a96e8ea05cf718a948<br>Related: OS#2977<br>---<br>M include/osmo-bts/l1sap.h<br>M src/common/l1sap.c<br>M src/osmo-bts-litecell15/tch.c<br>M src/osmo-bts-oc2g/tch.c<br>M src/osmo-bts-octphy/l1_tch.c<br>M src/osmo-bts-sysmo/l1_if.c<br>M src/osmo-bts-sysmo/main.c<br>M src/osmo-bts-sysmo/tch.c<br>8 files changed, 28 insertions(+), 31 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/l1sap.h b/include/osmo-bts/l1sap.h</span><br><span>index 1883869..1fcf78c 100644</span><br><span>--- a/include/osmo-bts/l1sap.h</span><br><span>+++ b/include/osmo-bts/l1sap.h</span><br><span>@@ -134,7 +134,8 @@</span><br><span> </span><br><span> int add_l1sap_header(struct gsm_bts_trx *trx, struct msgb *rmsg,</span><br><span>                  struct gsm_lchan *lchan, uint8_t chan_nr, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                  uint16_t ber10k, int16_t lqual_cb);</span><br><span style="color: hsl(120, 100%, 40%);">+                   uint16_t ber10k, int16_t lqual_cb, int8_t rssi,</span><br><span style="color: hsl(120, 100%, 40%);">+               int16_t ta_offs, uint8_t is_sub);</span><br><span> </span><br><span> #define msgb_l1sap_prim(msg) ((struct osmo_phsap_prim *)(msg)->l1h)</span><br><span> </span><br><span>diff --git a/src/common/l1sap.c b/src/common/l1sap.c</span><br><span>index 0b51045..05dbb6f 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -176,9 +176,15 @@</span><br><span>         return msg;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Enclose rmsg into an osmo_phsap primitive and hand it over to the higher</span><br><span style="color: hsl(120, 100%, 40%);">+ * layers. The phsap primitive also contains measurement information. The</span><br><span style="color: hsl(120, 100%, 40%);">+ * parameters rssi, ta_offs and is_sub are only needed when the measurement</span><br><span style="color: hsl(120, 100%, 40%);">+ * information is passed along with the TCH data. When separate measurement</span><br><span style="color: hsl(120, 100%, 40%);">+ * indications are used, those last three parameters may be set to zero. */</span><br><span> int add_l1sap_header(struct gsm_bts_trx *trx, struct msgb *rmsg,</span><br><span>                   struct gsm_lchan *lchan, uint8_t chan_nr, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                  uint16_t ber10k, int16_t lqual_cb)</span><br><span style="color: hsl(120, 100%, 40%);">+                    uint16_t ber10k, int16_t lqual_cb, int8_t rssi,</span><br><span style="color: hsl(120, 100%, 40%);">+               int16_t ta_offs, uint8_t is_sub)</span><br><span> {</span><br><span>   struct osmo_phsap_prim *l1sap;</span><br><span> </span><br><span>@@ -194,6 +200,10 @@</span><br><span>    l1sap->u.tch.ber10k = ber10k;</span><br><span>     l1sap->u.tch.lqual_cb = lqual_cb;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+      l1sap->u.tch.rssi = rssi;</span><br><span style="color: hsl(120, 100%, 40%);">+  l1sap->u.tch.ta_offs_256bits = ta_offs;</span><br><span style="color: hsl(120, 100%, 40%);">+    l1sap->u.tch.is_sub = is_sub;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   return l1sap_up(trx, l1sap);</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/osmo-bts-litecell15/tch.c b/src/osmo-bts-litecell15/tch.c</span><br><span>index 5eae753..526b2dd 100644</span><br><span>--- a/src/osmo-bts-litecell15/tch.c</span><br><span>+++ b/src/osmo-bts-litecell15/tch.c</span><br><span>@@ -373,7 +373,7 @@</span><br><span>                 rmsg = msgb_alloc_headroom(256, 128, "L1P-to-RTP");</span><br><span>                return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10, 0, 0, 0);</span><br><span>  }</span><br><span> </span><br><span>        payload_type = data_ind->msgUnitParam.u8Buffer[0];</span><br><span>@@ -463,7 +463,7 @@</span><br><span>  if (rmsg)</span><br><span>            return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10, 0, 0, 0);</span><br><span> </span><br><span>      return 0;</span><br><span> </span><br><span>diff --git a/src/osmo-bts-oc2g/tch.c b/src/osmo-bts-oc2g/tch.c</span><br><span>index 1bd93e4..09ee1e7 100644</span><br><span>--- a/src/osmo-bts-oc2g/tch.c</span><br><span>+++ b/src/osmo-bts-oc2g/tch.c</span><br><span>@@ -373,7 +373,7 @@</span><br><span>                 rmsg = msgb_alloc_headroom(256, 128, "L1P-to-RTP");</span><br><span>                return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10, 0, 0, 0);</span><br><span>  }</span><br><span> </span><br><span>        payload_type = data_ind->msgUnitParam.u8Buffer[0];</span><br><span>@@ -475,7 +475,7 @@</span><br><span>  if (rmsg)</span><br><span>            return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10, 0, 0, 0);</span><br><span> </span><br><span>      return 0;</span><br><span> </span><br><span>diff --git a/src/osmo-bts-octphy/l1_tch.c b/src/osmo-bts-octphy/l1_tch.c</span><br><span>index df0469d..bffa1e9 100644</span><br><span>--- a/src/osmo-bts-octphy/l1_tch.c</span><br><span>+++ b/src/osmo-bts-octphy/l1_tch.c</span><br><span>@@ -151,7 +151,7 @@</span><br><span>             rmsg = msgb_alloc_headroom(256, 128, "L1P-to-RTP");</span><br><span>                return add_l1sap_header(trx, rmsg, lchan, chan_nr,</span><br><span>                                   data_ind->Data.ulFrameNumber,</span><br><span style="color: hsl(0, 100%, 40%);">-                                        ber10k, lqual_cb);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    ber10k, lqual_cb, 0, 0, 0);</span><br><span>  }</span><br><span> </span><br><span>        payload_len = data_ind->Data.ulDataLength;</span><br><span>@@ -210,7 +210,7 @@</span><br><span>  if (rmsg)</span><br><span>            return add_l1sap_header(trx, rmsg, lchan, chan_nr,</span><br><span>                                   data_ind->Data.ulFrameNumber,</span><br><span style="color: hsl(0, 100%, 40%);">-                                        ber10k, lqual_cb);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    ber10k, lqual_cb, 0, 0, 0);</span><br><span> </span><br><span>      return 0;</span><br><span> </span><br><span>diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c</span><br><span>index a891f48..2e5e5b6 100644</span><br><span>--- a/src/osmo-bts-sysmo/l1_if.c</span><br><span>+++ b/src/osmo-bts-sysmo/l1_if.c</span><br><span>@@ -940,25 +940,6 @@</span><br><span> #define LOG_FMT_MEAS "Meas: RSSI %-3.2f dBm, Qual %-3.2f dB, BER %-3.2f, Timing %d"</span><br><span> #define LOG_PARAM_MEAS(meas_param) (meas_param)->fRssi, (meas_param)->fLinkQuality, (meas_param)->fBer, (meas_param)->i16BurstTiming</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int process_meas_res(struct gsm_bts_trx *trx, uint8_t chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                     uint32_t fn, GsmL1_MeasParam_t *m)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct osmo_phsap_prim l1sap;</span><br><span style="color: hsl(0, 100%, 40%);">-   memset(&l1sap, 0, sizeof(l1sap));</span><br><span style="color: hsl(0, 100%, 40%);">-   osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_MPH_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">-               PRIM_OP_INDICATION, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-      l1sap.u.info.type = PRIM_INFO_MEAS;</span><br><span style="color: hsl(0, 100%, 40%);">-     l1sap.u.info.u.meas_ind.chan_nr = chan_nr;</span><br><span style="color: hsl(0, 100%, 40%);">-      l1sap.u.info.u.meas_ind.ta_offs_256bits = m->i16BurstTiming * 64;</span><br><span style="color: hsl(0, 100%, 40%);">-    l1sap.u.info.u.meas_ind.ber10k = (unsigned int) (m->fBer * 10000);</span><br><span style="color: hsl(0, 100%, 40%);">-   l1sap.u.info.u.meas_ind.inv_rssi = (uint8_t) (m->fRssi * -1);</span><br><span style="color: hsl(0, 100%, 40%);">-        l1sap.u.info.u.meas_ind.fn = fn;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        /* l1sap wants to take msgb ownership.  However, as there is no</span><br><span style="color: hsl(0, 100%, 40%);">-  * msg, it will msgb_free(l1sap.oph.msg == NULL) */</span><br><span style="color: hsl(0, 100%, 40%);">-     return l1sap_up(trx, &l1sap);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static int handle_ph_data_ind(struct femtol1_hdl *fl1, GsmL1_PhDataInd_t *data_ind,</span><br><span>                          struct msgb *l1p_msg)</span><br><span> {</span><br><span>@@ -983,8 +964,6 @@</span><br><span>       fn = data_ind->u32Fn;</span><br><span>     link_id =  (data_ind->sapi == GsmL1_Sapi_Sacch) ? LID_SACCH : LID_DEDIC;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- process_meas_res(trx, chan_nr, fn, &data_ind->measParam);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>     gsm_fn2gsmtime(&g_time, fn);</span><br><span> </span><br><span>         DEBUGPGT(DL1P, &g_time, "Rx PH-DATA.ind %s (hL2 %08x): %s, " LOG_FMT_MEAS "\n",</span><br><span>diff --git a/src/osmo-bts-sysmo/main.c b/src/osmo-bts-sysmo/main.c</span><br><span>index bb2c436..44c6d5d 100644</span><br><span>--- a/src/osmo-bts-sysmo/main.c</span><br><span>+++ b/src/osmo-bts-sysmo/main.c</span><br><span>@@ -87,6 +87,7 @@</span><br><span>         gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR);</span><br><span>     gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR);</span><br><span>     gsm_bts_set_feature(bts, BTS_FEAT_MS_PWR_CTRL_DSP);</span><br><span style="color: hsl(120, 100%, 40%);">+   gsm_bts_set_feature(bts, BTS_FEAT_MEAS_PAYLOAD_COMB);</span><br><span> </span><br><span>    bts_model_vty_init(bts);</span><br><span> </span><br><span>diff --git a/src/osmo-bts-sysmo/tch.c b/src/osmo-bts-sysmo/tch.c</span><br><span>index 54e7313..eb719f1 100644</span><br><span>--- a/src/osmo-bts-sysmo/tch.c</span><br><span>+++ b/src/osmo-bts-sysmo/tch.c</span><br><span>@@ -518,7 +518,10 @@</span><br><span>             rmsg = msgb_alloc_headroom(256, 128, "L1P-to-RTP");</span><br><span>                return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     data_ind->measParam.fRssi,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 data_ind->measParam.i16BurstTiming * 64,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   0);</span><br><span>  }</span><br><span> </span><br><span>        payload_type = data_ind->msgUnitParam.u8Buffer[0];</span><br><span>@@ -613,7 +616,10 @@</span><br><span>         if (rmsg)</span><br><span>            return add_l1sap_header(trx, rmsg, lchan, chan_nr, data_ind->u32Fn,</span><br><span>                                       data_ind->measParam.fBer * 10000,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->measParam.fLinkQuality * 10);</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data_ind->measParam.fLinkQuality * 10,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     data_ind->measParam.fRssi,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 data_ind->measParam.i16BurstTiming * 64,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   0);</span><br><span> </span><br><span>      return 0;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/17146">change 17146</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bts/+/17146"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iffe7865727fbf9bca8eb32a96e8ea05cf718a948 </div>
<div style="display:none"> Gerrit-Change-Number: 17146 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>