Change in osmo-pcu[master]: Move blocks/bits size computation to C file

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Tue Feb 26 21:31:00 UTC 2019


Max has uploaded this change for review. ( https://gerrit.osmocom.org/13067


Change subject: Move blocks/bits size computation to C file
......................................................................

Move blocks/bits size computation to C file

Move functions which compute number of blocks or bits depending on
header type into C file to simplify further modifications and testing.

Change-Id: Id0873f85e1f16a72e17e7fbc4ad76b194917067f
---
M debian/copyright
M src/Makefile.am
A src/coding_scheme.c
M src/coding_scheme.h
M src/decoding.cpp
M src/encoding.cpp
M src/gprs_bssgp_pcu.cpp
M src/gprs_coding_scheme.cpp
M src/gprs_coding_scheme.h
M src/rlc.cpp
M src/tbf_dl.cpp
M tests/edge/EdgeTest.cpp
12 files changed, 125 insertions(+), 99 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/67/13067/1

diff --git a/debian/copyright b/debian/copyright
index 853cd6e..39e810c 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -13,6 +13,8 @@
 Files:     src/gprs_ms_storage.h
            src/gprs_ms_storage.cpp
            src/gprs_ms.h
+           src/coding_scheme.c
+           src/coding_scheme.h
            src/gprs_coding_scheme.cpp
            src/gprs_coding_scheme.h
            src/cxx_linuxlist.h
diff --git a/src/Makefile.am b/src/Makefile.am
index eb4a2bb..51b047e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -63,6 +63,7 @@
 	rlc.cpp \
 	osmobts_sock.cpp \
 	gprs_codel.c \
+	coding_scheme.c \
 	gprs_coding_scheme.cpp \
 	egprs_rlc_compression.cpp
 
diff --git a/src/coding_scheme.c b/src/coding_scheme.c
new file mode 100644
index 0000000..91ece40
--- /dev/null
+++ b/src/coding_scheme.c
@@ -0,0 +1,61 @@
+/* coding_scheme.c
+ *
+ * Copyright (C) 2019 by sysmocom s.f.m.c. GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#include <osmocom/core/utils.h>
+
+#include "coding_scheme.h"
+
+static struct {
+	struct {
+		uint8_t data_header_bits;
+	} uplink, downlink;
+	uint8_t data_block_header_bits;
+	uint8_t num_blocks;
+	const char *name;
+} hdr_type_info[NUM_HEADER_TYPES] = {
+	{ { 0 },         { 0 },         0, 0, "INVALID" },
+	{ { 1 * 8 + 0 }, { 1 * 8 + 0 }, 0, 0, "CONTROL" },
+	{ { 3 * 8 + 0 }, { 3 * 8 + 0 }, 0, 1, "GPRS_DATA" },
+	{ { 5 * 8 + 6 }, { 5 * 8 + 0 }, 2, 2, "EGPRS_DATA_TYPE1" },
+	{ { 4 * 8 + 5 }, { 3 * 8 + 4 }, 2, 1, "EGPRS_DATA_TYPE2" },
+	{ { 3 * 8 + 7 }, { 3 * 8 + 7 }, 2, 1, "EGPRS_DATA_TYPE3" },
+};
+
+uint8_t numDataBlocks(enum HeaderType ht)
+{
+	return hdr_type_info[ht].num_blocks;
+}
+
+uint8_t numDataHeaderBitsUL(enum HeaderType ht)
+{
+	return hdr_type_info[ht].uplink.data_header_bits;
+}
+
+uint8_t numDataHeaderBitsDL(enum HeaderType ht)
+{
+	return hdr_type_info[ht].downlink.data_header_bits;
+}
+
+uint8_t numDataBlockHeaderBits(enum HeaderType ht)
+{
+	return hdr_type_info[ht].data_block_header_bits;
+}
diff --git a/src/coding_scheme.h b/src/coding_scheme.h
index 3705ea4..b7093d1 100644
--- a/src/coding_scheme.h
+++ b/src/coding_scheme.h
@@ -27,3 +27,20 @@
 	MCS1, MCS2, MCS3, MCS4, MCS5, MCS6, MCS7, MCS8, MCS9,
 	NUM_SCHEMES
 };
+
+enum HeaderType {
+	HEADER_INVALID,
+	HEADER_GPRS_CONTROL,
+	HEADER_GPRS_DATA,
+	HEADER_EGPRS_DATA_TYPE_1,
+	HEADER_EGPRS_DATA_TYPE_2,
+	HEADER_EGPRS_DATA_TYPE_3,
+	NUM_HEADER_TYPES
+};
+
+enum HeaderType headerTypeData(enum CodingScheme mcs);
+
+uint8_t numDataBlocks(enum HeaderType ht);
+uint8_t numDataHeaderBitsUL(enum HeaderType ht);
+uint8_t numDataHeaderBitsDL(enum HeaderType ht);
+uint8_t numDataBlockHeaderBits(enum HeaderType ht);
diff --git a/src/decoding.cpp b/src/decoding.cpp
index 0dbb10a..3410291 100644
--- a/src/decoding.cpp
+++ b/src/decoding.cpp
@@ -355,16 +355,16 @@
 {
 	unsigned int cur_bit = 0;
 	switch(cs.headerTypeData()) {
-	case GprsCodingScheme::HEADER_GPRS_DATA :
+	case HEADER_GPRS_DATA :
 		cur_bit = rlc_parse_ul_data_header_gprs(rlc, data, cs);
 		break;
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3 :
+	case HEADER_EGPRS_DATA_TYPE_3 :
 		cur_bit = rlc_parse_ul_data_header_egprs_type_3(rlc, data, cs);
 		break;
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2 :
+	case HEADER_EGPRS_DATA_TYPE_2 :
 		cur_bit = rlc_parse_ul_data_header_egprs_type_2(rlc, data, cs);
 		break;
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1 :
+	case HEADER_EGPRS_DATA_TYPE_1 :
 		cur_bit = rlc_parse_ul_data_header_egprs_type_1(rlc, data, cs);
 		break;
 	default:
diff --git a/src/encoding.cpp b/src/encoding.cpp
index 4c8cdb0..4a57ce3 100644
--- a/src/encoding.cpp
+++ b/src/encoding.cpp
@@ -1104,7 +1104,7 @@
 	unsigned int bsn_delta;
 
 	switch(cs.headerTypeData()) {
-	case GprsCodingScheme::HEADER_GPRS_DATA:
+	case HEADER_GPRS_DATA:
 		gprs = static_cast<struct rlc_dl_header *>
 			((void *)data);
 
@@ -1120,7 +1120,7 @@
 		gprs->bsn   = rlc->block_info[0].bsn;
 		break;
 
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1:
+	case HEADER_EGPRS_DATA_TYPE_1:
 		egprs1 = static_cast<struct gprs_rlc_dl_header_egprs_1 *>
 			((void *)data);
 
@@ -1159,7 +1159,7 @@
 		data[offs] = (data[offs] & 0b11110011) | e_fbi_header;
 		break;
 
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2:
+	case HEADER_EGPRS_DATA_TYPE_2:
 		egprs2 = static_cast<struct gprs_rlc_dl_header_egprs_2 *>
 			((void *)data);
 
@@ -1183,7 +1183,7 @@
 		data[offs] = (data[offs] & 0b11001111) | e_fbi_header;
 		break;
 
-	case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3:
+	case HEADER_EGPRS_DATA_TYPE_3:
 		egprs3 = static_cast<struct gprs_rlc_dl_header_egprs_3 *>
 			((void *)data);
 
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index f63fac3..ae2ab7c 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -26,6 +26,7 @@
 #include <tbf.h>
 #include <gprs_coding_scheme.h>
 #include <pdch.h>
+#include "coding_scheme.h"
 
 #define BSSGP_TIMER_T1	30	/* Guards the (un)blocking procedures */
 #define BSSGP_TIMER_T2	30	/* Guards the reset procedure */
@@ -607,7 +608,7 @@
 
 static uint32_t gprs_bssgp_max_leak_rate(GprsCodingScheme cs, int num_pdch)
 {
-	int bytes_per_rlc_block = cs.maxDataBlockBytes() * cs.numDataBlocks();
+	int bytes_per_rlc_block = cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData());
 
 	/* n byte payload per 20ms */
 	return bytes_per_rlc_block * (1000 / 20) * num_pdch;
diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp
index 1231f0e..d7934ec 100644
--- a/src/gprs_coding_scheme.cpp
+++ b/src/gprs_coding_scheme.cpp
@@ -75,55 +75,39 @@
 	uint8_t data_bytes;
 	uint8_t optional_padding_bits;
 	const char *name;
-	GprsCodingScheme::HeaderType data_hdr;
+	enum HeaderType data_hdr;
 	GprsCodingScheme::Family family;
 } mcs_info[NUM_SCHEMES] = {
 	{{0, 0},   {0, 0},    0,  0, "UNKNOWN",
-		GprsCodingScheme::HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID},
+		HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID},
 	{{23, 0},  {23, 0},  20,  0, "CS-1",
-		GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
+		HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
 	{{33, 7},  {33, 7},  30,  0, "CS-2",
-		GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
+		HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
 	{{39, 3},  {39, 3},  36,  0, "CS-3",
-		GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
+		HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
 	{{53, 7},  {53, 7},  50,  0, "CS-4",
-		GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
+		HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID},
 
 	{{26, 1},  {26, 1},  22,  0, "MCS-1",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C},
+		HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C},
 	{{32, 1},  {32, 1},  28,  0, "MCS-2",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B},
+		HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B},
 	{{41, 1},  {41, 1},  37, 48, "MCS-3",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A},
+		HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A},
 	{{48, 1},  {48, 1},  44,  0, "MCS-4",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C},
