bssgp_bvc_fsm: Add a hook to notify when a reset was acknowledged
There are cases where we want to be notified of a successful BVC reset,
e.g. for a signalling because we can then start resetting the PtP-BVCs.
With this hook it's now possible to do that.
Change-Id: If240dd13f0f674693018c93390386b2c8afb97af
Related: SYS#5908
diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c
index 664ad09..3a36c7d 100644
--- a/src/gb/bssgp_bvc_fsm.c
+++ b/src/gb/bssgp_bvc_fsm.c
@@ -375,6 +375,7 @@
struct bvc_fsm_priv *bfp = fi->priv;
const struct tlv_parsed *tp = NULL;
struct msgb *rx = NULL, *tx;
+ uint8_t cause;
switch (event) {
case BSSGP_BVCFSM_E_RX_RESET:
@@ -385,6 +386,7 @@
/* fall-through */
case BSSGP_BVCFSM_E_RX_RESET_ACK:
rx = data;
+ cause = bfp->last_reset_cause;
tp = (const struct tlv_parsed *) msgb_bcid(rx);
if (bfp->bvci == 0)
update_negotiated_features(fi, tp);
@@ -398,6 +400,8 @@
osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1);
} else
osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0);
+ if (bfp->ops && bfp->ops->reset_ack_notification)
+ bfp->ops->reset_ack_notification(bfp->nsei, bfp->bvci, &bfp->ra_id, bfp->cell_id, cause, bfp->ops_priv);
break;
}
}