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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mgcp_trunk: pick trunk by number and type<br><br>The function mgcp_trunk_by_num() is used to directly pick a specific<br>trunk that is known by its id number (sometimes called "index").<br>Traditionally the virtual trunk will reside under id number 0 and all<br>consecutively created E1 trunks will be created under number 1 to 64.<br>This works fine, but puts a limitation on us should we ever introduce an<br>aditional trunk type (e.g. T1). Since the numbers must be unique<br>regardless of the trunk type one could not have an E1 trunk number 1 and<br>e.g. a T1 trunk number 1 at the same time. So we should pick the trunk<br>not only by its number, but also by its type to allow different trunk<br>types to carry the same number. The trunks will still be distinguishable<br>by its type along with the respective endpoint prefix.<br><br>Change-Id: I7af1e9ce601babd4a51e88201a98319e03945f83<br>Related: OS#2659<br>---<br>M include/osmocom/mgcp/mgcp_trunk.h<br>M src/libosmo-mgcp/mgcp_osmux.c<br>M src/libosmo-mgcp/mgcp_trunk.c<br>M src/libosmo-mgcp/mgcp_vty.c<br>M tests/mgcp/mgcp_test.c<br>5 files changed, 49 insertions(+), 47 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h</span><br><span>index 82728fe..aa6dd29 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_trunk.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_trunk.h</span><br><span>@@ -48,7 +48,7 @@</span><br><span> </span><br><span> struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr);</span><br><span> int mgcp_trunk_alloc_endpts(struct mgcp_trunk *tcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index);</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr);</span><br><span> struct mgcp_trunk *mgcp_trunk_by_name(const struct mgcp_config *cfg, const char *epname);</span><br><span> int e1_trunk_nr_from_epname(const char *epname);</span><br><span> </span><br><span>diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>index 9715e70..ceae087 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_osmux.c</span><br><span>@@ -198,7 +198,7 @@</span><br><span> osmux_conn_lookup(struct mgcp_config *cfg, uint8_t cid,</span><br><span>                struct in_addr *from_addr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk *trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+        struct mgcp_trunk *trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>   struct mgcp_endpoint *endp;</span><br><span>  struct mgcp_conn *conn = NULL;</span><br><span>       struct mgcp_conn_rtp * conn_rtp;</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c</span><br><span>index 4f60cc9..e41ed0e 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_trunk.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_trunk.c</span><br><span>@@ -105,15 +105,17 @@</span><br><span> </span><br><span> /*! get trunk configuration by trunk number (index).</span><br><span>  *  \param[in] cfg mgcp configuration.</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] index trunk number.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] ttype trunk type.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] nr trunk number.</span><br><span>  *  \returns pointer to trunk configuration, NULL on error. */</span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index)</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr)</span><br><span> {</span><br><span>   struct mgcp_trunk *trunk;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   llist_for_each_entry(trunk, &cfg->trunks, entry)</span><br><span style="color: hsl(0, 100%, 40%);">-     if (trunk->trunk_nr == index)</span><br><span style="color: hsl(0, 100%, 40%);">-            return trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+ llist_for_each_entry(trunk, &cfg->trunks, entry) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (trunk->trunk_nr == nr && trunk->trunk_type == ttype)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> </span><br><span>        return NULL;</span><br><span> }</span><br><span>@@ -154,7 +156,7 @@</span><br><span> </span><br><span>  prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1;</span><br><span>         if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+            return mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>       }</span><br><span> </span><br><span>        prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1;</span><br><span>@@ -162,7 +164,7 @@</span><br><span>                trunk_nr = e1_trunk_nr_from_epname(epname);</span><br><span>          if (trunk_nr < 0)</span><br><span>                         return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-            return mgcp_trunk_by_num(cfg, trunk_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+              return mgcp_trunk_by_num(cfg, MGCP_TRUNK_E1, trunk_nr);</span><br><span>      }</span><br><span> </span><br><span>        /* Earlier versions of osmo-mgw were accepting endpoint names</span><br><span>@@ -176,7 +178,7 @@</span><br><span>  if ((epname[0] >= '0' && epname[0] <= '9') || (epname[0] >= 'a' && epname[0] <= 'f')) {</span><br><span>          LOGP(DLMGCP, LOGL_ERROR, "missing trunk prefix in endpoint name \"%s\", assuming trunk \"%s\"!\n", epname,</span><br><span>                  MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK);</span><br><span style="color: hsl(0, 100%, 40%);">-               return  mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+           return  mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>      }</span><br><span> </span><br><span>        LOGP(DLMGCP, LOGL_ERROR, "unable to find trunk for endpoint name \"%s\"!\n", epname);</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>index cbff700..2f862f1 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_vty.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>@@ -57,7 +57,7 @@</span><br><span> </span><br><span> static int config_write_mgcp(struct vty *vty)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span> </span><br><span>      vty_out(vty, "mgcp%s", VTY_NEWLINE);</span><br><span>@@ -377,7 +377,7 @@</span><br><span>         struct mgcp_trunk *trunk;</span><br><span>    int trunkidx = atoi(argv[0]);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       trunk = mgcp_trunk_by_num(g_cfg, trunkidx);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, trunkidx);</span><br><span>   if (!trunk) {</span><br><span>                vty_out(vty, "trunk %d not found%s", trunkidx, VTY_NEWLINE);</span><br><span>               return CMD_WARNING;</span><br><span>@@ -567,7 +567,7 @@</span><br><span>       "Add extra fmtp for the SDP file\n" "Audio\n" "Fmtp-extra\n"</span><br><span>       "Extra Information\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  char *txt = argv_concat(argv, argc, 0);</span><br><span>      if (!txt)</span><br><span>@@ -582,7 +582,7 @@</span><br><span>       cfg_mgcp_allow_transcoding_cmd,</span><br><span>       "allow-transcoding", "Allow transcoding\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->no_audio_transcoding = 0;</span><br><span>  return CMD_SUCCESS;</span><br><span>@@ -592,7 +592,7 @@</span><br><span>       cfg_mgcp_no_allow_transcoding_cmd,</span><br><span>       "no allow-transcoding", NO_STR "Allow transcoding\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->no_audio_transcoding = 1;</span><br><span>  return CMD_SUCCESS;</span><br><span>@@ -630,7 +630,7 @@</span><br><span>       "sdp audio-payload send-ptime",</span><br><span>       SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->audio_send_ptime = 1;</span><br><span>      return CMD_SUCCESS;</span><br><span>@@ -641,7 +641,7 @@</span><br><span>       "no sdp audio-payload send-ptime",</span><br><span>       NO_STR SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->audio_send_ptime = 0;</span><br><span>      return CMD_SUCCESS;</span><br><span>@@ -652,7 +652,7 @@</span><br><span>       "sdp audio-payload send-name",</span><br><span>       SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->audio_send_name = 1;</span><br><span>       return CMD_SUCCESS;</span><br><span>@@ -663,7 +663,7 @@</span><br><span>       "no sdp audio-payload send-name",</span><br><span>       NO_STR SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->audio_send_name = 0;</span><br><span>       return CMD_SUCCESS;</span><br><span>@@ -674,7 +674,7 @@</span><br><span>       "loop (0|1)",</span><br><span>       "Loop audio for all endpoints on main trunk\n" "Don't Loop\n" "Loop\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  if (g_cfg->osmux) {</span><br><span>               vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE);</span><br><span>@@ -690,7 +690,7 @@</span><br><span>       "Force endpoint reallocation when the endpoint is still seized\n"</span><br><span>       "Don't force reallocation\n" "force reallocation\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_realloc = atoi(argv[0]);</span><br><span>     return CMD_SUCCESS;</span><br><span>@@ -702,7 +702,7 @@</span><br><span>       "Accept all RTP packets, even when the originating IP/Port does not match\n"</span><br><span>       "enable filter\n" "disable filter\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->rtp_accept_all = atoi(argv[0]);</span><br><span>    return CMD_SUCCESS;</span><br><span>@@ -713,7 +713,7 @@</span><br><span>       "number endpoints <0-65534>",</span><br><span>       "Number options\n" "Endpoints available\n" "Number endpoints\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  /* + 1 as we start counting at one */</span><br><span>        trunk->vty_number_endpoints = atoi(argv[0]) + 1;</span><br><span>@@ -722,7 +722,7 @@</span><br><span> </span><br><span> DEFUN(cfg_mgcp_omit_rtcp, cfg_mgcp_omit_rtcp_cmd, "rtcp-omit", RTCP_OMIT_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         trunk->omit_rtcp = 1;</span><br><span>     return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -730,7 +730,7 @@</span><br><span> DEFUN(cfg_mgcp_no_omit_rtcp,</span><br><span>       cfg_mgcp_no_omit_rtcp_cmd, "no rtcp-omit", NO_STR RTCP_OMIT_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->omit_rtcp = 0;</span><br><span>     return CMD_SUCCESS;</span><br><span>@@ -740,7 +740,7 @@</span><br><span>       cfg_mgcp_patch_rtp_ssrc_cmd,</span><br><span>       "rtp-patch ssrc", RTP_PATCH_STR "Force a fixed SSRC\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_constant_ssrc = 1;</span><br><span>   return CMD_SUCCESS;</span><br><span>@@ -750,7 +750,7 @@</span><br><span>       cfg_mgcp_no_patch_rtp_ssrc_cmd,</span><br><span>       "no rtp-patch ssrc", NO_STR RTP_PATCH_STR "Force a fixed SSRC\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_constant_ssrc = 0;</span><br><span>   return CMD_SUCCESS;</span><br><span>@@ -760,7 +760,7 @@</span><br><span>       cfg_mgcp_patch_rtp_ts_cmd,</span><br><span>       "rtp-patch timestamp", RTP_PATCH_STR "Adjust RTP timestamp\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_aligned_timing = 1;</span><br><span>  return CMD_SUCCESS;</span><br><span>@@ -770,7 +770,7 @@</span><br><span>       cfg_mgcp_no_patch_rtp_ts_cmd,</span><br><span>       "no rtp-patch timestamp", NO_STR RTP_PATCH_STR "Adjust RTP timestamp\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_aligned_timing = 0;</span><br><span>  return CMD_SUCCESS;</span><br><span>@@ -780,7 +780,7 @@</span><br><span>       cfg_mgcp_patch_rtp_rfc5993hr_cmd,</span><br><span>       "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->rfc5993_hr_convert = true;</span><br><span>         return CMD_SUCCESS;</span><br><span>@@ -790,7 +790,7 @@</span><br><span>       cfg_mgcp_no_patch_rtp_rfc5993hr_cmd,</span><br><span>       "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->rfc5993_hr_convert = false;</span><br><span>        return CMD_SUCCESS;</span><br><span>@@ -799,7 +799,7 @@</span><br><span> DEFUN(cfg_mgcp_no_patch_rtp,</span><br><span>       cfg_mgcp_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  trunk->force_constant_ssrc = 0;</span><br><span>   trunk->force_aligned_timing = 0;</span><br><span>@@ -812,7 +812,7 @@</span><br><span>       "rtp keep-alive <1-120>",</span><br><span>       RTP_STR RTP_KEEPALIVE_STR "Keep alive interval in secs\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  mgcp_trunk_set_keepalive(trunk, atoi(argv[0]));</span><br><span>      return CMD_SUCCESS;</span><br><span>@@ -823,7 +823,7 @@</span><br><span>       "rtp keep-alive once",</span><br><span>       RTP_STR RTP_KEEPALIVE_STR "Send dummy packet only once after CRCX/MDCX\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE);</span><br><span>        return CMD_SUCCESS;</span><br><span>@@ -833,7 +833,7 @@</span><br><span>       cfg_mgcp_no_rtp_keepalive_cmd,</span><br><span>       "no rtp keep-alive", NO_STR RTP_STR RTP_KEEPALIVE_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span>  mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_NEVER);</span><br><span>       return CMD_SUCCESS;</span><br><span>@@ -865,7 +865,7 @@</span><br><span>     * parameters, so we restrict the access to trunks with id numbers</span><br><span>    * greater than 0. */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       trunk = mgcp_trunk_by_num(g_cfg, index);</span><br><span style="color: hsl(120, 100%, 40%);">+      trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, index);</span><br><span>      if (!trunk) {</span><br><span>                trunk = mgcp_trunk_alloc(g_cfg, MGCP_TRUNK_E1, index);</span><br><span>               if (!trunk) {</span><br><span>@@ -1171,7 +1171,7 @@</span><br><span>        struct mgcp_endpoint *endp;</span><br><span>  struct mgcp_conn *conn;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0]));</span><br><span style="color: hsl(120, 100%, 40%);">+      trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0]));</span><br><span>      if (!trunk) {</span><br><span>                vty_out(vty, "%%Trunk %d not found in the config.%s",</span><br><span>                      atoi(argv[0]), VTY_NEWLINE);</span><br><span>@@ -1230,7 +1230,7 @@</span><br><span>         struct mgcp_conn_rtp *conn;</span><br><span>         const char *conn_id = NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0]));</span><br><span style="color: hsl(120, 100%, 40%);">+      trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0]));</span><br><span>      if (!trunk) {</span><br><span>                vty_out(vty, "%%Trunk %d not found in the config.%s",</span><br><span>                      atoi(argv[0]), VTY_NEWLINE);</span><br><span>@@ -1283,7 +1283,7 @@</span><br><span>         struct mgcp_trunk *trunk;</span><br><span>    struct mgcp_endpoint *endp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0]));</span><br><span style="color: hsl(120, 100%, 40%);">+      trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0]));</span><br><span>      if (!trunk) {</span><br><span>                vty_out(vty, "%%Trunk %d not found in the config.%s",</span><br><span>                      atoi(argv[0]), VTY_NEWLINE);</span><br><span>@@ -1316,7 +1316,7 @@</span><br><span>         struct mgcp_endpoint *endp;</span><br><span>  int endp_no, rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0]));</span><br><span style="color: hsl(120, 100%, 40%);">+      trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0]));</span><br><span>      if (!trunk) {</span><br><span>                vty_out(vty, "%%Trunk %d not found in the config.%s",</span><br><span>                      atoi(argv[0]), VTY_NEWLINE);</span><br><span>@@ -1365,7 +1365,7 @@</span><br><span>       "osmux (on|off|only)",</span><br><span>       OSMUX_STR "Enable OSMUX\n" "Disable OSMUX\n" "Only use OSMUX\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>         OSMO_ASSERT(trunk);</span><br><span> </span><br><span>      if (strcmp(argv[0], "off") == 0) {</span><br><span>diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c</span><br><span>index b0647f4..0e87c15 100644</span><br><span>--- a/tests/mgcp/mgcp_test.c</span><br><span>+++ b/tests/mgcp/mgcp_test.c</span><br><span>@@ -768,7 +768,7 @@</span><br><span>      int rc;</span><br><span> </span><br><span>  cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span> </span><br><span>  trunk->vty_number_endpoints = 64;</span><br><span>         mgcp_trunk_alloc_endpts(trunk);</span><br><span>@@ -910,7 +910,7 @@</span><br><span>        int rc;</span><br><span> </span><br><span>  cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span> </span><br><span>  trunk->vty_number_endpoints = 64;</span><br><span>         mgcp_trunk_alloc_endpts(trunk);</span><br><span>@@ -979,7 +979,7 @@</span><br><span>        char conn_id[256];</span><br><span> </span><br><span>       cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>      cfg->rqnt_cb = rqnt_cb;</span><br><span> </span><br><span>       trunk->vty_number_endpoints = 64;</span><br><span>@@ -1393,7 +1393,7 @@</span><br><span>         printf("Testing multiple payload types\n");</span><br><span> </span><br><span>    cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>      trunk->vty_number_endpoints = 64;</span><br><span>         mgcp_trunk_alloc_endpts(trunk);</span><br><span>      cfg->policy_cb = mgcp_test_policy_cb;</span><br><span>@@ -1539,7 +1539,7 @@</span><br><span>     printf("Testing no sequence flow on initial packet\n");</span><br><span> </span><br><span>        cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span>      trunk->vty_number_endpoints = 64;</span><br><span>         mgcp_trunk_alloc_endpts(trunk);</span><br><span> </span><br><span>@@ -1588,7 +1588,7 @@</span><br><span> </span><br><span>      printf("Testing no rtpmap name\n");</span><br><span>        cfg = mgcp_config_alloc();</span><br><span style="color: hsl(0, 100%, 40%);">-      trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID);</span><br><span> </span><br><span>  trunk->vty_number_endpoints = 64;</span><br><span>         trunk->audio_send_name = 0;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19102">change 19102</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/+/19102"/><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: I7af1e9ce601babd4a51e88201a98319e03945f83 </div>
<div style="display:none"> Gerrit-Change-Number: 19102 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </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>