[PATCH] osmo-pcu[master]: Add data structure to handle SPB for EGPRS 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/gerrit-log@lists.osmocom.org/.

arvind.sirsikar gerrit-no-reply at lists.osmocom.org
Tue Aug 16 09:08:04 UTC 2016


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/654

to look at the new patch set (#5).

Add data structure to handle SPB for EGPRS DL

Modify the header files with necessary data structure to handle
Split block for EGPRS DL TBF.

The EGPRS resegmentation feature allows PCU to retransmit
RLC blocks of HeaderType1, HeaderType2 by segmenting
them to 2 HeaderType3 blocks(Example MCS5 will be
retransmitted as 2 MCS2 blocks). Table 10.4.8b.2 of 44.060
explains the possible values of SPB in HeadrType3 for DL
direction. The PCU decides to retransmit the
blocks by resegmenting it based on Table 8.1.1.1 of 44.060.
The retransmission MCS is calculated based on current MCS of
the Block and demanded MCS by PCU. Section 10.3a.3.3 of 44.060
shows the HeadrType3 with SPB field present in it

Change-Id: I57673e53a9da2affa7e8aaa6551ac4b271c3d525
---
M src/bts.h
M src/rlc.h
2 files changed, 45 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/54/654/5

diff --git a/src/bts.h b/src/bts.h
index 807ce08..38896c8 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -186,6 +186,10 @@
 	uint8_t alpha, gamma;
 	uint8_t egprs_enabled;
 	uint32_t dl_tbf_idle_msec; /* hold time for idle DL TBFs */
+
+	/* 0 to support resegmentation in DL, 1 for no reseg */
+	uint8_t dl_arq_type;
+
 	uint32_t ms_idle_sec;
 	uint8_t cs_adj_enabled;
 	uint8_t cs_adj_upper_limit;
diff --git a/src/rlc.h b/src/rlc.h
index bf2d70a..c4acb98 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -84,6 +84,39 @@
 };
 
 /*
+ * EGPRS resegment status information for DL
+ * When only first segment is sent, bsn state
+ * will be set to EGPRS_RESEG_FIRST_SEG_SENT and when
+ * second segment is sent the state will be
+ * set to EGPRS_RESEG_SECOND_SEG_SENT.
+ * EGPRS_RESEG_DL_INVALID is set to 8 considering there is a scope for
+ * 3rd segment according to Table 10.4.8b.2 of 44.060
+ * The EGPRS resegmentation feature allows PCU to retransmit
+ * RLC blocks of HeaderType1, HeaderType2 by segmenting
+ * them to 2 HeaderType3 blocks(Example MCS5 will be
+ * retransmitted as 2 MCS2 blocks). Table 10.4.8b.2 of 44.060
+ * explains the possible values of SPB in HeadrType3 for DL
+ * direction.The PCU decides to retransmit the
+ * blocks by resegmenting it based on Table 8.1.1.1 of 44.060.
+ * The retransmission MCS is calculated based on current MCS of
+ * the Block and demanded MCS by PCU. Section 10.3a.3.3 of 44.060
+ * shows the HeadrType3 with SPB field present in it
+ */
+enum egprs_rlc_dl_reseg_bsn_state {
+	EGPRS_RESEG_DL_DEFAULT = 0,
+	EGPRS_RESEG_FIRST_SEG_SENT = 0x01,
+	EGPRS_RESEG_SECOND_SEG_SENT = 0x02,
+	EGPRS_RESEG_DL_INVALID = 0x08
+};
+
+/* Table 10.4.8b.2 of 44.060 */
+enum egprs_rlcmac_dl_spb_values {
+	EGPRS_RLCMAC_DL_NO_RETX = 0,
+	EGPRS_RLCMAC_DL_FIRST_SEG = 2,
+	EGPRS_RLCMAC_DL_SEC_SEG = 3,
+};
+
+/*
  * Valid puncturing scheme values
  * TS 44.060 10.4.8a.3.1, 10.4.8a.2.1, 10.4.8a.1.1
  */
@@ -140,10 +173,7 @@
 /* holds the current status of the block w.r.t UL/DL split blocks */
 union split_block_status {
 	egprs_rlc_ul_reseg_bsn_state block_status_ul;
-	/*
-	 * TODO: DL split block status need to be supported
-	 * for EGPRS DL
-	*/
+	egprs_rlc_dl_reseg_bsn_state block_status_dl;
 };
 
 struct gprs_rlc_data {
@@ -168,6 +198,13 @@
 	GprsCodingScheme cs_current_trans;
 	GprsCodingScheme cs_last;
 
+	/*
+	 * The MCS of initial transmission of a BSN
+	 * This variable is used for split block
+	 * processing in DL
+	 */
+	GprsCodingScheme cs_init;
+
 	/* puncturing scheme value to be used for next transmission*/
 	enum egprs_puncturing_values next_ps;
 

-- 
To view, visit https://gerrit.osmocom.org/654
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I57673e53a9da2affa7e8aaa6551ac4b271c3d525
Gerrit-PatchSet: 5
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Owner: arvind.sirsikar <arvind.sirsikar at radisys.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: arvind.sirsikar <arvind.sirsikar at radisys.com>



More information about the gerrit-log mailing list