aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-08-22 08:40:33 +0200
committerIvan Kluchnikov <kluchnikovi@gmail.com>2013-09-04 21:28:53 +0400
commitc0f1644c880ff5c64f6c5d7ef95dfe1e80c9ffd6 (patch)
tree34253e7bde8109a56cfef844313b9c49f04538dd /src
parente8d9a5fa54a3c0ffac69a7e2f95fec20d2d2c29d (diff)
bssgp: Add callbacks for certain BSSGP events
Add a callback called when Unblock Ack is received. This can be used by a supervisor or the emulation test.
Diffstat (limited to 'src')
-rw-r--r--src/gprs_bssgp_pcu.cpp2
-rw-r--r--src/gprs_bssgp_pcu.h6
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index c332786f..cc662902 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -386,6 +386,8 @@ static int gprs_bssgp_pcu_rx_sign(struct msgb *msg, struct tlv_parsed *tp, struc
case BSSGP_PDUT_BVC_UNBLOCK_ACK:
LOGP(DBSSGP, LOGL_DEBUG, "rx BSSGP_PDUT_BVC_UNBLOCK_ACK\n");
the_pcu.bvc_unblocked = 1;
+ if (the_pcu.on_unblock_ack)
+ the_pcu.on_unblock_ack(&the_pcu);
bvc_timeout(NULL);
break;
case BSSGP_PDUT_SGSN_INVOKE_TRACE:
diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h
index 2d960329..413c0567 100644
--- a/src/gprs_bssgp_pcu.h
+++ b/src/gprs_bssgp_pcu.h
@@ -1,6 +1,7 @@
/* gprs_bssgp_pcu.h
*
* Copyright (C) 2012 Ivan Klyuchnikov
+ * Copyright (C) 2013 by Holger Hans Peter Freyther
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -55,6 +56,11 @@ struct gprs_bssgp_pcu {
int bvc_reset;
int bvc_unblocked;
int exit_on_destroy;
+
+ /** callbacks below */
+
+ /* The BSSGP has been unblocked */
+ void (*on_unblock_ack)(struct gprs_bssgp_pcu *pcu);
};
struct gprs_bssgp_pcu *gprs_bssgp_create_and_connect(struct gprs_rlcmac_bts *bts,