aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-08-22 08:44:04 +0200
committerIvan Kluchnikov <kluchnikovi@gmail.com>2013-09-04 21:28:53 +0400
commit416ce695505891c1eade0616cbe4e0150100b195 (patch)
treede0596a77f30dce2a6b92d22b19b32f96367a906
parentc0f1644c880ff5c64f6c5d7ef95dfe1e80c9ffd6 (diff)
bssgp: Add callback UNITDATA.DL messaes with the data
-rw-r--r--src/gprs_bssgp_pcu.cpp3
-rw-r--r--src/gprs_bssgp_pcu.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index cc66290..6f67f52 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -1,6 +1,7 @@
/* gprs_bssgp_pcu.cpp
*
* 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
@@ -314,6 +315,8 @@ static int gprs_bssgp_pcu_rx_ptp(struct msgb *msg, struct tlv_parsed *tp, struct
switch (pdu_type) {
case BSSGP_PDUT_DL_UNITDATA:
LOGP(DBSSGP, LOGL_DEBUG, "RX: [SGSN->PCU] BSSGP_PDUT_DL_UNITDATA\n");
+ if (the_pcu.on_dl_unit_data)
+ the_pcu.on_dl_unit_data(&the_pcu, msg, tp);
gprs_bssgp_pcu_rx_dl_ud(msg, tp);
break;
case BSSGP_PDUT_PAGING_PS:
diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h
index 413c056..7156bf0 100644
--- a/src/gprs_bssgp_pcu.h
+++ b/src/gprs_bssgp_pcu.h
@@ -61,6 +61,10 @@ struct gprs_bssgp_pcu {
/* The BSSGP has been unblocked */
void (*on_unblock_ack)(struct gprs_bssgp_pcu *pcu);
+
+ /* When BSSGP data arrives. The msgb is not only for reference */
+ void (*on_dl_unit_data)(struct gprs_bssgp_pcu *pcu, struct msgb *msg,
+ struct tlv_parsed *tp);
};
struct gprs_bssgp_pcu *gprs_bssgp_create_and_connect(struct gprs_rlcmac_bts *bts,