[PATCH 1/3] Add data structure for CPS calculation in DL

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/osmocom-net-gprs@lists.osmocom.org/.

Aravind Sirsikar arvind.sirsikar at radisys.com
Wed Mar 23 12:59:45 UTC 2016


Define new data structure with respect to TS 44.060
10.4.8a.3.1, 10.4.8a.2.1, 10.4.8a.1.1 for puncturing scheme values
and initialize the variable introduced
---
 src/rlc.cpp |    3 +++
 src/rlc.h   |   24 ++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/rlc.cpp b/src/rlc.cpp
index 79d8f48..0e16ee8 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -33,6 +33,9 @@ uint8_t *gprs_rlc_data::prepare(size_t block_data_len)
 	memset(block, 0x0, sizeof(block));
 	memset(block, 0x2b, block_data_len);
 
+	/* Initial value of puncturing scheme */
+	next_ps = EGPRS_PS_1;
+
 	return block;
 }
 
diff --git a/src/rlc.h b/src/rlc.h
index 3f10f8c..19dccbe 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -56,6 +56,27 @@ enum gprs_rlc_dl_bsn_state {
 	GPRS_RLC_DL_BSN_MAX,
 };
 
+/*
+ * Valid puncturing scheme values
+ * TS 44.060 10.4.8a.3.1, 10.4.8a.2.1, 10.4.8a.1.1
+ */
+enum egprs_puncturing_values {
+	EGPRS_PS_1,
+	EGPRS_PS_2,
+	EGPRS_PS_3,
+	EGPRS_PS_INVALID,
+};
+
+/*
+ * EGPRS_MAX_PS_NUM_2 is valid for MCS 1,2,5,6.
+ * And EGPRS_MAX_PS_NUM_3 is valid for MCS 3,4,7,8,9
+ * TS 44.060 10.4.8a.3.1, 10.4.8a.2.1, 10.4.8a.1.1
+ */
+enum egprs_puncturing_types {
+	EGPRS_MAX_PS_NUM_2 = 2,
+	EGPRS_MAX_PS_NUM_3,
+	EGPRS_MAX_PS_NUM_INVALID,
+};
 
 static inline uint16_t mod_sns_half()
 {
@@ -100,6 +121,9 @@ struct gprs_rlc_data {
 
 	struct gprs_rlc_data_block_info block_info;
 	GprsCodingScheme cs;
+
+	/* puncturing scheme value to be used for next transmission*/
+	enum egprs_puncturing_values next_ps;
 };
 
 void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
-- 
1.7.9.5





More information about the osmocom-net-gprs mailing list