<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11550">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">RSL: restructure MDCX functions<br><br>In preparation for upcoming LCLS changes we have to split IPA RSL MDCX<br>generation into separate function with the ability to set destination<br>explicitly instead of just using the value from lchan which will be used<br>in follow-up patches.<br><br>Change-Id: Iffe2f4f10e841fc36965cce02b4e5f017a5ae6c8<br>Related: OS#3659<br>---<br>M include/osmocom/bsc/abis_rsl.h<br>M src/osmo-bsc/abis_rsl.c<br>2 files changed, 19 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h</span><br><span>index 5ada3fc..098d2e6 100644</span><br><span>--- a/include/osmocom/bsc/abis_rsl.h</span><br><span>+++ b/include/osmocom/bsc/abis_rsl.h</span><br><span>@@ -61,6 +61,7 @@</span><br><span> int rsl_siemens_mrpci(struct gsm_lchan *lchan, struct rsl_mrpci *mrpci);</span><br><span> </span><br><span> /* ip.access specfic RSL extensions */</span><br><span style="color: hsl(120, 100%, 40%);">+struct msgb *rsl_make_ipacc_mdcx(const struct gsm_lchan *lchan, uint32_t dest_ip, uint16_t dest_port);</span><br><span> int rsl_tx_ipacc_crcx(const struct gsm_lchan *lchan);</span><br><span> int rsl_tx_ipacc_mdcx(const struct gsm_lchan *lchan);</span><br><span> int rsl_ipacc_mdcx_to_rtpsock(struct gsm_lchan *lchan);</span><br><span>diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c</span><br><span>index 6e8d078..954fb0f 100644</span><br><span>--- a/src/osmo-bsc/abis_rsl.c</span><br><span>+++ b/src/osmo-bsc/abis_rsl.c</span><br><span>@@ -1847,11 +1847,12 @@</span><br><span>         return abis_rsl_sendmsg(msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*! Send IPA RSL MDCX to configure the RTP port the BTS sends to (MGW).</span><br><span style="color: hsl(0, 100%, 40%);">- * \param[in] lchan Logical Channel for which we issue MDCX</span><br><span style="color: hsl(0, 100%, 40%);">- * Remote (MGW) IP address, port and payload types for RTP are determined from lchan->abis_ip.</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Allocate buffer for IPA RSL MDCX and populate it with given parameters.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] lchan Logical Channel for which we make MDCX</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] dest_ip The IP address to connect to</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] dest_port The port to connect to</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int rsl_tx_ipacc_mdcx(const struct gsm_lchan *lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+struct msgb *rsl_make_ipacc_mdcx(const struct gsm_lchan *lchan, uint32_t dest_ip, uint16_t dest_port)</span><br><span> {</span><br><span>        struct msgb *msg = rsl_msgb_alloc();</span><br><span>         struct abis_rsl_dchan_hdr *dh;</span><br><span>@@ -1865,8 +1866,8 @@</span><br><span>       msgb_tv16_put(msg, RSL_IE_IPAC_CONN_ID, lchan->abis_ip.conn_id);</span><br><span>  msgb_v_put(msg, RSL_IE_IPAC_REMOTE_IP);</span><br><span>      att_ip = (uint32_t *)msgb_put(msg, sizeof(uint32_t));</span><br><span style="color: hsl(0, 100%, 40%);">-   *att_ip = htonl(lchan->abis_ip.connect_ip);</span><br><span style="color: hsl(0, 100%, 40%);">-  msgb_tv16_put(msg, RSL_IE_IPAC_REMOTE_PORT, lchan->abis_ip.connect_port);</span><br><span style="color: hsl(120, 100%, 40%);">+  *att_ip = htonl(dest_ip);</span><br><span style="color: hsl(120, 100%, 40%);">+     msgb_tv16_put(msg, RSL_IE_IPAC_REMOTE_PORT, dest_port);</span><br><span>      msgb_tv_put(msg, RSL_IE_IPAC_SPEECH_MODE, lchan->abis_ip.speech_mode);</span><br><span>    msgb_tv_put(msg, RSL_IE_IPAC_RTP_PAYLOAD, lchan->abis_ip.rtp_payload);</span><br><span>    if (lchan->abis_ip.rtp_payload2)</span><br><span>@@ -1874,6 +1875,17 @@</span><br><span> </span><br><span>     msg->dst = lchan->ts->trx->rsl_link;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  return msg;</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%);">+/*! Send IPA RSL MDCX to configure the RTP port the BTS sends to (MGW).</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] lchan Logical Channel for which we issue MDCX</span><br><span style="color: hsl(120, 100%, 40%);">+ * Remote (MGW) IP address, port and payload types for RTP are determined from lchan->abis_ip.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int rsl_tx_ipacc_mdcx(const struct gsm_lchan *lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       struct msgb *msg = rsl_make_ipacc_mdcx(lchan, lchan->abis_ip.connect_ip, lchan->abis_ip.connect_port);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       LOG_LCHAN(lchan, LOGL_DEBUG, "Sending IPACC MDCX to BTS:"</span><br><span>            " %s:%u rtp_payload=%u rtp_payload2=%u conn_id=%u speech_mode=0x%02x\n",</span><br><span>                   ip_to_a(lchan->abis_ip.connect_ip),</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11550">change 11550</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/11550"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Iffe2f4f10e841fc36965cce02b4e5f017a5ae6c8 </div>
<div style="display:none"> Gerrit-Change-Number: 11550 </div>
<div style="display:none"> Gerrit-PatchSet: 9 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Pau Espin Pedrol <pespin@sysmocom.de> </div>