aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-16 18:05:19 +0300
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-16 18:05:19 +0300
commit56e151a589c465358cc6c2b205f707505e38c1d8 (patch)
tree1662a02cbcd3cfced279167bbbd2b17e5bbf6eff
parent62766a595d7d51f20a7de6fd2aa8686535101881 (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
-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,