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/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19082 ) Change subject: library/GSM_RestOctets: initial SI2quater Rest Octets definition ...................................................................... library/GSM_RestOctets: initial SI2quater Rest Octets definition Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718 Related: SYS#4870 --- M library/GSM_RestOctets.ttcn 1 file changed, 342 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/19082/1 diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index 531528c..73059de 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -1,7 +1,9 @@ /** * GSM Rest Octets definitions as per 3GPP TS 44.018. * + * (C) 2020 by sysmocom s.f.m.c. GmbH <info at sysmocom.de> * (C) 2020 Vadim Yanitskiy <axilirator at gmail.com> + * * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or @@ -15,6 +17,346 @@ import from General_Types all; import from Osmocom_Types all; +/* 10.5.2.33b SI 2quater Rest Octets */ +type record SI2quaterRestOctets { + BIT1 ba_ind, + BIT1 ba_3g_ind, + BIT1 mp_change_mark, + uint4_t si2quater_index, + uint4_t si2quater_count, + + /* Measurement Parameters Description */ + MeasParamsDescOpt meas_params_desc, + /* GPRS specific parameters */ + record { + GPRS_RealTimeDiffDescOpt rt_diff_desc, + GPRS_BSICDescOpt bsic_desc, + GPRS_ReportPrioDescOpt rep_prio_desc, + MeasParamsDescOpt meas_params_desc + } gprs, + /* NC Measurement Parameters Description */ + NCMeasParamsOpt nc_meas_params, + /* SI2quater Extension Information */ + SI2quaterExtInfoOpt ext_info, + + /* 3G Neighbour Cell Description */ + UTRAN_NeighDescOpt utran_neigh_desc, + /* 3G Measurement Parameters Description */ + UTRAN_MeasParamsDescOpt utran_meas_params_desc, + /* GPRS 3G Measurement Parameters Description */ + UTRAN_GPRSMeasParamsDescOpt utran_gprs_meas_params_desc, + + /* SI2quater Rel-{5,6,7,8,9,10} Additions (Matrioshka!) */ + SI2quaterAdditions rel_additions +} with { + /* 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)" +}; + +/* Measurement Parameters Description */ +private type record MeasParamsDesc { + BIT1 report_type, + BIT2 serving_band_reporting +} with { variant "" }; + +private type record MeasParamsDescOpt { + BIT1 presence, // 0/1 + MeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* GPRS Real Time Difference Description (not implemented) */ +private type record GPRS_RealTimeDiffDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_RealTimeDiffDesc desc optional +} with { variant "" }; + +/* GPRS BSIC Description (not implemented) */ +private type record GPRS_BSICDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_BSICDesc desc optional +} with { variant "" }; + +/* GPRS Report Priority Description (not implemented) */ +private type record GPRS_ReportPrioDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_ReportPrioDesc desc optional +} with { variant "" }; + +/* NC (Network Controlled?) Measurement Parameters */ +private type record NCMeasParams { + /* Network Control Order */ + BIT2 nco, + BIT1 p_presence, + NCMeasPeriods p optional +} with { + variant (p) "PRESENCE(p_presence = '1'B)" +}; + +/* NC Measurement Periods */ +private type record NCMeasPeriods { + BIT3 non_drx_period, + BIT3 rep_period_i, + BIT3 rep_period_t +} with { variant "" }; + +private type record NCMeasParamsOpt { + BIT1 presence, // 0/1 + NCMeasParams params optional +} with { + variant (params) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Extersion Information */ +private type record SI2quaterExtInfo { + uint8_t len, + CCNSupportDescOpt ccn_supp_desc optional, + bitstring padding /* Octet alignment? */ +} with { + variant (len) "LENGTHTO(ccn_supp_desc,padding) + 1" + variant (len) "UNIT(bits)" +}; + +private type record SI2quaterExtInfoOpt { + BIT1 presence, // 0/1 + SI2quaterExtInfo info optional +} with { + variant (info) "PRESENCE(presence = '1'B)" +}; + +/* CCN Support Description */ +private type record CCNSupportDesc { + uint7_t nr_of_cells, + bitstring ccn_supported +} with { + variant (nr_of_cells) "LENGTHTO(ccn_supported)" + variant (nr_of_cells) "UNIT(bits)" +}; + +private type record CCNSupportDescOpt { + BIT1 presence, // 0/1 + CCNSupportDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Neighbour Cell Description */ +private type record UTRAN_NeighDesc { + BIT1 idx_start_3g_presence, + uint7_t idx_start_3g optional, + BIT1 abs_idx_start_emr_presence, + uint7_t abs_idx_start_emr optional, + UTRAN_FDDDescOpt fdd_desc, + UTRAN_TDDDescOpt tdd_desc +} with { + variant (idx_start_3g) "PRESENCE(idx_start_3g_presence = '1'B)" + variant (abs_idx_start_emr) "PRESENCE(abs_idx_start_emr_presence = '1'B)" +}; + +private type record UTRAN_NeighDescOpt { + BIT1 presence, // 0/1 + UTRAN_NeighDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* UTRAN (3G) FDD/TDD Description (not implementaed). + * + * TODO: Repeated UTRAN FDD/TDD Neighbour Cells structure contains a variable length + * field, that needs to be computed using tables (see 9.1.54.1a and 9.1.54.1b) with + * magic numbers. This cannot be described uing TITAN's RAW codec attributes. */ +private type record UTRAN_FDDDescOpt { + BIT1 presence ('0'B) // 0/1 + // UTRAN_FDDDesc desc optional +} with { variant "" }; + +private type record UTRAN_TDDDescOpt { + BIT1 presence ('0'B) // 0/1 + // UTRAN_TDDDesc desc optional +} with { variant "" }; + +/* 3G Measurement Parameters Description (not implemented) */ +private type record UTRAN_MeasParamsDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: UTRAN_MeasParamsDesc desc optional +} with { variant "" }; + +/* GPRS 3G Measurement Parameters Description (not implemented) */ +private type record UTRAN_GPRSMeasParamsDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: UTRAN_GPRSMeasParamsDesc desc optional +} with { variant "" }; + +/* SI2quater Rel-{5,6,7,8,9,10} Additions */ +private type record SI2quaterAdditions { + BIT1 rel5_presence, // L/H + SI2quaterR5Additions rel5 optional +} with { + variant (rel5_presence) "CSN.1 L/H" + variant (rel5) "PRESENCE(rel5_presence = '1'B)" +}; + +/* SI2quater Rel-5 and Rel-{6,7,8,9,10} Additions */ +private type record SI2quaterR5Additions { + UMTS_AddMeasParamsDescOpt umts_add_meas_params_desc, + UMTS_AddMeasParamsDesc2Opt umts_add_meas_params_desc2, + BIT1 rel6_presence, // L/H + SI2quaterR6Additions rel6 optional +} with { + variant (rel6_presence) "CSN.1 L/H" + variant (rel6) "PRESENCE(rel6_presence = '1'B)" +}; + +/* 3G Additional Measurement Parameters Description */ +private type record UMTS_AddMeasParamsDesc { + BIT3 fdd_qmin_offset, + BIT4 fdd_rscpmin +} with { variant "" }; + +private type record UMTS_AddMeasParamsDescOpt { + BIT1 presence, // 0/1 + UMTS_AddMeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Additional Measurement Parameters Description 2 */ +private type record UMTS_AddMeasParamsDesc2 { + /* FDD Reporting Threshold 2 */ + BIT1 presence, // 0/1 + uint6_t threshold optional +} with { + variant (threshold) "PRESENCE(presence = '1'B)" +}; + +private type record UMTS_AddMeasParamsDesc2Opt { + BIT1 presence, // 0/1 + UMTS_AddMeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Rel-6 and Rel-{7,8,9,10} Additions */ +private type record SI2quaterR6Additions { + BIT1 umts_ccn_active, + BIT1 rel7_presence, // L/H + SI2quaterR7Additions rel7 optional +} with { + variant (rel7_presence) "CSN.1 L/H" + variant (rel7) "PRESENCE(rel7_presence = '1'B)" +}; + +/* SI2quater Rel-7 and Rel-{8,9,10} Additions */ +private type record SI2quaterR7Additions { + Rel7RepOffseThresholdOpt rep700, + Rel7RepOffseThresholdOpt rep810, + BIT1 rel8_presence, // L/H + SI2quaterR8Additions rel8 optional +} with { + variant (rel8_presence) "CSN.1 L/H" + variant (rel8) "PRESENCE(rel8_presence = '1'B)" +}; + +/* Additions in Rel-7: Reporting Offset & Threshold */ +private type record Rel7RepOffseThreshold { + BIT3 offset, + BIT3 threshold +} with { variant "" }; + +private type record Rel7RepOffseThresholdOpt { + BIT1 presence, // 0/1 + Rel7RepOffseThreshold val optional +} with { + variant (val) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Rel-8 and Rel-{9,10} Additions */ +private type record SI2quaterR8Additions { + Rel8PrioEUTRANParamsDescOpt prio_eutran_params_desc, + Rel8UTRANCSGDescOpt utran_csg_desc, + Rel8EUTRANCSGDescOpt eutran_csg_desc, + BIT1 rel9_presence // L/H + // TODO: SI2quaterR9Additions rel9 optional +} with { + variant (rel9_presence) "CSN.1 L/H" +}; + +/* Additions in Rel-8: Priority and E-UTRAN Parameters Description */ +private type record Rel8PrioEUTRANParamsDesc { + ServingCellPrioParamsDescOpt sc_prio_params_desc, + UTRANPrioParamsDescOpt utran_prio_params_desc, + EUTRANParamsDescOpt eutran_params_desc +} with { variant "" }; + +private type record Rel8PrioEUTRANParamsDescOpt { + BIT1 presence, // 0/1 + Rel8PrioEUTRANParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* Serving Cell Priority Parameters Description */ +private type record ServingCellPrioParamsDesc { + BIT3 geran_priority, + BIT4 thresh_priority_search, + BIT4 thresh_gsm_low, + BIT2 h_prio, + BIT2 t_reselection +} with { variant "" }; + +private type record ServingCellPrioParamsDescOpt { + BIT1 presence, // 0/1 + ServingCellPrioParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Priority Parameters Description (not implemented) */ +private type record UTRANPrioParamsDescOpt { + BIT1 presence // 0/1 + // TODO: UTRANPrioParamsDesc desc optional +} with { variant "" }; + +/* TODO: E-UTRAN Parameters Description */ +private type record EUTRANParamsDesc { + BIT1 ccn_active, + BIT1 e_start, + BIT1 e_stop + /* TODO: 0 | 1 << E-UTRAN Measurement Parameters Description >> */ + /* TODO: 0 | 1 << GPRS E-UTRAN Measurement Parameters Description >> */ + /* TODO: 1 << Repeated E-UTRAN Neighbour Cells >> ** 0 */ + /* TODO: 1 << Repeated E-UTRAN Not Allowed Cells >> ** 0 */ + /* TODO: 1 << Repeated E-UTRAN PCID to TA mapping >> ** 0 */ +} with { variant "" }; + +private type record EUTRANParamsDescOpt { + BIT1 presence, // 0/1 + EUTRANParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* Additions in Rel-8: 3G CSG Description (not implemented) */ +private type record Rel8UTRANCSGDescOpt { + BIT1 presence // 0/1 + // TODO: Rel8UTRANCSGDesc desc optional +} with { variant "" }; + +/* Additions in Rel-8: E-UTRAN CSG Description (not implemented) */ +private type record Rel8EUTRANCSGDescOpt { + BIT1 presence // 0/1 + // TODO: Rel8EUTRANCSGDesc desc optional +} with { variant "" }; + + +external function enc_SI2quaterRestOctets(in SI2quaterRestOctets ro) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_SI2quaterRestOctets(in octetstring stream) return SI2quaterRestOctets + with { extension "prototype(convert) decode(RAW)" }; + + /* 10.5.2.34 SI 3 Rest Octets */ type record SI3RestOctets { SelectionParamsOpt sel_params, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19082 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: I6a12c9ee12f8df8b4fc0976dd593152dc1195718 Gerrit-Change-Number: 19082 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200630/2e6e7a54/attachment.htm>