<p>dexter <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19074">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">endp: require domain name also for E1 endpoints<br><br>RFC3435 requires an MGW domain name appeneded to every endpoints. When<br>defining endpoint names in Appendix E, the domain name is is not<br>mentioned for digital trunks, however, this does not mean that digital<br>trunks do not have a domain appended. Osmo-mgw currently violates the<br>spec because it explicitly checks if the domain name is _NOT_ present<br>for E1 endpoints.<br><br>Change-Id: Ibb800b689e090b97b58d0206959b660890acd967<br>Related: OS#2547<br>---<br>M src/libosmo-mgcp/mgcp_endp.c<br>1 file changed, 14 insertions(+), 13 deletions(-)<br><br></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 5e7bebb..82f7732 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_endp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>@@ -77,8 +77,8 @@</span><br><span> }</span><br><span> </span><br><span> /* Generate E1 endpoint name from given numeric parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-static char *gen_e1_epname(void *ctx, uint8_t trunk_nr, uint8_t ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                          uint8_t ss_nr)</span><br><span style="color: hsl(120, 100%, 40%);">+static char *gen_e1_epname(void *ctx, const char *domain, uint8_t trunk_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                    uint8_t ts_nr, uint8_t ss_nr)</span><br><span> {</span><br><span>        unsigned int rate;</span><br><span>   unsigned int offset;</span><br><span>@@ -88,8 +88,9 @@</span><br><span>     rate = e1_rates[ss_nr];</span><br><span>      offset = e1_offsets[ss_nr];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u",</span><br><span style="color: hsl(0, 100%, 40%);">-                      MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset);</span><br><span style="color: hsl(120, 100%, 40%);">+        return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u@%s",</span><br><span style="color: hsl(120, 100%, 40%);">+                        MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                               rate, offset, domain);</span><br><span> }</span><br><span> </span><br><span> /*! allocate an endpoint and set default values.</span><br><span>@@ -116,7 +117,9 @@</span><br><span>             break;</span><br><span>       case MGCP_TRUNK_E1:</span><br><span>          endp->type = &ep_typeset.rtp;</span><br><span style="color: hsl(0, 100%, 40%);">-            endp->name = gen_e1_epname(endp, trunk->trunk_nr, index / 15, index % 15);</span><br><span style="color: hsl(120, 100%, 40%);">+              endp->name = gen_e1_epname(endp, trunk->cfg->domain,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    trunk->trunk_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           index / 15, index % 15);</span><br><span>          break;</span><br><span>       default:</span><br><span>             osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n",</span><br><span>@@ -353,11 +356,9 @@</span><br><span>  if (!trunk)</span><br><span>          return NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* Virtual endpoints require a domain name (see RFC3435, section E.3) */</span><br><span style="color: hsl(0, 100%, 40%);">-          if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) {</span><br><span style="color: hsl(0, 100%, 40%);">-               if (check_domain_name(epname, cfg))</span><br><span style="color: hsl(0, 100%, 40%);">-                   return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* All endpoint names require a domain as suffix */</span><br><span style="color: hsl(120, 100%, 40%);">+   if (check_domain_name(epname, cfg))</span><br><span style="color: hsl(120, 100%, 40%);">+           return NULL;</span><br><span> </span><br><span>     /* Identify the endpoint on the trunk */</span><br><span>         endp = mgcp_endp_by_name_trunk(cause, epname, trunk);</span><br><span>@@ -567,9 +568,9 @@</span><br><span>                      break;</span><br><span> </span><br><span>           /* Pick overlapping endpoint to check */</span><br><span style="color: hsl(0, 100%, 40%);">-                epname_check =</span><br><span style="color: hsl(0, 100%, 40%);">-              gen_e1_epname(endp, endp->trunk->trunk_nr, ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                               interlock[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+              epname_check = gen_e1_epname(endp, endp->trunk->cfg->domain,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      endp->trunk->trunk_nr, ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           interlock[i]);</span><br><span>          endp_check = find_specific_endpoint(epname_check, endp->trunk);</span><br><span>           if (!endp_check) {</span><br><span>                   LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19074">change 19074</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/+/19074"/><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: Ibb800b689e090b97b58d0206959b660890acd967 </div>
<div style="display:none"> Gerrit-Change-Number: 19074 </div>
<div style="display:none"> Gerrit-PatchSet: 7 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>