aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp <pmaier@sysmocom.de>2016-12-15 17:40:40 +0100
committerPhilipp <pmaier@sysmocom.de>2016-12-15 17:40:40 +0100
commit74cf9351db7997996b9b0b0886796c3aead712cd (patch)
treed9aeca5dc186d61e7281f02b157dc5716f5ee330
parent99237a0c3bf62e8d50756326e8ed891f8e3bc173 (diff)
pcu_sock: Avoid allowing MCS, when no GPRS is configured
The pcu sock interface excidantly tells the PCU that MCS coding schemes are enabled (allowed), even when no EGPRS is configured. With this commit sending the MCS flags will be explicitly avoided when EGPRS is not configured.
-rw-r--r--openbsc/src/libbsc/pcu_sock.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/openbsc/src/libbsc/pcu_sock.c b/openbsc/src/libbsc/pcu_sock.c
index 6fe94b779..011e3ca51 100644
--- a/openbsc/src/libbsc/pcu_sock.c
+++ b/openbsc/src/libbsc/pcu_sock.c
@@ -184,24 +184,26 @@ static int pcu_tx_info_ind(struct gsm_bts *bts)
info_ind->flags |= PCU_IF_FLAG_CS3;
if (rlcc->cs_mask & (1 << GPRS_CS4))
info_ind->flags |= PCU_IF_FLAG_CS4;
- if (rlcc->cs_mask & (1 << GPRS_MCS1))
- info_ind->flags |= PCU_IF_FLAG_MCS1;
- if (rlcc->cs_mask & (1 << GPRS_MCS2))
- info_ind->flags |= PCU_IF_FLAG_MCS2;
- if (rlcc->cs_mask & (1 << GPRS_MCS3))
- info_ind->flags |= PCU_IF_FLAG_MCS3;
- if (rlcc->cs_mask & (1 << GPRS_MCS4))
- info_ind->flags |= PCU_IF_FLAG_MCS4;
- if (rlcc->cs_mask & (1 << GPRS_MCS5))
- info_ind->flags |= PCU_IF_FLAG_MCS5;
- if (rlcc->cs_mask & (1 << GPRS_MCS6))
- info_ind->flags |= PCU_IF_FLAG_MCS6;
- if (rlcc->cs_mask & (1 << GPRS_MCS7))
- info_ind->flags |= PCU_IF_FLAG_MCS7;
- if (rlcc->cs_mask & (1 << GPRS_MCS8))
- info_ind->flags |= PCU_IF_FLAG_MCS8;
- if (rlcc->cs_mask & (1 << GPRS_MCS9))
- info_ind->flags |= PCU_IF_FLAG_MCS9;
+ if (bts->gprs.mode == BTS_GPRS_EGPRS) {
+ if (rlcc->cs_mask & (1 << GPRS_MCS1))
+ info_ind->flags |= PCU_IF_FLAG_MCS1;
+ if (rlcc->cs_mask & (1 << GPRS_MCS2))
+ info_ind->flags |= PCU_IF_FLAG_MCS2;
+ if (rlcc->cs_mask & (1 << GPRS_MCS3))
+ info_ind->flags |= PCU_IF_FLAG_MCS3;
+ if (rlcc->cs_mask & (1 << GPRS_MCS4))
+ info_ind->flags |= PCU_IF_FLAG_MCS4;
+ if (rlcc->cs_mask & (1 << GPRS_MCS5))
+ info_ind->flags |= PCU_IF_FLAG_MCS5;
+ if (rlcc->cs_mask & (1 << GPRS_MCS6))
+ info_ind->flags |= PCU_IF_FLAG_MCS6;
+ if (rlcc->cs_mask & (1 << GPRS_MCS7))
+ info_ind->flags |= PCU_IF_FLAG_MCS7;
+ if (rlcc->cs_mask & (1 << GPRS_MCS8))
+ info_ind->flags |= PCU_IF_FLAG_MCS8;
+ if (rlcc->cs_mask & (1 << GPRS_MCS9))
+ info_ind->flags |= PCU_IF_FLAG_MCS9;
+ }
#warning "isn't dl_tbf_ext wrong?: * 10 and no ntohs"
info_ind->dl_tbf_ext = rlcc->parameter[T_DL_TBF_EXT];
#warning "isn't ul_tbf_ext wrong?: * 10 and no ntohs"