pespin submitted this change.

View Change


Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved
mgcp-client: Always mark client as UP if keepalive request-interval disabled

In the previous logic, if "keepalive request-interval" was disabled
(value 0, default), then if the client was configured to send a DLCX on
startup it would end up in state UP or DOWN depending on whether the MGW
answered to that request.
As a result, an MGW that wouldn't answer would be left forever in DOWN
state since it would have been selected no more and there would be a
keepalive configured to re-mark it as UP.

Fixes: 563386e8bbf0bc6d9050d87f79208d6784e219cf
Related: SYS#6481
Change-Id: I290f7436f48418ee25179951359c76208796e279
---
M src/libosmo-mgcp-client/mgcp_client.c
1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c
index 677a4f3..b0ccfe7 100644
--- a/src/libosmo-mgcp-client/mgcp_client.c
+++ b/src/libosmo-mgcp-client/mgcp_client.c
@@ -951,16 +951,16 @@
some_dlcx_sent = true;
}

- if (!some_dlcx_sent) {
- if (mgcp->actual.keepalive.req_interval_sec > 0) {
+ if (mgcp->actual.keepalive.req_interval_sec > 0) {
+ if (!some_dlcx_sent) {
/* Attempt an immediate probe to find out if link is UP or DOWN: */
osmo_timer_schedule(&mgcp->keepalive_tx_timer, 0, 0);
- } else {
- /* Assume link is UP by default, so that this MGW can be selected: */
- mgcp->conn_up = true;
}
+ /* else: keepalive_tx_timer was already scheduled (if needed) down in the stack during Tx DLCX above */
+ } else {
+ /* Assume link is UP by default, so that this MGW can be selected: */
+ mgcp->conn_up = true;
}
- /* else: keepalive_tx_timer was already scheduled (if needed) down in the stack during Tx DLCX above */

if (mgcp->actual.keepalive.timeout_sec > 0)
osmo_timer_schedule(&mgcp->keepalive_rx_timer, mgcp->actual.keepalive.timeout_sec, 0);

To view, visit change 33467. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I290f7436f48418ee25179951359c76208796e279
Gerrit-Change-Number: 33467
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged