aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlc.cpp
diff options
context:
space:
mode:
authorAravind Sirsikar <arvind.sirsikar@radisys.com>2016-03-23 18:29:46 +0530
committerHarald Welte <laforge@gnumonks.org>2016-03-30 22:02:47 +0200
commita859a2180043759a762af0701a056e23e22f1d19 (patch)
treec03cf573c25bee6ce00be7361a9ed4acc3ff468e /src/rlc.cpp
parent7a05b039c835868eff34308d861edfeb28d1763b (diff)
Update CPS calculation with new data structures
Update existing CPS calculation function to align with new data structure introduced
Diffstat (limited to 'src/rlc.cpp')
-rw-r--r--src/rlc.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 0e16ee88..6ea15972 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -339,21 +339,32 @@ void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
rdbi->spb = 0;
}
-unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs, int punct, int punct2,
- int with_padding)
+unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs,
+ enum egprs_puncturing_values punct,
+ enum egprs_puncturing_values punct2, int with_padding)
{
switch (GprsCodingScheme::Scheme(cs)) {
- case GprsCodingScheme::MCS1: return 0b1011 + punct % 2;
- case GprsCodingScheme::MCS2: return 0b1001 + punct % 2;
+ case GprsCodingScheme::MCS1: return 0b1011 +
+ punct % EGPRS_MAX_PS_NUM_2;
+ case GprsCodingScheme::MCS2: return 0b1001 +
+ punct % EGPRS_MAX_PS_NUM_2;
case GprsCodingScheme::MCS3: return (with_padding ? 0b0110 : 0b0011) +
- punct % 3;
- case GprsCodingScheme::MCS4: return 0b0000 + punct % 3;
- case GprsCodingScheme::MCS5: return 0b100 + punct % 2;
+ punct % EGPRS_MAX_PS_NUM_3;
+ case GprsCodingScheme::MCS4: return 0b0000 +
+ punct % EGPRS_MAX_PS_NUM_3;
+ case GprsCodingScheme::MCS5: return 0b100 +
+ punct % EGPRS_MAX_PS_NUM_2;
case GprsCodingScheme::MCS6: return (with_padding ? 0b010 : 0b000) +
- punct % 2;
- case GprsCodingScheme::MCS7: return 0b10100 + 3 * (punct % 3) + punct2 % 3;
- case GprsCodingScheme::MCS8: return 0b01011 + 3 * (punct % 3) + punct2 % 3;
- case GprsCodingScheme::MCS9: return 0b00000 + 4 * (punct % 3) + punct2 % 3;
+ punct % EGPRS_MAX_PS_NUM_2;
+ case GprsCodingScheme::MCS7: return 0b10100 +
+ 3 * (punct % EGPRS_MAX_PS_NUM_3) +
+ punct2 % EGPRS_MAX_PS_NUM_3;
+ case GprsCodingScheme::MCS8: return 0b01011 +
+ 3 * (punct % EGPRS_MAX_PS_NUM_3) +
+ punct2 % EGPRS_MAX_PS_NUM_3;
+ case GprsCodingScheme::MCS9: return 0b00000 +
+ 4 * (punct % EGPRS_MAX_PS_NUM_3) +
+ punct2 % EGPRS_MAX_PS_NUM_3;
default: ;
}