<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>