aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gprs_bssgp_pcu.cpp4
-rw-r--r--src/tbf.h3
-rw-r--r--src/tbf_dl.cpp6
3 files changed, 9 insertions, 4 deletions
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index cce184d5..a7391d92 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -148,6 +148,8 @@ static int gprs_bssgp_pcu_rx_dl_ud(struct msgb *msg, struct tlv_parsed *tp)
/* parse ms radio access capability */
uint8_t ms_class = parse_ra_cap_ms_class(tp);
+ /* TODO: Get the EGPRS class from the CSN.1 RA capability */
+ uint8_t egprs_ms_class = 0;
/* get lifetime */
uint16_t delay_csec = 0xffff;
@@ -179,7 +181,7 @@ static int gprs_bssgp_pcu_rx_dl_ud(struct msgb *msg, struct tlv_parsed *tp)
LOGP(DBSSGP, LOGL_INFO, "LLC [SGSN -> PCU] = TLLI: 0x%08x IMSI: %s len: %d\n", tlli, imsi, len);
return gprs_rlcmac_dl_tbf::handle(the_pcu.bts, tlli, tlli_old, imsi,
- ms_class, delay_csec, data, len);
+ ms_class, egprs_ms_class, delay_csec, data, len);
}
int gprs_bssgp_pcu_rx_paging_ps(struct msgb *msg, struct tlv_parsed *tp)
diff --git a/src/tbf.h b/src/tbf.h
index 9775397b..28359269 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -345,7 +345,8 @@ struct gprs_rlcmac_dl_tbf : public gprs_rlcmac_tbf {
static int handle(struct gprs_rlcmac_bts *bts,
const uint32_t tlli, const uint32_t old_tlli,
const char *imsi, const uint8_t ms_class,
- const uint16_t delay_csec, const uint8_t *data, const uint16_t len);
+ const uint8_t egprs_ms_class, const uint16_t delay_csec,
+ const uint8_t *data, const uint16_t len);
int append_data(const uint8_t ms_class,
const uint16_t pdu_delay_csec,
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index d07f3233..3993df3c 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -190,7 +190,8 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts,
*/
int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts,
const uint32_t tlli, const uint32_t tlli_old, const char *imsi,
- const uint8_t ms_class, const uint16_t delay_csec,
+ const uint8_t ms_class, const uint8_t egprs_ms_class,
+ const uint16_t delay_csec,
const uint8_t *data, const uint16_t len)
{
struct gprs_rlcmac_dl_tbf *dl_tbf = NULL;
@@ -237,11 +238,12 @@ int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts,
if (!dl_tbf) {
rc = tbf_new_dl_assignment(bts, imsi, tlli, tlli_old,
- ms_class, 0, &dl_tbf);
+ ms_class, egprs_ms_class, &dl_tbf);
if (rc < 0)
return rc;
}
+ /* TODO: ms_class vs. egprs_ms_class is not handled here */
rc = dl_tbf->append_data(ms_class, delay_csec, data, len);
dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF);
dl_tbf->assign_imsi(imsi);