From 14e00f8f66faf0c1f551d1d5e4527c51177d6dc8 Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Fri, 27 Nov 2015 18:10:39 +0100 Subject: edge: Extend gprs_rlcmac_dl_tbf::handle by egprs_ms_class The multislot (MS) class and the EGPRS MS class can also be passed via BSSGP in an MS Radio Access Capability element which can optionally be contained in a DL-UNITDATA PDU. While this case is fully supported for GPRS, the EGPRS MS class in BSSGP messages is ignored. This commit extends gprs_rlcmac_dl_tbf::handle to pass the EGPRS MS class, too. Note, that the EGPRS class is not yet taken from the CSN.1 RA capability and is always set to 0. Note also, that append_data still uses ms_class only. Sponsored-by: On-Waves ehf --- src/gprs_bssgp_pcu.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/gprs_bssgp_pcu.cpp') 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) -- cgit v1.2.3