<p>Hoernchen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/14753">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add ipa keepalive for gsup connections to the hlr<br><br>Change-Id: I7d0beb9357ab9b1baeb030d726f312008f2fc533<br>---<br>M doc/manuals/vty/msc_vty_reference.xml<br>M include/osmocom/msc/gsm_data.h<br>M include/osmocom/msc/gsup_client_mux.h<br>M src/libmsc/gsup_client_mux.c<br>M src/libmsc/msc_net_init.c<br>M src/libmsc/msc_vty.c<br>6 files changed, 36 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/53/14753/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/vty/msc_vty_reference.xml b/doc/manuals/vty/msc_vty_reference.xml</span><br><span>index 0e5d04d..7f7b753 100644</span><br><span>--- a/doc/manuals/vty/msc_vty_reference.xml</span><br><span>+++ b/doc/manuals/vty/msc_vty_reference.xml</span><br><span>@@ -2796,6 +2796,13 @@</span><br><span>         <param name='NAME' doc='A unique name for this MSC. For example: PLMN + redundancy server number: MSC-901-70-0. This name is used for GSUP routing and must be set if more than one MSC is connected to the HLR. The default is &apos;MSC-00-00-00-00-00-00&apos;.' /></span><br><span>       </params></span><br><span>     </command></span><br><span style="color: hsl(120, 100%, 40%);">+    <command id='keepalive <0-300> <1-300>'></span><br><span style="color: hsl(120, 100%, 40%);">+      <params></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='keepalive' doc='Enable keepalive probing' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='<0-300>' doc='Idle interval in seconds before probes are sent, 0 disables keepalive' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='<1-300>' doc='Timeout waiting for PONG response' /></span><br><span style="color: hsl(120, 100%, 40%);">+      </params></span><br><span style="color: hsl(120, 100%, 40%);">+    </command></span><br><span>   </node></span><br><span>   <node id='config-sgs'></span><br><span>     <name>config-sgs</name></span><br><span>diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h</span><br><span>index f6e3ed9..20176ad 100644</span><br><span>--- a/include/osmocom/msc/gsm_data.h</span><br><span>+++ b/include/osmocom/msc/gsm_data.h</span><br><span>@@ -235,6 +235,8 @@</span><br><span> </span><br><span>        /* Whether we want to use Osmux against BSCs. Controlled via VTY */</span><br><span>  enum osmux_usage use_osmux;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ipa_keepalive_params *ka_params;</span><br><span> };</span><br><span> </span><br><span> struct osmo_esme;</span><br><span>diff --git a/include/osmocom/msc/gsup_client_mux.h b/include/osmocom/msc/gsup_client_mux.h</span><br><span>index 07f17c2..46dfee9 100644</span><br><span>--- a/include/osmocom/msc/gsup_client_mux.h</span><br><span>+++ b/include/osmocom/msc/gsup_client_mux.h</span><br><span>@@ -5,6 +5,7 @@</span><br><span> </span><br><span> struct gsup_client_mux;</span><br><span> struct ipaccess_unit;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ipa_keepalive_params;</span><br><span> </span><br><span> struct gsup_client_mux_rx_cb {</span><br><span>        int (* func )(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg);</span><br><span>@@ -25,7 +26,7 @@</span><br><span> </span><br><span> struct gsup_client_mux *gsup_client_mux_alloc(void *talloc_ctx);</span><br><span> int gsup_client_mux_start(struct gsup_client_mux *gcm, const char *gsup_server_addr_str, uint16_t gsup_server_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                      struct ipaccess_unit *ipa_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+                       struct ipaccess_unit *ipa_dev, struct ipa_keepalive_params *kap);</span><br><span> </span><br><span> int gsup_client_mux_tx(struct gsup_client_mux *gcm, const struct osmo_gsup_message *gsup_msg);</span><br><span> void gsup_client_mux_tx_error_reply(struct gsup_client_mux *gcm, const struct osmo_gsup_message *gsup_orig,</span><br><span>diff --git a/src/libmsc/gsup_client_mux.c b/src/libmsc/gsup_client_mux.c</span><br><span>index e425651..b9ee285 100644</span><br><span>--- a/src/libmsc/gsup_client_mux.c</span><br><span>+++ b/src/libmsc/gsup_client_mux.c</span><br><span>@@ -108,12 +108,12 @@</span><br><span> </span><br><span> /* Start a GSUP client to serve this gsup_client_mux. */</span><br><span> int gsup_client_mux_start(struct gsup_client_mux *gcm, const char *gsup_server_addr_str, uint16_t gsup_server_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                      struct ipaccess_unit *ipa_dev)</span><br><span style="color: hsl(120, 100%, 40%);">+                        struct ipaccess_unit *ipa_dev, struct ipa_keepalive_params *kap)</span><br><span> {</span><br><span>      gcm->gsup_client = osmo_gsup_client_create2(gcm, ipa_dev,</span><br><span>                                                     gsup_server_addr_str,</span><br><span>                                                gsup_server_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                                               &gsup_client_mux_rx, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+                                               &gsup_client_mux_rx, NULL, kap);</span><br><span>     if (!gcm->gsup_client)</span><br><span>            return -ENOMEM;</span><br><span>      gcm->gsup_client->data = gcm;</span><br><span>diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c</span><br><span>index 4a752bf..3b05e65 100644</span><br><span>--- a/src/libmsc/msc_net_init.c</span><br><span>+++ b/src/libmsc/msc_net_init.c</span><br><span>@@ -122,5 +122,5 @@</span><br><span>           },</span><br><span>   };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  return gsup_client_mux_start(net->gcm, net->gsup_server_addr_str, net->gsup_server_port, ipa_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+   return gsup_client_mux_start(net->gcm, net->gsup_server_addr_str, net->gsup_server_port, ipa_dev, net->ka_params);</span><br><span> }</span><br><span>diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c</span><br><span>index 8a976cb..1068de1 100644</span><br><span>--- a/src/libmsc/msc_vty.c</span><br><span>+++ b/src/libmsc/msc_vty.c</span><br><span>@@ -34,6 +34,8 @@</span><br><span> #include <osmocom/gsm/protocol/gsm_04_14.h></span><br><span> #include <osmocom/gsm/protocol/gsm_08_08.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/abis/ipa.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/sigtran/sccp_helpers.h></span><br><span> </span><br><span> #include <osmocom/vty/command.h></span><br><span>@@ -1846,6 +1848,22 @@</span><br><span>  return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(cfg_hlr_gsup_keepalive,</span><br><span style="color: hsl(120, 100%, 40%);">+     cfg_hlr_gsup_keepalive_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+   "keepalive <0-300> <1-300>",</span><br><span style="color: hsl(120, 100%, 40%);">+    "Enable keepalive probing\n"</span><br><span style="color: hsl(120, 100%, 40%);">+        "Idle interval in seconds before probes are sent, 0 disables keepalive\n"</span><br><span style="color: hsl(120, 100%, 40%);">+   "Timeout waiting for PONG response\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ if (atoi(argv[0]) > 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           gsmnet->ka_params = talloc_zero(gsmnet, struct ipa_keepalive_params);</span><br><span style="color: hsl(120, 100%, 40%);">+              gsmnet->ka_params->interval = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+            gsmnet->ka_params->wait_for_resp = atoi(argv[1]);</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%);">+   return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int config_write_hlr(struct vty *vty)</span><br><span> {</span><br><span>        vty_out(vty, "hlr%s", VTY_NEWLINE);</span><br><span>@@ -1855,6 +1873,9 @@</span><br><span>                gsmnet->gsup_server_port, VTY_NEWLINE);</span><br><span>   if (gsmnet->msc_ipa_name)</span><br><span>                 vty_out(vty, " ipa-name %s%s", gsmnet->msc_ipa_name, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (gsmnet->ka_params)</span><br><span style="color: hsl(120, 100%, 40%);">+             vty_out(vty, " keepalive %d %d%s", gsmnet->ka_params->interval,</span><br><span style="color: hsl(120, 100%, 40%);">+                               gsmnet->ka_params->wait_for_resp, VTY_NEWLINE);</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span>@@ -1956,4 +1977,5 @@</span><br><span>         install_element(HLR_NODE, &cfg_hlr_remote_ip_cmd);</span><br><span>       install_element(HLR_NODE, &cfg_hlr_remote_port_cmd);</span><br><span>     install_element(HLR_NODE, &cfg_hlr_ipa_name_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+ install_element(HLR_NODE, &cfg_hlr_gsup_keepalive_cmd);</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/14753">change 14753</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-msc/+/14753"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I7d0beb9357ab9b1baeb030d726f312008f2fc533 </div>
<div style="display:none"> Gerrit-Change-Number: 14753 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>