fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27479 )
Change subject: library/GSM_RestOctets: add partial definition of SI 6 Rest Octets ......................................................................
library/GSM_RestOctets: add partial definition of SI 6 Rest Octets
Change-Id: I5aeed4986820a71f761f21b57c87782d3000293f --- M library/GSM_RestOctets.ttcn M library/GSM_SystemInformation.ttcn 2 files changed, 55 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/79/27479/1
diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index 9aa1217..94dce04 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -693,6 +693,55 @@ variant "PADDING(yes), PADDING_PATTERN('00101011'B)" };
+/* 10.5.2.35a SI 6 Rest Octets */ +type record SI6RestOctets { + PchAndNchInfoOpt pch_nch_info, + VbsVgcsOptionsOpt vbs_vgcs_options, + BIT1 dtm_support, // L/H + uint8_t rac optional, + uint3_t max_lapdm optional, + BIT1 band_ind // L/H (DCS/PCS) + /* TODO: add more fields */ +} with { + variant (dtm_support) "CSN.1 L/H" + variant (rac) "PRESENCE(dtm_support = '1'B)" + variant (max_lapdm) "PRESENCE(dtm_support = '1'B)" + variant (band_ind) "CSN.1 L/H" + + /* 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)" +}; + +/* Optional PCH and NCH info: L | H < PCH and NCH info > */ +type record PchAndNchInfoOpt { + BIT1 presence, // L/H + PchAndNchInfo info optional +} with { + variant (presence) "CSN.1 L/H" + variant (info) "PRESENCE(presence = '1'B)" +}; + +/* PCH and NCH info */ +type record PchAndNchInfo { + BIT1 pag_chan_restruct, + uint2_t nln_sacch, + BIT1 call_prio_presence, + uint3_t call_prio optional, + BIT1 nln_status_sacch +} with { + variant (call_prio) "PRESENCE(call_prio_presence = '1'B)" +}; + +/* Optional VBS/VGCS options: L | H < VBS/VGCS options > */ +type record VbsVgcsOptionsOpt { + BIT1 presence, // L/H + BIT2 options optional +} with { + variant (presence) "CSN.1 L/H" + variant (options) "PRESENCE(presence = '1'B)" +}; + /* 10.5.2.37b SI 13 Rest Octets (O & S) */ type record SI13RestOctets { BIT1 presence, // L/H @@ -806,6 +855,11 @@ external function dec_SI4RestOctets(in octetstring stream) return SI4RestOctets with { extension "prototype(convert) decode(RAW)" };
+external function enc_SI6RestOctets(in SI4RestOctets ro) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_SI6RestOctets(in octetstring stream) return SI6RestOctets + 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 diff --git a/library/GSM_SystemInformation.ttcn b/library/GSM_SystemInformation.ttcn index 86ff817..53c36c8 100644 --- a/library/GSM_SystemInformation.ttcn +++ b/library/GSM_SystemInformation.ttcn @@ -193,7 +193,7 @@ LocationAreaIdentification lai, CellOptionsSacch cell_options, BIT8 ncc_permitted, - RestOctets rest_octets length(0..7) + SI6RestOctets rest_octets } with { variant "" };
/* 44.018 9.1.43a */