diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gprs_bssgp_pcu.cpp | 4 | ||||
-rw-r--r-- | src/tbf.h | 3 | ||||
-rw-r--r-- | src/tbf_dl.cpp | 6 |
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) @@ -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); |