+		HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C},
 
 	{{60, 7},  {59, 6},  56,  0, "MCS-5",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B},
+		HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B},
 	{{78, 7},  {77, 6},  74, 48, "MCS-6",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A},
+		HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A},
 	{{118, 2}, {117, 4}, 56,  0, "MCS-7",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B},
+		HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B},
 	{{142, 2}, {141, 4}, 68,  0, "MCS-8",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A},
+		HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A},
 	{{154, 2}, {153, 4}, 74,  0, "MCS-9",
-		GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A},
-};
-
-static struct {
-	struct {
-		uint8_t data_header_bits;
-	} uplink, downlink;
-	uint8_t data_block_header_bits;
-	uint8_t num_blocks;
-	const char *name;
-} hdr_type_info[GprsCodingScheme::NUM_HEADER_TYPES] = {
-	{{0},       {0},       0, 0, "INVALID"},
-	{{1*8 + 0}, {1*8 + 0}, 0, 0, "CONTROL"},
-	{{3*8 + 0}, {3*8 + 0}, 0, 1, "GPRS_DATA"},
-	{{5*8 + 6}, {5*8 + 0}, 2, 2, "EGPRS_DATA_TYPE1"},
-	{{4*8 + 5}, {3*8 + 4}, 2, 1, "EGPRS_DATA_TYPE2"},
-	{{3*8 + 7}, {3*8 + 7}, 2, 1, "EGPRS_DATA_TYPE3"},
+		HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A},
 };
 
 GprsCodingScheme GprsCodingScheme::getBySizeUL(unsigned size)
