<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/18745">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">endp: add name generator function for E1 endpoints<br><br>Currently the endpoint name that is generated for an E1 endpoint is not<br>correct. Lets add an endpoint name generator function that derives a<br>full endpoint name for a given E1 index<br><br>Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57<br>Related: OS#2547<br>---<br>M src/libosmo-mgcp/mgcp_endp.c<br>1 file changed, 23 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>index e357010..0eeda08 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_endp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>@@ -41,6 +41,26 @@</span><br><span>             MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Generate E1 endpoint name from given numeric parameters */</span><br><span style="color: hsl(120, 100%, 40%);">+static void gen_e1_epname(char *epname, uint8_t trunk_nr, uint8_t ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                          uint8_t ss_nr)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   static const uint8_t rates[] =</span><br><span style="color: hsl(120, 100%, 40%);">+            { 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 };</span><br><span style="color: hsl(120, 100%, 40%);">+       static const uint8_t offsets[] =</span><br><span style="color: hsl(120, 100%, 40%);">+          { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 };</span><br><span style="color: hsl(120, 100%, 40%);">+     unsigned int rate;</span><br><span style="color: hsl(120, 100%, 40%);">+    unsigned int offset;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_ASSERT(ss_nr < sizeof(rates));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      rate = rates[ss_nr];</span><br><span style="color: hsl(120, 100%, 40%);">+  offset = offsets[ss_nr];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    snprintf(epname, MGCP_ENDPOINT_MAXLEN, "%s%u/s-%u/su%u-%u",</span><br><span style="color: hsl(120, 100%, 40%);">+          MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! allocate an endpoint and set default values.</span><br><span>  *  \param[in] trunk configuration</span><br><span>  *  \returns endpoint on success, NULL on failure */</span><br><span>@@ -64,10 +84,9 @@</span><br><span>          gen_virtual_epname(ep_name_buf, trunk->cfg->domain, index);</span><br><span>            break;</span><br><span>       case MGCP_TRUNK_E1:</span><br><span style="color: hsl(0, 100%, 40%);">-             /* FIXME: E1 trunk implementation is work in progress, this endpoint</span><br><span style="color: hsl(0, 100%, 40%);">-             * name is incomplete (subslots) */</span><br><span style="color: hsl(0, 100%, 40%);">-             snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x",</span><br><span style="color: hsl(0, 100%, 40%);">-                  MGCP_ENDPOINT_PREFIX_E1_TRUNK, index);</span><br><span style="color: hsl(120, 100%, 40%);">+               gen_e1_epname(ep_name_buf, trunk->trunk_nr, index / 14, index % 14);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+             /* FIXME: remove this message when E1 support is complete */</span><br><span>                 LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n");</span><br><span>          break;</span><br><span>       default:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/18745">change 18745</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-mgw/+/18745"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-mgw </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 </div>
<div style="display:none"> Gerrit-Change-Number: 18745 </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>