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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add vty command 'show mgcp active'<br><br>With just one E1 line, the 'show mgcp' command outputs<br>several hundred lines to the vty. Add a 'active' parameter to<br>only show endpoints that are active.<br><br>Change-Id: I23a26b4fdc03d8b2469d293dd6c06ed83ce739e9<br>---<br>M src/libosmo-mgcp/mgcp_vty.c<br>1 file changed, 38 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>index 521f86e..5892df1 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_vty.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_vty.c</span><br><span>@@ -301,9 +301,10 @@</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 *trunk, int show_stats)</span><br><span style="color: hsl(120, 100%, 40%);">+static void dump_trunk(struct vty *vty, struct mgcp_trunk *trunk, int show_stats, int active_only)</span><br><span> {</span><br><span>     int i;</span><br><span style="color: hsl(120, 100%, 40%);">+        int active_count = 0;</span><br><span> </span><br><span>    vty_out(vty, "%s trunk %d with %d endpoints:%s",</span><br><span>           trunk->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1",</span><br><span>@@ -316,29 +317,30 @@</span><br><span> </span><br><span>       for (i = 0; i < trunk->number_endpoints; ++i) {</span><br><span>                struct mgcp_endpoint *endp = trunk->endpoints[i];</span><br><span style="color: hsl(0, 100%, 40%);">-            dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type,</span><br><span style="color: hsl(0, 100%, 40%);">-                            show_stats);</span><br><span style="color: hsl(0, 100%, 40%);">-              if (i < trunk->number_endpoints - 1)</span><br><span style="color: hsl(0, 100%, 40%);">-                      vty_out(vty, "%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+            if (!active_only || !llist_empty(&endp->conns)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  show_stats);</span><br><span style="color: hsl(120, 100%, 40%);">+                    if (i < trunk->number_endpoints - 1)</span><br><span style="color: hsl(120, 100%, 40%);">+                            vty_out(vty, "%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (!llist_empty(&endp->conns))</span><br><span style="color: hsl(120, 100%, 40%);">+                        active_count++;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (active_count == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                vty_out(vty, "No endpoints in use.%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     if (show_stats)</span><br><span>              dump_ratectr_trunk(vty, trunk);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define SHOW_MGCP_STR "Display information about the MGCP Media Gateway\n"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-DEFUN(show_mcgp, show_mgcp_cmd,</span><br><span style="color: hsl(0, 100%, 40%);">-      "show mgcp [stats]",</span><br><span style="color: hsl(0, 100%, 40%);">-      SHOW_STR</span><br><span style="color: hsl(0, 100%, 40%);">-      SHOW_MGCP_STR</span><br><span style="color: hsl(0, 100%, 40%);">-      "Include Statistics\n")</span><br><span style="color: hsl(120, 100%, 40%);">+static int mgcp_show(struct vty *vty, int argc, const char **argv,</span><br><span style="color: hsl(120, 100%, 40%);">+                int show_stats, int active_only)</span><br><span> {</span><br><span>   struct mgcp_trunk *trunk;</span><br><span style="color: hsl(0, 100%, 40%);">-       int show_stats = argc >= 1;</span><br><span> </span><br><span>   llist_for_each_entry(trunk, &g_cfg->trunks, entry)</span><br><span style="color: hsl(0, 100%, 40%);">-               dump_trunk(vty, trunk, show_stats);</span><br><span style="color: hsl(120, 100%, 40%);">+           dump_trunk(vty, trunk, show_stats, active_only);</span><br><span> </span><br><span>         if (g_cfg->osmux)</span><br><span>                 vty_out(vty, "Osmux used CID: %d%s", osmux_cid_pool_count_used(),</span><br><span>@@ -350,6 +352,27 @@</span><br><span>   return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define SHOW_MGCP_STR "Display information about the MGCP Media Gateway\n"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(show_mgcp, show_mgcp_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+      "show mgcp [stats]",</span><br><span style="color: hsl(120, 100%, 40%);">+      SHOW_STR</span><br><span style="color: hsl(120, 100%, 40%);">+      SHOW_MGCP_STR</span><br><span style="color: hsl(120, 100%, 40%);">+      "Include statistics\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  int show_stats = argc >= 1;</span><br><span style="color: hsl(120, 100%, 40%);">+        return mgcp_show(vty, argc, argv, show_stats, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(show_mgcp_active, show_mgcp_active_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+      "show mgcp active",</span><br><span style="color: hsl(120, 100%, 40%);">+      SHOW_STR</span><br><span style="color: hsl(120, 100%, 40%);">+      SHOW_MGCP_STR</span><br><span style="color: hsl(120, 100%, 40%);">+      "Show only endpoints with active connections\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  return mgcp_show(vty, argc, argv, 0, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void</span><br><span> dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname)</span><br><span> {</span><br><span>@@ -1606,6 +1629,7 @@</span><br><span> int mgcp_vty_init(void)</span><br><span> {</span><br><span>       install_element_ve(&show_mgcp_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element_ve(&show_mgcp_active_cmd);</span><br><span>       install_element_ve(&show_mgcp_endpoint_cmd);</span><br><span>     install_element_ve(&show_mgcp_trunk_endpoint_cmd);</span><br><span>       install_element(ENABLE_NODE, &loop_conn_cmd);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/24131">change 24131</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/+/24131"/><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: I23a26b4fdc03d8b2469d293dd6c06ed83ce739e9 </div>
<div style="display:none"> Gerrit-Change-Number: 24131 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: keith <keith@rhizomatica.org> </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: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: keith <keith@rhizomatica.org> </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>