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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">layer23: Avoid sending downlink AGCH/PCH fill frames over GSMTAP<br><br>Some bits are taken from osmo-bts l1sap.c.<br><br>Change-Id: Id21e9334b620b8ab3ad404708bfd5358e3555ab6<br>---<br>M src/host/layer23/src/common/l1ctl.c<br>1 file changed, 36 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c</span><br><span>index d1385e5..de66972 100644</span><br><span>--- a/src/host/layer23/src/common/l1ctl.c</span><br><span>+++ b/src/host/layer23/src/common/l1ctl.c</span><br><span>@@ -95,6 +95,34 @@</span><br><span>  return GSMTAP_CHANNEL_AGCH;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static const uint8_t fill_frame[GSM_MACBLOCK_LEN] = {</span><br><span style="color: hsl(120, 100%, 40%);">+        0x03, 0x03, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,</span><br><span style="color: hsl(120, 100%, 40%);">+        0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,</span><br><span style="color: hsl(120, 100%, 40%);">+        0x2B, 0x2B, 0x2B</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Paging Request 1 with "no identity" content, i.e. empty/dummy paging */</span><br><span style="color: hsl(120, 100%, 40%);">+static const uint8_t paging_fill[GSM_MACBLOCK_LEN] = {</span><br><span style="color: hsl(120, 100%, 40%);">+   0x15, 0x06, 0x21, 0x00, 0x01, 0xf0, 0x2b, 0x2b, 0x2b, 0x2b,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,</span><br><span style="color: hsl(120, 100%, 40%);">+   0x2b, 0x2b, 0x2b };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static bool is_fill_frame(uint8_t chan_type, const uint8_t *data)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   switch (chan_type) {</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSMTAP_CHANNEL_AGCH:</span><br><span style="color: hsl(120, 100%, 40%);">+             if (!memcmp(data, fill_frame, GSM_MACBLOCK_LEN))</span><br><span style="color: hsl(120, 100%, 40%);">+                      return true;</span><br><span style="color: hsl(120, 100%, 40%);">+          break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case GSMTAP_CHANNEL_PCH:</span><br><span style="color: hsl(120, 100%, 40%);">+              if (!memcmp(data, paging_fill, GSM_MACBLOCK_LEN))</span><br><span style="color: hsl(120, 100%, 40%);">+                     return true;</span><br><span style="color: hsl(120, 100%, 40%);">+          break;</span><br><span style="color: hsl(120, 100%, 40%);">+        /* don't use 'default' case here as the above only conditionally return true */</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     return false;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static struct msgb *osmo_l1_alloc(uint8_t msg_type)</span><br><span> {</span><br><span>       struct l1ctl_hdr *l1h;</span><br><span>@@ -274,11 +302,15 @@</span><br><span>               return 0;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* send CCCH data via GSMTAP */</span><br><span>      gsmtap_chan_type = chantype_rsl2gsmtap_ext(chan_type, dl->link_id, tm.fn, ms->cellsel.si->bs_ag_blks_res);</span><br><span style="color: hsl(0, 100%, 40%);">-     gsmtap_send(gsmtap_inst, ntohs(dl->band_arfcn), chan_ts,</span><br><span style="color: hsl(0, 100%, 40%);">-                 gsmtap_chan_type, chan_ss, tm.fn, dl->rx_level-110,</span><br><span style="color: hsl(0, 100%, 40%);">-                  dl->snr, ccch->data, sizeof(ccch->data));</span><br><span style="color: hsl(120, 100%, 40%);">+        /* don't log fill frames via GSMTAP; they serve no purpose other than</span><br><span style="color: hsl(120, 100%, 40%);">+      * to clog up your logs */</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!is_fill_frame(gsmtap_chan_type, ccch->data)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                /* send CCCH data via GSMTAP */</span><br><span style="color: hsl(120, 100%, 40%);">+               gsmtap_send(gsmtap_inst, ntohs(dl->band_arfcn), chan_ts,</span><br><span style="color: hsl(120, 100%, 40%);">+                       gsmtap_chan_type, chan_ss, tm.fn, dl->rx_level-110,</span><br><span style="color: hsl(120, 100%, 40%);">+                        dl->snr, ccch->data, sizeof(ccch->data));</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span> </span><br><span>        /* determine LAPDm entity based on SACCH or not */</span><br><span>   if (dl->link_id & 0x40)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmocom-bb/+/16664">change 16664</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/osmocom-bb/+/16664"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Id21e9334b620b8ab3ad404708bfd5358e3555ab6 </div>
<div style="display:none"> Gerrit-Change-Number: 16664 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@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-MessageType: merged </div>