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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22802 ) Change subject: Implement SystemInformation13 Rest Octets types ...................................................................... Implement SystemInformation13 Rest Octets types Related: SYS#5358 Change-Id: Id8845ebe28a9a6ed79d2d408dc7c1ad8a275b809 --- M bsc/BSC_Tests.ttcn M library/GSM_RestOctets.ttcn M library/GSM_SystemInformation.ttcn M library/RLCMAC_CSN1_Types.ttcn 4 files changed, 134 insertions(+), 6 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 52b4906..dc94b74 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -165,8 +165,7 @@ SI2quaterRestOctetsList si2quater optional, SystemInformationType3 si3 optional, SystemInformationType4 si4 optional, - /* TODO: replace with proper decoding of SI13, implement SI13 in GSM_SystemInformation.ttcn */ - octetstring si13 optional, + SystemInformationType13 si13 optional, SystemInformationType5 si5 optional, SystemInformationType5bis si5bis optional, SystemInformationType5ter si5ter optional, @@ -371,7 +370,44 @@ s := omit } }, - si13 := '9000185A6FC9E08410AB2B2B2B2B2B2B2B2B2B2B'O, + si13 := { + rest_octets := { + presence := '1'B, + bcch_change_mark := ?, + si_change_field := '0000'B, + presence2 := '0'B, + si13_change_mark := omit, + gprs_ma := omit, + zero := '0'B, /* PBCCH not present in cell */ + rac := 0, + spgc_ccch_sup := '0'B, + priority_access_thr := '110'B, + network_control_order := '00'B, + gprs_cell_opts := { + nmo := '01'B, + t3168 := '011'B, + t3192 := '010'B, + drx_timer_max := '011'B, + access_burst_type := '0'B, + control_ack_type := '1'B, + bs_cv_max := 15, + pan_presence := '1'B, + pan_dec := 1, + pan_inc := 1, + pan_max := '111'B, + ext_info_presence := ?, + ext_info_length := *, + ext_info := * + }, + gprs_pwr_ctrl_params := { + alpha := 0, + t_avg_w := '10000'B, + t_avg_t := '10000'B, + pc_meas_chan := '0'B, + n_avg_i := '1000'B + } + } + }, si5 := { bcch_freq_list := '10000000000000000000000000000000'O }, @@ -480,7 +516,7 @@ if (not isbound(data)) { si.si13 := omit; } else { - si.si13 := dec_SystemInformation(data).payload.other; + si.si13 := dec_SystemInformation(data).payload.si13; } } else { handled := false; diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index d47e510..9aa1217 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -15,6 +15,7 @@ import from General_Types all; import from Osmocom_Types all; +import from RLCMAC_CSN1_Types all; /* 10.5.2.33b SI 2quater Rest Octets */ type record SI2quaterRestOctets { @@ -692,6 +693,34 @@ variant "PADDING(yes), PADDING_PATTERN('00101011'B)" }; +/* 10.5.2.37b SI 13 Rest Octets (O & S) */ +type record SI13RestOctets { + BIT1 presence, // L/H + uint3_t bcch_change_mark, + BIT4 si_change_field, + BIT1 presence2, + BIT2 si13_change_mark optional, + GprsMobileAllocation gprs_ma optional, + BIT1 zero ('0'B), /* PBCCH not present in cell */ + uint8_t rac, + BIT1 spgc_ccch_sup, + BIT3 priority_access_thr, + BIT2 network_control_order, + GprsCellOptions gprs_cell_opts, + GprsPowerControlParameters gprs_pwr_ctrl_params + /* TODO: Additions in release 99 */ +} with { + + variant (presence) "CSN.1 L/H" + /* TODO: for all fields after presencte: variant (<field>) "PRESENCE(presence = '1'B)" */ + variant (si13_change_mark) "PRESENCE(presence2 = '1'B)" + variant (gprs_ma) "PRESENCE(presence2 = '1'B)" + + /* The TITAN's RAW encoder generates an octet-aligned octetstring, + * so we should make sure that unused bits contain proper padding. */ + variant "PADDING(yes), PADDING_PATTERN('00101011'B)" +}; + /* Selection Parameters */ type record SelectionParams { boolean cbq, @@ -777,6 +806,11 @@ external function dec_SI4RestOctets(in octetstring stream) return SI4RestOctets with { extension "prototype(convert) decode(RAW)" }; +external function enc_SI13RestOctets(in SI13RestOctets ro) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_SI13RestOctets(in octetstring stream) return SI13RestOctets + with { extension "prototype(convert) decode(RAW)" }; + /* Basic templates to be extended in place */ template (value) SI3RestOctets ts_SI3RestOctets := { diff --git a/library/GSM_SystemInformation.ttcn b/library/GSM_SystemInformation.ttcn index 85abb7f..0356e7d 100644 --- a/library/GSM_SystemInformation.ttcn +++ b/library/GSM_SystemInformation.ttcn @@ -196,6 +196,11 @@ RestOctets rest_octets length(0..7) } with { variant "" }; + /* 44.018 9.1.43a */ + type record SystemInformationType13 { + SI13RestOctets rest_octets + } with { variant "" }; + type union SystemInformationUnion { SystemInformationType1 si1, SystemInformationType2 si2, @@ -208,6 +213,7 @@ SystemInformationType5bis si5bis, SystemInformationType5ter si5ter, SystemInformationType6 si6, + SystemInformationType13 si13, octetstring other } with { variant "" }; @@ -225,6 +231,7 @@ si5bis, header.message_type = SYSTEM_INFORMATION_TYPE_5bis; si5ter, header.message_type = SYSTEM_INFORMATION_TYPE_5ter; si6, header.message_type = SYSTEM_INFORMATION_TYPE_6; + si13, header.message_type = SYSTEM_INFORMATION_TYPE_13; other, OTHERWISE; )" }; diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn index af8b8d6..0dd8a8b 100644 --- a/library/RLCMAC_CSN1_Types.ttcn +++ b/library/RLCMAC_CSN1_Types.ttcn @@ -929,7 +929,7 @@ }; type record FreqDirect1 { uint6_t maio, - GprsMobileAllication mobile_allocation + GprsMobileAllocation mobile_allocation } type record FreqDirect2 { uint6_t maio, @@ -953,6 +953,15 @@ variant (direct2) "PRESENCE(presence = '11'B)" }; + /* 12.9a GPRS Power Control Parameters */ + type record GprsPowerControlParameters { + uint4_t alpha, + BIT5 t_avg_w, + BIT5 t_avg_t, + BIT1 pc_meas_chan, + BIT4 n_avg_i + }; + /* 12.10 Global TFI */ type record GlobalTfi { boolean is_dl_tfi, @@ -967,7 +976,7 @@ } with { variant (rfl_number_list) "PRESENCE(presence = '1'B)" }; - type record GprsMobileAllication { + type record GprsMobileAllocation { uint6_t hsn, BIT1 rfl_number_list_present, RflNumberList rfl_number_list optional, @@ -1036,6 +1045,48 @@ variant (relative_k) "PRESENCE(presence = '1'B)" }; + /* 12.24 GPRS Cell Options */ + type record ExtensionInformation { + BIT1 egprs_supported, + BIT1 egprs_pkt_channel_req optional, + BIT4 bep_period optional, + BIT1 pfc_feature_mode, + BIT1 dtm_support, + BIT1 bss_paging_coordination, + /* REL-4 extension */ + BIT1 ccn_active optional, + BIT1 nw_ext_utbf optional + /* TODO: REL-6 extension */ + /* TODO: REL-7 extension */ + /* TODO: REL-10 extension */ + } with { + variant (egprs_pkt_channel_req) "PRESENCE(egprs_supported = '1'B)" + variant (bep_period) "PRESENCE(egprs_supported = '1'B)" + }; + type record GprsCellOptions { + BIT2 nmo, + BIT3 t3168, + BIT3 t3192, + BIT3 drx_timer_max, + BIT1 access_burst_type, + BIT1 control_ack_type, + uint4_t bs_cv_max, + BIT1 pan_presence, + uint3_t pan_dec optional, + uint3_t pan_inc optional, + BIT3 pan_max optional, + BIT1 ext_info_presence, + BIT6 ext_info_length optional, + ExtensionInformation ext_info optional + } with { + variant (pan_dec) "PRESENCE(pan_presence = '1'B)" + variant (pan_inc) "PRESENCE(pan_presence = '1'B)" + variant (pan_max) "PRESENCE(pan_presence = '1'B)" + variant (ext_info_length) "PRESENCE(ext_info_presence = '1'B)" + variant (ext_info) "PRESENCE(ext_info_presence = '1'B)" + /* TODO: mark REL-4 and upwards in ext_info as omit based on ext_info_length ? */ + }; + /* 3GPP TS 44.060, table 11.2.5a.2 "EGPRS PACKET CHANNEL REQUEST" */ type union EGPRSPktChRequest { EGPRSPktChRequest_MC5P2RB3 one_phase, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id8845ebe28a9a6ed79d2d408dc7c1ad8a275b809 Gerrit-Change-Number: 22802 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210218/dca67fab/attachment.htm>