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/.
Prasad.Kaup at radisys.com Prasad.Kaup at radisys.comFrom: 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