[PATCH] Introduction of new Header Types for FANR

Prasad.Kaup at radisys.com Prasad.Kaup at radisys.com
Tue Mar 8 06:21:31 UTC 2016


From: Aravind Sirsikar <Arvind.Sirsikar at radisys.com>

Defines new Header Type structures for FANR

Signed-off-by: Prasad Kaup <Prasad.Kaup at radisys.com>
---
 src/rlc.h | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 106 insertions(+), 3 deletions(-)

diff --git a/src/rlc.h b/src/rlc.h
index f7c5457..81332ce 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -363,9 +363,55 @@ struct gprs_rlc_dl_header_egprs_1 {
        uint8_t  bsn1_b;
 	uint8_t bsn1_c:1,
 		bsn2_a:7;
-
  	uint8_t	bsn2_b:3,
-		cps:5;	
+		cps:5;
+} __attribute__ ((packed));
+
+/* TS 44.060  10.3a.3.1.2 */
+struct gprs_rlc_dl_header_egprs_fanr_type1 {
+	uint8_t usf:3,
+		ces_p:3,
+		pani:1,
+		tfi_a:1;
+	uint8_t tfi_b:4,
+		pr:2,
+		bsn1_a:2;
+	uint8_t bsn1_b;
+	uint8_t bsn1_c:1,
+		bsn2_a:7;
+	uint8_t	bsn2_b:3,
+		cps:5;
+} __attribute__ ((packed));
+
+/* TS 44.060  10.3a.3.2.2 */
+struct gprs_rlc_dl_header_egprs_fanr_type2 {
+	uint8_t usf:3,
+		ces_p:3,
+		pani:1,
+		tfi_a:1;
+	uint8_t tfi_b:4,
+		pr:2,
+		bsn_a:2;
+       uint8_t  bsn_b;
+	uint8_t bsn_c:1,
+		cps:3,
+		dummy:4;
+} __attribute__ ((packed));
+
+/* TS 44.060  10.3a.3.3.2  */
+struct gprs_rlc_dl_header_egprs_fanr_type3 {
+	uint8_t usf:3,
+		ces_p:2,
+		pani:2,
+		tfi_a:1;
+	uint8_t tfi_b:4,
+		pr:2,
+		bsn_a:2;
+        uint8_t bsn_b;
+	uint8_t bsn_c:1,
+		cps:4,
+		spb:2,
+		dummy:1;
 } __attribute__ ((packed));
 
 struct rlc_li_field {
@@ -413,7 +459,7 @@ struct gprs_rlc_ul_header_egprs_2 {
 		dummy:3;
 } __attribute__ ((packed));
 
-
+/* TS 44.060 10.3a.4.1.1 */
 struct gprs_rlc_ul_header_egprs_1 {
 	uint8_t r:1,
 		si:1,
@@ -431,6 +477,63 @@ struct gprs_rlc_ul_header_egprs_1 {
 	uint8_t spare2:6,
 		dummy:2;
 } __attribute__ ((packed));
+
+/* TS 44.060 10.3a.4.1.2 */
+struct gprs_rlc_ul_header_egprs_fanr_type1 {
+	uint8_t r:1,
+		si:1,
+		cv:4,
+		tfi_a:2;
+	uint8_t tfi_b:3,
+		bsn1_a:5;
+	uint8_t bsn1_b:6,
+		bsn2_a:2;
+	uint8_t bsn2_b;
+	uint8_t cps:5,
+		rsb:1,
+		pi:1,
+		pani:1;
+	uint8_t spare2:6,
+		dummy:2;
+} __attribute__ ((packed));
+
+/* TS 44.060  10.3a.4.2.2 */
+struct gprs_rlc_ul_header_egprs_fanr_type2 {
+	uint8_t r:1,
+		si:1,
+		cv:4,
+		tfi_a:2;
+	uint8_t tfi_b:3,
+		bsn1_a:5;
+	uint8_t bsn1_b:6,
+		cps_a:2;
+	uint8_t cps_b:1,
+		rsb:1,
+		pi:1,
+		pani:1,
+		spare:4;
+	uint8_t spare1:5,
+		dummy:3;
+} __attribute__ ((packed));
+
+/* TS 44.060  10.3a.4.3.2 */
+struct gprs_rlc_ul_header_egprs_fanr_type3 {
+	uint8_t r:1,
+		si:1,
+		cv:4,
+		tfi_a:2;
+	uint8_t tfi_b:3,
+		bsn1_a:5;
+	uint8_t bsn1_b:6,
+		cps_a:2;
+	uint8_t cps_b:2,
+		spb:2,
+		rsb:1,
+		pi:1,
+		pani:1,
+		dummy:1;
+} __attribute__ ((packed));
+
 }
 
 inline bool gprs_rlc_v_b::is_state(int bsn, const gprs_rlc_dl_bsn_state type) const
-- 
2.1.4




More information about the osmocom-net-gprs mailing list