daniel has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmocore/+/27609 )


Change subject: bssgp_bvc_fsm: Add a hook to notify when a reset was 
acknowledged
......................................................................

bssgp_bvc_fsm: Add a hook to notify when a reset was acknowledged

Change-Id: If240dd13f0f674693018c93390386b2c8afb97af
Related: SYS#5908
---
M TODO-RELEASE
M include/osmocom/gprs/bssgp_bvc_fsm.h
M src/gb/bssgp_bvc_fsm.c
3 files changed, 7 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/27609/1

diff --git a/TODO-RELEASE b/TODO-RELEASE
index 8902371..a6d16d2 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -9,3 +9,4 @@
 #library       what                    description / commit summary line
 libosmogsm      ABI BREAKAGE            CELL_IDENT_WHOLE_GLOBAL_PS changed 
enum number
 libosmogsm     add struct member       Add codec_list_bss_supported to 
gsm0808_handover_request_ack (more_items flag ensures ABI compat)
+libosmogb      ABI BREAKAGE            Add reset_ack_notification function 
pointer to struct bssgp_bvc_fsm_ops
diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h 
b/include/osmocom/gprs/bssgp_bvc_fsm.h
index 446dda8..9d3a620 100644
--- a/include/osmocom/gprs/bssgp_bvc_fsm.h
+++ b/include/osmocom/gprs/bssgp_bvc_fsm.h
@@ -40,6 +40,8 @@
        void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct 
gprs_ra_id *ra_id,
                                   uint16_t cell_id, uint8_t cause, void *priv);
        void (*rx_fc_bvc)(uint16_t nsei, uint16_t bvci, const struct 
bssgp2_flow_ctrl *fc, void *priv);
+       void (*reset_ack_notification)(uint16_t nsei, uint16_t bvci, const 
struct gprs_ra_id *ra_id,
+                                  uint16_t cell_id, uint8_t cause, void *priv);
 };

 struct osmo_fsm_inst *
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;
        }
 }

--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/27609
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: If240dd13f0f674693018c93390386b2c8afb97af
Gerrit-Change-Number: 27609
Gerrit-PatchSet: 1
Gerrit-Owner: daniel <[email protected]>
Gerrit-MessageType: newchange

Reply via email to