<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/18643">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg<br><br>rename struct mgcp_trunk_config to struct mgcp_trunk and the related<br>symbol name "tcfg" to "trunk" in order to better match the reality.<br><br>Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1<br>Related: OS#2659<br>---<br>M include/osmocom/mgcp/mgcp.h<br>M include/osmocom/mgcp/mgcp_endp.h<br>M include/osmocom/mgcp/mgcp_internal.h<br>M src/libosmo-mgcp/mgcp_codec.c<br>M src/libosmo-mgcp/mgcp_conn.c<br>M src/libosmo-mgcp/mgcp_msg.c<br>M src/libosmo-mgcp/mgcp_network.c<br>M src/libosmo-mgcp/mgcp_protocol.c<br>M src/libosmo-mgcp/mgcp_sdp.c<br>M src/libosmo-mgcp/mgcp_vty.c<br>M src/osmo-mgw/mgw_main.c<br>M tests/mgcp/mgcp_test.c<br>12 files changed, 162 insertions(+), 162 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/43/18643/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h</span><br><span>index 27b1e35..538c907 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp.h</span><br><span>@@ -42,7 +42,7 @@</span><br><span>  */</span><br><span> struct mgcp_endpoint;</span><br><span> struct mgcp_config;</span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk_config;</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk;</span><br><span> struct mgcp_rtp_end;</span><br><span> </span><br><span> #define MGCP_ENDP_CRCX 1</span><br><span>@@ -59,9 +59,9 @@</span><br><span> #define MGCP_POLICY_REJECT      5</span><br><span> #define MGCP_POLICY_DEFER  6</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-typedef int (*mgcp_change)(struct mgcp_trunk_config *cfg, int endpoint, int state);</span><br><span style="color: hsl(0, 100%, 40%);">-typedef int (*mgcp_policy)(struct mgcp_trunk_config *cfg, int endpoint, int state, const char *transactio_id);</span><br><span style="color: hsl(0, 100%, 40%);">-typedef int (*mgcp_reset)(struct mgcp_trunk_config *cfg);</span><br><span style="color: hsl(120, 100%, 40%);">+typedef int (*mgcp_change)(struct mgcp_trunk *cfg, int endpoint, int state);</span><br><span style="color: hsl(120, 100%, 40%);">+typedef int (*mgcp_policy)(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id);</span><br><span style="color: hsl(120, 100%, 40%);">+typedef int (*mgcp_reset)(struct mgcp_trunk *cfg);</span><br><span> typedef int (*mgcp_rqnt)(struct mgcp_endpoint *endp, char tone);</span><br><span> </span><br><span> /**</span><br><span>@@ -177,7 +177,7 @@</span><br><span>      MGCP_DLCX_DEFERRED_BY_POLICY,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk_config {</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk {</span><br><span>       struct llist_head entry;</span><br><span> </span><br><span>         struct mgcp_config *cfg;</span><br><span>@@ -263,7 +263,7 @@</span><br><span>       /* trunk handling */</span><br><span> </span><br><span>     /* virtual trunk for RTP - RTP endpoints */</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *virt_trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct mgcp_trunk *virt_trunk;</span><br><span>       /* physical trunks with underlying E1 endpoints */</span><br><span>   struct llist_head trunks;</span><br><span> </span><br><span>@@ -302,8 +302,8 @@</span><br><span> int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg,</span><br><span>                     enum mgcp_role role);</span><br><span> int mgcp_vty_init(void);</span><br><span style="color: hsl(0, 100%, 40%);">-int mgcp_endpoints_allocate(struct mgcp_trunk_config *cfg);</span><br><span style="color: hsl(0, 100%, 40%);">-void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval);</span><br><span style="color: hsl(120, 100%, 40%);">+int mgcp_endpoints_allocate(struct mgcp_trunk *cfg);</span><br><span style="color: hsl(120, 100%, 40%);">+void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval);</span><br><span> </span><br><span> /*</span><br><span>  * format helper functions</span><br><span>diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h</span><br><span>index 4c2caad..8fa8390 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_endp.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_endp.h</span><br><span>@@ -81,7 +81,7 @@</span><br><span>        struct mgcp_config *cfg;</span><br><span> </span><br><span>         /*! Backpointer to the Trunk specific configuration */</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk_config *tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        /*! Endpoint properties (see above) */</span><br><span>       const struct mgcp_endpoint_type *type;</span><br><span>@@ -101,6 +101,6 @@</span><br><span> };</span><br><span> </span><br><span> /*! Extract endpoint number for a given endpoint */</span><br><span style="color: hsl(0, 100%, 40%);">-#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->tcfg->endpoints))</span><br><span style="color: hsl(120, 100%, 40%);">+#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->trunk->endpoints))</span><br><span> </span><br><span> void mgcp_endp_release(struct mgcp_endpoint *endp);</span><br><span>diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h</span><br><span>index 670332d..b2e2210 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_internal.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_internal.h</span><br><span>@@ -282,8 +282,8 @@</span><br><span>       return endpoint + 60;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index);</span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index);</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index);</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index);</span><br><span> </span><br><span> char *get_lco_identifier(const char *options);</span><br><span> int check_local_cx_options(void *ctx, const char *options);</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>index 9e55ab0..3cea495 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_codec.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>@@ -292,7 +292,7 @@</span><br><span>      * We do not compare to the full audio_name because we expect that</span><br><span>    * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the</span><br><span>       * audio name of the codec is set to "GSM" */</span><br><span style="color: hsl(0, 100%, 40%);">- if (sscanf(endp->tcfg->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1)</span><br><span style="color: hsl(120, 100%, 40%);">+     if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1)</span><br><span>           return false;</span><br><span> </span><br><span>    /* Finally we check if the subtype_name we have generated from the</span><br><span>@@ -302,9 +302,9 @@</span><br><span>             return true;</span><br><span> </span><br><span>     /* FIXME: It is questinable that the method to pick a compatible</span><br><span style="color: hsl(0, 100%, 40%);">-         * codec can work properly. Since this useses tcfg->audio_name, as</span><br><span style="color: hsl(120, 100%, 40%);">+  * codec can work properly. Since this useses trunk->audio_name, as</span><br><span>        * a reference, which is set to "AMR/8000" permanently.</span><br><span style="color: hsl(0, 100%, 40%);">-        * tcfg->audio_name must be updated by the first connection that</span><br><span style="color: hsl(120, 100%, 40%);">+    * trunk->audio_name must be updated by the first connection that</span><br><span>          * has been made on an endpoint, so that the second connection</span><br><span>        * can make a meaningful decision here */</span><br><span> </span><br><span>@@ -335,7 +335,7 @@</span><br><span>  for (i = 0; i < rtp->codecs_assigned; i++) {</span><br><span>           /* When no transcoding is available, avoid codecs that would</span><br><span>                  * require transcoding. */</span><br><span style="color: hsl(0, 100%, 40%);">-              if (endp->tcfg->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) {</span><br><span style="color: hsl(120, 100%, 40%);">+           if (endp->trunk->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) {</span><br><span>                         LOGP(DLMGCP, LOGL_NOTICE, "transcoding not available, skipping codec: %d/%s\n",</span><br><span>                         rtp->codecs[i].payload_type, rtp->codecs[i].subtype_name);</span><br><span>                        continue;</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c</span><br><span>index 7a86274..0b499b4 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_conn.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_conn.c</span><br><span>@@ -255,7 +255,7 @@</span><br><span> }</span><br><span> </span><br><span> static void</span><br><span style="color: hsl(0, 100%, 40%);">-aggregate_rtp_conn_stats(struct mgcp_trunk_config *trunk, struct mgcp_conn_rtp *conn_rtp)</span><br><span style="color: hsl(120, 100%, 40%);">+aggregate_rtp_conn_stats(struct mgcp_trunk *trunk, struct mgcp_conn_rtp *conn_rtp)</span><br><span> {</span><br><span>       struct rate_ctr_group *all_stats = trunk->all_rtp_conn_stats;</span><br><span>     struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group;</span><br><span>@@ -296,7 +296,7 @@</span><br><span> </span><br><span>   switch (conn->type) {</span><br><span>     case MGCP_CONN_TYPE_RTP:</span><br><span style="color: hsl(0, 100%, 40%);">-                aggregate_rtp_conn_stats(endp->tcfg, &conn->u.rtp);</span><br><span style="color: hsl(120, 100%, 40%);">+         aggregate_rtp_conn_stats(endp->trunk, &conn->u.rtp);</span><br><span>               mgcp_rtp_conn_cleanup(&conn->u.rtp);</span><br><span>          break;</span><br><span>       default:</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c</span><br><span>index b0d1a9f..7124a39 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_msg.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_msg.c</span><br><span>@@ -136,12 +136,12 @@</span><br><span>                                          const char *mgcp)</span><br><span> {</span><br><span>         char *rest = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-      struct mgcp_trunk_config *tcfg;</span><br><span style="color: hsl(0, 100%, 40%);">- int trunk, endp;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+     int trunk_index, endp;</span><br><span>       struct mgcp_endpoint *endp_ptr;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     trunk = strtoul(mgcp + 6, &rest, 10);</span><br><span style="color: hsl(0, 100%, 40%);">-       if (rest == NULL || rest[0] != '/' || trunk < 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ trunk_index = strtoul(mgcp + 6, &rest, 10);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (rest == NULL || rest[0] != '/' || trunk_index < 1) {</span><br><span>          LOGP(DLMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp);</span><br><span>                 return NULL;</span><br><span>         }</span><br><span>@@ -156,26 +156,26 @@</span><br><span>    if (endp == 1)</span><br><span>               return NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        tcfg = mgcp_trunk_num(cfg, trunk);</span><br><span style="color: hsl(0, 100%, 40%);">-      if (!tcfg) {</span><br><span style="color: hsl(120, 100%, 40%);">+  trunk = mgcp_trunk_num(cfg, trunk_index);</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!trunk) {</span><br><span>                LOGP(DLMGCP, LOGL_ERROR, "The trunk %d is not declared.\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                trunk);</span><br><span style="color: hsl(120, 100%, 40%);">+               trunk_index);</span><br><span>           return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (!tcfg->endpoints) {</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!trunk->endpoints) {</span><br><span>          LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-                     "Endpoints of trunk %d not allocated.\n", trunk);</span><br><span style="color: hsl(120, 100%, 40%);">+                   "Endpoints of trunk %d not allocated.\n", trunk_index);</span><br><span>               return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (endp < 1 || endp >= tcfg->number_endpoints) {</span><br><span style="color: hsl(120, 100%, 40%);">+    if (endp < 1 || endp >= trunk->number_endpoints) {</span><br><span>          LOGP(DLMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n",</span><br><span>                      mgcp);</span><br><span>          return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   endp_ptr = &tcfg->endpoints[endp];</span><br><span style="color: hsl(120, 100%, 40%);">+     endp_ptr = &trunk->endpoints[endp];</span><br><span>   endp_ptr->wildcarded_req = false;</span><br><span>         return endp_ptr;</span><br><span> }</span><br><span>@@ -235,7 +235,7 @@</span><br><span>  unsigned int gw = INT_MAX;</span><br><span>   const char *endpoint_number_str;</span><br><span>     struct mgcp_endpoint *endp;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *virt_trunk = cfg->virt_trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+    struct mgcp_trunk *virt_trunk = cfg->virt_trunk;</span><br><span> </span><br><span>      *cause = 0;</span><br><span> </span><br><span>diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c</span><br><span>index 3b8e736..2d3fdc3 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_network.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_network.c</span><br><span>@@ -61,7 +61,7 @@</span><br><span>                                  int id, int inc)</span><br><span> {</span><br><span>       struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct rate_ctr_group *trunk_stats = endp->tcfg->all_rtp_conn_stats;</span><br><span style="color: hsl(120, 100%, 40%);">+    struct rate_ctr_group *trunk_stats = endp->trunk->all_rtp_conn_stats;</span><br><span> </span><br><span>      /* add to both the per-connection and the per-trunk global stats */</span><br><span>  rate_ctr_add(&conn_stats->ctr[id], inc);</span><br><span>@@ -187,7 +187,7 @@</span><br><span>        if (rc == -1)</span><br><span>                goto failed;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        if (endp->tcfg->omit_rtcp)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (endp->trunk->omit_rtcp)</span><br><span>            return rc;</span><br><span> </span><br><span>       was_rtcp = 1;</span><br><span>@@ -819,7 +819,7 @@</span><br><span>   *  connection in loopback mode exists), then the source connection</span><br><span>   *  shall be specified as destination connection */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *tcfg = endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk = endp->trunk;</span><br><span>   struct mgcp_rtp_end *rtp_end;</span><br><span>        struct mgcp_rtp_state *rtp_state;</span><br><span>    char *dest_name;</span><br><span>@@ -835,7 +835,7 @@</span><br><span>       }</span><br><span> </span><br><span>        LOGPENDP(endp, DRTP, LOGL_DEBUG, "loop:%d, mode:%d%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               tcfg->audio_loop, conn_src->conn->mode,</span><br><span style="color: hsl(120, 100%, 40%);">+              trunk->audio_loop, conn_src->conn->mode,</span><br><span>            conn_src->conn->mode == MGCP_CONN_LOOPBACK ? " (loopback)" : "");</span><br><span> </span><br><span>     /* FIXME: It is legal that the payload type on the egress connection is</span><br><span>@@ -947,7 +947,7 @@</span><br><span>                        buflen = cont;</span><br><span>               } while (buflen > 0);</span><br><span>             return nbytes;</span><br><span style="color: hsl(0, 100%, 40%);">-  } else if (!tcfg->omit_rtcp) {</span><br><span style="color: hsl(120, 100%, 40%);">+     } else if (!trunk->omit_rtcp) {</span><br><span>           LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span>                      "send to %s %s rtp_port:%u rtcp_port:%u\n",</span><br><span>                        dest_name, inet_ntoa(rtp_end->addr),</span><br><span>@@ -1150,12 +1150,12 @@</span><br><span> {</span><br><span>      struct mgcp_endpoint *endp;</span><br><span>  struct mgcp_conn_rtp *conn;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk;</span><br><span>    int rc;</span><br><span> </span><br><span>  conn = (struct mgcp_conn_rtp*) fd->data;</span><br><span>  endp = conn->conn->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-  tcfg = endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+ trunk = endp->trunk;</span><br><span> </span><br><span>  LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "receiving RTP/RTCP packet...\n");</span><br><span> </span><br><span>@@ -1190,7 +1190,7 @@</span><br><span>   LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn->conn));</span><br><span> </span><br><span>  /* Check if the origin of the RTP packet seems plausible */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (tcfg->rtp_accept_all == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+   if (trunk->rtp_accept_all == 0) {</span><br><span>                 if (check_rtp_origin(conn, addr) != 0)</span><br><span>                       return -1;</span><br><span>   }</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>index caed0b7..4d77a4c 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -254,11 +254,11 @@</span><br><span>        * Remember the last transmission per endpoint.</span><br><span>       */</span><br><span>  if (endp) {</span><br><span style="color: hsl(0, 100%, 40%);">-             struct mgcp_trunk_config *tcfg = endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+               struct mgcp_trunk *trunk = endp->trunk;</span><br><span>           talloc_free(endp->last_response);</span><br><span>                 talloc_free(endp->last_trans);</span><br><span style="color: hsl(0, 100%, 40%);">-               endp->last_trans = talloc_strdup(tcfg->endpoints, trans);</span><br><span style="color: hsl(0, 100%, 40%);">-         endp->last_response = talloc_strndup(tcfg->endpoints,</span><br><span style="color: hsl(120, 100%, 40%);">+           endp->last_trans = talloc_strdup(trunk->endpoints, trans);</span><br><span style="color: hsl(120, 100%, 40%);">+              endp->last_response = talloc_strndup(trunk->endpoints,</span><br><span>                                                      (const char *)res->l2h,</span><br><span>                                                   msgb_l2len(res));</span><br><span>       }</span><br><span>@@ -296,7 +296,7 @@</span><br><span> </span><br><span>  /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */</span><br><span>        if (endp->wildcarded_req</span><br><span style="color: hsl(0, 100%, 40%);">-         && endp->tcfg->trunk_type == MGCP_TRUNK_VIRTUAL) {</span><br><span style="color: hsl(120, 100%, 40%);">+      && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) {</span><br><span>                rc = msgb_printf(msg, "Z: %s%x@%s\r\n",</span><br><span>                             MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK,</span><br><span>                                  ENDPOINT_NUMBER(endp), endp->cfg->domain);</span><br><span>@@ -379,8 +379,8 @@</span><br><span>  *   - or a response (three numbers, space, transaction id) */</span><br><span> struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk_config *tcfg = cfg->virt_trunk;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct rate_ctr_group *rate_ctrs = tcfg->mgcp_general_ctr_group;</span><br><span style="color: hsl(120, 100%, 40%);">+   struct mgcp_trunk *trunk = cfg->virt_trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct rate_ctr_group *rate_ctrs = trunk->mgcp_general_ctr_group;</span><br><span>         struct mgcp_parse_data pdata;</span><br><span>        int rc, i, code, handled = 0;</span><br><span>        struct msgb *resp = NULL;</span><br><span>@@ -692,13 +692,13 @@</span><br><span> void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change,</span><br><span>                     struct mgcp_rtp_end *rtp)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *tcfg = endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk = endp->trunk;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  int patch_ssrc = expect_ssrc_change && tcfg->force_constant_ssrc;</span><br><span style="color: hsl(120, 100%, 40%);">+  int patch_ssrc = expect_ssrc_change && trunk->force_constant_ssrc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       rtp->force_aligned_timing = tcfg->force_aligned_timing;</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp->force_aligned_timing = trunk->force_aligned_timing;</span><br><span>       rtp->force_constant_ssrc = patch_ssrc ? 1 : 0;</span><br><span style="color: hsl(0, 100%, 40%);">-       rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert;</span><br><span style="color: hsl(120, 100%, 40%);">+     rtp->rfc5993_hr_convert = trunk->rfc5993_hr_convert;</span><br><span> </span><br><span>       LOGPENDP(endp, DLMGCP, LOGL_DEBUG,</span><br><span>            "Configuring RTP endpoint: local port %d%s%s\n",</span><br><span>@@ -830,9 +830,9 @@</span><br><span> /* CRCX command handler, processes the received command */</span><br><span> static struct msgb *handle_create_con(struct mgcp_parse_data *p)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk_config *tcfg = p->endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct mgcp_trunk *trunk = p->endp->trunk;</span><br><span>     struct mgcp_endpoint *endp = p->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct rate_ctr_group *rate_ctrs = tcfg->mgcp_crcx_ctr_group;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct rate_ctr_group *rate_ctrs = trunk->mgcp_crcx_ctr_group;</span><br><span>    int error_code = 400;</span><br><span>        const char *local_options = NULL;</span><br><span>    const char *callid = NULL;</span><br><span>@@ -915,7 +915,7 @@</span><br><span>             LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span>                   "CRCX: endpoint full, max. %i connections allowed!\n",</span><br><span>                     endp->type->max_conns);</span><br><span style="color: hsl(0, 100%, 40%);">-           if (tcfg->force_realloc) {</span><br><span style="color: hsl(120, 100%, 40%);">+         if (trunk->force_realloc) {</span><br><span>                       /* There is no more room for a connection, make some</span><br><span>                          * room by blindly tossing the oldest of the two two</span><br><span>                          * connections */</span><br><span>@@ -934,7 +934,7 @@</span><br><span>              LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span>                    "CRCX: already seized by other call (%s)\n",</span><br><span>                       endp->callid);</span><br><span style="color: hsl(0, 100%, 40%);">-              if (tcfg->force_realloc)</span><br><span style="color: hsl(120, 100%, 40%);">+           if (trunk->force_realloc)</span><br><span>                         /* This is not our call, toss everything by releasing</span><br><span>                         * the entire endpoint. (rude!) */</span><br><span>                   mgcp_endp_release(endp);</span><br><span>@@ -949,10 +949,10 @@</span><br><span>     /* Set the callid, creation of another connection will only be possible</span><br><span>       * when the callid matches up. (Connections are distinguished by their</span><br><span>        * connection ids) */</span><br><span style="color: hsl(0, 100%, 40%);">-   endp->callid = talloc_strdup(tcfg->endpoints, callid);</span><br><span style="color: hsl(120, 100%, 40%);">+  endp->callid = talloc_strdup(trunk->endpoints, callid);</span><br><span> </span><br><span>    snprintf(conn_name, sizeof(conn_name), "%s", callid);</span><br><span style="color: hsl(0, 100%, 40%);">- _conn = mgcp_conn_alloc(tcfg->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name);</span><br><span style="color: hsl(120, 100%, 40%);">+     _conn = mgcp_conn_alloc(trunk->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name);</span><br><span>   if (!_conn) {</span><br><span>                LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span>                    "CRCX: unable to allocate RTP connection\n");</span><br><span>@@ -987,7 +987,7 @@</span><br><span> </span><br><span>   /* Set local connection options, if present */</span><br><span>       if (local_options) {</span><br><span style="color: hsl(0, 100%, 40%);">-            rc = set_local_cx_options(endp->tcfg->endpoints,</span><br><span style="color: hsl(120, 100%, 40%);">+                rc = set_local_cx_options(endp->trunk->endpoints,</span><br><span>                                        &endp->local_options, local_options);</span><br><span>               if (rc != 0) {</span><br><span>                       LOGPCONN(_conn, DLMGCP, LOGL_ERROR,</span><br><span>@@ -1007,8 +1007,8 @@</span><br><span>          goto error2;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   conn->end.fmtp_extra = talloc_strdup(tcfg->endpoints,</span><br><span style="color: hsl(0, 100%, 40%);">-                                          tcfg->audio_fmtp_extra);</span><br><span style="color: hsl(120, 100%, 40%);">+      conn->end.fmtp_extra = talloc_strdup(trunk->endpoints,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       trunk->audio_fmtp_extra);</span><br><span> </span><br><span>        if (p->cfg->force_ptime) {</span><br><span>             conn->end.packet_duration_ms = p->cfg->force_ptime;</span><br><span>@@ -1043,7 +1043,7 @@</span><br><span>         /* policy CB */</span><br><span>      if (p->cfg->policy_cb) {</span><br><span>               int rc;</span><br><span style="color: hsl(0, 100%, 40%);">-         rc = p->cfg->policy_cb(tcfg, ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(120, 100%, 40%);">+             rc = p->cfg->policy_cb(trunk, ENDPOINT_NUMBER(endp),</span><br><span>                                  MGCP_ENDP_CRCX, p->trans);</span><br><span>                 switch (rc) {</span><br><span>                case MGCP_POLICY_REJECT:</span><br><span>@@ -1066,12 +1066,12 @@</span><br><span>   LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG,</span><br><span>           "CRCX: Creating connection: port: %u\n", conn->end.local_port);</span><br><span>        if (p->cfg->change_cb)</span><br><span style="color: hsl(0, 100%, 40%);">-            p->cfg->change_cb(tcfg, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX);</span><br><span style="color: hsl(120, 100%, 40%);">+         p->cfg->change_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX);</span><br><span> </span><br><span>   /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */</span><br><span style="color: hsl(0, 100%, 40%);">- OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span style="color: hsl(120, 100%, 40%);">+   OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span>         if (conn->conn->mode & MGCP_CONN_RECV_ONLY</span><br><span style="color: hsl(0, 100%, 40%);">-        && tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER)</span><br><span style="color: hsl(120, 100%, 40%);">+       && trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER)</span><br><span>                 send_dummy(endp, conn);</span><br><span> </span><br><span>  LOGPCONN(_conn, DLMGCP, LOGL_NOTICE,</span><br><span>@@ -1088,9 +1088,9 @@</span><br><span> /* MDCX command handler, processes the received command */</span><br><span> static struct msgb *handle_modify_con(struct mgcp_parse_data *p)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *tcfg = p->endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct mgcp_trunk *trunk = p->endp->trunk;</span><br><span>     struct mgcp_endpoint *endp = p->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct rate_ctr_group *rate_ctrs = tcfg->mgcp_mdcx_ctr_group;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct rate_ctr_group *rate_ctrs = trunk->mgcp_mdcx_ctr_group;</span><br><span>    int error_code = 500;</span><br><span>        int silent = 0;</span><br><span>      int have_sdp = 0;</span><br><span>@@ -1198,7 +1198,7 @@</span><br><span> </span><br><span>        /* Set local connection options, if present */</span><br><span>       if (local_options) {</span><br><span style="color: hsl(0, 100%, 40%);">-            rc = set_local_cx_options(endp->tcfg->endpoints,</span><br><span style="color: hsl(120, 100%, 40%);">+                rc = set_local_cx_options(endp->trunk->endpoints,</span><br><span>                                        &endp->local_options, local_options);</span><br><span>               if (rc != 0) {</span><br><span>                       LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,</span><br><span>@@ -1257,7 +1257,7 @@</span><br><span>  /* policy CB */</span><br><span>      if (p->cfg->policy_cb) {</span><br><span>               int rc;</span><br><span style="color: hsl(0, 100%, 40%);">-         rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(120, 100%, 40%);">+            rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp),</span><br><span>                                 MGCP_ENDP_MDCX, p->trans);</span><br><span>                 switch (rc) {</span><br><span>                case MGCP_POLICY_REJECT:</span><br><span>@@ -1287,13 +1287,13 @@</span><br><span>   LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG,</span><br><span>           "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn));</span><br><span>       if (p->cfg->change_cb)</span><br><span style="color: hsl(0, 100%, 40%);">-            p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(120, 100%, 40%);">+         p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp),</span><br><span>                                 MGCP_ENDP_MDCX);</span><br><span> </span><br><span>       /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */</span><br><span style="color: hsl(0, 100%, 40%);">- OSMO_ASSERT(endp->tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_ASSERT(endp->trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span>        if (conn->conn->mode & MGCP_CONN_RECV_ONLY</span><br><span style="color: hsl(0, 100%, 40%);">-        && endp->tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER)</span><br><span style="color: hsl(120, 100%, 40%);">+      && endp->trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER)</span><br><span>                send_dummy(endp, conn);</span><br><span> </span><br><span>  rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_SUCCESS]);</span><br><span>@@ -1314,9 +1314,9 @@</span><br><span> /* DLCX command handler, processes the received command */</span><br><span> static struct msgb *handle_delete_con(struct mgcp_parse_data *p)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *tcfg = p->endp->tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct mgcp_trunk *trunk = p->endp->trunk;</span><br><span>     struct mgcp_endpoint *endp = p->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct rate_ctr_group *rate_ctrs = tcfg->mgcp_dlcx_ctr_group;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct rate_ctr_group *rate_ctrs = trunk->mgcp_dlcx_ctr_group;</span><br><span>    int error_code = 400;</span><br><span>        int silent = 0;</span><br><span>      char *line;</span><br><span>@@ -1377,7 +1377,7 @@</span><br><span>  /* policy CB */</span><br><span>      if (p->cfg->policy_cb) {</span><br><span>               int rc;</span><br><span style="color: hsl(0, 100%, 40%);">-         rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(120, 100%, 40%);">+            rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp),</span><br><span>                                 MGCP_ENDP_DLCX, p->trans);</span><br><span>                 switch (rc) {</span><br><span>                case MGCP_POLICY_REJECT:</span><br><span>@@ -1442,7 +1442,7 @@</span><br><span>     }</span><br><span> </span><br><span>        if (p->cfg->change_cb)</span><br><span style="color: hsl(0, 100%, 40%);">-            p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(120, 100%, 40%);">+         p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp),</span><br><span>                                 MGCP_ENDP_DLCX);</span><br><span> </span><br><span>       rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS]);</span><br><span>@@ -1472,7 +1472,7 @@</span><br><span>     LOGP(DLMGCP, LOGL_NOTICE, "RSIP: resetting all endpoints ...\n");</span><br><span> </span><br><span>      if (p->cfg->reset_cb)</span><br><span style="color: hsl(0, 100%, 40%);">-             p->cfg->reset_cb(p->endp->tcfg);</span><br><span style="color: hsl(120, 100%, 40%);">+          p->cfg->reset_cb(p->endp->trunk);</span><br><span>        return NULL;</span><br><span> }</span><br><span> </span><br><span>@@ -1518,37 +1518,37 @@</span><br><span> </span><br><span> /* Connection keepalive timer, will take care that dummy packets are send</span><br><span>  * regularly, so that NAT connections stay open */</span><br><span style="color: hsl(0, 100%, 40%);">-static void mgcp_keepalive_timer_cb(void *_tcfg)</span><br><span style="color: hsl(120, 100%, 40%);">+static void mgcp_keepalive_timer_cb(void *_trunk)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk_config *tcfg = _tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk = _trunk;</span><br><span>   struct mgcp_conn *conn;</span><br><span>      int i;</span><br><span> </span><br><span>   LOGP(DLMGCP, LOGL_DEBUG, "triggered trunk %d keepalive timer\n",</span><br><span style="color: hsl(0, 100%, 40%);">-           tcfg->trunk_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+           trunk->trunk_nr);</span><br><span> </span><br><span>        /* Do not accept invalid configuration values</span><br><span>         * valid is MGCP_KEEPALIVE_NEVER, MGCP_KEEPALIVE_ONCE and</span><br><span>     * values greater 0 */</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span style="color: hsl(120, 100%, 40%);">+   OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE);</span><br><span> </span><br><span>     /* The dummy packet functionality has been disabled, we will exit</span><br><span>     * immediately, no further timer is scheduled, which means we will no</span><br><span>         * longer send dummy packets even when we did before */</span><br><span style="color: hsl(0, 100%, 40%);">- if (tcfg->keepalive_interval == MGCP_KEEPALIVE_NEVER)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (trunk->keepalive_interval == MGCP_KEEPALIVE_NEVER)</span><br><span>            return;</span><br><span> </span><br><span>  /* In cases where only one dummy packet is sent, we do not need</span><br><span>       * the timer since the functions that handle the CRCX and MDCX are</span><br><span>    * triggering the sending of the dummy packet. So we behave like in</span><br><span>   * the  MGCP_KEEPALIVE_NEVER case */</span><br><span style="color: hsl(0, 100%, 40%);">-    if (tcfg->keepalive_interval == MGCP_KEEPALIVE_ONCE)</span><br><span style="color: hsl(120, 100%, 40%);">+       if (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE)</span><br><span>             return;</span><br><span> </span><br><span>  /* Send walk over all endpoints and send out dummy packets through</span><br><span>    * every connection present on each endpoint */</span><br><span style="color: hsl(0, 100%, 40%);">- for (i = 1; i < tcfg->number_endpoints; ++i) {</span><br><span style="color: hsl(0, 100%, 40%);">-            struct mgcp_endpoint *endp = &tcfg->endpoints[i];</span><br><span style="color: hsl(120, 100%, 40%);">+      for (i = 1; i < trunk->number_endpoints; ++i) {</span><br><span style="color: hsl(120, 100%, 40%);">+         struct mgcp_endpoint *endp = &trunk->endpoints[i];</span><br><span>            llist_for_each_entry(conn, &endp->conns, entry) {</span><br><span>                     if (conn->mode == MGCP_CONN_RECV_ONLY)</span><br><span>                            send_dummy(endp, &conn->u.rtp);</span><br><span>@@ -1557,21 +1557,21 @@</span><br><span> </span><br><span>         /* Schedule the keepalive timer for the next round */</span><br><span>        LOGP(DLMGCP, LOGL_DEBUG, "rescheduling trunk %d keepalive timer\n",</span><br><span style="color: hsl(0, 100%, 40%);">-        tcfg->trunk_nr);</span><br><span style="color: hsl(0, 100%, 40%);">-        osmo_timer_schedule(&tcfg->keepalive_timer, tcfg->keepalive_interval,</span><br><span style="color: hsl(120, 100%, 40%);">+            trunk->trunk_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_timer_schedule(&trunk->keepalive_timer, trunk->keepalive_interval,</span><br><span>                        0);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval)</span><br><span style="color: hsl(120, 100%, 40%);">+void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- tcfg->keepalive_interval = interval;</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_timer_setup(&tcfg->keepalive_timer, mgcp_keepalive_timer_cb, tcfg);</span><br><span style="color: hsl(120, 100%, 40%);">+       trunk->keepalive_interval = interval;</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_timer_setup(&trunk->keepalive_timer, mgcp_keepalive_timer_cb, trunk);</span><br><span> </span><br><span>        if (interval <= 0)</span><br><span style="color: hsl(0, 100%, 40%);">-           osmo_timer_del(&tcfg->keepalive_timer);</span><br><span style="color: hsl(120, 100%, 40%);">+                osmo_timer_del(&trunk->keepalive_timer);</span><br><span>      else</span><br><span style="color: hsl(0, 100%, 40%);">-            osmo_timer_schedule(&tcfg->keepalive_timer,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  tcfg->keepalive_interval, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_timer_schedule(&trunk->keepalive_timer,</span><br><span style="color: hsl(120, 100%, 40%);">+                               trunk->keepalive_interval, 0);</span><br><span> }</span><br><span> </span><br><span> static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group)</span><br><span>@@ -1580,7 +1580,7 @@</span><br><span>  return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int alloc_mgcp_rate_counters(struct mgcp_trunk_config *trunk, void *ctx)</span><br><span style="color: hsl(120, 100%, 40%);">+static int alloc_mgcp_rate_counters(struct mgcp_trunk *trunk, void *ctx)</span><br><span> {</span><br><span>     /* FIXME: Each new rate counter group requires a unique index. At the</span><br><span>         * moment we generate an index using a counter, but perhaps there is</span><br><span>@@ -1676,11 +1676,11 @@</span><br><span>  *  \param[in] cfg mgcp configuration</span><br><span>  *  \param[in] nr trunk number</span><br><span>  *  \returns pointer to allocated trunk configuration */</span><br><span style="color: hsl(0, 100%, 40%);">-struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr)</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   trunk = talloc_zero(cfg, struct mgcp_trunk_config);</span><br><span style="color: hsl(120, 100%, 40%);">+   trunk = talloc_zero(cfg, struct mgcp_trunk);</span><br><span>         if (!trunk) {</span><br><span>                LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n");</span><br><span>                 return NULL;</span><br><span>@@ -1709,9 +1709,9 @@</span><br><span>  *  \param[in] cfg mgcp configuration</span><br><span>  *  \param[in] index 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_config *mgcp_trunk_num(struct mgcp_config *cfg, int index)</span><br><span style="color: hsl(120, 100%, 40%);">+struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        llist_for_each_entry(trunk, &cfg->trunks, entry)</span><br><span>          if (trunk->trunk_nr == index)</span><br><span>@@ -1722,27 +1722,27 @@</span><br><span> </span><br><span> /*! allocate endpoints and set default values.</span><br><span>  *  (called once at startup by VTY)</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] tcfg trunk configuration</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] trunk trunk configuration</span><br><span>  *  \returns 0 on success, -1 on failure */</span><br><span style="color: hsl(0, 100%, 40%);">-int mgcp_endpoints_allocate(struct mgcp_trunk_config *tcfg)</span><br><span style="color: hsl(120, 100%, 40%);">+int mgcp_endpoints_allocate(struct mgcp_trunk *trunk)</span><br><span> {</span><br><span>   int i;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      tcfg->endpoints = _talloc_zero_array(tcfg->cfg,</span><br><span style="color: hsl(120, 100%, 40%);">+ trunk->endpoints = _talloc_zero_array(trunk->cfg,</span><br><span>                                           sizeof(struct mgcp_endpoint),</span><br><span style="color: hsl(0, 100%, 40%);">-                                           tcfg->vty_number_endpoints,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        trunk->vty_number_endpoints,</span><br><span>                                              "endpoints");</span><br><span style="color: hsl(0, 100%, 40%);">-    if (!tcfg->endpoints)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (!trunk->endpoints)</span><br><span>            return -1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  for (i = 0; i < tcfg->vty_number_endpoints; ++i) {</span><br><span style="color: hsl(0, 100%, 40%);">-                INIT_LLIST_HEAD(&tcfg->endpoints[i].conns);</span><br><span style="color: hsl(0, 100%, 40%);">-              tcfg->endpoints[i].cfg = tcfg->cfg;</span><br><span style="color: hsl(0, 100%, 40%);">-               tcfg->endpoints[i].tcfg = tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+    for (i = 0; i < trunk->vty_number_endpoints; ++i) {</span><br><span style="color: hsl(120, 100%, 40%);">+             INIT_LLIST_HEAD(&trunk->endpoints[i].conns);</span><br><span style="color: hsl(120, 100%, 40%);">+           trunk->endpoints[i].cfg = trunk->cfg;</span><br><span style="color: hsl(120, 100%, 40%);">+           trunk->endpoints[i].trunk = trunk;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               switch (tcfg->trunk_type) {</span><br><span style="color: hsl(120, 100%, 40%);">+                switch (trunk->trunk_type) {</span><br><span>              case MGCP_TRUNK_VIRTUAL:</span><br><span style="color: hsl(0, 100%, 40%);">-                        tcfg->endpoints[i].type = &ep_typeset.rtp;</span><br><span style="color: hsl(120, 100%, 40%);">+                     trunk->endpoints[i].type = &ep_typeset.rtp;</span><br><span>                   break;</span><br><span>               case MGCP_TRUNK_E1:</span><br><span>                  /* FIXME: Implement E1 allocation */</span><br><span>@@ -1750,12 +1750,12 @@</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 style="color: hsl(0, 100%, 40%);">-                               tcfg->trunk_type, __FILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+                             trunk->trunk_type, __FILE__, __LINE__);</span><br><span>                }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   tcfg->number_endpoints = tcfg->vty_number_endpoints;</span><br><span style="color: hsl(0, 100%, 40%);">-      alloc_mgcp_rate_counters(tcfg, tcfg->cfg);</span><br><span style="color: hsl(120, 100%, 40%);">+ trunk->number_endpoints = trunk->vty_number_endpoints;</span><br><span style="color: hsl(120, 100%, 40%);">+  alloc_mgcp_rate_counters(trunk, trunk->cfg);</span><br><span> </span><br><span>  return 0;</span><br><span> }</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>index 01e7968..428bde6 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>@@ -557,7 +557,7 @@</span><br><span>                if (rc < 0)</span><br><span>                       goto buffer_too_small;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-              if (endp->tcfg->audio_send_name) {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (endp->trunk->audio_send_name) {</span><br><span>                    rc = add_rtpmap(sdp, payload_type, audio_name);</span><br><span>                      if (rc < 0)</span><br><span>                               goto buffer_too_small;</span><br><span>@@ -573,7 +573,7 @@</span><br><span>                 if (rc < 0)</span><br><span>                       goto buffer_too_small;</span><br><span>       }</span><br><span style="color: hsl(0, 100%, 40%);">-       if (conn->end.packet_duration_ms > 0 && endp->tcfg->audio_send_ptime) {</span><br><span style="color: hsl(120, 100%, 40%);">+   if (conn->end.packet_duration_ms > 0 && endp->trunk->audio_send_ptime) {</span><br><span>                 rc = msgb_printf(sdp, "a=ptime:%u\r\n",</span><br><span>                             conn->end.packet_duration_ms);</span><br><span>           if (rc < 0)</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>index 856c971..137d5de 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_vty.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>@@ -42,9 +42,9 @@</span><br><span> </span><br><span> static struct mgcp_config *g_cfg = NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct mgcp_trunk_config *find_trunk(struct mgcp_config *cfg, int nr)</span><br><span style="color: hsl(120, 100%, 40%);">+static struct mgcp_trunk *find_trunk(struct mgcp_config *cfg, int nr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        if (nr == 0)</span><br><span>                 trunk = cfg->virt_trunk;</span><br><span>@@ -68,7 +68,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_config *trunk = g_cfg->virt_trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk *trunk = g_cfg->virt_trunk;</span><br><span> </span><br><span>         vty_out(vty, "mgcp%s", VTY_NEWLINE);</span><br><span>       vty_out(vty, "  domain %s%s", g_cfg->domain, VTY_NEWLINE);</span><br><span>@@ -244,7 +244,7 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void dump_trunk(struct vty *vty, struct mgcp_trunk_config *cfg, int show_stats)</span><br><span style="color: hsl(120, 100%, 40%);">+static void dump_trunk(struct vty *vty, struct mgcp_trunk *cfg, int show_stats)</span><br><span> {</span><br><span>       int i;</span><br><span> </span><br><span>@@ -298,7 +298,7 @@</span><br><span>       SHOW_MGCP_STR</span><br><span>       "Include Statistics\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    int show_stats = argc >= 1;</span><br><span> </span><br><span>   dump_trunk(vty, g_cfg->virt_trunk, show_stats);</span><br><span>@@ -314,7 +314,7 @@</span><br><span> }</span><br><span> </span><br><span> static void</span><br><span style="color: hsl(0, 100%, 40%);">-dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk_config *trunk, const char *epname)</span><br><span style="color: hsl(120, 100%, 40%);">+dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname)</span><br><span> {</span><br><span>     const size_t virt_prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1;</span><br><span>       unsigned long epidx;</span><br><span>@@ -350,7 +350,7 @@</span><br><span>       SHOW_MGCP_STR</span><br><span>       "Display information about an endpoint\n" "The name of the endpoint\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        dump_mgcp_endpoint(vty, g_cfg->virt_trunk, argv[0]);</span><br><span>      llist_for_each_entry(trunk, &g_cfg->trunks, entry)</span><br><span>@@ -366,7 +366,7 @@</span><br><span>       "Display information about a trunk\n" "Trunk number\n"</span><br><span>       "Display information about an endpoint\n" "The name of the endpoint\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    int trunkidx = atoi(argv[0]);</span><br><span> </span><br><span>    trunk = find_trunk(g_cfg, trunkidx);</span><br><span>@@ -807,7 +807,7 @@</span><br><span> DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd,</span><br><span>       "trunk <1-64>", "Configure a SS7 trunk\n" "Trunk Nr\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    int index = atoi(argv[0]);</span><br><span> </span><br><span>       trunk = mgcp_trunk_num(g_cfg, index);</span><br><span>@@ -827,7 +827,7 @@</span><br><span> </span><br><span> static int config_write_trunk(struct vty *vty)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        llist_for_each_entry(trunk, &g_cfg->trunks, entry) {</span><br><span>          vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE);</span><br><span>@@ -885,7 +885,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    char *txt = argv_concat(argv, argc, 0);</span><br><span>      if (!txt)</span><br><span>            return CMD_WARNING;</span><br><span>@@ -900,7 +900,7 @@</span><br><span>       "sdp audio-payload number <0-255>",</span><br><span>       SDP_STR AUDIO_STR "Number\n" "Payload Number\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    unsigned int payload = atoi(argv[0]);</span><br><span> </span><br><span>    trunk->audio_payload = payload;</span><br><span>@@ -916,7 +916,7 @@</span><br><span>       "sdp audio-payload name NAME",</span><br><span>       SDP_STR AUDIO_STR "Payload\n" "Payload Name\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct mgcp_trunk_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span> </span><br><span>        osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]);</span><br><span>       return CMD_SUCCESS;</span><br><span>@@ -931,7 +931,7 @@</span><br><span>       "loop (0|1)",</span><br><span>       "Loop audio for all endpoints on this trunk\n" "Don't Loop\n" "Loop\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct mgcp_trunk_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span> </span><br><span>        if (g_cfg->osmux) {</span><br><span>               vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE);</span><br><span>@@ -946,7 +946,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->audio_send_ptime = 1;</span><br><span>      return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -956,7 +956,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->audio_send_ptime = 0;</span><br><span>      return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -966,7 +966,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->audio_send_name = 1;</span><br><span>       return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -976,14 +976,14 @@</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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->audio_send_name = 0;</span><br><span>       return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span> DEFUN(cfg_trunk_omit_rtcp, cfg_trunk_omit_rtcp_cmd, "rtcp-omit", RTCP_OMIT_STR)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct mgcp_trunk_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->omit_rtcp = 1;</span><br><span>     return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -991,7 +991,7 @@</span><br><span> DEFUN(cfg_trunk_no_omit_rtcp,</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->omit_rtcp = 0;</span><br><span>     return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1000,7 +1000,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->force_constant_ssrc = 1;</span><br><span>   return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1009,7 +1009,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->force_constant_ssrc = 0;</span><br><span>   return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1018,7 +1018,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->force_aligned_timing = 1;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1027,7 +1027,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->force_aligned_timing = 0;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1036,7 +1036,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->rfc5993_hr_convert = true;</span><br><span>         return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1045,7 +1045,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->rfc5993_hr_convert = false;</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1053,7 +1053,7 @@</span><br><span> DEFUN(cfg_trunk_no_patch_rtp,</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->force_constant_ssrc = 0;</span><br><span>   trunk->force_aligned_timing = 0;</span><br><span>  trunk->rfc5993_hr_convert = false;</span><br><span>@@ -1065,7 +1065,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    mgcp_trunk_set_keepalive(trunk, atoi(argv[0]));</span><br><span>      return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1075,7 +1075,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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE);</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1084,7 +1084,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    mgcp_trunk_set_keepalive(trunk, 0);</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1093,7 +1093,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->no_audio_transcoding = 0;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1102,7 +1102,7 @@</span><br><span>       cfg_trunk_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_config *trunk = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk = vty->index;</span><br><span>    trunk->no_audio_transcoding = 1;</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -1114,7 +1114,7 @@</span><br><span>       "The name in hex of the endpoint\n" "Disable the loop\n"</span><br><span>       "Enable the loop\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    struct mgcp_endpoint *endp;</span><br><span>  struct mgcp_conn *conn;</span><br><span> </span><br><span>@@ -1172,7 +1172,7 @@</span><br><span>       "destination IP of the data\n" "destination port\n")</span><br><span> {</span><br><span>   struct mgcp_rtp_tap *tap;</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    struct mgcp_endpoint *endp;</span><br><span>  struct mgcp_conn_rtp *conn;</span><br><span>         const char *conn_id = NULL;</span><br><span>@@ -1227,7 +1227,7 @@</span><br><span>       "free-endpoint <0-64> NUMBER",</span><br><span>       "Free the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    struct mgcp_endpoint *endp;</span><br><span> </span><br><span>      trunk = find_trunk(g_cfg, atoi(argv[0]));</span><br><span>@@ -1259,7 +1259,7 @@</span><br><span>       "reset-endpoint <0-64> NUMBER",</span><br><span>       "Reset the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span>    struct mgcp_endpoint *endp;</span><br><span>  int endp_no, rc;</span><br><span> </span><br><span>@@ -1502,7 +1502,7 @@</span><br><span>                       enum mgcp_role role)</span><br><span> {</span><br><span>      int rc;</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct mgcp_trunk *trunk;</span><br><span> </span><br><span>        cfg->osmux_port = OSMUX_PORT;</span><br><span>     cfg->osmux_batch = 4;</span><br><span>diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c</span><br><span>index 48869c4..22f2ab8 100644</span><br><span>--- a/src/osmo-mgw/mgw_main.c</span><br><span>+++ b/src/osmo-mgw/mgw_main.c</span><br><span>@@ -71,7 +71,7 @@</span><br><span> /* FIXME: Make use of the rtp proxy code */</span><br><span> </span><br><span> static struct mgcp_config *cfg;</span><br><span style="color: hsl(0, 100%, 40%);">-static struct mgcp_trunk_config *reset_trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+static struct mgcp_trunk *reset_trunk;</span><br><span> static int reset_endpoints = 0;</span><br><span> static int daemonize = 0;</span><br><span> </span><br><span>@@ -148,13 +148,13 @@</span><br><span> </span><br><span> /* Callback function to be called when the RSIP ("Reset in Progress") mgcp</span><br><span>  * command is received */</span><br><span style="color: hsl(0, 100%, 40%);">-static int mgcp_rsip_cb(struct mgcp_trunk_config *tcfg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int mgcp_rsip_cb(struct mgcp_trunk *trunk)</span><br><span> {</span><br><span>         /* Set flag so that, when read_call_agent() is called next time</span><br><span>       * the reset can progress */</span><br><span>         reset_endpoints = 1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        reset_trunk = tcfg;</span><br><span style="color: hsl(120, 100%, 40%);">+   reset_trunk = trunk;</span><br><span> </span><br><span>     return 0;</span><br><span> }</span><br><span>diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c</span><br><span>index e0518a4..fa38296 100644</span><br><span>--- a/tests/mgcp/mgcp_test.c</span><br><span>+++ b/tests/mgcp/mgcp_test.c</span><br><span>@@ -593,7 +593,7 @@</span><br><span> </span><br><span> static int last_endpoint = -1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int mgcp_test_policy_cb(struct mgcp_trunk_config *cfg, int endpoint,</span><br><span style="color: hsl(120, 100%, 40%);">+static int mgcp_test_policy_cb(struct mgcp_trunk *cfg, int endpoint,</span><br><span>                                int state, const char *transactio_id)</span><br><span> {</span><br><span>    fprintf(stderr, "Policy CB got state %d on endpoint 0x%x\n",</span><br><span>@@ -641,7 +641,7 @@</span><br><span>         return real_clock_gettime(clk_id, tp);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void mgcp_endpoints_release(struct mgcp_trunk_config *trunk)</span><br><span style="color: hsl(120, 100%, 40%);">+static void mgcp_endpoints_release(struct mgcp_trunk *trunk)</span><br><span> {</span><br><span>        int i;</span><br><span>       for (i = 1; i < trunk->number_endpoints; i++)</span><br><span>@@ -749,7 +749,7 @@</span><br><span> {</span><br><span>       struct mgcp_config *cfg;</span><br><span>     struct mgcp_endpoint *endp;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct mgcp_trunk_config *trunk2;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct mgcp_trunk *trunk2;</span><br><span>   int i;</span><br><span>       struct mgcp_conn_rtp *conn = NULL;</span><br><span>   char last_conn_id[256];</span><br><span>@@ -890,7 +890,7 @@</span><br><span> static void test_retransmission(void)</span><br><span> {</span><br><span>  struct mgcp_config *cfg;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk_config *trunk2;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct mgcp_trunk *trunk2;</span><br><span>   int i;</span><br><span>       char last_conn_id[256];</span><br><span>      int rc;</span><br><span>@@ -958,7 +958,7 @@</span><br><span> static void test_rqnt_cb(void)</span><br><span> {</span><br><span>         struct mgcp_config *cfg;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk_config *trunk2;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct mgcp_trunk *trunk2;</span><br><span>   struct msgb *inp, *msg;</span><br><span>      char conn_id[256];</span><br><span> </span><br><span>@@ -1036,7 +1036,7 @@</span><br><span>       int i;</span><br><span>       struct mgcp_endpoint endp;</span><br><span>   struct mgcp_config cfg = {0};</span><br><span style="color: hsl(0, 100%, 40%);">-   struct mgcp_trunk_config trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk trunk;</span><br><span> </span><br><span>         printf("Testing packet loss calculation.\n");</span><br><span> </span><br><span>@@ -1047,7 +1047,7 @@</span><br><span>  endp.type = &ep_typeset.rtp;</span><br><span>     trunk.vty_number_endpoints = 1;</span><br><span>      trunk.endpoints = &endp;</span><br><span style="color: hsl(0, 100%, 40%);">-    endp.tcfg = &trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+       endp.trunk = &trunk;</span><br><span>     INIT_LLIST_HEAD(&endp.conns);</span><br><span> </span><br><span>        for (i = 0; i < ARRAY_SIZE(pl_test_dat); ++i) {</span><br><span>@@ -1262,7 +1262,7 @@</span><br><span> {</span><br><span>      int i;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      struct mgcp_trunk_config trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct mgcp_trunk trunk;</span><br><span>     struct mgcp_endpoint endp;</span><br><span>   struct mgcp_config cfg = {0};</span><br><span>        struct mgcp_rtp_state state;</span><br><span>@@ -1300,7 +1300,7 @@</span><br><span>         trunk.force_constant_ssrc = patch_ssrc;</span><br><span>      trunk.force_aligned_timing = patch_ts;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      endp.tcfg = &trunk;</span><br><span style="color: hsl(120, 100%, 40%);">+       endp.trunk = &trunk;</span><br><span> </span><br><span>         INIT_LLIST_HEAD(&endp.conns);</span><br><span>    _conn = mgcp_conn_alloc(NULL, &endp, MGCP_CONN_TYPE_RTP,</span><br><span>@@ -1361,7 +1361,7 @@</span><br><span> static void test_multilple_codec(void)</span><br><span> {</span><br><span>  struct mgcp_config *cfg;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct mgcp_trunk_config *trunk2;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct mgcp_trunk *trunk2;</span><br><span>   struct mgcp_endpoint *endp;</span><br><span>  struct msgb *inp, *resp;</span><br><span>     struct in_addr addr;</span><br><span>@@ -1558,7 +1558,7 @@</span><br><span> </span><br><span> static void test_no_name(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_trunk_config *trunk2;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct mgcp_trunk *trunk2;</span><br><span>   struct mgcp_config *cfg;</span><br><span>     struct msgb *inp, *msg;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/18643">change 18643</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/+/18643"/><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: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 </div>
<div style="display:none"> Gerrit-Change-Number: 18643 </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>