diff options
author | Philipp <pmaier@sysmocom.de> | 2016-12-15 17:40:40 +0100 |
---|---|---|
committer | Philipp <pmaier@sysmocom.de> | 2016-12-15 17:40:40 +0100 |
commit | 74cf9351db7997996b9b0b0886796c3aead712cd (patch) | |
tree | d9aeca5dc186d61e7281f02b157dc5716f5ee330 | |
parent | 99237a0c3bf62e8d50756326e8ed891f8e3bc173 (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.c | 38 |
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" |