aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-16 18:05:19 +0300
committerlaforge <laforge@osmocom.org>2020-05-17 07:25:47 +0000
commit7738b07f8ce4c53a504ba785d20e0d7738d9909e (patch)
treeb9b811685e7da13d10d69e7ac2c78f641a15e932 /src
parentd3d03070e280b0f0dc9f78914afcd20e7edcfdb7 (diff)
bssmap: Ignore repeated BSSMAP RESET ACK messages.
We're sending multiple RESET messages to establish a conection with an MSC and MSC can (and often will) respond with multiple RESET ACK messages. We should not treat this as an ERROR as it used to be in the original code. Change-Id: I109d638d5167e24f0357e3541415b9e7269aa5d1
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bsc/a_reset.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/osmo-bsc/a_reset.c b/src/osmo-bsc/a_reset.c
index f990e630f..713be86fb 100644
--- a/src/osmo-bsc/a_reset.c
+++ b/src/osmo-bsc/a_reset.c
@@ -103,6 +103,9 @@ static void fsm_conn_cb(struct osmo_fsm_inst *fi, uint32_t event, void *data)
case EV_N_CONNECT:
reset_ctx->conn_loss_counter = 0;
break;
+ case EV_RESET_ACK:
+ LOGPFSML(fi, LOGL_INFO, "Received a duplicated BSSMAP RESET ACK, ignoring\n");
+ break;
}
}
@@ -140,7 +143,7 @@ static struct osmo_fsm_state reset_fsm_states[] = {
.onenter = fsm_disc_onenter_cb,
},
[ST_CONN] = {
- .in_event_mask = (1 << EV_N_DISCONNECT) | (1 << EV_N_CONNECT),
+ .in_event_mask = (1 << EV_N_DISCONNECT) | (1 << EV_N_CONNECT) | (1 << EV_RESET_ACK),
.out_state_mask = (1 << ST_DISC) | (1 << ST_CONN),
.name = "CONN",
.action = fsm_conn_cb,