<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/22887">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">l1sap: be sure that the DL-SACCH l1 header is also repeated<br><br>When the MS requests DL-SACCH repetition, an exact copy of the<br>previously transmitted SACCH block is expected. At the moment osmo-bts<br>does only save the payload of the DL-SACCH without the two byte L1<br>header for repetition.<br><br>Change-Id: I6ae601c84dd0df0c9ae142c3295da36f3222b0c9<br>Related: SYS#5114<br>---<br>M include/osmo-bts/gsm_data.h<br>M src/common/l1sap.c<br>2 files changed, 9 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/22887/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h</span><br><span>index 05b6cf2..22099a1 100644</span><br><span>--- a/include/osmo-bts/gsm_data.h</span><br><span>+++ b/include/osmo-bts/gsm_data.h</span><br><span>@@ -409,6 +409,7 @@</span><br><span> </span><br><span>        /* Message buffer to store DL-SACCH repeation candidate */</span><br><span>   struct msgb *rep_sacch;</span><br><span style="color: hsl(120, 100%, 40%);">+        uint8_t rep_sacch_l1_hdr[2];</span><br><span> };</span><br><span> </span><br><span> static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan)</span><br><span>diff --git a/src/common/l1sap.c b/src/common/l1sap.c</span><br><span>index be50ed2..025982a 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -1037,7 +1037,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Special dequeueing function with SACCH repetition (3GPP TS 44.006, section 11) */</span><br><span style="color: hsl(0, 100%, 40%);">-static inline struct msgb *lapdm_phsap_dequeue_msg_sacch(struct gsm_lchan *lchan, struct lapdm_entity *le)</span><br><span style="color: hsl(120, 100%, 40%);">+static inline struct msgb *lapdm_phsap_dequeue_msg_sacch(struct gsm_lchan *lchan, struct lapdm_entity *le, uint8_t *p)</span><br><span> {</span><br><span>    struct osmo_phsap_prim pp;</span><br><span>   struct msgb *msg;</span><br><span>@@ -1056,6 +1056,8 @@</span><br><span>                    /* Use previous repetition candidate */</span><br><span>                      msg = lchan->rep_sacch;</span><br><span>                   lchan->rep_sacch = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+                   p[0] = lchan->rep_sacch_l1_hdr[0];</span><br><span style="color: hsl(120, 100%, 40%);">+                 p[1] = lchan->rep_sacch_l1_hdr[1];</span><br><span>                        return msg;</span><br><span>          }</span><br><span>    }</span><br><span>@@ -1068,8 +1070,11 @@</span><br><span> </span><br><span>       /* Only LAPDm frames for SAPI 0 may become a repetition</span><br><span>       * candidate. */</span><br><span style="color: hsl(0, 100%, 40%);">-        if (sapi == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (sapi == 0) {</span><br><span>             lchan->rep_sacch = msgb_copy(msg, "rep_sacch");</span><br><span style="color: hsl(120, 100%, 40%);">+          lchan->rep_sacch_l1_hdr[0] = p[0];</span><br><span style="color: hsl(120, 100%, 40%);">+         lchan->rep_sacch_l1_hdr[1] = p[1];</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> </span><br><span>        return msg;</span><br><span> }</span><br><span>@@ -1158,7 +1163,7 @@</span><br><span>                     p[1] = lchan->rqd_ta;</span><br><span>                     le = &lchan->lapdm_ch.lapdm_acch;</span><br><span>                     if (lchan->repeated_acch_capability.dl_sacch)</span><br><span style="color: hsl(0, 100%, 40%);">-                                pp_msg = lapdm_phsap_dequeue_msg_sacch(lchan, le);</span><br><span style="color: hsl(120, 100%, 40%);">+                            pp_msg = lapdm_phsap_dequeue_msg_sacch(lchan, le, p);</span><br><span>                        else</span><br><span>                                 pp_msg = lapdm_phsap_dequeue_msg(le);</span><br><span>                } else {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/22887">change 22887</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/+/22887"/><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: I6ae601c84dd0df0c9ae142c3295da36f3222b0c9 </div>
<div style="display:none"> Gerrit-Change-Number: 22887 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>