Fix mcs_is_valid(): UNKNOWN value is not a valid (M)CS
Also add a few more asserts to make sure a valid CS/MCS is passed in
some placed where we expect (M)CS to be set.
Change-Id: I0a973e10cd9477f72d8bd47a06048414b33ae96a
diff --git a/src/coding_scheme.c b/src/coding_scheme.c
index e39ed2b..27241d1 100644
--- a/src/coding_scheme.c
+++ b/src/coding_scheme.c
@@ -163,7 +163,7 @@
bool mcs_is_valid(enum CodingScheme cs)
{
- return UNKNOWN <= cs && cs <= MCS9;
+ return UNKNOWN < cs && cs <= MCS9;
}
bool mcs_is_compat_kind(enum CodingScheme cs, enum mcs_kind mode)
diff --git a/src/encoding.cpp b/src/encoding.cpp
index c6ec2e8..7f5da75 100644
--- a/src/encoding.cpp
+++ b/src/encoding.cpp
@@ -1692,6 +1692,7 @@
LOGP(DRLCMACDL, LOGL_ERROR, "%s data block encoding not implemented\n",
mcs_name(cs));
+ OSMO_ASSERT(mcs_is_valid(cs));
return AR_NEED_MORE_BLOCKS;
}
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 4f36025..8f56a8e 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -350,6 +350,7 @@
void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
enum CodingScheme cs, bool with_padding, const unsigned int spb)
{
+ OSMO_ASSERT(mcs_is_valid(cs));
return gprs_rlc_data_header_init(rlc, cs, with_padding,
num_data_header_bits_DL(mcs_header_type(cs)), spb);
}
@@ -357,6 +358,7 @@
void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
enum CodingScheme cs, bool with_padding)
{
+ OSMO_ASSERT(mcs_is_valid(cs));
/*
* last parameter is sent as 0 since common function used
* for both DL and UL