@@ -203,32 +187,12 @@
 	return mcs_info[m_scheme].optional_padding_bits;
 }
 
-uint8_t GprsCodingScheme::numDataBlocks() const
-{
-	return hdr_type_info[headerTypeData()].num_blocks;
-}
-
-uint8_t GprsCodingScheme::numDataHeaderBitsUL() const
-{
-	return hdr_type_info[headerTypeData()].uplink.data_header_bits;
-}
-
-uint8_t GprsCodingScheme::numDataHeaderBitsDL() const
-{
-	return hdr_type_info[headerTypeData()].downlink.data_header_bits;
-}
-
-uint8_t GprsCodingScheme::numDataBlockHeaderBits() const
-{
-	return hdr_type_info[headerTypeData()].data_block_header_bits;
-}
-
 const char *GprsCodingScheme::name() const
 {
 	return mcs_info[m_scheme].name;
 }
 
-GprsCodingScheme::HeaderType GprsCodingScheme::headerTypeData() const
+enum HeaderType GprsCodingScheme::headerTypeData() const
 {
 	return mcs_info[m_scheme].data_hdr;
 }
@@ -315,11 +279,6 @@
 	return family() == o.family();
 }
 
-bool GprsCodingScheme::isCombinable(GprsCodingScheme o) const
-{
-	return numDataBlocks() == o.numDataBlocks();
-}
-
 void GprsCodingScheme::decToSingleBlock(bool *needStuffing)
 {
 	switch (m_scheme) {
diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h
index 89054f5..8715f16 100644
--- a/src/gprs_coding_scheme.h
+++ b/src/gprs_coding_scheme.h
@@ -40,16 +40,6 @@
 		EGPRS,
 	};
 
-	enum HeaderType {
-		HEADER_INVALID,
-		HEADER_GPRS_CONTROL,
-		HEADER_GPRS_DATA,
-		HEADER_EGPRS_DATA_TYPE_1,
-		HEADER_EGPRS_DATA_TYPE_2,
-		HEADER_EGPRS_DATA_TYPE_3,
-		NUM_HEADER_TYPES
-	};
-
 	enum Family {
 		FAMILY_INVALID,
 		FAMILY_A,
@@ -74,7 +64,6 @@
 	bool isCompatible(Mode mode) const;
 	bool isCompatible(GprsCodingScheme o) const;
 	bool isFamilyCompatible(GprsCodingScheme o) const;
-	bool isCombinable(GprsCodingScheme o) const;
 
 	void inc(Mode mode);
 	void dec(Mode mode);
@@ -91,13 +80,9 @@
 	uint8_t spareBitsUL() const;
 	uint8_t spareBitsDL() const;
 	uint8_t maxDataBlockBytes() const;
-	uint8_t numDataBlocks() const;
-	uint8_t numDataHeaderBitsUL() const;
-	uint8_t numDataHeaderBitsDL() const;
-	uint8_t numDataBlockHeaderBits() const;
 	uint8_t optionalPaddingBits() const;
 	const char *name() const;
-	HeaderType headerTypeData() const;
+	enum HeaderType headerTypeData() const;
 	HeaderType headerTypeControl() const;
 	Family family() const;
 
@@ -142,7 +127,7 @@
 	return (isGprs() && o.isGprs()) || (isEgprs() && o.isEgprs());
 }
 
-inline GprsCodingScheme::HeaderType GprsCodingScheme::headerTypeControl() const
+inline enum HeaderType GprsCodingScheme::headerTypeControl() const
 {
 	return HEADER_GPRS_CONTROL;
 }
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 323fde4..b08ad48 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -336,7 +336,7 @@
 	rlc->es_p = 0;
 	rlc->rrbp = 0;
 	rlc->pr = 0;
-	rlc->num_data_blocks = cs.numDataBlocks();
+	rlc->num_data_blocks = numDataBlocks(cs.headerTypeData());
 	rlc->with_padding = with_padding;
 
 	OSMO_ASSERT(rlc->num_data_blocks <= ARRAY_SIZE(rlc->block_info));
@@ -347,7 +347,7 @@
 
 		rlc->data_offs_bits[i] =
 			header_bits + padding_bits +
-			(i+1) * cs.numDataBlockHeaderBits() +
+			(i+1) * numDataBlockHeaderBits(cs.headerTypeData()) +
 			i * 8 * rlc->block_info[0].data_len;
 	}
 }
