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
This commit is contained in:
Alexander Chemeris 2020-05-16 18:05:19 +03:00 committed by laforge
parent d3d03070e2
commit 7738b07f8c
1 changed files with 4 additions and 1 deletions

View File

@ -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,