sched: Use correct GMSTAP category for EGPRS DL data blocks

Change-Id: I3bd8b6a2328e13543b7d4c4a945e86f14ff35bda
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index 706fbb5..97806d9 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -273,7 +273,7 @@
 
 static struct msgb *sched_select_downlink(struct gprs_rlcmac_bts *bts,
 		    uint8_t trx, uint8_t ts, uint32_t fn,
-		    uint8_t block_nr, struct gprs_rlcmac_pdch *pdch)
+		    uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, bool *is_egprs)
 {
 	struct msgb *msg = NULL;
 	struct gprs_rlcmac_dl_tbf *tbf, *prio_tbf = NULL;
@@ -324,6 +324,7 @@
 		pdch->next_dl_tfi = (prio_tfi + 1) & 31;
 		/* generate DL data block */
 		msg = prio_tbf->create_dl_acked_block(fn, ts);
+		*is_egprs = prio_tbf->ms()->mode() != GPRS;
 	}
 
 	return msg;
@@ -362,9 +363,9 @@
 				      msg->len);
 		break;
 	case PCU_GSMTAP_C_DL_DATA_GPRS:
+	case PCU_GSMTAP_C_DL_DATA_EGPRS:
 		bts->bts->do_rate_ctr_inc(CTR_RLC_SENT);
-		/* FIXME: distinguish between GPRS and EGPRS */
-		bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_DATA_GPRS, false, trx, ts, GSMTAP_CHANNEL_PDTCH, fn, msg->data,
+		bts->bts->send_gsmtap(cat, false, trx, ts, GSMTAP_CHANNEL_PDTCH, fn, msg->data,
 				      msg->len);
 		break;
 	case PCU_GSMTAP_C_DL_DUMMY:
@@ -389,6 +390,7 @@
 	struct msgb *msg = NULL;
 	uint32_t poll_fn, sba_fn;
 	enum pcu_gsmtap_category gsmtap_cat;
+	bool is_egprs = false;
 
 	if (trx >= 8 || ts >= 8)
 		return -EINVAL;
@@ -431,8 +433,8 @@
 
 	/* Prio 2: select data message for downlink */
 	if (!msg) {
-		msg = sched_select_downlink(bts, trx, ts, fn, block_nr, pdch);
-		gsmtap_cat = PCU_GSMTAP_C_DL_DATA_GPRS;
+		msg = sched_select_downlink(bts, trx, ts, fn, block_nr, pdch, &is_egprs);
+		gsmtap_cat = is_egprs ? PCU_GSMTAP_C_DL_DATA_EGPRS : PCU_GSMTAP_C_DL_DATA_GPRS;
 	}
 
 	/* Prio 3: send dummy contol message */