@@ -356,7 +356,7 @@
 	GprsCodingScheme cs, bool with_padding, const unsigned int spb)
 {
 	return gprs_rlc_data_header_init(rlc, cs, with_padding,
-		cs.numDataHeaderBitsDL(), spb);
+					 numDataHeaderBitsDL(cs.headerTypeData()), spb);
 }
 
 void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
@@ -367,7 +367,7 @@
 	 * for both DL and UL
 	 */
 	return gprs_rlc_data_header_init(rlc, cs, with_padding,
-		cs.numDataHeaderBitsUL(), 0);
+					 numDataHeaderBitsUL(cs.headerTypeData()), 0);
 }
 
 void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 7b0052f..bebeb2a 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -457,7 +457,7 @@
 		bts->rlc_resent();
 	}
 
-	*may_combine = m_rlc.block(bsn)->cs_current_trans.numDataBlocks() > 1;
+	*may_combine = numDataBlocks(m_rlc.block(bsn)->cs_current_trans.headerTypeData()) > 1;
 
 	return bsn;
 }
@@ -1259,7 +1259,7 @@
 	 * MCS4: second segment starts at 44/2 = 22
 	 */
 	if (cs_current_trans.headerTypeData() ==
-			GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) {
+			HEADER_EGPRS_DATA_TYPE_3) {
 		if (*block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) {
 			switch (CodingScheme(cs_init)) {
 			case MCS6 :
@@ -1287,9 +1287,9 @@
 			}
 			return EGPRS_RESEG_SECOND_SEG_SENT;
 		} else if ((cs_init.headerTypeData() ==
-				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) ||
+				HEADER_EGPRS_DATA_TYPE_1) ||
 			(cs_init.headerTypeData() ==
-				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
+				HEADER_EGPRS_DATA_TYPE_2)) {
 			return EGPRS_RESEG_FIRST_SEG_SENT;
 		} else if ((CodingScheme(cs_init) ==
 					MCS4) &&
@@ -1327,7 +1327,7 @@
 
 	/* Table 10.4.8b.1 of 44.060 */
 	if (cs_current_trans.headerTypeData() ==
-			GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) {
+			HEADER_EGPRS_DATA_TYPE_3) {
 	/*
 	 * if we are sending the second segment the spb should be 3
 	 * other wise it should be 2
@@ -1338,9 +1338,9 @@
 			bts->spb_downlink_second_segment();
 			return EGPRS_RLCMAC_DL_SEC_SEG;
 		} else if ((cs_init.headerTypeData() ==
-				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) ||
+				HEADER_EGPRS_DATA_TYPE_1) ||
 			(cs_init.headerTypeData() ==
-				GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) {
+				HEADER_EGPRS_DATA_TYPE_2)) {
 			bts->spb_downlink_first_segment();
 			return EGPRS_RLCMAC_DL_FIRST_SEG;
 		} else if ((CodingScheme(cs_init) ==
diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp
index 9f19872..c381d99 100644
--- a/tests/edge/EdgeTest.cpp
+++ b/tests/edge/EdgeTest.cpp
@@ -71,8 +71,8 @@
 	OSMO_ASSERT(expected_size == cs.sizeDL());
 
 	/* Check data block sizes */
-	OSMO_ASSERT(cs.maxDataBlockBytes() * cs.numDataBlocks() < cs.maxBytesDL());
-	OSMO_ASSERT(cs.maxDataBlockBytes() * cs.numDataBlocks() < cs.maxBytesUL());
+	OSMO_ASSERT(cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData()) < cs.maxBytesDL());
+	OSMO_ASSERT(cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData()) < cs.maxBytesUL());
 
 	/* Check inc/dec */
 	new_cs = cs;
@@ -160,9 +160,9 @@
 
 		/* Check header types */
 		OSMO_ASSERT(current_cs.headerTypeData() ==
-			GprsCodingScheme::HEADER_GPRS_DATA);
+			HEADER_GPRS_DATA);
 		OSMO_ASSERT(current_cs.headerTypeControl() ==
-			GprsCodingScheme::HEADER_GPRS_CONTROL);
+			HEADER_GPRS_CONTROL);
 
 		check_coding_scheme(current_cs, GprsCodingScheme::GPRS);
 	}
@@ -1094,7 +1094,7 @@
 			test_block[cs.maxDataBlockBytes()-1] = pattern ^ 0xff;
 
 			for (block_idx = 0;
-				block_idx < cs.numDataBlocks();
+				block_idx < numDataBlocks(cs.headerTypeData());
 				block_idx++)
 			{
 				struct gprs_rlc_data_info rlc;

-- 
To view, visit https://gerrit.osmocom.org/13067
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id0873f85e1f16a72e17e7fbc4ad76b194917067f
Gerrit-Change-Number: 13067
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msuraev at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190226/8fab8318/attachment.htm>


More information about the gerrit-log mailing list