From 97678bf8ca73387fc0c3094d9e5a34bae08a4008 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 30 Jan 2024 10:38:31 -0800 Subject: [PATCH 1/5] lte-parser: add autogenerated parser for LTE RRC messages This crate's code is nearly entirely autogenerated using an ASN.1 parsing tool called hampi. The code in src/lte_rrc.rs shouldn't be manually modified, and should only be regenerated using hampi (or a similar tool). --- Cargo.lock | 512 +- Cargo.toml | 1 + lte-parser/Cargo.toml | 32 + lte-parser/README.md | 27 + .../specs/EUTRA-InterNodeDefinitions.asn | 670 + lte-parser/specs/EUTRA-RRC-Definitions.asn | 18149 ++++++ lte-parser/specs/EUTRA-Sidelink-Preconf.asn | 274 + lte-parser/specs/EUTRA-UE-Variables.asn | 240 + lte-parser/specs/PC5-RRC-Definitions.asn | 45 + lte-parser/src/lib.rs | 2 + lte-parser/src/lte_rrc.rs | 51188 ++++++++++++++++ lte-parser/tests/lte_rrc_test.rs | 17 + 12 files changed, 71140 insertions(+), 17 deletions(-) create mode 100644 lte-parser/Cargo.toml create mode 100644 lte-parser/README.md create mode 100644 lte-parser/specs/EUTRA-InterNodeDefinitions.asn create mode 100644 lte-parser/specs/EUTRA-RRC-Definitions.asn create mode 100644 lte-parser/specs/EUTRA-Sidelink-Preconf.asn create mode 100644 lte-parser/specs/EUTRA-UE-Variables.asn create mode 100644 lte-parser/specs/PC5-RRC-Definitions.asn create mode 100644 lte-parser/src/lib.rs create mode 100644 lte-parser/src/lte_rrc.rs create mode 100644 lte-parser/tests/lte_rrc_test.rs diff --git a/Cargo.lock b/Cargo.lock index de1bbff..2e935be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -59,6 +59,104 @@ dependencies = [ "libc", ] +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "asn1-codecs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4ed1fe0647213e739f7ea78f50d3d0f6f9bef7285f6d8672aaca8365decfc3" +dependencies = [ + "bitvec", + "log", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "asn1-compiler" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d056f38f3e98ffe9808e6a482d1527e4ded46e72b3dbe77305f5508e76c5f6" +dependencies = [ + "bitvec", + "clap", + "env_logger 0.10.2", + "heck", + "lazy_static", + "log", + "proc-macro2", + "quote", + "regex", + "topological-sort", +] + +[[package]] +name = "asn1_codecs_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "394acf8791d3d345ed71e2e820355c9f8ad4202a99b97e59fb7b6595b18f28cd" +dependencies = [ + "asn1-codecs", + "bitvec", + "log", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "async-trait" version = "0.1.77" @@ -70,6 +168,17 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -146,6 +255,15 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "basic-toml" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -166,6 +284,7 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", + "serde", "tap", "wyz", ] @@ -197,6 +316,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + [[package]] name = "cc" version = "1.0.83" @@ -227,6 +352,79 @@ dependencies = [ "windows-targets 0.52.0", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clap" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.0", +] + +[[package]] +name = "clap_derive" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -248,6 +446,73 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "darling" version = "0.14.4" @@ -268,7 +533,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 1.0.109", ] @@ -318,6 +583,25 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + [[package]] name = "env_logger" version = "0.10.2" @@ -432,6 +716,12 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "h2" version = "0.4.2" @@ -451,6 +741,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.14.3" @@ -461,12 +761,33 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + [[package]] name = "hermit-abi" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "http" version = "1.0.0" @@ -618,11 +939,20 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.4", "rustix", "windows-sys 0.52.0", ] +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -631,13 +961,19 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + [[package]] name = "libc" version = "0.2.153" @@ -678,6 +1014,22 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "lte-parser" +version = "0.1.0" +dependencies = [ + "asn1-codecs", + "asn1-compiler", + "asn1_codecs_derive", + "bitvec", + "criterion", + "env_logger 0.9.3", + "hex", + "log", + "serde", + "trybuild", +] + [[package]] name = "matchit" version = "0.7.3" @@ -741,7 +1093,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.4", "libc", ] @@ -760,6 +1112,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + [[package]] name = "parking_lot" version = "0.12.1" @@ -838,6 +1196,34 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +[[package]] +name = "plotters" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" + +[[package]] +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -908,7 +1294,7 @@ dependencies = [ "chrono", "crc", "deku", - "env_logger", + "env_logger 0.10.2", "libc", "log", "pcap-file", @@ -921,7 +1307,7 @@ version = "0.1.0" dependencies = [ "axum", "chrono", - "env_logger", + "env_logger 0.10.2", "futures-core", "futures-macro", "include_dir", @@ -936,6 +1322,26 @@ dependencies = [ "toml", ] +[[package]] +name = "rayon" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "rdrand" version = "0.4.0" @@ -1037,6 +1443,15 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -1152,6 +1567,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "syn" version = "1.0.109" @@ -1225,6 +1646,16 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "tokio" version = "1.35.1" @@ -1316,6 +1747,12 @@ dependencies = [ "winnow", ] +[[package]] +name = "topological-sort" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" + [[package]] name = "tower" version = "0.4.13" @@ -1364,6 +1801,21 @@ dependencies = [ "once_cell", ] +[[package]] +name = "trybuild" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f" +dependencies = [ + "basic-toml", + "glob", + "once_cell", + "serde", + "serde_derive", + "serde_json", + "termcolor", +] + [[package]] name = "unicase" version = "2.7.0" @@ -1379,6 +1831,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1391,6 +1849,16 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1399,9 +1867,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1409,9 +1877,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", @@ -1424,9 +1892,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1434,9 +1902,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", @@ -1447,9 +1915,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" + +[[package]] +name = "web-sys" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] name = "winapi" diff --git a/Cargo.toml b/Cargo.toml index 64bdc8e..268ffcc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,5 +5,6 @@ members = [ "bin", "serial", "rootshell", + "lte-parser", ] resolver = "2" diff --git a/lte-parser/Cargo.toml b/lte-parser/Cargo.toml new file mode 100644 index 0000000..8946dbf --- /dev/null +++ b/lte-parser/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "lte-parser" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +asn1-compiler = "0.6.1" +asn1-codecs = "0.6.1" +asn1_codecs_derive = "0.6.1" +serde = { version = "1.0" , features = ["derive"]} +trybuild = { version = "1.0" } +hex = { version = "0.4" } +bitvec = { version = "1.0" , features = ["serde"]} +log = { version = "0.4" } +criterion = { version = "0.5" , features = ["rayon"]} +env_logger = { version = "0.9" } + +[dependencies] +asn1-compiler = "0.6.1" +asn1-codecs = "0.6.1" +asn1_codecs_derive = "0.6.1" +bitvec = "1.0" +log = "0.4" + +[dev-dependencies] +asn1-compiler = "0.6.1" +asn1-codecs = "0.6.1" +asn1_codecs_derive = "0.6.1" +bitvec = "1.0" +log = "0.4" diff --git a/lte-parser/README.md b/lte-parser/README.md new file mode 100644 index 0000000..dbc4a17 --- /dev/null +++ b/lte-parser/README.md @@ -0,0 +1,27 @@ +# Autogenerated LTE-RRC packet parsing + +This crate contains [ASN.1](https://en.wikipedia.org/wiki/ASN.1) specs for LTE RRC message payloads, as well as autogenerated +Rust code for parsing these messages. We're using [hampi](https://github.com/ystero-dev/hampi/) as a parser generator, and it seems +3GPP protocols are encoded in the unaligned Packed Encoding Rules (or uPER) codec. + +## Generating the parser + +To install the hampi tools, run: + +``` +> cargo install asn1-compiler +``` + +To generate the parser, run: + +``` +> ampi-rs-asn1c --codec uper --module src/lte_rrc.rs -- specs/* +``` + +## Sourcing the ASN.1 files + +3GPP, who develops the standards for 4G (and all the other G's) publishes ASN.1 specs for their protocols in these horrific Microsoft Word docs (e.g. [here](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2440)). The ASN.1 blocks are denoted by `--ASN1START` and `--ASN1STOP` text, so extracting them automatically is possible using a script like [hampi's](https://github.com/ystero-dev/hampi/blob/master/examples/specs/parse_spec.py). Instead of doing this ourselves, we just sourced ours from [these](https://obj-sys.com/products/asn1apis/lte_3gpp_apis.php#lte_4g_apis). + +# TODO +* document how to use them??? maybe toplevel doc comments in lib.rs? +* implement proof of concept binary using this to parse QMDL, summarize the packets diff --git a/lte-parser/specs/EUTRA-InterNodeDefinitions.asn b/lte-parser/specs/EUTRA-InterNodeDefinitions.asn new file mode 100644 index 0000000..accfd1f --- /dev/null +++ b/lte-parser/specs/EUTRA-InterNodeDefinitions.asn @@ -0,0 +1,670 @@ +-- This file was generated by the Objective Systems ASN1C Compiler +-- (http://www.obj-sys.com). Version: 7.7.2, Date: 13-Oct-2023. + +EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +AntennaInfoCommon, AntennaInfoDedicated-v10i0, ARFCN-ValueEUTRA, + ARFCN-ValueEUTRA-v9e0, ARFCN-ValueEUTRA-r9, CellIdentity, C-RNTI, + DAPS-PowerCoordinationInfo-r16, DL-DCCH-Message, DRB-Identity, + DRB-ToReleaseList, DRB-ToReleaseList-r15, FreqBandIndicator-r11, + InDeviceCoexIndication-r11, LWA-Config-r13, MasterInformationBlock, maxBands + , maxFreq, maxDRB, maxDRBExt-r15, maxDRB-r15, maxSCell-r10, maxSCell-r13, + maxServCell-r10, maxServCell-r13, MBMSInterestIndication-r11, MeasConfig, + MeasGapConfig, MeasGapConfigPerCC-List-r14, MeasResultForRSSI-r13, + MeasResultListWLAN-r13, OtherConfig-r9, PhysCellId, P-Max, + PowerCoordinationInfo-r12, SidelinkUEInformation-r12, SL-CommConfig-r12, + SL-DiscConfig-r12, SubframeAssignment-r15, RadioResourceConfigDedicated, + RadioResourceConfigDedicated-v13c0, RadioResourceConfigDedicated-v1370, + RAN-NotificationAreaInfo-r15, RCLWI-Configuration-r13, RSRP-Range, + RSRQ-Range, RSRQ-Range-v1250, RS-SINR-Range-r13, SCellToAddModList-r10, + SCellToAddModList-v13c0, SCellToAddModListExt-r13, + SCellToAddModListExt-v13c0, SCG-ConfigPartSCG-r12, SCG-ConfigPartSCG-v12f0, + SCG-ConfigPartSCG-v13c0, SecurityAlgorithmConfig, SCellIndex-r10, + SCellIndex-r13, SCellToReleaseList-r10, SCellToReleaseListExt-r13, + ServCellIndex-r10, ServCellIndex-r13, ShortMAC-I, + MeasResultServFreqListNR-r15, MeasResultSSTD-r13, SL-V2X-ConfigDedicated-r14 + , SystemInformationBlockType1, SystemInformationBlockType1-v890-IEs, + SystemInformationBlockType2, TDM-PatternConfig-r15, + UEAssistanceInformation-r11, UECapabilityInformation, + UE-CapabilityRAT-ContainerList, UE-RadioPagingInfo-r12, + WLANConnectionStatusReport-r13, WLAN-OffloadConfig-r12 +FROM EUTRA-RRC-Definitions ; + +-- Productions + +Key-eNodeB-Star ::= BIT STRING (SIZE (256)) + +HandoverCommand-r8-IEs ::= SEQUENCE { + handoverCommandMessage [0] OCTET STRING (CONTAINING DL-DCCH-Message), + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +HandoverCommand ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + handoverCommand-r8 [0] HandoverCommand-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SCG-Config-v12i0b-IEs ::= SEQUENCE { + scg-RadioConfig-v12i0 [0] SCG-ConfigPartSCG-v12f0 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCG-Config-v13c0-IEs ::= SEQUENCE { + scg-RadioConfig-v13c0 [0] SCG-ConfigPartSCG-v13c0 OPTIONAL, +--Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCG-Config-v12i0a-IEs ::= SEQUENCE { +--Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension [0] OCTET STRING (CONTAINING SCG-Config-v12i0b-IEs) + OPTIONAL, + nonCriticalExtension [1] SCG-Config-v13c0-IEs OPTIONAL +} + +SCG-Config-r12-IEs ::= SEQUENCE { + scg-RadioConfig-r12 [0] SCG-ConfigPartSCG-r12 OPTIONAL, + nonCriticalExtension [1] SCG-Config-v12i0a-IEs OPTIONAL +} + +SCG-Config-r12 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + scg-Config-r12 [0] SCG-Config-r12-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +AS-ConfigNR-r15 ::= SEQUENCE { + sourceRB-ConfigNR-r15 [0] OCTET STRING OPTIONAL, + sourceRB-ConfigSN-NR-r15 [1] OCTET STRING OPTIONAL, + sourceOtherConfigSN-NR-r15 [2] OCTET STRING OPTIONAL +} + +AS-Config-v1550 ::= SEQUENCE { + tdm-PatternConfig-r15 [0] SEQUENCE { + subframeAssignment-r15 [0] SubframeAssignment-r15, + harq-Offset-r15 [1] INTEGER (0..9) + } OPTIONAL, + p-MaxEUTRA-r15 [1] P-Max OPTIONAL +} + +AS-ConfigNR-v1570 ::= SEQUENCE { + sourceSCG-ConfiguredNR-r15 [0] ENUMERATED { true(0) } +} + +AS-ConfigNR-v1620 ::= SEQUENCE { + tdm-PatternConfig2-r16 [0] EXPLICIT TDM-PatternConfig-r15 +} + +AS-Config ::= SEQUENCE { + sourceMeasConfig [0] MeasConfig, + sourceRadioResourceConfig [1] RadioResourceConfigDedicated, + sourceSecurityAlgorithmConfig [2] SecurityAlgorithmConfig, + sourceUE-Identity [3] C-RNTI, + sourceMasterInformationBlock [4] MasterInformationBlock, + sourceSystemInformationBlockType1 [5] SystemInformationBlockType1 ( + WITH COMPONENTS {..., nonCriticalExtension ABSENT}), + sourceSystemInformationBlockType2 [6] SystemInformationBlockType2, + antennaInfoCommon [7] AntennaInfoCommon, + sourceDl-CarrierFreq [8] ARFCN-ValueEUTRA, + ..., + [[ + sourceSystemInformationBlockType1Ext [9] OCTET STRING (CONTAINING + SystemInformationBlockType1-v890-IEs) OPTIONAL, + sourceOtherConfig-r9 [10] OtherConfig-r9 + ]], + [[ + sourceSCellConfigList-r10 [11] SCellToAddModList-r10 OPTIONAL + ]], + [[ + sourceConfigSCG-r12 [12] SCG-Config-r12 OPTIONAL + ]], + [[ + as-ConfigNR-r15 [13] AS-ConfigNR-r15 OPTIONAL + ]], + [[ + as-Config-v1550 [14] AS-Config-v1550 OPTIONAL + ]], + [[ + as-ConfigNR-v1570 [15] AS-ConfigNR-v1570 OPTIONAL + ]], + [[ + as-ConfigNR-v1620 [16] AS-ConfigNR-v1620 OPTIONAL + ]] +} + +CandidateCellInfo-r10 ::= SEQUENCE { +--cellIdentification + physCellId-r10 [0] PhysCellId, + dl-CarrierFreq-r10 [1] ARFCN-ValueEUTRA, +--available measurement results + rsrpResult-r10 [2] RSRP-Range OPTIONAL, + rsrqResult-r10 [3] RSRQ-Range OPTIONAL, + ..., + [[ + dl-CarrierFreq-v1090 [4] ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ + rsrqResult-v1250 [5] RSRQ-Range-v1250 OPTIONAL + ]], + [[ + rs-sinr-Result-r13 [6] RS-SINR-Range-r13 OPTIONAL + ]] +} + +CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10 + +RRM-Config ::= SEQUENCE { + ue-InactiveTime [0] ENUMERATED { s1(0), s2(1), s3(2), s5(3), s7(4), s10(5), + s15(6), s20(7), s25(8), s30(9), s40(10), s50(11), min1(12), min1s20c(13) + , min1s40(14), min2(15), min2s30(16), min3(17), min3s30(18), min4(19), + min5(20), min6(21), min7(22), min8(23), min9(24), min10(25), min12(26), + min14(27), min17(28), min20(29), min24(30), min28(31), min33(32), + min38(33), min44(34), min50(35), hr1(36), hr1min30(37), hr2(38), + hr2min30(39), hr3(40), hr3min30(41), hr4(42), hr5(43), hr6(44), hr8(45), + hr10(46), hr13(47), hr16(48), hr20(49), day1(50), day1hr12(51), day2(52) + , day2hr12(53), day3(54), day4(55), day5(56), day7(57), day10(58), + day14(59), day19(60), day24(61), day30(62), dayMoreThan30(63) } OPTIONAL, + ..., + [[ + candidateCellInfoList-r10 [1] CandidateCellInfoList-r10 OPTIONAL + ]], + [[ + candidateCellInfoListNR-r15 [2] MeasResultServFreqListNR-r15 OPTIONAL + ]] +} + +AdditionalReestabInfo ::= SEQUENCE { + cellIdentity [0] CellIdentity, + key-eNodeB-Star [1] Key-eNodeB-Star, + shortMAC-I [2] ShortMAC-I +} + +AdditionalReestabInfoList ::= SEQUENCE (SIZE (1..maxReestabInfo)) OF AdditionalReestabInfo + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId [0] PhysCellId, + targetCellShortMAC-I [1] ShortMAC-I, + additionalReestabInfoList [2] AdditionalReestabInfoList OPTIONAL, + ... +} + +AS-Context ::= SEQUENCE { + reestablishmentInfo [0] ReestablishmentInfo OPTIONAL -- Cond HO +} + +AS-Config-v10j0 ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 [0] AntennaInfoDedicated-v10i0 OPTIONAL +} + +AS-Config-v13c0 ::= SEQUENCE { + radioResourceConfigDedicated-v13c01 [0] RadioResourceConfigDedicated-v1370 + OPTIONAL, + radioResourceConfigDedicated-v13c02 [1] RadioResourceConfigDedicated-v13c0 + OPTIONAL, + sCellToAddModList-v13c0 [2] SCellToAddModList-v13c0 OPTIONAL, + sCellToAddModListExt-v13c0 [3] SCellToAddModListExt-v13c0 OPTIONAL +} + +HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE { + as-Config-v13c0 [0] AS-Config-v13c0 OPTIONAL, +--Following field is only for late non-critical extensions from REL-13 + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE { +--Following field is only for late non-critical extensions from REL-10 to REL-12 + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] HandoverPreparationInformation-v13c0-IEs OPTIONAL +} + +HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE { + as-Config-v10j0 [0] AS-Config-v10j0 OPTIONAL, + nonCriticalExtension [1] HandoverPreparationInformation-v10x0-IEs OPTIONAL +} + +-- Late non-critical extensions: +HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE { +--Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] HandoverPreparationInformation-v10j0-IEs OPTIONAL +} + +AS-Config-v9e0 ::= SEQUENCE { + sourceDl-CarrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 +} + +AS-Context-v1130 ::= SEQUENCE { + idc-Indication-r11 [0] OCTET STRING (CONTAINING InDeviceCoexIndication-r11) + OPTIONAL, -- Cond HO2 + mbmsInterestIndication-r11 [1] OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2 + ueAssistanceInformation-r11 [2] OCTET STRING (CONTAINING + UEAssistanceInformation-r11) OPTIONAL, + ..., + [[ + sidelinkUEInformation-r12 [3] OCTET STRING (CONTAINING + SidelinkUEInformation-r12) OPTIONAL + ]], + [[ + sourceContextEN-DC-r15 [4] OCTET STRING OPTIONAL + ]], + [[ + selectedbandCombinationInfoEN-DC-v1540 [5] OCTET STRING OPTIONAL + ]] +} + +AS-Config-v1250 ::= SEQUENCE { + sourceWlan-OffloadConfig-r12 [0] WLAN-OffloadConfig-r12 OPTIONAL, + sourceSL-CommConfig-r12 [1] SL-CommConfig-r12 OPTIONAL, + sourceSL-DiscConfig-r12 [2] SL-DiscConfig-r12 OPTIONAL +} + +AS-Config-v1320 ::= SEQUENCE { + sourceSCellConfigList-r13 [0] SCellToAddModListExt-r13 OPTIONAL, + sourceRCLWI-Configuration-r13 [1] EXPLICIT RCLWI-Configuration-r13 OPTIONAL +} + +AS-Context-v1320 ::= SEQUENCE { + wlanConnectionStatusReport-r13 [0] OCTET STRING (CONTAINING + WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2 +} + +AS-Config-v1430 ::= SEQUENCE { + sourceSL-V2X-CommConfig-r14 [0] SL-V2X-ConfigDedicated-r14 OPTIONAL, + sourceLWA-Config-r14 [1] LWA-Config-r13 OPTIONAL, + sourceWLAN-MeasResult-r14 [2] MeasResultListWLAN-r13 OPTIONAL +} + +ConfigRestrictInfoDAPS-r16 ::= SEQUENCE { + maxSCH-TB-BitsDL-r16 [0] INTEGER (1..100) OPTIONAL, -- Cond HO2 + maxSCH-TB-BitsUL-r16 [1] INTEGER (1..100) OPTIONAL -- Cond HO2 +} + +AS-Context-v1610 ::= SEQUENCE { + sidelinkUEInformationNR-r16 [0] OCTET STRING OPTIONAL, -- Cond HO3 + ueAssistanceInformationNR-r16 [1] OCTET STRING OPTIONAL, -- Cond HO3 + configRestrictInfoDAPS-r16 [2] ConfigRestrictInfoDAPS-r16 OPTIONAL -- Cond HO2 +} + +AS-Context-v1620 ::= SEQUENCE { + ueAssistanceInformationNR-SCG-r16 [0] OCTET STRING OPTIONAL -- Cond HO2 +} + +ConfigRestrictInfoDAPS-v1630 ::= SEQUENCE { + daps-PowerCoordinationInfo-r16 [0] DAPS-PowerCoordinationInfo-r16 OPTIONAL -- Cond HO2 +} + +AS-Context-v1630 ::= SEQUENCE { + configRestrictInfoDAPS-v1630 [0] ConfigRestrictInfoDAPS-v1630 OPTIONAL -- Cond HO2 +} + +AS-Config-v1700 ::= SEQUENCE { + scg-State-r17 [0] ENUMERATED { deactivated(0) } OPTIONAL +} + +HandoverPreparationInformation-v1700-IEs ::= SEQUENCE { + as-Config-v1700 [0] AS-Config-v1700 OPTIONAL, --Cond HO5 + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +HandoverPreparationInformation-v1630-IEs ::= SEQUENCE { + as-Context-v1630 [0] AS-Context-v1630 OPTIONAL, --Cond HO2 + nonCriticalExtension [1] HandoverPreparationInformation-v1700-IEs OPTIONAL +} + +HandoverPreparationInformation-v1620-IEs ::= SEQUENCE { + as-Context-v1620 [0] AS-Context-v1620 OPTIONAL, --Cond HO2 + nonCriticalExtension [1] HandoverPreparationInformation-v1630-IEs OPTIONAL +} + +HandoverPreparationInformation-v1610-IEs ::= SEQUENCE { + as-Context-v1610 [0] AS-Context-v1610 OPTIONAL, --Cond HO5 + nonCriticalExtension [1] HandoverPreparationInformation-v1620-IEs OPTIONAL +} + +HandoverPreparationInformation-v1540-IEs ::= SEQUENCE { + sourceRB-ConfigIntra5GC-r15 [0] OCTET STRING OPTIONAL, --Cond HO4 + nonCriticalExtension [1] HandoverPreparationInformation-v1610-IEs OPTIONAL +} + +HandoverPreparationInformation-v1530-IEs ::= SEQUENCE { + ran-NotificationAreaInfo-r15 [0] EXPLICIT RAN-NotificationAreaInfo-r15 + OPTIONAL, + nonCriticalExtension [1] HandoverPreparationInformation-v1540-IEs OPTIONAL +} + +HandoverPreparationInformation-v1430-IEs ::= SEQUENCE { + as-Config-v1430 [0] AS-Config-v1430 OPTIONAL, -- Cond HO2 + makeBeforeBreakReq-r14 [1] ENUMERATED { true(0) } OPTIONAL, -- Cond HO2 + nonCriticalExtension [2] HandoverPreparationInformation-v1530-IEs OPTIONAL +} + +HandoverPreparationInformation-v1320-IEs ::= SEQUENCE { + as-Config-v1320 [0] AS-Config-v1320 OPTIONAL, -- Cond HO2 + as-Context-v1320 [1] AS-Context-v1320 OPTIONAL, -- Cond HO2 + nonCriticalExtension [2] HandoverPreparationInformation-v1430-IEs OPTIONAL +} + +HandoverPreparationInformation-v1250-IEs ::= SEQUENCE { + ue-SupportedEARFCN-r12 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3 + as-Config-v1250 [1] AS-Config-v1250 OPTIONAL, -- Cond HO2 + nonCriticalExtension [2] HandoverPreparationInformation-v1320-IEs OPTIONAL +} + +HandoverPreparationInformation-v1130-IEs ::= SEQUENCE { + as-Context-v1130 [0] AS-Context-v1130 OPTIONAL, -- Cond HO2 + nonCriticalExtension [1] HandoverPreparationInformation-v1250-IEs OPTIONAL +} + +-- Regular non-critical extensions: +HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE { + as-Config-v9e0 [0] AS-Config-v9e0 OPTIONAL, -- Cond HO2 + nonCriticalExtension [1] HandoverPreparationInformation-v1130-IEs OPTIONAL +} + +HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + HandoverPreparationInformation-v9j0-IEs) OPTIONAL, + nonCriticalExtension [1] HandoverPreparationInformation-v9e0-IEs OPTIONAL +} + +HandoverPreparationInformation-v920-IEs ::= SEQUENCE { + ue-ConfigRelease-r9 [0] ENUMERATED { rel9(0), rel10(1), rel11(2), rel12(3), + v10j0(4), v11e0(5), v1280(6), rel13(7), ..., rel14(8), rel15(9), + rel16(10), rel17(11) } OPTIONAL, -- Cond HO2 + nonCriticalExtension [1] HandoverPreparationInformation-v9d0-IEs OPTIONAL +} + +HandoverPreparationInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo [0] UE-CapabilityRAT-ContainerList, + as-Config [1] AS-Config OPTIONAL, -- Cond HO + rrm-Config [2] RRM-Config OPTIONAL, + as-Context [3] AS-Context OPTIONAL, -- Cond HO + nonCriticalExtension [4] HandoverPreparationInformation-v920-IEs OPTIONAL +} + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + handoverPreparationInformation-r8 [0] + HandoverPreparationInformation-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SCG-ConfigRestrictInfo-r12 ::= SEQUENCE { + maxSCH-TB-BitsDL-r12 [0] INTEGER (1..100), + maxSCH-TB-BitsUL-r12 [1] INTEGER (1..100) +} + +MeasResultServCellSCG-r12 ::= SEQUENCE { + servCellId-r12 [0] ServCellIndex-r10, + measResultSCell-r12 [1] SEQUENCE { + rsrpResultSCell-r12 [0] RSRP-Range, + rsrqResultSCell-r12 [1] RSRQ-Range + }, + ..., + [[ + servCellId-r13 [2] ServCellIndex-r13 OPTIONAL, + measResultSCell-v1310 [3] SEQUENCE { + rs-sinr-ResultSCell-r13 [0] RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF + MeasResultServCellSCG-r12 + +DRB-InfoSCG-r12 ::= SEQUENCE { + eps-BearerIdentity-r12 [0] INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity-r12 [1] DRB-Identity, + drb-Type-r12 [2] ENUMERATED { split(0), scg(1) } OPTIONAL, + ... +} + +DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12 + +Cell-ToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 [0] SCellIndex-r10, + cellIdentification-r12 [1] SEQUENCE { + physCellId-r12 [0] PhysCellId, + dl-CarrierFreq-r12 [1] ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + measResultCellToAdd-r12 [2] SEQUENCE { + rsrpResult-r12 [0] RSRP-Range, + rsrqResult-r12 [1] RSRQ-Range + } OPTIONAL, + ..., + [[ + sCellIndex-r13 [3] SCellIndex-r13 OPTIONAL, + measResultCellToAdd-v1310 [4] SEQUENCE { + rs-sinr-Result-r13 [0] RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12 + +MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF + MeasResultServCellSCG-r12 + +SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12 + +MeasResultRSSI-SCG-r13 ::= SEQUENCE { + servCellId-r13 [0] ServCellIndex-r13, + measResultForRSSI-r13 [1] MeasResultForRSSI-r13 +} + +MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13 + +DRB-InfoListSCG-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-InfoSCG-r12 + +SCG-ConfigInfo-v1530-IEs ::= SEQUENCE { + drb-ToAddModListSCG-r15 [0] DRB-InfoListSCG-r15 OPTIONAL, + drb-ToReleaseListSCG-r15 [1] DRB-ToReleaseList-r15 OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +SCG-ConfigInfo-v1430-IEs ::= SEQUENCE { + makeBeforeBreakSCG-Req-r14 [0] ENUMERATED { true(0) } OPTIONAL, + measGapConfigPerCC-List [1] EXPLICIT MeasGapConfigPerCC-List-r14 OPTIONAL, + nonCriticalExtension [2] SCG-ConfigInfo-v1530-IEs OPTIONAL +} + +SCG-ConfigInfo-v1330-IEs ::= SEQUENCE { + measResultListRSSI-SCG-r13 [0] MeasResultListRSSI-SCG-r13 OPTIONAL, + nonCriticalExtension [1] SCG-ConfigInfo-v1430-IEs OPTIONAL +} + +SCG-ConfigInfo-v1310-IEs ::= SEQUENCE { + measResultSSTD-r13 [0] MeasResultSSTD-r13 OPTIONAL, + sCellToAddModListMCG-Ext-r13 [1] SCellToAddModListExt-r13 OPTIONAL, + measResultServCellListSCG-Ext-r13 [2] MeasResultServCellListSCG-Ext-r13 + OPTIONAL, + sCellToAddModListSCG-Ext-r13 [3] SCellToAddModListSCG-Ext-r13 OPTIONAL, + sCellToReleaseListSCG-Ext-r13 [4] SCellToReleaseListExt-r13 OPTIONAL, + nonCriticalExtension [5] SCG-ConfigInfo-v1330-IEs OPTIONAL +} + +SCG-ConfigInfo-r12-IEs ::= SEQUENCE { + radioResourceConfigDedMCG-r12 [0] RadioResourceConfigDedicated OPTIONAL, + sCellToAddModListMCG-r12 [1] SCellToAddModList-r10 OPTIONAL, + measGapConfig-r12 [2] EXPLICIT MeasGapConfig OPTIONAL, + powerCoordinationInfo-r12 [3] PowerCoordinationInfo-r12 OPTIONAL, + scg-RadioConfig-r12 [4] SCG-ConfigPartSCG-r12 OPTIONAL, + eutra-CapabilityInfo-r12 [5] OCTET STRING (CONTAINING + UECapabilityInformation) OPTIONAL, + scg-ConfigRestrictInfo-r12 [6] SCG-ConfigRestrictInfo-r12 OPTIONAL, + mbmsInterestIndication-r12 [7] OCTET STRING (CONTAINING + MBMSInterestIndication-r11) OPTIONAL, + measResultServCellListSCG-r12 [8] MeasResultServCellListSCG-r12 OPTIONAL, + drb-ToAddModListSCG-r12 [9] DRB-InfoListSCG-r12 OPTIONAL, + drb-ToReleaseListSCG-r12 [10] DRB-ToReleaseList OPTIONAL, + sCellToAddModListSCG-r12 [11] SCellToAddModListSCG-r12 OPTIONAL, + sCellToReleaseListSCG-r12 [12] SCellToReleaseList-r10 OPTIONAL, + p-Max-r12 [13] P-Max OPTIONAL, + nonCriticalExtension [14] SCG-ConfigInfo-v1310-IEs OPTIONAL +} + +SCG-ConfigInfo-r12 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + scg-ConfigInfo-r12 [0] SCG-ConfigInfo-r12-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UEPagingCoverageInformation-r13-IEs ::= SEQUENCE { + mpdcch-NumRepetition-r13 [0] INTEGER (1..256) OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UEPagingCoverageInformation ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + uePagingCoverageInformation-r13 [0] + UEPagingCoverageInformation-r13-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo [0] OCTET STRING (CONTAINING + UECapabilityInformation), + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueRadioAccessCapabilityInformation-r8 [0] + UERadioAccessCapabilityInformation-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UERadioPagingInformation-v1610-IEs ::= SEQUENCE { + accessStratumRelease-r16 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UERadioPagingInformation-v1310-IEs ::= SEQUENCE { + supportedBandListEUTRAForPaging-r13 [0] SEQUENCE (SIZE (1..maxBands)) OF + FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension [1] UERadioPagingInformation-v1610-IEs OPTIONAL +} + +UERadioPagingInformation-r12-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 [0] OCTET STRING (CONTAINING UE-RadioPagingInfo-r12), + nonCriticalExtension [1] UERadioPagingInformation-v1310-IEs OPTIONAL +} + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueRadioPagingInformation-r12 [0] UERadioPagingInformation-r12-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +-- Value assignments + +maxReestabInfo INTEGER ::= 32 + + +END diff --git a/lte-parser/specs/EUTRA-RRC-Definitions.asn b/lte-parser/specs/EUTRA-RRC-Definitions.asn new file mode 100644 index 0000000..063df0d --- /dev/null +++ b/lte-parser/specs/EUTRA-RRC-Definitions.asn @@ -0,0 +1,18149 @@ +-- This file was generated by the Objective Systems ASN1C Compiler +-- (http://www.obj-sys.com). Version: 7.7.2, Date: 13-Oct-2023. + +EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +-- Parameterized type assignments + +SetupRelease {ElementTypeParam} ::= CHOICE { + release NULL, + setup ElementTypeParam +} + +-- Productions + +PHICH-Config ::= SEQUENCE { + phich-Duration [0] ENUMERATED { normal(0), extended(1) }, + phich-Resource [1] ENUMERATED { oneSixth(0), half(1), one(2), two(3) } +} + +MasterInformationBlock ::= SEQUENCE { + dl-Bandwidth [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), n100(5) + }, + phich-Config [1] PHICH-Config, + systemFrameNumber [2] BIT STRING (SIZE (8)), + schedulingInfoSIB1-BR-r13 [3] INTEGER (0..31), + systemInfoUnchanged-BR-r15 [4] BOOLEAN, + partEARFCN-17 [5] EXPLICIT CHOICE { + spare [0] BIT STRING (SIZE (2)), + earfcn-LSB [1] BIT STRING (SIZE (2)) + }, + spare [6] BIT STRING (SIZE (1)) +} + +BCCH-BCH-MessageType ::= MasterInformationBlock + +MasterInformationBlock-MBMS-r14 ::= SEQUENCE { + dl-Bandwidth-MBMS-r14 [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4) + , n100(5) }, + systemFrameNumber-r14 [1] BIT STRING (SIZE (6)), + additionalNonMBSFNSubframes-r14 [2] INTEGER (0..3), + semiStaticCFI-MBMS-r16 [3] INTEGER (0..3), + spare [4] BIT STRING (SIZE (11)) +} + +BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14 + +IMSI-Digit ::= INTEGER (0..9) + +SCellGroupIndex-r15 ::= INTEGER (1..maxSCellGroups-r15) + +ReestablishmentCause ::= ENUMERATED { reconfigurationFailure(0), + handoverFailure(1), otherFailure(2), spare1(3) } + +ReleaseCause ::= ENUMERATED { loadBalancingTAUrequired(0), other(1), + cs-FallbackHighPriority-v1020(2), rrc-Suspend-v1320(3) } + +EstablishmentCause ::= ENUMERATED { emergency(0), highPriorityAccess(1), + mt-Access(2), mo-Signalling(3), mo-Data(4), delayTolerantAccess-v1020(5), + mo-VoiceCall-v1280(6), spare1(7) } + +EstablishmentCause-5GC-r15 ::= ENUMERATED { emergency(0), highPriorityAccess(1) + , mt-Access(2), mo-Signalling(3), mo-Data(4), mo-VoiceCall(5), spare2(6), + spare1(7) } + +ResumeCause ::= ENUMERATED { emergency(0), highPriorityAccess(1), mt-Access(2) + , mo-Signalling(3), mo-Data(4), delayTolerantAccess-v1020(5), + mo-VoiceCall-v1280(6), mt-EDT-v1610(7) } + +ResumeCause-r15 ::= ENUMERATED { emergency(0), highPriorityAccess(1), + mt-Access(2), mo-Signalling(3), mo-Data(4), rna-Update(5), mo-VoiceCall(6), + spare1(7) } + +SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24)) + +AC-BarringConfig ::= SEQUENCE { + ac-BarringFactor [0] ENUMERATED { p00(0), p05(1), p10(2), p15(3), p20(4), + p25(5), p30(6), p40(7), p50(8), p60(9), p70(10), p75(11), p80(12), + p85(13), p90(14), p95(15) }, + ac-BarringTime [1] ENUMERATED { s4(0), s8(1), s16(2), s32(3), s64(4), + s128(5), s256(6), s512(7) }, + ac-BarringForSpecialAC [2] BIT STRING (SIZE (5)) +} + +PowerRampingParameters ::= SEQUENCE { + powerRampingStep [0] ENUMERATED { dB0(0), dB2(1), dB4(2), dB6(3) }, + preambleInitialReceivedTargetPower [1] ENUMERATED { dBm-120(0), dBm-118(1), + dBm-116(2), dBm-114(3), dBm-112(4), dBm-110(5), dBm-108(6), dBm-106(7), + dBm-104(8), dBm-102(9), dBm-100(10), dBm-98(11), dBm-96(12), dBm-94(13), + dBm-92(14), dBm-90(15) } +} + +PreambleTransMax ::= ENUMERATED { n3(0), n4(1), n5(2), n6(3), n7(4), n8(5), + n10(6), n20(7), n50(8), n100(9), n200(10) } + +RACH-CE-LevelInfo-r13 ::= SEQUENCE { + preambleMappingInfo-r13 [0] SEQUENCE { + firstPreamble-r13 [0] INTEGER (0..63), + lastPreamble-r13 [1] INTEGER (0..63) + }, + ra-ResponseWindowSize-r13 [1] ENUMERATED { sf20(0), sf50(1), sf80(2), + sf120(3), sf180(4), sf240(5), sf320(6), sf400(7) }, + mac-ContentionResolutionTimer-r13 [2] ENUMERATED { sf80(0), sf100(1), + sf120(2), sf160(3), sf200(4), sf240(5), sf480(6), sf960(7) }, + rar-HoppingConfig-r13 [3] ENUMERATED { on(0), off(1) }, + ..., + [[ + edt-Parameters-r15 [4] SEQUENCE { + edt-LastPreamble-r15 [0] INTEGER (0..63), + edt-SmallTBS-Enabled-r15 [1] BOOLEAN, + edt-TBS-r15 [2] ENUMERATED { b328(0), b408(1), b504(2), b600(3), + b712(4), b808(5), b936(6), b1000or456(7) }, + mac-ContentionResolutionTimer-r15 [3] ENUMERATED { sf240(0), sf480(1) + , sf960(2), sf1920(3), sf3840(4), sf5760(5), sf7680(6), sf10240(7) + } OPTIONAL -- Need OP + } OPTIONAL + ]] +} + +RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13 + +RACH-ConfigCommon ::= SEQUENCE { + preambleInfo [0] SEQUENCE { + numberOfRA-Preambles [0] ENUMERATED { n4(0), n8(1), n12(2), n16(3), + n20(4), n24(5), n28(6), n32(7), n36(8), n40(9), n44(10), n48(11), + n52(12), n56(13), n60(14), n64(15) }, + preamblesGroupAConfig [1] SEQUENCE { + sizeOfRA-PreamblesGroupA [0] ENUMERATED { n4(0), n8(1), n12(2), n16(3) + , n20(4), n24(5), n28(6), n32(7), n36(8), n40(9), n44(10), n48(11) + , n52(12), n56(13), n60(14) }, + messageSizeGroupA [1] ENUMERATED { b56(0), b144(1), b208(2), b256(3) } + , + messagePowerOffsetGroupB [2] ENUMERATED { minusinfinity(0), dB0(1), + dB5(2), dB8(3), dB10(4), dB12(5), dB15(6), dB18(7) }, + ... + } OPTIONAL -- Need OP + }, + powerRampingParameters [1] PowerRampingParameters, + ra-SupervisionInfo [2] SEQUENCE { + preambleTransMax [0] PreambleTransMax, + ra-ResponseWindowSize [1] ENUMERATED { sf2(0), sf3(1), sf4(2), sf5(3), + sf6(4), sf7(5), sf8(6), sf10(7) }, + mac-ContentionResolutionTimer [2] ENUMERATED { sf8(0), sf16(1), sf24(2), + sf32(3), sf40(4), sf48(5), sf56(6), sf64(7) } + }, + maxHARQ-Msg3Tx [3] INTEGER (1..8), + ..., + [[ + preambleTransMax-CE-r13 [4] PreambleTransMax OPTIONAL, + rach-CE-LevelInfoList-r13 [5] RACH-CE-LevelInfoList-r13 OPTIONAL + ]], + [[ + edt-SmallTBS-Subset-r15 [6] ENUMERATED { true(0) } OPTIONAL + ]] +} + +BCCH-Config ::= SEQUENCE { + modificationPeriodCoeff [0] ENUMERATED { n2(0), n4(1), n8(2), n16(3) } +} + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle [0] ENUMERATED { rf32(0), rf64(1), rf128(2), rf256(3) }, + nB [1] ENUMERATED { fourT(0), twoT(1), oneT(2), halfT(3), quarterT(4), + oneEighthT(5), oneSixteenthT(6), oneThirtySecondT(7) } +} + +PRACH-ConfigInfo ::= SEQUENCE { + prach-ConfigIndex [0] INTEGER (0..63), + highSpeedFlag [1] BOOLEAN, + zeroCorrelationZoneConfig [2] INTEGER (0..15), + prach-FreqOffset [3] INTEGER (0..94) +} + +PRACH-ConfigSIB ::= SEQUENCE { + rootSequenceIndex [0] INTEGER (0..837), + prach-ConfigInfo [1] PRACH-ConfigInfo +} + +PDSCH-ConfigCommon ::= SEQUENCE { + referenceSignalPower [0] INTEGER (-60..50), + p-b [1] INTEGER (0..3) +} + +UL-ReferenceSignalsPUSCH ::= SEQUENCE { + groupHoppingEnabled [0] BOOLEAN, + groupAssignmentPUSCH [1] INTEGER (0..29), + sequenceHoppingEnabled [2] BOOLEAN, + cyclicShift [3] INTEGER (0..7) +} + +PUSCH-ConfigCommon ::= SEQUENCE { + pusch-ConfigBasic [0] SEQUENCE { + n-SB [0] INTEGER (1..4), + hoppingMode [1] ENUMERATED { interSubFrame(0), intraAndInterSubFrame(1) } + , + pusch-HoppingOffset [2] INTEGER (0..98), + enable64QAM [3] BOOLEAN + }, + ul-ReferenceSignalsPUSCH [1] UL-ReferenceSignalsPUSCH +} + +PUCCH-ConfigCommon ::= SEQUENCE { + deltaPUCCH-Shift [0] ENUMERATED { ds1(0), ds2(1), ds3(2) }, + nRB-CQI [1] INTEGER (0..98), + nCS-AN [2] INTEGER (0..7), + n1PUCCH-AN [3] INTEGER (0..2047) +} + +SoundingRS-UL-ConfigCommon ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-BandwidthConfig [0] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3), + bw4(4), bw5(5), bw6(6), bw7(7) }, + srs-SubframeConfig [1] ENUMERATED { sc0(0), sc1(1), sc2(2), sc3(3), + sc4(4), sc5(5), sc6(6), sc7(7), sc8(8), sc9(9), sc10(10), sc11(11), + sc12(12), sc13(13), sc14(14), sc15(15) }, + ackNackSRS-SimultaneousTransmission [2] BOOLEAN, + srs-MaxUpPts [3] ENUMERATED { true(0) } OPTIONAL -- Cond TDD + } +} + +Alpha-r12 ::= ENUMERATED { al0(0), al04(1), al05(2), al06(3), al07(4), al08(5) + , al09(6), al1(7) } + +DeltaFList-PUCCH ::= SEQUENCE { + deltaF-PUCCH-Format1 [0] ENUMERATED { deltaF-2(0), deltaF0(1), deltaF2(2) }, + deltaF-PUCCH-Format1b [1] ENUMERATED { deltaF1(0), deltaF3(1), deltaF5(2) }, + deltaF-PUCCH-Format2 [2] ENUMERATED { deltaF-2(0), deltaF0(1), deltaF1(2), + deltaF2(3) }, + deltaF-PUCCH-Format2a [3] ENUMERATED { deltaF-2(0), deltaF0(1), deltaF2(2) } + , + deltaF-PUCCH-Format2b [4] ENUMERATED { deltaF-2(0), deltaF0(1), deltaF2(2) } +} + +UplinkPowerControlCommon ::= SEQUENCE { + p0-NominalPUSCH [0] INTEGER (-126..24), + alpha [1] Alpha-r12, + p0-NominalPUCCH [2] INTEGER (-127..-96), + deltaFList-PUCCH [3] DeltaFList-PUCCH, + deltaPreambleMsg3 [4] INTEGER (-1..6) +} + +UL-CyclicPrefixLength ::= ENUMERATED { len1(0), len2(1) } + +UplinkPowerControlCommon-v1020 ::= SEQUENCE { + deltaF-PUCCH-Format3-r10 [0] ENUMERATED { deltaF-1(0), deltaF0(1), + deltaF1(2), deltaF2(3), deltaF3(4), deltaF4(5), deltaF5(6), deltaF6(7) }, + deltaF-PUCCH-Format1bCS-r10 [1] ENUMERATED { deltaF1(0), deltaF2(1), + spare2(2), spare1(3) } +} + +RACH-ConfigCommon-v1250 ::= SEQUENCE { + txFailParams-r12 [0] SEQUENCE { + connEstFailCount-r12 [0] ENUMERATED { n1(0), n2(1), n3(2), n4(3) }, + connEstFailOffsetValidity-r12 [1] ENUMERATED { s30(0), s60(1), s120(2), + s240(3), s300(4), s420(5), s600(6), s900(7) }, + connEstFailOffset-r12 [2] INTEGER (0..15) OPTIONAL -- Need OP + } +} + +PUSCH-ConfigCommon-v1270 ::= SEQUENCE { + enable64QAM-v1270 [0] ENUMERATED { true(0) } +} + +BCCH-Config-v1310 ::= SEQUENCE { + modificationPeriodCoeff-v1310 [0] ENUMERATED { n64(0) } +} + +PCCH-Config-v1310 ::= SEQUENCE { + paging-narrowBands-r13 [0] INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-Paging-r13 [1] ENUMERATED { r1(0), r2(1), r4(2), r8(3) + , r16(4), r32(5), r64(6), r128(7), r256(8) }, + nB-v1310 [2] ENUMERATED { one64thT(0), one128thT(1), one256thT(2) } OPTIONAL + -- Need OR +} + +FreqHoppingParameters-r13 ::= SEQUENCE { + dummy [0] ENUMERATED { nb2(0), nb4(1) } OPTIONAL, + dummy2 [1] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int1(0), int2(1), int4(2), int8(3) }, + interval-TDD-r13 [1] ENUMERATED { int1(0), int5(1), int10(2), int20(3) } + } OPTIONAL, + dummy3 [2] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int2(0), int4(1), int8(2), int16(3) }, + interval-TDD-r13 [1] ENUMERATED { int5(0), int10(1), int20(2), int40(3) } + } OPTIONAL, + interval-ULHoppingConfigCommonModeA-r13 [3] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int1(0), int2(1), int4(2), int8(3) }, + interval-TDD-r13 [1] ENUMERATED { int1(0), int5(1), int10(2), int20(3) } + } OPTIONAL, -- Cond MP-A + interval-ULHoppingConfigCommonModeB-r13 [4] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int2(0), int4(1), int8(2), int16(3) }, + interval-TDD-r13 [1] ENUMERATED { int5(0), int10(1), int20(2), int40(3) } + } OPTIONAL, -- Cond MP-B + dummy4 [5] INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL +} + +PDSCH-ConfigCommon-v1310 ::= SEQUENCE { + pdsch-maxNumRepetitionCEmodeA-r13 [0] ENUMERATED { r16(0), r32(1) } OPTIONAL + , -- Need OR + pdsch-maxNumRepetitionCEmodeB-r13 [1] ENUMERATED { r192(0), r256(1), r384(2) + , r512(3), r768(4), r1024(5), r1536(6), r2048(7) } OPTIONAL -- Need OR +} + +PUSCH-ConfigCommon-v1310 ::= SEQUENCE { + pusch-maxNumRepetitionCEmodeA-r13 [0] ENUMERATED { r8(0), r16(1), r32(2) } + OPTIONAL, -- Need OR + pusch-maxNumRepetitionCEmodeB-r13 [1] ENUMERATED { r192(0), r256(1), r384(2) + , r512(3), r768(4), r1024(5), r1536(6), r2048(7) } OPTIONAL, -- Need OR + pusch-HoppingOffset-v1310 [2] INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR +} + +RSRP-Range ::= INTEGER (0..97) + +RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE (1..3)) OF RSRP-Range + +PRACH-ParametersCE-r13 ::= SEQUENCE { + prach-ConfigIndex-r13 [0] INTEGER (0..63), + prach-FreqOffset-r13 [1] INTEGER (0..94), + prach-StartingSubframe-r13 [2] ENUMERATED { sf2(0), sf4(1), sf8(2), sf16(3) + , sf32(4), sf64(5), sf128(6), sf256(7) } OPTIONAL, -- Need OP + maxNumPreambleAttemptCE-r13 [3] ENUMERATED { n3(0), n4(1), n5(2), n6(3), + n7(4), n8(5), n10(6) } OPTIONAL, -- Need OP + numRepetitionPerPreambleAttempt-r13 [4] ENUMERATED { n1(0), n2(1), n4(2), + n8(3), n16(4), n32(5), n64(6), n128(7) }, + mpdcch-NarrowbandsToMonitor-r13 [5] SEQUENCE (SIZE (1..2)) OF INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-RA-r13 [6] ENUMERATED { r1(0), r2(1), r4(2), r8(3), + r16(4), r32(5), r64(6), r128(7), r256(8) }, + prach-HoppingConfig-r13 [7] ENUMERATED { on(0), off(1) } +} + +PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13 + +PRACH-ConfigSIB-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 [0] RSRP-ThresholdsPrachInfoList-r13, + mpdcch-startSF-CSS-RA-r13 [1] EXPLICIT CHOICE { + fdd-r13 [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), v4(4), v5(5) + , v8(6), v10(7) }, + tdd-r13 [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), v10(5), + v20(6), spare(7) } + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 [2] INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 [3] PRACH-ParametersListCE-r13 +} + +N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF INTEGER (0..2047) + +PUCCH-ConfigCommon-v1310 ::= SEQUENCE { + n1PUCCH-AN-InfoList-r13 [0] N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level0-r13 [1] ENUMERATED { n1(0), n2(1), n4(2), + n8(3) } OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level1-r13 [2] ENUMERATED { n1(0), n2(1), n4(2), + n8(3) } OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level2-r13 [3] ENUMERATED { n4(0), n8(1), n16(2) + , n32(3) } OPTIONAL, -- Need OR + pucch-NumRepetitionCE-Msg4-Level3-r13 [4] ENUMERATED { n4(0), n8(1), n16(2) + , n32(3) } OPTIONAL -- Need OR +} + +HighSpeedConfig-r14 ::= SEQUENCE { + highSpeedEnhancedMeasFlag-r14 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + highSpeedEnhancedDemodulationFlag-r14 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +PRACH-Config-v1430 ::= SEQUENCE { + rootSequenceIndexHighSpeed-r14 [0] INTEGER (0..837), + zeroCorrelationZoneConfigHighSpeed-r14 [1] INTEGER (0..12), + prach-ConfigIndexHighSpeed-r14 [2] INTEGER (0..63), + prach-FreqOffsetHighSpeed-r14 [3] INTEGER (0..94) +} + +PUCCH-ConfigCommon-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-Msg4-Level3-r14 [0] ENUMERATED { n64(0), n128(1) } + OPTIONAL -- Need OR +} + +EDT-PRACH-ParametersCE-r15 ::= SEQUENCE { + edt-PRACH-ParametersCE-r15 [0] SEQUENCE { + prach-ConfigIndex-r15 [0] INTEGER (0..63), + prach-FreqOffset-r15 [1] INTEGER (0..94), + prach-StartingSubframe-r15 [2] ENUMERATED { sf2(0), sf4(1), sf8(2), + sf16(3), sf32(4), sf64(5), sf128(6), sf256(7) } OPTIONAL, -- Need OP + mpdcch-NarrowbandsToMonitor-r15 [3] SEQUENCE (SIZE (1..2)) OF INTEGER (1..maxAvailNarrowBands-r13) + } OPTIONAL -- Need OR +} + +PRACH-ConfigSIB-v1530 ::= SEQUENCE { + edt-PRACH-ParametersListCE-r15 [0] SEQUENCE (SIZE (1..maxCE-Level-r13)) OF + EDT-PRACH-ParametersCE-r15 +} + +RSS-Config-r15 ::= SEQUENCE { + duration-r15 [0] ENUMERATED { sf8(0), sf16(1), sf32(2), sf40(3) }, + freqLocation-r15 [1] INTEGER (0..98), + periodicity-r15 [2] ENUMERATED { ms160(0), ms320(1), ms640(2), ms1280(3) }, + powerBoost-r15 [3] ENUMERATED { dB0(0), dB3(1), dB4dot8(2), dB6(3) }, + timeOffset-r15 [4] INTEGER (0..31) +} + +WUS-Config-r15 ::= SEQUENCE { + maxDurationFactor-r15 [0] ENUMERATED { one32th(0), one16th(1), one8th(2), + one4th(3) }, + numPOs-r15 [1] ENUMERATED { n1(0), n2(1), n4(2), spare1(3) } DEFAULT n1, + freqLocation-r15 [2] ENUMERATED { n0(0), n2(1), n4(2), spare1(3) }, + timeOffsetDRX-r15 [3] ENUMERATED { ms40(0), ms80(1), ms160(2), ms240(3) }, + timeOffset-eDRX-Short-r15 [4] ENUMERATED { ms40(0), ms80(1), ms160(2), + ms240(3) }, + timeOffset-eDRX-Long-r15 [5] ENUMERATED { ms1000(0), ms2000(1) } OPTIONAL -- Need OP +} + +HighSpeedConfig-v1530 ::= SEQUENCE { + highSpeedMeasGapCE-ModeA-r15 [0] ENUMERATED { true(0) } +} + +DeltaFList-SPUCCH-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + deltaF-slotSPUCCH-Format1-r15 [0] ENUMERATED { deltaF-1(0), deltaF0(1), + deltaF1(2), deltaF2(3), deltaF3(4), deltaF4(5), deltaF5(6), deltaF6(7) + } OPTIONAL, --Need OR + deltaF-slotSPUCCH-Format1a-r15 [1] ENUMERATED { deltaF1(0), deltaF2(1), + deltaF3(2), deltaF4(3), deltaF5(4), deltaF6(5), deltaF7(6), deltaF8(7) + } OPTIONAL, --Need OR + deltaF-slotSPUCCH-Format1b-r15 [2] ENUMERATED { deltaF3(0), deltaF4(1), + deltaF5(2), deltaF6(3), deltaF7(4), deltaF8(5), deltaF9(6), + deltaF10(7) } OPTIONAL, --Need OR + deltaF-slotSPUCCH-Format3-r15 [3] ENUMERATED { deltaF4(0), deltaF5(1), + deltaF6(2), deltaF7(3), deltaF8(4), deltaF9(5), deltaF10(6), + deltaF11(7) } OPTIONAL, --Need OR + deltaF-slotSPUCCH-RM-Format4-r15 [4] ENUMERATED { deltaF13(0), + deltaF14(1), deltaF15(2), deltaF16(3), deltaF17(4), deltaF18(5), + deltaF19(6), deltaF20(7) } OPTIONAL, +--Need OR + deltaF-slotSPUCCH-TBCC-Format4-r15 [5] ENUMERATED { deltaF10(0), + deltaF11(1), deltaF12(2), deltaF13(3), deltaF14(4), deltaF15(5), + deltaF16(6), deltaF17(7) } OPTIONAL, +--Need OR + deltaF-subslotSPUCCH-Format1and1a-r15 [6] ENUMERATED { deltaF5(0), + deltaF6(1), deltaF7(2), deltaF8(3), deltaF9(4), deltaF10(5), + deltaF11(6), deltaF12(7) } OPTIONAL, +--Need OR + deltaF-subslotSPUCCH-Format1b-r15 [7] ENUMERATED { deltaF6(0), deltaF7(1) + , deltaF8(2), deltaF9(3), deltaF10(4), deltaF11(5), deltaF12(6), + deltaF13(7) } OPTIONAL, +--Need OR + deltaF-subslotSPUCCH-RM-Format4-r15 [8] ENUMERATED { deltaF15(0), + deltaF16(1), deltaF17(2), deltaF18(3), deltaF19(4), deltaF20(5), + deltaF21(6), deltaF22(7) } OPTIONAL, +--Need OR + deltaF-subslotSPUCCH-TBCC-Format4-r15 [9] ENUMERATED { deltaF10(0), + deltaF11(1), deltaF12(2), deltaF13(3), deltaF14(4), deltaF15(5), + deltaF16(6), deltaF17(7) } OPTIONAL, + ... + } +} + +UplinkPowerControlCommon-v1530 ::= SEQUENCE { + deltaFList-SPUCCH-r15 [0] EXPLICIT DeltaFList-SPUCCH-r15 +} + +WUS-Config-v1560 ::= SEQUENCE { + powerBoost-r15 [0] ENUMERATED { dB0(0), dB1dot8(1), dB3(2), dB4dot8(3) } +} + +WUS-Config-v1610 ::= SEQUENCE { + numDRX-CyclesRelaxed-r16 [0] ENUMERATED { n1(0), n2(1), n4(2), n8(3) } +} + +HighSpeedConfig-v1610 ::= SEQUENCE { + highSpeedEnhMeasFlag2-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + highSpeedEnhDemodFlag2-r16 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +CRS-ChEstMPDCCH-ConfigCommon-r16 ::= SEQUENCE { + powerRatio-r16 [0] ENUMERATED { dB-4dot77(0), dB-3(1), dB-1dot77(2), dB0(3) + , dB1(4), dB2(5), dB3(6), dB4dot77(7) } +} + +GWUS-TimeParameters-r16 ::= SEQUENCE { + maxDurationFactor-r16 [0] ENUMERATED { one32th(0), one16th(1), one8th(2), + one4th(3) }, + numPOs-r16 [1] ENUMERATED { n1(0), n2(1), n4(2), spare1(3) } DEFAULT n1, + timeOffsetDRX-r16 [2] ENUMERATED { ms40(0), ms80(1), ms160(2), ms240(3) }, + timeOffset-eDRX-Short-r16 [3] ENUMERATED { ms40(0), ms80(1), ms160(2), + ms240(3) }, + timeOffset-eDRX-Long-r16 [4] ENUMERATED { ms1000(0), ms2000(1) } OPTIONAL, -- Need OP + numDRX-CyclesRelaxed-r16 [5] ENUMERATED { n1(0), n2(1), n4(2), n8(3) } + OPTIONAL, -- Need OR + powerBoost-r16 [6] ENUMERATED { dB0(0), dB1dot8(1), dB3(2), dB4dot8(3) } + OPTIONAL, + ... +} + +GWUS-NumGroups-r16 ::= ENUMERATED { n1(0), n2(1), n4(2), n8(3) } + +GWUS-NumGroupsList-r16 ::= SEQUENCE (SIZE (1..maxGWUS-Resources-r16)) OF GWUS-NumGroups-r16 + +GWUS-GroupsForServiceList-r16 ::= SEQUENCE (SIZE (1..maxGWUS-ProbThresholds-r16)) OF INTEGER (1..maxGWUS-Groups-1-r16) + +GWUS-ResourceConfig-r16 ::= SEQUENCE { + resourceMappingPattern-r16 [0] EXPLICIT CHOICE { + resourceLocationWithWUS [0] ENUMERATED { primary(0), secondary(1), + primary3FDM(2) }, + resourceLocationWithoutWUS [1] ENUMERATED { n0(0), n2(1) } + }, + numGroupsList-r16 [1] GWUS-NumGroupsList-r16 OPTIONAL, -- Need OP + groupsForServiceList-r16 [2] GWUS-GroupsForServiceList-r16 OPTIONAL -- Cond ProbabilityBased +} + +GWUS-PagingProbThresh-r16 ::= ENUMERATED { p20(0), p30(1), p40(2), p50(3), + p60(4), p70(5), p80(6), p90(7) } + +GWUS-ProbThreshList-r16 ::= SEQUENCE (SIZE (1..maxGWUS-ProbThresholds-r16)) OF GWUS-PagingProbThresh-r16 + +GWUS-GroupNarrowBandList-r16 ::= SEQUENCE (SIZE (1..maxAvailNarrowBands-r13)) OF BOOLEAN + +GWUS-Config-r16 ::= SEQUENCE { + groupAlternation-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + commonSequence-r16 [1] ENUMERATED { g0(0), g126(1) } OPTIONAL, -- Need OR + timeParameters-r16 [2] GWUS-TimeParameters-r16 OPTIONAL, -- Cond NoWUSr15 + resourceConfigDRX-r16 [3] GWUS-ResourceConfig-r16, + resourceConfig-eDRX-Short-r16 [4] GWUS-ResourceConfig-r16 OPTIONAL, -- Need OP + resourceConfig-eDRX-Long-r16 [5] GWUS-ResourceConfig-r16 OPTIONAL, -- Cond TimeOffset + probThreshList-r16 [6] GWUS-ProbThreshList-r16 OPTIONAL, -- Cond ProbabilityBased + groupNarrowBandList-r16 [7] GWUS-GroupNarrowBandList-r16 OPTIONAL -- Need OR +} + +UplinkPowerControlCommon-v1610 ::= SEQUENCE { + alphaSRS-Add-r16 [0] Alpha-r12, + p0-NominalSRS-Add-r16 [1] INTEGER (-126..24) +} + +PCCH-Config-v1700 ::= SEQUENCE { + ranPagingInIdlePO-r17 [0] ENUMERATED { true(0) } +} + +PRACH-TxDuration-r17 ::= SEQUENCE { + prach-TxDuration-r17 [0] ENUMERATED { n1(0), n2(1), n4(2), n8(3), n16(4), + n32(5), n64(6), n128(7) } +} + +PUCCH-TxDuration-r17 ::= SEQUENCE { + pucch-TxDuration-r17 [0] ENUMERATED { sf2(0), sf4(1), sf8(2), sf16(3), + sf32(4), sf64(5), sf128(6) } +} + +PUSCH-TxDuration-r17 ::= SEQUENCE { + pusch-TxDuration-r17 [0] ENUMERATED { n2(0), n4(1), n8(2), n16(3), n32(4), + n64(5), n128(6), n256(7) } +} + +RadioResourceConfigCommonSIB ::= SEQUENCE { + rach-ConfigCommon [0] RACH-ConfigCommon, + bcch-Config [1] BCCH-Config, + pcch-Config [2] PCCH-Config, + prach-Config [3] PRACH-ConfigSIB, + pdsch-ConfigCommon [4] PDSCH-ConfigCommon, + pusch-ConfigCommon [5] PUSCH-ConfigCommon, + pucch-ConfigCommon [6] PUCCH-ConfigCommon, + soundingRS-UL-ConfigCommon [7] EXPLICIT SoundingRS-UL-ConfigCommon, + uplinkPowerControlCommon [8] UplinkPowerControlCommon, + ul-CyclicPrefixLength [9] UL-CyclicPrefixLength, + ..., + [[ + uplinkPowerControlCommon-v1020 [10] UplinkPowerControlCommon-v1020 + OPTIONAL + ]], + [[ + rach-ConfigCommon-v1250 [11] RACH-ConfigCommon-v1250 OPTIONAL + ]], + [[ + pusch-ConfigCommon-v1270 [12] PUSCH-ConfigCommon-v1270 OPTIONAL + ]], + [[ + bcch-Config-v1310 [13] BCCH-Config-v1310 OPTIONAL, + pcch-Config-v1310 [14] PCCH-Config-v1310 OPTIONAL, + freqHoppingParameters-r13 [15] FreqHoppingParameters-r13 OPTIONAL, + pdsch-ConfigCommon-v1310 [16] PDSCH-ConfigCommon-v1310 OPTIONAL, + pusch-ConfigCommon-v1310 [17] PUSCH-ConfigCommon-v1310 OPTIONAL, + prach-ConfigCommon-v1310 [18] PRACH-ConfigSIB-v1310 OPTIONAL, + pucch-ConfigCommon-v1310 [19] PUCCH-ConfigCommon-v1310 OPTIONAL + ]], + [[ + highSpeedConfig-r14 [20] HighSpeedConfig-r14 OPTIONAL, + prach-Config-v1430 [21] PRACH-Config-v1430 OPTIONAL, + pucch-ConfigCommon-v1430 [22] PUCCH-ConfigCommon-v1430 OPTIONAL + ]], + [[ + prach-Config-v1530 [23] PRACH-ConfigSIB-v1530 OPTIONAL, + ce-RSS-Config-r15 [24] RSS-Config-r15 OPTIONAL, + wus-Config-r15 [25] WUS-Config-r15 OPTIONAL, + highSpeedConfig-v1530 [26] HighSpeedConfig-v1530 OPTIONAL + ]], + [[ + uplinkPowerControlCommon-v1540 [27] UplinkPowerControlCommon-v1530 + OPTIONAL + ]], + [[ + wus-Config-v1560 [28] WUS-Config-v1560 OPTIONAL + ]], + [[ + wus-Config-v1610 [29] WUS-Config-v1610 OPTIONAL, + highSpeedConfig-v1610 [30] HighSpeedConfig-v1610 OPTIONAL, + crs-ChEstMPDCCH-ConfigCommon-r16 [31] CRS-ChEstMPDCCH-ConfigCommon-r16 + OPTIONAL, + gwus-Config-r16 [32] GWUS-Config-r16 OPTIONAL, + uplinkPowerControlCommon-v1610 [33] UplinkPowerControlCommon-v1610 + OPTIONAL, + rss-MeasConfig-r16 [34] ENUMERATED { enabled(0) } OPTIONAL, + rss-MeasNonNCL-r16 [35] ENUMERATED { enabled(0) } OPTIONAL, + puncturedSubcarriersDL-r16 [36] BIT STRING (SIZE (2)) OPTIONAL, + highSpeedInterRAT-NR-r16 [37] BOOLEAN OPTIONAL + ]], + [[ + pcch-Config-v1700 [38] PCCH-Config-v1700 OPTIONAL, + ntn-ConfigCommon-r17 [39] SEQUENCE { + ta-Report-r17 [0] ENUMERATED { enabled(0) } OPTIONAL, -- Need OR + t318-r17 [1] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), + ms500(4), ms1000(5), ms2000(6), ms4000(7) }, + prach-TxDuration-r17 [2] PRACH-TxDuration-r17 OPTIONAL, -- Need OR + pucch-TxDuration-r17 [3] PUCCH-TxDuration-r17 OPTIONAL, -- Need OR + pusch-TxDuration-r17 [4] PUSCH-TxDuration-r17 OPTIONAL -- Need OR + } OPTIONAL + ]] +} + +UE-TimersAndConstants ::= SEQUENCE { + t300 [0] ENUMERATED { ms100(0), ms200(1), ms300(2), ms400(3), ms600(4), + ms1000(5), ms1500(6), ms2000(7) }, + t301 [1] ENUMERATED { ms100(0), ms200(1), ms300(2), ms400(3), ms600(4), + ms1000(5), ms1500(6), ms2000(7) }, + t310 [2] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), ms500(4), + ms1000(5), ms2000(6) }, + n310 [3] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n6(4), n8(5), n10(6), + n20(7) }, + t311 [4] ENUMERATED { ms1000(0), ms3000(1), ms5000(2), ms10000(3), + ms15000(4), ms20000(5), ms30000(6) }, + n311 [5] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n5(4), n6(5), n8(6), + n10(7) }, + ..., + [[ + t300-v1310 [6] ENUMERATED { ms2500(0), ms3000(1), ms3500(2), ms4000(3), + ms5000(4), ms6000(5), ms8000(6), ms10000(7) } OPTIONAL, + t301-v1310 [7] ENUMERATED { ms2500(0), ms3000(1), ms3500(2), ms4000(3), + ms5000(4), ms6000(5), ms8000(6), ms10000(7) } OPTIONAL + ]], + [[ + t310-v1330 [8] ENUMERATED { ms4000(0), ms6000(1) } OPTIONAL + ]], + [[ + t300-r15 [9] ENUMERATED { ms4000(0), ms6000(1), ms8000(2), ms10000(3), + ms15000(4), ms25000(5), ms40000(6), ms60000(7) } OPTIONAL + ]] +} + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +AdditionalSpectrumEmission ::= INTEGER (1..32) + +MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod [0] ENUMERATED { n1(0), n2(1), n4(2), n8(3), + n16(4), n32(5) }, + radioframeAllocationOffset [1] INTEGER (0..7), + subframeAllocation [2] EXPLICIT CHOICE { + oneFrame [0] BIT STRING (SIZE (6)), + fourFrames [1] BIT STRING (SIZE (24)) + } +} + +MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +TimeAlignmentTimer ::= ENUMERATED { sf500(0), sf750(1), sf1280(2), sf1920(3), + sf2560(4), sf5120(5), sf10240(6), infinity(7) } + +ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2) + +AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) + +UplinkPowerControlCommon-v1310 ::= SEQUENCE { + deltaF-PUCCH-Format4-r13 [0] ENUMERATED { deltaF16(0), deltaF15(1), + deltaF14(2), deltaF13(3), deltaF12(4), deltaF11(5), deltaF10(6), + spare1(7) } OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 [1] ENUMERATED { deltaF13(0), deltaF12(1), + deltaF11(2), deltaF10(3), deltaF9(4), deltaF8(5), deltaF7(6), spare1(7) } + OPTIONAL -- Need OR +} + +SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE { + uplinkPowerControlCommon-v13c0 [0] UplinkPowerControlCommon-v1310 OPTIONAL, -- Need OR +--Following field is for non-critical extensions from REL-13 + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE { +--Following field is for non-critical extensions up-to REL-12 + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SystemInformationBlockType2-v13c0-IEs OPTIONAL +} + +SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE { + freqInfo-v10l0 [0] SEQUENCE { + additionalSpectrumEmission-v10l0 [0] AdditionalSpectrumEmission-v10l0 + } OPTIONAL, + multiBandInfoList-v10l0 [1] SEQUENCE (SIZE (1..maxMultiBands)) OF + AdditionalSpectrumEmission-v10l0 OPTIONAL, + nonCriticalExtension [2] SystemInformationBlockType2-v10n0-IEs OPTIONAL +} + +SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE { +--Following field is for any non-critical extensions from REL-9 + nonCriticalExtension [0] OCTET STRING (CONTAINING + SystemInformationBlockType2-v10m0-IEs) OPTIONAL, + dummy [1] SEQUENCE { + + } OPTIONAL +} + +SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE { + ul-CarrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax + nonCriticalExtension [1] SystemInformationBlockType2-v9i0-IEs OPTIONAL +} + +SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE { + multiBandInfoList [0] SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission + OPTIONAL, -- Need OR + nonCriticalExtension [1] SystemInformationBlockType2-v9e0-IEs OPTIONAL +} + +AC-BarringPerPLMN-r12 ::= SEQUENCE { + plmn-IdentityIndex-r12 [0] INTEGER (1..maxPLMN-r11), + ac-BarringInfo-r12 [1] SEQUENCE { + ac-BarringForEmergency-r12 [0] BOOLEAN, + ac-BarringForMO-Signalling-r12 [1] AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data-r12 [2] AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVoice-r12 [2] ENUMERATED { true(0) } OPTIONAL, -- Need OP + ac-BarringSkipForMMTELVideo-r12 [3] ENUMERATED { true(0) } OPTIONAL, -- Need OP + ac-BarringSkipForSMS-r12 [4] ENUMERATED { true(0) } OPTIONAL, -- Need OP + ac-BarringForCSFB-r12 [5] AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Voice-r12 [6] AC-BarringConfig OPTIONAL, -- Need OP + ssac-BarringForMMTEL-Video-r12 [7] AC-BarringConfig OPTIONAL -- Need OP +} + +AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF AC-BarringPerPLMN-r12 + +BarringPerACDC-Category-r13 ::= SEQUENCE { + acdc-Category-r13 [0] INTEGER (1..maxACDC-Cat-r13), + acdc-BarringConfig-r13 [1] SEQUENCE { + ac-BarringFactor-r13 [0] ENUMERATED { p00(0), p05(1), p10(2), p15(3), + p20(4), p25(5), p30(6), p40(7), p50(8), p60(9), p70(10), p75(11), + p80(12), p85(13), p90(14), p95(15) }, + ac-BarringTime-r13 [1] ENUMERATED { s4(0), s8(1), s16(2), s32(3), s64(4) + , s128(5), s256(6), s512(7) } + } OPTIONAL -- Need OP +} + +BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF + BarringPerACDC-Category-r13 + +ACDC-BarringForCommon-r13 ::= SEQUENCE { + acdc-HPLMNonly-r13 [0] BOOLEAN, + barringPerACDC-CategoryList-r13 [1] BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 [0] INTEGER (1..maxPLMN-r11), + acdc-OnlyForHPLMN-r13 [1] BOOLEAN, + barringPerACDC-CategoryList-r13 [2] BarringPerACDC-CategoryList-r13 +} + +ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF + ACDC-BarringPerPLMN-r13 + +UDT-Restricting-r13 ::= SEQUENCE { + udt-Restricting-r13 [0] ENUMERATED { true(0) } OPTIONAL, --Need OR + udt-RestrictingTime-r13 [1] ENUMERATED { s4(0), s8(1), s16(2), s32(3), + s64(4), s128(5), s256(6), s512(7) } OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-r13 ::= SEQUENCE { + plmn-IdentityIndex-r13 [0] INTEGER (1..maxPLMN-r11), + udt-Restricting-r13 [1] UDT-Restricting-r13 OPTIONAL --Need OR +} + +UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF + UDT-RestrictingPerPLMN-r13 + +CIOT-OptimisationPLMN-r13 ::= SEQUENCE { + up-CIoT-EPS-Optimisation-r13 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OP + cp-CIoT-EPS-Optimisation-r13 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OP + attachWithoutPDN-Connectivity-r13 [2] ENUMERATED { true(0) } OPTIONAL -- Need OP +} + +CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF + CIOT-OptimisationPLMN-r13 + +MBSFN-SubframeConfig-v1430 ::= SEQUENCE { + subframeAllocation-v1430 [0] EXPLICIT CHOICE { + oneFrame-v1430 [0] BIT STRING (SIZE (2)), + fourFrames-v1430 [1] BIT STRING (SIZE (8)) + } +} + +MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF + MBSFN-SubframeConfig-v1430 + +PLMN-Info-r15 ::= SEQUENCE { + upperLayerIndication-r15 [0] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Info-r15 + +SystemInformationBlockType2 ::= SEQUENCE { + ac-BarringInfo [0] SEQUENCE { + ac-BarringForEmergency [0] BOOLEAN, + ac-BarringForMO-Signalling [1] AC-BarringConfig OPTIONAL, -- Need OP + ac-BarringForMO-Data [2] AC-BarringConfig OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + radioResourceConfigCommon [1] RadioResourceConfigCommonSIB, + ue-TimersAndConstants [2] UE-TimersAndConstants, + freqInfo [3] SEQUENCE { + ul-CarrierFreq [0] ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) } OPTIONAL, + -- Need OP + additionalSpectrumEmission [2] AdditionalSpectrumEmission + }, + mbsfn-SubframeConfigList [4] MBSFN-SubframeConfigList OPTIONAL, -- Need OR + timeAlignmentTimerCommon [5] TimeAlignmentTimer, + ..., + lateNonCriticalExtension [6] OCTET STRING (CONTAINING + SystemInformationBlockType2-v8h0-IEs) OPTIONAL, + [[ + ssac-BarringForMMTEL-Voice-r9 [7] AC-BarringConfig OPTIONAL, + ssac-BarringForMMTEL-Video-r9 [8] AC-BarringConfig OPTIONAL + ]], + [[ + ac-BarringForCSFB-r10 [9] AC-BarringConfig OPTIONAL + ]], + [[ + ac-BarringSkipForMMTELVoice-r12 [10] ENUMERATED { true(0) } OPTIONAL, + ac-BarringSkipForMMTELVideo-r12 [11] ENUMERATED { true(0) } OPTIONAL, + ac-BarringSkipForSMS-r12 [12] ENUMERATED { true(0) } OPTIONAL, + ac-BarringPerPLMN-List-r12 [13] AC-BarringPerPLMN-List-r12 OPTIONAL + ]], + [[ + voiceServiceCauseIndication-r12 [14] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + acdc-BarringForCommon-r13 [15] ACDC-BarringForCommon-r13 OPTIONAL, + acdc-BarringPerPLMN-List-r13 [16] ACDC-BarringPerPLMN-List-r13 OPTIONAL + ]], + [[ + udt-RestrictingForCommon-r13 [17] UDT-Restricting-r13 OPTIONAL, + udt-RestrictingPerPLMN-List-r13 [18] UDT-RestrictingPerPLMN-List-r13 + OPTIONAL, + cIoT-EPS-OptimisationInfo-r13 [19] CIOT-EPS-OptimisationInfo-r13 OPTIONAL + , + useFullResumeID-r13 [20] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + unicastFreqHoppingInd-r13 [21] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + mbsfn-SubframeConfigList-v1430 [22] MBSFN-SubframeConfigList-v1430 + OPTIONAL, + videoServiceCauseIndication-r14 [23] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + plmn-InfoList-r15 [24] PLMN-InfoList-r15 OPTIONAL + ]], + [[ + cp-EDT-r15 [25] ENUMERATED { true(0) } OPTIONAL, + up-EDT-r15 [26] ENUMERATED { true(0) } OPTIONAL, + idleModeMeasurements-r15 [27] ENUMERATED { true(0) } OPTIONAL, + reducedCP-LatencyEnabled-r15 [28] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + mbms-ROM-ServiceIndication-r15 [29] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + rlos-Enabled-r16 [30] ENUMERATED { true(0) } OPTIONAL, + earlySecurityReactivation-r16 [31] ENUMERATED { true(0) } OPTIONAL, + cp-EDT-5GC-r16 [32] ENUMERATED { true(0) } OPTIONAL, + up-EDT-5GC-r16 [33] ENUMERATED { true(0) } OPTIONAL, + cp-PUR-EPC-r16 [34] ENUMERATED { true(0) } OPTIONAL, + up-PUR-EPC-r16 [35] ENUMERATED { true(0) } OPTIONAL, + cp-PUR-5GC-r16 [36] ENUMERATED { true(0) } OPTIONAL, + up-PUR-5GC-r16 [37] ENUMERATED { true(0) } OPTIONAL, + mpdcch-CQI-Reporting-r16 [38] ENUMERATED { fourBits(0), both(1) } + OPTIONAL, + rai-ActivationEnh-r16 [39] ENUMERATED { true(0) } OPTIONAL, + idleModeMeasurementsNR-r16 [40] ENUMERATED { true(0) } OPTIONAL + ]] +} + +MobilityStateParameters ::= SEQUENCE { + t-Evaluation [0] ENUMERATED { s30(0), s60(1), s120(2), s180(3), s240(4), + spare3(5), spare2(6), spare1(7) }, + t-HystNormal [1] ENUMERATED { s30(0), s60(1), s120(2), s180(3), s240(4), + spare3(5), spare2(6), spare1(7) }, + n-CellChangeMedium [2] INTEGER (1..16), + n-CellChangeHigh [3] INTEGER (1..16) +} + +ReselectionThreshold ::= INTEGER (0..31) + +CellReselectionPriority ::= INTEGER (0..7) + +Q-RxLevMin ::= INTEGER (-70..-22) + +P-Max ::= INTEGER (-30..33) + +AllowedMeasBandwidth ::= ENUMERATED { mbw6(0), mbw15(1), mbw25(2), mbw50(3), + mbw75(4), mbw100(5) } + +PresenceAntennaPort1 ::= BOOLEAN + +NeighCellConfig ::= BIT STRING (SIZE (2)) + +T-Reselection ::= INTEGER (0..7) + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium [0] ENUMERATED { oDot25(0), oDot5(1), oDot75(2), lDot0(3) }, + sf-High [1] ENUMERATED { oDot25(0), oDot5(1), oDot75(2), lDot0(3) } +} + +NS-PmaxValue-r10 ::= SEQUENCE { + additionalPmax-r10 [0] P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission [1] AdditionalSpectrumEmission +} + +NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 + +MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10 + +NS-PmaxValue-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 [0] AdditionalSpectrumEmission-v10l0 + OPTIONAL -- Need OP +} + +NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 + +MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0 + +SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 [0] NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 [1] MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 [0] NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 [1] MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension [2] SystemInformationBlockType3-v10l0-IEs OPTIONAL +} + +ReselectionThresholdQ-r9 ::= INTEGER (0..31) + +Q-QualMin-r9 ::= INTEGER (-34..-3) + +CellReselectionSubPriority-r13 ::= ENUMERATED { oDot2(0), oDot4(1), oDot6(2), + oDot8(3) } + +CellReselectionServingFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 [0] CellReselectionSubPriority-r13 +} + +RedistributionServingInfo-r13 ::= SEQUENCE { + redistributionFactorServing-r13 [0] INTEGER (0..10), + redistributionFactorCell-r13 [1] ENUMERATED { true(0) } OPTIONAL, --Need OP + t360-r13 [2] ENUMERATED { min4(0), min8(1), min16(2), min32(3), infinity(4) + , spare3(5), spare2(6), spare1(7) }, + redistrOnPagingOnly-r13 [3] ENUMERATED { true(0) } OPTIONAL --Need OP +} + +CellSelectionInfoCE-r13 ::= SEQUENCE { + q-RxLevMinCE-r13 [0] Q-RxLevMin, + q-QualMinRSRQ-CE-r13 [1] Q-QualMin-r9 OPTIONAL -- Need OR +} + +T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15) + +CellSelectionInfoCE1-r13 ::= SEQUENCE { + q-RxLevMinCE1-r13 [0] Q-RxLevMin, + q-QualMinRSRQ-CE1-r13 [1] Q-QualMin-r9 OPTIONAL -- Need OR +} + +CellSelectionInfoCE1-v1360 ::= SEQUENCE { + delta-RxLevMinCE1-v1360 [0] INTEGER (-8..-1) +} + +CellReselectionInfoCommon-v1460 ::= SEQUENCE { + s-SearchDeltaP-r14 [0] ENUMERATED { dB6(0), dB9(1), dB12(2), dB15(3) } +} + +CellReselectionInfoHSDN-r15 ::= SEQUENCE { + cellEquivalentSize-r15 [0] INTEGER (2..16) +} + +CellSelectionInfoCE-v1530 ::= SEQUENCE { + powerClass14dBm-Offset-r15 [0] ENUMERATED { dB-6(0), dB-3(1), dB3(2), dB6(3) + , dB9(4), dB12(5) } +} + +CellReselectionServingFreqInfo-v1610 ::= SEQUENCE { + altCellReselectionPriority-r16 [0] CellReselectionPriority OPTIONAL, -- Need OR + altCellReselectionSubPriority-r16 [1] CellReselectionSubPriority-r13 + OPTIONAL -- Need OR +} + +TimeOffsetUTC-r17 ::= INTEGER (0..1048575) + +SystemInformationBlockType3 ::= SEQUENCE { + cellReselectionInfoCommon [0] SEQUENCE { + q-Hyst [0] ENUMERATED { dB0(0), dB1(1), dB2(2), dB3(3), dB4(4), dB5(5), + dB6(6), dB8(7), dB10(8), dB12(9), dB14(10), dB16(11), dB18(12), + dB20(13), dB22(14), dB24(15) }, + speedStateReselectionPars [1] SEQUENCE { + mobilityStateParameters [0] MobilityStateParameters, + q-HystSF [1] SEQUENCE { + sf-Medium [0] ENUMERATED { dB-6(0), dB-4(1), dB-2(2), dB0(3) }, + sf-High [1] ENUMERATED { dB-6(0), dB-4(1), dB-2(2), dB0(3) } + } + } OPTIONAL -- Need OP + }, + cellReselectionServingFreqInfo [1] SEQUENCE { + s-NonIntraSearch [0] ReselectionThreshold OPTIONAL, -- Need OP + threshServingLow [1] ReselectionThreshold, + cellReselectionPriority [2] CellReselectionPriority + }, + intraFreqCellReselectionInfo [2] SEQUENCE { + q-RxLevMin [0] Q-RxLevMin, + p-Max [1] P-Max OPTIONAL, -- Need OP + s-IntraSearch [2] ReselectionThreshold OPTIONAL, -- Need OP + allowedMeasBandwidth [3] AllowedMeasBandwidth OPTIONAL, -- Need OP + presenceAntennaPort1 [4] PresenceAntennaPort1, + neighCellConfig [5] NeighCellConfig, + t-ReselectionEUTRA [6] T-Reselection, + t-ReselectionEUTRA-SF [7] SpeedStateScaleFactors OPTIONAL -- Need OP + }, + ..., + lateNonCriticalExtension [3] OCTET STRING (CONTAINING + SystemInformationBlockType3-v10j0-IEs) OPTIONAL, + [[ + s-IntraSearch-v920 [4] SEQUENCE { + s-IntraSearchP-r9 [0] ReselectionThreshold, + s-IntraSearchQ-r9 [1] ReselectionThresholdQ-r9 + } OPTIONAL, + s-NonIntraSearch-v920 [5] SEQUENCE { + s-NonIntraSearchP-r9 [0] ReselectionThreshold, + s-NonIntraSearchQ-r9 [1] ReselectionThresholdQ-r9 + } OPTIONAL, + q-QualMin-r9 [6] Q-QualMin-r9 OPTIONAL, + threshServingLowQ-r9 [7] ReselectionThresholdQ-r9 OPTIONAL + ]], + [[ + q-QualMinWB-r11 [8] Q-QualMin-r9 OPTIONAL + ]], + [[ + q-QualMinRSRQ-OnAllSymbols-r12 [9] Q-QualMin-r9 OPTIONAL + ]], + [[ + cellReselectionServingFreqInfo-v1310 [10] + CellReselectionServingFreqInfo-v1310 OPTIONAL, + redistributionServingInfo-r13 [11] RedistributionServingInfo-r13 OPTIONAL + , + cellSelectionInfoCE-r13 [12] CellSelectionInfoCE-r13 OPTIONAL, + t-ReselectionEUTRA-CE-r13 [13] T-ReselectionEUTRA-CE-r13 OPTIONAL + ]], + [[ + cellSelectionInfoCE1-r13 [14] CellSelectionInfoCE1-r13 OPTIONAL + ]], + [[ + cellSelectionInfoCE1-v1360 [15] CellSelectionInfoCE1-v1360 OPTIONAL + ]], + [[ + cellReselectionInfoCommon-v1460 [16] CellReselectionInfoCommon-v1460 + OPTIONAL + ]], + [[ + cellReselectionInfoHSDN-r15 [17] CellReselectionInfoHSDN-r15 OPTIONAL, + cellSelectionInfoCE-v1530 [18] CellSelectionInfoCE-v1530 OPTIONAL, + crs-IntfMitigNeighCellsCE-r15 [19] ENUMERATED { enabled(0) } OPTIONAL + ]], + [[ + cellReselectionServingFreqInfo-v1610 [20] + CellReselectionServingFreqInfo-v1610 OPTIONAL + ]], + [[ + t-Service-r17 [21] TimeOffsetUTC-r17 OPTIONAL + ]] +} + +PhysCellId ::= INTEGER (0..503) + +Q-OffsetRange ::= ENUMERATED { dB-24(0), dB-22(1), dB-20(2), dB-18(3), dB-16(4) + , dB-14(5), dB-12(6), dB-10(7), dB-8(8), dB-6(9), dB-5(10), dB-4(11), + dB-3(12), dB-2(13), dB-1(14), dB0(15), dB1(16), dB2(17), dB3(18), dB4(19), + dB5(20), dB6(21), dB8(22), dB10(23), dB12(24), dB14(25), dB16(26), dB18(27) + , dB20(28), dB22(29), dB24(30) } + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId [0] PhysCellId, + q-OffsetCell [1] Q-OffsetRange, + ... +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +PhysCellIdRange ::= SEQUENCE { + start [0] PhysCellId, + range [1] ENUMERATED { n4(0), n8(1), n12(2), n16(3), n24(4), n32(5), n48(6) + , n64(7), n84(8), n96(9), n128(10), n168(11), n252(12), n504(13), + spare2(14), spare1(15) } OPTIONAL -- Need OP +} + +IntraFreqExcludedCellList ::= SEQUENCE (SIZE (1..maxExcludedCell)) OF PhysCellIdRange + +IntraFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..maxCellIntra)) OF PhysCellIdRange + +RSS-ConfigCarrierInfo-r16 ::= SEQUENCE { + narrowbandIndex-r16 [0] BIT STRING (SIZE (1..maxAvailNarrowBands-1-r16)), + timeOffsetGranularity-r16 [1] ENUMERATED { g1(0), g2(1), g4(2), g8(3), + g16(4), g32(5), g64(6), g128(7) } +} + +RSS-MeasPowerBias-r16 ::= ENUMERATED { dB-6(0), dB-3(1), dB0(2), dB3(3), dB6(4) + , dB9(5), dB12(6), rssNotUsed(7) } + +IntraFreqNeighCellInfo-v1610 ::= SEQUENCE { + rss-MeasPowerBias-r16 [0] RSS-MeasPowerBias-r16 +} + +IntraFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..maxCellIntra)) OF + IntraFreqNeighCellInfo-v1610 + +SystemInformationBlockType4 ::= SEQUENCE { + intraFreqNeighCellList [0] IntraFreqNeighCellList OPTIONAL, -- Need OR + intraFreqExcludedCellList [1] IntraFreqExcludedCellList OPTIONAL, -- Need OR + csg-PhysCellIdRange [2] PhysCellIdRange OPTIONAL, + ..., + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + [[ + intraFreqNeighHSDN-CellList-r15 [4] IntraFreqNeighHSDN-CellList-r15 + OPTIONAL + ]], + [[ + rss-ConfigCarrierInfo-r16 [5] RSS-ConfigCarrierInfo-r16 OPTIONAL, + intraFreqNeighCellList-v1610 [6] IntraFreqNeighCellList-v1610 OPTIONAL + ]] +} + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId [0] PhysCellId, + q-OffsetCell [1] Q-OffsetRange +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqExcludedCellList ::= SEQUENCE (SIZE (1..maxExcludedCell)) OF PhysCellIdRange + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq [0] ARFCN-ValueEUTRA, + q-RxLevMin [1] Q-RxLevMin, + p-Max [2] P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA [3] T-Reselection, + t-ReselectionEUTRA-SF [4] SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High [5] ReselectionThreshold, + threshX-Low [6] ReselectionThreshold, + allowedMeasBandwidth [7] AllowedMeasBandwidth, + presenceAntennaPort1 [8] PresenceAntennaPort1, + cellReselectionPriority [9] CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig [10] NeighCellConfig, + q-OffsetFreq [11] Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList [12] InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqExcludedCellList [13] InterFreqExcludedCellList OPTIONAL, + ..., + [[ + q-QualMin-r9 [14] Q-QualMin-r9 OPTIONAL, + threshX-Q-r9 [15] SEQUENCE { + threshX-HighQ-r9 [0] ReselectionThresholdQ-r9, + threshX-LowQ-r9 [1] ReselectionThresholdQ-r9 + } OPTIONAL + ]], + [[ + q-QualMinWB-r11 [16] Q-QualMin-r9 OPTIONAL + ]] +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +FreqBandIndicator ::= INTEGER (1..maxFBI) + +MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator + +InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE { + multiBandInfoList [0] MultiBandInfoList OPTIONAL -- Need OR +} + +FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2) + +MultiBandInfo-v9e0 ::= SEQUENCE { + freqBandIndicator-v9e0 [0] FreqBandIndicator-v9e0 OPTIONAL -- Need OP +} + +MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0 + +InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax + multiBandInfoList-v9e0 [1] MultiBandInfoList-v9e0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE { + freqBandInfo-r10 [0] NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 [1] MultiBandInfoList-v10j0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE { + freqBandInfo-v10l0 [0] NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 [1] MultiBandInfoList-v10l0 OPTIONAL -- Need OR +} + +InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE { + cellSelectionInfoCE1-v1360 [0] CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1 +} + +InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1360 + +SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE { +--Late non critical extensions from REL-10 upto REL-12 + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, -- Need OR + interFreqCarrierFreqList-v13a0 [1] InterFreqCarrierFreqList-v13a0 OPTIONAL, -- Need OR +--Late non critical extensions from REL-13 + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10l0 [0] SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension [1] SystemInformationBlockType5-v13a0-IEs OPTIONAL +} + +SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v10j0 [0] SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension [1] SystemInformationBlockType5-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v9e0 [0] SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR + nonCriticalExtension [1] SystemInformationBlockType5-v10j0-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE { + interFreqCarrierFreqList-v8h0 [0] SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP + nonCriticalExtension [1] SystemInformationBlockType5-v9e0-IEs OPTIONAL +} + +InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 [1] Q-QualMin-r9 OPTIONAL -- Cond RSRQ2 +} + +InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1250 + +ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2) + +FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2) + +MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11 + +InterFreqCarrierFreqInfo-r12 ::= SEQUENCE { + dl-CarrierFreq-r12 [0] ARFCN-ValueEUTRA-r9, + q-RxLevMin-r12 [1] Q-RxLevMin, + p-Max-r12 [2] P-Max OPTIONAL, -- Need OP + t-ReselectionEUTRA-r12 [3] T-Reselection, + t-ReselectionEUTRA-SF-r12 [4] SpeedStateScaleFactors OPTIONAL, -- Need OP + threshX-High-r12 [5] ReselectionThreshold, + threshX-Low-r12 [6] ReselectionThreshold, + allowedMeasBandwidth-r12 [7] AllowedMeasBandwidth, + presenceAntennaPort1-r12 [8] PresenceAntennaPort1, + cellReselectionPriority-r12 [9] CellReselectionPriority OPTIONAL, -- Need OP + neighCellConfig-r12 [10] NeighCellConfig, + q-OffsetFreq-r12 [11] Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList-r12 [12] InterFreqNeighCellList OPTIONAL, -- Need OR + interFreqExcludedCellList-r12 [13] InterFreqExcludedCellList OPTIONAL, -- Need OR + q-QualMin-r12 [14] Q-QualMin-r9 OPTIONAL, -- Need OP + threshX-Q-r12 [15] SEQUENCE { + threshX-HighQ-r12 [0] ReselectionThresholdQ-r9, + threshX-LowQ-r12 [1] ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-QualMinWB-r12 [16] Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ + multiBandInfoList-r12 [17] MultiBandInfoList-r11 OPTIONAL, -- Need OR + reducedMeasPerformance-r12 [18] ENUMERATED { true(0) } OPTIONAL, -- Need OP + q-QualMinRSRQ-OnAllSymbols-r12 [19] Q-QualMin-r9 OPTIONAL, + ... +} + +InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-r12 + +InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v10j0 + +RedistributionFactor-r13 ::= INTEGER (1..10) + +RedistributionNeighCell-r13 ::= SEQUENCE { + physCellId-r13 [0] PhysCellId, + redistributionFactorCell-r13 [1] RedistributionFactor-r13 +} + +RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF + RedistributionNeighCell-r13 + +RedistributionInterFreqInfo-r13 ::= SEQUENCE { + redistributionFactorFreq-r13 [0] RedistributionFactor-r13 OPTIONAL, --Need OP + redistributionNeighCellList-r13 [1] RedistributionNeighCellList-r13 OPTIONAL + --Need OP +} + +InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 [0] CellReselectionSubPriority-r13 OPTIONAL, -- Need OP + redistributionInterFreqInfo-r13 [1] RedistributionInterFreqInfo-r13 OPTIONAL + , --Need OP + cellSelectionInfoCE-r13 [2] CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + t-ReselectionEUTRA-CE-r13 [3] T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1310 + +InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE { + cellSelectionInfoCE1-r13 [0] CellSelectionInfoCE1-r13 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1350 + +InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1360 + +InterFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellIdRange + +InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE { + hsdn-Indication-r15 [0] BOOLEAN, + interFreqNeighHSDN-CellList-r15 [1] InterFreqNeighHSDN-CellList-r15 OPTIONAL + , -- Need OR + cellSelectionInfoCE-v1530 [2] CellSelectionInfoCE-v1530 OPTIONAL -- Need OP +} + +InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1530 + +InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1530 + +CellList-r15 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF PhysCellIdRange + +RSRQ-Range-r13 ::= INTEGER (-30..46) + +MeasIdleCarrierEUTRA-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueEUTRA-r9, + allowedMeasBandwidth-r15 [1] AllowedMeasBandwidth, + validityArea-r15 [2] CellList-r15 OPTIONAL, -- Need OR + measCellList-r15 [3] CellList-r15 OPTIONAL, -- Need OR + reportQuantities [4] ENUMERATED { rsrp(0), rsrq(1), both(2) }, + qualityThreshold-r15 [5] SEQUENCE { + idleRSRP-Threshold-r15 [0] RSRP-Range OPTIONAL, -- Need OR + idleRSRQ-Threshold-r15 [1] RSRQ-Range-r13 OPTIONAL -- Need OR + } OPTIONAL, + ... +} + +EUTRA-CarrierList-r15 ::= SEQUENCE (SIZE (1..maxFreqIdle-r15)) OF MeasIdleCarrierEUTRA-r15 + +MeasIdleConfigSIB-r15 ::= SEQUENCE { + measIdleCarrierListEUTRA-r15 [0] EUTRA-CarrierList-r15, + ... +} + +InterFreqNeighCellInfo-v1610 ::= SEQUENCE { + rss-MeasPowerBias-r16 [0] RSS-MeasPowerBias-r16 +} + +InterFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..maxCellInter)) OF + InterFreqNeighCellInfo-v1610 + +InterFreqCarrierFreqInfo-v1610 ::= SEQUENCE { + altCellReselectionPriority-r16 [0] CellReselectionPriority OPTIONAL, -- Need OR + altCellReselectionSubPriority-r16 [1] CellReselectionSubPriority-r13 + OPTIONAL, -- Need OR + rss-ConfigCarrierInfo-r16 [2] RSS-ConfigCarrierInfo-r16 OPTIONAL, -- Cond RSS + interFreqNeighCellList-v1610 [3] InterFreqNeighCellList-v1610 OPTIONAL -- Cond RSS +} + +InterFreqCarrierFreqList-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1610 + +InterFreqCarrierFreqListExt-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF + InterFreqCarrierFreqInfo-v1610 + +ARFCN-ValueNR-r15 ::= INTEGER (0..3279165) + +FreqBandIndicatorNR-r15 ::= INTEGER (1..maxFBI-NR-r15) + +MultiFrequencyBandListNR-r15 ::= SEQUENCE (SIZE (1..maxMultiBandsNR-r15)) OF + FreqBandIndicatorNR-r15 + +PhysCellIdNR-r15 ::= INTEGER (0..1007) + +PhysCellIdRangeNR-r16 ::= SEQUENCE { + start [0] PhysCellIdNR-r15, + range [1] ENUMERATED { n4(0), n8(1), n12(2), n16(3), n24(4), n32(5), n48(6) + , n64(7), n84(8), n96(9), n128(10), n168(11), n252(12), n504(13), + n1008(14), spare1(15) } OPTIONAL -- Need OP +} + +CellListNR-r16 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF PhysCellIdRangeNR-r16 + +RSRP-RangeNR-r15 ::= INTEGER (0..127) + +RSRQ-RangeNR-r15 ::= INTEGER (0..127) + +MaxRS-IndexCellQualNR-r15 ::= INTEGER (1..maxRS-IndexCellQual-r15) + +RS-SINR-RangeNR-r15 ::= INTEGER (0..127) + +ThresholdListNR-r15 ::= SEQUENCE { + nr-RSRP-r15 [0] RSRP-RangeNR-r15 OPTIONAL, -- Need OR + nr-RSRQ-r15 [1] RSRQ-RangeNR-r15 OPTIONAL, -- Need OR + nr-SINR-r15 [2] RS-SINR-RangeNR-r15 OPTIONAL -- Need OR +} + +MTC-SSB-NR-r15 ::= SEQUENCE { + periodicityAndOffset-r15 [0] EXPLICIT CHOICE { + sf5-r15 [0] INTEGER (0..4), + sf10-r15 [1] INTEGER (0..9), + sf20-r15 [2] INTEGER (0..19), + sf40-r15 [3] INTEGER (0..39), + sf80-r15 [4] INTEGER (0..79), + sf160-r15 [5] INTEGER (0..159) + }, + ssb-Duration-r15 [1] ENUMERATED { sf1(0), sf2(1), sf3(2), sf4(3), sf5(4) } +} + +SSB-ToMeasure-r15 ::= CHOICE { + shortBitmap-r15 [0] BIT STRING (SIZE (4)), + mediumBitmap-r15 [1] BIT STRING (SIZE (8)), + longBitmap-r15 [2] BIT STRING (SIZE (64)) +} + +SS-RSSI-Measurement-r15 ::= SEQUENCE { + measurementSlots-r15 [0] BIT STRING (SIZE (1..80)), + endSymbol-r15 [1] INTEGER (0..3) +} + +BeamMeasConfigIdleNR-r16 ::= SEQUENCE { + reportQuantityRS-IndexNR-r16 [0] ENUMERATED { rsrp(0), rsrq(1), both(2) }, + maxReportRS-Index-r16 [1] INTEGER (0..maxRS-IndexReport-r15), + reportRS-IndexResultsNR-r16 [2] BOOLEAN +} + +MeasIdleCarrierNR-r16 ::= SEQUENCE { + carrierFreqNR-r16 [0] ARFCN-ValueNR-r15, + subcarrierSpacingSSB-r16 [1] ENUMERATED { kHz15(0), kHz30(1), kHz120(2), + kHz240(3) }, + frequencyBandList [2] MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR + measCellListNR-r16 [3] CellListNR-r16 OPTIONAL, -- Need OR + reportQuantitiesNR-r16 [4] ENUMERATED { rsrp(0), rsrq(1), both(2) }, + qualityThresholdNR-r16 [5] SEQUENCE { + idleRSRP-ThresholdNR-r16 [0] RSRP-RangeNR-r15 OPTIONAL, -- Need OR + idleRSRQ-ThresholdNR-r16 [1] RSRQ-RangeNR-r15 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + ssb-MeasConfig-r16 [6] SEQUENCE { + maxRS-IndexCellQual-r16 [0] MaxRS-IndexCellQualNR-r15 OPTIONAL, -- Need OR + threshRS-Index-r16 [1] ThresholdListNR-r15 OPTIONAL, -- Need OR + measTimingConfig-r16 [2] MTC-SSB-NR-r15 OPTIONAL, -- Need OR + ssb-ToMeasure-r16 [3] EXPLICIT SSB-ToMeasure-r15 OPTIONAL, -- Need OR + deriveSSB-IndexFromCell-r16 [4] BOOLEAN, + ss-RSSI-Measurement-r16 [5] SS-RSSI-Measurement-r15 OPTIONAL -- Need OP + } OPTIONAL, -- Need OP + beamMeasConfigIdle-r16 [7] BeamMeasConfigIdleNR-r16 OPTIONAL, + ..., + [[ + subcarrierSpacingSSB-r17 [8] ENUMERATED { kHz480(0), spare1(1) } OPTIONAL + ]] +} + +NR-CarrierList-r16 ::= SEQUENCE (SIZE (1..maxFreqIdle-r15)) OF MeasIdleCarrierNR-r16 + +MeasIdleConfigSIB-NR-r16 ::= SEQUENCE { + measIdleCarrierListNR-r16 [0] NR-CarrierList-r16, + ... +} + +SystemInformationBlockType5 ::= SEQUENCE { + interFreqCarrierFreqList [0] InterFreqCarrierFreqList, + ..., + lateNonCriticalExtension [1] OCTET STRING (CONTAINING + SystemInformationBlockType5-v8h0-IEs) OPTIONAL, + [[ + interFreqCarrierFreqList-v1250 [2] InterFreqCarrierFreqList-v1250 + OPTIONAL, + interFreqCarrierFreqListExt-r12 [3] InterFreqCarrierFreqListExt-r12 + OPTIONAL + ]], + [[ + interFreqCarrierFreqListExt-v1280 [4] InterFreqCarrierFreqListExt-v1280 + OPTIONAL + ]], + [[ + interFreqCarrierFreqList-v1310 [5] InterFreqCarrierFreqList-v1310 + OPTIONAL, + interFreqCarrierFreqListExt-v1310 [6] InterFreqCarrierFreqListExt-v1310 + OPTIONAL + ]], + [[ + interFreqCarrierFreqList-v1350 [7] InterFreqCarrierFreqList-v1350 + OPTIONAL, + interFreqCarrierFreqListExt-v1350 [8] InterFreqCarrierFreqListExt-v1350 + OPTIONAL + ]], + [[ + interFreqCarrierFreqListExt-v1360 [9] InterFreqCarrierFreqListExt-v1360 + OPTIONAL + ]], + [[ + scptm-FreqOffset-r14 [10] INTEGER (1..8) OPTIONAL + ]], + [[ + interFreqCarrierFreqList-v1530 [11] InterFreqCarrierFreqList-v1530 + OPTIONAL, + interFreqCarrierFreqListExt-v1530 [12] InterFreqCarrierFreqListExt-v1530 + OPTIONAL, + measIdleConfigSIB-r15 [13] MeasIdleConfigSIB-r15 OPTIONAL + ]], + [[ + interFreqCarrierFreqList-v1610 [14] InterFreqCarrierFreqList-v1610 + OPTIONAL, + interFreqCarrierFreqListExt-v1610 [15] InterFreqCarrierFreqListExt-v1610 + OPTIONAL, + measIdleConfigSIB-NR-r16 [16] MeasIdleConfigSIB-NR-r16 OPTIONAL + ]] +} + +ARFCN-ValueUTRA ::= INTEGER (0..16383) + +CarrierFreqUTRA-FDD ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueUTRA, + cellReselectionPriority [1] CellReselectionPriority OPTIONAL, -- Need OP + threshX-High [2] ReselectionThreshold, + threshX-Low [3] ReselectionThreshold, + q-RxLevMin [4] INTEGER (-60..-13), + p-MaxUTRA [5] INTEGER (-50..33), + q-QualMin [6] INTEGER (-24..0), + ..., + [[ + threshX-Q-r9 [7] SEQUENCE { + threshX-HighQ-r9 [0] ReselectionThresholdQ-r9, + threshX-LowQ-r9 [1] ReselectionThresholdQ-r9 + } OPTIONAL + ]] +} + +CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD + +CarrierFreqUTRA-TDD ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueUTRA, + cellReselectionPriority [1] CellReselectionPriority OPTIONAL, -- Need OP + threshX-High [2] ReselectionThreshold, + threshX-Low [3] ReselectionThreshold, + q-RxLevMin [4] INTEGER (-60..-13), + p-MaxUTRA [5] INTEGER (-50..33), + ... +} + +CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD + +FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86) + +CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE { + multiBandInfoList [0] SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD + OPTIONAL -- Need OR +} + +SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE { + carrierFreqListUTRA-FDD-v8h0 [0] SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +CarrierFreqInfoUTRA-v1250 ::= SEQUENCE { + reducedMeasPerformance-r12 [0] ENUMERATED { true(0) } OPTIONAL -- Need OP +} + +CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE { + carrierFreq-r12 [0] ARFCN-ValueUTRA, + cellReselectionPriority-r12 [1] CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 [2] ReselectionThreshold, + threshX-Low-r12 [3] ReselectionThreshold, + q-RxLevMin-r12 [4] INTEGER (-60..-13), + p-MaxUTRA-r12 [5] INTEGER (-50..33), + q-QualMin-r12 [6] INTEGER (-24..0), + threshX-Q-r12 [7] SEQUENCE { + threshX-HighQ-r12 [0] ReselectionThresholdQ-r9, + threshX-LowQ-r12 [1] ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + multiBandInfoList-r12 [8] SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD + OPTIONAL, -- Need OR + reducedMeasPerformance-r12 [9] ENUMERATED { true(0) } OPTIONAL, + ... +} + +CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqUTRA-FDD-Ext-r12 + +CarrierFreqUTRA-TDD-r12 ::= SEQUENCE { + carrierFreq-r12 [0] ARFCN-ValueUTRA, + cellReselectionPriority-r12 [1] CellReselectionPriority OPTIONAL, -- Need OP + threshX-High-r12 [2] ReselectionThreshold, + threshX-Low-r12 [3] ReselectionThreshold, + q-RxLevMin-r12 [4] INTEGER (-60..-13), + p-MaxUTRA-r12 [5] INTEGER (-50..33), + reducedMeasPerformance-r12 [6] ENUMERATED { true(0) } OPTIONAL, + ... +} + +CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqUTRA-TDD-r12 + +SystemInformationBlockType6 ::= SEQUENCE { + carrierFreqListUTRA-FDD [0] CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR + carrierFreqListUTRA-TDD [1] CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR + t-ReselectionUTRA [2] T-Reselection, + t-ReselectionUTRA-SF [3] SpeedStateScaleFactors OPTIONAL, + ..., + lateNonCriticalExtension [4] OCTET STRING (CONTAINING + SystemInformationBlockType6-v8h0-IEs) OPTIONAL, + [[ + carrierFreqListUTRA-FDD-v1250 [5] SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, + carrierFreqListUTRA-TDD-v1250 [6] SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF + CarrierFreqInfoUTRA-v1250 OPTIONAL, + carrierFreqListUTRA-FDD-Ext-r12 [7] CarrierFreqListUTRA-FDD-Ext-r12 + OPTIONAL, + carrierFreqListUTRA-TDD-Ext-r12 [8] CarrierFreqListUTRA-TDD-Ext-r12 + OPTIONAL + ]] +} + +ARFCN-ValueGERAN ::= INTEGER (0..1023) + +BandIndicatorGERAN ::= ENUMERATED { dcs1800(0), pcs1900(1) } + +ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN + +CarrierFreqsGERAN ::= SEQUENCE { + startingARFCN [0] ARFCN-ValueGERAN, + bandIndicator [1] BandIndicatorGERAN, + followingARFCNs [2] EXPLICIT CHOICE { + explicitListOfARFCNs [0] ExplicitListOfARFCNs, + equallySpacedARFCNs [1] SEQUENCE { + arfcn-Spacing [0] INTEGER (1..8), + numberOfFollowingARFCNs [1] INTEGER (0..31) + }, + variableBitMapOfARFCNs [2] OCTET STRING (SIZE (1..16)) + } +} + +CarrierFreqsInfoGERAN ::= SEQUENCE { + carrierFreqs [0] CarrierFreqsGERAN, + commonInfo [1] SEQUENCE { + cellReselectionPriority [0] CellReselectionPriority OPTIONAL, -- Need OP + ncc-Permitted [1] BIT STRING (SIZE (8)), + q-RxLevMin [2] INTEGER (0..45), + p-MaxGERAN [3] INTEGER (0..39) OPTIONAL, -- Need OP + threshX-High [4] ReselectionThreshold, + threshX-Low [5] ReselectionThreshold + }, + ... +} + +CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN + +SystemInformationBlockType7 ::= SEQUENCE { + t-ReselectionGERAN [0] T-Reselection, + t-ReselectionGERAN-SF [1] SpeedStateScaleFactors OPTIONAL, -- Need OR + carrierFreqsInfoList [2] CarrierFreqsInfoListGERAN OPTIONAL, + ..., + lateNonCriticalExtension [3] OCTET STRING OPTIONAL +} + +SystemTimeInfoCDMA2000 ::= SEQUENCE { + cdma-EUTRA-Synchronisation [0] BOOLEAN, + cdma-SystemTime [1] EXPLICIT CHOICE { + synchronousSystemTime [0] BIT STRING (SIZE (39)), + asynchronousSystemTime [1] BIT STRING (SIZE (49)) + } +} + +PreRegistrationZoneIdHRPD ::= INTEGER (0..255) + +SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF + PreRegistrationZoneIdHRPD + +PreRegistrationInfoHRPD ::= SEQUENCE { + preRegistrationAllowed [0] BOOLEAN, + preRegistrationZoneId [1] PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed + secondaryPreRegistrationZoneIdList [2] + SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR +} + +BandclassCDMA2000 ::= ENUMERATED { bc0(0), bc1(1), bc2(2), bc3(3), bc4(4), + bc5(5), bc6(6), bc7(7), bc8(8), bc9(9), bc10(10), bc11(11), bc12(12), + bc13(13), bc14(14), bc15(15), bc16(16), bc17(17), bc18-v9a0(18), + bc19-v9a0(19), bc20-v9a0(20), bc21-v9a0(21), spare10(22), spare9(23), + spare8(24), spare7(25), spare6(26), spare5(27), spare4(28), spare3(29), + spare2(30), spare1(31), ... } + +BandClassInfoCDMA2000 ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + cellReselectionPriority [1] CellReselectionPriority OPTIONAL, -- Need OP + threshX-High [2] INTEGER (0..63), + threshX-Low [3] INTEGER (0..63), + ... +} + +BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000 + +ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) + +PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset) + +PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000 + +NeighCellsPerBandclassCDMA2000 ::= SEQUENCE { + arfcn [0] ARFCN-ValueCDMA2000, + physCellIdList [1] PhysCellIdListCDMA2000 +} + +NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF + NeighCellsPerBandclassCDMA2000 + +NeighCellCDMA2000 ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + neighCellsPerFreqList [1] NeighCellsPerBandclassListCDMA2000 +} + +NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 + +CellReselectionParametersCDMA2000 ::= SEQUENCE { + bandClassList [0] BandClassListCDMA2000, + neighCellList [1] NeighCellListCDMA2000, + t-ReselectionCDMA2000 [2] T-Reselection, + t-ReselectionCDMA2000-SF [3] SpeedStateScaleFactors OPTIONAL -- Need OP +} + +CSFB-RegistrationParam1XRTT ::= SEQUENCE { + sid [0] BIT STRING (SIZE (15)), + nid [1] BIT STRING (SIZE (16)), + multipleSID [2] BOOLEAN, + multipleNID [3] BOOLEAN, + homeReg [4] BOOLEAN, + foreignSIDReg [5] BOOLEAN, + foreignNIDReg [6] BOOLEAN, + parameterReg [7] BOOLEAN, + powerUpReg [8] BOOLEAN, + registrationPeriod [9] BIT STRING (SIZE (7)), + registrationZone [10] BIT STRING (SIZE (12)), + totalZone [11] BIT STRING (SIZE (3)), + zoneTimer [12] BIT STRING (SIZE (3)) +} + +PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000 + +NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE { + physCellIdList-v920 [0] PhysCellIdListCDMA2000-v920 +} + +NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF + NeighCellsPerBandclassCDMA2000-v920 + +NeighCellCDMA2000-v920 ::= SEQUENCE { + neighCellsPerFreqList-v920 [0] NeighCellsPerBandclassListCDMA2000-v920 +} + +NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 + +CellReselectionParametersCDMA2000-v920 ::= SEQUENCE { + neighCellList-v920 [0] NeighCellListCDMA2000-v920 +} + +CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE { + powerDownReg-r9 [0] ENUMERATED { true(0) } +} + +AC-BarringConfig1XRTT-r9 ::= SEQUENCE { + ac-Barring0to9-r9 [0] INTEGER (0..63), + ac-Barring10-r9 [1] INTEGER (0..7), + ac-Barring11-r9 [2] INTEGER (0..7), + ac-Barring12-r9 [3] INTEGER (0..7), + ac-Barring13-r9 [4] INTEGER (0..7), + ac-Barring14-r9 [5] INTEGER (0..7), + ac-Barring15-r9 [6] INTEGER (0..7), + ac-BarringMsg-r9 [7] INTEGER (0..7), + ac-BarringReg-r9 [8] INTEGER (0..7), + ac-BarringEmg-r9 [9] INTEGER (0..7) +} + +NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE { + arfcn [0] ARFCN-ValueCDMA2000, + physCellIdList-r11 [1] SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000 +} + +NeighCellCDMA2000-r11 ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + neighFreqInfoList-r11 [1] SEQUENCE (SIZE (1..16)) OF + NeighCellsPerBandclassCDMA2000-r11 +} + +CellReselectionParametersCDMA2000-r11 ::= SEQUENCE { + bandClassList [0] BandClassListCDMA2000, + neighCellList-r11 [1] SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11, + t-ReselectionCDMA2000 [2] T-Reselection, + t-ReselectionCDMA2000-SF [3] SpeedStateScaleFactors OPTIONAL -- Need OP +} + +ParametersCDMA2000-r11 ::= SEQUENCE { + systemTimeInfo-r11 [0] EXPLICIT CHOICE { + explicitValue [0] SystemTimeInfoCDMA2000, + defaultValue [1] NULL + } OPTIONAL, -- Need OR + searchWindowSize-r11 [1] INTEGER (0..15), + parametersHRPD-r11 [2] SEQUENCE { + preRegistrationInfoHRPD-r11 [0] PreRegistrationInfoHRPD, + cellReselectionParametersHRPD-r11 [1] + CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT-r11 [3] SEQUENCE { + csfb-RegistrationParam1XRTT-r11 [0] CSFB-RegistrationParam1XRTT OPTIONAL, + -- Need OP + csfb-RegistrationParam1XRTT-Ext-r11 [1] CSFB-RegistrationParam1XRTT-v920 + OPTIONAL, -- Cond REG-1XRTT-PerPLMN + longCodeState1XRTT-r11 [2] BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC + cellReselectionParameters1XRTT-r11 [3] + CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR + ac-BarringConfig1XRTT-r11 [4] AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN + csfb-SupportForDualRxUEs-r11 [5] BOOLEAN OPTIONAL, -- Need OR + csfb-DualRxTxSupport-r11 [6] ENUMERATED { true(0) } OPTIONAL -- Cond REG-1XRTT-PerPLMN + } OPTIONAL, + ... +} + +SIB8-PerPLMN-r11 ::= SEQUENCE { + plmn-Identity-r11 [0] INTEGER (1..maxPLMN-r11), + parametersCDMA2000-r11 [1] EXPLICIT CHOICE { + explicitValue [0] ParametersCDMA2000-r11, + defaultValue [1] NULL + } +} + +SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11 + +SystemInformationBlockType8 ::= SEQUENCE { + systemTimeInfo [0] SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR + searchWindowSize [1] INTEGER (0..15) OPTIONAL, -- Need OR + parametersHRPD [2] SEQUENCE { + preRegistrationInfoHRPD [0] PreRegistrationInfoHRPD, + cellReselectionParametersHRPD [1] CellReselectionParametersCDMA2000 + OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + parameters1XRTT [3] SEQUENCE { + csfb-RegistrationParam1XRTT [0] CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP + longCodeState1XRTT [1] BIT STRING (SIZE (42)) OPTIONAL, -- Need OR + cellReselectionParameters1XRTT [2] CellReselectionParametersCDMA2000 + OPTIONAL -- Need OR + } OPTIONAL, + ..., + lateNonCriticalExtension [4] OCTET STRING OPTIONAL, + [[ + csfb-SupportForDualRxUEs-r9 [5] BOOLEAN OPTIONAL, + cellReselectionParametersHRPD-v920 [6] + CellReselectionParametersCDMA2000-v920 OPTIONAL, + cellReselectionParameters1XRTT-v920 [7] + CellReselectionParametersCDMA2000-v920 OPTIONAL, + csfb-RegistrationParam1XRTT-v920 [8] CSFB-RegistrationParam1XRTT-v920 + OPTIONAL, + ac-BarringConfig1XRTT-r9 [9] AC-BarringConfig1XRTT-r9 OPTIONAL + ]], + [[ + csfb-DualRxTxSupport-r10 [10] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + sib8-PerPLMN-List-r11 [11] SIB8-PerPLMN-List-r11 OPTIONAL + ]] +} + +SystemInformationBlockType9 ::= SEQUENCE { + hnb-Name [0] OCTET STRING (SIZE (1..48)) OPTIONAL, + ..., + lateNonCriticalExtension [1] OCTET STRING OPTIONAL +} + +SystemInformationBlockType10 ::= SEQUENCE { + messageIdentifier [0] BIT STRING (SIZE (16)), + serialNumber [1] BIT STRING (SIZE (16)), + warningType [2] OCTET STRING (SIZE (2)), + dummy [3] OCTET STRING (SIZE (50)) OPTIONAL, + ..., + lateNonCriticalExtension [4] OCTET STRING OPTIONAL +} + +SystemInformationBlockType11 ::= SEQUENCE { + messageIdentifier [0] BIT STRING (SIZE (16)), + serialNumber [1] BIT STRING (SIZE (16)), + warningMessageSegmentType [2] ENUMERATED { notLastSegment(0), lastSegment(1) + }, + warningMessageSegmentNumber [3] INTEGER (0..63), + warningMessageSegment [4] OCTET STRING, + dataCodingScheme [5] OCTET STRING (SIZE (1)) OPTIONAL, + ..., + lateNonCriticalExtension [6] OCTET STRING OPTIONAL +} + +SystemInformationBlockType12-r9 ::= SEQUENCE { + messageIdentifier-r9 [0] BIT STRING (SIZE (16)), + serialNumber-r9 [1] BIT STRING (SIZE (16)), + warningMessageSegmentType-r9 [2] ENUMERATED { notLastSegment(0), + lastSegment(1) }, + warningMessageSegmentNumber-r9 [3] INTEGER (0..63), + warningMessageSegment-r9 [4] OCTET STRING, + dataCodingScheme-r9 [5] OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension [6] OCTET STRING OPTIONAL, + ..., + [[ + warningAreaCoordinatesSegment-r15 [7] OCTET STRING OPTIONAL + ]] +} + +MBSFN-AreaId-r12 ::= INTEGER (0..255) + +MBSFN-AreaInfo-r9 ::= SEQUENCE { + mbsfn-AreaId-r9 [0] MBSFN-AreaId-r12, + non-MBSFNregionLength [1] ENUMERATED { s1(0), s2(1) }, + notificationIndicator-r9 [2] INTEGER (0..7), + mcch-Config-r9 [3] SEQUENCE { + mcch-RepetitionPeriod-r9 [0] ENUMERATED { rf32(0), rf64(1), rf128(2), + rf256(3) }, + mcch-Offset-r9 [1] INTEGER (0..10), + mcch-ModificationPeriod-r9 [2] ENUMERATED { rf512(0), rf1024(1) }, + sf-AllocInfo-r9 [3] BIT STRING (SIZE (6)), + signallingMCS-r9 [4] ENUMERATED { n2(0), n7(1), n13(2), n19(3) } + }, + ..., + [[ + mcch-Config-r14 [4] SEQUENCE { + mcch-RepetitionPeriod-v1430 [0] ENUMERATED { rf1(0), rf2(1), rf4(2), + rf8(3), rf16(4) } OPTIONAL, -- Need OR + mcch-ModificationPeriod-v1430 [1] ENUMERATED { rf1(0), rf2(1), rf4(2) + , rf8(3), rf16(4), rf32(5), rf64(6), rf128(7), rf256(8), spare7(9) + } OPTIONAL -- Need OR + } OPTIONAL, + subcarrierSpacingMBMS-r14 [5] ENUMERATED { kHz7dot5(0), kHz1dot25(1) } + OPTIONAL + ]] +} + +MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9 + +MBMS-NotificationConfig-r9 ::= SEQUENCE { + notificationRepetitionCoeff-r9 [0] ENUMERATED { n2(0), n4(1) }, + notificationOffset-r9 [1] INTEGER (0..10), + notificationSF-Index-r9 [2] INTEGER (1..6) +} + +MBMS-NotificationConfig-v1430 ::= SEQUENCE { + notificationSF-Index-v1430 [0] INTEGER (7..10) +} + +MBSFN-AreaInfo-r16 ::= SEQUENCE { + mbsfn-AreaId-r16 [0] MBSFN-AreaId-r12, + notificationIndicator-r16 [1] INTEGER (0..7), + mcch-Config-r16 [2] SEQUENCE { + mcch-RepetitionPeriod-r16 [0] ENUMERATED { rf1(0), rf2(1), rf4(2), rf8(3) + , rf16(4), rf32(5), rf64(6), rf128(7), rf256(8), spare7(9), spare6(10) + , spare5(11), spare4(12), spare3(13), spare2(14), spare1(15) }, + mcch-ModificationPeriod-r16 [1] ENUMERATED { rf1(0), rf2(1), rf4(2), + rf8(3), rf16(4), rf32(5), rf64(6), rf128(7), rf256(8), rf512(9), + rf1024(10), spare5(11), spare4(12), spare3(13), spare2(14), spare1(15) + }, + mcch-Offset-r16 [2] INTEGER (0..10), + sf-AllocInfo-r16 [3] BIT STRING (SIZE (10)), + signallingMCS-r16 [4] ENUMERATED { n2(0), n7(1), n13(2), n19(3) } + }, + subcarrierSpacingMBMS-r16 [3] ENUMERATED { kHz7dot5(0), kHz2dot5(1), + kHz1dot25(2), kHz0dot37(3), kHz15-v1710(4), spare3(5), spare2(6), + spare1(7) }, + timeSeparation-r16 [4] ENUMERATED { sl2(0), sl4(1) } OPTIONAL, + ... +} + +MBSFN-AreaInfoList-r16 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r16 + +MBSFN-AreaInfo-r17 ::= SEQUENCE { + mbsfn-AreaInfo-r17 [0] MBSFN-AreaInfo-r16, + pmch-Bandwidth-r17 [1] ENUMERATED { n40(0), n35(1), n30(2), spare1(3) }, + ... +} + +MBSFN-AreaInfoList-r17 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r17 + +SystemInformationBlockType13-r9 ::= SEQUENCE { + mbsfn-AreaInfoList-r9 [0] MBSFN-AreaInfoList-r9, + notificationConfig-r9 [1] MBMS-NotificationConfig-r9, + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ..., + [[ + notificationConfig-v1430 [3] MBMS-NotificationConfig-v1430 OPTIONAL + ]], + [[ + mbsfn-AreaInfoList-r16 [4] MBSFN-AreaInfoList-r16 OPTIONAL + ]], + [[ + mbsfn-AreaInfoList-r17 [5] MBSFN-AreaInfoList-r17 OPTIONAL + ]] +} + +EAB-Config-r11 ::= SEQUENCE { + eab-Category-r11 [0] ENUMERATED { a(0), b(1), c(2) }, + eab-BarringBitmap-r11 [1] BIT STRING (SIZE (10)) +} + +EAB-ConfigPLMN-r11 ::= SEQUENCE { + eab-Config-r11 [0] EAB-Config-r11 OPTIONAL -- Need OR +} + +SystemInformationBlockType14-r11 ::= SEQUENCE { + eab-Param-r11 [0] EXPLICIT CHOICE { + eab-Common-r11 [0] EAB-Config-r11, + eab-PerPLMN-List-r11 [1] SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11 + } OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ..., + [[ + eab-PerRSRP-r15 [2] ENUMERATED { thresh0(0), thresh1(1), thresh2(2), + thresh3(3) } OPTIONAL + ]] +} + +MBMS-SAI-r11 ::= INTEGER (0..65535) + +MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11 + +MBMS-SAI-InterFreq-r11 ::= SEQUENCE { + dl-CarrierFreq-r11 [0] ARFCN-ValueEUTRA-r9, + mbms-SAI-List-r11 [1] MBMS-SAI-List-r11 +} + +MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11 + +MBMS-SAI-InterFreq-v1140 ::= SEQUENCE { + multiBandInfoList-r11 [0] MultiBandInfoList-r11 OPTIONAL -- Need OR +} + +MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF + MBMS-SAI-InterFreq-v1140 + +MBMS-CarrierType-r14 ::= SEQUENCE { + carrierType-r14 [0] ENUMERATED { mbms(0), fembmsMixed(1), fembmsDedicated(2) + }, + frameOffset-r14 [1] INTEGER (0..3) OPTIONAL -- Need OR +} + +MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF + MBMS-CarrierType-r14 + +SystemInformationBlockType15-r11 ::= SEQUENCE { + mbms-SAI-IntraFreq-r11 [0] MBMS-SAI-List-r11 OPTIONAL, -- Need OR + mbms-SAI-InterFreqList-r11 [1] MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ..., + [[ + mbms-SAI-InterFreqList-v1140 [3] MBMS-SAI-InterFreqList-v1140 OPTIONAL + ]], + [[ + mbms-IntraFreqCarrierType-r14 [4] MBMS-CarrierType-r14 OPTIONAL, + mbms-InterFreqCarrierTypeList-r14 [5] MBMS-InterFreqCarrierTypeList-r14 + OPTIONAL + ]] +} + +ReferenceTime-r15 ::= SEQUENCE { + refDays-r15 [0] INTEGER (0..72999), + refSeconds-r15 [1] INTEGER (0..86399), + refMilliSeconds-r15 [2] INTEGER (0..999), + refQuarterMicroSeconds-r15 [3] INTEGER (0..3999) +} + +TimeReferenceInfo-r15 ::= SEQUENCE { + time-r15 [0] ReferenceTime-r15, + uncertainty-r15 [1] INTEGER (0..12) OPTIONAL, -- Need OR + timeInfoType-r15 [2] ENUMERATED { localClock(0) } OPTIONAL, -- Need OR + referenceSFN-r15 [3] INTEGER (0..1023) OPTIONAL -- Cond TimeRef +} + +SystemInformationBlockType16-r11 ::= SEQUENCE { + timeInfo-r11 [0] SEQUENCE { + timeInfoUTC-r11 [0] INTEGER (0..549755813887), + dayLightSavingTime-r11 [1] BIT STRING (SIZE (2)) OPTIONAL, -- Need OR + leapSeconds-r11 [2] INTEGER (-127..128) OPTIONAL, -- Need OR + localTimeOffset-r11 [3] INTEGER (-63..64) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ..., + [[ + timeReferenceInfo-r15 [2] TimeReferenceInfo-r15 OPTIONAL + ]] +} + +RSRQ-Range ::= INTEGER (0..34) + +WLAN-backhaulRate-r12 ::= ENUMERATED { r0(0), r4(1), r8(2), r16(3), r32(4), + r64(5), r128(6), r256(7), r512(8), r1024(9), r2048(10), r4096(11), r8192(12) + , r16384(13), r32768(14), r65536(15), r131072(16), r262144(17), r524288(18) + , r1048576(19), r2097152(20), r4194304(21), r8388608(22), r16777216(23), + r33554432(24), r67108864(25), r134217728(26), r268435456(27), r536870912(28) + , r1073741824(29), r2147483648(30), r4294967296(31) } + +WLAN-OffloadConfig-r12 ::= SEQUENCE { + thresholdRSRP-r12 [0] SEQUENCE { + thresholdRSRP-Low-r12 [0] RSRP-Range, + thresholdRSRP-High-r12 [1] RSRP-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-r12 [1] SEQUENCE { + thresholdRSRQ-Low-r12 [0] RSRQ-Range, + thresholdRSRQ-High-r12 [1] RSRQ-Range + } OPTIONAL, -- Need OR + thresholdRSRQ-OnAllSymbolsWithWB-r12 [2] SEQUENCE { + thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 [0] RSRQ-Range, + thresholdRSRQ-OnAllSymbolsWithWB-High-r12 [1] RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-OnAllSymbols-r12 [3] SEQUENCE { + thresholdRSRQ-OnAllSymbolsLow-r12 [0] RSRQ-Range, + thresholdRSRQ-OnAllSymbolsHigh-r12 [1] RSRQ-Range + } OPTIONAL, -- Need OP + thresholdRSRQ-WB-r12 [4] SEQUENCE { + thresholdRSRQ-WB-Low-r12 [0] RSRQ-Range, + thresholdRSRQ-WB-High-r12 [1] RSRQ-Range + } OPTIONAL, -- Need OP + thresholdChannelUtilization-r12 [5] SEQUENCE { + thresholdChannelUtilizationLow-r12 [0] INTEGER (0..255), + thresholdChannelUtilizationHigh-r12 [1] INTEGER (0..255) + } OPTIONAL, -- Need OR + thresholdBackhaul-Bandwidth-r12 [6] SEQUENCE { + thresholdBackhaulDL-BandwidthLow-r12 [0] WLAN-backhaulRate-r12, + thresholdBackhaulDL-BandwidthHigh-r12 [1] WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthLow-r12 [2] WLAN-backhaulRate-r12, + thresholdBackhaulUL-BandwidthHigh-r12 [3] WLAN-backhaulRate-r12 + } OPTIONAL, -- Need OR + thresholdWLAN-RSSI-r12 [7] SEQUENCE { + thresholdWLAN-RSSI-Low-r12 [0] INTEGER (0..255), + thresholdWLAN-RSSI-High-r12 [1] INTEGER (0..255) + } OPTIONAL, -- Need OR + offloadPreferenceIndicator-r12 [8] BIT STRING (SIZE (16)) OPTIONAL, -- Need OR + t-SteeringWLAN-r12 [9] T-Reselection OPTIONAL, + ... +} + +WLAN-Identifiers-r12 ::= SEQUENCE { + ssid-r12 [0] OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR + bssid-r12 [1] OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR + hessid-r12 [2] OCTET STRING (SIZE (6)) OPTIONAL, + ... +} + +WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12 + +WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE { + wlan-OffloadConfigCommon-r12 [0] WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR + wlan-Id-List-r12 [1] WLAN-Id-List-r12 OPTIONAL, + ... +} + +SystemInformationBlockType17-r12 ::= SEQUENCE { + wlan-OffloadInfoPerPLMN-List-r12 [0] SEQUENCE (SIZE (1..maxPLMN-r11)) OF + WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ... +} + +SL-CP-Len-r12 ::= ENUMERATED { normal(0), extended(1) } + +SL-PeriodComm-r12 ::= ENUMERATED { sf40(0), sf60(1), sf70(2), sf80(3), sf120(4) + , sf140(5), sf160(6), sf240(7), sf280(8), sf320(9), spare6(10), spare5(11), + spare4(12), spare3(13), spare2(14), spare(15) } + +SL-OffsetIndicator-r12 ::= CHOICE { + small-r12 [0] INTEGER (0..319), + large-r12 [1] INTEGER (0..10239) +} + +SubframeBitmapSL-r12 ::= CHOICE { + bs4-r12 [0] BIT STRING (SIZE (4)), + bs8-r12 [1] BIT STRING (SIZE (8)), + bs12-r12 [2] BIT STRING (SIZE (12)), + bs16-r12 [3] BIT STRING (SIZE (16)), + bs30-r12 [4] BIT STRING (SIZE (30)), + bs40-r12 [5] BIT STRING (SIZE (40)), + bs42-r12 [6] BIT STRING (SIZE (42)) +} + +SL-TF-ResourceConfig-r12 ::= SEQUENCE { + prb-Num-r12 [0] INTEGER (1..100), + prb-Start-r12 [1] INTEGER (0..99), + prb-End-r12 [2] INTEGER (0..99), + offsetIndicator-r12 [3] EXPLICIT SL-OffsetIndicator-r12, + subframeBitmap-r12 [4] EXPLICIT SubframeBitmapSL-r12 +} + +SL-HoppingConfigComm-r12 ::= SEQUENCE { + hoppingParameter-r12 [0] INTEGER (0..504), + numSubbands-r12 [1] ENUMERATED { ns1(0), ns2(1), ns4(2) }, + rb-Offset-r12 [2] INTEGER (0..110) +} + +SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5)) + +TDD-Config ::= SEQUENCE { + subframeAssignment [0] ENUMERATED { sa0(0), sa1(1), sa2(2), sa3(3), sa4(4), + sa5(5), sa6(6) }, + specialSubframePatterns [1] ENUMERATED { ssp0(0), ssp1(1), ssp2(2), ssp3(3) + , ssp4(4), ssp5(5), ssp6(6), ssp7(7), ssp8(8) } +} + +P0-SL-r12 ::= INTEGER (-126..31) + +SL-TxParameters-r12 ::= SEQUENCE { + alpha-r12 [0] Alpha-r12, + p0-r12 [1] P0-SL-r12 +} + +SL-Priority-r13 ::= INTEGER (1..8) + +SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13 + +SL-CommResourcePool-r12 ::= SEQUENCE { + sc-CP-Len-r12 [0] SL-CP-Len-r12, + sc-Period-r12 [1] SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 [2] SL-TF-ResourceConfig-r12, + data-CP-Len-r12 [3] SL-CP-Len-r12, + dataHoppingConfig-r12 [4] SL-HoppingConfigComm-r12, + ue-SelectedResourceConfig-r12 [5] SEQUENCE { + data-TF-ResourceConfig-r12 [0] SL-TF-ResourceConfig-r12, + trpt-Subset-r12 [1] SL-TRPT-Subset-r12 OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + rxParametersNCell-r12 [6] SEQUENCE { + tdd-Config-r12 [0] TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r12 [1] INTEGER (0..15) + } OPTIONAL, -- Need OR + txParameters-r12 [7] SEQUENCE { + sc-TxParameters-r12 [0] SL-TxParameters-r12, + dataTxParameters-r12 [1] SL-TxParameters-r12 + } OPTIONAL, + ..., + [[ + priorityList-r13 [8] SL-PriorityList-r13 OPTIONAL + ]] +} + +SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12 + +SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12 + +SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39) + +SLSSID-r12 ::= INTEGER (0..167) + +RSRP-RangeSL-r12 ::= INTEGER (0..13) + +SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159) + +SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159) + +SL-SyncConfig-r12 ::= SEQUENCE { + syncCP-Len-r12 [0] SL-CP-Len-r12, + syncOffsetIndicator-r12 [1] SL-OffsetIndicatorSync-r12, + slssid-r12 [2] SLSSID-r12, + txParameters-r12 [3] SEQUENCE { + syncTxParameters-r12 [0] SL-TxParameters-r12, + syncTxThreshIC-r12 [1] RSRP-RangeSL-r12, + syncInfoReserved-r12 [2] BIT STRING (SIZE (19)) OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParamsNCell-r12 [4] SEQUENCE { + physCellId-r12 [0] PhysCellId, + discSyncWindow-r12 [1] ENUMERATED { w1(0), w2(1) } + } OPTIONAL, + ..., + [[ + syncTxPeriodic-r13 [5] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + syncOffsetIndicator-v1430 [6] SL-OffsetIndicatorSync-v1430 OPTIONAL, + gnss-Sync-r14 [7] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + syncOffsetIndicator2-r14 [8] SL-OffsetIndicatorSync-r14 OPTIONAL, + syncOffsetIndicator3-r14 [9] SL-OffsetIndicatorSync-r14 OPTIONAL + ]], + [[ + slss-TxDisabled-r15 [10] ENUMERATED { true(0) } OPTIONAL + ]] +} + +SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12 + +SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12 + +SystemInformationBlockType18-r12 ::= SEQUENCE { + commConfig-r12 [0] SEQUENCE { + commRxPool-r12 [0] SL-CommRxPoolList-r12, + commTxPoolNormalCommon-r12 [1] SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commTxPoolExceptional-r12 [2] SL-CommTxPoolList-r12 OPTIONAL, -- Need OR + commSyncConfig-r12 [3] SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ..., + [[ + commTxPoolNormalCommonExt-r13 [2] SL-CommTxPoolListExt-r13 OPTIONAL, + commTxResourceUC-ReqAllowed-r13 [3] ENUMERATED { true(0) } OPTIONAL, + commTxAllowRelayCommon-r13 [4] ENUMERATED { true(0) } OPTIONAL + ]] +} + +RSRP-RangeSL2-r12 ::= INTEGER (0..7) + +SL-PoolSelectionConfig-r12 ::= SEQUENCE { + threshLow-r12 [0] RSRP-RangeSL2-r12, + threshHigh-r12 [1] RSRP-RangeSL2-r12 +} + +PhysCellIdList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscCells-r13)) OF PhysCellId + +TDD-Config-v1130 ::= SEQUENCE { + specialSubframePatterns-v1130 [0] ENUMERATED { ssp7(0), ssp9(1) } +} + +SL-DiscResourcePool-r12 ::= SEQUENCE { + cp-Len-r12 [0] SL-CP-Len-r12, + discPeriod-r12 [1] ENUMERATED { rf32(0), rf64(1), rf128(2), rf256(3), + rf512(4), rf1024(5), rf16-v1310(6), spare(7) }, + numRetx-r12 [2] INTEGER (0..3), + numRepetition-r12 [3] INTEGER (1..50), + tf-ResourceConfig-r12 [4] SL-TF-ResourceConfig-r12, + txParameters-r12 [5] SEQUENCE { + txParametersGeneral-r12 [0] SL-TxParameters-r12, + ue-SelectedResourceConfig-r12 [1] SEQUENCE { + poolSelection-r12 [0] EXPLICIT CHOICE { + rsrpBased-r12 [0] SL-PoolSelectionConfig-r12, + random-r12 [1] NULL + }, + txProbability-r12 [1] ENUMERATED { p25(0), p50(1), p75(2), p100(3) } + } OPTIONAL -- Need OR + } OPTIONAL, -- Cond Tx + rxParameters-r12 [6] SEQUENCE { + tdd-Config-r12 [0] TDD-Config OPTIONAL, -- Need OR + syncConfigIndex-r12 [1] INTEGER (0..15) + } OPTIONAL, + ..., + [[ + discPeriod-v1310 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { rf4(0), rf6(1), rf7(2), rf8(3), rf12(4), + rf14(5), rf24(6), rf28(7) } + } OPTIONAL, + rxParamsAddNeighFreq-r13 [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + physCellId-r13 [0] PhysCellIdList-r13 + } + } OPTIONAL, + txParamsAddNeighFreq-r13 [9] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + physCellId-r13 [0] PhysCellIdList-r13, + p-Max [1] P-Max OPTIONAL, -- Need OP + tdd-Config-r13 [2] TDD-Config OPTIONAL, -- Cond TDD-OR + tdd-Config-v1130 [3] TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + freqInfo [4] SEQUENCE { + ul-CarrierFreq [0] ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), + n75(4), n100(5) } OPTIONAL, + -- Need OP + additionalSpectrumEmission [2] AdditionalSpectrumEmission + }, + referenceSignalPower [5] INTEGER (-60..50), + syncConfigIndex-r13 [6] INTEGER (0..15) OPTIONAL -- Need OR + } + } OPTIONAL + ]], + [[ + txParamsAddNeighFreq-v1370 [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + freqInfo-v1370 [0] SEQUENCE { + additionalSpectrumEmission-v1370 [0] + AdditionalSpectrumEmission-v10l0 + } + } + } OPTIONAL + ]] +} + +SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12 + +SL-DiscTxPowerInfo-r12 ::= SEQUENCE { + discMaxTxPower-r12 [0] P-Max, + ... +} + +SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12 + +MCC-MNC-Digit ::= INTEGER (0..9) + +MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit + +PLMN-Identity ::= SEQUENCE { + mcc [0] MCC OPTIONAL, -- Cond MCC + mnc [1] MNC +} + +PLMN-IdentityInfo2-r12 ::= CHOICE { + plmn-Index-r12 [0] INTEGER (1..maxPLMN-r11), + plmnIdentity-r12 [1] PLMN-Identity +} + +PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12 + +SL-CarrierFreqInfo-r12 ::= SEQUENCE { + carrierFreq-r12 [0] ARFCN-ValueEUTRA-r9, + plmn-IdentityList-r12 [1] PLMN-IdentityList4-r12 OPTIONAL -- Need OP +} + +SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12 + +SL-DiscTxResourcesInterFreq-r13 ::= CHOICE { + acquireSI-FromCarrier-r13 [0] NULL, + discTxPoolCommon-r13 [1] SL-DiscTxPoolList-r12, + requestDedicated-r13 [2] NULL, + noTxOnCarrier-r13 [3] NULL +} + +SL-ResourcesInterFreq-r13 ::= SEQUENCE { + discRxResourcesInterFreq-r13 [0] SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR + discTxResourcesInterFreq-r13 [1] EXPLICIT SL-DiscTxResourcesInterFreq-r13 + OPTIONAL -- Need OR +} + +SL-SyncConfigNFreq-r13 ::= SEQUENCE { + asyncParameters-r13 [0] SEQUENCE { + syncCP-Len-r13 [0] SL-CP-Len-r12, + syncOffsetIndicator-r13 [1] SL-OffsetIndicatorSync-r12, + slssid-r13 [2] SLSSID-r12 + } OPTIONAL, -- Need OR + txParameters-r13 [1] SEQUENCE { + syncTxParameters-r13 [0] SL-TxParameters-r12, + syncTxThreshIC-r13 [1] RSRP-RangeSL-r12, + syncInfoReserved-r13 [2] BIT STRING (SIZE (19)) OPTIONAL, -- Need OR + syncTxPeriodic-r13 [3] ENUMERATED { true(0) } OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + rxParameters-r13 [2] SEQUENCE { + discSyncWindow-r13 [0] ENUMERATED { w1(0), w2(1) } + } OPTIONAL, + ..., + [[ + syncOffsetIndicator-v1430 [3] SL-OffsetIndicatorSync-v1430 OPTIONAL, + gnss-Sync-r14 [4] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + syncOffsetIndicator2-r14 [5] SL-OffsetIndicatorSync-r14 OPTIONAL, + syncOffsetIndicator3-r14 [6] SL-OffsetIndicatorSync-r14 OPTIONAL + ]], + [[ + slss-TxDisabled-r15 [7] ENUMERATED { true(0) } OPTIONAL + ]] +} + +SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13 + +CellSelectionInfoNFreq-r13 ::= SEQUENCE { +--Cell selection information as in SIB1 + q-RxLevMin-r13 [0] Q-RxLevMin, + q-RxLevMinOffset [1] INTEGER (1..8) OPTIONAL, -- Need OP +--Cell re-selection information as in SIB3 + q-Hyst-r13 [2] ENUMERATED { dB0(0), dB1(1), dB2(2), dB3(3), dB4(4), dB5(5), + dB6(6), dB8(7), dB10(8), dB12(9), dB14(10), dB16(11), dB18(12), dB20(13) + , dB22(14), dB24(15) }, + q-RxLevMinReselection-r13 [3] Q-RxLevMin, + t-ReselectionEUTRA-r13 [4] T-Reselection +} + +SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE { + txPowerInfo-r13 [0] SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + refCarrierCommon-r13 [1] ENUMERATED { pCell(0) } OPTIONAL, -- Need OR + discSyncConfig-r13 [2] SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR + discCellSelectionInfo-r13 [3] CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR +} + +SL-CarrierFreqInfo-v1310 ::= SEQUENCE { + discResourcesNonPS-r13 [0] SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discResourcesPS-r13 [1] SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR + discConfigOther-r13 [2] SL-DiscConfigOtherInterFreq-r13 OPTIONAL, + ... +} + +SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF + SL-CarrierFreqInfo-v1310 + +RSRP-RangeSL4-r13 ::= INTEGER (0..49) + +SL-DiscConfigRelayUE-r13 ::= SEQUENCE { + threshHigh-r13 [0] RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + threshLow-r13 [1] RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 [2] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4), + dBinf(5) } OPTIONAL, -- Cond ThreshHigh + hystMin-r13 [3] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) } + OPTIONAL -- Cond ThreshLow +} + +FilterCoefficient ::= ENUMERATED { fc0(0), fc1(1), fc2(2), fc3(3), fc4(4), + fc5(5), fc6(6), fc7(7), fc8(8), fc9(9), fc11(10), fc13(11), fc15(12), + fc17(13), fc19(14), spare1(15), ... } + +ReselectionInfoRelay-r13 ::= SEQUENCE { + q-RxLevMin-r13 [0] Q-RxLevMin, +--Note that the mapping of invidual values may be different for PC5, but the granularity/ +--number of values is same as for Uu + filterCoefficient-r13 [1] FilterCoefficient, + minHyst-r13 [2] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4), + dBinf(5) } OPTIONAL -- Need OR +} + +SL-DiscConfigRemoteUE-r13 ::= SEQUENCE { + threshHigh-r13 [0] RSRP-RangeSL4-r13 OPTIONAL, -- Need OR + hystMax-r13 [1] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) } + OPTIONAL, -- Cond ThreshHigh + reselectionInfoIC-r13 [2] ReselectionInfoRelay-r13 +} + +SystemInformationBlockType19-r12 ::= SEQUENCE { + discConfig-r12 [0] SEQUENCE { + discRxPool-r12 [0] SL-DiscRxPoolList-r12, + discTxPoolCommon-r12 [1] SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR + discTxPowerInfo-r12 [2] SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx + discSyncConfig-r12 [3] SL-SyncConfigList-r12 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + discInterFreqList-r12 [1] SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ..., + [[ + discConfig-v1310 [3] SEQUENCE { + discInterFreqList-v1310 [0] SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR + gapRequestsAllowedCommon [1] ENUMERATED { true(0) } OPTIONAL -- Need OR + } OPTIONAL, + discConfigRelay-r13 [4] SEQUENCE { + relayUE-Config-r13 [0] SL-DiscConfigRelayUE-r13, + remoteUE-Config-r13 [1] SL-DiscConfigRemoteUE-r13 + } OPTIONAL, + discConfigPS-13 [5] SEQUENCE { + discRxPoolPS-r13 [0] SL-DiscRxPoolList-r12, + discTxPoolPS-Common-r13 [1] SL-DiscTxPoolList-r12 OPTIONAL -- Need OR + } OPTIONAL + ]] +} + +SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 [0] ENUMERATED { psf10(0), psf20(1), psf100(2), + psf300(3), psf500(4), psf1000(5), psf1200(6), psf1600(7) }, + drx-InactivityTimerSCPTM-r14 [1] ENUMERATED { psf0(0), psf1(1), psf2(2), + psf4(3), psf8(4), psf16(5), psf32(6), psf64(7), psf128(8), psf256(9), + ps512(10), psf1024(11), psf2048(12), psf4096(13), psf8192(14), + psf16384(15) }, + schedulingPeriodStartOffsetSCPTM-r14 [2] EXPLICIT CHOICE { + sf10 [0] INTEGER (0..9), + sf20 [1] INTEGER (0..19), + sf32 [2] INTEGER (0..31), + sf40 [3] INTEGER (0..39), + sf64 [4] INTEGER (0..63), + sf80 [5] INTEGER (0..79), + sf128 [6] INTEGER (0..127), + sf160 [7] INTEGER (0..159), + sf256 [8] INTEGER (0..255), + sf320 [9] INTEGER (0..319), + sf512 [10] INTEGER (0..511), + sf640 [11] INTEGER (0..639), + sf1024 [12] INTEGER (0..1023), + sf2048 [13] INTEGER (0..2047), + sf4096 [14] INTEGER (0..4095), + sf8192 [15] INTEGER (0..8191) + }, + ... +} + +SystemInformationBlockType20-r13 ::= SEQUENCE { + sc-mcch-RepetitionPeriod-r13 [0] ENUMERATED { rf2(0), rf4(1), rf8(2), + rf16(3), rf32(4), rf64(5), rf128(6), rf256(7) }, + sc-mcch-Offset-r13 [1] INTEGER (0..10), + sc-mcch-FirstSubframe-r13 [2] INTEGER (0..9), + sc-mcch-duration-r13 [3] INTEGER (2..9) OPTIONAL, + sc-mcch-ModificationPeriod-r13 [4] ENUMERATED { rf2(0), rf4(1), rf8(2), + rf16(3), rf32(4), rf64(5), rf128(6), rf256(7), rf512(8), rf1024(9), + r2048(10), rf4096(11), rf8192(12), rf16384(13), rf32768(14), rf65536(15) + }, + lateNonCriticalExtension [5] OCTET STRING OPTIONAL, + ..., + [[ + br-BCCH-Config-r14 [6] SEQUENCE { + dummy [0] ENUMERATED { rf1(0) }, + dummy2 [1] ENUMERATED { rf1(0) }, + mpdcch-Narrowband-SC-MCCH-r14 [2] INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MCCH-r14 [3] ENUMERATED { r1(0), r2(1), r4(2) + , r8(3), r16(4), r32(5), r64(6), r128(7), r256(8) }, + mpdcch-StartSF-SC-MCCH-r14 [4] EXPLICIT CHOICE { + fdd-r14 [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), v4(4) + , v5(5), v8(6), v10(7) }, + tdd-r14 [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), v10(5) + , v20(6) } + }, + mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 [5] ENUMERATED { off(0), + ce-ModeA(1), ce-ModeB(2) }, + sc-mcch-CarrierFreq-r14 [6] ARFCN-ValueEUTRA-r9, + sc-mcch-Offset-BR-r14 [7] INTEGER (0..10), + sc-mcch-RepetitionPeriod-BR-r14 [8] ENUMERATED { rf32(0), rf128(1), + rf512(2), rf1024(3), rf2048(4), rf4096(5), rf8192(6), rf16384(7) }, + sc-mcch-ModificationPeriod-BR-r14 [9] ENUMERATED { rf32(0), rf128(1), + rf256(2), rf512(3), rf1024(4), rf2048(5), rf4096(6), rf8192(7), + rf16384(8), rf32768(9), rf65536(10), rf131072(11), rf262144(12), + rf524288(13), rf1048576(14) } + } OPTIONAL, + sc-mcch-SchedulingInfo-r14 [7] SC-MCCH-SchedulingInfo-r14 OPTIONAL, + pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14 [8] ENUMERATED { r16(0), r32(1) + } OPTIONAL, + pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14 [9] ENUMERATED { r192(0), + r256(1), r384(2), r512(3), r768(4), r1024(5), r1536(6), r2048(7) } + OPTIONAL + ]], + [[ + sc-mcch-RepetitionPeriod-v1470 [10] ENUMERATED { rf1(0) } OPTIONAL, + sc-mcch-ModificationPeriod-v1470 [11] ENUMERATED { rf1(0) } OPTIONAL + ]] +} + +SubframeBitmapSL-r14 ::= CHOICE { + bs10-r14 [0] BIT STRING (SIZE (10)), + bs16-r14 [1] BIT STRING (SIZE (16)), + bs20-r14 [2] BIT STRING (SIZE (20)), + bs30-r14 [3] BIT STRING (SIZE (30)), + bs40-r14 [4] BIT STRING (SIZE (40)), + bs50-r14 [5] BIT STRING (SIZE (50)), + bs60-r14 [6] BIT STRING (SIZE (60)), + bs100-r14 [7] BIT STRING (SIZE (100)) +} + +SL-V2X-TxPoolReportIdentity-r14 ::= INTEGER (1..maxSL-PoolToMeasure-r14) + +Tx-ConfigIndex-r14 ::= INTEGER (0..maxSL-V2X-TxConfig-1-r14) + +SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 [0] SL-Priority-r13, + defaultTxConfigIndex-r14 [1] INTEGER (0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 [2] INTEGER (0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r14 [3] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14 +} + +SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF + SL-PPPP-TxConfigIndex-r14 + +SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE { + partialSensing-r14 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + randomSelection-r14 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +SL-SyncAllowed-r14 ::= SEQUENCE { + gnss-Sync-r14 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + enb-Sync-r14 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OR + ue-Sync-r14 [2] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED { v0dot2(0), v0dot5(1) + , v1(2), v2(3), v3(4), v4(5), v5(6), v6(7), v7(8), v8(9), v9(10), v10(11), + spare4(12), spare3(13), spare2(14), spare1(15) } + +SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF + SL-RestrictResourceReservationPeriod-r14 + +SL-MinT2Value-r15 ::= SEQUENCE { + priorityList-r15 [0] SL-PriorityList-r13, + minT2Value-r15 [1] INTEGER (10..20) +} + +SL-MinT2ValueList-r15 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-MinT2Value-r15 + +MCS-PSSCH-Range-r15 ::= SEQUENCE { + minMCS-PSSCH-r15 [0] INTEGER (0..31), + maxMCS-PSSCH-r15 [1] INTEGER (0..31) +} + +SL-PPPP-TxConfigIndex-v1530 ::= SEQUENCE { + mcs-PSSCH-RangeList-r15 [0] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15 + OPTIONAL --Need OR +} + +SL-CBR-PPPP-TxConfigList-v1530 ::= SEQUENCE (SIZE (1..8)) OF + SL-PPPP-TxConfigIndex-v1530 + +SL-CommResourcePoolV2X-r14 ::= SEQUENCE { + sl-OffsetIndicator-r14 [0] EXPLICIT SL-OffsetIndicator-r12 OPTIONAL, -- Need OR + sl-Subframe-r14 [1] EXPLICIT SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 [2] BOOLEAN, + sizeSubchannel-r14 [3] ENUMERATED { n4(0), n5(1), n6(2), n8(3), n9(4), + n10(5), n12(6), n15(7), n16(8), n18(9), n20(10), n25(11), n30(12), + n48(13), n50(14), n72(15), n75(16), n96(17), n100(18), spare13(19), + spare12(20), spare11(21), spare10(22), spare9(23), spare8(24), spare7(25) + , spare6(26), spare5(27), spare4(28), spare3(29), spare2(30), spare1(31) + }, + numSubchannel-r14 [4] ENUMERATED { n1(0), n3(1), n5(2), n8(3), n10(4), + n15(5), n20(6), spare1(7) }, + startRB-Subchannel-r14 [5] INTEGER (0..99), + startRB-PSCCH-Pool-r14 [6] INTEGER (0..99) OPTIONAL, -- Need OR + rxParametersNCell-r14 [7] SEQUENCE { + tdd-Config-r14 [0] TDD-Config OPTIONAL, -- Need OP + syncConfigIndex-r14 [1] INTEGER (0..15) + } OPTIONAL, -- Need OR + dataTxParameters-r14 [8] SL-TxParameters-r12 OPTIONAL, -- Cond Tx + zoneID-r14 [9] INTEGER (0..7) OPTIONAL, -- Need OR + threshS-RSSI-CBR-r14 [10] INTEGER (0..45) OPTIONAL, -- Need OR + poolReportId-r14 [11] SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r14 [12] SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR + resourceSelectionConfigP2X-r14 [13] SL-P2X-ResourceSelectionConfig-r14 + OPTIONAL, -- Cond P2X + syncAllowed-r14 [14] SL-SyncAllowed-r14 OPTIONAL, -- Need OR + restrictResourceReservationPeriod-r14 [15] + SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, + ..., + [[ + sl-MinT2ValueList-r15 [16] SL-MinT2ValueList-r15 OPTIONAL, + cbr-pssch-TxConfigList-v1530 [17] SL-CBR-PPPP-TxConfigList-v1530 OPTIONAL + ]] +} + +SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14 + + +SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14 + + +SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12 + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-Identity [0] PLMN-Identity, + cellReservedForOperatorUse [1] ENUMERATED { reserved(0), notReserved(1) } +} + +PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo + +SL-TypeTxSync-r14 ::= ENUMERATED { gnss(0), enb(1), ue(2) } + +SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF + SL-SyncConfigNFreq-r13 + +SL-TxPower-r14 ::= CHOICE { + minusinfinity-r14 [0] NULL, + txPower-r14 [1] INTEGER (-41..31) +} + +SL-PSSCH-TxParameters-r14 ::= SEQUENCE { + minMCS-PSSCH-r14 [0] INTEGER (0..31), + maxMCS-PSSCH-r14 [1] INTEGER (0..31), + minSubChannel-NumberPSSCH-r14 [2] INTEGER (1..20), + maxSubchannel-NumberPSSCH-r14 [3] INTEGER (1..20), + allowedRetxNumberPSSCH-r14 [4] ENUMERATED { n0(0), n1(1), both(2), spare1(3) + }, + maxTxPower-r14 [5] EXPLICIT SL-TxPower-r14 OPTIONAL -- Cond CBR +} + +SL-PSSCH-TxParameters-v1530 ::= SEQUENCE { + minMCS-PSSCH-r15 [0] INTEGER (0..31), + maxMCS-PSSCH-r15 [1] INTEGER (0..31) +} + +SL-PSSCH-TxConfig-r14 ::= SEQUENCE { + typeTxSync-r14 [0] SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresUE-Speed-r14 [1] ENUMERATED { kmph60(0), kmph80(1), kmph100(2), + kmph120(3), kmph140(4), kmph160(5), kmph180(6), kmph200(7) }, + parametersAboveThres-r14 [2] SL-PSSCH-TxParameters-r14, + parametersBelowThres-r14 [3] SL-PSSCH-TxParameters-r14, + ..., + [[ + parametersAboveThres-v1530 [4] SL-PSSCH-TxParameters-v1530 OPTIONAL, + parametersBelowThres-v1530 [5] SL-PSSCH-TxParameters-v1530 OPTIONAL + ]] +} + +SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14 + +SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66) + +SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14 + +SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE { + pssch-TxConfigList-r14 [0] SL-PSSCH-TxConfigList-r14, + thresPSSCH-RSRP-List-r14 [1] SL-ThresPSSCH-RSRP-List-r14, + restrictResourceReservationPeriod-r14 [2] + SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR + probResourceKeep-r14 [3] ENUMERATED { v0(0), v0dot2(1), v0dot4(2), v0dot6(3) + , v0dot8(4), spare3(5), spare2(6), spare1(7) }, + p2x-SensingConfig-r14 [4] SEQUENCE { + minNumCandidateSF-r14 [0] INTEGER (1..13), + gapCandidateSensing-r14 [1] BIT STRING (SIZE (10)) + } OPTIONAL, -- Need OR + sl-ReselectAfter-r14 [5] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n5(4), + n6(5), n7(6), n8(7), n9(8), spare7(9), spare6(10), spare5(11), spare4(12) + , spare3(13), spare2(14), spare1(15) } OPTIONAL -- Need OR +} + +SL-ZoneConfig-r14 ::= SEQUENCE { + zoneLength-r14 [0] ENUMERATED { m5(0), m10(1), m20(2), m50(3), m100(4), + m200(5), m500(6), spare1(7) }, + zoneWidth-r14 [1] ENUMERATED { m5(0), m10(1), m20(2), m50(3), m100(4), + m200(5), m500(6), spare1(7) }, + zoneIdLongiMod-r14 [2] INTEGER (1..4), + zoneIdLatiMod-r14 [3] INTEGER (1..4) +} + +SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE { + physCellIdList-r14 [0] PhysCellIdList-r13 OPTIONAL, -- Need OR + typeTxSync-r14 [1] SL-TypeTxSync-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 [2] SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 [3] SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormal-r14 [4] SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormal-r14 [5] SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 [6] SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 [7] SL-CommTxPoolSensingConfig-r14 OPTIONAL, + -- Need OR + zoneConfig-r14 [8] SL-ZoneConfig-r14 OPTIONAL, -- Need OR + offsetDFN-r14 [9] INTEGER (0..1000) OPTIONAL, + ... +} + +SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1..maxCellIntra)) OF + SL-V2X-InterFreqUE-Config-r14 + +SL-CBR-r14 ::= INTEGER (0..100) + +SL-V2X-FreqSelectionConfig-r15 ::= SEQUENCE { + priorityList-r15 [0] SL-PriorityList-r13, + threshCBR-FreqReselection-r15 [1] SL-CBR-r14 OPTIONAL, -- Need OR + threshCBR-FreqKeeping-r15 [2] SL-CBR-r14 OPTIONAL -- Need OR +} + +SL-V2X-FreqSelectionConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF + SL-V2X-FreqSelectionConfig-r15 + +SL-InterFreqInfoV2X-r14 ::= SEQUENCE { + plmn-IdentityList-r14 [0] PLMN-IdentityList OPTIONAL, -- Need OP + v2x-CommCarrierFreq-r14 [1] ARFCN-ValueEUTRA-r9, + sl-MaxTxPower-r14 [2] P-Max OPTIONAL, -- Need OR + sl-Bandwidth-r14 [3] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) } OPTIONAL, -- Need OR + v2x-SchedulingPool-r14 [4] SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-UE-ConfigList-r14 [5] SL-V2X-UE-ConfigList-r14 OPTIONAL, + ..., + [[ + additionalSpectrumEmissionV2X-r14 [6] EXPLICIT CHOICE { + additionalSpectrumEmission-r14 [0] AdditionalSpectrumEmission, + additionalSpectrumEmission-v1440 [1] AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]], + [[ + v2x-FreqSelectionConfigList-r15 [7] SL-V2X-FreqSelectionConfigList-r15 + OPTIONAL + ]] +} + +SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14 + + +SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF + ARFCN-ValueEUTRA-r9 + +SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14 + +SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE { + cr-Limit-r14 [0] INTEGER (0..10000), + tx-Parameters-r14 [1] SL-PSSCH-TxParameters-r14 +} + +SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 [0] SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF + SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 [1] SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF + SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-ConfigCommon-r14 ::= SEQUENCE { + v2x-CommRxPool-r14 [0] SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolNormalCommon-r14 [1] SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + p2x-CommTxPoolNormalCommon-r14 [2] SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommTxPoolExceptional-r14 [3] SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-SyncConfig-r14 [4] SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + v2x-InterFreqInfoList-r14 [5] SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + v2x-ResourceSelectionConfig-r14 [6] SL-CommTxPoolSensingConfig-r14 OPTIONAL, + -- Need OR + zoneConfig-r14 [7] SL-ZoneConfig-r14 OPTIONAL, -- Need OR + typeTxSync-r14 [8] SL-TypeTxSync-r14 OPTIONAL, -- Need OR + thresSL-TxPrioritization-r14 [9] SL-Priority-r13 OPTIONAL, -- Need OR + anchorCarrierFreqList-r14 [10] SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR + offsetDFN-r14 [11] INTEGER (0..1000) OPTIONAL, -- Need OR + cbr-CommonTxConfigList-r14 [12] SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +SL-NR-AnchorCarrierFreqList-r16 ::= SEQUENCE (SIZE (1..maxFreqSL-NR-r16)) OF ARFCN-ValueNR-r15 + +SystemInformationBlockType21-r14 ::= SEQUENCE { + sl-V2X-ConfigCommon-r14 [0] SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ..., + [[ + anchorCarrierFreqListNR-r16 [2] SL-NR-AnchorCarrierFreqList-r16 OPTIONAL + ]] +} + +P-MaxNR-r15 ::= INTEGER (-30..33) + +AdditionalSpectrumEmissionNR-r15 ::= INTEGER (0..7) + +NS-PmaxValueNR-r15 ::= SEQUENCE { + additionalPmaxNR-r15 [0] P-MaxNR-r15 OPTIONAL, -- Need ON + additionalSpectrumEmissionNR-r15 [1] AdditionalSpectrumEmissionNR-r15 +} + +NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15 + +MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1..maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-r15 + +MultiBandNsPmaxListNR-v1550 ::= SEQUENCE (SIZE (1..maxMultiBandsNR-r15)) OF NS-PmaxListNR-r15 + +AdditionalSpectrumEmissionNR-v1760 ::= INTEGER (8..39) + +NS-PmaxValueNR-v1760 ::= SEQUENCE { + additionalSpectrumEmissionNR-v1760 [0] AdditionalSpectrumEmissionNR-v1760 + OPTIONAL -- Need OR +} + +NS-PmaxListNR-v1760 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-v1760 + +MultiBandNsPmaxListNR-1-v1760 ::= SEQUENCE (SIZE (1..maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-v1760 + +MultiBandNsPmaxListNR-v1760 ::= SEQUENCE (SIZE (1..maxMultiBandsNR-r15)) OF NS-PmaxListNR-v1760 + +CarrierFreqNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + multiBandInfoList-r15 [1] MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR + multiBandInfoListSUL-r15 [2] MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR + measTimingConfig-r15 [3] MTC-SSB-NR-r15 OPTIONAL, -- Need OR + subcarrierSpacingSSB-r15 [4] ENUMERATED { kHz15(0), kHz30(1), kHz120(2), + kHz240(3) }, + ss-RSSI-Measurement-r15 [5] SS-RSSI-Measurement-r15 OPTIONAL, -- Cond RSRQ2 + cellReselectionPriority-r15 [6] CellReselectionPriority OPTIONAL, -- Need OP + cellReselectionSubPriority-r15 [7] CellReselectionSubPriority-r13 OPTIONAL, -- Need OR + threshX-High-r15 [8] ReselectionThreshold, + threshX-Low-r15 [9] ReselectionThreshold, + threshX-Q-r15 [10] SEQUENCE { + threshX-HighQ-r15 [0] ReselectionThresholdQ-r9, + threshX-LowQ-r15 [1] ReselectionThresholdQ-r9 + } OPTIONAL, -- Cond RSRQ + q-RxLevMin-r15 [11] INTEGER (-70..-22), + q-RxLevMinSUL-r15 [12] INTEGER (-70..-22) OPTIONAL, -- Need OR + p-MaxNR-r15 [13] P-MaxNR-r15, + ns-PmaxListNR-r15 [14] NS-PmaxListNR-r15 OPTIONAL, -- Need OR + q-QualMin-r15 [15] INTEGER (-43..-12) OPTIONAL, -- Need OP + deriveSSB-IndexFromCell-r15 [16] BOOLEAN, + maxRS-IndexCellQual-r15 [17] MaxRS-IndexCellQualNR-r15 OPTIONAL, -- Need OR + threshRS-Index-r15 [18] ThresholdListNR-r15 OPTIONAL, + ..., + [[ + multiBandNsPmaxListNR-v1550 [19] MultiBandNsPmaxListNR-1-v1550 OPTIONAL, + multiBandNsPmaxListNR-SUL-v1550 [20] MultiBandNsPmaxListNR-v1550 OPTIONAL + , + ssb-ToMeasure-r15 [21] EXPLICIT SSB-ToMeasure-r15 OPTIONAL + ]], + [[ + ns-PmaxListNR-v1760 [22] NS-PmaxListNR-v1760 OPTIONAL, + multiBandNsPmaxListNR-v1760 [23] MultiBandNsPmaxListNR-1-v1760 OPTIONAL, + multiBandNsPmaxListNR-SUL-v1760 [24] MultiBandNsPmaxListNR-v1760 OPTIONAL + ]] +} + +CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-r15 + +MTC-SSB2-LP-NR-r16 ::= SEQUENCE { + pci-List-r16 [0] SEQUENCE (SIZE (1..maxNrofPCI-PerSMTC-r16)) OF PhysCellIdNR-r15 OPTIONAL, + -- Need OR + periodicity-r16 [1] ENUMERATED { sf10(0), sf20(1), sf40(2), sf80(3), + sf160(4), spare3(5), spare2(6), spare1(7) } +} + +SSB-PositionQCL-RelationNR-r16 ::= ENUMERATED { n1(0), n2(1), n4(2), n8(3) } + +AllowedCellListNR-r16 ::= SEQUENCE (SIZE (1..maxCellAllowedNR-r16)) OF PhysCellIdNR-r15 + +CarrierFreqNR-v1610 ::= SEQUENCE { + smtc2-LP-r16 [0] MTC-SSB2-LP-NR-r16 OPTIONAL, -- Need OR + ssb-PositionQCL-CommonNR-r16 [1] SSB-PositionQCL-RelationNR-r16 OPTIONAL, -- Cond SharedSpectrum2 + allowedCellListNR-r16 [2] AllowedCellListNR-r16 OPTIONAL, -- Cond SharedSpectrum + highSpeedCarrierNR-r16 [3] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +CarrierFreqListNR-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1610 + +NR-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..maxCellNR-r17)) OF PhysCellIdRangeNR-r16 + + +CarrierFreqNR-v1700 ::= SEQUENCE { + nr-FreqNeighHSDN-CellList-r17 [0] NR-FreqNeighHSDN-CellList-r17 OPTIONAL -- Need OR +} + +CarrierFreqListNR-v1700 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1700 + +SSB-PositionQCL-RelationNR-r17 ::= ENUMERATED { n32(0), n64(1) } + +CarrierFreqNR-v1720 ::= SEQUENCE { + subcarrierSpacingSSB-r17 [0] ENUMERATED { kHz480(0), spare1(1) } OPTIONAL, -- Need OR + ssb-PositionQCL-CommonNR-r17 [1] SSB-PositionQCL-RelationNR-r17 OPTIONAL -- Cond SharedSpectrum2 +} + +CarrierFreqListNR-v1720 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1720 + +SystemInformationBlockType24-r15 ::= SEQUENCE { + carrierFreqListNR-r15 [0] CarrierFreqListNR-r15 OPTIONAL, -- Need OR + t-ReselectionNR-r15 [1] T-Reselection, + t-ReselectionNR-SF-r15 [2] SpeedStateScaleFactors OPTIONAL, -- Need OR + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + ..., + [[ + carrierFreqListNR-v1610 [4] CarrierFreqListNR-v1610 OPTIONAL + ]], + [[ + carrierFreqListNR-v1700 [5] CarrierFreqListNR-v1700 OPTIONAL + ]], + [[ + carrierFreqListNR-v1720 [6] CarrierFreqListNR-v1720 OPTIONAL + ]] +} + +UAC-BarringInfoSetIndex-r15 ::= INTEGER (1..maxBarringInfoSet-r15) + +UAC-BarringPerCat-r15 ::= SEQUENCE { + accessCategory-r15 [0] INTEGER (1..maxAccessCat-1-r15), + uac-barringInfoSetIndex-r15 [1] UAC-BarringInfoSetIndex-r15 +} + +UAC-BarringPerCatList-r15 ::= SEQUENCE (SIZE (1..maxAccessCat-1-r15)) OF UAC-BarringPerCat-r15 + +UAC-BarringPerPLMN-r15 ::= SEQUENCE { + plmn-IdentityIndex-r15 [0] INTEGER (1..maxPLMN-r11), + uac-AC-BarringListType-r15 [1] EXPLICIT CHOICE { + uac-ImplicitAC-BarringList-r15 [0] SEQUENCE (SIZE (maxAccessCat-1-r15)) OF + UAC-BarringInfoSetIndex-r15, + uac-ExplicitAC-BarringList-r15 [1] UAC-BarringPerCatList-r15 + } OPTIONAL -- Need OR +} + +UAC-BarringPerPLMN-List-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UAC-BarringPerPLMN-r15 + +UAC-BarringInfoSet-r15 ::= SEQUENCE { + uac-BarringFactor-r15 [0] ENUMERATED { p00(0), p05(1), p10(2), p15(3), + p20(4), p25(5), p30(6), p40(7), p50(8), p60(9), p70(10), p75(11), p80(12) + , p85(13), p90(14), p95(15) }, + uac-BarringTime-r15 [1] ENUMERATED { s4(0), s8(1), s16(2), s32(3), s64(4), + s128(5), s256(6), s512(7) }, + uac-BarringForAccessIdentity-r15 [2] BIT STRING (SIZE (7)) +} + +UAC-BarringInfoSetList-r15 ::= SEQUENCE (SIZE (1..maxBarringInfoSet-r15)) OF UAC-BarringInfoSet-r15 + +UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED { a(0), b(1), c(2) } + +UAC-AC1-SelectAssistInfo-r16 ::= ENUMERATED { a(0), b(1), c(2), + notConfigured(3) } + +UAC-BarringInfoSet-v1700 ::= SEQUENCE { + uac-BarringFactorForAI3-r17 [0] ENUMERATED { p00(0), p05(1), p10(2), p15(3) + , p20(4), p25(5), p30(6), p40(7), p50(8), p60(9), p70(10), p75(11), + p80(12), p85(13), p90(14), p95(15) } OPTIONAL -- Need OP +} + +UAC-BarringInfoSetList-v1700 ::= SEQUENCE (SIZE (1..maxBarringInfoSet-r15)) OF + UAC-BarringInfoSet-v1700 + +SystemInformationBlockType25-r15 ::= SEQUENCE { + uac-BarringForCommon-r15 [0] UAC-BarringPerCatList-r15 OPTIONAL, -- Need OP + uac-BarringPerPLMN-List-r15 [1] UAC-BarringPerPLMN-List-r15 OPTIONAL, -- Need OP + uac-BarringInfoSetList-r15 [2] UAC-BarringInfoSetList-r15, + uac-AC1-SelectAssistInfo-r15 [3] EXPLICIT CHOICE { + plmnCommon-r15 [0] UAC-AC1-SelectAssistInfo-r15, + individualPLMNList-r15 [1] SEQUENCE (SIZE (2..maxPLMN-r11)) OF + UAC-AC1-SelectAssistInfo-r15 + } OPTIONAL, -- Need OR + lateNonCriticalExtension [4] OCTET STRING OPTIONAL, + ..., + [[ + ab-PerRSRP-r16 [5] ENUMERATED { thresh0(0), thresh1(1), thresh2(2), + thresh3(3) } OPTIONAL + ]], + [[ + uac-AC1-SelectAssistInfo-r16 [6] SEQUENCE (SIZE (2..maxPLMN-r11)) OF + UAC-AC1-SelectAssistInfo-r16 OPTIONAL + ]], + [[ + uac-BarringInfoSetList-v1700 [7] UAC-BarringInfoSetList-v1700 OPTIONAL + ]] +} + +SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE { + priorityThreshold-r15 [0] SL-Priority-r13, + defaultTxConfigIndex-r15 [1] INTEGER (0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r15 [2] INTEGER (0..maxSL-V2X-CBRConfig-1-r14), + tx-ConfigIndexList-r15 [3] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14, + mcs-PSSCH-RangeList-r15 [4] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15 +} + +SL-CBR-PPPP-TxConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF + SL-PPPP-TxConfigIndex-r15 + +SL-Reliability-r15 ::= INTEGER (1..8) + +SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF + SL-DestinationIdentity-r12 + +SL-AllowedCarrierFreqList-r15 ::= SEQUENCE { + allowedCarrierFreqSet1 [0] SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9, + allowedCarrierFreqSet2 [1] SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 +} + +SL-PPPR-Dest-CarrierFreq ::= SEQUENCE { + destinationInfoList-r15 [0] SL-DestinationInfoList-r12 OPTIONAL, -- Need OR + allowedCarrierFreqList-r15 [1] SL-AllowedCarrierFreqList-r15 OPTIONAL -- Need OR +} + +SL-PPPR-Dest-CarrierFreqList-r15 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF + SL-PPPR-Dest-CarrierFreq + +SL-V2X-PacketDuplicationConfig-r15 ::= SEQUENCE { + threshSL-Reliability-r15 [0] SL-Reliability-r15, + allowedCarrierFreqConfig-r15 [1] SL-PPPR-Dest-CarrierFreqList-r15 OPTIONAL, + ... +} + +SL-V2X-SyncFreqList-r15 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9 + +SystemInformationBlockType26-r15 ::= SEQUENCE { + v2x-InterFreqInfoList-r15 [0] SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR + cbr-pssch-TxConfigList-r15 [1] SL-CBR-PPPP-TxConfigList-r15 OPTIONAL, -- Need OR + v2x-PacketDuplicationConfig-r15 [2] SL-V2X-PacketDuplicationConfig-r15 + OPTIONAL, -- Need OR + syncFreqList-r15 [3] SL-V2X-SyncFreqList-r15 OPTIONAL, -- Need OR + slss-TxMultiFreq-r15 [4] ENUMERATED { true(0) } OPTIONAL, -- Need OR + v2x-FreqSelectionConfigList-r15 [5] SL-V2X-FreqSelectionConfigList-r15 + OPTIONAL, -- Need OR + threshS-RSSI-CBR-r15 [6] INTEGER (0..45) OPTIONAL, + ..., + lateNonCriticalExtension [7] OCTET STRING OPTIONAL +} + +PLMN-Info-r16 ::= SEQUENCE { + nr-BandList-r16 [0] BIT STRING (SIZE (maxBandsENDC-r16)) OPTIONAL -- Need OR +} + +PLMN-InfoList-r16 ::= SEQUENCE (SIZE (0..maxPLMN-r11)) OF PLMN-Info-r16 + +BandListENDC-r16 ::= SEQUENCE (SIZE (1..maxBandsENDC-r16)) OF FreqBandIndicatorNR-r15 + +SystemInformationBlockType26a-r16 ::= SEQUENCE { + plmn-InfoList-r16 [0] PLMN-InfoList-r16, + bandListENDC-r16 [1] BandListENDC-r16, + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ... +} + +CarrierFreqNBIOT-r16 ::= SEQUENCE { + carrierFreq-r16 [0] ARFCN-ValueEUTRA-r9, + carrierFreqOffset-r16 [1] ENUMERATED { v-10(0), v-9(1), v-8dot5(2), v-8(3), + v-7(4), v-6(5), v-5(6), v-4dot5(7), v-4(8), v-3(9), v-2(10), v-1(11), + v-0dot5(12), v0(13), v1(14), v2(15), v3(16), v3dot5(17), v4(18), v5(19), + v6(20), v7(21), v7dot5(22), v8(23), v9(24) } +} + +CarrierFreqListNBIOT-r16 ::= SEQUENCE (SIZE (1..maxFreqNBIOT-r16)) OF CarrierFreqNBIOT-r16 + +SystemInformationBlockType27-r16 ::= SEQUENCE { + carrierFreqListNBIOT-r16 [0] CarrierFreqListNBIOT-r16 OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ... +} + +SystemInformationBlockType28-r16 ::= SEQUENCE { + segmentNumber-r16 [0] INTEGER (0..63), + segmentType-r16 [1] ENUMERATED { notLastSegment(0), lastSegment(1) }, + segmentContainer-r16 [2] OCTET STRING, + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + ... +} + +PeriodicityStartPos-r16 ::= CHOICE { + periodicity10ms [0] NULL, + periodicity20ms [1] INTEGER (0..1), + periodicity40ms [2] INTEGER (0..3), + periodicity80ms [3] INTEGER (0..7), + periodicity160ms [4] INTEGER (0..15), + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL +} + +ResourceReservationConfigDL-r16 ::= SEQUENCE { + periodicityStartPos-r16 [0] EXPLICIT PeriodicityStartPos-r16, + resourceReservationFreq-r16 [1] EXPLICIT CHOICE { + rbg-Bitmap1dot4 [0] BIT STRING (SIZE (6)), + rbg-Bitmap3 [1] BIT STRING (SIZE (8)), + rbg-Bitmap5 [2] BIT STRING (SIZE (13)), + rbg-Bitmap10 [3] BIT STRING (SIZE (17)), + rbg-Bitmap15 [4] BIT STRING (SIZE (19)), + rbg-Bitmap20 [5] BIT STRING (SIZE (25)) + } OPTIONAL, -- Need OP + slotBitmap-r16 [2] EXPLICIT CHOICE { + slotPattern10ms [0] BIT STRING (SIZE (20)), + slotPattern40ms [1] BIT STRING (SIZE (80)) + }, + symbolBitmap1-r16 [3] BIT STRING (SIZE (7)) OPTIONAL, -- Cond Bitmap1 + symbolBitmap2-r16 [4] BIT STRING (SIZE (7)) OPTIONAL, + ... +} + +ResourceReservationConfigUL-r16 ::= SEQUENCE { + periodicityStartPos-r16 [0] EXPLICIT PeriodicityStartPos-r16, + slotBitmap-r16 [1] EXPLICIT CHOICE { + slotPattern10ms [0] BIT STRING (SIZE (20)), + slotPattern40ms [1] BIT STRING (SIZE (80)) + } OPTIONAL, -- Cond FDDandTDDnoDL + symbolBitmap1-r16 [2] BIT STRING (SIZE (7)) OPTIONAL, -- Cond Bitmap1 + symbolBitmap2-r16 [3] BIT STRING (SIZE (7)) OPTIONAL, + ... +} + +SystemInformationBlockType29-r16 ::= SEQUENCE { + resourceReservationConfigCommonDL-r16 [0] ResourceReservationConfigDL-r16 + OPTIONAL, -- Need OR + resourceReservationConfigCommonUL-r16 [1] ResourceReservationConfigUL-r16 + OPTIONAL, -- Need OR + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ... +} + +ApplicableDisasterInfo-r17 ::= CHOICE { + noDisasterRoaming-r17 [0] NULL, + disasterRelatedIndication-r17 [1] NULL, + commonPLMNs-r17 [2] NULL, + dedicatedPLMNs-r17 [3] SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity +} + +SystemInformationBlockType30-r17 ::= SEQUENCE { + commonPLMNsWithDisasterCondition-r17 [0] SEQUENCE (SIZE (1..maxPLMN-r11)) OF + PLMN-Identity OPTIONAL, -- Need OR + applicableDisasterInfoList-r17 [1] SEQUENCE (SIZE (1..maxPLMN-r11)) OF + ApplicableDisasterInfo-r17 OPTIONAL, -- Need OR + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + ... +} + +PositionStateVector-r17 ::= INTEGER (-33554432..33554431) + +VelocityStateVector-r17 ::= INTEGER (-131072..131071) + +EphemerisStateVectors-r17 ::= SEQUENCE { + positionX-r17 [0] PositionStateVector-r17, + positionY-r17 [1] PositionStateVector-r17, + positionZ-r17 [2] PositionStateVector-r17, + velocityVX-r17 [3] VelocityStateVector-r17, + velocityVY-r17 [4] VelocityStateVector-r17, + velocityVZ-r17 [5] VelocityStateVector-r17 +} + +EphemerisOrbitalParameters-r17 ::= SEQUENCE { + semiMajorAxis-r17 [0] INTEGER (0..8589934591), + eccentricity-r17 [1] INTEGER (0..1048575), + periapsis-r17 [2] INTEGER (0..268435455), + longitude-r17 [3] INTEGER (0..268435455), + inclination-r17 [4] INTEGER (-67108864..67108863), + anomaly-r17 [5] INTEGER (0..268435455) +} + +ServingSatelliteInfo-r17 ::= SEQUENCE { + ephemerisInfo-r17 [0] EXPLICIT CHOICE { + stateVectors [0] EphemerisStateVectors-r17, + orbitalParameters [1] EphemerisOrbitalParameters-r17 + }, + nta-CommonParameters-17 [1] SEQUENCE { + nta-Common-r17 [0] INTEGER (0..8316827) OPTIONAL, -- Need OP + nta-CommonDrift-r17 [1] INTEGER (-261935..261935) OPTIONAL, -- Need OP + nta-CommonDriftVariation-r17 [2] INTEGER (0..29479) OPTIONAL -- Need OP + }, + ul-SyncValidityDuration-r17 [2] ENUMERATED { s5(0), s10(1), s15(2), s20(3), + s25(4), s30(5), s35(6), s40(7), s45(8), s50(9), s55(10), s60(11), + s120(12), s180(13), s240(14), s900(15) }, + epochTime-r17 [3] SEQUENCE { + startSFN-r17 [0] INTEGER (0..1023), + startSubFrame-r17 [1] INTEGER (0..9) + } OPTIONAL, -- Need OP + k-Offset-r17 [4] INTEGER (0..1023), + k-Mac-r17 [5] INTEGER (1..512) OPTIONAL, + ... +} + +SystemInformationBlockType31-r17 ::= SEQUENCE { + servingSatelliteInfo-r17 [0] ServingSatelliteInfo-r17, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ... +} + +TLE-EphemerisParameters-r17 ::= SEQUENCE { + inclination-r17 [0] INTEGER (0..2097151), + argumentPerigee-r17 [1] INTEGER (0..4194303), + rightAscension-r17 [2] INTEGER (0..4194303), + meanAnomaly-r17 [3] INTEGER (0..4194303), + eccentricity-r17 [4] INTEGER (0..16777215), + meanMotion-r17 [5] INTEGER (0..17179869183), + bStarDecimal-r17 [6] INTEGER (-99999..99999), + bStarExponent-r17 [7] INTEGER (-9..9), + epochStar-r17 [8] INTEGER (-1048575..1048575) +} + +SatelliteInfo-r17 ::= SEQUENCE { + satelliteId-r17 [0] INTEGER (0..255), + serviceInfo-r17 [1] SEQUENCE { + tle-EphemerisParameters-r17 [0] TLE-EphemerisParameters-r17 OPTIONAL, -- Need OR + t-ServiceStart-r17 [1] TimeOffsetUTC-r17 OPTIONAL -- Need OR + }, + footprintInfo-r17 [2] SEQUENCE { + referencePoint-r17 [0] SEQUENCE { + longitude-r17 [0] INTEGER (-131072..131071), + latitude-r17 [1] INTEGER (-131072..131071) + } OPTIONAL, -- Need OR + elevationAngles-r17 [1] SEQUENCE { + elevationAngleRight-r17 [0] INTEGER (-14..14), + elevationAngleLeft-r17 [1] INTEGER (-14..14) OPTIONAL -- Need OP + } OPTIONAL, -- Need OR + radius-r17 [2] INTEGER (1..256) OPTIONAL -- Need OR + } +} + +SatelliteInfoList-r17 ::= SEQUENCE (SIZE (1..maxSat-r17)) OF SatelliteInfo-r17 + +SystemInformationBlockType32-r17 ::= SEQUENCE { + satelliteInfoList-r17 [0] SatelliteInfoList-r17 OPTIONAL, -- Need OR + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ... +} + +SystemInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SystemInformation-r8-IEs ::= SEQUENCE { + sib-TypeAndInfo [0] SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 [0] SystemInformationBlockType2, + sib3 [1] SystemInformationBlockType3, + sib4 [2] SystemInformationBlockType4, + sib5 [3] SystemInformationBlockType5, + sib6 [4] SystemInformationBlockType6, + sib7 [5] SystemInformationBlockType7, + sib8 [6] SystemInformationBlockType8, + sib9 [7] SystemInformationBlockType9, + sib10 [8] SystemInformationBlockType10, + sib11 [9] SystemInformationBlockType11, + ..., + sib12-v920 [10] SystemInformationBlockType12-r9, + sib13-v920 [11] SystemInformationBlockType13-r9, + sib14-v1130 [12] SystemInformationBlockType14-r11, + sib15-v1130 [13] SystemInformationBlockType15-r11, + sib16-v1130 [14] SystemInformationBlockType16-r11, + sib17-v1250 [15] SystemInformationBlockType17-r12, + sib18-v1250 [16] SystemInformationBlockType18-r12, + sib19-v1250 [17] SystemInformationBlockType19-r12, + sib20-v1310 [18] SystemInformationBlockType20-r13, + sib21-v1430 [19] SystemInformationBlockType21-r14, + sib24-v1530 [20] SystemInformationBlockType24-r15, + sib25-v1530 [21] SystemInformationBlockType25-r15, + sib26-v1530 [22] SystemInformationBlockType26-r15, + sib26a-v1610 [23] SystemInformationBlockType26a-r16, + sib27-v1610 [24] SystemInformationBlockType27-r16, + sib28-v1610 [25] SystemInformationBlockType28-r16, + sib29-v1610 [26] SystemInformationBlockType29-r16, + sib30-v1700 [27] SystemInformationBlockType30-r17, + sib31-v1700 [28] SystemInformationBlockType31-r17, + sib32-v1700 [29] SystemInformationBlockType32-r17 + }, + nonCriticalExtension [1] SystemInformation-v8a0-IEs OPTIONAL +} + +SystemInformationBlockPos-r15 ::= SEQUENCE { + assistanceDataSIB-Element-r15 [0] OCTET STRING, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + ... +} + +PosSystemInformation-r15-IEs ::= SEQUENCE { + posSIB-TypeAndInfo-r15 [0] SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + posSib1-1-r15 [0] SystemInformationBlockPos-r15, + posSib1-2-r15 [1] SystemInformationBlockPos-r15, + posSib1-3-r15 [2] SystemInformationBlockPos-r15, + posSib1-4-r15 [3] SystemInformationBlockPos-r15, + posSib1-5-r15 [4] SystemInformationBlockPos-r15, + posSib1-6-r15 [5] SystemInformationBlockPos-r15, + posSib1-7-r15 [6] SystemInformationBlockPos-r15, + posSib2-1-r15 [7] SystemInformationBlockPos-r15, + posSib2-2-r15 [8] SystemInformationBlockPos-r15, + posSib2-3-r15 [9] SystemInformationBlockPos-r15, + posSib2-4-r15 [10] SystemInformationBlockPos-r15, + posSib2-5-r15 [11] SystemInformationBlockPos-r15, + posSib2-6-r15 [12] SystemInformationBlockPos-r15, + posSib2-7-r15 [13] SystemInformationBlockPos-r15, + posSib2-8-r15 [14] SystemInformationBlockPos-r15, + posSib2-9-r15 [15] SystemInformationBlockPos-r15, + posSib2-10-r15 [16] SystemInformationBlockPos-r15, + posSib2-11-r15 [17] SystemInformationBlockPos-r15, + posSib2-12-r15 [18] SystemInformationBlockPos-r15, + posSib2-13-r15 [19] SystemInformationBlockPos-r15, + posSib2-14-r15 [20] SystemInformationBlockPos-r15, + posSib2-15-r15 [21] SystemInformationBlockPos-r15, + posSib2-16-r15 [22] SystemInformationBlockPos-r15, + posSib2-17-r15 [23] SystemInformationBlockPos-r15, + posSib2-18-r15 [24] SystemInformationBlockPos-r15, + posSib2-19-r15 [25] SystemInformationBlockPos-r15, + posSib3-1-r15 [26] SystemInformationBlockPos-r15, + ..., + posSib1-8-v1610 [27] SystemInformationBlockPos-r15, + posSib2-20-v1610 [28] SystemInformationBlockPos-r15, + posSib2-21-v1610 [29] SystemInformationBlockPos-r15, + posSib2-22-v1610 [30] SystemInformationBlockPos-r15, + posSib2-23-v1610 [31] SystemInformationBlockPos-r15, + posSib2-24-v1610 [32] SystemInformationBlockPos-r15, + posSib2-25-v1610 [33] SystemInformationBlockPos-r15, + posSib4-1-v1610 [34] SystemInformationBlockPos-r15, + posSib5-1-v1610 [35] SystemInformationBlockPos-r15, + posSib1-9-v1700 [36] SystemInformationBlockPos-r15, + posSib1-10-v1700 [37] SystemInformationBlockPos-r15 + }, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +SystemInformation ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + systemInformation-r8 [0] SystemInformation-r8-IEs, + criticalExtensionsFuture-r15 [1] EXPLICIT CHOICE { + posSystemInformation-r15 [0] PosSystemInformation-r15-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } + } +} + +SystemInformation-BR-r13 ::= SystemInformation + +SystemInformation-MBMS-r14 ::= SystemInformation + +TrackingAreaCode ::= BIT STRING (SIZE (16)) + +CellIdentity ::= BIT STRING (SIZE (28)) + +CSG-Identity ::= BIT STRING (SIZE (27)) + +SI-Periodicity-r12 ::= ENUMERATED { rf8(0), rf16(1), rf32(2), rf64(3), rf128(4) + , rf256(5), rf512(6) } + +-- Note: The IE SIB-Type (without suffix) will not be extended any further in this release of the specification. If needed, the IE SIB-Type-v12j0 will be used for new SIB(s). +SIB-Type ::= ENUMERATED { sibType3(0), sibType4(1), sibType5(2), sibType6(3), + sibType7(4), sibType8(5), sibType9(6), sibType10(7), sibType11(8), + sibType12-v920(9), sibType13-v920(10), sibType14-v1130(11), + sibType15-v1130(12), sibType16-v1130(13), sibType17-v1250(14), + sibType18-v1250(15), ..., sibType19-v1250(16), sibType20-v1310(17), + sibType21-v1430(18), sibType24-v1530(19), sibType25-v1530(20), + sibType26-v1530(21), sibType26a-v1610(22), sibType27-v1610(23), + sibType28-v1610(24), sibType29-v1610(25) } + +SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type + +SchedulingInfo ::= SEQUENCE { + si-Periodicity [0] SI-Periodicity-r12, + sib-MappingInfo [1] SIB-MappingInfo +} + +SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo + +SIB-Type-v12j0 ::= ENUMERATED { sibType19-v1250(0), sibType20-v1310(1), + sibType21-v1430(2), sibType24-v1530(3), sibType25-v1530(4), + sibType26-v1530(5), sibType26a-v1610(6), sibType27-v1610(7), + sibType28-v1610(8), sibType29-v1610(9), sibType30-v1700(10), + sibType31-v1700(11), sibType32-v1700(12), spare3(13), spare2(14), spare1(15) + , ... } + +SIB-MappingInfo-v12j0 ::= SEQUENCE (SIZE (1..maxSIB-1)) OF SIB-Type-v12j0 + +SchedulingInfo-v12j0 ::= SEQUENCE { + sib-MappingInfo-v12j0 [0] SIB-MappingInfo-v12j0 OPTIONAL -- Need OR +} + +SchedulingInfoList-v12j0 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-v12j0 + +SchedulingInfoExt-r12 ::= SEQUENCE { + si-Periodicity-r12 [0] SI-Periodicity-r12, + sib-MappingInfo-r12 [1] SIB-MappingInfo-v12j0 +} + +SchedulingInfoListExt-r12 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfoExt-r12 + +SchedulingInfo-BR-r13 ::= SEQUENCE { + si-Narrowband-r13 [0] INTEGER (1..maxAvailNarrowBands-r13), + si-TBS-r13 [1] ENUMERATED { b152(0), b208(1), b256(2), b328(3), b408(4), + b504(5), b600(6), b712(7), b808(8), b936(9) } +} + +SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13 + +SystemInformationBlockType1-v15g0-IEs ::= SEQUENCE { + bandwidthReducedAccessRelatedInfo-v15g0 [0] SEQUENCE { + posSchedulingInfoList-BR-r15 [0] SchedulingInfoList-BR-r13 + } OPTIONAL, -- Need OR + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE { + schedulingInfoList-v12j0 [0] SchedulingInfoList-v12j0 OPTIONAL, -- Need OR + schedulingInfoListExt-r12 [1] SchedulingInfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension [2] SystemInformationBlockType1-v15g0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE { +--This field is only for late non-critical extensions from Rel-10 or Rel-11 onwards + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SystemInformationBlockType1-v12j0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE { + freqBandInfo-v10l0 [0] NS-PmaxList-v10l0 OPTIONAL, -- Need OR + multiBandInfoList-v10l0 [1] MultiBandInfoList-v10l0 OPTIONAL, -- Need OR + nonCriticalExtension [2] SystemInformationBlockType1-v10x0-IEs OPTIONAL +} + +SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE { + freqBandInfo-r10 [0] NS-PmaxList-r10 OPTIONAL, -- Need OR + multiBandInfoList-v10j0 [1] MultiBandInfoList-v10j0 OPTIONAL, -- Need OR + nonCriticalExtension [2] SystemInformationBlockType1-v10l0-IEs OPTIONAL +} + +SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE { + freqBandIndicator-v9e0 [0] FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max + multiBandInfoList-v9e0 [1] MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max + nonCriticalExtension [2] SystemInformationBlockType1-v10j0-IEs OPTIONAL +} + +-- Late non critical extensions +SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE { + multiBandInfoList [0] MultiBandInfoList OPTIONAL, -- Need OR + nonCriticalExtension [1] SystemInformationBlockType1-v9e0-IEs OPTIONAL +} + +CellSelectionInfo-v920 ::= SEQUENCE { + q-QualMin-r9 [0] Q-QualMin-r9, + q-QualMinOffset-r9 [1] INTEGER (1..8) OPTIONAL -- Need OP +} + +CellSelectionInfo-v1130 ::= SEQUENCE { + q-QualMinWB-r11 [0] Q-QualMin-r9 +} + +CellSelectionInfo-v1250 ::= SEQUENCE { + q-QualMinRSRQ-OnAllSymbols-r12 [0] Q-QualMin-r9 +} + +SystemInfoValueTagSI-r13 ::= INTEGER (0..3) + +SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13 + + +TDD-Config-v1430 ::= SEQUENCE { + specialSubframePatterns-v1430 [0] ENUMERATED { ssp10(0) } +} + +CellAccessRelatedInfo-r14 ::= SEQUENCE { + plmn-IdentityList-r14 [0] PLMN-IdentityList, + trackingAreaCode-r14 [1] TrackingAreaCode, + cellIdentity-r14 [2] CellIdentity +} + +TDD-Config-v1450 ::= SEQUENCE { + specialSubframePatterns-v1450 [0] ENUMERATED { ssp10-CRS-LessDwPTS(0) } +} + +PLMN-IdentityInfo-v1530 ::= SEQUENCE { + cellReservedForOperatorUse-CRS-r15 [0] ENUMERATED { reserved(0), + notReserved(1) } +} + +PLMN-IdentityList-v1530 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-v1530 + +GNSS-ID-r15 ::= SEQUENCE { + gnss-id-r15 [0] ENUMERATED { gps(0), sbas(1), qzss(2), galileo(3), + glonass(4), bds(5), ..., navic-v1610(6) }, + ... +} + +SBAS-ID-r15 ::= SEQUENCE { + sbas-id-r15 [0] ENUMERATED { waas(0), egnos(1), msas(2), gagan(3), ... }, + ... +} + +PosSIB-Type-r15 ::= SEQUENCE { + encrypted-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OP + gnss-id-r15 [1] GNSS-ID-r15 OPTIONAL, -- Need OP + sbas-id-r15 [2] SBAS-ID-r15 OPTIONAL, -- Need OP + posSibType-r15 [3] ENUMERATED { posSibType1-1(0), posSibType1-2(1), + posSibType1-3(2), posSibType1-4(3), posSibType1-5(4), posSibType1-6(5), + posSibType1-7(6), posSibType2-1(7), posSibType2-2(8), posSibType2-3(9), + posSibType2-4(10), posSibType2-5(11), posSibType2-6(12), + posSibType2-7(13), posSibType2-8(14), posSibType2-9(15), + posSibType2-10(16), posSibType2-11(17), posSibType2-12(18), + posSibType2-13(19), posSibType2-14(20), posSibType2-15(21), + posSibType2-16(22), posSibType2-17(23), posSibType2-18(24), + posSibType2-19(25), posSibType3-1(26), ..., posSibType1-8-v1610(27), + posSibType2-20-v1610(28), posSibType2-21-v1610(29), + posSibType2-22-v1610(30), posSibType2-23-v1610(31), + posSibType2-24-v1610(32), posSibType2-25-v1610(33), + posSibType4-1-v1610(34), posSibType5-1-v1610(35), posSibType1-9-v1700(36) + , posSibType1-10-v1700(37) }, + ... +} + +PosSIB-MappingInfo-r15 ::= SEQUENCE (SIZE (1..maxSIB)) OF PosSIB-Type-r15 + +PosSchedulingInfo-r15 ::= SEQUENCE { + posSI-Periodicity-r15 [0] ENUMERATED { rf8(0), rf16(1), rf32(2), rf64(3), + rf128(4), rf256(5), rf512(6) }, + posSIB-MappingInfo-r15 [1] PosSIB-MappingInfo-r15 +} + +PosSchedulingInfoList-r15 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF PosSchedulingInfo-r15 + +PLMN-IdentityInfo-r15 ::= SEQUENCE { + plmn-Identity-5GC-r15 [0] EXPLICIT CHOICE { + plmn-Identity-r15 [0] PLMN-Identity, + plmn-Index-r15 [1] INTEGER (1..maxPLMN-r11) + }, + cellReservedForOperatorUse-r15 [1] ENUMERATED { reserved(0), notReserved(1) + }, + cellReservedForOperatorUse-CRS-r15 [2] ENUMERATED { reserved(0), + notReserved(1) } +} + +PLMN-IdentityList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-r15 + +RAN-AreaCode-r15 ::= INTEGER (0..255) + +TrackingAreaCode-5GC-r15 ::= BIT STRING (SIZE (24)) + +CellIdentity-5GC-r15 ::= CHOICE { + cellIdentity-r15 [0] CellIdentity, + cellId-Index-r15 [1] INTEGER (1..maxPLMN-r11) +} + +CellAccessRelatedInfo-5GC-r15 ::= SEQUENCE { + plmn-IdentityList-r15 [0] PLMN-IdentityList-r15, + ran-AreaCode-r15 [1] RAN-AreaCode-r15 OPTIONAL, -- Need OR + trackingAreaCode-5GC-r15 [2] TrackingAreaCode-5GC-r15, + cellIdentity-5GC-r15 [3] EXPLICIT CellIdentity-5GC-r15 +} + +PLMN-IdentityInfo-v1610 ::= SEQUENCE { + cp-CIoT-5GS-Optimisation-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + up-CIoT-5GS-Optimisation-r16 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OR + iab-Support-r16 [2] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +PLMN-IdentityList-v1610 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-v1610 + +TrackingAreaList-r17 ::= SEQUENCE (SIZE (1..maxTAC-r17)) OF TrackingAreaCode + +PLMN-IdentityInfo-v1700 ::= SEQUENCE { + trackingAreaList-r17 [0] TrackingAreaList-r17 OPTIONAL -- Need OP +} + +PLMN-IdentityList-v1700 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-v1700 + +SystemInformationBlockType1-v1700-IEs ::= SEQUENCE { + cellAccessRelatedInfo-NTN-r17 [0] SEQUENCE { + cellBarred-NTN-r17 [0] ENUMERATED { barred(0), notBarred(1) }, + plmn-IdentityList-v1700 [1] PLMN-IdentityList-v1700 OPTIONAL -- Need OR + } OPTIONAL, -- Need OR + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SystemInformationBlockType1-v1610-IEs ::= SEQUENCE { + eDRX-Allowed-5GC-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + transmissionInControlChRegion-r16 [1] ENUMERATED { true(0) } OPTIONAL, -- Cond BW-reduced + campingAllowedInCE-r16 [2] ENUMERATED { true(0) } OPTIONAL, -- Need OR + plmn-IdentityList-v1610 [3] PLMN-IdentityList-v1610 OPTIONAL, -- Need OR + nonCriticalExtension [4] SystemInformationBlockType1-v1700-IEs OPTIONAL +} + +SystemInformationBlockType1-v1540-IEs ::= SEQUENCE { + si-posOffset-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] SystemInformationBlockType1-v1610-IEs OPTIONAL +} + +SystemInformationBlockType1-v1530-IEs ::= SEQUENCE { + hsdn-Cell-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + cellSelectionInfoCE-v1530 [1] CellSelectionInfoCE-v1530 OPTIONAL, -- Need OP + crs-IntfMitigConfig-r15 [2] EXPLICIT CHOICE { + crs-IntfMitigEnabled [0] NULL, + crs-IntfMitigNumPRBs [1] ENUMERATED { n6(0), n24(1) } + } OPTIONAL, -- Need OR + cellBarred-CRS-r15 [3] ENUMERATED { barred(0), notBarred(1) }, + plmn-IdentityList-v1530 [4] PLMN-IdentityList-v1530 OPTIONAL, -- Need OR + posSchedulingInfoList-r15 [5] PosSchedulingInfoList-r15 OPTIONAL, -- Need OR + cellAccessRelatedInfo-5GC-r15 [6] SEQUENCE { + cellBarred-5GC-r15 [0] ENUMERATED { barred(0), notBarred(1) }, + cellBarred-5GC-CRS-r15 [1] ENUMERATED { barred(0), notBarred(1) }, + cellAccessRelatedInfoList-5GC-r15 [2] SEQUENCE (SIZE (1..maxPLMN-r11)) OF + CellAccessRelatedInfo-5GC-r15 + } OPTIONAL, -- Need OP + ims-EmergencySupport5GC-r15 [7] ENUMERATED { true(0) } OPTIONAL, -- Need OR + eCallOverIMS-Support5GC-r15 [8] ENUMERATED { true(0) } OPTIONAL, -- Need OR + nonCriticalExtension [9] SystemInformationBlockType1-v1540-IEs OPTIONAL +} + +SystemInformationBlockType1-v1450-IEs ::= SEQUENCE { + tdd-Config-v1450 [0] TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR + nonCriticalExtension [1] SystemInformationBlockType1-v1530-IEs OPTIONAL +} + +SystemInformationBlockType1-v1430-IEs ::= SEQUENCE { + eCallOverIMS-Support-r14 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + tdd-Config-v1430 [1] TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR + cellAccessRelatedInfoList-r14 [2] SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension [3] SystemInformationBlockType1-v1450-IEs OPTIONAL +} + +SystemInformationBlockType1-v1360-IEs ::= SEQUENCE { + cellSelectionInfoCE1-v1360 [0] CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1 + nonCriticalExtension [1] SystemInformationBlockType1-v1430-IEs OPTIONAL +} + +SystemInformationBlockType1-v1350-IEs ::= SEQUENCE { + cellSelectionInfoCE1-r13 [0] CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP + nonCriticalExtension [1] SystemInformationBlockType1-v1360-IEs OPTIONAL +} + +SystemInformationBlockType1-v1320-IEs ::= SEQUENCE { + freqHoppingParametersDL-r13 [0] SEQUENCE { + mpdcch-pdsch-HoppingNB-r13 [0] ENUMERATED { nb2(0), nb4(1) } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeA-r13 [1] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int1(0), int2(1), int4(2), int8(3) } + , + interval-TDD-r13 [1] ENUMERATED { int1(0), int5(1), int10(2), int20(3) + } + } OPTIONAL, -- Need OR + interval-DLHoppingConfigCommonModeB-r13 [2] EXPLICIT CHOICE { + interval-FDD-r13 [0] ENUMERATED { int2(0), int4(1), int8(2), int16(3) + }, + interval-TDD-r13 [1] ENUMERATED { int5(0), int10(1), int20(2), + int40(3) } + } OPTIONAL, -- Need OR + mpdcch-pdsch-HoppingOffset-r13 [3] INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR + } OPTIONAL, -- Cond Hopping + nonCriticalExtension [1] SystemInformationBlockType1-v1350-IEs OPTIONAL +} + +SystemInformationBlockType1-v1310-IEs ::= SEQUENCE { + hyperSFN-r13 [0] BIT STRING (SIZE (10)) OPTIONAL, -- Need OR + eDRX-Allowed-r13 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OR + cellSelectionInfoCE-r13 [2] CellSelectionInfoCE-r13 OPTIONAL, -- Need OP + bandwidthReducedAccessRelatedInfo-r13 [3] SEQUENCE { + si-WindowLength-BR-r13 [0] ENUMERATED { ms20(0), ms40(1), ms60(2), + ms80(3), ms120(4), ms160(5), ms200(6), spare(7) }, + si-RepetitionPattern-r13 [1] ENUMERATED { everyRF(0), every2ndRF(1), + every4thRF(2), every8thRF(3) }, + schedulingInfoList-BR-r13 [2] SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR + fdd-DownlinkOrTddSubframeBitmapBR-r13 [3] EXPLICIT CHOICE { + subframePattern10-r13 [0] BIT STRING (SIZE (10)), + subframePattern40-r13 [1] BIT STRING (SIZE (40)) + } OPTIONAL, -- Need OP + fdd-UplinkSubframeBitmapBR-r13 [4] BIT STRING (SIZE (10)) OPTIONAL, -- Need OP + startSymbolBR-r13 [5] INTEGER (1..4), + si-HoppingConfigCommon-r13 [6] ENUMERATED { on(0), off(1) }, + si-ValidityTime-r13 [7] ENUMERATED { true(0) } OPTIONAL, -- Need OP + systemInfoValueTagList-r13 [8] SystemInfoValueTagList-r13 OPTIONAL -- Need OR + } OPTIONAL, -- Cond BW-reduced + nonCriticalExtension [4] SystemInformationBlockType1-v1320-IEs OPTIONAL +} + +SystemInformationBlockType1-v1250-IEs ::= SEQUENCE { + cellAccessRelatedInfo-v1250 [0] SEQUENCE { + category0Allowed-r12 [0] ENUMERATED { true(0) } OPTIONAL -- Need OP + }, + cellSelectionInfo-v1250 [1] CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2 + freqBandIndicatorPriority-r12 [2] ENUMERATED { true(0) } OPTIONAL, -- Cond mFBI + nonCriticalExtension [3] SystemInformationBlockType1-v1310-IEs OPTIONAL +} + +SystemInformationBlockType1-v1130-IEs ::= SEQUENCE { + tdd-Config-v1130 [0] TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR + cellSelectionInfo-v1130 [1] CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ + nonCriticalExtension [2] SystemInformationBlockType1-v1250-IEs OPTIONAL +} + +-- Regular non critical extensions +SystemInformationBlockType1-v920-IEs ::= SEQUENCE { + ims-EmergencySupport-r9 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + cellSelectionInfo-v920 [1] CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ + nonCriticalExtension [2] SystemInformationBlockType1-v1130-IEs OPTIONAL +} + +SystemInformationBlockType1-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + SystemInformationBlockType1-v8h0-IEs) OPTIONAL, + nonCriticalExtension [1] SystemInformationBlockType1-v920-IEs OPTIONAL +} + +SystemInformationBlockType1 ::= SEQUENCE { + cellAccessRelatedInfo [0] SEQUENCE { + plmn-IdentityList [0] PLMN-IdentityList, + trackingAreaCode [1] TrackingAreaCode, + cellIdentity [2] CellIdentity, + cellBarred [3] ENUMERATED { barred(0), notBarred(1) }, + intraFreqReselection [4] ENUMERATED { allowed(0), notAllowed(1) }, + csg-Indication [5] BOOLEAN, + csg-Identity [6] CSG-Identity OPTIONAL -- Need OR + }, + cellSelectionInfo [1] SEQUENCE { + q-RxLevMin [0] Q-RxLevMin, + q-RxLevMinOffset [1] INTEGER (1..8) OPTIONAL -- Need OP + }, + p-Max [2] P-Max OPTIONAL, -- Need OP + freqBandIndicator [3] FreqBandIndicator, + schedulingInfoList [4] SchedulingInfoList, + tdd-Config [5] TDD-Config OPTIONAL, -- Cond TDD + si-WindowLength [6] ENUMERATED { ms1(0), ms2(1), ms5(2), ms10(3), ms15(4), + ms20(5), ms40(6) }, + systemInfoValueTag [7] INTEGER (0..31), + nonCriticalExtension [8] SystemInformationBlockType1-v890-IEs OPTIONAL +} + +SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 + +SIB-Type-MBMS-r14 ::= ENUMERATED { sibType10(0), sibType11(1), + sibType12-v920(2), sibType13-v920(3), sibType15-v1130(4), sibType16-v1130(5) + , ... } + +BLER-Range-r12 ::= INTEGER (0..31) + +NumberOfPreamblesSent-r11 ::= INTEGER (1..200) + +TimeSinceFailure-r11 ::= INTEGER (0..172800) + +TimeUntilReconnection-r16 ::= INTEGER (0..172800) + +CellGlobalIdEUTRA ::= SEQUENCE { + plmn-Identity [0] PLMN-Identity, + cellIdentity [1] CellIdentity +} + +VisitedCellInfo-r12 ::= SEQUENCE { + visitedCellId-r12 [0] EXPLICIT CHOICE { + cellGlobalId-r12 [0] CellGlobalIdEUTRA, + pci-arfcn-r12 [1] SEQUENCE { + physCellId-r12 [0] PhysCellId, + carrierFreq-r12 [1] ARFCN-ValueEUTRA-r9 + } + } OPTIONAL, + timeSpent-r12 [1] INTEGER (0..4095), + ... +} + +VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12 + +MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + +CQI-ReportModeAperiodic ::= ENUMERATED { rm12(0), rm20(1), rm22(2), rm30(3), + rm31(4), rm32-v1250(5), rm10-v1310(6), rm11-v1310(7) } + +CRI-ConfigIndex-r13 ::= INTEGER (0..1023) + +CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11) + +CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11) + +CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12) + +CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12) + +CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13) + +CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13) + +CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11) + +ResourceConfig-r13 ::= INTEGER (0..31) + +NZP-TransmissionComb-r14 ::= INTEGER (0..2) + +NZP-FrequencyDensity-r14 ::= ENUMERATED { d1(0), d2(1), d3(2) } + +CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11) + +CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13) + +CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13) + +CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11) + +DataInactivityTimer-r14 ::= ENUMERATED { s1(0), s2(1), s3(2), s5(3), s7(4), + s10(5), s15(6), s20(7), s40(8), s50(9), s60(10), s80(11), s100(12), s120(13) + , s150(14), s180(15) } + +DRB-Identity ::= INTEGER (1..32) + +EPDCCH-SetConfigId-r11 ::= INTEGER (0..1) + +PeriodicBSR-Timer-r12 ::= ENUMERATED { sf5(0), sf10(1), sf16(2), sf20(3), + sf32(4), sf40(5), sf64(6), sf80(7), sf128(8), sf160(9), sf320(10), sf640(11) + , sf1280(12), sf2560(13), infinity(14), spare1(15) } + +RetxBSR-Timer-r12 ::= ENUMERATED { sf320(0), sf640(1), sf1280(2), sf2560(3), + sf5120(4), sf10240(5), spare2(6), spare1(7) } + +OffsetThresholdTA-r17 ::= ENUMERATED { ms0dot5(0), ms1(1), ms2(2), ms3(3), + ms4(4), ms5(5), ms6(6), ms7(7), ms8(8), ms9(9), ms10(10), ms11(11), ms12(12) + , ms13(13), ms14(14), ms15(15) } + +SR-ProhibitTimerOffset-r17 ::= ENUMERATED { ms90(0), ms180(1), ms270(2), + ms360(3), ms450(4), ms540(5), ms1080(6), spare(7) } + +STAG-Id-r11 ::= INTEGER (1..maxSTAG-r11) + +PDCCH-CandidateReductionValue-r13 ::= ENUMERATED { n0(0), n33(1), n66(2), + n100(3) } + +PDCCH-CandidateReductionValue-r14 ::= ENUMERATED { n0(0), n50(1), n100(2), + n150(3) } + +DiscardTimerExt-r17 ::= ENUMERATED { ms2000(0), spare(1) } + +PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) + +ShortTTI-Length-r15 ::= ENUMERATED { slot(0), subslot(1) } + +RSRP-ChangeThresh-r16 ::= ENUMERATED { dB4(0), dB6(1), dB8(2), dB10(3), dB14(4) + , dB18(5), dB22(6), dB26(7), dB30(8), dB34(9), spare6(10), spare5(11), + spare4(12), spare3(13), spare2(14), spare1(15) } + +PUR-ConfigID-r16 ::= BIT STRING (SIZE (20)) + +P-a ::= ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), dB-1dot77(3), dB0(4), + dB1(5), dB2(6), dB3(7) } + +SN-FieldLength ::= ENUMERATED { size5(0), size10(1) } + +SN-FieldLength-r15 ::= ENUMERATED { size5(0), size10(1), size16-r15(2) } + +T-PollRetransmit ::= ENUMERATED { ms5(0), ms10(1), ms15(2), ms20(3), ms25(4), + ms30(5), ms35(6), ms40(7), ms45(8), ms50(9), ms55(10), ms60(11), ms65(12), + ms70(13), ms75(14), ms80(15), ms85(16), ms90(17), ms95(18), ms100(19), + ms105(20), ms110(21), ms115(22), ms120(23), ms125(24), ms130(25), ms135(26) + , ms140(27), ms145(28), ms150(29), ms155(30), ms160(31), ms165(32), + ms170(33), ms175(34), ms180(35), ms185(36), ms190(37), ms195(38), ms200(39) + , ms205(40), ms210(41), ms215(42), ms220(43), ms225(44), ms230(45), + ms235(46), ms240(47), ms245(48), ms250(49), ms300(50), ms350(51), ms400(52) + , ms450(53), ms500(54), ms800-v1310(55), ms1000-v1310(56), ms2000-v1310(57) + , ms4000-v1310(58), spare5(59), spare4(60), spare3(61), spare2(62), + spare1(63) } + +PollPDU ::= ENUMERATED { p4(0), p8(1), p16(2), p32(3), p64(4), p128(5), p256(6) + , pInfinity(7) } + +PollPDU-v1310 ::= ENUMERATED { p512(0), p1024(1), p2048(2), p4096(3), p6144(4) + , p8192(5), p12288(6), p16384(7) } + +PollPDU-r15 ::= ENUMERATED { p4(0), p8(1), p16(2), p32(3), p64(4), p128(5), + p256(6), p512(7), p1024(8), p2048-r15(9), p4096-r15(10), p6144-r15(11), + p8192-r15(12), p12288-r15(13), p16384-r15(14), pInfinity(15) } + +PollByte ::= ENUMERATED { kB25(0), kB50(1), kB75(2), kB100(3), kB125(4), + kB250(5), kB375(6), kB500(7), kB750(8), kB1000(9), kB1250(10), kB1500(11), + kB2000(12), kB3000(13), kBinfinity(14), spare1(15) } + +PollByte-r14 ::= ENUMERATED { kB1(0), kB2(1), kB5(2), kB8(3), kB10(4), kB15(5) + , kB3500(6), kB4000(7), kB4500(8), kB5000(9), kB5500(10), kB6000(11), + kB6500(12), kB7000(13), kB7500(14), kB8000(15), kB9000(16), kB10000(17), + kB11000(18), kB12000(19), kB13000(20), kB14000(21), kB15000(22), kB16000(23) + , kB17000(24), kB18000(25), kB19000(26), kB20000(27), kB25000(28), + kB30000(29), kB35000(30), kB40000(31) } + +T-Reordering ::= ENUMERATED { ms0(0), ms5(1), ms10(2), ms15(3), ms20(4), + ms25(5), ms30(6), ms35(7), ms40(8), ms45(9), ms50(10), ms55(11), ms60(12), + ms65(13), ms70(14), ms75(15), ms80(16), ms85(17), ms90(18), ms95(19), + ms100(20), ms110(21), ms120(22), ms130(23), ms140(24), ms150(25), ms160(26) + , ms170(27), ms180(28), ms190(29), ms200(30), ms1600-v1310(31) } + +T-ReorderingExt-r17 ::= ENUMERATED { ms2200(0), ms3200(1) } + +T-StatusProhibit ::= ENUMERATED { ms0(0), ms5(1), ms10(2), ms15(3), ms20(4), + ms25(5), ms30(6), ms35(7), ms40(8), ms45(9), ms50(10), ms55(11), ms60(12), + ms65(13), ms70(14), ms75(15), ms80(16), ms85(17), ms90(18), ms95(19), + ms100(20), ms105(21), ms110(22), ms115(23), ms120(24), ms125(25), ms130(26) + , ms135(27), ms140(28), ms145(29), ms150(30), ms155(31), ms160(32), + ms165(33), ms170(34), ms175(35), ms180(36), ms185(37), ms190(38), ms195(39) + , ms200(40), ms205(41), ms210(42), ms215(43), ms220(44), ms225(45), + ms230(46), ms235(47), ms240(48), ms245(49), ms250(50), ms300(51), ms350(52) + , ms400(53), ms450(54), ms500(55), ms800-v1310(56), ms1000-v1310(57), + ms1200-v1310(58), ms1600-v1310(59), ms2000-v1310(60), ms2400-v1310(61), + spare2(62), spare1(63) } + +SRS-AntennaPort ::= ENUMERATED { an1(0), an2(1), an4(2), spare1(3) } + +DCI7-Candidates-r15 ::= INTEGER (0..6) + +SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14) + +SPS-ConfigIndex-r15 ::= INTEGER (1..maxConfigSPS-r15) + +SubframeAssignment-r15 ::= ENUMERATED { sa0(0), sa1(1), sa2(2), sa3(3), sa4(4) + , sa5(5), sa6(6) } + +NextHopChainingCount ::= INTEGER (0..7) + +CipheringAlgorithm-r12 ::= ENUMERATED { eea0(0), eea1(1), eea2(2), + eea3-v1130(3), spare4(4), spare3(5), spare2(6), spare1(7), ... } + +ShortMAC-I ::= BIT STRING (SIZE (16)) + +CDMA2000-Type ::= ENUMERATED { type1XRTT(0), typeHRPD(1) } + +CellIndex ::= INTEGER (1..maxCellMeas) + +CondReconfigurationId-r16 ::= INTEGER (1..maxCondConfig-r16) + +MobilityParametersCDMA2000 ::= OCTET STRING + +PhysCellIdUTRA-FDD ::= INTEGER (0..511) + +PhysCellIdUTRA-TDD ::= INTEGER (0..127) + +Q-OffsetRangeInterRAT ::= INTEGER (-15..15) + +SCellIndex-r10 ::= INTEGER (1..7) + +SCellIndex-r13 ::= INTEGER (1..31) + +ServCellIndex-r10 ::= INTEGER (0..7) + +ServCellIndex-r13 ::= INTEGER (0..31) + +BT-Name-r15 ::= OCTET STRING (SIZE (1..248)) + +CSI-RSRP-Range-r12 ::= INTEGER (0..97) + +Hysteresis ::= INTEGER (0..30) + +MBSFN-RSRQ-Range-r12 ::= INTEGER (0..31) + +MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12) + +MeasId ::= INTEGER (1..maxMeasId) + +MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12) + +MeasCycleSCell-r10 ::= ENUMERATED { sf160(0), sf256(1), sf320(2), sf512(3), + sf640(4), sf1024(5), sf1280(6), spare1(7) } + +MeasObjectId ::= INTEGER (1..maxObjectId) + +MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13) + +MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13) + +WLAN-BandIndicator-r13 ::= ENUMERATED { band2dot4(0), band5(1), band60-v1430(2) + , spare5(3), spare4(4), spare3(5), spare2(6), spare1(7), ... } + +CellIdentityNR-r15 ::= BIT STRING (SIZE (36)) + +TrackingAreaCodeNR-r15 ::= BIT STRING (SIZE (24)) + +MeasScaleFactor-r12 ::= ENUMERATED { sf-EUTRA-cf1(0), sf-EUTRA-cf2(1) } + +ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12 + +ReportConfigId ::= INTEGER (1..maxReportConfigId) + +ThresholdGERAN ::= INTEGER (0..63) + +ThresholdCDMA2000 ::= INTEGER (0..63) + +ReportInterval ::= ENUMERATED { ms120(0), ms240(1), ms480(2), ms640(3), + ms1024(4), ms2048(5), ms5120(6), ms10240(7), min1(8), min6(9), min12(10), + min30(11), min60(12), spare3(13), spare2(14), spare1(15) } + +RS-IndexNR-r15 ::= INTEGER (0..maxRS-Index-1-r15) + +RSRP-Range-v1360 ::= INTEGER (-17..-1) + +RSRP-RangeSL3-r12 ::= INTEGER (0..11) + +RSRQ-Range-v1250 ::= INTEGER (-30..46) + +RS-SINR-Range-r13 ::= INTEGER (0..127) + +RSSI-Range-r13 ::= INTEGER (0..76) + +TimeToTrigger ::= ENUMERATED { ms0(0), ms40(1), ms64(2), ms80(3), ms100(4), + ms128(5), ms160(6), ms256(7), ms320(8), ms480(9), ms512(10), ms640(11), + ms1024(12), ms1280(13), ms2560(14), ms5120(15) } + +WLAN-Channel-r13 ::= INTEGER (0..255) + +WLAN-Name-r15 ::= OCTET STRING (SIZE (1..32)) + +WLAN-RSSI-Range-r13 ::= INTEGER (0..141) + +WLAN-Status-r13 ::= ENUMERATED { successfulAssociation(0), + failureWlanRadioLink(1), failureWlanUnavailable(2), failureTimeout(3) } + +WLAN-Status-v1430 ::= ENUMERATED { suspended(0), resumed(1) } + +AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48)) + +AMF-Identifier-r15 ::= BIT STRING (SIZE (24)) + +C-RNTI ::= BIT STRING (SIZE (16)) + +DedicatedInfoCDMA2000 ::= OCTET STRING + +DedicatedInfoF1c-r16 ::= OCTET STRING + +DedicatedInfoNAS ::= OCTET STRING + +GNSS-ValidityDuration-r17 ::= ENUMERATED { s10(0), s20(1), s30(2), s40(3), + s50(4), s60(5), min5(6), min10(7), min15(8), min20(9), min25(10), min30(11) + , min50(12), min90(13), min120(14), infinity(15) } + +I-RNTI-r15 ::= BIT STRING (SIZE (40)) + +LoggingDuration-r10 ::= ENUMERATED { min10(0), min20(1), min40(2), min60(3), + min90(4), min120(5), spare2(6), spare1(7) } + +LoggingInterval-r10 ::= ENUMERATED { ms1280(0), ms2560(1), ms5120(2), + ms10240(3), ms20480(4), ms30720(5), ms40960(6), ms61440(7) } + +MMEC ::= BIT STRING (SIZE (8)) + +NG-5G-S-TMSI-r15 ::= BIT STRING (SIZE (48)) + +RAND-CDMA2000 ::= BIT STRING (SIZE (32)) + +RAT-Type ::= ENUMERATED { eutra(0), utra(1), geran-cs(2), geran-ps(3), + cdma2000-1XRTT(4), nr(5), eutra-nr(6), spare1(7), ... } + +ResumeIdentity-r13 ::= BIT STRING (SIZE (40)) + +RRC-TransactionIdentifier ::= INTEGER (0..3) + +ShortI-RNTI-r15 ::= BIT STRING (SIZE (24)) + +AccessStratumRelease ::= ENUMERATED { rel8(0), rel9(1), rel10(2), rel11(3), + rel12(4), rel13(5), rel14(6), rel15(7), ..., rel16(8), rel17(9) } + +ProcessingTimelineSet-r15 ::= ENUMERATED { set1(0), set2(1) } + +ScalingFactorSidelink-r16 ::= ENUMERATED { f0p4(0), f0p75(1), f0p8(2), f1(3) } + +SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) + +FeatureSetDL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +FeatureSetUL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15) + +CA-BandwidthClass-r10 ::= ENUMERATED { a(0), b(1), c(2), d(3), e(4), f(5), ... + } + +MIMO-CapabilityUL-r10 ::= ENUMERATED { twoLayers(0), fourLayers(1) } + +CA-MIMO-ParametersUL-r10 ::= SEQUENCE { + ca-BandwidthClassUL-r10 [0] CA-BandwidthClass-r10, + supportedMIMO-CapabilityUL-r10 [1] MIMO-CapabilityUL-r10 OPTIONAL +} + +BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10 + +MIMO-CapabilityDL-r10 ::= ENUMERATED { twoLayers(0), fourLayers(1), + eightLayers(2) } + +IntraBandContiguousCC-Info-r12 ::= SEQUENCE { + fourLayerTM3-TM4-perCC-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedMIMO-CapabilityDL-r12 [1] MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r12 [2] ENUMERATED { n1(0), n3(1), n4(2) } OPTIONAL +} + +CA-MIMO-ParametersDL-r13 ::= SEQUENCE { + ca-BandwidthClassDL-r13 [0] CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r13 [1] MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + intraBandContiguousCC-InfoList-r13 [3] SEQUENCE (SIZE (1..maxServCell-r13)) OF + IntraBandContiguousCC-Info-r12 +} + +BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13 + +V2X-BandwidthClass-r14 ::= ENUMERATED { a(0), b(1), c(2), d(3), e(4), f(5), ... + , c1-v1530(6) } + +SupportedBandUTRA-FDD ::= ENUMERATED { bandI(0), bandII(1), bandIII(2), + bandIV(3), bandV(4), bandVI(5), bandVII(6), bandVIII(7), bandIX(8), bandX(9) + , bandXI(10), bandXII(11), bandXIII(12), bandXIV(13), bandXV(14), + bandXVI(15), ..., bandXVII-8a0(16), bandXVIII-8a0(17), bandXIX-8a0(18), + bandXX-8a0(19), bandXXI-8a0(20), bandXXII-8a0(21), bandXXIII-8a0(22), + bandXXIV-8a0(23), bandXXV-8a0(24), bandXXVI-8a0(25), bandXXVII-8a0(26), + bandXXVIII-8a0(27), bandXXIX-8a0(28), bandXXX-8a0(29), bandXXXI-8a0(30), + bandXXXII-8a0(31) } + +SupportedBandUTRA-TDD128 ::= ENUMERATED { a(0), b(1), c(2), d(3), e(4), f(5), + g(6), h(7), i(8), j(9), k(10), l(11), m(12), n(13), o(14), p(15), ... } + +SupportedBandUTRA-TDD384 ::= ENUMERATED { a(0), b(1), c(2), d(3), e(4), f(5), + g(6), h(7), i(8), j(9), k(10), l(11), m(12), n(13), o(14), p(15), ... } + +SupportedBandUTRA-TDD768 ::= ENUMERATED { a(0), b(1), c(2), d(3), e(4), f(5), + g(6), h(7), i(8), j(9), k(10), l(11), m(12), n(13), o(14), p(15), ... } + +SupportedBandGERAN ::= ENUMERATED { gsm450(0), gsm480(1), gsm710(2), gsm750(3) + , gsm810(4), gsm850(5), gsm900P(6), gsm900E(7), gsm900R(8), gsm1800(9), + gsm1900(10), spare5(11), spare4(12), spare3(13), spare2(14), spare1(15), ... + } + +SL-TxPoolIdentity-r12 ::= INTEGER (1..maxSL-TxPool-r12) + +SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13..maxSL-TxPool-r13) + +SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1..maxSL-V2X-TxPool-r14) + +BCCH-BCH-Message ::= SEQUENCE { + message [0] BCCH-BCH-MessageType +} + +BCCH-BCH-Message-MBMS ::= SEQUENCE { + message [0] BCCH-BCH-MessageType-MBMS-r14 +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + systemInformation [0] SystemInformation, + systemInformationBlockType1 [1] SystemInformationBlockType1 + }, + messageClassExtension [1] SEQUENCE { + + } +} + +BCCH-DL-SCH-Message ::= SEQUENCE { + message [0] EXPLICIT BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + systemInformation-BR-r13 [0] SystemInformation-BR-r13, + systemInformationBlockType1-BR-r13 [1] SystemInformationBlockType1-BR-r13 + }, + messageClassExtension [1] SEQUENCE { + + } +} + +BCCH-DL-SCH-Message-BR ::= SEQUENCE { + message [0] EXPLICIT BCCH-DL-SCH-MessageType-BR-r13 +} + +PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity + +SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14 + +SchedulingInfo-MBMS-r14 ::= SEQUENCE { + si-Periodicity-r14 [0] ENUMERATED { rf16(0), rf32(1), rf64(2), rf128(3), + rf256(4), rf512(5) }, + sib-MappingInfo-r14 [1] SIB-MappingInfo-MBMS-r14 +} + +SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14 + + +NonMBSFN-SubframeConfig-r14 ::= SEQUENCE { + radioFrameAllocationPeriod-r14 [0] ENUMERATED { rf4(0), rf8(1), rf16(2), + rf32(3), rf64(4), rf128(5), rf512(6) }, + radioFrameAllocationOffset-r14 [1] INTEGER (0..7), + subframeAllocation-r14 [2] BIT STRING (SIZE (9)) +} + +SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE { + cellAccessRelatedInfo-r14 [0] SEQUENCE { + plmn-IdentityList-r14 [0] PLMN-IdentityList-MBMS-r14, + trackingAreaCode-r14 [1] TrackingAreaCode, + cellIdentity-r14 [2] CellIdentity + }, + freqBandIndicator-r14 [1] FreqBandIndicator-r11, + multiBandInfoList-r14 [2] MultiBandInfoList-r11 OPTIONAL, -- Need OR + schedulingInfoList-MBMS-r14 [3] SchedulingInfoList-MBMS-r14, + si-WindowLength-r14 [4] ENUMERATED { ms1(0), ms2(1), ms5(2), ms10(3), + ms15(4), ms20(5), ms40(6), ms80(7) }, + systemInfoValueTag-r14 [5] INTEGER (0..31), + nonMBSFN-SubframeConfig-r14 [6] NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR + pdsch-ConfigCommon-r14 [7] PDSCH-ConfigCommon, + systemInformationBlockType13-r14 [8] SystemInformationBlockType13-r9 + OPTIONAL, --Need OR + cellAccessRelatedInfoList-r14 [9] SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF + CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR + nonCriticalExtension [10] SEQUENCE { + + } OPTIONAL +} + +BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + systemInformation-MBMS-r14 [0] SystemInformation-MBMS-r14, + systemInformationBlockType1-MBMS-r14 [1] + SystemInformationBlockType1-MBMS-r14 + }, + messageClassExtension [1] SEQUENCE { + + } +} + +BCCH-DL-SCH-Message-MBMS ::= SEQUENCE { + message [0] EXPLICIT BCCH-DL-SCH-MessageType-MBMS-r14 +} + +CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig + +PMCH-Config-r9 ::= SEQUENCE { + sf-AllocEnd-r9 [0] INTEGER (0..1535), + dataMCS-r9 [1] INTEGER (0..28), + mch-SchedulingPeriod-r9 [2] ENUMERATED { rf8(0), rf16(1), rf32(2), rf64(3), + rf128(4), rf256(5), rf512(6), rf1024(7) }, + ... +} + +TMGI-r9 ::= SEQUENCE { + plmn-Id-r9 [0] EXPLICIT CHOICE { + plmn-Index-r9 [0] INTEGER (1..maxPLMN-r11), + explicitValue-r9 [1] PLMN-Identity + }, + serviceId-r9 [1] OCTET STRING (SIZE (3)) +} + +MBMS-SessionInfo-r9 ::= SEQUENCE { + tmgi-r9 [0] TMGI-r9, + sessionId-r9 [1] OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR + logicalChannelIdentity-r9 [2] INTEGER (0..maxSessionPerPMCH-1), + ... +} + +MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9 + +PMCH-Info-r9 ::= SEQUENCE { + pmch-Config-r9 [0] PMCH-Config-r9, + mbms-SessionInfoList-r9 [1] MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9 + +PMCH-Config-r12 ::= SEQUENCE { + sf-AllocEnd-r12 [0] INTEGER (0..1535), + dataMCS-r12 [1] EXPLICIT CHOICE { + normal-r12 [0] INTEGER (0..28), + higerOrder-r12 [1] INTEGER (0..27) + }, + mch-SchedulingPeriod-r12 [2] ENUMERATED { rf4(0), rf8(1), rf16(2), rf32(3), + rf64(4), rf128(5), rf256(6), rf512(7), rf1024(8) }, + ..., + [[ + mch-SchedulingPeriod-v1430 [3] ENUMERATED { rf1(0), rf2(1) } OPTIONAL + ]] +} + +PMCH-InfoExt-r12 ::= SEQUENCE { + pmch-Config-r12 [0] PMCH-Config-r12, + mbms-SessionInfoList-r12 [1] MBMS-SessionInfoList-r9, + ... +} + +PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12 + +CommonSF-AllocPatternList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF + MBSFN-SubframeConfig-v1430 + +MBSFN-SubframeConfig-v1610 ::= SEQUENCE { + subframeAllocation-v1610 [0] EXPLICIT CHOICE { + oneFrame-v1610 [0] BIT STRING (SIZE (2)), + fourFrames-v1610 [1] BIT STRING (SIZE (8)) + } +} + +CommonSF-AllocPatternList-v1610 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF + MBSFN-SubframeConfig-v1610 + +MBSFNAreaConfiguration-v1610-IEs ::= SEQUENCE { + commonSF-Alloc-v1610 [0] CommonSF-AllocPatternList-v1610 OPTIONAL, -- Need OR + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE { + commonSF-Alloc-v1430 [0] CommonSF-AllocPatternList-v1430, + nonCriticalExtension [1] MBSFNAreaConfiguration-v1610-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE { + pmch-InfoListExt-r12 [0] PMCH-InfoListExt-r12 OPTIONAL, -- Need OR + nonCriticalExtension [1] MBSFNAreaConfiguration-v1430-IEs OPTIONAL +} + +MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] MBSFNAreaConfiguration-v1250-IEs OPTIONAL +} + +MBSFNAreaConfiguration-r9 ::= SEQUENCE { + commonSF-Alloc-r9 [0] CommonSF-AllocPatternList-r9, + commonSF-AllocPeriod-r9 [1] ENUMERATED { rf4(0), rf8(1), rf16(2), rf32(3), + rf64(4), rf128(5), rf256(6) }, + pmch-InfoList-r9 [2] PMCH-InfoList-r9, + nonCriticalExtension [3] MBSFNAreaConfiguration-v930-IEs OPTIONAL +} + +CountingRequestInfo-r10 ::= SEQUENCE { + tmgi-r10 [0] TMGI-r9, + ... +} + +CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10 + +MBMSCountingRequest-r10 ::= SEQUENCE { + countingRequestList-r10 [0] CountingRequestList-r10, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +MCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + mbsfnAreaConfiguration-r9 [0] MBSFNAreaConfiguration-r9 + }, + later [1] EXPLICIT CHOICE { + c2 [0] EXPLICIT CHOICE { + mbmsCountingRequest-r10 [0] MBMSCountingRequest-r10 + }, + messageClassExtension [1] SEQUENCE { + + } + } +} + +MCCH-Message ::= SEQUENCE { + message [0] EXPLICIT MCCH-MessageType +} + +S-TMSI ::= SEQUENCE { + mmec [0] MMEC, + m-TMSI [1] BIT STRING (SIZE (32)) +} + +IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit + +PagingUE-Identity ::= CHOICE { + s-TMSI [0] S-TMSI, + imsi [1] IMSI, + ..., + ng-5G-S-TMSI-r15 [2] NG-5G-S-TMSI-r15, + fullI-RNTI-r15 [3] I-RNTI-r15 +} + +PagingRecord ::= SEQUENCE { + ue-Identity [0] EXPLICIT PagingUE-Identity, + cn-Domain [1] ENUMERATED { ps(0), cs(1) }, + ... +} + +PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord + +PagingRecord-v1610 ::= SEQUENCE { + accessType-r16 [0] ENUMERATED { non3GPP(0) } OPTIONAL, -- Need ON + mt-EDT-r16 [1] ENUMERATED { true(0) } OPTIONAL -- Need ON +} + +PagingRecordList-v1610 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-v1610 + +PagingRecord-v1700 ::= SEQUENCE { + pagingCause-r17 [0] ENUMERATED { voice(0) } OPTIONAL -- Need ON +} + +PagingRecordList-v1700 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-v1700 + +Paging-v1700-IEs ::= SEQUENCE { + pagingRecordList-v1700 [0] PagingRecordList-v1700 OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +Paging-v1610-IEs ::= SEQUENCE { + pagingRecordList-v1610 [0] PagingRecordList-v1610 OPTIONAL, -- Need ON + uac-ParamModification-r16 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [2] Paging-v1700-IEs OPTIONAL +} + +Paging-v1530-IEs ::= SEQUENCE { + accessType [0] ENUMERATED { non3GPP(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] Paging-v1610-IEs OPTIONAL +} + +Paging-v1310-IEs ::= SEQUENCE { + redistributionIndication-r13 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + systemInfoModification-eDRX-r13 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [2] Paging-v1530-IEs OPTIONAL +} + +Paging-v1130-IEs ::= SEQUENCE { + eab-ParamModification-r11 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] Paging-v1310-IEs OPTIONAL +} + +Paging-v920-IEs ::= SEQUENCE { + cmas-Indication-r9 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] Paging-v1130-IEs OPTIONAL +} + +Paging-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] Paging-v920-IEs OPTIONAL +} + +Paging ::= SEQUENCE { + pagingRecordList [0] PagingRecordList OPTIONAL, -- Need ON + systemInfoModification [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + etws-Indication [2] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [3] Paging-v890-IEs OPTIONAL +} + +PCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + paging [0] Paging + }, + messageClassExtension [1] SEQUENCE { + + } +} + +PCCH-Message ::= SEQUENCE { + message [0] EXPLICIT PCCH-MessageType +} + +UL-AM-RLC ::= SEQUENCE { + t-PollRetransmit [0] T-PollRetransmit, + pollPDU [1] PollPDU, + pollByte [2] PollByte, + maxRetxThreshold [3] ENUMERATED { t1(0), t2(1), t3(2), t4(3), t6(4), t8(5), + t16(6), t32(7) } +} + +DL-AM-RLC ::= SEQUENCE { + t-Reordering [0] T-Reordering, + t-StatusProhibit [1] T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength [0] SN-FieldLength +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength [0] SN-FieldLength, + t-Reordering [1] T-Reordering +} + +RLC-Config ::= CHOICE { + am [0] SEQUENCE { + ul-AM-RLC [0] UL-AM-RLC, + dl-AM-RLC [1] DL-AM-RLC + }, + um-Bi-Directional [1] SEQUENCE { + ul-UM-RLC [0] UL-UM-RLC, + dl-UM-RLC [1] DL-UM-RLC + }, + um-Uni-Directional-UL [2] SEQUENCE { + ul-UM-RLC [0] UL-UM-RLC + }, + um-Uni-Directional-DL [3] SEQUENCE { + dl-UM-RLC [0] DL-UM-RLC + }, + ... +} + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters [0] SEQUENCE { + priority [0] INTEGER (1..16), + prioritisedBitRate [1] ENUMERATED { kBps0(0), kBps8(1), kBps16(2), + kBps32(3), kBps64(4), kBps128(5), kBps256(6), infinity(7), + kBps512-v1020(8), kBps1024-v1020(9), kBps2048-v1020(10), spare5(11), + spare4(12), spare3(13), spare2(14), spare1(15) }, + bucketSizeDuration [2] ENUMERATED { ms50(0), ms100(1), ms150(2), ms300(3) + , ms500(4), ms1000(5), spare2(6), spare1(7) }, + logicalChannelGroup [3] INTEGER (0..3) OPTIONAL -- Need OR + } OPTIONAL, + ..., + [[ + logicalChannelSR-Mask-r9 [1] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + logicalChannelSR-Prohibit-r12 [2] BOOLEAN OPTIONAL + ]], + [[ + laa-UL-Allowed-r14 [3] BOOLEAN OPTIONAL, + bitRateQueryProhibitTimer-r14 [4] ENUMERATED { s0(0), s0dot4(1), + s0dot8(2), s1dot6(3), s3(4), s6(5), s12(6), s30(7) } OPTIONAL + ]], + [[ + allowedTTI-Lengths-r15 [5] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + shortTTI-r15 [0] BOOLEAN, + subframeTTI-r15 [1] BOOLEAN + } + } OPTIONAL, + logicalChannelSR-Restriction-r15 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { spucch(0), pucch(1) } + } OPTIONAL, + channelAccessPriority-r15 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] INTEGER (1..4) + } OPTIONAL, + lch-CellRestriction-r15 [8] BIT STRING (SIZE (maxServCell-r13)) OPTIONAL + ]], + [[ + bitRateMultiplier-r16 [9] ENUMERATED { x40(0), x70(1), x100(2), x200(3) } + OPTIONAL + ]] +} + +RLC-Config-v1530 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + rlc-OutOfOrderDelivery-r15 [0] ENUMERATED { true(0) } + } +} + +UL-AM-RLC-r15 ::= SEQUENCE { + t-PollRetransmit-r15 [0] T-PollRetransmit, + pollPDU-r15 [1] PollPDU-r15, + pollByte-r15 [2] PollByte-r14, + maxRetxThreshold-r15 [3] ENUMERATED { t1(0), t2(1), t3(2), t4(3), t6(4), + t8(5), t16(6), t32(7) }, + extended-RLC-LI-Field-r15 [4] BOOLEAN +} + +DL-AM-RLC-r15 ::= SEQUENCE { + t-Reordering-r15 [0] T-Reordering, + t-StatusProhibit-r15 [1] T-StatusProhibit, + extended-RLC-LI-Field-r15 [2] BOOLEAN +} + +DL-UM-RLC-r15 ::= SEQUENCE { + sn-FieldLength-r15 [0] SN-FieldLength-r15, + t-Reordering-r15 [1] T-Reordering +} + +RLC-Config-r15 ::= SEQUENCE { + mode-r15 [0] EXPLICIT CHOICE { + am-r15 [0] SEQUENCE { + ul-AM-RLC-r15 [0] UL-AM-RLC-r15, + dl-AM-RLC-r15 [1] DL-AM-RLC-r15 + }, + um-Bi-Directional-r15 [1] SEQUENCE { + ul-UM-RLC-r15 [0] UL-UM-RLC, + dl-UM-RLC-r15 [1] DL-UM-RLC-r15 + }, + um-Uni-Directional-UL-r15 [2] SEQUENCE { + ul-UM-RLC-r15 [0] UL-UM-RLC + }, + um-Uni-Directional-DL-r15 [3] SEQUENCE { + dl-UM-RLC-r15 [0] DL-UM-RLC-r15 + } + }, + reestablishRLC-r15 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + rlc-OutOfOrderDelivery-r15 [2] ENUMERATED { true(0) } OPTIONAL, + ... +} + +RLC-BearerConfig-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + rlc-Config-r15 [0] RLC-Config-r15 OPTIONAL, -- Need ON + logicalChannelIdentityConfig-r15 [1] EXPLICIT CHOICE { + logicalChannelIdentity-r15 [0] INTEGER (1..10), + logicalChannelIdentityExt-r15 [1] INTEGER (32..38) + }, + logicalChannelConfig-r15 [2] LogicalChannelConfig OPTIONAL -- Need ON + } +} + +RLC-Config-v1510 ::= SEQUENCE { + reestablishRLC-r15 [0] ENUMERATED { true(0) } +} + +RLC-Config-v1700 ::= SEQUENCE { + t-ReorderingExt-r17 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT T-ReorderingExt-r17 + } +} + +SRB-ToAddMod ::= SEQUENCE { + srb-Identity [0] INTEGER (1..2), + rlc-Config [1] EXPLICIT CHOICE { + explicitValue [0] EXPLICIT RLC-Config, + defaultValue [1] NULL + } OPTIONAL, -- Cond Setup + logicalChannelConfig [2] EXPLICIT CHOICE { + explicitValue [0] LogicalChannelConfig, + defaultValue [1] NULL + } OPTIONAL, + ..., + [[ + pdcp-verChange-r15 [3] ENUMERATED { true(0) } OPTIONAL, + rlc-Config-v1530 [4] EXPLICIT RLC-Config-v1530 OPTIONAL, + rlc-BearerConfigSecondary-r15 [5] EXPLICIT RLC-BearerConfig-r15 OPTIONAL + , + srb-Identity-v1530 [6] INTEGER (4) OPTIONAL + ]], + [[ + rlc-Config-v1560 [7] RLC-Config-v1510 OPTIONAL + ]], + [[ + rlc-Config-v1700 [8] RLC-Config-v1700 OPTIONAL + ]] +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod + +EthernetHeaderCompression-r16 ::= SEQUENCE { + ehc-Common-r16 [0] SEQUENCE { + ehc-CID-Length-r16 [0] ENUMERATED { bits7(0), bits15(1) } + }, + ehc-Downlink-r16 [1] SEQUENCE { + drb-ContinueEHC-DL-r16 [0] ENUMERATED { true(0) } OPTIONAL -- Need OR + } OPTIONAL, -- Need ON + ehc-Uplink-r16 [2] SEQUENCE { + maxCID-EHC-UL-r16 [0] INTEGER (1..32767), + drb-ContinueEHC-UL-r16 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR + } OPTIONAL, + ... +} + +PDCP-Config ::= SEQUENCE { + discardTimer [0] ENUMERATED { ms50(0), ms100(1), ms150(2), ms300(3), + ms500(4), ms750(5), ms1500(6), infinity(7) } OPTIONAL, -- Cond Setup + rlc-AM [1] SEQUENCE { + statusReportRequired [0] BOOLEAN + } OPTIONAL, -- Cond Rlc-AM-UM + rlc-UM [2] SEQUENCE { + pdcp-SN-Size [0] ENUMERATED { len7bits(0), len12bits(1) } + } OPTIONAL, -- Cond Rlc-UM + headerCompression [3] EXPLICIT CHOICE { + notUsed [0] NULL, + rohc [1] SEQUENCE { + maxCID [0] INTEGER (1..16383) DEFAULT 15, + profiles [1] SEQUENCE { + profile0x0001 [0] BOOLEAN, + profile0x0002 [1] BOOLEAN, + profile0x0003 [2] BOOLEAN, + profile0x0004 [3] BOOLEAN, + profile0x0006 [4] BOOLEAN, + profile0x0101 [5] BOOLEAN, + profile0x0102 [6] BOOLEAN, + profile0x0103 [7] BOOLEAN, + profile0x0104 [8] BOOLEAN + }, + ... + } + }, + ..., + [[ + rn-IntegrityProtection-r10 [4] ENUMERATED { enabled(0) } OPTIONAL + ]], + [[ + pdcp-SN-Size-v1130 [5] ENUMERATED { len15bits(0) } OPTIONAL + ]], + [[ + ul-DataSplitDRB-ViaSCG-r12 [6] BOOLEAN OPTIONAL, + t-Reordering-r12 [7] ENUMERATED { ms0(0), ms20(1), ms40(2), ms60(3), + ms80(4), ms100(5), ms120(6), ms140(7), ms160(8), ms180(9), ms200(10), + ms220(11), ms240(12), ms260(13), ms280(14), ms300(15), ms500(16), + ms750(17), spare14(18), spare13(19), spare12(20), spare11(21), + spare10(22), spare9(23), spare8(24), spare7(25), spare6(26), + spare5(27), spare4(28), spare3(29), spare2(30), spare1(31) } OPTIONAL + ]], + [[ + ul-DataSplitThreshold-r13 [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { b0(0), b100(1), b200(2), b400(3), b800(4), + b1600(5), b3200(6), b6400(7), b12800(8), b25600(9), b51200(10), + b102400(11), b204800(12), b409600(13), b819200(14), spare1(15) } + } OPTIONAL, + pdcp-SN-Size-v1310 [9] ENUMERATED { len18bits(0) } OPTIONAL, + statusFeedback-r13 [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + statusPDU-TypeForPolling-r13 [0] ENUMERATED { type1(0), type2(1) } + OPTIONAL, -- Need ON + statusPDU-Periodicity-Type1-r13 [1] ENUMERATED { ms5(0), ms10(1), + ms20(2), ms30(3), ms40(4), ms50(5), ms60(6), ms70(7), ms80(8), + ms90(9), ms100(10), ms150(11), ms200(12), ms300(13), ms500(14), + ms1000(15), ms2000(16), ms5000(17), ms10000(18), ms20000(19), + ms50000(20) } OPTIONAL, -- Need ON + statusPDU-Periodicity-Type2-r13 [2] ENUMERATED { ms5(0), ms10(1), + ms20(2), ms30(3), ms40(4), ms50(5), ms60(6), ms70(7), ms80(8), + ms90(9), ms100(10), ms150(11), ms200(12), ms300(13), ms500(14), + ms1000(15), ms2000(16), ms5000(17), ms10000(18), ms20000(19), + ms50000(20) } OPTIONAL, -- Need ON + statusPDU-Periodicity-Offset-r13 [3] ENUMERATED { ms1(0), ms2(1), + ms5(2), ms10(3), ms25(4), ms50(5), ms100(6), ms250(7), ms500(8) + , ms2500(9), ms5000(10), ms25000(11) } OPTIONAL -- Need ON + } + } OPTIONAL + ]], + [[ + ul-LWA-Config-r14 [11] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + ul-LWA-DRB-ViaWLAN-r14 [0] BOOLEAN, + ul-LWA-DataSplitThreshold-r14 [1] ENUMERATED { b0(0), b100(1), + b200(2), b400(3), b800(4), b1600(5), b3200(6), b6400(7), + b12800(8), b25600(9), b51200(10), b102400(11), b204800(12), + b409600(13), b819200(14) } OPTIONAL -- Need OR + } + } OPTIONAL, + uplinkOnlyHeaderCompression-r14 [12] EXPLICIT CHOICE { + notUsed-r14 [0] NULL, + rohc-r14 [1] SEQUENCE { + maxCID-r14 [0] INTEGER (1..16383) DEFAULT 15, + profiles-r14 [1] SEQUENCE { + profile0x0006-r14 [0] BOOLEAN + }, + ... + } + } OPTIONAL + ]], + [[ + uplinkDataCompression-r15 [13] SEQUENCE { + bufferSize-r15 [0] ENUMERATED { kbyte2(0), kbyte4(1), kbyte8(2), + spare1(3) }, + dictionary-r15 [1] ENUMERATED { sip-SDP(0), operator(1) } OPTIONAL, + ... + } OPTIONAL, + pdcp-DuplicationConfig-r15 [14] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pdcp-Duplication-r15 [0] ENUMERATED { configured(0), activated(1) } + } + } OPTIONAL + ]], + [[ + ethernetHeaderCompression-r16 [15] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT EthernetHeaderCompression-r16 + } OPTIONAL + ]], + [[ + discardTimerExt-r17 [16] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT DiscardTimerExt-r17 + } OPTIONAL + ]] +} + +RLC-Config-v1250 ::= SEQUENCE { + ul-extended-RLC-LI-Field-r12 [0] BOOLEAN, + dl-extended-RLC-LI-Field-r12 [1] BOOLEAN +} + +RLC-Config-v1310 ::= SEQUENCE { + ul-extended-RLC-AM-SN-r13 [0] BOOLEAN, + dl-extended-RLC-AM-SN-r13 [1] BOOLEAN, + pollPDU-v1310 [2] PollPDU-v1310 OPTIONAL -- Need OR +} + +RLC-Config-v1430 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pollByte-r14 [0] PollByte-r14 + } +} + +DRB-ToAddMod ::= SEQUENCE { + eps-BearerIdentity [0] INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + drb-Identity [1] DRB-Identity, + pdcp-Config [2] PDCP-Config OPTIONAL, -- Cond PDCP + rlc-Config [3] EXPLICIT RLC-Config OPTIONAL, -- Cond SetupM + logicalChannelIdentity [4] INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM + logicalChannelConfig [5] LogicalChannelConfig OPTIONAL, + ..., + [[ + drb-TypeChange-r12 [6] ENUMERATED { toMCG(0) } OPTIONAL, + rlc-Config-v1250 [7] RLC-Config-v1250 OPTIONAL + ]], + [[ + rlc-Config-v1310 [8] RLC-Config-v1310 OPTIONAL, + drb-TypeLWA-r13 [9] BOOLEAN OPTIONAL, + drb-TypeLWIP-r13 [10] ENUMERATED { lwip(0), lwip-DL-only(1), + lwip-UL-only(2), eutran(3) } OPTIONAL + ]], + [[ + rlc-Config-v1430 [11] EXPLICIT RLC-Config-v1430 OPTIONAL, + lwip-UL-Aggregation-r14 [12] BOOLEAN OPTIONAL, + lwip-DL-Aggregation-r14 [13] BOOLEAN OPTIONAL, + lwa-WLAN-AC-r14 [14] ENUMERATED { ac-bk(0), ac-be(1), ac-vi(2), ac-vo(3) + } OPTIONAL + ]], + [[ + rlc-Config-v1510 [15] RLC-Config-v1510 OPTIONAL + ]], + [[ + rlc-Config-v1530 [16] EXPLICIT RLC-Config-v1530 OPTIONAL, + rlc-BearerConfigSecondary-r15 [17] EXPLICIT RLC-BearerConfig-r15 OPTIONAL + , + logicalChannelIdentity-r15 [18] INTEGER (32..38) OPTIONAL + ]], + [[ + daps-HO-r16 [19] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + rlc-Config-v1700 [20] RLC-Config-v1700 OPTIONAL + ]] +} + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + +DRX-Config ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + onDurationTimer [0] ENUMERATED { psf1(0), psf2(1), psf3(2), psf4(3), + psf5(4), psf6(5), psf8(6), psf10(7), psf20(8), psf30(9), psf40(10), + psf50(11), psf60(12), psf80(13), psf100(14), psf200(15) }, + drx-InactivityTimer [1] ENUMERATED { psf1(0), psf2(1), psf3(2), psf4(3), + psf5(4), psf6(5), psf8(6), psf10(7), psf20(8), psf30(9), psf40(10), + psf50(11), psf60(12), psf80(13), psf100(14), psf200(15), psf300(16), + psf500(17), psf750(18), psf1280(19), psf1920(20), psf2560(21), + psf0-v1020(22), spare9(23), spare8(24), spare7(25), spare6(26), + spare5(27), spare4(28), spare3(29), spare2(30), spare1(31) }, + drx-RetransmissionTimer [2] ENUMERATED { psf1(0), psf2(1), psf4(2), + psf6(3), psf8(4), psf16(5), psf24(6), psf33(7) }, + longDRX-CycleStartOffset [3] EXPLICIT CHOICE { + sf10 [0] INTEGER (0..9), + sf20 [1] INTEGER (0..19), + sf32 [2] INTEGER (0..31), + sf40 [3] INTEGER (0..39), + sf64 [4] INTEGER (0..63), + sf80 [5] INTEGER (0..79), + sf128 [6] INTEGER (0..127), + sf160 [7] INTEGER (0..159), + sf256 [8] INTEGER (0..255), + sf320 [9] INTEGER (0..319), + sf512 [10] INTEGER (0..511), + sf640 [11] INTEGER (0..639), + sf1024 [12] INTEGER (0..1023), + sf1280 [13] INTEGER (0..1279), + sf2048 [14] INTEGER (0..2047), + sf2560 [15] INTEGER (0..2559) + }, + shortDRX [4] SEQUENCE { + shortDRX-Cycle [0] ENUMERATED { sf2(0), sf5(1), sf8(2), sf10(3), + sf16(4), sf20(5), sf32(6), sf40(7), sf64(8), sf80(9), sf128(10), + sf160(11), sf256(12), sf320(13), sf512(14), sf640(15) }, + drxShortCycleTimer [1] INTEGER (1..16) + } OPTIONAL -- Need OR + } +} + +STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11 + +STAG-ToAddMod-r11 ::= SEQUENCE { + stag-Id-r11 [0] STAG-Id-r11, + timeAlignmentTimerSTAG-r11 [1] TimeAlignmentTimer, + ... +} + +STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11 + +DRX-Config-v1130 ::= SEQUENCE { + drx-RetransmissionTimer-v1130 [0] ENUMERATED { psf0-v1130(0) } OPTIONAL, --Need OR + longDRX-CycleStartOffset-v1130 [1] EXPLICIT CHOICE { + sf60-v1130 [0] INTEGER (0..59), + sf70-v1130 [1] INTEGER (0..69) + } OPTIONAL, --Need OR + shortDRX-Cycle-v1130 [2] ENUMERATED { sf4-v1130(0) } OPTIONAL --Need OR +} + +DRX-Config-v1310 ::= SEQUENCE { + longDRX-CycleStartOffset-v1310 [0] SEQUENCE { + sf60-v1310 [0] INTEGER (0..59) + } OPTIONAL --Need OR +} + +DRX-Config-r13 ::= SEQUENCE { + onDurationTimer-v1310 [0] ENUMERATED { psf300(0), psf400(1), psf500(2), + psf600(3), psf800(4), psf1000(5), psf1200(6), psf1600(7) } OPTIONAL, + --Need OR + drx-RetransmissionTimer-v1310 [1] ENUMERATED { psf40(0), psf64(1), psf80(2) + , psf96(3), psf112(4), psf128(5), psf160(6), psf320(7) } OPTIONAL, + --Need OR + drx-ULRetransmissionTimer-r13 [2] ENUMERATED { psf0(0), psf1(1), psf2(2), + psf4(3), psf6(4), psf8(5), psf16(6), psf24(7), psf33(8), psf40(9), + psf64(10), psf80(11), psf96(12), psf112(13), psf128(14), psf160(15), + psf320(16) } OPTIONAL + --Need OR +} + +DRX-Config-r15 ::= SEQUENCE { + drx-RetransmissionTimerShortTTI-r15 [0] ENUMERATED { tti10(0), tti20(1), + tti40(2), tti64(3), tti80(4), tti96(5), tti112(6), tti128(7), tti160(8), + tti320(9) } OPTIONAL, --Need OR + drx-UL-RetransmissionTimerShortTTI-r15 [1] ENUMERATED { tti0(0), tti1(1), + tti2(2), tti4(3), tti6(4), tti8(5), tti16(6), tti24(7), tti33(8), + tti40(9), tti64(10), tti80(11), tti96(12), tti112(13), tti128(14), + tti160(15), tti320(16) } OPTIONAL --Need OR +} + +MAC-MainConfig ::= SEQUENCE { + ul-SCH-Config [0] SEQUENCE { + maxHARQ-Tx [0] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n5(4), n6(5), + n7(6), n8(7), n10(8), n12(9), n16(10), n20(11), n24(12), n28(13), + spare2(14), spare1(15) } OPTIONAL, -- Need ON + periodicBSR-Timer [1] PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retxBSR-Timer [2] RetxBSR-Timer-r12, + ttiBundling [3] BOOLEAN + } OPTIONAL, -- Need ON + drx-Config [1] EXPLICIT DRX-Config OPTIONAL, -- Need ON + timeAlignmentTimerDedicated [2] TimeAlignmentTimer, + phr-Config [3] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + periodicPHR-Timer [0] ENUMERATED { sf10(0), sf20(1), sf50(2), sf100(3) + , sf200(4), sf500(5), sf1000(6), infinity(7) }, + prohibitPHR-Timer [1] ENUMERATED { sf0(0), sf10(1), sf20(2), sf50(3), + sf100(4), sf200(5), sf500(6), sf1000(7) }, + dl-PathlossChange [2] ENUMERATED { dB1(0), dB3(1), dB6(2), infinity(3) + } + } + } OPTIONAL, + ..., + [[ + sr-ProhibitTimer-r9 [4] INTEGER (0..7) OPTIONAL + ]], + [[ + mac-MainConfig-v1020 [5] SEQUENCE { + sCellDeactivationTimer-r10 [0] ENUMERATED { rf2(0), rf4(1), rf8(2), + rf16(3), rf32(4), rf64(5), rf128(6), spare(7) } OPTIONAL, -- Need OP + extendedBSR-Sizes-r10 [1] ENUMERATED { setup(0) } OPTIONAL, -- Need OR + extendedPHR-r10 [2] ENUMERATED { setup(0) } OPTIONAL -- Need OR + } OPTIONAL + ]], + [[ + stag-ToReleaseList-r11 [6] STAG-ToReleaseList-r11 OPTIONAL, + stag-ToAddModList-r11 [7] STAG-ToAddModList-r11 OPTIONAL, + drx-Config-v1130 [8] DRX-Config-v1130 OPTIONAL + ]], + [[ + e-HARQ-Pattern-r12 [9] BOOLEAN OPTIONAL, + dualConnectivityPHR [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + phr-ModeOtherCG-r12 [0] ENUMERATED { real(0), virtual(1) } + } + } OPTIONAL, + logicalChannelSR-Config-r12 [11] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 [0] ENUMERATED { sf20(0), + sf40(1), sf64(2), sf128(3), sf512(4), sf1024(5), sf2560(6), + spare1(7) } + } + } OPTIONAL + ]], + [[ + drx-Config-v1310 [12] DRX-Config-v1310 OPTIONAL, + extendedPHR2-r13 [13] BOOLEAN OPTIONAL, + eDRX-Config-CycleStartOffset-r13 [14] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + sf5120 [0] INTEGER (0..1), + sf10240 [1] INTEGER (0..3) + } + } OPTIONAL + ]], + [[ + drx-Config-r13 [15] EXPLICIT CHOICE { + release [0] NULL, + setup [1] DRX-Config-r13 + } OPTIONAL + ]], + [[ + skipUplinkTx-r14 [16] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + skipUplinkTxSPS-r14 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + skipUplinkTxDynamic-r14 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR + } + } OPTIONAL, + dataInactivityTimerConfig-r14 [17] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + dataInactivityTimer-r14 [0] DataInactivityTimer-r14 + } + } OPTIONAL + ]], + [[ + rai-Activation-r14 [18] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + shortTTI-AndSPT-r15 [19] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + drx-Config-r15 [0] DRX-Config-r15 OPTIONAL, -- Need ON + periodicBSR-Timer-r15 [1] ENUMERATED { sf1(0), sf5(1), sf10(2), + sf16(3), sf20(4), sf32(5), sf40(6), sf64(7), sf80(8), sf128(9), + sf160(10), sf320(11), sf640(12), sf1280(13), sf2560(14), + infinity(15) } OPTIONAL, + -- Need ON + proc-Timeline-r15 [2] ENUMERATED { nplus4set1(0), nplus6set1(1), + nplus6set2(2), nplus8set2(3) } OPTIONAL, -- Need ON + ssr-ProhibitTimer-r15 [3] INTEGER (0..7) OPTIONAL -- Need ON + } + } OPTIONAL, + mpdcch-UL-HARQ-ACK-FeedbackConfig-r15 [20] BOOLEAN OPTIONAL, + dormantStateTimers-r15 [21] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + sCellHibernationTimer-r15 [0] ENUMERATED { rf2(0), rf4(1), rf8(2), + rf16(3), rf32(4), rf64(5), rf128(6), spare(7) } OPTIONAL, -- Need OR + dormantSCellDeactivationTimer-r15 [1] ENUMERATED { rf2(0), rf4(1), + rf8(2), rf16(3), rf32(4), rf64(5), rf128(6), rf320(7), rf640(8) + , rf1280(9), rf2560(10), rf5120(11), rf10240(12), spare3(13), + spare2(14), spare1(15) } OPTIONAL -- Need OR + } + } OPTIONAL + ]], + [[ + ce-ETWS-CMAS-RxInConn-r16 [22] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + offsetThresholdTA-r17 [23] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT OffsetThresholdTA-r17 + } OPTIONAL, + sr-ProhibitTimerOffset-r17 [24] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SR-ProhibitTimerOffset-r17 + } OPTIONAL + ]] +} + +N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +SPS-ConfigDL ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + semiPersistSchedIntervalDL [0] ENUMERATED { sf10(0), sf20(1), sf32(2), + sf40(3), sf64(4), sf80(5), sf128(6), sf160(7), sf320(8), sf640(9), + spare6(10), spare5(11), spare4(12), spare3(13), spare2(14), spare1(15) + }, + numberOfConfSPS-Processes [1] INTEGER (1..8), + n1PUCCH-AN-PersistentList [2] N1PUCCH-AN-PersistentList, + ..., + [[ + twoAntennaPortActivated-r10 [3] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1PUCCH-AN-PersistentListP1-r10 [0] N1PUCCH-AN-PersistentList + } + } OPTIONAL + ]] + } +} + +TPC-Index ::= CHOICE { + indexOfFormat3 [0] INTEGER (1..15), + indexOfFormat3A [1] INTEGER (1..31) +} + +TPC-PDCCH-Config ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + tpc-RNTI [0] BIT STRING (SIZE (16)), + tpc-Index [1] EXPLICIT TPC-Index + } +} + +SPS-ConfigUL ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + semiPersistSchedIntervalUL [0] ENUMERATED { sf10(0), sf20(1), sf32(2), + sf40(3), sf64(4), sf80(5), sf128(6), sf160(7), sf320(8), sf640(9), + sf1-v1430(10), sf2-v1430(11), sf3-v1430(12), sf4-v1430(13), + sf5-v1430(14), spare1(15) }, + implicitReleaseAfter [1] ENUMERATED { e2(0), e3(1), e4(2), e8(3) }, + p0-Persistent [2] SEQUENCE { + p0-NominalPUSCH-Persistent [0] INTEGER (-126..24), + p0-UE-PUSCH-Persistent [1] INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig [3] ENUMERATED { true(0) } OPTIONAL, + ..., + [[ + p0-PersistentSubframeSet2-r12 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + p0-NominalPUSCH-PersistentSubframeSet2-r12 [0] INTEGER (-126..24), + p0-UE-PUSCH-PersistentSubframeSet2-r12 [1] INTEGER (-8..7) + } + } OPTIONAL + ]], + [[ + numberOfConfUlSPS-Processes-r13 [5] INTEGER (1..8) OPTIONAL + ]], + [[ + fixedRV-NonAdaptive-r14 [6] ENUMERATED { true(0) } OPTIONAL, + sps-ConfigIndex-r14 [7] SPS-ConfigIndex-r14 OPTIONAL, + semiPersistSchedIntervalUL-v1430 [8] ENUMERATED { sf50(0), sf100(1), + sf200(2), sf300(3), sf400(4), sf500(5), sf600(6), sf700(7), + sf800(8), sf900(9), sf1000(10), spare5(11), spare4(12), spare3(13) + , spare2(14), spare1(15) } OPTIONAL + ]], + [[ + cyclicShiftSPS-r15 [9] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), + cs4(4), cs5(5), cs6(6), cs7(7) } OPTIONAL, + harq-ProcID-Offset-r15 [10] INTEGER (0..7) OPTIONAL, + rv-SPS-UL-Repetitions-r15 [11] ENUMERATED { ulrvseq1(0), ulrvseq2(1), + ulrvseq3(2) } OPTIONAL, + tpc-PDCCH-ConfigPUSCH-SPS-r15 [12] EXPLICIT TPC-PDCCH-Config OPTIONAL + , + totalNumberPUSCH-SPS-UL-Repetitions-r15 [13] ENUMERATED { n2(0), n3(1) + , n4(2), n6(3) } OPTIONAL, + sps-ConfigIndex-r15 [14] SPS-ConfigIndex-r15 OPTIONAL + ]] + } +} + +SPS-Config ::= SEQUENCE { + semiPersistSchedC-RNTI [0] C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL [1] EXPLICIT SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL [2] EXPLICIT SPS-ConfigUL OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated ::= SEQUENCE { + p-a [0] ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), dB-1dot77(3), dB0(4), + dB1(5), dB2(6), dB3(7) } +} + +PUCCH-ConfigDedicated ::= SEQUENCE { + ackNackRepetition [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + repetitionFactor [0] ENUMERATED { n2(0), n4(1), n6(2), spare1(3) }, + n1PUCCH-AN-Rep [1] INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode [1] ENUMERATED { bundling(0), multiplexing(1) } + OPTIONAL -- Cond TDD +} + +PUSCH-ConfigDedicated ::= SEQUENCE { + betaOffset-ACK-Index [0] INTEGER (0..15), + betaOffset-RI-Index [1] INTEGER (0..15), + betaOffset-CQI-Index [2] INTEGER (0..15) +} + +UplinkPowerControlDedicated ::= SEQUENCE { + p0-UE-PUSCH [0] INTEGER (-8..7), + deltaMCS-Enabled [1] ENUMERATED { en0(0), en1(1) }, + accumulationEnabled [2] BOOLEAN, + p0-UE-PUCCH [3] INTEGER (-8..7), + pSRS-Offset [4] INTEGER (0..15), + filterCoefficient [5] FilterCoefficient DEFAULT fc4 +} + +CQI-ReportPeriodic ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-PUCCH-ResourceIndex [0] INTEGER (0..1185), + cqi-pmi-ConfigIndex [1] INTEGER (0..1023), + cqi-FormatIndicatorPeriodic [2] EXPLICIT CHOICE { + widebandCQI [0] NULL, + subbandCQI [1] SEQUENCE { + k [0] INTEGER (1..4) + } + }, + ri-ConfigIndex [3] INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI [4] BOOLEAN + } +} + +CQI-ReportConfig ::= SEQUENCE { + cqi-ReportModeAperiodic [0] CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset [1] INTEGER (-1..6), + cqi-ReportPeriodic [2] EXPLICIT CQI-ReportPeriodic OPTIONAL -- Need ON +} + +SoundingRS-UL-ConfigDedicated ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-Bandwidth [0] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3) }, + srs-HoppingBandwidth [1] ENUMERATED { hbw0(0), hbw1(1), hbw2(2), hbw3(3) + }, + freqDomainPosition [2] INTEGER (0..23), + duration [3] BOOLEAN, + srs-ConfigIndex [4] INTEGER (0..1023), + transmissionComb [5] INTEGER (0..1), + cyclicShift [6] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), cs4(4), + cs5(5), cs6(6), cs7(7) } + } +} + +AntennaInfoDedicated ::= SEQUENCE { + transmissionMode [0] ENUMERATED { tm1(0), tm2(1), tm3(2), tm4(3), tm5(4), + tm6(5), tm7(6), tm8-v920(7) }, + codebookSubsetRestriction [1] EXPLICIT CHOICE { + n2TxAntenna-tm3 [0] BIT STRING (SIZE (2)), + n4TxAntenna-tm3 [1] BIT STRING (SIZE (4)), + n2TxAntenna-tm4 [2] BIT STRING (SIZE (6)), + n4TxAntenna-tm4 [3] BIT STRING (SIZE (64)), + n2TxAntenna-tm5 [4] BIT STRING (SIZE (4)), + n4TxAntenna-tm5 [5] BIT STRING (SIZE (16)), + n2TxAntenna-tm6 [6] BIT STRING (SIZE (4)), + n4TxAntenna-tm6 [7] BIT STRING (SIZE (16)) + } OPTIONAL, -- Cond TM + ue-TransmitAntennaSelection [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { closedLoop(0), openLoop(1) } + } +} + +SchedulingRequestConfig ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + sr-PUCCH-ResourceIndex [0] INTEGER (0..2047), + sr-ConfigIndex [1] INTEGER (0..157), + dsr-TransMax [2] ENUMERATED { n4(0), n8(1), n16(2), n32(3), n64(4), + spare3(5), spare2(6), spare1(7) } + } +} + +CQI-ReportConfig-v920 ::= SEQUENCE { + cqi-Mask-r9 [0] ENUMERATED { setup(0) } OPTIONAL, -- Cond cqi-Setup + pmi-RI-Report-r9 [1] ENUMERATED { setup(0) } OPTIONAL -- Cond PMIRI +} + +AntennaInfoDedicated-v920 ::= SEQUENCE { + codebookSubsetRestriction-v920 [0] EXPLICIT CHOICE { + n2TxAntenna-tm8-r9 [0] BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r9 [1] BIT STRING (SIZE (32)) + } OPTIONAL -- Cond TM8 +} + +AntennaInfoDedicated-r10 ::= SEQUENCE { + transmissionMode-r10 [0] ENUMERATED { tm1(0), tm2(1), tm3(2), tm4(3), tm5(4) + , tm6(5), tm7(6), tm8-v920(7), tm9-v1020(8), tm10-v1130(9), spare6(10), + spare5(11), spare4(12), spare3(13), spare2(14), spare1(15) }, + codebookSubsetRestriction-r10 [1] BIT STRING OPTIONAL, -- Cond TMX + ue-TransmitAntennaSelection [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { closedLoop(0), openLoop(1) } + } +} + +AntennaInfoUL-r10 ::= SEQUENCE { + transmissionModeUL-r10 [0] ENUMERATED { tm1(0), tm2(1), spare6(2), spare5(3) + , spare4(4), spare3(5), spare2(6), spare1(7) } OPTIONAL, -- Need OR + fourAntennaPortActivated-r10 [1] ENUMERATED { setup(0) } OPTIONAL -- Need OR +} + +CQI-ReportAperiodic-r10 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-ReportModeAperiodic-r10 [0] CQI-ReportModeAperiodic, + aperiodicCSI-Trigger-r10 [1] SEQUENCE { + trigger1-r10 [0] BIT STRING (SIZE (8)), + trigger2-r10 [1] BIT STRING (SIZE (8)) + } OPTIONAL -- Need OR + } +} + +CQI-ReportPeriodic-r10 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-PUCCH-ResourceIndex-r10 [0] INTEGER (0..1184), + cqi-PUCCH-ResourceIndexP1-r10 [1] INTEGER (0..1184) OPTIONAL, -- Need OR + cqi-pmi-ConfigIndex [2] INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r10 [3] EXPLICIT CHOICE { + widebandCQI-r10 [0] SEQUENCE { + csi-ReportMode-r10 [0] ENUMERATED { submode1(0), submode2(1) } + OPTIONAL -- Need OR + }, + subbandCQI-r10 [1] SEQUENCE { + k [0] INTEGER (1..4), + periodicityFactor-r10 [1] ENUMERATED { n2(0), n4(1) } + } + }, + ri-ConfigIndex [4] INTEGER (0..1023) OPTIONAL, -- Need OR + simultaneousAckNackAndCQI [5] BOOLEAN, + cqi-Mask-r9 [6] ENUMERATED { setup(0) } OPTIONAL, -- Need OR + csi-ConfigIndex-r10 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-pmi-ConfigIndex2-r10 [0] INTEGER (0..1023), + ri-ConfigIndex2-r10 [1] INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL -- Need ON + } +} + +MeasSubframePattern-r10 ::= CHOICE { + subframePatternFDD-r10 [0] BIT STRING (SIZE (40)), + subframePatternTDD-r10 [1] EXPLICIT CHOICE { + subframeConfig1-5-r10 [0] BIT STRING (SIZE (20)), + subframeConfig0-r10 [1] BIT STRING (SIZE (70)), + subframeConfig6-r10 [2] BIT STRING (SIZE (60)), + ... + }, + ... +} + +CQI-ReportConfig-r10 ::= SEQUENCE { + cqi-ReportAperiodic-r10 [0] EXPLICIT CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON + nomPDSCH-RS-EPRE-Offset [1] INTEGER (-1..6), + cqi-ReportPeriodic-r10 [2] EXPLICIT CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r9 [3] ENUMERATED { setup(0) } OPTIONAL, -- Cond PMIRIPCell + csi-SubframePatternConfig-r10 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + csi-MeasSubframeSet1-r10 [0] EXPLICIT MeasSubframePattern-r10, + csi-MeasSubframeSet2-r10 [1] EXPLICIT MeasSubframePattern-r10 + } + } OPTIONAL -- Need ON +} + +ZeroTxPowerCSI-RS-r12 ::= SEQUENCE { + zeroTxPowerResourceConfigList-r12 [0] BIT STRING (SIZE (16)), + zeroTxPowerSubframeConfig-r12 [1] INTEGER (0..154) +} + +ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE { + release [0] NULL, + setup [1] ZeroTxPowerCSI-RS-r12 +} + +CSI-RS-Config-r10 ::= SEQUENCE { + csi-RS-r10 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + antennaPortsCount-r10 [0] ENUMERATED { an1(0), an2(1), an4(2), an8(3) + }, + resourceConfig-r10 [1] INTEGER (0..31), + subframeConfig-r10 [2] INTEGER (0..154), + p-C-r10 [3] INTEGER (-8..15) + } + } OPTIONAL, -- Need ON + zeroTxPowerCSI-RS-r10 [1] EXPLICIT ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON +} + +PUCCH-Format3-Conf-r13 ::= SEQUENCE { + n3PUCCH-AN-List-r13 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n3PUCCH-AN-ListP1-r13 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON +} + +N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +PUCCH-ConfigDedicated-v1020 ::= SEQUENCE { + pucch-Format-r10 [0] EXPLICIT CHOICE { + format3-r10 [0] PUCCH-Format3-Conf-r13, + channelSelection-r10 [1] SEQUENCE { + n1PUCCH-AN-CS-r10 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1PUCCH-AN-CS-List-r10 [0] SEQUENCE (SIZE (1..2)) OF + N1PUCCH-AN-CS-r10 + } + } OPTIONAL -- Need ON + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r10 [1] ENUMERATED { true(0) } + OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r10 [2] ENUMERATED { true(0) } OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r10 [3] INTEGER (0..2047) OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1020 ::= SEQUENCE { + betaOffsetMC-r10 [0] SEQUENCE { + betaOffset-ACK-Index-MC-r10 [0] INTEGER (0..15), + betaOffset-RI-Index-MC-r10 [1] INTEGER (0..15), + betaOffset-CQI-Index-MC-r10 [2] INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r10 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 [2] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +SchedulingRequestConfig-v1020 ::= SEQUENCE { + sr-PUCCH-ResourceIndexP1-r10 [0] INTEGER (0..2047) OPTIONAL -- Need OR +} + +SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE { + srs-AntennaPort-r10 [0] SRS-AntennaPort +} + +SRS-ConfigAp-r10 ::= SEQUENCE { + srs-AntennaPortAp-r10 [0] SRS-AntennaPort, + srs-BandwidthAp-r10 [1] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3) }, + freqDomainPositionAp-r10 [2] INTEGER (0..23), + transmissionCombAp-r10 [3] INTEGER (0..1), + cyclicShiftAp-r10 [4] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), cs4(4), + cs5(5), cs6(6), cs7(7) } +} + +SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigIndexAp-r10 [0] INTEGER (0..31), + srs-ConfigApDCI-Format4-r10 [1] SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 + OPTIONAL, --Need ON + srs-ActivateAp-r10 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigApDCI-Format0-r10 [0] SRS-ConfigAp-r10, + srs-ConfigApDCI-Format1a2b2c-r10 [1] SRS-ConfigAp-r10, + ... + } + } OPTIONAL -- Need ON + } +} + +DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1-r10 [0] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetPUCCH-Format1a1b-r10 [1] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetPUCCH-Format22a2b-r10 [2] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetPUCCH-Format3-r10 [3] ENUMERATED { dB0(0), dB-2(1) }, + ... +} + +UplinkPowerControlDedicated-v1020 ::= SEQUENCE { + deltaTxD-OffsetListPUCCH-r10 [0] DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR + pSRS-OffsetAp-r10 [1] INTEGER (0..15) OPTIONAL -- Need OR +} + +CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF + CSI-RS-ConfigNZPId-r11 + +CSI-RS-ConfigNZP-r11 ::= SEQUENCE { + csi-RS-ConfigNZPId-r11 [0] CSI-RS-ConfigNZPId-r11, + antennaPortsCount-r11 [1] ENUMERATED { an1(0), an2(1), an4(2), an8(3) }, + resourceConfig-r11 [2] INTEGER (0..31), + subframeConfig-r11 [3] INTEGER (0..154), + scramblingIdentity-r11 [4] INTEGER (0..503), + qcl-CRS-Info-r11 [5] SEQUENCE { + qcl-ScramblingIdentity-r11 [0] INTEGER (0..503), + crs-PortsCount-r11 [1] ENUMERATED { n1(0), n2(1), n4(2), spare1(3) }, + mbsfn-SubframeConfigList-r11 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeConfigList [0] MBSFN-SubframeConfigList + } + } OPTIONAL -- Need ON + } OPTIONAL, + ..., + [[ + csi-RS-ConfigNZPId-v1310 [6] CSI-RS-ConfigNZPId-v1310 OPTIONAL + ]], + [[ + transmissionComb-r14 [7] NZP-TransmissionComb-r14 OPTIONAL, + frequencyDensity-r14 [8] NZP-FrequencyDensity-r14 OPTIONAL + ]], + [[ + mbsfn-SubframeConfigList-v1430 [9] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeConfigList-v1430 [0] MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL + ]] +} + +CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF + CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF + CSI-RS-ConfigZPId-r11 + +CSI-RS-ConfigZP-r11 ::= SEQUENCE { + csi-RS-ConfigZPId-r11 [0] CSI-RS-ConfigZPId-r11, + resourceConfigList-r11 [1] BIT STRING (SIZE (16)), + subframeConfig-r11 [2] INTEGER (0..154), + ... +} + +CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 + + +EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxEPDCCH-Set-r11)) OF + EPDCCH-SetConfigId-r11 + +EPDCCH-SetConfig-r11 ::= SEQUENCE { + setConfigId-r11 [0] EPDCCH-SetConfigId-r11, + transmissionType-r11 [1] ENUMERATED { localised(0), distributed(1) }, + resourceBlockAssignment-r11 [2] SEQUENCE { + numberPRB-Pairs-r11 [0] ENUMERATED { n2(0), n4(1), n8(2) }, + resourceBlockAssignment-r11 [1] BIT STRING (SIZE (4..38)) + }, + dmrs-ScramblingSequenceInt-r11 [3] INTEGER (0..503), + pucch-ResourceStartOffset-r11 [4] INTEGER (0..2047), + re-MappingQCL-ConfigId-r11 [5] PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, + ..., + [[ + csi-RS-ConfigZPId2-r12 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] CSI-RS-ConfigZPId-r11 + } OPTIONAL + ]], + [[ + numberPRB-Pairs-v1310 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { n6(0) } + } OPTIONAL, + mpdcch-config-r13 [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + csi-NumRepetitionCE-r13 [0] ENUMERATED { sf1(0), sf2(1), sf4(2), + sf8(3), sf16(4), sf32(5) }, + mpdcch-pdsch-HoppingConfig-r13 [1] ENUMERATED { on(0), off(1) }, + mpdcch-StartSF-UESS-r13 [2] EXPLICIT CHOICE { + fdd-r13 [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), + v4(4), v5(5), v8(6), v10(7) }, + tdd-r13 [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), + v10(5), v20(6), spare1(7) } + }, + mpdcch-NumRepetition-r13 [3] ENUMERATED { r1(0), r2(1), r4(2), + r8(3), r16(4), r32(5), r64(6), r128(7), r256(8) }, + mpdcch-Narrowband-r13 [4] INTEGER (1..maxAvailNarrowBands-r13) + } + } OPTIONAL + ]] +} + +EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxEPDCCH-Set-r11)) OF + EPDCCH-SetConfig-r11 + +EPDCCH-Config-r11 ::= SEQUENCE { + config-r11 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframePatternConfig-r11 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframePattern-r11 [0] EXPLICIT MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + startSymbol-r11 [1] INTEGER (1..4) OPTIONAL, -- Need OP + setConfigToReleaseList-r11 [2] EPDCCH-SetConfigToReleaseList-r11 + OPTIONAL, -- Need ON + setConfigToAddModList-r11 [3] EPDCCH-SetConfigToAddModList-r11 + OPTIONAL -- Need ON + } + } +} + +DMRS-Config-r11 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + scramblingIdentity-r11 [0] INTEGER (0..503), + scramblingIdentity2-r11 [1] INTEGER (0..503) + } +} + +RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF + PDSCH-RE-MappingQCL-ConfigId-r11 + +PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { + pdsch-RE-MappingQCL-ConfigId-r11 [0] PDSCH-RE-MappingQCL-ConfigId-r11, + optionalSetOfFields-r11 [1] SEQUENCE { + crs-PortsCount-r11 [0] ENUMERATED { n1(0), n2(1), n4(2), spare1(3) }, + crs-FreqShift-r11 [1] INTEGER (0..5), + mbsfn-SubframeConfigList-r11 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeConfigList [0] MBSFN-SubframeConfigList + } + } OPTIONAL, -- Need ON + pdsch-Start-r11 [3] ENUMERATED { reserved(0), n1(1), n2(2), n3(3), n4(4) + , assigned(5) } + } OPTIONAL, -- Need OP + csi-RS-ConfigZPId-r11 [2] CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-r11 [3] CSI-RS-ConfigNZPId-r11 OPTIONAL, + ..., + [[ + mbsfn-SubframeConfigList-v1430 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeConfigList-v1430 [0] MBSFN-SubframeConfigList-v1430 + } + } OPTIONAL + ]], + [[ + codewordOneConfig-v1530 [5] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + crs-PortsCount-v1530 [0] ENUMERATED { n1(0), n2(1), n4(2), + spare1(3) }, + crs-FreqShift-v1530 [1] INTEGER (0..5), + mbsfn-SubframeConfigList-v1530 [2] MBSFN-SubframeConfigList + OPTIONAL, + mbsfn-SubframeConfigListExt-v1530 [3] + MBSFN-SubframeConfigList-v1430 OPTIONAL, + pdsch-Start-v1530 [4] ENUMERATED { reserved(0), n1(1), n2(2), n3(3) + , n4(4), assigned(5) }, + csi-RS-ConfigZPId-v1530 [5] CSI-RS-ConfigZPId-r11, + qcl-CSI-RS-ConfigNZPId-v1530 [6] CSI-RS-ConfigNZPId-r11 OPTIONAL + } + } OPTIONAL + ]] +} + +RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF + PDSCH-RE-MappingQCL-Config-r11 + +PDSCH-ConfigDedicated-v1130 ::= SEQUENCE { + dmrs-ConfigPDSCH-r11 [0] EXPLICIT DMRS-Config-r11 OPTIONAL, -- Need ON + qcl-Operation [1] ENUMERATED { typeA(0), typeB(1) } OPTIONAL, -- Need OR + re-MappingQCLConfigToReleaseList-r11 [2] + RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON + re-MappingQCLConfigToAddModList-r11 [3] RE-MappingQCLConfigToAddModList-r11 + OPTIONAL -- Need ON +} + +CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF + CQI-ReportPeriodicProcExtId-r11 + +CRI-ReportConfig-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cri-ConfigIndex-r13 [0] CRI-ConfigIndex-r13, + cri-ConfigIndex2-r13 [1] CRI-ConfigIndex-r13 OPTIONAL -- Need OR + } +} + +CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE { + cqi-ReportPeriodicProcExtId-r11 [0] CQI-ReportPeriodicProcExtId-r11, + cqi-pmi-ConfigIndex-r11 [1] INTEGER (0..1023), + cqi-FormatIndicatorPeriodic-r11 [2] EXPLICIT CHOICE { + widebandCQI-r11 [0] SEQUENCE { + csi-ReportMode-r11 [0] ENUMERATED { submode1(0), submode2(1) } + OPTIONAL -- Need OR + }, + subbandCQI-r11 [1] SEQUENCE { + k [0] INTEGER (1..4), + periodicityFactor-r11 [1] ENUMERATED { n2(0), n4(1) } + } + }, + ri-ConfigIndex-r11 [3] INTEGER (0..1023) OPTIONAL, -- Need OR + csi-ConfigIndex-r11 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-pmi-ConfigIndex2-r11 [0] INTEGER (0..1023), + ri-ConfigIndex2-r11 [1] INTEGER (0..1023) OPTIONAL -- Need OR + } + } OPTIONAL, + ..., + [[ + cri-ReportConfig-r13 [5] EXPLICIT CRI-ReportConfig-r13 OPTIONAL + ]], + [[ + periodicityFactorWB-r13 [6] ENUMERATED { n2(0), n4(1) } OPTIONAL + ]] +} + +CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF + CQI-ReportPeriodicProcExt-r11 + +CQI-ReportPeriodic-v1130 ::= SEQUENCE { + simultaneousAckNackAndCQI-Format3-r11 [0] ENUMERATED { setup(0) } OPTIONAL, -- Need OR + cqi-ReportPeriodicProcExtToReleaseList-r11 [1] + CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON + cqi-ReportPeriodicProcExtToAddModList-r11 [2] + CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON +} + +CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11 + +CSI-IM-Config-r11 ::= SEQUENCE { + csi-IM-ConfigId-r11 [0] CSI-IM-ConfigId-r11, + resourceConfig-r11 [1] INTEGER (0..31), + subframeConfig-r11 [2] INTEGER (0..154), + ..., + [[ + interferenceMeasRestriction-r13 [3] BOOLEAN OPTIONAL + ]] +} + +CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11 + +CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11 + +P-C-AndCBSR-r11 ::= SEQUENCE { + p-C-r11 [0] INTEGER (-8..15), + codebookSubsetRestriction-r11 [1] BIT STRING +} + +P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11 + +CQI-ReportBothProc-r11 ::= SEQUENCE { + ri-Ref-CSI-ProcessId-r11 [0] CSI-ProcessId-r11 OPTIONAL, -- Need OR + pmi-RI-Report-r11 [1] ENUMERATED { setup(0) } OPTIONAL -- Need OR +} + +CQI-ReportAperiodicProc-r11 ::= SEQUENCE { + cqi-ReportModeAperiodic-r11 [0] CQI-ReportModeAperiodic, + trigger01-r11 [1] BOOLEAN, + trigger10-r11 [2] BOOLEAN, + trigger11-r11 [3] BOOLEAN +} + +CQI-ReportAperiodicProc-v1310 ::= SEQUENCE { + trigger001-r13 [0] BOOLEAN, + trigger010-r13 [1] BOOLEAN, + trigger011-r13 [2] BOOLEAN, + trigger100-r13 [3] BOOLEAN, + trigger101-r13 [4] BOOLEAN, + trigger110-r13 [5] BOOLEAN, + trigger111-r13 [6] BOOLEAN +} + +P-C-AndCBSR-r13 ::= SEQUENCE { + p-C-r13 [0] INTEGER (-8..15), + cbsr-Selection-r13 [1] EXPLICIT CHOICE { + nonPrecoded-r13 [0] SEQUENCE { + codebookSubsetRestriction1-r13 [0] BIT STRING , + codebookSubsetRestriction2-r13 [1] BIT STRING + }, + beamformedK1a-r13 [1] SEQUENCE { + codebookSubsetRestriction3-r13 [0] BIT STRING + }, + beamformedKN-r13 [2] SEQUENCE { + codebookSubsetRestriction-r13 [0] BIT STRING + } + }, + ... +} + +P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13 + +NZP-ResourceConfig-r13 ::= SEQUENCE { + resourceConfig-r13 [0] ResourceConfig-r13, + ..., + [[ + transmissionComb-r14 [1] NZP-TransmissionComb-r14 OPTIONAL, + frequencyDensity-r14 [2] NZP-FrequencyDensity-r14 OPTIONAL + ]] +} + +CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nzp-resourceConfigList-r13 [0] SEQUENCE (SIZE (1..2)) OF + NZP-ResourceConfig-r13, + cdmType-r13 [1] ENUMERATED { cdm2(0), cdm4(1) } OPTIONAL -- Need OR + } +} + +CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE { + p-C-AndCBSRList-r13 [0] P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + codebookConfigN1-r13 [1] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n8(4) }, + codebookConfigN2-r13 [2] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n8(4) }, + codebookOverSamplingRateConfig-O1-r13 [3] ENUMERATED { n4(0), n8(1) } + OPTIONAL, -- Need OR + codebookOverSamplingRateConfig-O2-r13 [4] ENUMERATED { n4(0), n8(1) } + OPTIONAL, -- Need OR + codebookConfig-r13 [5] INTEGER (1..4), + csi-IM-ConfigIdList-r13 [6] SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 + OPTIONAL, -- Need OR + csi-RS-ConfigNZP-EMIMO-r13 [7] EXPLICIT CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r13 [0] SEQUENCE (SIZE (1..7)) OF + CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r13 [1] SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 + OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r13 [2] SEQUENCE (SIZE (1..8)) OF + P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r13 [3] SEQUENCE (SIZE (1..7)) OF BOOLEAN + OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r13 [4] ENUMERATED { true(0) } OPTIONAL + , -- Need OR + channelMeasRestriction-r13 [5] ENUMERATED { on(0) } OPTIONAL -- Need OR +} + +CSI-RS-ConfigEMIMO-r13 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + nonPrecoded-r13 [0] CSI-RS-ConfigNonPrecoded-r13, + beamformed-r13 [1] CSI-RS-ConfigBeamformed-r13 + } +} + +CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE { +--All extensions are for Non-Precoded so could be grouped by setup/ release choice + nzp-resourceConfigListExt-r14 [0] SEQUENCE (SIZE (0..4)) OF + NZP-ResourceConfig-r13, + cdmType-v1430 [1] ENUMERATED { cdm8(0) } OPTIONAL -- Need OR +} + +CSI-RS-Config-NZP-v1430 ::= SEQUENCE { + transmissionComb-r14 [0] NZP-TransmissionComb-r14 OPTIONAL, -- Need OR + frequencyDensity-r14 [1] NZP-FrequencyDensity-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigNonPrecoded-v1430 ::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1430 [0] CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1430 [1] ENUMERATED { n5(0), n6(1), n7(2), n10(3), n12(4) + , n14(5), n16(6) }, + codebookConfigN2-v1430 [2] ENUMERATED { n5(0), n6(1), n7(2) }, + nzp-ResourceConfigTM9-Original-v1430 [3] CSI-RS-Config-NZP-v1430 +} + +CSI-RS-ConfigNZP-Activation-r14 ::= SEQUENCE { + csi-RS-NZP-mode-r14 [0] ENUMERATED { semiPersistent(0), aperiodic(1) }, + activatedResources-r14 [1] INTEGER (0..4) +} + +CSI-RS-ConfigBeamformed-v1430 ::= SEQUENCE { + csi-RS-ConfigNZP-ApList-r14 [0] SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, + -- Need OR + nzp-ResourceConfigOriginal-v1430 [1] CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 [2] CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigEMIMO-v1430 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + nonPrecoded-v1430 [0] CSI-RS-ConfigNonPrecoded-v1430, + beamformed-v1430 [1] CSI-RS-ConfigBeamformed-v1430 + } +} + +CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE { + csi-RS-ConfigNZPIdListExt-r14 [0] SEQUENCE (SIZE (1..7)) OF + CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR + csi-IM-ConfigIdList-r14 [1] SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 + OPTIONAL, -- Need OR + p-C-AndCBSR-PerResourceConfigList-r14 [2] SEQUENCE (SIZE (1..8)) OF + P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR + ace-For4Tx-PerResourceConfigList-r14 [3] SEQUENCE (SIZE (1..7)) OF BOOLEAN + OPTIONAL, -- Need OR + alternativeCodebookEnabledBeamformed-r14 [4] ENUMERATED { true(0) } OPTIONAL + , -- Need OR + channelMeasRestriction-r14 [5] ENUMERATED { on(0) } OPTIONAL, -- Need OR + csi-RS-ConfigNZP-ApList-r14 [6] SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11 + OPTIONAL, + -- Need OR + nzp-ResourceConfigOriginal-v1430 [7] CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR + csi-RS-NZP-Activation-r14 [8] CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR +} + +CSI-RS-ConfigEMIMO2-r14 ::= CHOICE { + release [0] NULL, + setup [1] CSI-RS-ConfigBeamformed-r14 +} + +CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + periodicityOffsetIndex-r14 [0] INTEGER (0..1023) OPTIONAL, -- Need OR + eMIMO-Type2-r14 [1] EXPLICIT CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON + } +} + +CSI-RS-ConfigNonPrecoded-v1480 ::= SEQUENCE { + csi-RS-ConfigNZP-EMIMO-v1480 [0] CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON + codebookConfigN1-v1480 [1] ENUMERATED { n5(0), n6(1), n7(2), n10(3), n12(4) + , n14(5), n16(6) } OPTIONAL, -- Need OR + codebookConfigN2-r1480 [2] ENUMERATED { n5(0), n6(1), n7(2) } OPTIONAL, -- Need OR + nzp-ResourceConfigTM9-Original-v1480 [3] CSI-RS-Config-NZP-v1430 +} + +CSI-RS-ConfigEMIMO-v1480 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + nonPrecoded-v1480 [0] CSI-RS-ConfigNonPrecoded-v1480, + beamformed-v1480 [1] CSI-RS-ConfigBeamformed-v1430 + } +} + +P-C-AndCBSR-r15 ::= SEQUENCE { + p-C-r15 [0] INTEGER (-8..15), + codebookSubsetRestriction4-r15 [1] BIT STRING +} + +P-C-AndCBSR-Pair-r15 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r15 + +CSI-RS-ConfigNonPrecoded-v1530 ::= SEQUENCE { + p-C-AndCBSRList-r15 [0] P-C-AndCBSR-Pair-r15 OPTIONAL -- Need OR +} + +CSI-RS-ConfigEMIMO-v1530 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + nonPrecoded-v1530 [0] CSI-RS-ConfigNonPrecoded-v1530 + } +} + +CSI-Process-r11 ::= SEQUENCE { + csi-ProcessId-r11 [0] CSI-ProcessId-r11, + csi-RS-ConfigNZPId-r11 [1] CSI-RS-ConfigNZPId-r11, + csi-IM-ConfigId-r11 [2] CSI-IM-ConfigId-r11, + p-C-AndCBSRList-r11 [3] P-C-AndCBSR-Pair-r13a, + cqi-ReportBothProc-r11 [4] CQI-ReportBothProc-r11 OPTIONAL, -- Need OR + cqi-ReportPeriodicProcId-r11 [5] INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR + cqi-ReportAperiodicProc-r11 [6] CQI-ReportAperiodicProc-r11 OPTIONAL, + ..., + [[ + alternativeCodebookEnabledFor4TXProc-r12 [7] ENUMERATED { true(0) } + OPTIONAL, + csi-IM-ConfigIdList-r12 [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12 + } OPTIONAL, + cqi-ReportAperiodicProc2-r12 [9] EXPLICIT CHOICE { + release [0] NULL, + setup [1] CQI-ReportAperiodicProc-r11 + } OPTIONAL + ]], + [[ + cqi-ReportAperiodicProc-v1310 [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] CQI-ReportAperiodicProc-v1310 + } OPTIONAL, + cqi-ReportAperiodicProc2-v1310 [11] EXPLICIT CHOICE { + release [0] NULL, + setup [1] CQI-ReportAperiodicProc-v1310 + } OPTIONAL, + eMIMO-Type-r13 [12] EXPLICIT CSI-RS-ConfigEMIMO-r13 OPTIONAL + ]], + [[ + dummy [13] EXPLICIT CSI-RS-ConfigEMIMO-v1430 OPTIONAL, + eMIMO-Hybrid-r14 [14] EXPLICIT CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, + advancedCodebookEnabled-r14 [15] BOOLEAN OPTIONAL + ]], + [[ + eMIMO-Type-v1480 [16] EXPLICIT CSI-RS-ConfigEMIMO-v1480 OPTIONAL + ]], + [[ + feCOMP-CSI-Enabled-v1530 [17] BOOLEAN OPTIONAL, + eMIMO-Type-v1530 [18] EXPLICIT CSI-RS-ConfigEMIMO-v1530 OPTIONAL + ]] +} + +CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11 + +CQI-ReportBoth-r11 ::= SEQUENCE { + csi-IM-ConfigToReleaseList-r11 [0] CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModList-r11 [1] CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON + csi-ProcessToReleaseList-r11 [2] CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON + csi-ProcessToAddModList-r11 [3] CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1130 ::= SEQUENCE { + cqi-ReportPeriodic-v1130 [0] CQI-ReportPeriodic-v1130, + cqi-ReportBoth-r11 [1] CQI-ReportBoth-r11 +} + +PUCCH-ConfigDedicated-v1130 ::= SEQUENCE { + n1PUCCH-AN-CS-v1130 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1PUCCH-AN-CS-ListP1-r11 [0] SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL, -- Need ON + nPUCCH-Param-r11 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nPUCCH-Identity-r11 [0] INTEGER (0..503), + n1PUCCH-AN-r11 [1] INTEGER (0..2047) + } + } OPTIONAL -- Need ON +} + +PUSCH-ConfigDedicated-v1130 ::= SEQUENCE { + pusch-DMRS-r11 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nPUSCH-Identity-r11 [0] INTEGER (0..509), + nDMRS-CSH-Identity-r11 [1] INTEGER (0..509) + } + } +} + +DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE { + deltaTxD-OffsetPUCCH-Format1bCS-r11 [0] ENUMERATED { dB0(0), dB-1(1) } +} + +UplinkPowerControlDedicated-v1130 ::= SEQUENCE { + pSRS-Offset-v1130 [0] INTEGER (16..31) OPTIONAL, -- Need OR + pSRS-OffsetAp-v1130 [1] INTEGER (16..31) OPTIONAL, -- Need OR + deltaTxD-OffsetListPUCCH-v1130 [2] DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR +} + +AntennaInfoDedicated-v1250 ::= SEQUENCE { + alternativeCodebookEnabledFor4TX-r12 [0] BOOLEAN +} + +EIMTA-MainConfig-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + eimta-RNTI-r12 [0] C-RNTI, + eimta-CommandPeriodicity-r12 [1] ENUMERATED { sf10(0), sf20(1), sf40(2), + sf80(3) }, + eimta-CommandSubframeSet-r12 [2] BIT STRING (SIZE (10)) + } +} + +EIMTA-MainConfigServCell-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + eimta-UL-DL-ConfigIndex-r12 [0] INTEGER (1..5), + eimta-HARQ-ReferenceConfig-r12 [1] ENUMERATED { sa2(0), sa4(1), sa5(2) }, + mbsfn-SubframeConfigList-v1250 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeConfigList-r12 [0] MBSFN-SubframeConfigList + } + } + } +} + +PUCCH-ConfigDedicated-v1250 ::= SEQUENCE { + nkaPUCCH-Param-r12 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nkaPUCCH-AN-r12 [0] INTEGER (0..2047) + } + } +} + +CSI-IM-ConfigExt-r12 ::= SEQUENCE { + csi-IM-ConfigId-v1250 [0] CSI-IM-ConfigId-v1250, + resourceConfig-r12 [1] INTEGER (0..31), + subframeConfig-r12 [2] INTEGER (0..154), + ..., + [[ + interferenceMeasRestriction-r13 [3] BOOLEAN OPTIONAL, + csi-IM-ConfigId-v1310 [4] CSI-IM-ConfigId-v1310 OPTIONAL + ]] +} + +CQI-ReportBoth-v1250 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r12 [0] CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r12 [1] CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON +} + +CQI-ReportAperiodic-v1250 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + aperiodicCSI-Trigger-v1250 [0] SEQUENCE { + trigger-SubframeSetIndicator-r12 [0] ENUMERATED { s1(0), s2(1) }, + trigger1-SubframeSetIndicator-r12 [1] BIT STRING (SIZE (8)), + trigger2-SubframeSetIndicator-r12 [2] BIT STRING (SIZE (8)) + } + } +} + +CQI-ReportConfig-v1250 ::= SEQUENCE { + csi-SubframePatternConfig-r12 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + csi-MeasSubframeSets-r12 [0] BIT STRING (SIZE (10)) + } + } OPTIONAL, -- Need ON + cqi-ReportBoth-v1250 [1] CQI-ReportBoth-v1250 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1250 [2] EXPLICIT CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON + altCQI-Table-r12 [3] ENUMERATED { allSubframes(0), csi-SubframeSet1(1), + csi-SubframeSet2(2), spare1(3) } OPTIONAL -- Need OP +} + +UplinkPowerControlDedicated-v1250 ::= SEQUENCE { + set2PowerControlParameter [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + tpc-SubframeSet-r12 [0] BIT STRING (SIZE (10)), + p0-NominalPUSCH-SubframeSet2-r12 [1] INTEGER (-126..24), + alpha-SubframeSet2-r12 [2] Alpha-r12, + p0-UE-PUSCH-SubframeSet2-r12 [3] INTEGER (-8..7) + } + } +} + +PUSCH-ConfigDedicated-v1250 ::= SEQUENCE { + uciOnPUSCH [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r12 [0] INTEGER (0..15), + betaOffset-RI-Index-SubframeSet2-r12 [1] INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r12 [2] INTEGER (0..15), + betaOffsetMC-r12 [3] SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r12 [0] INTEGER (0..15), + betaOffset-RI-Index-MC-SubframeSet2-r12 [1] INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r12 [2] INTEGER (0..15) + } OPTIONAL -- Need OR + } + } +} + +CSI-RS-Config-v1250 ::= SEQUENCE { + zeroTxPowerCSI-RS2-r12 [0] EXPLICIT ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON + ds-ZeroTxPowerCSI-RS-r12 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + zeroTxPowerCSI-RS-List-r12 [0] SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF + ZeroTxPowerCSI-RS-r12 + } + } OPTIONAL -- Need ON +} + +PDSCH-ConfigDedicated-v1280 ::= SEQUENCE { + tbsIndexAlt-r12 [0] ENUMERATED { a26(0), a33(1) } OPTIONAL -- Need OR +} + +DMRS-Config-v1310 ::= SEQUENCE { + dmrs-tableAlt-r13 [0] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1310 ::= SEQUENCE { + dmrs-ConfigPDSCH-v1310 [0] DMRS-Config-v1310 OPTIONAL -- Need ON +} + +Format4-resource-r13 ::= SEQUENCE { + startingPRB-format4-r13 [0] INTEGER (0..109), + numberOfPRB-format4-r13 [1] INTEGER (0..7) +} + +Format5-resource-r13 ::= SEQUENCE { + startingPRB-format5-r13 [0] INTEGER (0..109), + cdm-index-format5-r13 [1] INTEGER (0..1) +} + +PUCCH-ConfigDedicated-r13 ::= SEQUENCE { +--Release 8 + ackNackRepetition-r13 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + repetitionFactor-r13 [0] ENUMERATED { n2(0), n4(1), n6(2), spare1(3) } + , + n1PUCCH-AN-Rep-r13 [1] INTEGER (0..2047) + } + }, + tdd-AckNackFeedbackMode-r13 [1] ENUMERATED { bundling(0), multiplexing(1) } + OPTIONAL, -- Cond TDD +--Release 10 + pucch-Format-r13 [2] EXPLICIT CHOICE { + format3-r13 [0] SEQUENCE { + n3PUCCH-AN-List-r13 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, + -- Need ON + twoAntennaPortActivatedPUCCH-Format3-r13 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n3PUCCH-AN-ListP1-r13 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } OPTIONAL -- Need ON + }, + channelSelection-r13 [1] SEQUENCE { + n1PUCCH-AN-CS-r13 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1PUCCH-AN-CS-List-r13 [0] SEQUENCE (SIZE (1..2)) OF + N1PUCCH-AN-CS-r10, + dummy1 [1] SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } OPTIONAL -- Need ON + }, + format4-r13 [2] SEQUENCE { + format4-resourceConfiguration-r13 [0] SEQUENCE (SIZE (4)) OF + Format4-resource-r13, + format4-MultiCSI-resourceConfiguration-r13 [1] SEQUENCE (SIZE (1..2) + ) OF Format4-resource-r13 OPTIONAL -- Need OR + }, + format5-r13 [3] SEQUENCE { + format5-resourceConfiguration-r13 [0] SEQUENCE (SIZE (4)) OF + Format5-resource-r13, + format5-MultiCSI-resourceConfiguration-r13 [1] Format5-resource-r13 + OPTIONAL -- Need OR + } + } OPTIONAL, -- Need OR + twoAntennaPortActivatedPUCCH-Format1a1b-r13 [3] ENUMERATED { true(0) } + OPTIONAL, -- Need OR + simultaneousPUCCH-PUSCH-r13 [4] ENUMERATED { true(0) } OPTIONAL, -- Need OR + n1PUCCH-AN-RepP1-r13 [5] INTEGER (0..2047) OPTIONAL, -- Need OR +--Release 11 + nPUCCH-Param-r13 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nPUCCH-Identity-r13 [0] INTEGER (0..503), + n1PUCCH-AN-r13 [1] INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 12 + nkaPUCCH-Param-r13 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nkaPUCCH-AN-r13 [0] INTEGER (0..2047) + } + } OPTIONAL, -- Need ON +--Release 13 + spatialBundlingPUCCH-r13 [8] BOOLEAN, + spatialBundlingPUSCH-r13 [9] BOOLEAN, + harq-TimingTDD-r13 [10] BOOLEAN, + codebooksizeDetermination-r13 [11] ENUMERATED { dai(0), cc(1) } OPTIONAL, -- Need OR + maximumPayloadCoderate-r13 [12] INTEGER (0..7) OPTIONAL, -- Need OR + pucch-NumRepetitionCE-r13 [13] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + modeA [0] SEQUENCE { + pucch-NumRepetitionCE-format1-r13 [0] ENUMERATED { r1(0), r2(1), + r4(2), r8(3) }, + pucch-NumRepetitionCE-format2-r13 [1] ENUMERATED { r1(0), r2(1), + r4(2), r8(3) } + }, + modeB [1] SEQUENCE { + pucch-NumRepetitionCE-format1-r13 [0] ENUMERATED { r4(0), r8(1), + r16(2), r32(3) }, + pucch-NumRepetitionCE-format2-r13 [1] ENUMERATED { r4(0), r8(1), + r16(2), r32(3) } + } + } + } OPTIONAL --Need ON +} + +PUSCH-ConfigDedicated-r13 ::= SEQUENCE { + betaOffset-ACK-Index-r13 [0] INTEGER (0..15), + betaOffset2-ACK-Index-r13 [1] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-r13 [2] INTEGER (0..15), + betaOffset-CQI-Index-r13 [3] INTEGER (0..15), + betaOffsetMC-r13 [4] SEQUENCE { + betaOffset-ACK-Index-MC-r13 [0] INTEGER (0..15), + betaOffset2-ACK-Index-MC-r13 [1] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-MC-r13 [2] INTEGER (0..15), + betaOffset-CQI-Index-MC-r13 [3] INTEGER (0..15) + } OPTIONAL, -- Need OR + groupHoppingDisabled-r13 [5] ENUMERATED { true(0) } OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r13 [6] ENUMERATED { true(0) } OPTIONAL, -- Need OR + pusch-DMRS-r11 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + nPUSCH-Identity-r13 [0] INTEGER (0..509), + nDMRS-CSH-Identity-r13 [1] INTEGER (0..509) + } + } OPTIONAL, -- Need ON + uciOnPUSCH [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + betaOffset-ACK-Index-SubframeSet2-r13 [0] INTEGER (0..15), + betaOffset2-ACK-Index-SubframeSet2-r13 [1] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset-RI-Index-SubframeSet2-r13 [2] INTEGER (0..15), + betaOffset-CQI-Index-SubframeSet2-r13 [3] INTEGER (0..15), + betaOffsetMC-r12 [4] SEQUENCE { + betaOffset-ACK-Index-MC-SubframeSet2-r13 [0] INTEGER (0..15), + betaOffset2-ACK-Index-MC-SubframeSet2-r13 [1] INTEGER (0..15) OPTIONAL + , -- Need OR + betaOffset-RI-Index-MC-SubframeSet2-r13 [2] INTEGER (0..15), + betaOffset-CQI-Index-MC-SubframeSet2-r13 [3] INTEGER (0..15) + } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + pusch-HoppingConfig-r13 [9] ENUMERATED { on(0) } OPTIONAL -- Need OR +} + +PDCCH-CandidateReductions-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pdcch-candidateReductionAL1-r13 [0] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r13 [1] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r13 [2] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL4-r13 [3] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL5-r13 [4] PDCCH-CandidateReductionValue-r13 + } +} + +CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF + CSI-IM-ConfigId-v1310 + +CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF + CSI-IM-ConfigExt-r12 + +CQI-ReportBoth-v1310 ::= SEQUENCE { + csi-IM-ConfigToReleaseListExt-r13 [0] CSI-IM-ConfigToReleaseListExt-r13 + OPTIONAL, -- Need ON + csi-IM-ConfigToAddModListExt-r13 [1] CSI-IM-ConfigToAddModListExt-r13 + OPTIONAL -- Need ON +} + +CQI-ReportAperiodic-v1310 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + aperiodicCSI-Trigger-v1310 [0] SEQUENCE { + trigger1-r13 [0] BIT STRING (SIZE (32)), + trigger2-r13 [1] BIT STRING (SIZE (32)), + trigger3-r13 [2] BIT STRING (SIZE (32)), + trigger4-r13 [3] BIT STRING (SIZE (32)), + trigger5-r13 [4] BIT STRING (SIZE (32)), + trigger6-r13 [5] BIT STRING (SIZE (32)) + } OPTIONAL, -- Need ON + aperiodicCSI-Trigger2-r13 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + trigger1-SubframeSetIndicator-r13 [0] BIT STRING (SIZE (32)), + trigger2-SubframeSetIndicator-r13 [1] BIT STRING (SIZE (32)), + trigger3-SubframeSetIndicator-r13 [2] BIT STRING (SIZE (32)), + trigger4-SubframeSetIndicator-r13 [3] BIT STRING (SIZE (32)), + trigger5-SubframeSetIndicator-r13 [4] BIT STRING (SIZE (32)), + trigger6-SubframeSetIndicator-r13 [5] BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need ON + } +} + +CQI-ReportPeriodic-v1310 ::= SEQUENCE { + cri-ReportConfig-r13 [0] EXPLICIT CRI-ReportConfig-r13 OPTIONAL, -- Need OR + simultaneousAckNackAndCQI-Format4-Format5-r13 [1] ENUMERATED { setup(0) } + OPTIONAL -- Need OR +} + +CQI-ReportConfig-v1310 ::= SEQUENCE { + cqi-ReportBoth-v1310 [0] CQI-ReportBoth-v1310 OPTIONAL, -- Need ON + cqi-ReportAperiodic-v1310 [1] EXPLICIT CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON + cqi-ReportPeriodic-v1310 [2] CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON +} + +SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + transmissionComb-v1310 [0] INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShift-v1310 [1] ENUMERATED { cs8(0), cs9(1), cs10(2), cs11(3) } + OPTIONAL, -- Need OR + transmissionCombNum-r13 [2] ENUMERATED { n2(0), n4(1) } OPTIONAL -- Need OR + } +} + +SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-UpPtsAdd-r13 [0] ENUMERATED { sym2(0), sym4(1) }, + srs-Bandwidth-r13 [1] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3) }, + srs-HoppingBandwidth-r13 [2] ENUMERATED { hbw0(0), hbw1(1), hbw2(2), + hbw3(3) }, + freqDomainPosition-r13 [3] INTEGER (0..23), + duration-r13 [4] BOOLEAN, + srs-ConfigIndex-r13 [5] INTEGER (0..1023), + transmissionComb-r13 [6] INTEGER (0..3), + cyclicShift-r13 [7] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), cs4(4), + cs5(5), cs6(6), cs7(7), cs8(8), cs9(9), cs10(10), cs11(11) }, + srs-AntennaPort-r13 [8] SRS-AntennaPort, + transmissionCombNum-r13 [9] ENUMERATED { n2(0), n4(1) } + } +} + +SRS-ConfigAp-v1310 ::= SEQUENCE { + transmissionCombAp-v1310 [0] INTEGER (2..3) OPTIONAL, -- Need OR + cyclicShiftAp-v1310 [1] ENUMERATED { cs8(0), cs9(1), cs10(2), cs11(3) } + OPTIONAL, -- Need OR + transmissionCombNum-r13 [2] ENUMERATED { n2(0), n4(1) } OPTIONAL -- Need OR +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigApDCI-Format4-v1310 [0] SEQUENCE (SIZE (1..3)) OF + SRS-ConfigAp-v1310 OPTIONAL, --Need ON + srs-ActivateAp-v1310 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigApDCI-Format0-v1310 [0] SRS-ConfigAp-v1310 OPTIONAL, -- Need ON + srs-ConfigApDCI-Format1a2b2c-v1310 [1] SRS-ConfigAp-v1310 OPTIONAL -- Need ON + } + } OPTIONAL -- Need ON + } +} + +SRS-ConfigAp-r13 ::= SEQUENCE { + srs-AntennaPortAp-r13 [0] SRS-AntennaPort, + srs-BandwidthAp-r13 [1] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3) }, + freqDomainPositionAp-r13 [2] INTEGER (0..23), + transmissionCombAp-r13 [3] INTEGER (0..3), + cyclicShiftAp-r13 [4] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), cs4(4), + cs5(5), cs6(6), cs7(7), cs8(8), cs9(9), cs10(10), cs11(11) }, + transmissionCombNum-r13 [5] ENUMERATED { n2(0), n4(1) } +} + +SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-UpPtsAdd-r13 [0] ENUMERATED { sym2(0), sym4(1) }, + srs-ConfigIndexAp-r13 [1] INTEGER (0..31), + srs-ConfigApDCI-Format4-r13 [2] SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 + OPTIONAL, --Need ON + srs-ActivateAp-r13 [3] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigApDCI-Format0-r13 [0] SRS-ConfigAp-r13, + srs-ConfigApDCI-Format1a2b2c-r13 [1] SRS-ConfigAp-r13 + } + } OPTIONAL -- Need ON + } +} + +CSI-RS-Config-v1310 ::= SEQUENCE { + eMIMO-Type-r13 [0] EXPLICIT CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON +} + +CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF + CSI-RS-ConfigNZP-r11 + +CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF + CSI-RS-ConfigNZPId-v1310 + +CQI-ReportPeriodic-v1320 ::= SEQUENCE { + periodicityFactorWB-r13 [0] ENUMERATED { n2(0), n4(1) } OPTIONAL -- Need OR +} + +CQI-ReportConfig-v1320 ::= SEQUENCE { + cqi-ReportPeriodic-v1320 [0] CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON +} + +SRS-CC-SetIndex-r14 ::= SEQUENCE { + cc-SetIndex-r14 [0] INTEGER (0..3), + cc-IndexInOneCC-Set-r14 [1] INTEGER (0..7) +} + +SRS-TPC-PDCCH-Config-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-TPC-RNTI-r14 [0] BIT STRING (SIZE (16)), + startingBitOfFormat3B-r14 [1] INTEGER (0..31), + fieldTypeFormat3B-r14 [2] INTEGER (1..4), + srs-CC-SetIndexlist-r14 [3] SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL -- Cond SRS-Trigger-TypeA + } +} + +PUSCH-EnhancementsConfig-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pusch-HoppingOffsetPUSCH-Enh-r14 [0] INTEGER (1..100) OPTIONAL, -- Need ON + interval-ULHoppingPUSCH-Enh-r14 [1] EXPLICIT CHOICE { + interval-FDD-PUSCH-Enh-r14 [0] ENUMERATED { int1(0), int2(1), int4(2) + , int8(3) }, + interval-TDD-PUSCH-Enh-r14 [1] ENUMERATED { int1(0), int5(1), int10(2) + , int20(3) } + } OPTIONAL -- Need ON + } +} + +AntennaInfoDedicated-v1430 ::= SEQUENCE { + ce-UE-TxAntennaSelection-config-r14 [0] ENUMERATED { on(0) } OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1430 ::= SEQUENCE { + pucch-NumRepetitionCE-format1-r14 [0] ENUMERATED { r64(0), r128(1) } + OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PDSCH-MaxBandwidth-r14 [0] ENUMERATED { bw5(0), bw20(1) } OPTIONAL, -- Need OP + ce-PDSCH-TenProcesses-r14 [1] ENUMERATED { on(0) } OPTIONAL, -- Need OR + ce-HARQ-AckBundling-r14 [2] ENUMERATED { on(0) } OPTIONAL, -- Need OR + ce-SchedulingEnhancement-r14 [3] ENUMERATED { range1(0), range2(1) } + OPTIONAL, -- Need OR + tbsIndexAlt2-r14 [4] ENUMERATED { b33(0) } OPTIONAL -- Need OR +} + +TDD-PUSCH-UpPTS-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + symPUSCH-UpPTS-r14 [0] ENUMERATED { sym1(0), sym2(1), sym3(2), sym4(3), + sym5(4), sym6(5) } OPTIONAL, -- Need ON + dmrs-LessUpPTS-Config-r14 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR + } +} + +Enable256QAM-r14 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + tpc-SubframeSet-Configured-r14 [0] SEQUENCE { + subframeSet1-DCI-Format0-r14 [0] BOOLEAN, + subframeSet1-DCI-Format4-r14 [1] BOOLEAN, + subframeSet2-DCI-Format0-r14 [2] BOOLEAN, + subframeSet2-DCI-Format4-r14 [3] BOOLEAN + }, + tpc-SubframeSet-NotConfigured-r14 [1] SEQUENCE { + dci-Format0-r14 [0] BOOLEAN, + dci-Format4-r14 [1] BOOLEAN + } + } +} + +PUSCH-ConfigDedicated-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 [0] ENUMERATED { on(0) } OPTIONAL, -- Need OR + ce-PUSCH-MaxBandwidth-r14 [1] ENUMERATED { bw5(0) } OPTIONAL, -- Need OR + tdd-PUSCH-UpPTS-r14 [2] EXPLICIT TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON + ul-DMRS-IFDMA-r14 [3] BOOLEAN, + enable256QAM-r14 [4] EXPLICIT Enable256QAM-r14 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1430 ::= SEQUENCE { + dummy [0] EXPLICIT CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON + eMIMO-Hybrid-r14 [1] EXPLICIT CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON + advancedCodebookEnabled-r14 [2] BOOLEAN OPTIONAL -- Need ON +} + +CSI-RS-ConfigZP-ApList-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11 +} + +CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE { + triggers-r14 [0] EXPLICIT CHOICE { + oneBit-r14 [0] SEQUENCE { + trigger1-Indicator-r14 [0] BIT STRING (SIZE (8)) + }, + twoBit-r14 [1] SEQUENCE { + trigger01-Indicator-r14 [0] BIT STRING (SIZE (8)), + trigger10-Indicator-r14 [1] BIT STRING (SIZE (8)), + trigger11-Indicator-r14 [2] BIT STRING (SIZE (8)) + }, + threeBit-r14 [2] SEQUENCE { + trigger001-Indicator-r14 [0] BIT STRING (SIZE (32)), + trigger010-Indicator-r14 [1] BIT STRING (SIZE (32)), + trigger011-Indicator-r14 [2] BIT STRING (SIZE (32)), + trigger100-Indicator-r14 [3] BIT STRING (SIZE (32)), + trigger101-Indicator-r14 [4] BIT STRING (SIZE (32)), + trigger110-Indicator-r14 [5] BIT STRING (SIZE (32)), + trigger111-Indicator-r14 [6] BIT STRING (SIZE (32)) + } + } OPTIONAL -- Need OR +} + +CQI-ReportConfig-v1430 ::= SEQUENCE { + cqi-ReportAperiodicHybrid-r14 [0] CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON +} + +CSI-RS-Config-v1480 ::= SEQUENCE { + eMIMO-Type-v1480 [0] EXPLICIT CSI-RS-ConfigEMIMO-v1480 OPTIONAL -- Need ON +} + +AntennaInfoDedicatedSTTI-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + transmissionModeDL-MBSFN-r15 [0] ENUMERATED { tm9(0), tm10(1) } OPTIONAL, + -- Need OR + transmissionModeDL-nonMBSFN-r15 [1] ENUMERATED { tm1(0), tm2(1), tm3(2), + tm4(3), tm6(4), tm8(5), tm9(6), tm10(7) } OPTIONAL, -- Need OR + codebookSubsetRestriction [2] EXPLICIT CHOICE { + n2TxAntenna-tm3-r15 [0] BIT STRING (SIZE (2)), + n4TxAntenna-tm3-r15 [1] BIT STRING (SIZE (4)), + n2TxAntenna-tm4-r15 [2] BIT STRING (SIZE (6)), + n4TxAntenna-tm4-r15 [3] BIT STRING (SIZE (64)), + n2TxAntenna-tm5-r15 [4] BIT STRING (SIZE (4)), + n4TxAntenna-tm5-r15 [5] BIT STRING (SIZE (16)), + n2TxAntenna-tm6-r15 [6] BIT STRING (SIZE (4)), + n4TxAntenna-tm6-r15 [7] BIT STRING (SIZE (16)), + n2TxAntenna-tm8-r15 [8] BIT STRING (SIZE (6)), + n4TxAntenna-tm8-r15 [9] BIT STRING (SIZE (64)), + n2TxAntenna-tm9and10-r15 [10] BIT STRING (SIZE (6)), + n4TxAntenna-tm9and10-r15 [11] BIT STRING (SIZE (96)), + n8TxAntenna-tm9and10-r15 [12] BIT STRING (SIZE (109)) + } OPTIONAL, -- Cond TM + maxLayersMIMO-STTI-r15 [3] ENUMERATED { twoLayers(0), fourLayers(1) } + OPTIONAL, -- Need OR + slotSubslotPDSCH-TxDiv-2Layer-r15 [4] BOOLEAN, + slotSubslotPDSCH-TxDiv-4Layer-r15 [5] BOOLEAN + } +} + +AntennaInfoUL-STTI-r15 ::= SEQUENCE { + transmissionModeUL-STTI-r15 [0] ENUMERATED { tm1(0), tm2(1) } OPTIONAL -- Need OR +} + +PUCCH-ConfigDedicated-v1530 ::= SEQUENCE { + n1PUCCH-AN-SPT-r15 [0] INTEGER (0..2047) OPTIONAL, -- Need OR + codebooksizeDeterminationSTTI-r15 [1] ENUMERATED { dai(0), cc(1) } OPTIONAL -- Need OR +} + +SR-SubslotSPUCCH-ResourceList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..1319) + +SchedulingRequestConfig-v1530 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + sr-SlotSPUCCH-IndexFH-r15 [0] INTEGER (0..1319) OPTIONAL, -- Need OR + sr-SlotSPUCCH-IndexNoFH-r15 [1] INTEGER (0..3959) OPTIONAL, -- Need OR + sr-SubslotSPUCCH-ResourceList-r15 [2] SR-SubslotSPUCCH-ResourceList-r15 + OPTIONAL, -- Need OR + sr-ConfigIndexSlot-r15 [3] INTEGER (0..36) OPTIONAL, -- Need OR + sr-ConfigIndexSubslot-r15 [4] INTEGER (0..122) OPTIONAL, -- Need OR + dssr-TransMax-r15 [5] ENUMERATED { n4(0), n8(1), n16(2), n32(3), n64(4), + spare3(5), spare2(6), spare1(7) } + } +} + +DeltaTxD-OffsetListSPUCCH-r15 ::= SEQUENCE { + deltaTxD-OffsetSPUCCH-Format1-r15 [0] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetSPUCCH-Format1a-r15 [1] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetSPUCCH-Format1b-r15 [2] ENUMERATED { dB0(0), dB-2(1) }, + deltaTxD-OffsetSPUCCH-Format3-r15 [3] ENUMERATED { dB0(0), dB-2(1) }, + ... +} + +UplinkPowerControlDedicatedSTTI-r15 ::= SEQUENCE { + accumulationEnabledSTTI-r15 [0] BOOLEAN, + deltaTxD-OffsetListSPUCCH-r15 [1] DeltaTxD-OffsetListSPUCCH-r15 OPTIONAL, -- Need OR + uplinkPower-CSIPayload [2] BOOLEAN +} + +CQI-ReportConfig-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-ReportConfig-r10 [0] CQI-ReportConfig-r10 OPTIONAL, -- Need ON + cqi-ReportConfig-v1130 [1] CQI-ReportConfig-v1130 OPTIONAL, -- Need ON + cqi-ReportConfigPCell-v1250 [2] CQI-ReportConfig-v1250 OPTIONAL, -- Need ON + cqi-ReportConfig-v1310 [3] CQI-ReportConfig-v1310 OPTIONAL, -- Need ON + cqi-ReportConfig-v1320 [4] CQI-ReportConfig-v1320 OPTIONAL, -- Need ON + cqi-ReportConfig-v1430 [5] CQI-ReportConfig-v1430 OPTIONAL, -- Need ON + altCQI-Table-1024QAM-r15 [6] ENUMERATED { allSubframes(0), + csi-SubframeSet1(1), csi-SubframeSet2(2), spare1(3) } OPTIONAL -- Need OP + } +} + +CSI-RS-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + csi-RS-Config-r10 [0] CSI-RS-Config-r10 OPTIONAL, -- Need ON + csi-RS-Config-v1250 [1] CSI-RS-Config-v1250 OPTIONAL, -- Need ON + csi-RS-Config-v1310 [2] CSI-RS-Config-v1310 OPTIONAL, -- Need ON + csi-RS-Config-v1430 [3] CSI-RS-Config-v1430 OPTIONAL -- Need ON + } +} + +CSI-RS-ConfigNZPToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r13)) OF + CSI-RS-ConfigNZPId-r13 + +CSI-RS-ConfigNZPToAddModList-r15 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r13)) OF + CSI-RS-ConfigNZP-r11 + +SlotOrSubslotPDSCH-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + altCQI-TableSTTI-r15 [0] ENUMERATED { allSubframes(0), + csi-SubframeSet1(1), csi-SubframeSet2(2), spare1(3) } OPTIONAL, -- Need OR + altCQI-Table1024QAM-STTI-r15 [1] ENUMERATED { allSubframes(0), + csi-SubframeSet1(1), csi-SubframeSet2(2), spare1(3) } OPTIONAL, -- Need OR + resourceAllocation-r15 [2] ENUMERATED { resourceAllocationType0(0), + resourceAllocationType2(1) } OPTIONAL, -- Need OR + tbsIndexAlt-STTI-r15 [3] ENUMERATED { a33(0) } OPTIONAL, -- Need OR + tbsIndexAlt2-STTI-r15 [4] ENUMERATED { b33(0) } OPTIONAL, -- Need OR + tbsIndexAlt3-STTI-r15 [5] ENUMERATED { a37(0) } OPTIONAL, + ... + } +} + +SlotOrSubslotPUSCH-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + betaOffsetSlot-ACK-Index-r15 [0] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffset2Slot-ACK-Index-r15 [1] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffsetSubslot-ACK-Index-r15 [2] SEQUENCE (SIZE (1..2)) OF INTEGER (0..15) + OPTIONAL, -- Need OR + betaOffset2Subslot-ACK-Index-r15 [3] SEQUENCE (SIZE (1..2)) OF INTEGER (0..15) + OPTIONAL, -- Need OR + betaOffsetSlot-RI-Index-r15 [4] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffsetSubslot-RI-Index-r15 [5] SEQUENCE (SIZE (1..2)) OF INTEGER (0..15) + OPTIONAL, -- Need OR + betaOffsetSlot-CQI-Index-r15 [6] INTEGER (0..15) OPTIONAL, -- Need OR + betaOffsetSubslot-CQI-Index-r15 [7] INTEGER (0..15) OPTIONAL, -- Need OR + enable256QAM-SlotOrSubslot-r15 [8] EXPLICIT Enable256QAM-r14 OPTIONAL, -- Need ON + resourceAllocationOffset-r15 [9] INTEGER (1..2) OPTIONAL, -- Need OR + ul-DMRS-IFDMA-SlotOrSubslot-r15 [10] BOOLEAN, + ... + } +} + +DCI7-CandidatesPerAL-SPDCCH-r15 ::= SEQUENCE (SIZE (1..4)) OF DCI7-Candidates-r15 + + +SPDCCH-Elements-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + spdcch-SetConfigId-r15 [0] INTEGER (0..3) OPTIONAL, -- Need OR + spdcch-SetReferenceSig-r15 [1] ENUMERATED { crs(0), dmrs(1) } OPTIONAL, -- Need OR + transmissionType-r15 [2] ENUMERATED { localised(0), distributed(1) } + OPTIONAL, -- Need OR + spdcch-NoOfSymbols-r15 [3] INTEGER (1..2) OPTIONAL, -- Need OR + dmrs-ScramblingSequenceInt-r15 [4] INTEGER (0..503) OPTIONAL, -- Need OR + dci7-CandidatesPerAL-PDCCH-r15 [5] SEQUENCE (SIZE (1..4)) OF + DCI7-Candidates-r15 OPTIONAL, -- Need OR + dci7-CandidateSetsPerAL-SPDCCH-r15 [6] SEQUENCE (SIZE (1..2)) OF + DCI7-CandidatesPerAL-SPDCCH-r15 OPTIONAL, -- Need OR + resourceBlockAssignment-r15 [7] SEQUENCE { + numberRB-InFreq-domain-r15 [0] INTEGER (2..100), + resourceBlockAssignment-r15 [1] BIT STRING (SIZE (98)) + } OPTIONAL, -- Need OR + subslotApplicability-r15 [8] BIT STRING (SIZE (5)) OPTIONAL, -- Need OR + al-StartingPointSPDCCH-r15 [9] SEQUENCE (SIZE (1..4)) OF INTEGER (0..49) + OPTIONAL, -- Need OR + subframeType-r15 [10] ENUMERATED { mbsfn(0), nonmbsfn(1), all(2) } + OPTIONAL, -- Need OR + rateMatchingMode-r15 [11] ENUMERATED { m1(0), m2(1), m3(2), m4(3) } + OPTIONAL, + ... + } +} + +SPDCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPDCCH-Elements-r15 + +SPDCCH-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + spdcch-L1-ReuseIndication-r15 [0] ENUMERATED { n0(0), n1(1), n2(2) } + OPTIONAL, -- Need OR + spdcch-SetConfig-r15 [1] SPDCCH-Set-r15 OPTIONAL -- Need OR + } +} + +N4SPUCCH-Resource-r15 ::= SEQUENCE { + n4startingPRB-r15 [0] INTEGER (0..109), + n4numberOfPRB-r15 [1] INTEGER (0..7) +} + +SPUCCH-Elements-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1SubslotSPUCCH-AN-List-r15 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..1319) + OPTIONAL, -- Need OR + n1SlotSPUCCH-FH-AN-List-r15 [1] INTEGER (0..1319) OPTIONAL, -- Need OR + n1SlotSPUCCH-NoFH-AN-List-r15 [2] INTEGER (0..3959) OPTIONAL, -- Need OR + n3SPUCCH-AN-List-r15 [3] INTEGER (0..549) OPTIONAL, -- Need OR + n4SPUCCHSlot-Resource-r15 [4] SEQUENCE (SIZE (1..2)) OF + N4SPUCCH-Resource-r15 OPTIONAL, -- Need OR + n4SPUCCHSubslot-Resource-r15 [5] SEQUENCE (SIZE (1..2)) OF + N4SPUCCH-Resource-r15 OPTIONAL, -- Need OR + n4maxCoderateSlotPUCCH-r15 [6] INTEGER (0..7) OPTIONAL, -- Need OR + n4maxCoderateSubslotPUCCH-r15 [7] INTEGER (0..7) OPTIONAL, -- Need OR + n4maxCoderateMultiResourceSlotPUCCH-r15 [8] INTEGER (0..7) OPTIONAL, -- Need OR + n4maxCoderateMultiResourceSubslotPUCCH-r15 [9] INTEGER (0..7) OPTIONAL -- Need OR + } +} + +SPUCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPUCCH-Elements-r15 + +SPUCCH-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + spucch-Set-r15 [0] SPUCCH-Set-r15 OPTIONAL, -- Need ON + twoAntennaPortActivatedSPUCCH-Format1a1b-r15 [1] ENUMERATED { true(0) } + OPTIONAL, -- Need OR + dummy [2] SEQUENCE { + n3SPUCCH-AN-List-r15 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } +} + +ShortTTI-r15 ::= SEQUENCE { + dl-STTI-Length-r15 [0] ShortTTI-Length-r15 OPTIONAL, -- Need OR + ul-STTI-Length-r15 [1] ShortTTI-Length-r15 OPTIONAL -- Need OR +} + +PhysicalConfigDedicatedSTTI-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + antennaInfoDedicatedSTTI-r15 [0] EXPLICIT AntennaInfoDedicatedSTTI-r15 + OPTIONAL, -- Need ON + antennaInfoUL-STTI-r15 [1] AntennaInfoUL-STTI-r15 OPTIONAL, -- Need ON + pucch-ConfigDedicated-v1530 [2] PUCCH-ConfigDedicated-v1530 OPTIONAL, -- Need ON + schedulingRequestConfig-v1530 [3] EXPLICIT SchedulingRequestConfig-v1530 + OPTIONAL, -- Need ON + uplinkPowerControlDedicatedSTTI-r15 [4] + UplinkPowerControlDedicatedSTTI-r15 OPTIONAL, --Need ON + cqi-ReportConfig-r15 [5] EXPLICIT CQI-ReportConfig-r15 OPTIONAL, -- Need ON + csi-RS-Config-r15 [6] EXPLICIT CSI-RS-Config-r15 OPTIONAL, -- Need ON + csi-RS-ConfigNZPToReleaseList-r15 [7] CSI-RS-ConfigNZPToReleaseList-r15 + OPTIONAL, -- Need ON + csi-RS-ConfigNZPToAddModList-r15 [8] CSI-RS-ConfigNZPToAddModList-r15 + OPTIONAL, -- Need ON + csi-RS-ConfigZPToReleaseList-r15 [9] CSI-RS-ConfigZPToReleaseList-r11 + OPTIONAL, -- Need ON + csi-RS-ConfigZPToAddModList-r11 [10] CSI-RS-ConfigZPToAddModList-r11 + OPTIONAL, -- Need ON + csi-RS-ConfigZP-ApList-r15 [11] EXPLICIT CSI-RS-ConfigZP-ApList-r14 + OPTIONAL, -- Need ON + eimta-MainConfig-r12 [12] EXPLICIT EIMTA-MainConfig-r12 OPTIONAL, -- Need ON + eimta-MainConfigServCell-r15 [13] EXPLICIT EIMTA-MainConfigServCell-r12 + OPTIONAL, -- Need ON + semiOpenLoopSTTI-r15 [14] BOOLEAN, + slotOrSubslotPDSCH-Config-r15 [15] EXPLICIT SlotOrSubslotPDSCH-Config-r15 + OPTIONAL, -- Need ON + slotOrSubslotPUSCH-Config-r15 [16] EXPLICIT SlotOrSubslotPUSCH-Config-r15 + OPTIONAL, -- Need ON + spdcch-Config-r15 [17] EXPLICIT SPDCCH-Config-r15 OPTIONAL, -- Need ON + spucch-Config-r15 [18] EXPLICIT SPUCCH-Config-r15 OPTIONAL, -- Need ON + srs-DCI7-TriggeringConfig-r15 [19] BOOLEAN, + shortProcessingTime-r15 [20] BOOLEAN, + shortTTI-r15 [21] ShortTTI-r15 OPTIONAL -- Need ON + } +} + +PDSCH-ConfigDedicated-v1530 ::= SEQUENCE { + qcl-Operation-v1530 [0] ENUMERATED { typeC(0) } OPTIONAL, -- Need OR + tbs-IndexAlt3-r15 [1] ENUMERATED { a37(0) } OPTIONAL, -- Need OR + ce-CQI-AlternativeTableConfig-r15 [2] ENUMERATED { on(0) } OPTIONAL, -- Need OR + ce-PDSCH-64QAM-Config-r15 [3] ENUMERATED { on(0) } OPTIONAL, -- Need OR + ce-PDSCH-FlexibleStartPRB-AllocConfig-r15 [4] ENUMERATED { on(0) } OPTIONAL, + -- Need OR + altMCS-TableScalingConfig-r15 [5] ENUMERATED { oDot5(0), oDot625(1), + oDot75(2), oDot875(3) } OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1530 ::= SEQUENCE { + ce-PUSCH-FlexibleStartPRB-AllocConfig-r15 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + offsetCE-ModeB-r15 [0] INTEGER (-1..3) OPTIONAL -- Cond CE-ModeB + } + }, + ce-PUSCH-SubPRB-Config-r15 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + locationCE-ModeB-r15 [0] INTEGER (0..5) OPTIONAL, -- Cond CE-ModeB + sixToneCyclicShift-r15 [1] INTEGER (0..3), + threeToneCyclicShift-r15 [2] INTEGER (0..2) + } + } OPTIONAL -- Need ON +} + +CQI-ReportConfig-v1530 ::= SEQUENCE { + altCQI-Table-1024QAM-r15 [0] ENUMERATED { allSubframes(0), + csi-SubframeSet1(1), csi-SubframeSet2(2), spare1(3) } OPTIONAL -- Need OP +} + +AntennaInfoDedicated-v1530 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + ue-TxAntennaSelection-SRS-1T4R-Config-r15 [0] NULL, + ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15 [1] ENUMERATED { two(0), + three(1) } + } +} + +CSI-RS-Config-v1530 ::= SEQUENCE { + eMIMO-Type-v1530 [0] EXPLICIT CSI-RS-ConfigEMIMO-v1530 OPTIONAL -- Need ON +} + +UplinkPowerControlDedicated-v1530 ::= SEQUENCE { + alpha-UE-r15 [0] Alpha-r12 OPTIONAL, -- Need OR + p0-UE-PUSCH-r15 [1] INTEGER (-16..15) OPTIONAL -- Need OR +} + +CFI-Config-r15 ::= SEQUENCE { + cfi-SubframeNonMBSFN-r15 [0] INTEGER (1..4) OPTIONAL, -- Need ON + cfi-SlotSubslotNonMBSFN-r15 [1] INTEGER (1..3) OPTIONAL, -- Need ON + cfi-SubframeMBSFN-r15 [2] INTEGER (1..2) OPTIONAL, -- Need ON + cfi-SlotSubslotMBSFN-r15 [3] INTEGER (1..2) OPTIONAL -- Need ON +} + +CFI-PatternConfig-r15 ::= SEQUENCE { + cfi-PatternSubframe-r15 [0] SEQUENCE (SIZE (10)) OF INTEGER (1..4) OPTIONAL, -- Need ON + cfi-PatternSlotSubslot-r15 [1] SEQUENCE (SIZE (10)) OF INTEGER (1..3) OPTIONAL -- Need ON +} + +SPUCCH-Config-v1550 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + twoAntennaPortActivatedSPUCCH-Format3-v1550 [0] SEQUENCE { + n3SPUCCH-AN-List-v1550 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) + } + } +} + +CE-PDSCH-MultiTB-Config-r16 ::= SEQUENCE { + interleaving-r16 [0] ENUMERATED { on(0) } OPTIONAL, -- Need OR + harq-AckBundling-r16 [1] ENUMERATED { on(0) } OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicated-v1610 ::= SEQUENCE { + ce-PDSCH-MultiTB-Config-r16 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CE-PDSCH-MultiTB-Config-r16 + } +} + +CE-PUSCH-MultiTB-Config-r16 ::= SEQUENCE { + interleaving-r16 [0] ENUMERATED { on(0) } OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicated-v1610 ::= SEQUENCE { + ce-PUSCH-MultiTB-Config-r16 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CE-PUSCH-MultiTB-Config-r16 + } +} + +ResourceReservationConfigDedicatedDL-r16 ::= SEQUENCE { + resourceReservationDedicatedDL-r16 [0] ResourceReservationConfigDL-r16 + OPTIONAL -- Need OP +} + +ResourceReservationConfigDedicatedUL-r16 ::= SEQUENCE { + resourceReservationDedicatedUL-r16 [0] ResourceReservationConfigUL-r16 + OPTIONAL -- Need OP +} + +SRS-ConfigAdd-r16 ::= SEQUENCE { + srs-RepNumAdd-r16 [0] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n6(4), n7(5) + , n8(6), n9(7), n12(8), n13(9) }, + srs-BandwidthAdd-r16 [1] ENUMERATED { bw0(0), bw1(1), bw2(2), bw3(3) }, + srs-HoppingBandwidthAdd-r16 [2] ENUMERATED { hbw0(0), hbw1(1), hbw2(2), + hbw3(3) }, + srs-FreqDomainPosAdd-r16 [3] INTEGER (0..23), + srs-AntennaPortAdd-r16 [4] SRS-AntennaPort, + srs-CyclicShiftAdd-r16 [5] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), + cs4(4), cs5(5), cs6(6), cs7(7), cs8(8), cs9(9), cs10(10), cs11(11) }, + srs-TransmissionCombNumAdd-r16 [6] ENUMERATED { n2(0), n4(1) }, + srs-TransmissionCombAdd-r16 [7] INTEGER (0..3), + srs-StartPosAdd-r16 [8] INTEGER (1..13), + srs-DurationAdd-r16 [9] INTEGER (1..13), + srs-GuardSymbolAS-Add-r16 [10] ENUMERATED { enabled(0) } OPTIONAL, -- Need ON + srs-GuardSymbolFH-Add-r16 [11] ENUMERATED { enabled(0) } OPTIONAL -- Need ON +} + +SoundingRS-UL-ConfigDedicatedAdd-r16 ::= SEQUENCE { + srs-ConfigIndexAp-r16 [0] INTEGER (0..31), + srs-ConfigApDCI-Format4-r16 [1] SEQUENCE (SIZE (1..3)) OF SRS-ConfigAdd-r16 + OPTIONAL, + --Need ON + srs-ActivateAp-r13 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-ConfigApDCI-Format0-r16 [0] SRS-ConfigAdd-r16, + srs-ConfigApDCI-Format1a2b2c-r16 [1] SRS-ConfigAdd-r16 + } + } OPTIONAL --Need ON +} + +UplinkPowerControlAddSRS-r16 ::= SEQUENCE { + tpc-IndexSRS-Add-r16 [0] EXPLICIT TPC-Index OPTIONAL, -- Need ON + startingBitOfFormat3B-SRS-Add-r16 [1] INTEGER (0..31) OPTIONAL, -- Need ON + fieldTypeFormat3B-SRS-Add-r16 [2] INTEGER (1..2) OPTIONAL, -- Need ON + p0-UE-SRS-Add-r16 [3] INTEGER (-16..15) OPTIONAL, -- Need ON + accumulationEnabledSRS-Add-r16 [4] BOOLEAN +} + +SoundingRS-VirtualCellID-r16 ::= SEQUENCE { + srs-VirtualCellID-r16 [0] INTEGER (0..503), + srs-VirtualCellID-AllSRS-r16 [1] BOOLEAN +} + +WidebandPRG-r16 ::= SEQUENCE { + widebandPRG-Subframe-r16 [0] BOOLEAN, + widebandPRG-SlotSubslot-r16 [1] BOOLEAN +} + +CE-PDSCH-14HARQ-Config-r17 ::= SEQUENCE { + ce-HARQ-AckDelay-r17 [0] ENUMERATED { alt-1(0), alt-2e(1) } +} + +PDSCH-ConfigDedicated-v1700 ::= SEQUENCE { + ce-PDSCH-14HARQ-Config-r17 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CE-PDSCH-14HARQ-Config-r17 + } OPTIONAL, -- Need ON + ce-PDSCH-maxTBS-r17 [1] ENUMERATED { enabled(0) } OPTIONAL -- Need OR +} + +PhysicalConfigDedicated ::= SEQUENCE { + pdsch-ConfigDedicated [0] PDSCH-ConfigDedicated OPTIONAL, -- Need ON + pucch-ConfigDedicated [1] PUCCH-ConfigDedicated OPTIONAL, -- Need ON + pusch-ConfigDedicated [2] PUSCH-ConfigDedicated OPTIONAL, -- Need ON + uplinkPowerControlDedicated [3] UplinkPowerControlDedicated OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH [4] EXPLICIT TPC-PDCCH-Config OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUSCH [5] EXPLICIT TPC-PDCCH-Config OPTIONAL, -- Need ON + cqi-ReportConfig [6] CQI-ReportConfig OPTIONAL, -- Cond CQI-r8 + soundingRS-UL-ConfigDedicated [7] EXPLICIT SoundingRS-UL-ConfigDedicated + OPTIONAL, -- Need ON + antennaInfo [8] EXPLICIT CHOICE { + explicitValue [0] AntennaInfoDedicated, + defaultValue [1] NULL + } OPTIONAL, -- Cond AI-r8 + schedulingRequestConfig [9] EXPLICIT SchedulingRequestConfig OPTIONAL, + ..., + [[ + cqi-ReportConfig-v920 [10] CQI-ReportConfig-v920 OPTIONAL, + antennaInfo-v920 [11] AntennaInfoDedicated-v920 OPTIONAL + ]], + [[ + antennaInfo-r10 [12] EXPLICIT CHOICE { + explicitValue-r10 [0] AntennaInfoDedicated-r10, + defaultValue [1] NULL + } OPTIONAL, + antennaInfoUL-r10 [13] AntennaInfoUL-r10 OPTIONAL, + cif-Presence-r10 [14] BOOLEAN OPTIONAL, + cqi-ReportConfig-r10 [15] CQI-ReportConfig-r10 OPTIONAL, + csi-RS-Config-r10 [16] CSI-RS-Config-r10 OPTIONAL, + pucch-ConfigDedicated-v1020 [17] PUCCH-ConfigDedicated-v1020 OPTIONAL, + pusch-ConfigDedicated-v1020 [18] PUSCH-ConfigDedicated-v1020 OPTIONAL, + schedulingRequestConfig-v1020 [19] SchedulingRequestConfig-v1020 OPTIONAL + , + soundingRS-UL-ConfigDedicated-v1020 [20] + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, + soundingRS-UL-ConfigDedicatedAperiodic-r10 [21] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, + uplinkPowerControlDedicated-v1020 [22] UplinkPowerControlDedicated-v1020 + OPTIONAL + ]], + [[ + additionalSpectrumEmissionCA-r10 [23] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + additionalSpectrumEmissionPCell-r10 [0] AdditionalSpectrumEmission + } + } OPTIONAL + ]], + [[ + csi-RS-ConfigNZPToReleaseList-r11 [24] CSI-RS-ConfigNZPToReleaseList-r11 + OPTIONAL, + csi-RS-ConfigNZPToAddModList-r11 [25] CSI-RS-ConfigNZPToAddModList-r11 + OPTIONAL, + csi-RS-ConfigZPToReleaseList-r11 [26] CSI-RS-ConfigZPToReleaseList-r11 + OPTIONAL, + csi-RS-ConfigZPToAddModList-r11 [27] CSI-RS-ConfigZPToAddModList-r11 + OPTIONAL, + epdcch-Config-r11 [28] EPDCCH-Config-r11 OPTIONAL, + pdsch-ConfigDedicated-v1130 [29] PDSCH-ConfigDedicated-v1130 OPTIONAL, + cqi-ReportConfig-v1130 [30] CQI-ReportConfig-v1130 OPTIONAL, + pucch-ConfigDedicated-v1130 [31] PUCCH-ConfigDedicated-v1130 OPTIONAL, + pusch-ConfigDedicated-v1130 [32] PUSCH-ConfigDedicated-v1130 OPTIONAL, + uplinkPowerControlDedicated-v1130 [33] UplinkPowerControlDedicated-v1130 + OPTIONAL + ]], + [[ + antennaInfo-v1250 [34] AntennaInfoDedicated-v1250 OPTIONAL, + eimta-MainConfig-r12 [35] EXPLICIT EIMTA-MainConfig-r12 OPTIONAL, + eimta-MainConfigPCell-r12 [36] EXPLICIT EIMTA-MainConfigServCell-r12 + OPTIONAL, + pucch-ConfigDedicated-v1250 [37] PUCCH-ConfigDedicated-v1250 OPTIONAL, + cqi-ReportConfigPCell-v1250 [38] CQI-ReportConfig-v1250 OPTIONAL, + uplinkPowerControlDedicated-v1250 [39] UplinkPowerControlDedicated-v1250 + OPTIONAL, + pusch-ConfigDedicated-v1250 [40] PUSCH-ConfigDedicated-v1250 OPTIONAL, + csi-RS-Config-v1250 [41] CSI-RS-Config-v1250 OPTIONAL + ]], + [[ + pdsch-ConfigDedicated-v1280 [42] PDSCH-ConfigDedicated-v1280 OPTIONAL + ]], + [[ + pdsch-ConfigDedicated-v1310 [43] PDSCH-ConfigDedicated-v1310 OPTIONAL, + pucch-ConfigDedicated-r13 [44] PUCCH-ConfigDedicated-r13 OPTIONAL, + pusch-ConfigDedicated-r13 [45] PUSCH-ConfigDedicated-r13 OPTIONAL, + pdcch-CandidateReductions-r13 [46] EXPLICIT PDCCH-CandidateReductions-r13 + OPTIONAL, + cqi-ReportConfig-v1310 [47] CQI-ReportConfig-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicated-v1310 [48] EXPLICIT + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 [49] EXPLICIT + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, + soundingRS-UL-ConfigDedicatedAperiodic-v1310 [50] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 [51] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, + csi-RS-Config-v1310 [52] CSI-RS-Config-v1310 OPTIONAL, + ce-Mode-r13 [53] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { ce-ModeA(0), ce-ModeB(1) } + } OPTIONAL, + csi-RS-ConfigNZPToAddModListExt-r13 [54] + CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, + csi-RS-ConfigNZPToReleaseListExt-r13 [55] + CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL + ]], + [[ + cqi-ReportConfig-v1320 [56] CQI-ReportConfig-v1320 OPTIONAL + ]], + [[ + typeA-SRS-TPC-PDCCH-Group-r14 [57] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14 + } OPTIONAL, + must-Config-r14 [58] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + k-max-r14 [0] ENUMERATED { l1(0), l3(1) }, + p-a-must-r14 [1] ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), + dB-1dot77(3), dB0(4), dB1(5), dB2(6), dB3(7) } OPTIONAL -- Need ON + } + } OPTIONAL, + pusch-EnhancementsConfig-r14 [59] EXPLICIT PUSCH-EnhancementsConfig-r14 + OPTIONAL, + ce-pdsch-pusch-EnhancementConfig-r14 [60] ENUMERATED { on(0) } OPTIONAL, + antennaInfo-v1430 [61] AntennaInfoDedicated-v1430 OPTIONAL, + pucch-ConfigDedicated-v1430 [62] PUCCH-ConfigDedicated-v1430 OPTIONAL, + pdsch-ConfigDedicated-v1430 [63] PDSCH-ConfigDedicated-v1430 OPTIONAL, + pusch-ConfigDedicated-v1430 [64] PUSCH-ConfigDedicated-v1430 OPTIONAL, + soundingRS-UL-PeriodicConfigDedicatedList-r14 [65] SEQUENCE (SIZE (1..2) + ) OF SoundingRS-UL-ConfigDedicated OPTIONAL, + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 [66] SEQUENCE ( + SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, + soundingRS-UL-AperiodicConfigDedicatedList-r14 [67] SEQUENCE (SIZE (1..2) + ) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 [68] SEQUENCE (SIZE (1..4) + ) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, + csi-RS-Config-v1430 [69] CSI-RS-Config-v1430 OPTIONAL, + csi-RS-ConfigZP-ApList-r14 [70] EXPLICIT CSI-RS-ConfigZP-ApList-r14 + OPTIONAL, + cqi-ReportConfig-v1430 [71] CQI-ReportConfig-v1430 OPTIONAL, + semiOpenLoop-r14 [72] BOOLEAN OPTIONAL + ]], + [[ + csi-RS-Config-v1480 [73] CSI-RS-Config-v1480 OPTIONAL + ]], + [[ + physicalConfigDedicatedSTTI-r15 [74] EXPLICIT + PhysicalConfigDedicatedSTTI-r15 OPTIONAL, + pdsch-ConfigDedicated-v1530 [75] PDSCH-ConfigDedicated-v1530 OPTIONAL, + pusch-ConfigDedicated-v1530 [76] PUSCH-ConfigDedicated-v1530 OPTIONAL, + cqi-ReportConfig-v1530 [77] CQI-ReportConfig-v1530 OPTIONAL, + antennaInfo-v1530 [78] EXPLICIT AntennaInfoDedicated-v1530 OPTIONAL, + csi-RS-Config-v1530 [79] CSI-RS-Config-v1530 OPTIONAL, + uplinkPowerControlDedicated-v1530 [80] UplinkPowerControlDedicated-v1530 + OPTIONAL, + semiStaticCFI-Config-r15 [81] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + cfi-Config-r15 [0] CFI-Config-r15, + cfi-PatternConfig-r15 [1] CFI-PatternConfig-r15 + } + } OPTIONAL, + blindPDSCH-Repetition-Config-r15 [82] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + blindSubframePDSCH-Repetitions-r15 [0] BOOLEAN, + blindSlotSubslotPDSCH-Repetitions-r15 [1] BOOLEAN, + maxNumber-SubframePDSCH-Repetitions-r15 [2] ENUMERATED { n4(0), + n6(1) } OPTIONAL, -- Need ON + maxNumber-SlotSubslotPDSCH-Repetitions-r15 [3] ENUMERATED { n4(0), + n6(1) } OPTIONAL, -- Need ON + rv-SubframePDSCH-Repetitions-r15 [4] ENUMERATED { dlrvseq1(0), + dlrvseq2(1) } OPTIONAL, -- Need ON + rv-SlotsublotPDSCH-Repetitions-r15 [5] ENUMERATED { dlrvseq1(0), + dlrvseq2(1) } OPTIONAL, -- Need ON + numberOfProcesses-SubframePDSCH-Repetitions-r15 [6] INTEGER (1..16) + OPTIONAL, -- Need ON + numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15 [7] INTEGER (1..16) + OPTIONAL, -- Need ON + mcs-restrictionSubframePDSCH-Repetitions-r15 [8] ENUMERATED { n0(0) + , n1(1) } OPTIONAL, -- Need ON + mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 [9] ENUMERATED { + n0(0), n1(1) } OPTIONAL -- Need ON + } + } OPTIONAL + ]], + [[ + spucch-Config-v1550 [83] EXPLICIT SPUCCH-Config-v1550 OPTIONAL + ]], + [[ + pdsch-ConfigDedicated-v1610 [84] PDSCH-ConfigDedicated-v1610 OPTIONAL, + pusch-ConfigDedicated-v1610 [85] PUSCH-ConfigDedicated-v1610 OPTIONAL, + ce-CSI-RS-Feedback-r16 [86] ENUMERATED { enabled(0) } OPTIONAL, + resourceReservationConfigDedicatedDL-r16 [87] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT ResourceReservationConfigDedicatedDL-r16 + } OPTIONAL, + resourceReservationConfigDedicatedUL-r16 [88] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT ResourceReservationConfigDedicatedUL-r16 + } OPTIONAL, + soundingRS-UL-ConfigDedicatedAdd-r16 [89] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SoundingRS-UL-ConfigDedicatedAdd-r16 + } OPTIONAL, + uplinkPowerControlAddSRS-r16 [90] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT UplinkPowerControlAddSRS-r16 + } OPTIONAL, + soundingRS-VirtualCellID-r16 [91] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SoundingRS-VirtualCellID-r16 + } OPTIONAL, + widebandPRG-r16 [92] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT WidebandPRG-r16 + } OPTIONAL + ]], + [[ + pdsch-ConfigDedicated-v1700 [93] PDSCH-ConfigDedicated-v1700 OPTIONAL, + ntn-ConfigDedicated-r17 [94] SEQUENCE { + pucch-TxDuration-r17 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT PUCCH-TxDuration-r17 + } OPTIONAL, -- Need ON + pusch-TxDuration-r17 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT PUSCH-TxDuration-r17 + } OPTIONAL -- Need ON + } OPTIONAL + ]], + [[ + uplinkSegmentedPrecompensationGap-r17 [95] ENUMERATED { sym1(0), sl1(1), + sf1(2) } OPTIONAL + ]] +} + +RLF-TimersAndConstants-r9 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + t301-r9 [0] ENUMERATED { ms100(0), ms200(1), ms300(2), ms400(3), ms600(4) + , ms1000(5), ms1500(6), ms2000(7) }, + t310-r9 [1] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), ms500(4), + ms1000(5), ms2000(6) }, + n310-r9 [2] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n6(4), n8(5), n10(6) + , n20(7) }, + t311-r9 [3] ENUMERATED { ms1000(0), ms3000(1), ms5000(2), ms10000(3), + ms15000(4), ms20000(5), ms30000(6) }, + n311-r9 [4] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n5(4), n6(5), n8(6) + , n10(7) }, + ... + } +} + +MeasSubframePatternPCell-r10 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT MeasSubframePattern-r10 +} + +CRS-AssistanceInfo-r11 ::= SEQUENCE { + physCellId-r11 [0] PhysCellId, + antennaPortsCount-r11 [1] ENUMERATED { an1(0), an2(1), an4(2), spare1(3) }, + mbsfn-SubframeConfigList-r11 [2] MBSFN-SubframeConfigList, + ..., + [[ + mbsfn-SubframeConfigList-v1430 [3] MBSFN-SubframeConfigList-v1430 + OPTIONAL + ]] +} + +CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11 + +NeighCellsCRS-Info-r11 ::= CHOICE { + release [0] NULL, + setup [1] CRS-AssistanceInfoList-r11 +} + +NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId + +NeighCellsInfo-r12 ::= SEQUENCE { + physCellId-r12 [0] PhysCellId, + p-b-r12 [1] INTEGER (0..3), + crs-PortsCount-r12 [2] ENUMERATED { n1(0), n2(1), n4(2), spare(3) }, + mbsfn-SubframeConfig-r12 [3] MBSFN-SubframeConfigList OPTIONAL, -- Need ON + p-aList-r12 [4] SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a, + transmissionModeList-r12 [5] BIT STRING (SIZE (8)), + resAllocGranularity-r12 [6] INTEGER (1..4), + ... +} + +NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12 + +NAICS-AssistanceInfo-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + neighCellsToReleaseList-r12 [0] NeighCellsToReleaseList-r12 OPTIONAL, -- Need ON + neighCellsToAddModList-r12 [1] NeighCellsToAddModList-r12 OPTIONAL, -- Need ON + servCellp-a-r12 [2] P-a OPTIONAL -- Need ON + } +} + +CRS-AssistanceInfo-r13 ::= SEQUENCE { + physCellId-r13 [0] PhysCellId, + antennaPortsCount-r13 [1] ENUMERATED { an1(0), an2(1), an4(2), spare1(3) }, + mbsfn-SubframeConfigList-r13 [2] MBSFN-SubframeConfigList OPTIONAL, + ..., + [[ + mbsfn-SubframeConfigList-v1430 [3] MBSFN-SubframeConfigList-v1430 + OPTIONAL + ]] +} + +CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13 + +NeighCellsCRS-Info-r13 ::= CHOICE { + release [0] NULL, + setup [1] CRS-AssistanceInfoList-r13 +} + +RLF-TimersAndConstants-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + t301-v1310 [0] ENUMERATED { ms2500(0), ms3000(1), ms3500(2), ms4000(3), + ms5000(4), ms6000(5), ms8000(6), ms10000(7) }, + ..., + [[ + t310-v1330 [1] ENUMERATED { ms4000(0), ms6000(1) } OPTIONAL + ]] + } +} + +SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-ConfigSL-r14 ::= SEQUENCE { + sps-ConfigIndex-r14 [0] SPS-ConfigIndex-r14, + semiPersistSchedIntervalSL-r14 [1] ENUMERATED { sf20(0), sf50(1), sf100(2), + sf200(3), sf300(4), sf400(5), sf500(6), sf600(7), sf700(8), sf800(9), + sf900(10), sf1000(11), spare4(12), spare3(13), spare2(14), spare1(15) } +} + +SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14 + +SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14 + +SPS-Config-v1430 ::= SEQUENCE { + ul-SPS-V-RNTI-r14 [0] C-RNTI OPTIONAL, -- Need OR + sl-SPS-V-RNTI-r14 [1] C-RNTI OPTIONAL, -- Need OR + sps-ConfigUL-ToAddModList-r14 [2] SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r14 [3] SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToAddModList-r14 [4] SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON + sps-ConfigSL-ToReleaseList-r14 [5] SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON +} + +SRB-ToAddModListExt-r15 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod + +SPS-ConfigUL-STTI-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + semiPersistSchedIntervalUL-STTI-r15 [0] ENUMERATED { sTTI1(0), sTTI2(1), + sTTI3(2), sTTI4(3), sTTI6(4), sTTI8(5), sTTI12(6), sTTI16(7), + sTTI20(8), sTTI40(9), sTTI60(10), sTTI80(11), sTTI120(12), sTTI240(13) + , spare2(14), spare1(15) }, + implicitReleaseAfter [1] ENUMERATED { e2(0), e3(1), e4(2), e8(3) }, + p0-Persistent-r15 [2] SEQUENCE { + p0-NominalSPUSCH-Persistent-r15 [0] INTEGER (-126..24), + p0-UE-SPUSCH-Persistent-r15 [1] INTEGER (-8..7) + } OPTIONAL, -- Need OP + twoIntervalsConfig-r15 [3] ENUMERATED { true(0) } OPTIONAL, -- Cond TDD + p0-PersistentSubframeSet2-r15 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + p0-NominalSPUSCH-PersistentSubframeSet2-r15 [0] INTEGER (-126..24), + p0-UE-SPUSCH-PersistentSubframeSet2-r15 [1] INTEGER (-8..7) + } + } OPTIONAL, -- Need ON + numberOfConfUL-SPS-Processes-STTI-r15 [5] INTEGER (1..12) OPTIONAL, -- Need OR + sTTI-StartTimeUL-r15 [6] INTEGER (0..5), + tpc-PDCCH-ConfigPUSCH-SPS-r15 [7] EXPLICIT TPC-PDCCH-Config OPTIONAL, -- Need ON + cyclicShiftSPS-sTTI-r15 [8] ENUMERATED { cs0(0), cs1(1), cs2(2), cs3(3), + cs4(4), cs5(5), cs6(6), cs7(7) } OPTIONAL, -- Need ON + ifdma-Config-SPS-r15 [9] BOOLEAN OPTIONAL, -- Need ON + harq-ProcID-offset-r15 [10] INTEGER (0..15) OPTIONAL, -- Need ON + rv-SPS-STTI-UL-Repetitions-r15 [11] ENUMERATED { ulrvseq1(0), ulrvseq2(1) + , ulrvseq3(2) } OPTIONAL, -- Need ON + sps-ConfigIndex-r15 [12] SPS-ConfigIndex-r15 OPTIONAL, -- Need OR + tbs-scalingFactorSubslotSPS-UL-Repetitions-r15 [13] ENUMERATED { n6(0), + n12(1) } OPTIONAL, -- Need ON + totalNumberPUSCH-SPS-STTI-UL-Repetitions-r15 [14] ENUMERATED { n2(0), + n3(1), n4(2), n6(3) } OPTIONAL, + ... + } +} + +SPS-ConfigUL-STTI-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF + SPS-ConfigUL-STTI-r15 + +SPS-ConfigUL-STTI-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF + SPS-ConfigIndex-r15 + +SPS-ConfigUL-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigUL + +SPS-ConfigUL-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigIndex-r15 + +SPS-Config-v1530 ::= SEQUENCE { + semiPersistSchedC-RNTI-r15 [0] C-RNTI OPTIONAL, -- Need OR + sps-ConfigDL-r15 [1] EXPLICIT SPS-ConfigDL OPTIONAL, -- Need ON + sps-ConfigUL-STTI-ToAddModList-r15 [2] SPS-ConfigUL-STTI-ToAddModList-r15 + OPTIONAL, -- Need ON + sps-ConfigUL-STTI-ToReleaseList-r15 [3] SPS-ConfigUL-STTI-ToReleaseList-r15 + OPTIONAL, -- Need ON + sps-ConfigUL-ToAddModList-r15 [4] SPS-ConfigUL-ToAddModList-r15 OPTIONAL, -- Need ON + sps-ConfigUL-ToReleaseList-r15 [5] SPS-ConfigUL-ToReleaseList-r15 OPTIONAL -- Need ON +} + +CRS-AssistanceInfo-r15 ::= SEQUENCE { + physCellId-r15 [0] PhysCellId, + crs-IntfMitigEnabled-r15 [1] ENUMERATED { enabled(0) } OPTIONAL -- Need ON +} + +CRS-AssistanceInfoList-r15 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r15 + +NeighCellsCRS-Info-r15 ::= CHOICE { + release [0] NULL, + setup [1] CRS-AssistanceInfoList-r15 +} + +DRB-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-ToAddMod + +DRB-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-Identity + +N1SPUCCH-AN-PersistentList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + +SPS-ConfigDL-STTI-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + semiPersistSchedIntervalDL-STTI-r15 [0] ENUMERATED { sTTI1(0), sTTI2(1), + sTTI3(2), sTTI4(3), sTTI6(4), sTTI8(5), sTTI12(6), sTTI16(7), + sTTI20(8), sTTI40(9), sTTI60(10), sTTI80(11), sTTI120(12), sTTI240(13) + , spare2(14), spare1(15) }, + numberOfConfSPS-Processes-STTI-r15 [1] INTEGER (1..12), + twoAntennaPortActivated-r15 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1SPUCCH-AN-PersistentListP1-r15 [0] N1SPUCCH-AN-PersistentList-r15 + } + } OPTIONAL, -- Need ON + sTTI-StartTimeDL-r15 [3] INTEGER (0..5), + tpc-PDCCH-ConfigPUCCH-SPS-r15 [4] EXPLICIT TPC-PDCCH-Config OPTIONAL, + ... + } +} + +SPS-Config-v1540 ::= SEQUENCE { + sps-ConfigDL-STTI-r15 [0] EXPLICIT SPS-ConfigDL-STTI-r15 OPTIONAL -- Need OR +} + +RLF-TimersAndConstantsMCG-Failure-r16 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + t316-r16 [0] ENUMERATED { ms50(0), ms100(1), ms200(2), ms300(3), ms400(4) + , ms500(5), ms600(6), ms1000(7), ms1500(8), ms2000(9) }, + ... + } +} + +CRS-ChEstMPDCCH-ConfigDedicated-r16 ::= SEQUENCE { + powerRatio-r16 [0] ENUMERATED { dB-4dot77(0), dB-3(1), dB-1dot77(2), dB0(3) + , dB1(4), dB2(5), dB3(6), dB4dot77(7) } OPTIONAL, -- Cond setup + localizedMappingType-r16 [1] ENUMERATED { predefined(0), csi-Based(1), + reciprocityBased(2) } DEFAULT predefined +} + +RadioResourceConfigDedicated ::= SEQUENCE { + srb-ToAddModList [0] SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + drb-ToAddModList [1] DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA + drb-ToReleaseList [2] DRB-ToReleaseList OPTIONAL, -- Need ON + mac-MainConfig [3] EXPLICIT CHOICE { + explicitValue [0] MAC-MainConfig, + defaultValue [1] NULL + } OPTIONAL, -- Cond HO-toEUTRA2 + sps-Config [4] SPS-Config OPTIONAL, -- Need ON + physicalConfigDedicated [5] PhysicalConfigDedicated OPTIONAL, + ..., + [[ + rlf-TimersAndConstants-r9 [6] EXPLICIT RLF-TimersAndConstants-r9 OPTIONAL + ]], + [[ + measSubframePatternPCell-r10 [7] EXPLICIT MeasSubframePatternPCell-r10 + OPTIONAL + ]], + [[ + neighCellsCRS-Info-r11 [8] EXPLICIT NeighCellsCRS-Info-r11 OPTIONAL + ]], + [[ + naics-Info-r12 [9] EXPLICIT NAICS-AssistanceInfo-r12 OPTIONAL + ]], + [[ + neighCellsCRS-Info-r13 [10] EXPLICIT NeighCellsCRS-Info-r13 OPTIONAL, + rlf-TimersAndConstants-r13 [11] EXPLICIT RLF-TimersAndConstants-r13 + OPTIONAL + ]], + [[ + sps-Config-v1430 [12] SPS-Config-v1430 OPTIONAL + ]], + [[ + srb-ToAddModListExt-r15 [13] SRB-ToAddModListExt-r15 OPTIONAL, + srb-ToReleaseListExt-r15 [14] INTEGER (4) OPTIONAL, + sps-Config-v1530 [15] SPS-Config-v1530 OPTIONAL, + crs-IntfMitigConfig-r15 [16] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + crs-IntfMitigEnabled [0] NULL, + crs-IntfMitigNumPRBs [1] ENUMERATED { n6(0), n24(1) } + } + } OPTIONAL, + neighCellsCRS-Info-r15 [17] EXPLICIT NeighCellsCRS-Info-r15 OPTIONAL, + drb-ToAddModList-r15 [18] DRB-ToAddModList-r15 OPTIONAL, + drb-ToReleaseList-r15 [19] DRB-ToReleaseList-r15 OPTIONAL, + dummy [20] SEQUENCE (SIZE (1..2)) OF INTEGER (1..2) OPTIONAL + ]], + [[ + sps-Config-v1540 [21] SPS-Config-v1540 OPTIONAL + ]], + [[ + rlf-TimersAndConstantsMCG-Failure-r16 [22] EXPLICIT + RLF-TimersAndConstantsMCG-Failure-r16 OPTIONAL, + crs-ChEstMPDCCH-ConfigDedicated-r16 [23] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CRS-ChEstMPDCCH-ConfigDedicated-r16 + } OPTIONAL, + newUE-Identity-r16 [24] C-RNTI OPTIONAL + ]] +} + +RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReestablishment-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated [0] RadioResourceConfigDedicated, + nextHopChainingCount [1] NextHopChainingCount, + nonCriticalExtension [2] RRCConnectionReestablishment-v8a0-IEs OPTIONAL +} + +RRCConnectionReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionReestablishment-r8 [0] + RRCConnectionReestablishment-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] RRCConnectionReestablishmentReject-v8a0-IEs + OPTIONAL +} + +RRCConnectionReestablishmentReject ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcConnectionReestablishmentReject-r8 [0] + RRCConnectionReestablishmentReject-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RRCConnectionReject-v1320-IEs ::= SEQUENCE { + rrc-SuspendIndication-r13 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReject-v1130-IEs ::= SEQUENCE { + deprioritisationReq-r11 [0] SEQUENCE { + deprioritisationType-r11 [0] ENUMERATED { frequency(0), e-utra(1) }, + deprioritisationTimer-r11 [1] ENUMERATED { min5(0), min10(1), min15(2), + min30(3) } + } OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionReject-v1320-IEs OPTIONAL +} + +RRCConnectionReject-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 [0] INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionReject-v1130-IEs OPTIONAL +} + +RRCConnectionReject-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionReject-v1020-IEs OPTIONAL +} + +RRCConnectionReject-r8-IEs ::= SEQUENCE { + waitTime [0] INTEGER (1..16), + nonCriticalExtension [1] RRCConnectionReject-v8a0-IEs OPTIONAL +} + +RRCConnectionReject ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionReject-r8 [0] RRCConnectionReject-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RRCConnectionSetup-v1610-IEs ::= SEQUENCE { + dedicatedInfoNAS-r16 [0] DedicatedInfoNAS OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionSetup-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetup-v1610-IEs OPTIONAL +} + +RRCConnectionSetup-r8-IEs ::= SEQUENCE { + radioResourceConfigDedicated [0] RadioResourceConfigDedicated, + nonCriticalExtension [1] RRCConnectionSetup-v8a0-IEs OPTIONAL +} + +RRCConnectionSetup ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionSetup-r8 [0] RRCConnectionSetup-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueEUTRA, + cellReselectionPriority [1] CellReselectionPriority +} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqsPriorityGERAN ::= SEQUENCE { + carrierFreqs [0] CarrierFreqsGERAN, + cellReselectionPriority [1] CellReselectionPriority +} + +FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN + +FreqPriorityUTRA-FDD ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueUTRA, + cellReselectionPriority [1] CellReselectionPriority +} + +FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD + +FreqPriorityUTRA-TDD ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueUTRA, + cellReselectionPriority [1] CellReselectionPriority +} + +FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD + +BandClassPriorityHRPD ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + cellReselectionPriority [1] CellReselectionPriority +} + +BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD + +BandClassPriority1XRTT ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + cellReselectionPriority [1] CellReselectionPriority +} + +BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT + +FreqPriorityEUTRA-r12 ::= SEQUENCE { + carrierFreq-r12 [0] ARFCN-ValueEUTRA-r9, + cellReselectionPriority-r12 [1] CellReselectionPriority +} + +FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12 + +FreqPriorityEUTRA-v1310 ::= SEQUENCE { + cellReselectionSubPriority-r13 [0] CellReselectionSubPriority-r13 OPTIONAL -- Need ON +} + +FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310 + + +FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF + FreqPriorityEUTRA-v1310 + +FreqPriorityNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + cellReselectionPriority-r15 [1] CellReselectionPriority, + cellReselectionSubPriority-r15 [2] CellReselectionSubPriority-r13 OPTIONAL -- Need OR +} + +FreqPriorityListNR-r15 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR-r15 + +IdleModeMobilityControlInfo ::= SEQUENCE { + freqPriorityListEUTRA [0] FreqPriorityListEUTRA OPTIONAL, -- Need ON + freqPriorityListGERAN [1] FreqsPriorityListGERAN OPTIONAL, -- Need ON + freqPriorityListUTRA-FDD [2] FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON + freqPriorityListUTRA-TDD [3] FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON + bandClassPriorityListHRPD [4] BandClassPriorityListHRPD OPTIONAL, -- Need ON + bandClassPriorityList1XRTT [5] BandClassPriorityList1XRTT OPTIONAL, -- Need ON + t320 [6] ENUMERATED { min5(0), min10(1), min20(2), min30(3), min60(4), + min120(5), min180(6), spare1(7) } OPTIONAL, + ..., + [[ + freqPriorityListExtEUTRA-r12 [7] FreqPriorityListExtEUTRA-r12 OPTIONAL + ]], + [[ + freqPriorityListEUTRA-v1310 [8] FreqPriorityListEUTRA-v1310 OPTIONAL, + freqPriorityListExtEUTRA-v1310 [9] FreqPriorityListExtEUTRA-v1310 + OPTIONAL + ]], + [[ + freqPriorityListNR-r15 [10] FreqPriorityListNR-r15 OPTIONAL + ]] +} + +FreqPriorityEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max +} + +IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE { + freqPriorityListEUTRA-v9e0 [0] SEQUENCE (SIZE (1..maxFreq)) OF + FreqPriorityEUTRA-v9e0 +} + +CarrierFreqCDMA2000 ::= SEQUENCE { + bandClass [0] BandclassCDMA2000, + arfcn [1] ARFCN-ValueCDMA2000 +} + +CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA + +RedirectedCarrierInfo-r15-IEs ::= CHOICE { + eutra [0] ARFCN-ValueEUTRA-r9, + geran [1] CarrierFreqsGERAN, + utra-FDD [2] ARFCN-ValueUTRA, + cdma2000-HRPD [3] CarrierFreqCDMA2000, + cdma2000-1xRTT [4] CarrierFreqCDMA2000, + utra-TDD [5] CarrierFreqListUTRA-TDD-r10 +} + +RRCEarlyDataComplete-v1590-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCEarlyDataComplete-r15-IEs ::= SEQUENCE { + dedicatedInfoNAS-r15 [0] DedicatedInfoNAS OPTIONAL, -- Need ON + extendedWaitTime-r15 [1] INTEGER (1..1800) OPTIONAL, -- Need ON + idleModeMobilityControlInfo-r15 [2] IdleModeMobilityControlInfo OPTIONAL, -- Need OP + idleModeMobilityControlInfoExt-r15 [3] IdleModeMobilityControlInfo-v9e0 + OPTIONAL, -- Cond IdleInfoEUTRA + redirectedCarrierInfo-r15 [4] EXPLICIT RedirectedCarrierInfo-r15-IEs + OPTIONAL, -- Need ON + nonCriticalExtension [5] RRCEarlyDataComplete-v1590-IEs OPTIONAL +} + +RRCEarlyDataComplete-r15 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcEarlyDataComplete-r15 [0] RRCEarlyDataComplete-r15-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DL-CCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionReestablishment [0] RRCConnectionReestablishment, + rrcConnectionReestablishmentReject [1] RRCConnectionReestablishmentReject + , + rrcConnectionReject [2] RRCConnectionReject, + rrcConnectionSetup [3] RRCConnectionSetup + }, + messageClassExtension [1] EXPLICIT CHOICE { + c2 [0] EXPLICIT CHOICE { + rrcEarlyDataComplete-r15 [0] RRCEarlyDataComplete-r15, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + messageClassExtensionFuture-r15 [1] SEQUENCE { + + } + } +} + +DL-CCCH-Message ::= SEQUENCE { + message [0] EXPLICIT DL-CCCH-MessageType +} + +CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE { + rand [0] RAND-CDMA2000, + mobilityParameters [1] MobilityParametersCDMA2000, + nonCriticalExtension [2] CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersResponseCDMA2000 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + csfbParametersResponseCDMA2000-r8 [0] + CSFBParametersResponseCDMA2000-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DLInformationTransfer-v1610-IEs ::= SEQUENCE { + dedicatedInfoF1c-r16 [0] DedicatedInfoF1c-r16 OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +DLInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] DLInformationTransfer-v1610-IEs OPTIONAL +} + +DLInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType [0] EXPLICIT CHOICE { + dedicatedInfoNAS [0] DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT [1] DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD [2] DedicatedInfoCDMA2000 + }, + nonCriticalExtension [1] DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer-r15-IEs ::= SEQUENCE { + dedicatedInfoType-r15 [0] EXPLICIT CHOICE { + dedicatedInfoNAS [0] DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT [1] DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD [2] DedicatedInfoCDMA2000 + } OPTIONAL, -- Need ON + timeReferenceInfo-r15 [1] TimeReferenceInfo-r15 OPTIONAL, -- Need ON + nonCriticalExtension [2] DLInformationTransfer-v8a0-IEs OPTIONAL +} + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + dlInformationTransfer-r8 [0] DLInformationTransfer-r8-IEs, + dlInformationTransfer-r15 [1] DLInformationTransfer-r15-IEs, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE { + dualRxTxRedirectIndicator-r10 [0] ENUMERATED { true(0) } OPTIONAL, -- Cond cdma2000-1XRTT + redirectCarrierCDMA2000-1XRTT-r10 [1] CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE { + concurrPrepCDMA2000-HRPD-r9 [0] BOOLEAN OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension [1] HandoverFromEUTRAPreparationRequest-v1020-IEs + OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] HandoverFromEUTRAPreparationRequest-v920-IEs + OPTIONAL +} + +HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE { + cdma2000-Type [0] CDMA2000-Type, + rand [1] RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type + mobilityParameters [2] MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type + nonCriticalExtension [3] HandoverFromEUTRAPreparationRequest-v890-IEs + OPTIONAL +} + +HandoverFromEUTRAPreparationRequest ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + handoverFromEUTRAPreparationRequest-r8 [0] + HandoverFromEUTRAPreparationRequest-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF OCTET STRING (SIZE (1..23)) + +SI-OrPSI-GERAN ::= CHOICE { + si [0] SystemInfoListGERAN, + psi [1] SystemInfoListGERAN +} + +Handover ::= SEQUENCE { + targetRAT-Type [0] ENUMERATED { utra(0), geran(1), cdma2000-1XRTT(2), + cdma2000-HRPD(3), nr(4), eutra(5), spare2(6), spare1(7), ... }, + targetRAT-MessageContainer [1] OCTET STRING, + nas-SecurityParamFromEUTRA [2] OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERANEPC + systemInformation [3] EXPLICIT SI-OrPSI-GERAN OPTIONAL -- Cond PSHO +} + +PhysCellIdGERAN ::= SEQUENCE { + networkColourCode [0] BIT STRING (SIZE (3)), + baseStationColourCode [1] BIT STRING (SIZE (3)) +} + +CarrierFreqGERAN ::= SEQUENCE { + arfcn [0] ARFCN-ValueGERAN, + bandIndicator [1] BandIndicatorGERAN +} + +CellChangeOrder ::= SEQUENCE { + t304 [0] ENUMERATED { ms100(0), ms200(1), ms500(2), ms1000(3), ms2000(4), + ms4000(5), ms8000(6), ms10000-v1310(7) }, + targetRAT-Type [1] EXPLICIT CHOICE { + geran [0] SEQUENCE { + physCellId [0] PhysCellIdGERAN, + carrierFreq [1] CarrierFreqGERAN, + networkControlOrder [2] BIT STRING (SIZE (2)) OPTIONAL, -- Need OP + systemInformation [3] EXPLICIT SI-OrPSI-GERAN OPTIONAL -- Need OP + }, + ... + } +} + +MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE { + bandIndicator [0] BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] MobilityFromEUTRACommand-v8d0-IEs OPTIONAL +} + +MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE { + cs-FallbackIndicator [0] BOOLEAN, + purpose [1] EXPLICIT CHOICE { + handover [0] Handover, + cellChangeOrder [1] CellChangeOrder + }, + nonCriticalExtension [2] MobilityFromEUTRACommand-v8a0-IEs OPTIONAL +} + +E-CSFB-r9 ::= SEQUENCE { + messageContCDMA2000-1XRTT-r9 [0] OCTET STRING OPTIONAL, -- Need ON + mobilityCDMA2000-HRPD-r9 [1] ENUMERATED { handover(0), redirection(1) } + OPTIONAL, -- Need OP + messageContCDMA2000-HRPD-r9 [2] OCTET STRING OPTIONAL, -- Cond concHO + redirectCarrierCDMA2000-HRPD-r9 [3] CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir +} + +MobilityFromEUTRACommand-v1530-IEs ::= SEQUENCE { + smtc-r15 [0] MTC-SSB-NR-r15 OPTIONAL, -- Need OP + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE { + bandIndicator [0] BandIndicatorGERAN OPTIONAL, -- Cond GERAN + nonCriticalExtension [1] MobilityFromEUTRACommand-v1530-IEs OPTIONAL +} + +MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] MobilityFromEUTRACommand-v960-IEs OPTIONAL +} + +MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE { + cs-FallbackIndicator [0] BOOLEAN, + purpose [1] EXPLICIT CHOICE { + handover [0] Handover, + cellChangeOrder [1] CellChangeOrder, + e-CSFB-r9 [2] E-CSFB-r9, + ... + }, + nonCriticalExtension [2] MobilityFromEUTRACommand-v930-IEs OPTIONAL +} + +MobilityFromEUTRACommand ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + mobilityFromEUTRACommand-r8 [0] MobilityFromEUTRACommand-r8-IEs, + mobilityFromEUTRACommand-r9 [1] MobilityFromEUTRACommand-r9-IEs, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId + +CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex + +CellsToAddMod ::= SEQUENCE { + cellIndex [0] INTEGER (1..maxCellMeas), + physCellId [1] PhysCellId, + cellIndividualOffset [2] Q-OffsetRange +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod + +ExcludedCellsToAddMod ::= SEQUENCE { + cellIndex [0] INTEGER (1..maxCellMeas), + physCellIdRange [1] PhysCellIdRange +} + +ExcludedCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF ExcludedCellsToAddMod + +MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange + +MeasSubframePatternConfigNeigh-r10 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + measSubframePatternNeigh-r10 [0] EXPLICIT MeasSubframePattern-r10, + measSubframeCellList-r10 [1] MeasSubframeCellList-r10 OPTIONAL -- Cond always + } +} + +AltTTT-CellsToAddMod-r12 ::= SEQUENCE { + cellIndex-r12 [0] INTEGER (1..maxCellMeas), + physCellIdRange-r12 [1] PhysCellIdRange +} + +AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + AltTTT-CellsToAddMod-r12 + +MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +MeasCSI-RS-Config-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 [0] MeasCSI-RS-Id-r12, + physCellId-r12 [1] INTEGER (0..503), + scramblingIdentity-r12 [2] INTEGER (0..503), + resourceConfig-r12 [3] INTEGER (0..31), + subframeOffset-r12 [4] INTEGER (0..4), + csi-RS-IndividualOffset-r12 [5] Q-OffsetRange, + ... +} + +MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12 + +MeasDS-Config-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + dmtc-PeriodOffset-r12 [0] EXPLICIT CHOICE { + ms40-r12 [0] INTEGER (0..39), + ms80-r12 [1] INTEGER (0..79), + ms160-r12 [2] INTEGER (0..159), + ... + }, + ds-OccasionDuration-r12 [1] EXPLICIT CHOICE { + durationFDD-r12 [0] INTEGER (1..maxDS-Duration-r12), + durationTDD-r12 [1] INTEGER (2..maxDS-Duration-r12) + }, + measCSI-RS-ToRemoveList-r12 [2] MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON + measCSI-RS-ToAddModList-r12 [3] MeasCSI-RS-ToAddModList-r12 OPTIONAL, + ... + } +} + +AllowedCellsToAddMod-r13 ::= SEQUENCE { + cellIndex-r13 [0] INTEGER (1..maxCellMeas), + physCellIdRange-r13 [1] PhysCellIdRange +} + +AllowedCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + AllowedCellsToAddMod-r13 + +RMTC-Config-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + rmtc-Period-r13 [0] ENUMERATED { ms40(0), ms80(1), ms160(2), ms320(3), + ms640(4) }, + rmtc-SubframeOffset-r13 [1] INTEGER (0..639) OPTIONAL, -- Need ON + measDuration-r13 [2] ENUMERATED { sym1(0), sym14(1), sym28(2), sym42(3), + sym70(4) }, + ... + } +} + +Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF + SL-V2X-TxPoolReportIdentity-r14 + +MeasSensing-Config-r15 ::= SEQUENCE { + sensingSubchannelNumber-r15 [0] INTEGER (1..20), + sensingPeriodicity-r15 [1] ENUMERATED { ms20(0), ms50(1), ms100(2), ms200(3) + , ms300(4), ms400(5), ms500(6), ms600(7), ms700(8), ms800(9), ms900(10), + ms1000(11) }, + sensingReselectionCounter-r15 [2] INTEGER (5..75), + sensingPriority-r15 [3] INTEGER (1..8) +} + +CellsToAddMod-v1610 ::= SEQUENCE { + rss-MeasPowerBias-r16 [0] RSS-MeasPowerBias-r16 +} + +CellsToAddModList-v1610 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod-v1610 + +MeasRSS-DedicatedConfig-r16 ::= SEQUENCE { + rss-ConfigCarrierInfo-r16 [0] RSS-ConfigCarrierInfo-r16 OPTIONAL, -- Need OP + cellsToAddModList-v1610 [1] CellsToAddModList-v1610 OPTIONAL -- Need ON +} + +MeasObjectEUTRA ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueEUTRA, + allowedMeasBandwidth [1] AllowedMeasBandwidth, + presenceAntennaPort1 [2] PresenceAntennaPort1, + neighCellConfig [3] NeighCellConfig, + offsetFreq [4] Q-OffsetRange DEFAULT dB0, +--Cell list + cellsToRemoveList [5] CellIndexList OPTIONAL, -- Need ON + cellsToAddModList [6] CellsToAddModList OPTIONAL, -- Need ON +--Excluded list + excludedCellsToRemoveList [7] CellIndexList OPTIONAL, -- Need ON + excludedCellsToAddModList [8] ExcludedCellsToAddModList OPTIONAL, -- Need ON + cellForWhichToReportCGI [9] PhysCellId OPTIONAL, + ..., + [[ + measCycleSCell-r10 [10] MeasCycleSCell-r10 OPTIONAL, + measSubframePatternConfigNeigh-r10 [11] EXPLICIT + MeasSubframePatternConfigNeigh-r10 OPTIONAL + ]], + [[ + widebandRSRQ-Meas-r11 [12] BOOLEAN OPTIONAL + ]], + [[ + altTTT-CellsToRemoveList-r12 [13] CellIndexList OPTIONAL, + altTTT-CellsToAddModList-r12 [14] AltTTT-CellsToAddModList-r12 OPTIONAL, + t312-r12 [15] EXPLICIT CHOICE { + release [0] NULL, + setup [1] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), ms300(4), + ms400(5), ms500(6), ms1000(7) } + } OPTIONAL, + reducedMeasPerformance-r12 [16] BOOLEAN OPTIONAL, + measDS-Config-r12 [17] EXPLICIT MeasDS-Config-r12 OPTIONAL + ]], + [[ + allowedCellsToRemoveList-r13 [18] CellIndexList OPTIONAL, + allowedCellsToAddModList-r13 [19] AllowedCellsToAddModList-r13 OPTIONAL, + rmtc-Config-r13 [20] EXPLICIT RMTC-Config-r13 OPTIONAL, + carrierFreq-r13 [21] ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ + tx-ResourcePoolToRemoveList-r14 [22] Tx-ResourcePoolMeasList-r14 OPTIONAL + , + tx-ResourcePoolToAddList-r14 [23] Tx-ResourcePoolMeasList-r14 OPTIONAL, + fembms-MixedCarrier-r14 [24] BOOLEAN OPTIONAL + ]], + [[ + measSensing-Config-r15 [25] MeasSensing-Config-r15 OPTIONAL + ]], + [[ + measRSS-DedicatedConfig-r16 [26] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT MeasRSS-DedicatedConfig-r16 + } OPTIONAL + ]] +} + +CellsToAddModUTRA-FDD ::= SEQUENCE { + cellIndex [0] INTEGER (1..maxCellMeas), + physCellId [1] PhysCellIdUTRA-FDD +} + +CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD + +CellsToAddModUTRA-TDD ::= SEQUENCE { + cellIndex [0] INTEGER (1..maxCellMeas), + physCellId [1] PhysCellIdUTRA-TDD +} + +CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD + +PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE { + start-r9 [0] PhysCellIdUTRA-FDD, + range-r9 [1] INTEGER (2..512) OPTIONAL -- Need OP +} + +PhysCellIdRangeUTRA-FDDList-r9 ::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF + PhysCellIdRangeUTRA-FDD-r9 + +CSG-AllowedReportingCells-r9 ::= SEQUENCE { + physCellIdRangeUTRA-FDDList-r9 [0] PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR +} + +MeasObjectUTRA ::= SEQUENCE { + carrierFreq [0] ARFCN-ValueUTRA, + offsetFreq [1] Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList [2] CellIndexList OPTIONAL, -- Need ON + cellsToAddModList [3] EXPLICIT CHOICE { + cellsToAddModListUTRA-FDD [0] CellsToAddModListUTRA-FDD, + cellsToAddModListUTRA-TDD [1] CellsToAddModListUTRA-TDD + } OPTIONAL, -- Need ON + cellForWhichToReportCGI [4] EXPLICIT CHOICE { + utra-FDD [0] PhysCellIdUTRA-FDD, + utra-TDD [1] PhysCellIdUTRA-TDD + } OPTIONAL, + ..., + [[ + csg-allowedReportingCells-v930 [5] CSG-AllowedReportingCells-r9 OPTIONAL + ]], + [[ + reducedMeasPerformance-r12 [6] BOOLEAN OPTIONAL + ]] +} + +MeasObjectGERAN ::= SEQUENCE { + carrierFreqs [0] CarrierFreqsGERAN, + offsetFreq [1] Q-OffsetRangeInterRAT DEFAULT 0, + ncc-Permitted [2] BIT STRING (SIZE (8)) DEFAULT '11111111'B, + cellForWhichToReportCGI [3] PhysCellIdGERAN OPTIONAL, + ... +} + +CellsToAddModCDMA2000 ::= SEQUENCE { + cellIndex [0] INTEGER (1..maxCellMeas), + physCellId [1] PhysCellIdCDMA2000 +} + +CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000 + +MeasObjectCDMA2000 ::= SEQUENCE { + cdma2000-Type [0] CDMA2000-Type, + carrierFreq [1] CarrierFreqCDMA2000, + searchWindowSize [2] INTEGER (0..15) OPTIONAL, -- Need ON + offsetFreq [3] Q-OffsetRangeInterRAT DEFAULT 0, + cellsToRemoveList [4] CellIndexList OPTIONAL, -- Need ON + cellsToAddModList [5] CellsToAddModListCDMA2000 OPTIONAL, -- Need ON + cellForWhichToReportCGI [6] PhysCellIdCDMA2000 OPTIONAL, + ... +} + +WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13 + +WLAN-CarrierInfo-r13 ::= SEQUENCE { + operatingClass-r13 [0] INTEGER (0..255) OPTIONAL, -- Need ON + countryCode-r13 [1] ENUMERATED { unitedStates(0), europe(1), japan(2), + global(3), ... } OPTIONAL, + -- Need ON + channelNumbers-r13 [2] WLAN-ChannelList-r13 OPTIONAL, + ... +} + +WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12 + +MeasObjectWLAN-r13 ::= SEQUENCE { + carrierFreq-r13 [0] EXPLICIT CHOICE { + bandIndicatorListWLAN-r13 [0] SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF + WLAN-BandIndicator-r13, + carrierInfoListWLAN-r13 [1] SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13 + } OPTIONAL, -- Need ON + wlan-ToAddModList-r13 [1] WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToRemoveList-r13 [2] WLAN-Id-List-r13 OPTIONAL, + ... +} + +SSB-PositionQCL-CellsToAddNR-r16 ::= SEQUENCE { + physCellId-r16 [0] PhysCellIdNR-r15, + ssb-PositionQCL-NR-r16 [1] SSB-PositionQCL-RelationNR-r16 +} + +SSB-PositionQCL-CellsToAddModListNR-r16 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + SSB-PositionQCL-CellsToAddNR-r16 + +SSB-PositionQCL-CellsToAddNR-r17 ::= SEQUENCE { + physCellIdNR-r17 [0] PhysCellIdNR-r15, + ssb-PositionQCL-NR-r17 [1] SSB-PositionQCL-RelationNR-r17 +} + +SSB-PositionQCL-CellsToAddModListNR-r17 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF + SSB-PositionQCL-CellsToAddNR-r17 + +RS-ConfigSSB-NR-r15 ::= SEQUENCE { + measTimingConfig-r15 [0] MTC-SSB-NR-r15, + subcarrierSpacingSSB-r15 [1] ENUMERATED { kHz15(0), kHz30(1), kHz120(2), + kHz240(3) }, + ..., + [[ + ssb-ToMeasure-r15 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SSB-ToMeasure-r15 + } OPTIONAL + ]], + [[ + ssb-PositionQCL-CommonNR-r16 [3] SSB-PositionQCL-RelationNR-r16 OPTIONAL + , + ssb-PositionQCL-CellsToAddModListNR-r16 [4] + SSB-PositionQCL-CellsToAddModListNR-r16 OPTIONAL, + ssb-PositionQCL-CellsToRemoveListNR-r16 [5] SEQUENCE (SIZE (1..maxCellMeas)) OF + PhysCellIdNR-r15 OPTIONAL + ]], + [[ + subcarrierSpacingSSB-r17 [6] ENUMERATED { kHz480(0), kHz960(1) } OPTIONAL + , + ssb-PositionQCL-CommonNR-r17 [7] SSB-PositionQCL-RelationNR-r17 OPTIONAL + , + ssb-PositionQCL-CellsToAddModListNR-r17 [8] + SSB-PositionQCL-CellsToAddModListNR-r17 OPTIONAL, + ssb-PositionQCL-CellsToRemoveListNR-r17 [9] SEQUENCE (SIZE (1..maxCellMeas)) OF + PhysCellIdNR-r15 OPTIONAL + ]] +} + +CellsToAddModNR-r15 ::= SEQUENCE { + cellIndex-r15 [0] INTEGER (1..maxCellMeas), + physCellId-r15 [1] PhysCellIdNR-r15 +} + +CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r15 + +RMTC-ConfigNR-r16 ::= SEQUENCE { + rmtc-PeriodicityNR-r16 [0] ENUMERATED { ms40(0), ms80(1), ms160(2), ms320(3) + , ms640(4) }, + rmtc-SubframeOffsetNR-r16 [1] INTEGER (0..639) OPTIONAL, -- Need ON + measDurationNR-r16 [2] ENUMERATED { sym1(0), sym14or12(1), sym28or24(2), + sym42or36(3), sym70or60(4) }, + rmtc-FrequencyNR-r16 [3] ARFCN-ValueNR-r15, + refSCS-CP-NR-r16 [4] ENUMERATED { kHz15(0), kHz30(1), kHz60-NCP(2), + kHz60-ECP(3) }, + ..., + [[ + rmtc-BandwidthNR-r17 [5] ENUMERATED { mhz100(0), mhz400(1), mhz800(2), + mhz1600(3), mhz2000(4) } OPTIONAL, + measDurationNR-r17 [6] ENUMERATED { sym140(0), sym560(1), sym1120(2) } + OPTIONAL, + refSCS-CP-NR-r17 [7] ENUMERATED { kHz120(0), kHz480(1), kHz960(2) } + OPTIONAL + ]] +} + +CellsToAddModNR-r16 ::= SEQUENCE { + cellIndex-r16 [0] INTEGER (1..maxCellMeas), + physCellId-r16 [1] PhysCellIdNR-r15, + cellIndividualOffset-r16 [2] Q-OffsetRange +} + +CellsToAddModListNR-r16 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r16 + +MeasObjectNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + rs-ConfigSSB-r15 [1] RS-ConfigSSB-NR-r15, + threshRS-Index-r15 [2] ThresholdListNR-r15 OPTIONAL, -- Need OR + maxRS-IndexCellQual-r15 [3] MaxRS-IndexCellQualNR-r15 OPTIONAL, -- Need OR + offsetFreq-r15 [4] Q-OffsetRangeInterRAT DEFAULT 0, + excludedCellsToRemoveList-r15 [5] CellIndexList OPTIONAL, -- Need ON + excludedCellsToAddModList-r15 [6] CellsToAddModListNR-r15 OPTIONAL, -- Need ON + quantityConfigSet-r15 [7] INTEGER (1..maxQuantSetsNR-r15), + cellsForWhichToReportSFTD-r15 [8] SEQUENCE (SIZE (1..maxCellSFTD)) OF PhysCellIdNR-r15 + OPTIONAL, + ..., + [[ + cellForWhichToReportCGI-r15 [9] PhysCellIdNR-r15 OPTIONAL, + deriveSSB-IndexFromCell-r15 [10] BOOLEAN OPTIONAL, + ss-RSSI-Measurement-r15 [11] SS-RSSI-Measurement-r15 OPTIONAL, + bandNR-r15 [12] EXPLICIT CHOICE { + release [0] NULL, + setup [1] FreqBandIndicatorNR-r15 + } OPTIONAL + ]], + [[ + rmtc-ConfigNR-r16 [13] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT RMTC-ConfigNR-r16 + } OPTIONAL + ]], + [[ + cellsToRemoveList-r16 [14] CellIndexList OPTIONAL, + cellsToAddModList-r16 [15] CellsToAddModListNR-r16 OPTIONAL + ]] +} + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId [0] MeasObjectId, + measObject [1] EXPLICIT CHOICE { + measObjectEUTRA [0] MeasObjectEUTRA, + measObjectUTRA [1] MeasObjectUTRA, + measObjectGERAN [2] MeasObjectGERAN, + measObjectCDMA2000 [3] MeasObjectCDMA2000, + ..., + measObjectWLAN-r13 [4] MeasObjectWLAN-r13, + measObjectNR-r15 [5] MeasObjectNR-r15 + } +} + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId + +ThresholdEUTRA ::= CHOICE { + threshold-RSRP [0] RSRP-Range, + threshold-RSRQ [1] RSRQ-Range +} + +RSRQ-RangeConfig-r12 ::= CHOICE { + release [0] NULL, + setup [1] RSRQ-Range-v1250 +} + +MeasRSSI-ReportConfig-r13 ::= SEQUENCE { + channelOccupancyThreshold-r13 [0] RSSI-Range-r13 OPTIONAL -- Need OR +} + +UL-DelayConfig-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + delayThreshold-r13 [0] ENUMERATED { ms30(0), ms40(1), ms50(2), ms60(3), + ms70(4), ms80(5), ms90(6), ms100(7), ms150(8), ms300(9), ms500(10), + ms750(11), spare4(12), spare3(13), spare2(14), spare1(15) } + } +} + +BT-NameList-r15 ::= SEQUENCE (SIZE (1..maxBT-Name-r15)) OF BT-Name-r15 + +BT-NameListConfig-r15 ::= CHOICE { + release [0] NULL, + setup [1] BT-NameList-r15 +} + +WLAN-NameList-r15 ::= SEQUENCE (SIZE (1..maxWLAN-Name-r15)) OF WLAN-Name-r15 + +WLAN-NameListConfig-r15 ::= CHOICE { + release [0] NULL, + setup [1] WLAN-NameList-r15 +} + +CondReconfigurationTriggerEUTRA-r16 ::= SEQUENCE { + condEventId-r16 [0] EXPLICIT CHOICE { + condEventA3-r16 [0] SEQUENCE { + a3-Offset-r16 [0] INTEGER (-30..30), + hysteresis-r16 [1] Hysteresis, + timeToTrigger-r16 [2] TimeToTrigger + }, + condEventA5-r16 [1] SEQUENCE { + a5-Threshold1-r16 [0] EXPLICIT ThresholdEUTRA, + a5-Threshold2-r16 [1] EXPLICIT ThresholdEUTRA, + hysteresis-r16 [2] Hysteresis, + timeToTrigger-r16 [3] TimeToTrigger + }, + ... + } +} + +UL-DelayValueConfig-r16 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + delay-DRBlist-r16 [0] SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + } +} + +ReportConfigEUTRA ::= SEQUENCE { + triggerType [0] EXPLICIT CHOICE { + event [0] SEQUENCE { + eventId [0] EXPLICIT CHOICE { + eventA1 [0] SEQUENCE { + a1-Threshold [0] EXPLICIT ThresholdEUTRA + }, + eventA2 [1] SEQUENCE { + a2-Threshold [0] EXPLICIT ThresholdEUTRA + }, + eventA3 [2] SEQUENCE { + a3-Offset [0] INTEGER (-30..30), + reportOnLeave [1] BOOLEAN + }, + eventA4 [3] SEQUENCE { + a4-Threshold [0] EXPLICIT ThresholdEUTRA + }, + eventA5 [4] SEQUENCE { + a5-Threshold1 [0] EXPLICIT ThresholdEUTRA, + a5-Threshold2 [1] EXPLICIT ThresholdEUTRA + }, + ..., + eventA6-r10 [5] SEQUENCE { + a6-Offset-r10 [0] INTEGER (-30..30), + a6-ReportOnLeave-r10 [1] BOOLEAN + }, + eventC1-r12 [6] SEQUENCE { + c1-Threshold-r12 [0] ThresholdEUTRA-v1250, + c1-ReportOnLeave-r12 [1] BOOLEAN + }, + eventC2-r12 [7] SEQUENCE { + c2-RefCSI-RS-r12 [0] MeasCSI-RS-Id-r12, + c2-Offset-r12 [1] INTEGER (-30..30), + c2-ReportOnLeave-r12 [2] BOOLEAN + }, + eventV1-r14 [8] SEQUENCE { + v1-Threshold-r14 [0] SL-CBR-r14 + }, + eventV2-r14 [9] SEQUENCE { + v2-Threshold-r14 [0] SL-CBR-r14 + }, + eventH1-r15 [10] SEQUENCE { + h1-ThresholdOffset-r15 [0] INTEGER (0..300), + h1-Hysteresis-r15 [1] INTEGER (1..16) + }, + eventH2-r15 [11] SEQUENCE { + h2-ThresholdOffset-r15 [0] INTEGER (0..300), + h2-Hysteresis-r15 [1] INTEGER (1..16) + } + }, + hysteresis [1] Hysteresis, + timeToTrigger [2] TimeToTrigger + }, + periodical [1] SEQUENCE { + purpose [0] ENUMERATED { reportStrongestCells(0), reportCGI(1) } + } + }, + triggerQuantity [1] ENUMERATED { rsrp(0), rsrq(1) }, + reportQuantity [2] ENUMERATED { sameAsTriggerQuantity(0), both(1) }, + maxReportCells [3] INTEGER (1..maxCellReport), + reportInterval [4] ReportInterval, + reportAmount [5] ENUMERATED { r1(0), r2(1), r4(2), r8(3), r16(4), r32(5), + r64(6), infinity(7) }, + ..., + [[ + si-RequestForHO-r9 [6] ENUMERATED { setup(0) } OPTIONAL, + ue-RxTxTimeDiffPeriodical-r9 [7] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + includeLocationInfo-r10 [8] ENUMERATED { true(0) } OPTIONAL, + reportAddNeighMeas-r10 [9] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + alternativeTimeToTrigger-r12 [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] TimeToTrigger + } OPTIONAL, + useT312-r12 [11] BOOLEAN OPTIONAL, + usePSCell-r12 [12] BOOLEAN OPTIONAL, + aN-Threshold1-v1250 [13] EXPLICIT RSRQ-RangeConfig-r12 OPTIONAL, + a5-Threshold2-v1250 [14] EXPLICIT RSRQ-RangeConfig-r12 OPTIONAL, + reportStrongestCSI-RSs-r12 [15] BOOLEAN OPTIONAL, + reportCRS-Meas-r12 [16] BOOLEAN OPTIONAL, + triggerQuantityCSI-RS-r12 [17] BOOLEAN OPTIONAL + ]], + [[ + reportSSTD-Meas-r13 [18] BOOLEAN OPTIONAL, + rs-sinr-Config-r13 [19] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + triggerQuantity-v1310 [0] ENUMERATED { sinr(0) } OPTIONAL, -- Need ON + aN-Threshold1-r13 [1] RS-SINR-Range-r13 OPTIONAL, -- Need ON + a5-Threshold2-r13 [2] RS-SINR-Range-r13 OPTIONAL, -- Need ON + reportQuantity-v1310 [3] ENUMERATED { rsrpANDsinr(0), + rsrqANDsinr(1), all(2) } + } + } OPTIONAL, + useAllowedCellList-r13 [20] BOOLEAN OPTIONAL, + measRSSI-ReportConfig-r13 [21] MeasRSSI-ReportConfig-r13 OPTIONAL, + includeMultiBandInfo-r13 [22] ENUMERATED { true(0) } OPTIONAL, + ul-DelayConfig-r13 [23] EXPLICIT UL-DelayConfig-r13 OPTIONAL + ]], + [[ + ue-RxTxTimeDiffPeriodicalTDD-r13 [24] BOOLEAN OPTIONAL + ]], + [[ + purpose-v1430 [25] ENUMERATED { reportLocation(0), sidelink(1), spare2(2) + , spare1(3) } OPTIONAL + ]], + [[ + maxReportRS-Index-r15 [26] INTEGER (0..maxRS-IndexReport-r15) OPTIONAL + ]], + [[ + includeBT-Meas-r15 [27] EXPLICIT BT-NameListConfig-r15 OPTIONAL, + includeWLAN-Meas-r15 [28] EXPLICIT WLAN-NameListConfig-r15 OPTIONAL, + purpose-r15 [29] ENUMERATED { sensing(0) } OPTIONAL, + numberOfTriggeringCells-r15 [30] INTEGER (2..maxCellReport) OPTIONAL, + a4-a5-ReportOnLeave-r15 [31] BOOLEAN OPTIONAL + ]], + [[ + condReconfigurationTriggerEUTRA-r16 [32] + CondReconfigurationTriggerEUTRA-r16 OPTIONAL, + ul-DelayValueConfig-r16 [33] EXPLICIT UL-DelayValueConfig-r16 OPTIONAL + ]], + [[ + includeUncomBarPreMeas-r17 [34] BOOLEAN OPTIONAL, + coarseLocationReq-r17 [35] ENUMERATED { true(0) } OPTIONAL + ]] +} + +ThresholdUTRA ::= CHOICE { + utra-RSCP [0] INTEGER (-5..91), + utra-EcN0 [1] INTEGER (0..49) +} + +ThresholdNR-r15 ::= CHOICE { + nr-RSRP-r15 [0] RSRP-RangeNR-r15, + nr-RSRQ-r15 [1] RSRQ-RangeNR-r15, + nr-SINR-r15 [2] RS-SINR-RangeNR-r15 +} + +ReportQuantityWLAN-r13 ::= SEQUENCE { + bandRequestWLAN-r13 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + carrierInfoRequestWLAN-r13 [1] ENUMERATED { true(0) } OPTIONAL, -- Need OR + availableAdmissionCapacityRequestWLAN-r13 [2] ENUMERATED { true(0) } + OPTIONAL, -- Need OR + backhaulDL-BandwidthRequestWLAN-r13 [3] ENUMERATED { true(0) } OPTIONAL, -- Need OR + backhaulUL-BandwidthRequestWLAN-r13 [4] ENUMERATED { true(0) } OPTIONAL, -- Need OR + channelUtilizationRequestWLAN-r13 [5] ENUMERATED { true(0) } OPTIONAL, -- Need OR + stationCountRequestWLAN-r13 [6] ENUMERATED { true(0) } OPTIONAL, + ... +} + +ReportQuantityNR-r15 ::= SEQUENCE { + ss-rsrp [0] BOOLEAN, + ss-rsrq [1] BOOLEAN, + ss-sinr [2] BOOLEAN +} + +CondReconfigurationTriggerNR-r17 ::= SEQUENCE { + condEventId-r17 [0] EXPLICIT CHOICE { + condEventB1-NR-r17 [0] SEQUENCE { + b1-ThresholdNR-r17 [0] EXPLICIT ThresholdNR-r15, + hysteresis-r17 [1] Hysteresis, + timeToTrigger-r17 [2] TimeToTrigger + }, + ... + } +} + +ReportConfigInterRAT ::= SEQUENCE { + triggerType [0] EXPLICIT CHOICE { + event [0] SEQUENCE { + eventId [0] EXPLICIT CHOICE { + eventB1 [0] SEQUENCE { + b1-Threshold [0] EXPLICIT CHOICE { + b1-ThresholdUTRA [0] EXPLICIT ThresholdUTRA, + b1-ThresholdGERAN [1] ThresholdGERAN, + b1-ThresholdCDMA2000 [2] ThresholdCDMA2000 + } + }, + eventB2 [1] SEQUENCE { + b2-Threshold1 [0] EXPLICIT ThresholdEUTRA, + b2-Threshold2 [1] EXPLICIT CHOICE { + b2-Threshold2UTRA [0] EXPLICIT ThresholdUTRA, + b2-Threshold2GERAN [1] ThresholdGERAN, + b2-Threshold2CDMA2000 [2] ThresholdCDMA2000 + } + }, + ..., + eventW1-r13 [2] SEQUENCE { + w1-Threshold-r13 [0] WLAN-RSSI-Range-r13 + }, + eventW2-r13 [3] SEQUENCE { + w2-Threshold1-r13 [0] WLAN-RSSI-Range-r13, + w2-Threshold2-r13 [1] WLAN-RSSI-Range-r13 + }, + eventW3-r13 [4] SEQUENCE { + w3-Threshold-r13 [0] WLAN-RSSI-Range-r13 + }, + eventB1-NR-r15 [5] SEQUENCE { + b1-ThresholdNR-r15 [0] EXPLICIT ThresholdNR-r15, + reportOnLeave-r15 [1] BOOLEAN + }, + eventB2-NR-r15 [6] SEQUENCE { + b2-Threshold1-r15 [0] EXPLICIT ThresholdEUTRA, + b2-Threshold2NR-r15 [1] EXPLICIT ThresholdNR-r15, + reportOnLeave-r15 [2] BOOLEAN + } + }, + hysteresis [1] Hysteresis, + timeToTrigger [2] TimeToTrigger + }, + periodical [1] SEQUENCE { + purpose [0] ENUMERATED { reportStrongestCells(0), + reportStrongestCellsForSON(1), reportCGI(2) } + } + }, + maxReportCells [1] INTEGER (1..maxCellReport), + reportInterval [2] ReportInterval, + reportAmount [3] ENUMERATED { r1(0), r2(1), r4(2), r8(3), r16(4), r32(5), + r64(6), infinity(7) }, + ..., + [[ + si-RequestForHO-r9 [4] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + reportQuantityUTRA-FDD-r10 [5] ENUMERATED { both(0) } OPTIONAL + ]], + [[ + includeLocationInfo-r11 [6] BOOLEAN OPTIONAL + ]], + [[ + b2-Threshold1-v1250 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] RSRQ-Range-v1250 + } OPTIONAL + ]], + [[ + reportQuantityWLAN-r13 [8] ReportQuantityWLAN-r13 OPTIONAL + ]], + [[ + reportAnyWLAN-r14 [9] BOOLEAN OPTIONAL + ]], + [[ + reportQuantityCellNR-r15 [10] ReportQuantityNR-r15 OPTIONAL, + maxReportRS-Index-r15 [11] INTEGER (0..maxRS-IndexReport-r15) OPTIONAL, + reportQuantityRS-IndexNR-r15 [12] ReportQuantityNR-r15 OPTIONAL, + reportRS-IndexResultsNR [13] BOOLEAN OPTIONAL, + reportSFTD-Meas-r15 [14] ENUMERATED { pSCell(0), neighborCells(1) } + OPTIONAL + ]], + [[ + useAutonomousGapsNR-r16 [15] ENUMERATED { setup(0) } OPTIONAL, + measRSSI-ReportConfigNR-r16 [16] MeasRSSI-ReportConfig-r13 OPTIONAL + ]], + [[ + condReconfigurationTriggerNR-r17 [17] CondReconfigurationTriggerNR-r17 + OPTIONAL + ]] +} + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId [0] ReportConfigId, + reportConfig [1] EXPLICIT CHOICE { + reportConfigEUTRA [0] ReportConfigEUTRA, + reportConfigInterRAT [1] ReportConfigInterRAT + } +} + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId + +MeasIdToAddMod ::= SEQUENCE { + measId [0] MeasId, + measObjectId [1] MeasObjectId, + reportConfigId [2] ReportConfigId +} + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod + +QuantityConfigEUTRA ::= SEQUENCE { + filterCoefficientRSRP [0] FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ [1] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigUTRA ::= SEQUENCE { + measQuantityUTRA-FDD [0] ENUMERATED { cpich-RSCP(0), cpich-EcN0(1) }, + measQuantityUTRA-TDD [1] ENUMERATED { pccpch-RSCP(0) }, + filterCoefficient [2] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigGERAN ::= SEQUENCE { + measQuantityGERAN [0] ENUMERATED { rssi(0) }, + filterCoefficient [1] FilterCoefficient DEFAULT fc2 +} + +QuantityConfigCDMA2000 ::= SEQUENCE { + measQuantityCDMA2000 [0] ENUMERATED { pilotStrength(0), + pilotPnPhaseAndPilotStrength(1) } +} + +QuantityConfigUTRA-v1020 ::= SEQUENCE { + filterCoefficient2-FDD-r10 [0] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigEUTRA-v1250 ::= SEQUENCE { + filterCoefficientCSI-RSRP-r12 [0] FilterCoefficient OPTIONAL -- Need OR +} + +QuantityConfigEUTRA-v1310 ::= SEQUENCE { + filterCoefficientRS-SINR-r13 [0] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigWLAN-r13 ::= SEQUENCE { + measQuantityWLAN-r13 [0] ENUMERATED { rssiWLAN(0) }, + filterCoefficient-r13 [1] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigRS-NR-r15 ::= SEQUENCE { + filterCoeff-RSRP-r15 [0] FilterCoefficient DEFAULT fc4, + filterCoeff-RSRQ-r15 [1] FilterCoefficient DEFAULT fc4, + filterCoefficient-SINR-r13 [2] FilterCoefficient DEFAULT fc4 +} + +QuantityConfigNR-r15 ::= SEQUENCE { + measQuantityCellNR-r15 [0] QuantityConfigRS-NR-r15, + measQuantityRS-IndexNR-r15 [1] QuantityConfigRS-NR-r15 OPTIONAL +} + +QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..maxQuantSetsNR-r15)) OF QuantityConfigNR-r15 + +QuantityConfig ::= SEQUENCE { + quantityConfigEUTRA [0] QuantityConfigEUTRA OPTIONAL, -- Need ON + quantityConfigUTRA [1] QuantityConfigUTRA OPTIONAL, -- Need ON + quantityConfigGERAN [2] QuantityConfigGERAN OPTIONAL, -- Need ON + quantityConfigCDMA2000 [3] QuantityConfigCDMA2000 OPTIONAL, + ..., + [[ + quantityConfigUTRA-v1020 [4] QuantityConfigUTRA-v1020 OPTIONAL + ]], + [[ + quantityConfigEUTRA-v1250 [5] QuantityConfigEUTRA-v1250 OPTIONAL + ]], + [[ + quantityConfigEUTRA-v1310 [6] QuantityConfigEUTRA-v1310 OPTIONAL, + quantityConfigWLAN-r13 [7] QuantityConfigWLAN-r13 OPTIONAL + ]], + [[ + quantityConfigNRList-r15 [8] QuantityConfigNRList-r15 OPTIONAL + ]] +} + +MeasGapConfig ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + gapOffset [0] EXPLICIT CHOICE { + gp0 [0] INTEGER (0..39), + gp1 [1] INTEGER (0..79), + ..., + gp2-r14 [2] INTEGER (0..39), + gp3-r14 [3] INTEGER (0..79), + gp-ncsg0-r14 [4] INTEGER (0..39), + gp-ncsg1-r14 [5] INTEGER (0..79), + gp-ncsg2-r14 [6] INTEGER (0..39), + gp-ncsg3-r14 [7] INTEGER (0..79), + gp-nonUniform1-r14 [8] INTEGER (0..1279), + gp-nonUniform2-r14 [9] INTEGER (0..2559), + gp-nonUniform3-r14 [10] INTEGER (0..5119), + gp-nonUniform4-r14 [11] INTEGER (0..10239), + gp4-r15 [12] INTEGER (0..19), + gp5-r15 [13] INTEGER (0..159), + gp6-r15 [14] INTEGER (0..19), + gp7-r15 [15] INTEGER (0..39), + gp8-r15 [16] INTEGER (0..79), + gp9-r15 [17] INTEGER (0..159), + gp10-r15 [18] INTEGER (0..19), + gp11-r15 [19] INTEGER (0..159) + } + } +} + +MeasObjectEUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 +} + +MeasObjectToAddMod-v9e0 ::= SEQUENCE { + measObjectEUTRA-v9e0 [0] MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra +} + +MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0 + + +MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250 + +MeasIdToAddModExt-r12 ::= SEQUENCE { + measId-v1250 [0] MeasId-v1250, + measObjectId-r12 [1] MeasObjectId, + reportConfigId-r12 [2] ReportConfigId +} + +MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12 + +MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310 + +MeasObjectToAddModExt-r13 ::= SEQUENCE { + measObjectId-r13 [0] MeasObjectId-v1310, + measObject-r13 [1] EXPLICIT CHOICE { + measObjectEUTRA-r13 [0] MeasObjectEUTRA, + measObjectUTRA-r13 [1] MeasObjectUTRA, + measObjectGERAN-r13 [2] MeasObjectGERAN, + measObjectCDMA2000-r13 [3] MeasObjectCDMA2000, + ..., + measObjectWLAN-v1320 [4] MeasObjectWLAN-r13, + measObjectNR-r15 [5] MeasObjectNR-r15 + } +} + +MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF + MeasObjectToAddModExt-r13 + +MeasIdToAddMod-v1310 ::= SEQUENCE { + measObjectId-v1310 [0] MeasObjectId-v1310 OPTIONAL +} + +MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310 + +MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13 + +MeasGapConfigPerCC-r14 ::= SEQUENCE { + servCellId-r14 [0] ServCellIndex-r13, + measGapConfigCC-r14 [1] EXPLICIT MeasGapConfig +} + +MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF + MeasGapConfigPerCC-r14 + +MeasGapConfigPerCC-List-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + measGapConfigToRemoveList-r14 [0] MeasGapConfigToRemoveList-r14 OPTIONAL, + -- Need ON + measGapConfigToAddModList-r14 [1] MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON + } +} + +MeasGapSharingConfig-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + measGapSharingScheme-r14 [0] ENUMERATED { scheme00(0), scheme01(1), + scheme10(2), scheme11(3) } + } +} + +MeasGapConfigDensePRS-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + gapOffsetDensePRS-r15 [0] EXPLICIT CHOICE { + rstd0-r15 [0] INTEGER (0..79), + rstd1-r15 [1] INTEGER (0..159), + rstd2-r15 [2] INTEGER (0..319), + rstd3-r15 [3] INTEGER (0..639), + rstd4-r15 [4] INTEGER (0..1279), + rstd5-r15 [5] INTEGER (0..159), + rstd6-r15 [6] INTEGER (0..319), + rstd7-r15 [7] INTEGER (0..639), + rstd8-r15 [8] INTEGER (0..1279), + rstd9-r15 [9] INTEGER (0..319), + rstd10-r15 [10] INTEGER (0..639), + rstd11-r15 [11] INTEGER (0..1279), + rstd12-r15 [12] INTEGER (0..319), + rstd13-r15 [13] INTEGER (0..639), + rstd14-r15 [14] INTEGER (0..1279), + rstd15-r15 [15] INTEGER (0..639), + rstd16-r15 [16] INTEGER (0..1279), + rstd17-r15 [17] INTEGER (0..639), + rstd18-r15 [18] INTEGER (0..1279), + rstd19-r15 [19] INTEGER (0..639), + rstd20-r15 [20] INTEGER (0..1279), + ... + } + } +} + +MeasConfig ::= SEQUENCE { +--Measurement objects + measObjectToRemoveList [0] MeasObjectToRemoveList OPTIONAL, -- Need ON + measObjectToAddModList [1] MeasObjectToAddModList OPTIONAL, -- Need ON +--Reporting configurations + reportConfigToRemoveList [2] ReportConfigToRemoveList OPTIONAL, -- Need ON + reportConfigToAddModList [3] ReportConfigToAddModList OPTIONAL, -- Need ON +--Measurement identities + measIdToRemoveList [4] MeasIdToRemoveList OPTIONAL, -- Need ON + measIdToAddModList [5] MeasIdToAddModList OPTIONAL, -- Need ON +--Other parameters + quantityConfig [6] QuantityConfig OPTIONAL, -- Need ON + measGapConfig [7] EXPLICIT MeasGapConfig OPTIONAL, -- Need ON + s-Measure [8] RSRP-Range OPTIONAL, -- Need ON + preRegistrationInfoHRPD [9] PreRegistrationInfoHRPD OPTIONAL, -- Need OP + speedStatePars [10] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + mobilityStateParameters [0] MobilityStateParameters, + timeToTrigger-SF [1] SpeedStateScaleFactors + } + } OPTIONAL, + ..., + [[ + measObjectToAddModList-v9e0 [11] MeasObjectToAddModList-v9e0 OPTIONAL + ]], + [[ + allowInterruptions-r11 [12] BOOLEAN OPTIONAL + ]], + [[ + measScaleFactor-r12 [13] EXPLICIT CHOICE { + release [0] NULL, + setup [1] MeasScaleFactor-r12 + } OPTIONAL, + measIdToRemoveListExt-r12 [14] MeasIdToRemoveListExt-r12 OPTIONAL, + measIdToAddModListExt-r12 [15] MeasIdToAddModListExt-r12 OPTIONAL, + measRSRQ-OnAllSymbols-r12 [16] BOOLEAN OPTIONAL + ]], + [[ + measObjectToRemoveListExt-r13 [17] MeasObjectToRemoveListExt-r13 OPTIONAL + , + measObjectToAddModListExt-r13 [18] MeasObjectToAddModListExt-r13 OPTIONAL + , + measIdToAddModList-v1310 [19] MeasIdToAddModList-v1310 OPTIONAL, + measIdToAddModListExt-v1310 [20] MeasIdToAddModListExt-v1310 OPTIONAL + ]], + [[ + measGapConfigPerCC-List-r14 [21] EXPLICIT MeasGapConfigPerCC-List-r14 + OPTIONAL, + measGapSharingConfig-r14 [22] EXPLICIT MeasGapSharingConfig-r14 OPTIONAL + ]], + [[ + fr1-Gap-r15 [23] BOOLEAN OPTIONAL, + mgta-r15 [24] BOOLEAN OPTIONAL + ]], + [[ + measGapConfigDensePRS-r15 [25] EXPLICIT MeasGapConfigDensePRS-r15 + OPTIONAL, + heightThreshRef-r15 [26] EXPLICIT CHOICE { + release [0] NULL, + setup [1] INTEGER (0..31) + } OPTIONAL + ]] +} + +CarrierFreqEUTRA ::= SEQUENCE { + dl-CarrierFreq [0] ARFCN-ValueEUTRA, + ul-CarrierFreq [1] ARFCN-ValueEUTRA OPTIONAL -- Cond FDD +} + +CarrierBandwidthEUTRA ::= SEQUENCE { + dl-Bandwidth [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), n100(5) + , spare10(6), spare9(7), spare8(8), spare7(9), spare6(10), spare5(11), + spare4(12), spare3(13), spare2(14), spare1(15) }, + ul-Bandwidth [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), n100(5) + , spare10(6), spare9(7), spare8(8), spare7(9), spare6(10), spare5(11), + spare4(12), spare3(13), spare2(14), spare1(15) } OPTIONAL -- Need OP +} + +PRACH-Config ::= SEQUENCE { + rootSequenceIndex [0] INTEGER (0..837), + prach-ConfigInfo [1] PRACH-ConfigInfo OPTIONAL -- Need ON +} + +AntennaInfoCommon ::= SEQUENCE { + antennaPortsCount [0] ENUMERATED { an1(0), an2(1), an4(2), spare1(3) } +} + +PRACH-Config-v1310 ::= SEQUENCE { + rsrp-ThresholdsPrachInfoList-r13 [0] RSRP-ThresholdsPrachInfoList-r13 + OPTIONAL, -- Cond MP + mpdcch-startSF-CSS-RA-r13 [1] EXPLICIT CHOICE { + fdd-r13 [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), v4(4), v5(5) + , v8(6), v10(7) }, + tdd-r13 [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), v10(5), + v20(6), spare(7) } + } OPTIONAL, -- Cond MP + prach-HoppingOffset-r13 [2] INTEGER (0..94) OPTIONAL, -- Need OR + prach-ParametersListCE-r13 [3] PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP + initial-CE-level-r13 [4] INTEGER (0..3) OPTIONAL -- Need OR +} + +RadioResourceConfigCommon ::= SEQUENCE { + rach-ConfigCommon [0] RACH-ConfigCommon OPTIONAL, -- Need ON + prach-Config [1] PRACH-Config, + pdsch-ConfigCommon [2] PDSCH-ConfigCommon OPTIONAL, -- Need ON + pusch-ConfigCommon [3] PUSCH-ConfigCommon, + phich-Config [4] PHICH-Config OPTIONAL, -- Need ON + pucch-ConfigCommon [5] PUCCH-ConfigCommon OPTIONAL, -- Need ON + soundingRS-UL-ConfigCommon [6] EXPLICIT SoundingRS-UL-ConfigCommon OPTIONAL, + -- Need ON + uplinkPowerControlCommon [7] UplinkPowerControlCommon OPTIONAL, -- Need ON + antennaInfoCommon [8] AntennaInfoCommon OPTIONAL, -- Need ON + p-Max [9] P-Max OPTIONAL, -- Need OP + tdd-Config [10] TDD-Config OPTIONAL, -- Cond TDD + ul-CyclicPrefixLength [11] UL-CyclicPrefixLength, + ..., + [[ + uplinkPowerControlCommon-v1020 [12] UplinkPowerControlCommon-v1020 + OPTIONAL + ]], + [[ + tdd-Config-v1130 [13] TDD-Config-v1130 OPTIONAL + ]], + [[ + pusch-ConfigCommon-v1270 [14] PUSCH-ConfigCommon-v1270 OPTIONAL + ]], + [[ + prach-Config-v1310 [15] PRACH-Config-v1310 OPTIONAL, + freqHoppingParameters-r13 [16] FreqHoppingParameters-r13 OPTIONAL, + pdsch-ConfigCommon-v1310 [17] PDSCH-ConfigCommon-v1310 OPTIONAL, + pucch-ConfigCommon-v1310 [18] PUCCH-ConfigCommon-v1310 OPTIONAL, + pusch-ConfigCommon-v1310 [19] PUSCH-ConfigCommon-v1310 OPTIONAL, + uplinkPowerControlCommon-v1310 [20] UplinkPowerControlCommon-v1310 + OPTIONAL + ]], + [[ + highSpeedConfig-r14 [21] HighSpeedConfig-r14 OPTIONAL, + prach-Config-v1430 [22] PRACH-Config-v1430 OPTIONAL, + pucch-ConfigCommon-v1430 [23] PUCCH-ConfigCommon-v1430 OPTIONAL, + tdd-Config-v1430 [24] TDD-Config-v1430 OPTIONAL + ]], + [[ + tdd-Config-v1450 [25] TDD-Config-v1450 OPTIONAL + ]], + [[ + uplinkPowerControlCommon-v1530 [26] UplinkPowerControlCommon-v1530 + OPTIONAL, + highSpeedConfig-v1530 [27] HighSpeedConfig-v1530 OPTIONAL + ]], + [[ + highSpeedConfig-v1610 [28] HighSpeedConfig-v1610 OPTIONAL, + uplinkPowerControlCommon-v1610 [29] UplinkPowerControlCommon-v1610 + OPTIONAL, + highSpeedInterRAT-NR-r16 [30] BOOLEAN OPTIONAL + ]], + [[ + ntn-ConfigCommon-r17 [31] SEQUENCE { + ta-Report-r17 [0] ENUMERATED { enabled(0) } OPTIONAL, -- Need OR + t318-r17 [1] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), + ms500(4), ms1000(5), ms2000(6), ms4000(7), ms6000(8) }, + prach-TxDuration-r17 [2] PRACH-TxDuration-r17 OPTIONAL, -- Need OR + pucch-TxDuration-r17 [3] PUCCH-TxDuration-r17 OPTIONAL, -- Need OR + pusch-TxDuration-r17 [4] PUSCH-TxDuration-r17 OPTIONAL -- Need OR + } OPTIONAL + ]] +} + +RACH-ConfigDedicated ::= SEQUENCE { + ra-PreambleIndex [0] INTEGER (0..63), + ra-PRACH-MaskIndex [1] INTEGER (0..15) +} + +CarrierFreqEUTRA-v9e0 ::= SEQUENCE { + dl-CarrierFreq-v9e0 [0] ARFCN-ValueEUTRA-r9, + ul-CarrierFreq-v9e0 [1] ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD +} + +MobilityControlInfoV2X-r14 ::= SEQUENCE { + v2x-CommTxPoolExceptional-r14 [0] SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR + v2x-CommRxPool-r14 [1] SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + v2x-CommSyncConfig-r14 [2] SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR + cbr-MobilityTxConfigList-r14 [3] SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR +} + +RACH-Skip-r14 ::= SEQUENCE { + targetTA-r14 [0] EXPLICIT CHOICE { + ta0-r14 [0] NULL, + mcg-PTAG-r14 [1] NULL, + scg-PTAG-r14 [2] NULL, + mcg-STAG-r14 [3] STAG-Id-r11, + scg-STAG-r14 [4] STAG-Id-r11 + }, + ul-ConfigInfo-r14 [1] SEQUENCE { + numberOfConfUL-Processes-r14 [0] INTEGER (1..8), + ul-SchedInterval-r14 [1] ENUMERATED { sf2(0), sf5(1), sf10(2) }, + ul-StartSubframe-r14 [2] INTEGER (0..9), + ul-Grant-r14 [3] BIT STRING (SIZE (16)) + } OPTIONAL -- Need OR +} + +DAPS-PowerCoordinationInfo-r16 ::= SEQUENCE { + p-DAPS-Source-r16 [0] INTEGER (1..16), + p-DAPS-Target-r16 [1] INTEGER (1..16), + powerControlMode-r16 [2] INTEGER (1..2) +} + +DAPS-Config-r16 ::= SEQUENCE { + daps-PowerCoordinationInfo-r16 [0] DAPS-PowerCoordinationInfo-r16 OPTIONAL, + ... +} + +MobilityControlInfo ::= SEQUENCE { + targetPhysCellId [0] PhysCellId, + carrierFreq [1] CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2 + carrierBandwidth [2] CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA + additionalSpectrumEmission [3] AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA + t304 [4] ENUMERATED { ms50(0), ms100(1), ms150(2), ms200(3), ms500(4), + ms1000(5), ms2000(6), ms10000-v1310(7) }, + newUE-Identity [5] C-RNTI, + radioResourceConfigCommon [6] RadioResourceConfigCommon, + rach-ConfigDedicated [7] RACH-ConfigDedicated OPTIONAL, + ..., + [[ + carrierFreq-v9e0 [8] CarrierFreqEUTRA-v9e0 OPTIONAL + ]], + [[ + drb-ContinueROHC-r11 [9] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + mobilityControlInfoV2X-r14 [10] MobilityControlInfoV2X-r14 OPTIONAL, + handoverWithoutWT-Change-r14 [11] ENUMERATED { keepLWA-Config(0), + sendEndMarker(1) } OPTIONAL, + makeBeforeBreak-r14 [12] ENUMERATED { true(0) } OPTIONAL, + rach-Skip-r14 [13] RACH-Skip-r14 OPTIONAL, + sameSFN-Indication-r14 [14] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + mib-RepetitionStatus-r14 [15] BOOLEAN OPTIONAL, + schedulingInfoSIB1-BR-r14 [16] INTEGER (0..31) OPTIONAL + ]], + [[ + daps-Config-r16 [17] DAPS-Config-r16 OPTIONAL + ]] +} + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm [0] CipheringAlgorithm-r12, + integrityProtAlgorithm [1] ENUMERATED { eia0-v920(0), eia1(1), eia2(2), + eia3-v1130(3), spare4(4), spare3(5), spare2(6), spare1(7), ... } +} + +SecurityConfigHO ::= SEQUENCE { + handoverType [0] EXPLICIT CHOICE { + intraLTE [0] SEQUENCE { + securityAlgorithmConfig [0] SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig + keyChangeIndicator [1] BOOLEAN, + nextHopChainingCount [2] NextHopChainingCount + }, + interRAT [1] SEQUENCE { + securityAlgorithmConfig [0] SecurityAlgorithmConfig, + nas-SecurityParamToEUTRA [1] OCTET STRING (SIZE (6)) + } + }, + ... +} + +AntennaInfoDedicated-v10i0 ::= SEQUENCE { + maxLayersMIMO-r10 [0] ENUMERATED { twoLayers(0), fourLayers(1), + eightLayers(2) } OPTIONAL -- Need OR +} + +MobilityControlInfo-v10l0 ::= SEQUENCE { + additionalSpectrumEmission-v10l0 [0] AdditionalSpectrumEmission-v10l0 + OPTIONAL -- Need ON +} + +RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE { +--UL configuration + ul-Configuration-v10l0 [0] SEQUENCE { + additionalSpectrumEmissionSCell-v10l0 [0] + AdditionalSpectrumEmission-v10l0 + } +} + +SCellToAddMod-v10l0 ::= SEQUENCE { + radioResourceConfigCommonSCell-v10l0 [0] + RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0 + +RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE { + basicFields-v12f0 [0] RadioResourceConfigCommonSCell-v10l0 +} + +PSCellToAddMod-v12f0 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r12 [0] + RadioResourceConfigCommonPSCell-v12f0 OPTIONAL +} + +SCG-ConfigPartSCG-v12f0 ::= SEQUENCE { + pSCellToAddMod-v12f0 [0] PSCellToAddMod-v12f0 OPTIONAL, -- Need ON + sCellToAddModListSCG-v12f0 [1] SCellToAddModList-v10l0 OPTIONAL -- Need ON +} + +SCG-Configuration-v12f0 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + scg-ConfigPartSCG-v12f0 [0] SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON + } +} + +PUCCH-ConfigDedicated-v1370 ::= SEQUENCE { + pucch-Format-v1370 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] PUCCH-Format3-Conf-r13 + } +} + +PhysicalConfigDedicated-v1370 ::= SEQUENCE { + pucch-ConfigDedicated-v1370 [0] PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 +} + +RadioResourceConfigDedicated-v1370 ::= SEQUENCE { + physicalConfigDedicated-v1370 [0] PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON +} + +SCellToAddModExt-v1370 ::= SEQUENCE { + radioResourceConfigCommonSCell-v1370 [0] + RadioResourceConfigCommonSCell-v10l0 OPTIONAL +} + +SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370 + +PUCCH-ConfigDedicated-v13c0 ::= SEQUENCE { + channelSelection-v13c0 [0] SEQUENCE { + n1PUCCH-AN-CS-v13c0 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + n1PUCCH-AN-CS-ListP1-v13c0 [0] SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047) + } + } + } +} + +PhysicalConfigDedicated-v13c0 ::= SEQUENCE { + pucch-ConfigDedicated-v13c0 [0] PUCCH-ConfigDedicated-v13c0 +} + +RadioResourceConfigDedicated-v13c0 ::= SEQUENCE { + physicalConfigDedicated-v13c0 [0] PhysicalConfigDedicated-v13c0 +} + +PhysicalConfigDedicatedSCell-v13c0 ::= SEQUENCE { + pucch-SCell-v13c0 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pucch-ConfigDedicated-v13c0 [0] PUCCH-ConfigDedicated-v13c0 + } + } +} + +RadioResourceConfigDedicatedSCell-v13c0 ::= SEQUENCE { + physicalConfigDedicatedSCell-v13c0 [0] PhysicalConfigDedicatedSCell-v13c0 +} + +SCellToAddMod-v13c0 ::= SEQUENCE { + radioResourceConfigDedicatedSCell-v13c0 [0] + RadioResourceConfigDedicatedSCell-v13c0 OPTIONAL +} + +SCellToAddModList-v13c0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v13c0 + +SCellToAddModListExt-v13c0 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddMod-v13c0 + +SCG-ConfigPartSCG-v13c0 ::= SEQUENCE { + sCellToAddModListSCG-v13c0 [0] SCellToAddModList-v13c0 OPTIONAL, -- Need ON + sCellToAddModListSCG-Ext-v13c0 [1] SCellToAddModListExt-v13c0 OPTIONAL -- Need ON +} + +SCG-Configuration-v13c0 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + scg-ConfigPartSCG-v13c0 [0] SCG-ConfigPartSCG-v13c0 OPTIONAL -- Need ON + } +} + +RRCConnectionReconfiguration-v13c0-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v13c0 [0] RadioResourceConfigDedicated-v13c0 + OPTIONAL, -- Need ON + sCellToAddModList-v13c0 [1] SCellToAddModList-v13c0 OPTIONAL, -- Need ON + sCellToAddModListExt-v13c0 [2] SCellToAddModListExt-v13c0 OPTIONAL, -- Need ON + scg-Configuration-v13c0 [3] EXPLICIT SCG-Configuration-v13c0 OPTIONAL, -- Need ON +--Following field is only for late non-critical extensions from REL-13 onwards + nonCriticalExtension [4] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE { + radioResourceConfigDedicated-v1370 [0] RadioResourceConfigDedicated-v1370 + OPTIONAL, -- Need ON + sCellToAddModListExt-v1370 [1] SCellToAddModListExt-v1370 OPTIONAL, -- Need ON + nonCriticalExtension [2] RRCConnectionReconfiguration-v13c0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE { + scg-Configuration-v12f0 [0] EXPLICIT SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig +--Following field is only for late non-critical extensions from REL-12 + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] RRCConnectionReconfiguration-v1370-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE { + mobilityControlInfo-v10l0 [0] MobilityControlInfo-v10l0 OPTIONAL, + sCellToAddModList-v10l0 [1] SCellToAddModList-v10l0 OPTIONAL, -- Need ON +--Following field is only for late non-critical extensions from REL-10 to REL-11 + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] RRCConnectionReconfiguration-v12f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE { + antennaInfoDedicatedPCell-v10i0 [0] AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionReconfiguration-v10l0-IEs OPTIONAL +} + +-- Late non-critical extensions: +RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE { +--Following field is only for pre REL-10 late non-critical extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfiguration-v10i0-IEs OPTIONAL +} + +ReportProximityConfig-r9 ::= SEQUENCE { + proximityIndicationEUTRA-r9 [0] ENUMERATED { enabled(0) } OPTIONAL, -- Need OR + proximityIndicationUTRA-r9 [1] ENUMERATED { enabled(0) } OPTIONAL -- Need OR +} + +CandidateServingFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF ARFCN-ValueNR-r15 + +IDC-Config-r11 ::= SEQUENCE { + idc-Indication-r11 [0] ENUMERATED { setup(0) } OPTIONAL, -- Need OR + autonomousDenialParameters-r11 [1] SEQUENCE { + autonomousDenialSubframes-r11 [0] ENUMERATED { n2(0), n5(1), n10(2), + n15(3), n20(4), n30(5), spare2(6), spare1(7) }, + autonomousDenialValidity-r11 [1] ENUMERATED { sf200(0), sf500(1), + sf1000(2), sf2000(3), spare4(4), spare3(5), spare2(6), spare1(7) } + } OPTIONAL, + ..., + [[ + idc-Indication-UL-CA-r11 [2] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + idc-HardwareSharingIndication-r13 [3] ENUMERATED { setup(0) } OPTIONAL + ]], + [[ + idc-Indication-MRDC-r15 [4] EXPLICIT CHOICE { + release [0] NULL, + setup [1] CandidateServingFreqListNR-r15 + } OPTIONAL + ]] +} + +PowerPrefIndicationConfig-r11 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + powerPrefIndicationTimer-r11 [0] ENUMERATED { s0(0), s0dot5(1), s1(2), + s2(3), s5(4), s10(5), s20(6), s30(7), s60(8), s90(9), s120(10), + s300(11), s600(12), spare3(13), spare2(14), spare1(15) } + } +} + +ObtainLocationConfig-r11 ::= SEQUENCE { + obtainLocation-r11 [0] ENUMERATED { setup(0) } OPTIONAL -- Need OR +} + +SCG-DeactivationPreferenceConfig-r17 ::= SEQUENCE { + scg-DeactivationPreferenceProhibitTimer-r17 [0] ENUMERATED { s0(0), s1(1), + s2(2), s4(3), s8(4), s10(5), s20(6), s30(7), s60(8), s120(9), s180(10), + s240(11), s300(12), s600(13), s900(14), s1800(15) } +} + +OtherConfig-r9 ::= SEQUENCE { + reportProximityConfig-r9 [0] ReportProximityConfig-r9 OPTIONAL, + ..., + [[ + idc-Config-r11 [1] IDC-Config-r11 OPTIONAL, + powerPrefIndicationConfig-r11 [2] EXPLICIT PowerPrefIndicationConfig-r11 + OPTIONAL, + obtainLocationConfig-r11 [3] ObtainLocationConfig-r11 OPTIONAL + ]], + [[ + bw-PreferenceIndicationTimer-r14 [4] ENUMERATED { s0(0), s0dot5(1), s1(2) + , s2(3), s5(4), s10(5), s20(6), s30(7), s60(8), s90(9), s120(10), + s300(11), s600(12), spare3(13), spare2(14), spare1(15) } OPTIONAL, + sps-AssistanceInfoReport-r14 [5] BOOLEAN OPTIONAL, + delayBudgetReportingConfig-r14 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + delayBudgetReportingProhibitTimer-r14 [0] ENUMERATED { s0(0), + s0dot4(1), s0dot8(2), s1dot6(3), s3(4), s6(5), s12(6), s30(7) } + } + } OPTIONAL, + rlm-ReportConfig-r14 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + rlmReportTimer-r14 [0] ENUMERATED { s0(0), s0dot5(1), s1(2), s2(3) + , s5(4), s10(5), s20(6), s30(7), s60(8), s90(9), s120(10), + s300(11), s600(12), spare3(13), spare2(14), spare1(15) }, + rlmReportRep-MPDCCH-r14 [1] ENUMERATED { setup(0) } OPTIONAL -- Need OR + } + } OPTIONAL + ]], + [[ + overheatingAssistanceConfig-r14 [8] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + overheatingIndicationProhibitTimer-r14 [0] ENUMERATED { s0(0), + s0dot5(1), s1(2), s2(3), s5(4), s10(5), s20(6), s30(7), s60(8), + s90(9), s120(10), s300(11), s600(12), spare3(13), spare2(14), + spare1(15) } + } + } OPTIONAL + ]], + [[ + measConfigAppLayer-r15 [9] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + measConfigAppLayerContainer-r15 [0] OCTET STRING (SIZE (1..1000)), + serviceType-r15 [1] ENUMERATED { qoe(0), qoemtsi(1), spare6(2), + spare5(3), spare4(4), spare3(5), spare2(6), spare1(7) } + } + } OPTIONAL, + ailc-BitConfig-r15 [10] BOOLEAN OPTIONAL, + bt-NameListConfig-r15 [11] EXPLICIT BT-NameListConfig-r15 OPTIONAL, + wlan-NameListConfig-r15 [12] EXPLICIT WLAN-NameListConfig-r15 OPTIONAL + ]], + [[ + overheatingAssistanceConfigForSCG-r16 [13] BOOLEAN OPTIONAL + ]], + [[ + measUncomBarPre-r17 [14] BOOLEAN OPTIONAL, + scg-DeactivationPreferenceConfig-r17 [15] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SCG-DeactivationPreferenceConfig-r17 + } OPTIONAL + ]] +} + +SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10 + +UplinkPowerControlCommonSCell-r10 ::= SEQUENCE { + p0-NominalPUSCH-r10 [0] INTEGER (-126..24), + alpha-r10 [1] Alpha-r12 +} + +PRACH-ConfigSCell-r10 ::= SEQUENCE { + prach-ConfigIndex-r10 [0] INTEGER (0..63) +} + +RACH-ConfigCommonSCell-r11 ::= SEQUENCE { + powerRampingParameters-r11 [0] PowerRampingParameters, + ra-SupervisionInfo-r11 [1] SEQUENCE { + preambleTransMax-r11 [0] PreambleTransMax + }, + ... +} + +UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE { + deltaPreambleMsg3-r11 [0] INTEGER (-1..6) +} + +UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE { +--For uplink power control the additional/ missing fields are signalled (compared to SCell) + p0-NominalPUCCH [0] INTEGER (-127..-96), + deltaFList-PUCCH [1] DeltaFList-PUCCH, + deltaF-PUCCH-Format3-r12 [2] ENUMERATED { deltaF-1(0), deltaF0(1), + deltaF1(2), deltaF2(3), deltaF3(4), deltaF4(5), deltaF5(6), deltaF6(7) } + OPTIONAL, -- Need OR + deltaF-PUCCH-Format1bCS-r12 [3] ENUMERATED { deltaF1(0), deltaF2(1), + spare2(2), spare1(3) } OPTIONAL, -- Need OR + deltaF-PUCCH-Format4-r13 [4] ENUMERATED { deltaF16(0), deltaF15(1), + deltaF14(2), deltaF13(3), deltaF12(4), deltaF11(5), deltaF10(6), + spare1(7) } OPTIONAL, -- Need OR + deltaF-PUCCH-Format5-13 [5] ENUMERATED { deltaF13(0), deltaF12(1), + deltaF11(2), deltaF10(3), deltaF9(4), deltaF8(5), deltaF7(6), spare1(7) } + OPTIONAL -- Need OR +} + +HighSpeedConfigSCell-r14 ::= SEQUENCE { + highSpeedEnhancedDemodulationFlag-r14 [0] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE { + p0-Nominal-PeriodicSRS-r14 [0] INTEGER (-126..24) OPTIONAL, -- Need OR + p0-Nominal-AperiodicSRS-r14 [1] INTEGER (-126..24) OPTIONAL, -- Need OR + alpha-SRS-r14 [2] Alpha-r12 OPTIONAL -- Need OR +} + +RadioResourceConfigCommonSCell-r10 ::= SEQUENCE { +--DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 [0] SEQUENCE { +--1: Cell characteristics + dl-Bandwidth-r10 [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) }, +--2: Physical configuration, general + antennaInfoCommon-r10 [1] AntennaInfoCommon, + mbsfn-SubframeConfigList-r10 [2] MBSFN-SubframeConfigList OPTIONAL, -- Need OR +--3: Physical configuration, control + phich-Config-r10 [3] PHICH-Config, +--4: Physical configuration, physical channels + pdsch-ConfigCommon-r10 [4] PDSCH-ConfigCommon, + tdd-Config-r10 [5] TDD-Config OPTIONAL -- Cond TDDSCell + }, +--UL configuration + ul-Configuration-r10 [1] SEQUENCE { + ul-FreqInfo-r10 [0] SEQUENCE { + ul-CarrierFreq-r10 [0] ARFCN-ValueEUTRA OPTIONAL, -- Need OP + ul-Bandwidth-r10 [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), + n75(4), n100(5) } OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r10 [2] AdditionalSpectrumEmission + }, + p-Max-r10 [1] P-Max OPTIONAL, -- Need OP + uplinkPowerControlCommonSCell-r10 [2] UplinkPowerControlCommonSCell-r10, +--A special version of IE UplinkPowerControlCommon may be introduced +--3: Physical configuration, control + soundingRS-UL-ConfigCommon-r10 [3] EXPLICIT SoundingRS-UL-ConfigCommon, + ul-CyclicPrefixLength-r10 [4] UL-CyclicPrefixLength, +--4: Physical configuration, physical channels + prach-ConfigSCell-r10 [5] PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + pusch-ConfigCommon-r10 [6] PUSCH-ConfigCommon + } OPTIONAL, + ..., + [[ + ul-CarrierFreq-v1090 [2] ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ + rach-ConfigCommonSCell-r11 [3] RACH-ConfigCommonSCell-r11 OPTIONAL, + prach-ConfigSCell-r11 [4] PRACH-Config OPTIONAL, + tdd-Config-v1130 [5] TDD-Config-v1130 OPTIONAL, + uplinkPowerControlCommonSCell-v1130 [6] + UplinkPowerControlCommonSCell-v1130 OPTIONAL + ]], + [[ + pusch-ConfigCommon-v1270 [7] PUSCH-ConfigCommon-v1270 OPTIONAL + ]], + [[ + pucch-ConfigCommon-r13 [8] PUCCH-ConfigCommon OPTIONAL, + uplinkPowerControlCommonSCell-v1310 [9] + UplinkPowerControlCommonSCell-v1310 OPTIONAL + ]], + [[ + highSpeedConfigSCell-r14 [10] HighSpeedConfigSCell-r14 OPTIONAL, + prach-Config-v1430 [11] PRACH-Config-v1430 OPTIONAL, + ul-Configuration-r14 [12] SEQUENCE { + ul-FreqInfo-r14 [0] SEQUENCE { + ul-CarrierFreq-r14 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP + ul-Bandwidth-r14 [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), + n75(4), n100(5) } OPTIONAL, -- Need OP + additionalSpectrumEmissionSCell-r14 [2] AdditionalSpectrumEmission + }, + p-Max-r14 [1] P-Max OPTIONAL, -- Need OP + soundingRS-UL-ConfigCommon-r14 [2] EXPLICIT SoundingRS-UL-ConfigCommon + , + ul-CyclicPrefixLength-r14 [3] UL-CyclicPrefixLength, + prach-ConfigSCell-r14 [4] PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11 + uplinkPowerControlCommonPUSCH-LessCell-v1430 [5] + UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR + } OPTIONAL, + harq-ReferenceConfig-r14 [13] ENUMERATED { sa2(0), sa4(1), sa5(2) } + OPTIONAL, + soundingRS-FlexibleTiming-r14 [14] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + mbsfn-SubframeConfigList-v1430 [15] MBSFN-SubframeConfigList-v1430 + OPTIONAL + ]], + [[ + uplinkPowerControlCommonSCell-v1530 [16] UplinkPowerControlCommon-v1530 + OPTIONAL + ]], + [[ + highSpeedEnhMeasFlagSCell-r16 [17] BOOLEAN OPTIONAL + ]] +} + +CrossCarrierSchedulingConfig-r10 ::= SEQUENCE { + schedulingCellInfo-r10 [0] EXPLICIT CHOICE { + own-r10 [0] SEQUENCE { + -- No cross carrier scheduling + cif-Presence-r10 [0] BOOLEAN + }, + other-r10 [1] SEQUENCE { + -- Cross carrier scheduling + schedulingCellId-r10 [0] ServCellIndex-r10, + pdsch-Start-r10 [1] INTEGER (1..4) + } + } +} + +PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { + groupHoppingDisabled-r10 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OR + dmrs-WithOCC-Activated-r10 [1] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE { + p0-UE-PUSCH-r10 [0] INTEGER (-8..7), + deltaMCS-Enabled-r10 [1] ENUMERATED { en0(0), en1(1) }, + accumulationEnabled-r10 [2] BOOLEAN, + pSRS-Offset-r10 [3] INTEGER (0..15), + pSRS-OffsetAp-r10 [4] INTEGER (0..15) OPTIONAL, -- Need OR + filterCoefficient-r10 [5] FilterCoefficient DEFAULT fc4, + pathlossReferenceLinking-r10 [6] ENUMERATED { pCell(0), sCell(1) } +} + +CQI-ReportConfigSCell-r10 ::= SEQUENCE { + cqi-ReportModeAperiodic-r10 [0] CQI-ReportModeAperiodic OPTIONAL, -- Need OR + nomPDSCH-RS-EPRE-Offset-r10 [1] INTEGER (-1..6), + cqi-ReportPeriodicSCell-r10 [2] EXPLICIT CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON + pmi-RI-Report-r10 [3] ENUMERATED { setup(0) } OPTIONAL -- Cond PMIRISCell +} + +SchedulingRequestConfigSCell-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + sr-PUCCH-ResourceIndex-r13 [0] INTEGER (0..2047), + sr-PUCCH-ResourceIndexP1-r13 [1] INTEGER (0..2047) OPTIONAL, -- Need OR + sr-ConfigIndex-r13 [2] INTEGER (0..157), + dsr-TransMax-r13 [3] ENUMERATED { n4(0), n8(1), n16(2), n32(3), n64(4), + spare3(5), spare2(6), spare1(7) } + } +} + +TPC-PDCCH-ConfigSCell-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + tpc-Index-PUCCH-SCell-r13 [0] EXPLICIT TPC-Index + } +} + +UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE { +--Release 8 + p0-UE-PUCCH [0] INTEGER (-8..7), +--Release 10 + deltaTxD-OffsetListPUCCH-r10 [1] DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR +} + +CrossCarrierSchedulingConfig-r13 ::= SEQUENCE { + schedulingCellInfo-r13 [0] EXPLICIT CHOICE { + own-r13 [0] SEQUENCE { + -- No cross carrier scheduling + cif-Presence-r13 [0] BOOLEAN + }, + other-r13 [1] SEQUENCE { + -- Cross carrier scheduling + schedulingCellId-r13 [0] ServCellIndex-r13, + pdsch-Start-r13 [1] INTEGER (1..4), + cif-InSchedulingCell-r13 [2] INTEGER (1..7) + } + } +} + +PDCCH-ConfigSCell-r13 ::= SEQUENCE { + skipMonitoringDCI-format0-1A-r13 [0] ENUMERATED { true(0) } OPTIONAL -- Need OR +} + +LAA-SCellConfiguration-r13 ::= SEQUENCE { + subframeStartPosition-r13 [0] ENUMERATED { s0(0), s07(1) }, + laa-SCellSubframeConfig-r13 [1] BIT STRING (SIZE (8)) +} + +CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE { + schedulingCellId-r14 [0] ServCellIndex-r13, + cif-InSchedulingCell-r14 [1] INTEGER (1..7) +} + +LBT-Config-r14 ::= CHOICE { + maxEnergyDetectionThreshold-r14 [0] INTEGER (-85..-52), + energyDetectionThresholdOffset-r14 [1] INTEGER (-13..20) +} + +PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pdcch-candidateReductionAL1-r14 [0] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL2-r14 [1] PDCCH-CandidateReductionValue-r13, + pdcch-candidateReductionAL3-r14 [2] PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL4-r14 [3] PDCCH-CandidateReductionValue-r14, + pdcch-candidateReductionAL5-r14 [4] PDCCH-CandidateReductionValue-r14 + } +} + +PDCCH-ConfigLAA-r14 ::= SEQUENCE { + maxNumberOfSchedSubframes-Format0B-r14 [0] ENUMERATED { sf2(0), sf3(1), + sf4(2) } OPTIONAL, -- Need OR + maxNumberOfSchedSubframes-Format4B-r14 [1] ENUMERATED { sf2(0), sf3(1), + sf4(2) } OPTIONAL, -- Need OR + skipMonitoringDCI-Format0A-r14 [2] ENUMERATED { true(0) } OPTIONAL, -- Need OR + skipMonitoringDCI-Format4A-r14 [3] ENUMERATED { true(0) } OPTIONAL, -- Need OR + pdcch-CandidateReductions-Format0A-r14 [4] EXPLICIT + PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4A-r14 [5] EXPLICIT + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format0B-r14 [6] EXPLICIT + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON + pdcch-CandidateReductions-Format4B-r14 [7] EXPLICIT + PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON +} + +SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + srs-SubframeIndication-r14 [0] INTEGER (1..4) OPTIONAL -- Need ON + } +} + +LAA-SCellConfiguration-v1430 ::= SEQUENCE { + crossCarrierSchedulingConfig-UL-r14 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + crossCarrierSchedulingConfigLAA-UL-r14 [0] + CrossCarrierSchedulingConfigLAA-UL-r14 + } + } OPTIONAL, -- Cond Cross-Carrier-ConfigUL + lbt-Config-r14 [1] EXPLICIT LBT-Config-r14 OPTIONAL, -- Need ON + pdcch-ConfigLAA-r14 [2] PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON + absenceOfAnyOtherTechnology-r14 [3] ENUMERATED { true(0) } OPTIONAL, -- Need OR + soundingRS-UL-ConfigDedicatedAperiodic-v1430 [4] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON +} + +UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE { + p0-UE-PeriodicSRS-r14 [0] INTEGER (-8..7) OPTIONAL, -- Need OR + p0-UE-AperiodicSRS-r14 [1] INTEGER (-8..7) OPTIONAL, -- Need OR + accumulationEnabled-r14 [2] BOOLEAN +} + +SoundingRS-AperiodicSet-r14 ::= SEQUENCE { + srs-CC-SetIndexList-r14 [0] SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, + -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodic-r14 [1] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-r10 +} + +SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE { + srs-CC-SetIndexList-r14 [0] SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14 + OPTIONAL, + -- Cond SRS-Trigger-TypeA + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14 [1] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 +} + +PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + enable256QAM-r14 [0] EXPLICIT Enable256QAM-r14 OPTIONAL -- Need OR +} + +PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { + tbsIndexAlt2-r14 [0] ENUMERATED { b33(0) } OPTIONAL -- Need OR +} + +CQI-ReportPeriodicSCell-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-pmi-ConfigIndexDormant-r15 [0] INTEGER (0..1023), + ri-ConfigIndexDormant-r15 [1] INTEGER (0..1023) OPTIONAL, -- Need OR + csi-SubframePatternDormant-r15 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + csi-MeasSubframeSet1-r15 [0] EXPLICIT MeasSubframePattern-r10, + csi-MeasSubframeSet2-r15 [1] EXPLICIT MeasSubframePattern-r10 + } + } OPTIONAL, -- Need ON + cqi-FormatIndicatorDormant-r15 [3] EXPLICIT CHOICE { + widebandCQI-r15 [0] SEQUENCE { + csi-ReportMode-r15 [0] ENUMERATED { submode1(0), submode2(1) } + OPTIONAL -- Need OR + }, + subbandCQI-r15 [1] SEQUENCE { + k-r15 [0] INTEGER (1..4), + periodicityFactor-r15 [1] ENUMERATED { n2(0), n4(1) } + } + } OPTIONAL -- Need OR + } +} + +CQI-ReportConfigSCell-r15 ::= SEQUENCE { + cqi-ReportPeriodicSCell-r15 [0] EXPLICIT CQI-ReportPeriodicSCell-r15 + OPTIONAL, -- Need ON + altCQI-Table-1024QAM-r15 [1] ENUMERATED { allSubframes(0), + csi-SubframeSet1(1), csi-SubframeSet2(2), spare1(3) } OPTIONAL -- Need OP +} + +CQI-ShortConfigSCell-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + cqi-pmi-ConfigIndexShort-r15 [0] INTEGER (0..1023), + ri-ConfigIndexShort-r15 [1] INTEGER (0..1023) OPTIONAL, -- Need OR + cqi-FormatIndicatorShort-r15 [2] EXPLICIT CHOICE { + widebandCQI-Short-r15 [0] SEQUENCE { + csi-ReportModeShort-r15 [0] ENUMERATED { submode1(0), submode2(1) } + OPTIONAL -- Need OR + }, + subbandCQI-Short-r15 [1] SEQUENCE { + k-r15 [0] INTEGER (1..4), + periodicityFactor-r15 [1] ENUMERATED { n2(0), n4(1) } + } + } OPTIONAL -- Need OR + } +} + +AUL-Config-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + aul-CRNTI-r15 [0] C-RNTI, + aul-Subframes-r15 [1] BIT STRING (SIZE (40)), + aul-HARQ-Processes-r15 [2] INTEGER (1..16), + transmissionModeUL-AUL-r15 [3] ENUMERATED { tm1(0), tm2(1) }, + aul-StartingFullBW-InsideMCOT-r15 [4] BIT STRING (SIZE (5)), + aul-StartingFullBW-OutsideMCOT-r15 [5] BIT STRING (SIZE (7)), + aul-StartingPartialBW-InsideMCOT-r15 [6] ENUMERATED { o34(0), o43(1), + o52(2), o61(3), oOS1(4) }, + aul-StartingPartialBW-OutsideMCOT-r15 [7] ENUMERATED { o16(0), o25(1), + o34(2), o43(3), o52(4), o61(5), oOS1(6) }, + aul-RetransmissionTimer-r15 [8] ENUMERATED { psf4(0), psf5(1), psf6(2), + psf8(3), psf10(4), psf12(5), psf20(6), psf28(7), psf37(8), psf44(9), + psf68(10), psf84(11), psf100(12), psf116(13), psf132(14), psf164(15), + psf324(16) }, + endingSymbolAUL-r15 [9] INTEGER (12..13), + subframeOffsetCOT-Sharing-r15 [10] INTEGER (2..4), + contentionWindowSizeTimer-r15 [11] ENUMERATED { n0(0), n5(1), n10(2) } + } +} + +PUSCH-ModeConfigLAA-r15 ::= SEQUENCE { + laa-PUSCH-Mode1 [0] BOOLEAN, + laa-PUSCH-Mode2 [1] BOOLEAN, + laa-PUSCH-Mode3 [2] BOOLEAN +} + +LAA-SCellConfiguration-v1530 ::= SEQUENCE { + aul-Config-r15 [0] EXPLICIT AUL-Config-r15 OPTIONAL, -- Need ON + pusch-ModeConfigLAA-r15 [1] PUSCH-ModeConfigLAA-r15 OPTIONAL -- Need OR +} + +PUSCH-ConfigDedicatedScell-v1530 ::= SEQUENCE { + uci-OnPUSCH-r15 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + betaOffsetAUL-r15 [0] INTEGER (0..15) + } + } +} + +PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { +--DL configuration as well as configuration applicable for DL and UL + nonUL-Configuration-r10 [0] SEQUENCE { + antennaInfo-r10 [0] AntennaInfoDedicated-r10 OPTIONAL, -- Need ON + crossCarrierSchedulingConfig-r10 [1] CrossCarrierSchedulingConfig-r10 + OPTIONAL, -- Need ON + csi-RS-Config-r10 [2] CSI-RS-Config-r10 OPTIONAL, -- Need ON + pdsch-ConfigDedicated-r10 [3] PDSCH-ConfigDedicated OPTIONAL -- Need ON + } OPTIONAL, -- Cond SCellAdd +--UL configuration + ul-Configuration-r10 [1] SEQUENCE { + antennaInfoUL-r10 [0] AntennaInfoUL-r10 OPTIONAL, -- Need ON + pusch-ConfigDedicatedSCell-r10 [1] PUSCH-ConfigDedicatedSCell-r10 + OPTIONAL, -- Cond PUSCH-SCell1 + uplinkPowerControlDedicatedSCell-r10 [2] + UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON + cqi-ReportConfigSCell-r10 [3] CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-r10 [4] EXPLICIT + SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicated-v1020 [5] + SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON + soundingRS-UL-ConfigDedicatedAperiodic-r10 [6] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON + } OPTIONAL, + ..., + [[ + csi-RS-ConfigNZPToReleaseList-r11 [2] CSI-RS-ConfigNZPToReleaseList-r11 + OPTIONAL, + csi-RS-ConfigNZPToAddModList-r11 [3] CSI-RS-ConfigNZPToAddModList-r11 + OPTIONAL, + csi-RS-ConfigZPToReleaseList-r11 [4] CSI-RS-ConfigZPToReleaseList-r11 + OPTIONAL, + csi-RS-ConfigZPToAddModList-r11 [5] CSI-RS-ConfigZPToAddModList-r11 + OPTIONAL, + epdcch-Config-r11 [6] EPDCCH-Config-r11 OPTIONAL, + pdsch-ConfigDedicated-v1130 [7] PDSCH-ConfigDedicated-v1130 OPTIONAL, + cqi-ReportConfig-v1130 [8] CQI-ReportConfig-v1130 OPTIONAL, + pusch-ConfigDedicated-v1130 [9] PUSCH-ConfigDedicated-v1130 OPTIONAL, + uplinkPowerControlDedicatedSCell-v1130 [10] + UplinkPowerControlDedicated-v1130 OPTIONAL + ]], + [[ + antennaInfo-v1250 [11] AntennaInfoDedicated-v1250 OPTIONAL, + eimta-MainConfigSCell-r12 [12] EXPLICIT EIMTA-MainConfigServCell-r12 + OPTIONAL, + cqi-ReportConfigSCell-v1250 [13] CQI-ReportConfig-v1250 OPTIONAL, + uplinkPowerControlDedicatedSCell-v1250 [14] + UplinkPowerControlDedicated-v1250 OPTIONAL, + csi-RS-Config-v1250 [15] CSI-RS-Config-v1250 OPTIONAL + ]], + [[ + pdsch-ConfigDedicated-v1280 [16] PDSCH-ConfigDedicated-v1280 OPTIONAL + ]], + [[ + pucch-Cell-r13 [17] ENUMERATED { true(0) } OPTIONAL, + pucch-SCell [18] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pucch-ConfigDedicated-r13 [0] PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON + schedulingRequestConfig-r13 [1] EXPLICIT + SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON + tpc-PDCCH-ConfigPUCCH-SCell-r13 [2] EXPLICIT + TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON + pusch-ConfigDedicated-r13 [3] PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell + uplinkPowerControlDedicated-r13 [4] + UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON + } + } OPTIONAL, + crossCarrierSchedulingConfig-r13 [19] CrossCarrierSchedulingConfig-r13 + OPTIONAL, + pdcch-ConfigSCell-r13 [20] PDCCH-ConfigSCell-r13 OPTIONAL, + cqi-ReportConfig-v1310 [21] CQI-ReportConfig-v1310 OPTIONAL, + pdsch-ConfigDedicated-v1310 [22] PDSCH-ConfigDedicated-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicated-v1310 [23] EXPLICIT + SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicatedUpPTsExt-r13 [24] EXPLICIT + SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, + soundingRS-UL-ConfigDedicatedAperiodic-v1310 [25] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, + soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 [26] EXPLICIT + SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, + csi-RS-Config-v1310 [27] CSI-RS-Config-v1310 OPTIONAL, + laa-SCellConfiguration-r13 [28] LAA-SCellConfiguration-r13 OPTIONAL, + csi-RS-ConfigNZPToAddModListExt-r13 [29] + CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, + csi-RS-ConfigNZPToReleaseListExt-r13 [30] + CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL + ]], + [[ + cqi-ReportConfig-v1320 [31] CQI-ReportConfig-v1320 OPTIONAL + ]], + [[ + laa-SCellConfiguration-v1430 [32] LAA-SCellConfiguration-v1430 OPTIONAL, + typeB-SRS-TPC-PDCCH-Config-r14 [33] EXPLICIT SRS-TPC-PDCCH-Config-r14 + OPTIONAL, + uplinkPUSCH-LessPowerControlDedicated-v1430 [34] + UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, + soundingRS-UL-PeriodicConfigDedicatedList-r14 [35] SEQUENCE (SIZE (1..2) + ) OF SoundingRS-UL-ConfigDedicated OPTIONAL, + soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 [36] SEQUENCE ( + SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, + soundingRS-UL-AperiodicConfigDedicatedList-r14 [37] SEQUENCE (SIZE (1..2) + ) OF SoundingRS-AperiodicSet-r14 OPTIONAL, + soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 [38] SEQUENCE (SIZE (1..4) + ) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, + must-Config-r14 [39] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + k-max-r14 [0] ENUMERATED { l1(0), l3(1) }, + p-a-must-r14 [1] ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), + dB-1dot77(3), dB0(4), dB1(5), dB2(6), dB3(7) } OPTIONAL -- Need ON + } + } OPTIONAL, + pusch-ConfigDedicated-v1430 [40] PUSCH-ConfigDedicatedSCell-v1430 + OPTIONAL, + csi-RS-Config-v1430 [41] CSI-RS-Config-v1430 OPTIONAL, + csi-RS-ConfigZP-ApList-r14 [42] EXPLICIT CSI-RS-ConfigZP-ApList-r14 + OPTIONAL, + cqi-ReportConfig-v1430 [43] CQI-ReportConfig-v1430 OPTIONAL, + semiOpenLoop-r14 [44] BOOLEAN OPTIONAL, + pdsch-ConfigDedicatedSCell-v1430 [45] PDSCH-ConfigDedicatedSCell-v1430 + OPTIONAL + ]], + [[ + csi-RS-Config-v1480 [46] CSI-RS-Config-v1480 OPTIONAL + ]], + [[ + physicalConfigDedicatedSTTI-r15 [47] EXPLICIT + PhysicalConfigDedicatedSTTI-r15 OPTIONAL, + pdsch-ConfigDedicated-v1530 [48] PDSCH-ConfigDedicated-v1530 OPTIONAL, + dummy [49] CQI-ReportConfig-v1530 OPTIONAL, + cqi-ReportConfigSCell-r15 [50] CQI-ReportConfigSCell-r15 OPTIONAL, + cqi-ShortConfigSCell-r15 [51] EXPLICIT CQI-ShortConfigSCell-r15 OPTIONAL + , + csi-RS-Config-v1530 [52] CSI-RS-Config-v1530 OPTIONAL, + uplinkPowerControlDedicatedSCell-v1530 [53] + UplinkPowerControlDedicated-v1530 OPTIONAL, + laa-SCellConfiguration-v1530 [54] LAA-SCellConfiguration-v1530 OPTIONAL, + pusch-ConfigDedicated-v1530 [55] PUSCH-ConfigDedicatedScell-v1530 + OPTIONAL, + semiStaticCFI-Config-r15 [56] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + cfi-Config-r15 [0] CFI-Config-r15, + cfi-PatternConfig-r15 [1] CFI-PatternConfig-r15 + } + } OPTIONAL, + blindPDSCH-Repetition-Config-r15 [57] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + blindSubframePDSCH-Repetitions-r15 [0] BOOLEAN, + blindSlotSubslotPDSCH-Repetitions-r15 [1] BOOLEAN, + maxNumber-SubframePDSCH-Repetitions-r15 [2] ENUMERATED { n4(0), + n6(1) } OPTIONAL, -- Need ON + maxNumber-SlotSubslotPDSCH-Repetitions-r15 [3] ENUMERATED { n4(0), + n6(1) } OPTIONAL, -- Need ON + rv-SubframePDSCH-Repetitions-r15 [4] ENUMERATED { dlrvseq1(0), + dlrvseq2(1) } OPTIONAL, -- Need ON + rv-SlotsublotPDSCH-Repetitions-r15 [5] ENUMERATED { dlrvseq1(0), + dlrvseq2(1) } OPTIONAL, -- Need ON + numberOfProcesses-SubframePDSCH-Repetitions-r15 [6] INTEGER (1..16) + OPTIONAL, -- Need ON + numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15 [7] INTEGER (1..16) + OPTIONAL, -- Need ON + mcs-restrictionSubframePDSCH-Repetitions-r15 [8] ENUMERATED { n0(0) + , n1(1) } OPTIONAL, -- Need ON + mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 [9] ENUMERATED { + n0(0), n1(1) } OPTIONAL -- Need ON + } + } OPTIONAL + ]], + [[ + spucch-Config-v1550 [58] EXPLICIT SPUCCH-Config-v1550 OPTIONAL + ]], + [[ + soundingRS-UL-ConfigDedicatedAdd-r16 [59] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SoundingRS-UL-ConfigDedicatedAdd-r16 + } OPTIONAL, + uplinkPowerControlAddSRS-r16 [60] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT UplinkPowerControlAddSRS-r16 + } OPTIONAL, + soundingRS-VirtualCellID-r16 [61] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT SoundingRS-VirtualCellID-r16 + } OPTIONAL, + widebandPRG-r16 [62] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT WidebandPRG-r16 + } OPTIONAL + ]] +} + +MAC-MainConfigSCell-r11 ::= SEQUENCE { + stag-Id-r11 [0] STAG-Id-r11 OPTIONAL, + ... +} + +PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE { + pucch-SCell-v1370 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + pucch-ConfigDedicated-v1370 [0] PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5 + } + } +} + +CQI-ReportPeriodicSCell-v1730 ::= SEQUENCE { + cqi-pmi-ConfigIndex2Dormant-r17 [0] INTEGER (0..1023), + ri-ConfigIndex2Dormant-r17 [1] INTEGER (0..1023) OPTIONAL -- Need OR +} + +PhysicalConfigDedicatedSCell-v1730 ::= SEQUENCE { + cqi-ReportPeriodicSCell-v1730 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CQI-ReportPeriodicSCell-v1730 + } +} + +RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE { +--UE specific configuration extensions applicable for an SCell + physicalConfigDedicatedSCell-r10 [0] PhysicalConfigDedicatedSCell-r10 + OPTIONAL, + ..., + [[ + mac-MainConfigSCell-r11 [1] MAC-MainConfigSCell-r11 OPTIONAL + ]], + [[ + naics-Info-r12 [2] EXPLICIT NAICS-AssistanceInfo-r12 OPTIONAL + ]], + [[ + neighCellsCRS-InfoSCell-r13 [3] EXPLICIT NeighCellsCRS-Info-r13 OPTIONAL + ]], + [[ + physicalConfigDedicatedSCell-v1370 [4] PhysicalConfigDedicatedSCell-v1370 + OPTIONAL + ]], + [[ + crs-IntfMitigEnabled-r15 [5] BOOLEAN OPTIONAL, + neighCellsCRS-Info-r15 [6] EXPLICIT NeighCellsCRS-Info-r15 OPTIONAL, + sps-Config-v1530 [7] SPS-Config-v1530 OPTIONAL + ]], + [[ + physicalConfigDedicatedSCell-v1730 [8] PhysicalConfigDedicatedSCell-v1730 + OPTIONAL + ]] +} + +SCellToAddMod-r10 ::= SEQUENCE { + sCellIndex-r10 [0] SCellIndex-r10, + cellIdentification-r10 [1] SEQUENCE { + physCellId-r10 [0] PhysCellId, + dl-CarrierFreq-r10 [1] ARFCN-ValueEUTRA + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r10 [2] RadioResourceConfigCommonSCell-r10 + OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r10 [3] + RadioResourceConfigDedicatedSCell-r10 OPTIONAL, + ..., + [[ + dl-CarrierFreq-v1090 [4] ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ + antennaInfoDedicatedSCell-v10i0 [5] AntennaInfoDedicated-v10i0 OPTIONAL + ]], + [[ + srs-SwitchFromServCellIndex-r14 [6] INTEGER (0..31) OPTIONAL + ]], + [[ + sCellState-r15 [7] ENUMERATED { activated(0), dormant(1) } OPTIONAL + ]] +} + +SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10 + +PowerCoordinationInfo-r12 ::= SEQUENCE { + p-MeNB-r12 [0] INTEGER (1..16), + p-SeNB-r12 [1] INTEGER (1..16), + powerControlMode-r12 [2] INTEGER (1..2) +} + +DRB-ToAddModSCG-r12 ::= SEQUENCE { + drb-Identity-r12 [0] DRB-Identity, + drb-Type-r12 [1] EXPLICIT CHOICE { + split-r12 [0] NULL, + scg-r12 [1] SEQUENCE { + eps-BearerIdentity-r12 [0] INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup + pdcp-Config-r12 [1] PDCP-Config OPTIONAL -- Cond PDCP-S + } + } OPTIONAL, -- Cond SetupS2 + rlc-ConfigSCG-r12 [2] EXPLICIT RLC-Config OPTIONAL, -- Cond SetupS + rlc-Config-v1250 [3] RLC-Config-v1250 OPTIONAL, -- Need ON + logicalChannelIdentitySCG-r12 [4] INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS + logicalChannelConfigSCG-r12 [5] LogicalChannelConfig OPTIONAL, + ..., + [[ + rlc-Config-v1430 [6] EXPLICIT RLC-Config-v1430 OPTIONAL + ]], + [[ + logicalChannelIdentitySCG-r15 [7] INTEGER (32..38) OPTIONAL, + rlc-Config-v1530 [8] EXPLICIT RLC-Config-v1530 OPTIONAL, + rlc-BearerConfigSecondary-r15 [9] EXPLICIT RLC-BearerConfig-r15 OPTIONAL + ]], + [[ + rlc-Config-v1560 [10] RLC-Config-v1510 OPTIONAL + ]] +} + +DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12 + +RLF-TimersAndConstantsSCG-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + t313-r12 [0] ENUMERATED { ms0(0), ms50(1), ms100(2), ms200(3), ms500(4), + ms1000(5), ms2000(6) }, + n313-r12 [1] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n6(4), n8(5), + n10(6), n20(7) }, + n314-r12 [2] ENUMERATED { n1(0), n2(1), n3(2), n4(3), n5(4), n6(5), n8(6) + , n10(7) }, + ... + } +} + +DRB-ToAddModListSCG-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-ToAddModSCG-r12 + +SRB-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..2)) OF INTEGER (1..2) + +RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE { + drb-ToAddModListSCG-r12 [0] DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON + mac-MainConfigSCG-r12 [1] MAC-MainConfig OPTIONAL, -- Need ON + rlf-TimersAndConstantsSCG-r12 [2] EXPLICIT RLF-TimersAndConstantsSCG-r12 + OPTIONAL, + ..., + [[ + drb-ToAddModListSCG-r15 [3] DRB-ToAddModListSCG-r15 OPTIONAL + ]], + [[ + srb-ToAddModListSCG-r15 [4] SRB-ToAddModList OPTIONAL, + srb-ToReleaseListSCG-r15 [5] SRB-ToReleaseList-r15 OPTIONAL + ]], + [[ + drb-ToReleaseListSCG-r15 [6] DRB-ToReleaseList-r15 OPTIONAL + ]] +} + +UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE { +--For uplink power control the additional/ missing fields are signalled (compared to SCell) + deltaF-PUCCH-Format3-r12 [0] ENUMERATED { deltaF-1(0), deltaF0(1), + deltaF1(2), deltaF2(3), deltaF3(4), deltaF4(5), deltaF5(6), deltaF6(7) }, + deltaF-PUCCH-Format1bCS-r12 [1] ENUMERATED { deltaF1(0), deltaF2(1), + spare2(2), spare1(3) }, + p0-NominalPUCCH-r12 [2] INTEGER (-127..-96), + deltaFList-PUCCH-r12 [3] DeltaFList-PUCCH +} + +RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE { + basicFields-r12 [0] RadioResourceConfigCommonSCell-r10, + pucch-ConfigCommon-r12 [1] PUCCH-ConfigCommon, + rach-ConfigCommon-r12 [2] RACH-ConfigCommon, + uplinkPowerControlCommonPSCell-r12 [3] UplinkPowerControlCommonPSCell-r12, + ..., + [[ + uplinkPowerControlCommonPSCell-v1310 [4] UplinkPowerControlCommon-v1310 + OPTIONAL + ]], + [[ + uplinkPowerControlCommonPSCell-v1530 [5] UplinkPowerControlCommon-v1530 + OPTIONAL + ]] +} + +RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE { +--UE specific configuration extensions applicable for an PSCell + physicalConfigDedicatedPSCell-r12 [0] PhysicalConfigDedicated OPTIONAL, -- Need ON + sps-Config-r12 [1] SPS-Config OPTIONAL, -- Need ON + naics-Info-r12 [2] EXPLICIT NAICS-AssistanceInfo-r12 OPTIONAL, + ..., + [[ + neighCellsCRS-InfoPSCell-r13 [3] EXPLICIT NeighCellsCRS-Info-r13 OPTIONAL + ]], + [[ + sps-Config-v1430 [4] SPS-Config-v1430 OPTIONAL + ]], + [[ + sps-Config-v1530 [5] SPS-Config-v1530 OPTIONAL, + crs-IntfMitigEnabled-r15 [6] BOOLEAN OPTIONAL, + neighCellsCRS-Info-r15 [7] EXPLICIT NeighCellsCRS-Info-r15 OPTIONAL + ]], + [[ + sps-Config-v1540 [8] SPS-Config-v1540 OPTIONAL + ]] +} + +RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v1370 [0] PhysicalConfigDedicated-v1370 + OPTIONAL -- Need ON +} + +RadioResourceConfigDedicatedPSCell-v13c0 ::= SEQUENCE { + physicalConfigDedicatedPSCell-v13c0 [0] PhysicalConfigDedicated-v13c0 +} + +PSCellToAddMod-r12 ::= SEQUENCE { + sCellIndex-r12 [0] SCellIndex-r10, + cellIdentification-r12 [1] SEQUENCE { + physCellId-r12 [0] PhysCellId, + dl-CarrierFreq-r12 [1] ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonPSCell-r12 [2] RadioResourceConfigCommonPSCell-r12 + OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedPSCell-r12 [3] + RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, + ..., + [[ + antennaInfoDedicatedPSCell-v1280 [4] AntennaInfoDedicated-v10i0 OPTIONAL + ]], + [[ + sCellIndex-r13 [5] SCellIndex-r13 OPTIONAL + ]], + [[ + radioResourceConfigDedicatedPSCell-v1370 [6] + RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL + ]], + [[ + radioResourceConfigDedicatedPSCell-v13c0 [7] + RadioResourceConfigDedicatedPSCell-v13c0 OPTIONAL + ]] +} + +MobilityControlInfoSCG-r12 ::= SEQUENCE { + t307-r12 [0] ENUMERATED { ms50(0), ms100(1), ms150(2), ms200(3), ms500(4), + ms1000(5), ms2000(6), spare1(7) }, + ue-IdentitySCG-r12 [1] C-RNTI OPTIONAL, -- Cond SCGEst + rach-ConfigDedicated-r12 [2] RACH-ConfigDedicated OPTIONAL, -- Need OP + cipheringAlgorithmSCG-r12 [3] CipheringAlgorithm-r12 OPTIONAL, + ..., + [[ + makeBeforeBreakSCG-r14 [4] ENUMERATED { true(0) } OPTIONAL, + rach-SkipSCG-r14 [5] RACH-Skip-r14 OPTIONAL + ]] +} + +SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13 + +SCellToAddModExt-r13 ::= SEQUENCE { + sCellIndex-r13 [0] SCellIndex-r13, + cellIdentification-r13 [1] SEQUENCE { + physCellId-r13 [0] PhysCellId, + dl-CarrierFreq-r13 [1] ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r13 [2] RadioResourceConfigCommonSCell-r10 + OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r13 [3] + RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r13 [4] AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13 + +RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE { + ul-Configuration-v1440 [0] SEQUENCE { + ul-FreqInfo-v1440 [0] SEQUENCE { + additionalSpectrumEmissionSCell-v1440 [0] + AdditionalSpectrumEmission-v10l0 + } + } +} + +RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE { + basicFields-v1440 [0] RadioResourceConfigCommonSCell-v1440 +} + +PSCellToAddMod-v1440 ::= SEQUENCE { + radioResourceConfigCommonPSCell-r14 [0] + RadioResourceConfigCommonPSCell-v1440 OPTIONAL +} + +SCellGroupToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxSCellGroups-r15)) OF SCellGroupIndex-r15 + +SCellConfigCommon-r15 ::= SEQUENCE { + radioResourceConfigCommonSCell-r15 [0] RadioResourceConfigCommonSCell-r10 + OPTIONAL, -- Need ON + radioResourceConfigDedicatedSCell-r15 [1] + RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Need ON + antennaInfoDedicatedSCell-r15 [2] AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON +} + +SCellGroupToAddMod-r15 ::= SEQUENCE { + sCellGroupIndex-r15 [0] SCellGroupIndex-r15, + sCellConfigCommon-r15 [1] SCellConfigCommon-r15 OPTIONAL, -- Need ON + sCellToReleaseList-r15 [2] SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModList-r15 [3] SCellToAddModListExt-r13 OPTIONAL -- Need ON +} + +SCellGroupToAddModList-r15 ::= SEQUENCE (SIZE (1..maxSCellGroups-r15)) OF SCellGroupToAddMod-r15 + +TDM-PatternConfig-r15 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + subframeAssignment-r15 [0] SubframeAssignment-r15, + harq-Offset-r15 [1] INTEGER (0..9) + } +} + +SCG-ConfigPartSCG-r12 ::= SEQUENCE { + radioResourceConfigDedicatedSCG-r12 [0] RadioResourceConfigDedicatedSCG-r12 + OPTIONAL, -- Need ON + sCellToReleaseListSCG-r12 [1] SCellToReleaseList-r10 OPTIONAL, -- Need ON + pSCellToAddMod-r12 [2] PSCellToAddMod-r12 OPTIONAL, -- Need ON + sCellToAddModListSCG-r12 [3] SCellToAddModList-r10 OPTIONAL, -- Need ON + mobilityControlInfoSCG-r12 [4] MobilityControlInfoSCG-r12 OPTIONAL, + ..., + [[ + sCellToReleaseListSCG-Ext-r13 [5] SCellToReleaseListExt-r13 OPTIONAL, + sCellToAddModListSCG-Ext-r13 [6] SCellToAddModListExt-r13 OPTIONAL + ]], + [[ + sCellToAddModListSCG-Ext-v1370 [7] SCellToAddModListExt-v1370 OPTIONAL + ]], + [[ + pSCellToAddMod-v1440 [8] PSCellToAddMod-v1440 OPTIONAL + ]], + [[ + sCellGroupToReleaseListSCG-r15 [9] SCellGroupToReleaseList-r15 OPTIONAL, + sCellGroupToAddModListSCG-r15 [10] SCellGroupToAddModList-r15 OPTIONAL + ]], + [[ + measConfigSN-r15 [11] MeasConfig OPTIONAL, + tdm-PatternConfigNE-DC-r15 [12] EXPLICIT TDM-PatternConfig-r15 OPTIONAL + ]], + [[ + p-MaxEUTRA-r15 [13] P-Max OPTIONAL + ]] +} + +SCG-Configuration-r12 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + scg-ConfigPartMCG-r12 [0] SEQUENCE { + scg-Counter-r12 [0] INTEGER (0..65535) OPTIONAL, -- Need ON + powerCoordinationInfo-r12 [1] PowerCoordinationInfo-r12 OPTIONAL, + ... + } OPTIONAL, -- Need ON + scg-ConfigPartSCG-r12 [1] SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON + } +} + +SL-SyncTxControl-r12 ::= SEQUENCE { + networkControlledSyncTx-r12 [0] ENUMERATED { on(0), off(1) } OPTIONAL -- Need OP +} + +SL-TF-IndexPair-r12 ::= SEQUENCE { + discSF-Index-r12 [0] INTEGER (1..200) OPTIONAL, -- Need ON + discPRB-Index-r12 [1] INTEGER (1..50) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12 + +SL-HoppingConfigDisc-r12 ::= SEQUENCE { + a-r12 [0] INTEGER (1..200), + b-r12 [1] INTEGER (1..10), + c-r12 [2] ENUMERATED { n1(0), n5(1) } +} + +SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12 + +SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 [0] SL-TxPoolIdentity-r12, + pool-r12 [1] SL-DiscResourcePool-r12 +} + +SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF + SL-DiscTxPoolToAddMod-r12 + +SL-TF-IndexPair-r12b ::= SEQUENCE { + discSF-Index-r12b [0] INTEGER (0..209) OPTIONAL, -- Need ON + discPRB-Index-r12b [1] INTEGER (0..49) OPTIONAL -- Need ON +} + +SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b + +SL-DiscTxConfigScheduled-r13 ::= SEQUENCE { + discTxConfig-r13 [0] SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r13 [1] SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON + discHoppingConfig-r13 [2] SL-HoppingConfigDisc-r12 OPTIONAL, + ... +} + +SL-DiscTxPoolDedicated-r13 ::= SEQUENCE { + poolToReleaseList-r13 [0] SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r13 [1] SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON +} + +SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE { + pCell [0] NULL, + sCell [1] SCellIndex-r10 +} + +SL-DiscTxResource-r13 ::= CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-r13 [0] SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 [1] SL-DiscTxPoolDedicated-r13 + } +} + +SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE { + discTxCarrierFreq-r13 [0] ARFCN-ValueEUTRA-r9, + discTxResources-r13 [1] EXPLICIT SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxResourcesPS-r13 [2] EXPLICIT SL-DiscTxResource-r13 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 [3] EXPLICIT SL-DiscTxRefCarrierDedicated-r13 + OPTIONAL, -- Need OR + discCellSelectionInfo-r13 [4] CellSelectionInfoNFreq-r13 OPTIONAL, + ... +} + +SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE { + discTxFreqToAddModList-r13 [0] SEQUENCE (SIZE (1..maxFreq)) OF + SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON + discTxFreqToReleaseList-r13 [1] SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 + OPTIONAL, + ... +} + +SL-GapPattern-r13 ::= SEQUENCE { + gapPeriod-r13 [0] ENUMERATED { sf40(0), sf60(1), sf70(2), sf80(3), sf120(4) + , sf140(5), sf160(6), sf240(7), sf280(8), sf320(9), sf640(10), sf1280(11) + , sf2560(12), sf5120(13), sf10240(14) }, + gapOffset-r12 [1] EXPLICIT SL-OffsetIndicator-r12, + gapSubframeBitmap-r13 [2] BIT STRING (SIZE (1..10240)), + ... +} + +SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13 + +SL-GapConfig-r13 ::= SEQUENCE { + gapPatternList-r13 [0] SL-GapPatternList-r13 +} + +SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF + ARFCN-ValueEUTRA-r9 + +SL-DiscConfig-r12 ::= SEQUENCE { + discTxResources-r12 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-r12 [0] SEQUENCE { + discTxConfig-r12 [0] SL-DiscResourcePool-r12 OPTIONAL, -- Need ON + discTF-IndexList-r12 [1] SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON + discHoppingConfig-r12 [2] SL-HoppingConfigDisc-r12 OPTIONAL + -- Need ON + }, + ue-Selected-r12 [1] SEQUENCE { + discTxPoolDedicated-r12 [0] SEQUENCE { + poolToReleaseList-r12 [0] SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 [1] SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON + } OPTIONAL -- Need ON + } + } + } OPTIONAL, + ..., + [[ + discTF-IndexList-v1260 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + discTF-IndexList-r12b [0] SL-TF-IndexPairList-r12b + } + } OPTIONAL + ]], + [[ + discTxResourcesPS-r13 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-r13 [0] SL-DiscTxConfigScheduled-r13, + ue-Selected-r13 [1] SEQUENCE { + discTxPoolPS-Dedicated-r13 [0] SL-DiscTxPoolDedicated-r13 + } + } + } OPTIONAL, + discTxInterFreqInfo-r13 [3] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + discTxCarrierFreq-r13 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR + discTxRefCarrierDedicated-r13 [1] EXPLICIT + SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR + discTxInfoInterFreqListAdd-r13 [2] + SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON + } + } OPTIONAL, + gapRequestsAllowedDedicated-r13 [4] BOOLEAN OPTIONAL, + discRxGapConfig-r13 [5] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SL-GapConfig-r13 + } OPTIONAL, + discTxGapConfig-r13 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SL-GapConfig-r13 + } OPTIONAL, + discSysInfoToReportConfig-r13 [7] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SL-DiscSysInfoToReportFreqList-r13 + } OPTIONAL + ]] +} + +MAC-MainConfigSL-r12 ::= SEQUENCE { + periodic-BSR-TimerSL [0] PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON + retx-BSR-TimerSL [1] RetxBSR-Timer-r12 +} + +SL-CommTxPoolToAddMod-r12 ::= SEQUENCE { + poolIdentity-r12 [0] SL-TxPoolIdentity-r12, + pool-r12 [1] SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF + SL-CommTxPoolToAddMod-r12 + +LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13 + +SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF + SL-TxPoolIdentity-v1310 + +SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE { + poolIdentity-v1310 [0] SL-TxPoolIdentity-v1310, + pool-r13 [1] SL-CommResourcePool-r12 +} + +SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF + SL-CommTxPoolToAddModExt-r13 + +SL-CommConfig-r12 ::= SEQUENCE { + commTxResources-r12 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-r12 [0] SEQUENCE { + sl-RNTI-r12 [0] C-RNTI, + mac-MainConfig-r12 [1] MAC-MainConfigSL-r12, + sc-CommTxConfig-r12 [2] SL-CommResourcePool-r12, + mcs-r12 [3] INTEGER (0..28) OPTIONAL -- Need OP + }, + ue-Selected-r12 [1] SEQUENCE { +--Pool for normal usage + commTxPoolNormalDedicated-r12 [0] SEQUENCE { + poolToReleaseList-r12 [0] SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON + poolToAddModList-r12 [1] SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON + } + } + } + } OPTIONAL, + ..., + [[ + commTxResources-v1310 [1] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-v1310 [0] SEQUENCE { + logicalChGroupInfoList-r13 [0] LogicalChGroupInfoList-r13, + multipleTx-r13 [1] BOOLEAN + }, + ue-Selected-v1310 [1] SEQUENCE { + commTxPoolNormalDedicatedExt-r13 [0] SEQUENCE { + poolToReleaseListExt-r13 [0] SL-TxPoolToReleaseListExt-r13 + OPTIONAL, -- Need ON + poolToAddModListExt-r13 [1] SL-CommTxPoolToAddModListExt-r13 + OPTIONAL -- Need ON + } + } + } + } OPTIONAL, + commTxAllowRelayDedicated-r13 [2] BOOLEAN OPTIONAL + ]] +} + +WLAN-SuspendConfig-r14 ::= SEQUENCE { + wlan-SuspendResumeAllowed-r14 [0] BOOLEAN OPTIONAL, -- Need ON + wlan-SuspendTriggersStatusReport-r14 [1] BOOLEAN OPTIONAL -- Need ON +} + +WLAN-MobilityConfig-r13 ::= SEQUENCE { + wlan-ToReleaseList-r13 [0] WLAN-Id-List-r13 OPTIONAL, -- Need ON + wlan-ToAddList-r13 [1] WLAN-Id-List-r13 OPTIONAL, -- Need ON + associationTimer-r13 [2] ENUMERATED { s10(0), s30(1), s60(2), s120(3), + s240(4) } OPTIONAL, -- Need OR + successReportRequested-r13 [3] ENUMERATED { true(0) } OPTIONAL, + ..., + [[ + wlan-SuspendConfig-r14 [4] WLAN-SuspendConfig-r14 OPTIONAL + ]] +} + +LWA-Config-r13 ::= SEQUENCE { + lwa-MobilityConfig-r13 [0] WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + lwa-WT-Counter-r13 [1] INTEGER (0..65535) OPTIONAL, + ..., + [[ + wt-MAC-Address-r14 [2] OCTET STRING (SIZE (6)) OPTIONAL + ]] +} + +LWA-Configuration-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + lwa-Config-r13 [0] LWA-Config-r13 + } +} + +IP-Address-r13 ::= CHOICE { + ipv4-r13 [0] BIT STRING (SIZE (32)), + ipv6-r13 [1] BIT STRING (SIZE (128)) +} + +IKE-Identity-r13 ::= SEQUENCE { + idI-r13 [0] OCTET STRING +} + +TunnelConfigLWIP-r13 ::= SEQUENCE { + ip-Address-r13 [0] EXPLICIT IP-Address-r13, + ike-Identity-r13 [1] IKE-Identity-r13, + ..., + [[ + lwip-Counter-r13 [2] INTEGER (0..65535) OPTIONAL + ]] +} + +LWIP-Config-r13 ::= SEQUENCE { + lwip-MobilityConfig-r13 [0] WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON + tunnelConfigLWIP-r13 [1] TunnelConfigLWIP-r13 OPTIONAL, + ... +} + +LWIP-Configuration-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + lwip-Config-r13 [0] LWIP-Config-r13 + } +} + +RCLWI-Config-r13 ::= SEQUENCE { + command [0] EXPLICIT CHOICE { + steerToWLAN-r13 [0] SEQUENCE { + mobilityConfig-r13 [0] WLAN-Id-List-r12 + }, + steerToLTE-r13 [1] NULL + }, + ... +} + +RCLWI-Configuration-r13 ::= CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + rclwi-Config-r13 [0] RCLWI-Config-r13 + } +} + +SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF + SL-V2X-TxPoolIdentity-r14 + +SL-TxPoolToAddMod-r14 ::= SEQUENCE { + poolIdentity-r14 [0] SL-V2X-TxPoolIdentity-r14, + pool-r14 [1] SL-CommResourcePoolV2X-r14 +} + +SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14 + +SL-ReliabilityList-r15 ::= SEQUENCE (SIZE (1..maxSL-Reliability-r15)) OF SL-Reliability-r15 + +LogicalChGroupInfoList-v1530 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-ReliabilityList-r15 + + +SL-V2X-ConfigDedicated-r14 ::= SEQUENCE { + commTxResources-r14 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-r14 [0] SEQUENCE { + sl-V-RNTI-r14 [0] C-RNTI, + mac-MainConfig-r14 [1] MAC-MainConfigSL-r12, + v2x-SchedulingPool-r14 [2] SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON + mcs-r14 [3] INTEGER (0..31) OPTIONAL, -- Need OR + logicalChGroupInfoList-r14 [4] LogicalChGroupInfoList-r13 + }, + ue-Selected-r14 [1] SEQUENCE { +--Pool for normal usage + v2x-CommTxPoolNormalDedicated-r14 [0] SEQUENCE { + poolToReleaseList-r14 [0] SL-TxPoolToReleaseListV2X-r14 OPTIONAL + , -- Need ON + poolToAddModList-r14 [1] SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON + v2x-CommTxPoolSensingConfig-r14 [2] + SL-CommTxPoolSensingConfig-r14 OPTIONAL + -- Need ON + } + } + } + } OPTIONAL, -- Need ON + v2x-InterFreqInfoList-r14 [1] SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON + thresSL-TxPrioritization-r14 [2] SL-Priority-r13 OPTIONAL, -- Need OR + typeTxSync-r14 [3] SL-TypeTxSync-r14 OPTIONAL, -- Need OR + cbr-DedicatedTxConfigList-r14 [4] SL-CBR-CommonTxConfigList-r14 OPTIONAL, + ..., + [[ + commTxResources-v1530 [5] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT CHOICE { + scheduled-v1530 [0] SEQUENCE { + logicalChGroupInfoList-v1530 [0] LogicalChGroupInfoList-v1530 + OPTIONAL, -- Need OR + mcs-r15 [1] INTEGER (0..31) OPTIONAL -- Need OR + }, + ue-Selected-v1530 [1] SEQUENCE { + v2x-FreqSelectionConfigList-r15 [0] + SL-V2X-FreqSelectionConfigList-r15 OPTIONAL --Need OR + } + } + } OPTIONAL, + v2x-PacketDuplicationConfig-r15 [6] SL-V2X-PacketDuplicationConfig-r15 + OPTIONAL, + syncFreqList-r15 [7] SL-V2X-SyncFreqList-r15 OPTIONAL, + slss-TxMultiFreq-r15 [8] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + slss-TxDisabled-r15 [9] ENUMERATED { true(0) } OPTIONAL + ]] +} + +SCellToAddModExt-v1430 ::= SEQUENCE { + srs-SwitchFromServCellIndex-r14 [0] INTEGER (0..31) OPTIONAL, + ..., + [[ + sCellState-r15 [1] ENUMERATED { activated(0), dormant(1) } OPTIONAL + ]] +} + +SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430 + +SecurityConfigHO-v1530 ::= SEQUENCE { + handoverType-v1530 [0] EXPLICIT CHOICE { + intra5GC [0] SEQUENCE { + securityAlgorithmConfig-r15 [0] SecurityAlgorithmConfig OPTIONAL, -- Cond HO-toEUTRA + keyChangeIndicator-r15 [1] BOOLEAN, + nextHopChainingCount-r15 [2] NextHopChainingCount, + nas-Container-r15 [3] OCTET STRING OPTIONAL -- Need ON + }, + fivegc-ToEPC [1] SEQUENCE { + securityAlgorithmConfig-r15 [0] SecurityAlgorithmConfig, + nextHopChainingCount-r15 [1] NextHopChainingCount + }, + epc-To5GC [2] SEQUENCE { + securityAlgorithmConfig-r15 [0] SecurityAlgorithmConfig, + nas-Container-r15 [1] OCTET STRING + } + }, + ... +} + +CondReconfigurationAddMod-r16 ::= SEQUENCE { + condReconfigurationId-r16 [0] CondReconfigurationId-r16, + triggerCondition-r16 [1] SEQUENCE (SIZE (1..2)) OF MeasId OPTIONAL, + -- Need ON + condReconfigurationToApply-r16 [2] OCTET STRING (CONTAINING + RRCConnectionReconfiguration) OPTIONAL, + ..., + [[ + triggerConditionSN-r17 [3] OCTET STRING OPTIONAL + ]] +} + +CondReconfigurationToAddModList-r16 ::= SEQUENCE (SIZE (1..maxCondConfig-r16)) OF + CondReconfigurationAddMod-r16 + +CondReconfigurationToRemoveList-r16 ::= SEQUENCE (SIZE (1..maxCondConfig-r16)) OF + CondReconfigurationId-r16 + +ConditionalReconfiguration-r16 ::= SEQUENCE { + condReconfigurationToAddModList-r16 [0] CondReconfigurationToAddModList-r16 + OPTIONAL, -- Need ON + condReconfigurationToRemoveList-r16 [1] CondReconfigurationToRemoveList-r16 + OPTIONAL, -- Need ON + attemptCondReconf-r16 [2] ENUMERATED { true(0) } OPTIONAL, + ... +} + +RRCConnectionReconfiguration-v1700-IEs ::= SEQUENCE { + systemInformationBlockType31Dedicated-r17 [0] OCTET STRING (CONTAINING + SystemInformationBlockType31-r17) OPTIONAL, -- Cond NTN + scg-State-r17 [1] ENUMERATED { deactivated(0) } OPTIONAL, -- Need OP + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReconfiguration-v1610-IEs ::= SEQUENCE { + conditionalReconfiguration-r16 [0] ConditionalReconfiguration-r16 OPTIONAL, -- Need ON + daps-SourceRelease-r16 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + tdm-PatternConfig2-r16 [2] EXPLICIT TDM-PatternConfig-r15 OPTIONAL, -- Need ON + sl-ConfigDedicatedForNR-r16 [3] OCTET STRING OPTIONAL, -- Need OR + sl-SSB-PriorityEUTRA-r16 [4] INTEGER (1..8) OPTIONAL, -- Need OR + nonCriticalExtension [5] RRCConnectionReconfiguration-v1700-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1530-IEs ::= SEQUENCE { + securityConfigHO-v1530 [0] SecurityConfigHO-v1530 OPTIONAL, -- Cond HO-5GC + sCellGroupToReleaseList-r15 [1] SCellGroupToReleaseList-r15 OPTIONAL, -- Need ON + sCellGroupToAddModList-r15 [2] SCellGroupToAddModList-r15 OPTIONAL, -- Need ON + dedicatedInfoNASList-r15 [3] SEQUENCE (SIZE (1..maxDRB-r15)) OF DedicatedInfoNAS + OPTIONAL, -- Cond nonHO + p-MaxUE-FR1-r15 [4] P-Max OPTIONAL, -- Need OR + smtc-r15 [5] MTC-SSB-NR-r15 OPTIONAL, -- Need OP + nonCriticalExtension [6] RRCConnectionReconfiguration-v1610-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE { + nr-Config-r15 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + endc-ReleaseAndAdd-r15 [0] BOOLEAN, + nr-SecondaryCellGroupConfig-r15 [1] OCTET STRING OPTIONAL, -- Need ON + p-MaxEUTRA-r15 [2] P-Max OPTIONAL -- Need ON + } + } OPTIONAL, -- Need ON + sk-Counter-r15 [1] INTEGER (0..65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 [2] OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 [3] OCTET STRING OPTIONAL, -- Need ON + tdm-PatternConfig-r15 [4] EXPLICIT TDM-PatternConfig-r15 OPTIONAL, -- Cond FDD-PCell + nonCriticalExtension [5] RRCConnectionReconfiguration-v1530-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE { + sl-V2X-ConfigDedicated-r14 [0] SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON + sCellToAddModListExt-v1430 [1] SCellToAddModListExt-v1430 OPTIONAL, -- Need ON + perCC-GapIndicationRequest-r14 [2] ENUMERATED { true(0) } OPTIONAL, -- Need ON + systemInformationBlockType2Dedicated-r14 [3] OCTET STRING (CONTAINING + SystemInformationBlockType2) OPTIONAL, -- Cond nonHO + nonCriticalExtension [4] RRCConnectionReconfiguration-v1510-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE { + sCellToReleaseListExt-r13 [0] SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellToAddModListExt-r13 [1] SCellToAddModListExt-r13 OPTIONAL, -- Need ON + lwa-Configuration-r13 [2] EXPLICIT LWA-Configuration-r13 OPTIONAL, -- Need ON + lwip-Configuration-r13 [3] EXPLICIT LWIP-Configuration-r13 OPTIONAL, -- Need ON + rclwi-Configuration-r13 [4] EXPLICIT RCLWI-Configuration-r13 OPTIONAL, -- Need ON + nonCriticalExtension [5] RRCConnectionReconfiguration-v1430-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE { + wlan-OffloadInfo-r12 [0] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + wlan-OffloadConfigDedicated-r12 [0] WLAN-OffloadConfig-r12, + t350-r12 [1] ENUMERATED { min5(0), min10(1), min20(2), min30(3), + min60(4), min120(5), min180(6), spare1(7) } OPTIONAL -- Need OR + } + } OPTIONAL, -- Need ON + scg-Configuration-r12 [1] EXPLICIT SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig + sl-SyncTxControl-r12 [2] SL-SyncTxControl-r12 OPTIONAL, -- Need ON + sl-DiscConfig-r12 [3] SL-DiscConfig-r12 OPTIONAL, -- Need ON + sl-CommConfig-r12 [4] SL-CommConfig-r12 OPTIONAL, -- Need ON + nonCriticalExtension [5] RRCConnectionReconfiguration-v1310-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE { + systemInformationBlockType1Dedicated-r11 [0] OCTET STRING (CONTAINING + SystemInformationBlockType1) OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionReconfiguration-v1250-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE { + sCellToReleaseList-r10 [0] SCellToReleaseList-r10 OPTIONAL, -- Need ON + sCellToAddModList-r10 [1] SCellToAddModList-r10 OPTIONAL, -- Need ON + nonCriticalExtension [2] RRCConnectionReconfiguration-v1130-IEs OPTIONAL +} + +-- Regular non-critical extensions: +RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE { + otherConfig-r9 [0] OtherConfig-r9 OPTIONAL, -- Need ON + fullConfig-r9 [1] ENUMERATED { true(0) } OPTIONAL, -- Cond HO-Reestab + nonCriticalExtension [2] RRCConnectionReconfiguration-v1020-IEs OPTIONAL +} + +RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfiguration-v920-IEs OPTIONAL +} + +RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE { + measConfig [0] MeasConfig OPTIONAL, -- Need ON + mobilityControlInfo [1] MobilityControlInfo OPTIONAL, -- Cond HO + dedicatedInfoNASList [2] SEQUENCE (SIZE (1..maxDRB)) OF DedicatedInfoNAS OPTIONAL, -- Cond nonHO + radioResourceConfigDedicated [3] RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA + securityConfigHO [4] SecurityConfigHO OPTIONAL, -- Cond HO-toEPC + nonCriticalExtension [5] RRCConnectionReconfiguration-v890-IEs OPTIONAL +} + +RRCConnectionReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionReconfiguration-r8 [0] + RRCConnectionReconfiguration-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +CarrierInfoNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + subcarrierSpacingSSB-r15 [1] ENUMERATED { kHz15(0), kHz30(1), kHz120(2), + kHz240(3) }, + smtc-r15 [2] MTC-SSB-NR-r15 OPTIONAL -- Need OP +} + +CarrierInfoNR-r17 ::= SEQUENCE { + carrierFreq-r17 [0] ARFCN-ValueNR-r15, + subcarrierSpacingSSB-r17 [1] ENUMERATED { kHz15(0), kHz30(1), kHz120(2), + kHz240(3), kHz480(4), spare1(5) }, + smtc-r17 [2] MTC-SSB-NR-r15 OPTIONAL -- Need OP +} + +RedirectedCarrierInfo ::= CHOICE { + eutra [0] ARFCN-ValueEUTRA, + geran [1] CarrierFreqsGERAN, + utra-FDD [2] ARFCN-ValueUTRA, + utra-TDD [3] ARFCN-ValueUTRA, + cdma2000-HRPD [4] CarrierFreqCDMA2000, + cdma2000-1xRTT [5] CarrierFreqCDMA2000, + ..., + utra-TDD-r10 [6] CarrierFreqListUTRA-TDD-r10, + nr-r15 [7] CarrierInfoNR-r15, + nr-r17 [8] CarrierInfoNR-r17 +} + +RedirectedCarrierInfo-v9e0 ::= SEQUENCE { + eutra-v9e0 [0] ARFCN-ValueEUTRA-v9e0 +} + +-- Late non critical extensions +RRCConnectionRelease-v9e0-IEs ::= SEQUENCE { + redirectedCarrierInfo-v9e0 [0] RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8 + idleModeMobilityControlInfo-v9e0 [1] IdleModeMobilityControlInfo-v9e0 + OPTIONAL, -- Cond IdleInfoEUTRA + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +CellInfoGERAN-r9 ::= SEQUENCE { + physCellId-r9 [0] PhysCellIdGERAN, + carrierFreq-r9 [1] CarrierFreqGERAN, + systemInformation-r9 [2] SystemInfoListGERAN +} + +CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9 + +CellInfoUTRA-FDD-r9 ::= SEQUENCE { + physCellId-r9 [0] PhysCellIdUTRA-FDD, + utra-BCCH-Container-r9 [1] OCTET STRING +} + +CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9 + +CellInfoUTRA-TDD-r9 ::= SEQUENCE { + physCellId-r9 [0] PhysCellIdUTRA-TDD, + utra-BCCH-Container-r9 [1] OCTET STRING +} + +CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9 + +CellInfoUTRA-TDD-r10 ::= SEQUENCE { + physCellId-r10 [0] PhysCellIdUTRA-TDD, + carrierFreq-r10 [1] ARFCN-ValueUTRA, + utra-BCCH-Container-r10 [2] OCTET STRING +} + +CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10 + +ValidityCellList-r16 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF PhysCellIdRange + +ValidityArea-r16 ::= SEQUENCE { + carrierFreq-r16 [0] ARFCN-ValueEUTRA-r9, + validityCellList-r16 [1] ValidityCellList-r16 OPTIONAL -- Need ON +} + +ValidityAreaList-r16 ::= SEQUENCE (SIZE (1..maxFreqIdle-r15)) OF ValidityArea-r16 + +MeasIdleConfigDedicated-r15 ::= SEQUENCE { + measIdleCarrierListEUTRA-r15 [0] EUTRA-CarrierList-r15 OPTIONAL, -- Need OR + measIdleDuration-r15 [1] ENUMERATED { sec10(0), sec30(1), sec60(2), + sec120(3), sec180(4), sec240(5), sec300(6), spare(7) }, + ..., + [[ + measIdleCarrierListNR-r16 [2] NR-CarrierList-r16 OPTIONAL, + validityAreaList-r16 [3] ValidityAreaList-r16 OPTIONAL + ]] +} + +PLMN-RAN-AreaCell-r15 ::= SEQUENCE { + plmn-Identity-r15 [0] PLMN-Identity OPTIONAL, + ran-AreaCells-r15 [1] SEQUENCE (SIZE (1..32)) OF CellIdentity +} + +PLMN-RAN-AreaCellList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r15)) OF PLMN-RAN-AreaCell-r15 + +RAN-AreaConfig-r15 ::= SEQUENCE { + trackingAreaCode-5GC-r15 [0] TrackingAreaCode-5GC-r15, + ran-AreaCodeList-r15 [1] SEQUENCE (SIZE (1..32)) OF RAN-AreaCode-r15 OPTIONAL --Need OR +} + +PLMN-RAN-AreaConfig-r15 ::= SEQUENCE { + plmn-Identity-r15 [0] PLMN-Identity OPTIONAL, + ran-Area-r15 [1] SEQUENCE (SIZE (1..16)) OF RAN-AreaConfig-r15 +} + +PLMN-RAN-AreaConfigList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r15)) OF PLMN-RAN-AreaConfig-r15 + + +RAN-NotificationAreaInfo-r15 ::= CHOICE { + cellList [0] PLMN-RAN-AreaCellList-r15, + ran-AreaConfigList [1] PLMN-RAN-AreaConfigList-r15 +} + +RRC-InactiveConfig-r15 ::= SEQUENCE { + fullI-RNTI-r15 [0] I-RNTI-r15, + shortI-RNTI-r15 [1] ShortI-RNTI-r15, + ran-PagingCycle-r15 [2] ENUMERATED { rf32(0), rf64(1), rf128(2), rf256(3) } + OPTIONAL, --Need OR + ran-NotificationAreaInfo-r15 [3] EXPLICIT RAN-NotificationAreaInfo-r15 + OPTIONAL, --Need ON + periodic-RNAU-timer-r15 [4] ENUMERATED { min5(0), min10(1), min20(2), + min30(3), min60(4), min120(5), min360(6), min720(7) } OPTIONAL, --Need OR + nextHopChainingCount-r15 [5] NextHopChainingCount OPTIONAL, --Cond INACTIVE + dummy [6] SEQUENCE { + + } OPTIONAL +} + +PUR-PeriodicityAndOffset-r16 ::= CHOICE { + periodicity8 [0] INTEGER (1..7), + periodicity16 [1] INTEGER (1..15), + periodicity32 [2] INTEGER (1..31), + periodicity64 [3] INTEGER (1..63), + periodicity128 [4] INTEGER (1..127), + periodicity256 [5] INTEGER (1..255), + periodicity512 [6] INTEGER (1..511), + periodicity1024 [7] INTEGER (1..1023), + periodicity2048 [8] INTEGER (1..2047), + periodicity4096 [9] INTEGER (1..4095), + periodicity8192 [10] INTEGER (1..8191) +} + +PUR-RSRP-ChangeThreshold-r16 ::= SEQUENCE { + increaseThresh-r16 [0] RSRP-ChangeThresh-r16, + decreaseThresh-r16 [1] RSRP-ChangeThresh-r16 OPTIONAL --Need OP +} + +PUR-MPDCCH-Config-r16 ::= SEQUENCE { + mpdcch-FreqHopping-r16 [0] BOOLEAN, + mpdcch-Narrowband-r16 [1] INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-PRB-PairsConfig-r16 [2] SEQUENCE { + numberPRB-Pairs-r16 [0] ENUMERATED { n2(0), n4(1), n6(2), spare1(3) }, + resourceBlockAssignment-r16 [1] BIT STRING (SIZE (4)) + }, + mpdcch-NumRepetition-r16 [3] ENUMERATED { r1(0), r2(1), r4(2), r8(3), r16(4) + , r32(5), r64(6), r128(7), r256(8) }, + mpdcch-StartSF-UESS-r16 [4] EXPLICIT CHOICE { + fdd [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), v4(4), v5(5), + v8(6), v10(7) }, + tdd [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), v10(5), v20(6), + spare1(7) } + }, + mpdcch-Offset-PUR-SS-r16 [5] ENUMERATED { zero(0), oneEighth(1), + oneQuarter(2), threeEighth(3), oneHalf(4), fiveEighth(5), threeQuarter(6) + , sevenEighth(7) } +} + +PUR-PUCCH-Config-r16 ::= SEQUENCE { + n1PUCCH-AN-r16 [0] INTEGER (0..2047) OPTIONAL, -- Need ON + pucch-NumRepetitionCE-Format1-r16 [1] ENUMERATED { n1(0), n2(1), n4(2), + n8(3) } OPTIONAL -- Need ON +} + +PUR-PUSCH-Config-r16 ::= SEQUENCE { + pur-GrantInfo-r16 [0] EXPLICIT CHOICE { + ce-ModeA [0] SEQUENCE { + numRUs-r16 [0] BIT STRING (SIZE (2)), + prb-AllocationInfo-r16 [1] BIT STRING (SIZE (10)), + mcs-r16 [2] BIT STRING (SIZE (4)), + numRepetitions-r16 [3] BIT STRING (SIZE (3)) + }, + ce-ModeB [1] SEQUENCE { + subPRB-Allocation-r16 [0] BOOLEAN, + numRUs-r16 [1] BOOLEAN, + prb-AllocationInfo-r16 [2] BIT STRING (SIZE (8)), + mcs-r16 [3] BIT STRING (SIZE (4)), + numRepetitions-r16 [4] BIT STRING (SIZE (3)) + } + } OPTIONAL, -- Need ON + pur-PUSCH-FreqHopping-r16 [1] BOOLEAN, + p0-UE-PUSCH-r16 [2] INTEGER (-8..7), + alpha-r16 [3] Alpha-r12, + pusch-CyclicShift-r16 [4] ENUMERATED { n0(0), n6(1) }, + pusch-NB-MaxTBS-r16 [5] BOOLEAN, + locationCE-ModeB-r16 [6] INTEGER (0..5) OPTIONAL -- Cond SubPRB +} + +PUR-Config-r16 ::= SEQUENCE { + pur-ConfigID-r16 [0] PUR-ConfigID-r16 OPTIONAL, -- Need OR + pur-ImplicitReleaseAfter-r16 [1] ENUMERATED { n2(0), n4(1), n8(2), spare(3) + } OPTIONAL, -- Need OR + pur-StartTimeParameters-r16 [2] SEQUENCE { + periodicityAndOffset-r16 [0] EXPLICIT PUR-PeriodicityAndOffset-r16, + startSFN-r16 [1] INTEGER (0..1023), + startSubFrame-r16 [2] INTEGER (0..9), + hsfn-LSB-Info-r16 [3] BIT STRING (SIZE (1)) + } OPTIONAL, --Need ON + pur-NumOccasions-r16 [3] ENUMERATED { one(0), infinite(1) }, + pur-RNTI-r16 [4] C-RNTI OPTIONAL, -- Need ON + pur-TimeAlignmentTimer-r16 [5] INTEGER (1..8) OPTIONAL, -- Need OR + pur-RSRP-ChangeThreshold-r16 [6] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT PUR-RSRP-ChangeThreshold-r16 + } OPTIONAL, -- Need ON + pur-ResponseWindowTimer-r16 [7] ENUMERATED { sf240(0), sf480(1), sf960(2), + sf1920(3), sf3840(4), sf5760(5), sf7680(6), sf10240(7) } OPTIONAL, -- Need ON + pur-MPDCCH-Config-r16 [8] PUR-MPDCCH-Config-r16 OPTIONAL, -- Need ON + pur-PDSCH-FreqHopping-r16 [9] BOOLEAN, + pur-PUCCH-Config-r16 [10] PUR-PUCCH-Config-r16 OPTIONAL, -- Need ON + pur-PUSCH-Config-r16 [11] PUR-PUSCH-Config-r16 OPTIONAL, + ..., + [[ + pur-PDSCH-maxTBS-r17 [12] BOOLEAN OPTIONAL + ]] +} + +RRC-InactiveConfig-v1610 ::= SEQUENCE { + ran-PagingCycle-v1610 [0] ENUMERATED { rf512(0), rf1024(1) } +} + +RRCConnectionRelease-v1650-IEs ::= SEQUENCE { + mpsPriorityIndication-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Cond Redirection2 + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionRelease-v1610-IEs ::= SEQUENCE { + fullI-RNTI-r16 [0] I-RNTI-r15 OPTIONAL, -- Need OR + shortI-RNTI-r16 [1] ShortI-RNTI-r15 OPTIONAL, -- Need OR + pur-Config-r16 [2] EXPLICIT CHOICE { + release [0] NULL, + setup [1] EXPLICIT PUR-Config-r16 + } OPTIONAL, -- Need ON + rrc-InactiveConfig-v1610 [3] RRC-InactiveConfig-v1610 OPTIONAL, -- Cond BLCE-IDLEeDRX + releaseIdleMeasConfig-r16 [4] ENUMERATED { true(0) } OPTIONAL, -- Need ON + altFreqPriorities-r16 [5] ENUMERATED { true(0) } OPTIONAL, -- Need ON + t323-r16 [6] ENUMERATED { min5(0), min10(1), min20(2), min30(3), min60(4), + min120(5), min180(6), min720(7) } OPTIONAL, -- Need OR + nonCriticalExtension [7] RRCConnectionRelease-v1650-IEs OPTIONAL +} + +RRCConnectionRelease-v15b0-IEs ::= SEQUENCE { + noLastCellUpdate-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need OP + nonCriticalExtension [1] RRCConnectionRelease-v1610-IEs OPTIONAL +} + +RRCConnectionRelease-v1540-IEs ::= SEQUENCE { + waitTime [0] INTEGER (1..16) OPTIONAL, -- Cond 5GC + nonCriticalExtension [1] RRCConnectionRelease-v15b0-IEs OPTIONAL +} + +RRCConnectionRelease-v1530-IEs ::= SEQUENCE { + drb-ContinueROHC-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Cond UP-EDTorPUR + nextHopChainingCount-r15 [1] NextHopChainingCount OPTIONAL, -- Cond EarlySec + measIdleConfig-r15 [2] MeasIdleConfigDedicated-r15 OPTIONAL, -- Need ON + rrc-InactiveConfig-r15 [3] RRC-InactiveConfig-r15 OPTIONAL, -- Need OR + cn-Type-r15 [4] ENUMERATED { epc(0), fivegc(1) } OPTIONAL, -- Need OR + nonCriticalExtension [5] RRCConnectionRelease-v1540-IEs OPTIONAL +} + +RRCConnectionRelease-v1320-IEs ::= SEQUENCE { + resumeIdentity-r13 [0] ResumeIdentity-r13 OPTIONAL, -- Need OR + nonCriticalExtension [1] RRCConnectionRelease-v1530-IEs OPTIONAL +} + +RRCConnectionRelease-v1020-IEs ::= SEQUENCE { + extendedWaitTime-r10 [0] INTEGER (1..1800) OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionRelease-v1320-IEs OPTIONAL +} + +-- Regular non critical extensions +RRCConnectionRelease-v920-IEs ::= SEQUENCE { + cellInfoList-r9 [0] EXPLICIT CHOICE { + geran-r9 [0] CellInfoListGERAN-r9, + utra-FDD-r9 [1] CellInfoListUTRA-FDD-r9, + utra-TDD-r9 [2] CellInfoListUTRA-TDD-r9, + ..., + utra-TDD-r10 [3] CellInfoListUTRA-TDD-r10 + } OPTIONAL, -- Cond Redirection + nonCriticalExtension [1] RRCConnectionRelease-v1020-IEs OPTIONAL +} + +RRCConnectionRelease-v890-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + RRCConnectionRelease-v9e0-IEs) OPTIONAL, + nonCriticalExtension [1] RRCConnectionRelease-v920-IEs OPTIONAL +} + +RRCConnectionRelease-r8-IEs ::= SEQUENCE { + releaseCause [0] ReleaseCause, + redirectedCarrierInfo [1] EXPLICIT RedirectedCarrierInfo OPTIONAL, -- Need ON + idleModeMobilityControlInfo [2] IdleModeMobilityControlInfo OPTIONAL, -- Need OP + nonCriticalExtension [3] RRCConnectionRelease-v890-IEs OPTIONAL +} + +RRCConnectionRelease ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionRelease-r8 [0] RRCConnectionRelease-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig [0] SecurityAlgorithmConfig, + ... +} + +SecurityModeCommand-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SecurityModeCommand-r8-IEs ::= SEQUENCE { + securityConfigSMC [0] SecurityConfigSMC, + nonCriticalExtension [1] SecurityModeCommand-v8a0-IEs OPTIONAL +} + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + securityModeCommand-r8 [0] SecurityModeCommand-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type + +BandIndication-r14 ::= SEQUENCE { + bandEUTRA-r14 [0] FreqBandIndicator-r11, + ca-BandwidthClassDL-r14 [1] CA-BandwidthClass-r10, + ca-BandwidthClassUL-r14 [2] CA-BandwidthClass-r10 OPTIONAL +} + +BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14 + +BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14 + +UECapabilityEnquiry-v1710-IEs ::= SEQUENCE { + sidelinkRequest-r17 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UECapabilityEnquiry-v1610-IEs ::= SEQUENCE { + rrc-SegAllowed-r16 [0] ENUMERATED { enabled(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] UECapabilityEnquiry-v1710-IEs OPTIONAL +} + +UECapabilityEnquiry-v1560-IEs ::= SEQUENCE { + requestedCapabilityCommon-r15 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UECapabilityEnquiry-v1610-IEs OPTIONAL +} + +UECapabilityEnquiry-v1550-IEs ::= SEQUENCE { + requestedCapabilityNR-r15 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UECapabilityEnquiry-v1560-IEs OPTIONAL +} + +UECapabilityEnquiry-v1530-IEs ::= SEQUENCE { + requestSTTI-SPT-Capability-r15 [0] ENUMERATED { true(0) } OPTIONAL, + eutra-nr-only-r15 [1] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [2] UECapabilityEnquiry-v1550-IEs OPTIONAL +} + +UECapabilityEnquiry-v1510-IEs ::= SEQUENCE { + requestedFreqBandsNR-MRDC-r15 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UECapabilityEnquiry-v1530-IEs OPTIONAL +} + +UECapabilityEnquiry-v1430-IEs ::= SEQUENCE { + requestDiffFallbackCombList-r14 [0] BandCombinationList-r14 OPTIONAL, -- Need ON + nonCriticalExtension [1] UECapabilityEnquiry-v1510-IEs OPTIONAL +} + +UECapabilityEnquiry-v1310-IEs ::= SEQUENCE { + requestReducedFormat-r13 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + requestSkipFallbackComb-r13 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + requestedMaxCCsDL-r13 [2] INTEGER (2..32) OPTIONAL, -- Need ON + requestedMaxCCsUL-r13 [3] INTEGER (2..32) OPTIONAL, -- Need ON + requestReducedIntNonContComb-r13 [4] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [5] UECapabilityEnquiry-v1430-IEs OPTIONAL +} + +UECapabilityEnquiry-v1180-IEs ::= SEQUENCE { + requestedFrequencyBands-r11 [0] SEQUENCE (SIZE (1..16)) OF + FreqBandIndicator-r11 OPTIONAL, + nonCriticalExtension [1] UECapabilityEnquiry-v1310-IEs OPTIONAL +} + +UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UECapabilityEnquiry-v1180-IEs OPTIONAL +} + +UECapabilityEnquiry-r8-IEs ::= SEQUENCE { + ue-CapabilityRequest [0] UE-CapabilityRequest, + nonCriticalExtension [1] UECapabilityEnquiry-v8a0-IEs OPTIONAL +} + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueCapabilityEnquiry-r8 [0] UECapabilityEnquiry-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity [0] DRB-Identity, + countMSB-Uplink [1] INTEGER (0..33554431), + countMSB-Downlink [2] INTEGER (0..33554431) +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-InfoListExt-r15 ::= SEQUENCE (SIZE (1..maxDRBExt-r15)) OF DRB-CountMSB-Info + +CounterCheck-v1530-IEs ::= SEQUENCE { + drb-CountMSB-InfoListExt-r15 [0] DRB-CountMSB-InfoListExt-r15 OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +CounterCheck-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] CounterCheck-v1530-IEs OPTIONAL +} + +CounterCheck-r8-IEs ::= SEQUENCE { + drb-CountMSB-InfoList [0] DRB-CountMSB-InfoList, + nonCriticalExtension [1] CounterCheck-v8a0-IEs OPTIONAL +} + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + counterCheck-r8 [0] CounterCheck-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +FlightPathInfoReportConfig-r15 ::= SEQUENCE { + maxWayPointNumber-r15 [0] INTEGER (1..maxWayPoint-r15), + includeTimeStamp-r15 [1] ENUMERATED { true(0) } OPTIONAL +} + +UEInformationRequest-v1710-IEs ::= SEQUENCE { + coarseLocationReq-r17 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UEInformationRequest-v1530-IEs ::= SEQUENCE { + idleModeMeasurementReq-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + flightPathInfoReq-r15 [1] FlightPathInfoReportConfig-r15 OPTIONAL, -- Need ON + nonCriticalExtension [2] UEInformationRequest-v1710-IEs OPTIONAL +} + +UEInformationRequest-v1250-IEs ::= SEQUENCE { + mobilityHistoryReportReq-r12 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] UEInformationRequest-v1530-IEs OPTIONAL +} + +UEInformationRequest-v1130-IEs ::= SEQUENCE { + connEstFailReportReq-r11 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] UEInformationRequest-v1250-IEs OPTIONAL +} + +UEInformationRequest-v1020-IEs ::= SEQUENCE { + logMeasReportReq-r10 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] UEInformationRequest-v1130-IEs OPTIONAL +} + +UEInformationRequest-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UEInformationRequest-v1020-IEs OPTIONAL +} + +UEInformationRequest-r9-IEs ::= SEQUENCE { + rach-ReportReq-r9 [0] BOOLEAN, + rlf-ReportReq-r9 [1] BOOLEAN, + nonCriticalExtension [2] UEInformationRequest-v930-IEs OPTIONAL +} + +UEInformationRequest-r9 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueInformationRequest-r9 [0] UEInformationRequest-r9-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +TraceReference-r10 ::= SEQUENCE { + plmn-Identity-r10 [0] PLMN-Identity, + traceId-r10 [1] OCTET STRING (SIZE (3)) +} + +CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA + +TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode + +AreaConfiguration-r10 ::= CHOICE { + cellGlobalIdList-r10 [0] CellGlobalIdList-r10, + trackingAreaCodeList-r10 [1] TrackingAreaCodeList-r10 +} + +PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity + +TrackingAreaCodeList-v1130 ::= SEQUENCE { + plmn-Identity-perTAC-List-r11 [0] SEQUENCE (SIZE (1..8)) OF PLMN-Identity +} + +AreaConfiguration-v1130 ::= SEQUENCE { + trackingAreaCodeList-v1130 [0] TrackingAreaCodeList-v1130 +} + +TargetMBSFN-Area-r12 ::= SEQUENCE { + mbsfn-AreaId-r12 [0] MBSFN-AreaId-r12 OPTIONAL, -- Need OR + carrierFreq-r12 [1] ARFCN-ValueEUTRA-r9, + ... +} + +TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12 + +EventType-r17 ::= CHOICE { + outOfCoverage [0] NULL, + eventL1 [1] SEQUENCE { + l1-Threshold-r17 [0] EXPLICIT ThresholdEUTRA, + hysteresis-r17 [1] Hysteresis, + timeToTrigger-r17 [2] TimeToTrigger + }, + ... +} + +LoggedEventTriggerConfig-r17 ::= SEQUENCE { + eventType-r17 [0] EXPLICIT EventType-r17 +} + +LoggedMeasurementConfiguration-v1700-IEs ::= SEQUENCE { + loggedEventTriggerConfig-r17 [0] LoggedEventTriggerConfig-r17 OPTIONAL, --Need OR + measUncomBarPre-r17 [1] ENUMERATED { true(0) } OPTIONAL, --Need OR + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE { + bt-NameList-r15 [0] BT-NameList-r15 OPTIONAL, --Need OR + wlan-NameList-r15 [1] WLAN-NameList-r15 OPTIONAL, --Need OR + nonCriticalExtension [2] LoggedMeasurementConfiguration-v1700-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE { + targetMBSFN-AreaList-r12 [0] TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP + nonCriticalExtension [1] LoggedMeasurementConfiguration-v1530-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE { + plmn-IdentityList-r11 [0] PLMN-IdentityList3-r11 OPTIONAL, -- Need OR + areaConfiguration-v1130 [1] AreaConfiguration-v1130 OPTIONAL, -- Need OR + nonCriticalExtension [2] LoggedMeasurementConfiguration-v1250-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE { + lateNonCriticalExtension-r10 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] LoggedMeasurementConfiguration-v1130-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE { + traceReference-r10 [0] TraceReference-r10, + traceRecordingSessionRef-r10 [1] OCTET STRING (SIZE (2)), + tce-Id-r10 [2] OCTET STRING (SIZE (1)), + absoluteTimeInfo-r10 [3] AbsoluteTimeInfo-r10, + areaConfiguration-r10 [4] EXPLICIT AreaConfiguration-r10 OPTIONAL, -- Need OR + loggingDuration-r10 [5] LoggingDuration-r10, + loggingInterval-r10 [6] LoggingInterval-r10, + nonCriticalExtension [7] LoggedMeasurementConfiguration-v1080-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-r10 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + loggedMeasurementConfiguration-r10 [0] + LoggedMeasurementConfiguration-r10-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RN-SystemInfo-r10 ::= SEQUENCE { + systemInformationBlockType1-r10 [0] OCTET STRING (CONTAINING + SystemInformationBlockType1) OPTIONAL, -- Need ON + systemInformationBlockType2-r10 [1] SystemInformationBlockType2 OPTIONAL, + ... +} + +RN-SubframeConfig-r10 ::= SEQUENCE { + subframeConfigPattern-r10 [0] EXPLICIT CHOICE { + subframeConfigPatternFDD-r10 [0] BIT STRING (SIZE (8)), + subframeConfigPatternTDD-r10 [1] INTEGER (0..31) + } OPTIONAL, -- Need ON + rpdcch-Config-r10 [1] SEQUENCE { + resourceAllocationType-r10 [0] ENUMERATED { type0(0), type1(1), + type2Localized(2), type2Distributed(3), spare4(4), spare3(5), + spare2(6), spare1(7) }, + resourceBlockAssignment-r10 [1] EXPLICIT CHOICE { + type01-r10 [0] EXPLICIT CHOICE { + nrb6-r10 [0] BIT STRING (SIZE (6)), + nrb15-r10 [1] BIT STRING (SIZE (8)), + nrb25-r10 [2] BIT STRING (SIZE (13)), + nrb50-r10 [3] BIT STRING (SIZE (17)), + nrb75-r10 [4] BIT STRING (SIZE (19)), + nrb100-r10 [5] BIT STRING (SIZE (25)) + }, + type2-r10 [1] EXPLICIT CHOICE { + nrb6-r10 [0] BIT STRING (SIZE (5)), + nrb15-r10 [1] BIT STRING (SIZE (7)), + nrb25-r10 [2] BIT STRING (SIZE (9)), + nrb50-r10 [3] BIT STRING (SIZE (11)), + nrb75-r10 [4] BIT STRING (SIZE (12)), + nrb100-r10 [5] BIT STRING (SIZE (13)) + }, + ... + }, + demodulationRS-r10 [2] EXPLICIT CHOICE { + interleaving-r10 [0] ENUMERATED { crs(0) }, + noInterleaving-r10 [1] ENUMERATED { crs(0), dmrs(1) } + }, + pdsch-Start-r10 [3] INTEGER (1..3), + pucch-Config-r10 [4] EXPLICIT CHOICE { + tdd [0] EXPLICIT CHOICE { + channelSelectionMultiplexingBundling [0] SEQUENCE { + n1PUCCH-AN-List-r10 [0] SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047) + }, + fallbackForFormat3 [1] SEQUENCE { + n1PUCCH-AN-P0-r10 [0] INTEGER (0..2047), + n1PUCCH-AN-P1-r10 [1] INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + fdd [1] SEQUENCE { + n1PUCCH-AN-P0-r10 [0] INTEGER (0..2047), + n1PUCCH-AN-P1-r10 [1] INTEGER (0..2047) OPTIONAL -- Need OR + } + }, + ... + } OPTIONAL, + ... +} + +RNReconfiguration-r10-IEs ::= SEQUENCE { + rn-SystemInfo-r10 [0] RN-SystemInfo-r10 OPTIONAL, -- Need ON + rn-SubframeConfig-r10 [1] RN-SubframeConfig-r10 OPTIONAL, -- Need ON + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] SEQUENCE { + + } OPTIONAL +} + +RNReconfiguration-r10 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rnReconfiguration-r10 [0] RNReconfiguration-r10-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SCellToAddMod-r16 ::= SEQUENCE { + sCellIndex-r16 [0] SCellIndex-r13, + cellIdentification-r16 [1] SEQUENCE { + physCellId-r16 [0] PhysCellId, + dl-CarrierFreq-r16 [1] ARFCN-ValueEUTRA-r9 + } OPTIONAL, -- Cond SCellAdd + radioResourceConfigCommonSCell-r16 [2] RadioResourceConfigCommonSCell-r10 + OPTIONAL, -- Cond SCellAdd + radioResourceConfigDedicatedSCell-r16 [3] + RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2 + antennaInfoDedicatedSCell-r16 [4] AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + srs-SwitchFromServCellIndex-r16 [5] INTEGER (0..31) OPTIONAL, -- Need ON + sCellState-r16 [6] ENUMERATED { activated(0), dormant(1) } OPTIONAL, + ... +} + +SCellToAddModList-r16 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddMod-r16 + +RRCConnectionResume-v1700-IEs ::= SEQUENCE { + scg-State-r17 [0] ENUMERATED { deactivated(0) } OPTIONAL, -- Need OP + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionResume-v1610-IEs ::= SEQUENCE { + idleModeMeasurementReq-r16 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + restoreMCG-SCells-r16 [1] ENUMERATED { true(0) } OPTIONAL, -- Need ON + restoreSCG-r16 [2] ENUMERATED { true(0) } OPTIONAL, -- Cond EarlySec + sCellToAddModList-r16 [3] SCellToAddModList-r16 OPTIONAL, -- Cond EarlySec + sCellToReleaseList-r16 [4] SCellToReleaseListExt-r13 OPTIONAL, -- Need ON + sCellGroupToReleaseList-r16 [5] SCellGroupToReleaseList-r15 OPTIONAL, -- Need ON + sCellGroupToAddModList-r16 [6] SCellGroupToAddModList-r15 OPTIONAL, -- Cond EarlySec + nr-SecondaryCellGroupConfig-r16 [7] OCTET STRING OPTIONAL, -- Cond RestoreSCG + p-MaxEUTRA-r16 [8] P-Max OPTIONAL, -- Cond SCG + p-MaxUE-FR1-r16 [9] P-Max OPTIONAL, -- Cond SCG + tdm-PatternConfig-r16 [10] EXPLICIT TDM-PatternConfig-r15 OPTIONAL, -- Cond FDD-PCell + tdm-PatternConfig2-r16 [11] EXPLICIT TDM-PatternConfig-r15 OPTIONAL, -- Need OR + nonCriticalExtension [12] RRCConnectionResume-v1700-IEs OPTIONAL +} + +RRCConnectionResume-v1530-IEs ::= SEQUENCE { + fullConfig-r15 [0] ENUMERATED { true(0) } OPTIONAL, -- Need ON + nonCriticalExtension [1] RRCConnectionResume-v1610-IEs OPTIONAL +} + +RRCConnectionResume-v1510-IEs ::= SEQUENCE { + sk-Counter-r15 [0] INTEGER (0..65535) OPTIONAL, -- Need ON + nr-RadioBearerConfig1-r15 [1] OCTET STRING OPTIONAL, -- Need ON + nr-RadioBearerConfig2-r15 [2] OCTET STRING OPTIONAL, -- Need ON + nonCriticalExtension [3] RRCConnectionResume-v1530-IEs OPTIONAL +} + +RRCConnectionResume-v1430-IEs ::= SEQUENCE { + otherConfig-r14 [0] OtherConfig-r9 OPTIONAL, -- Need ON + rrcConnectionResume-v1510-IEs [1] RRCConnectionResume-v1510-IEs OPTIONAL +} + +RRCConnectionResume-r13-IEs ::= SEQUENCE { + radioResourceConfigDedicated-r13 [0] RadioResourceConfigDedicated OPTIONAL, -- Need ON + nextHopChainingCount-r13 [1] NextHopChainingCount, + measConfig-r13 [2] MeasConfig OPTIONAL, -- Need ON + antennaInfoDedicatedPCell-r13 [3] AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON + drb-ContinueROHC-r13 [4] ENUMERATED { true(0) } OPTIONAL, -- Need OP + lateNonCriticalExtension [5] OCTET STRING OPTIONAL, + rrcConnectionResume-v1430-IEs [6] RRCConnectionResume-v1430-IEs OPTIONAL +} + +RRCConnectionResume-r13 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionResume-r13 [0] RRCConnectionResume-r13-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DLDedicatedMessageSegment-r16-IEs ::= SEQUENCE { + segmentNumber-r16 [0] INTEGER (0..4), + rrc-MessageSegmentContainer-r16 [1] OCTET STRING, + rrc-MessageSegmentType-r16 [2] ENUMERATED { notLastSegment(0), + lastSegment(1) }, + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + nonCriticalExtension [4] SEQUENCE { + + } OPTIONAL +} + +DLDedicatedMessageSegment-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + dlDedicatedMessageSegment-r16 [0] DLDedicatedMessageSegment-r16-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DL-DCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + csfbParametersResponseCDMA2000 [0] CSFBParametersResponseCDMA2000, + dlInformationTransfer [1] DLInformationTransfer, + handoverFromEUTRAPreparationRequest [2] + HandoverFromEUTRAPreparationRequest, + mobilityFromEUTRACommand [3] MobilityFromEUTRACommand, + rrcConnectionReconfiguration [4] RRCConnectionReconfiguration, + rrcConnectionRelease [5] RRCConnectionRelease, + securityModeCommand [6] SecurityModeCommand, + ueCapabilityEnquiry [7] UECapabilityEnquiry, + counterCheck [8] CounterCheck, + ueInformationRequest-r9 [9] UEInformationRequest-r9, + loggedMeasurementConfiguration-r10 [10] + LoggedMeasurementConfiguration-r10, + rnReconfiguration-r10 [11] RNReconfiguration-r10, + rrcConnectionResume-r13 [12] RRCConnectionResume-r13, + dlDedicatedMessageSegment-r16 [13] DLDedicatedMessageSegment-r16, + spare2 [14] NULL, + spare1 [15] NULL + }, + messageClassExtension [1] SEQUENCE { + + } +} + +DL-DCCH-Message ::= SEQUENCE { + message [0] EXPLICIT DL-DCCH-MessageType +} + +ReestabUE-Identity ::= SEQUENCE { + c-RNTI [0] C-RNTI, + physCellId [1] PhysCellId, + shortMAC-I [2] ShortMAC-I +} + +RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE { + ue-Identity [0] ReestabUE-Identity, + reestablishmentCause [1] ReestablishmentCause, + spare [2] BIT STRING (SIZE (2)) +} + +RRCConnectionReestablishmentRequest ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcConnectionReestablishmentRequest-r8 [0] + RRCConnectionReestablishmentRequest-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +InitialUE-Identity ::= CHOICE { + s-TMSI [0] S-TMSI, + randomValue [1] BIT STRING (SIZE (40)) +} + +RRCConnectionRequest-r8-IEs ::= SEQUENCE { + ue-Identity [0] EXPLICIT InitialUE-Identity, + establishmentCause [1] EstablishmentCause, + spare [2] BIT STRING (SIZE (1)) +} + +InitialUE-Identity-5GC-r15 ::= CHOICE { + ng-5G-S-TMSI-Part1 [0] BIT STRING (SIZE (40)), + randomValue [1] BIT STRING (SIZE (40)) +} + +RRCConnectionRequest-5GC-r15-IEs ::= SEQUENCE { + ue-Identity-r15 [0] EXPLICIT InitialUE-Identity-5GC-r15, + establishmentCause-r15 [1] EstablishmentCause-5GC-r15, + spare [2] BIT STRING (SIZE (1)) +} + +RRCConnectionRequest ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcConnectionRequest-r8 [0] RRCConnectionRequest-r8-IEs, + rrcConnectionRequest-r15 [1] RRCConnectionRequest-5GC-r15-IEs + } +} + +RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE { + resumeIdentity-r13 [0] EXPLICIT CHOICE { + resumeID-r13 [0] ResumeIdentity-r13, + truncatedResumeID-r13 [1] BIT STRING (SIZE (24)) + }, + shortResumeMAC-I-r13 [1] BIT STRING (SIZE (16)), + resumeCause-r13 [2] ResumeCause, + spare [3] BIT STRING (SIZE (1)) +} + +RRCConnectionResumeRequest-5GC-r15-IEs ::= SEQUENCE { + resumeIdentity-r15 [0] EXPLICIT CHOICE { + fullI-RNTI-r15 [0] I-RNTI-r15, + shortI-RNTI-r15 [1] ShortI-RNTI-r15 + }, + shortResumeMAC-I-r15 [1] BIT STRING (SIZE (16)), + resumeCause-r15 [2] ResumeCause-r15, + spare [3] BIT STRING (SIZE (1)) +} + +RRCConnectionResumeRequest-r13 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcConnectionResumeRequest-r13 [0] RRCConnectionResumeRequest-r13-IEs, + rrcConnectionResumeRequest-r15 [1] RRCConnectionResumeRequest-5GC-r15-IEs + } +} + +RRCEarlyDataRequest-v1610-IEs ::= SEQUENCE { + establishmentCause-v1610 [0] ENUMERATED { mt-Access(0), spare3(1), spare2(2) + , spare1(3) }, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCEarlyDataRequest-v1590-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCEarlyDataRequest-v1610-IEs OPTIONAL +} + +RRCEarlyDataRequest-r15-IEs ::= SEQUENCE { + s-TMSI-r15 [0] S-TMSI, + establishmentCause-r15 [1] ENUMERATED { mo-Data(0), delayTolerantAccess(1) } + , + dedicatedInfoNAS-r15 [2] DedicatedInfoNAS, + nonCriticalExtension [3] RRCEarlyDataRequest-v1590-IEs OPTIONAL +} + +RRCEarlyDataRequest-5GC-r16-IEs ::= SEQUENCE { + ng-5G-S-TMSI-r16 [0] NG-5G-S-TMSI-r15, + establishmentCause-r16 [1] ENUMERATED { mo-Data(0), spare3(1), spare2(2), + spare1(3) }, + dedicatedInfoNAS-r16 [2] DedicatedInfoNAS, + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + nonCriticalExtension [4] SEQUENCE { + + } OPTIONAL +} + +RRCEarlyDataRequest-r15 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + rrcEarlyDataRequest-r15 [0] RRCEarlyDataRequest-r15-IEs, + criticalExtensionsFuture [1] EXPLICIT CHOICE { + rrcEarlyDataRequest-5GC-r16 [0] RRCEarlyDataRequest-5GC-r16-IEs, + criticalExtensionsFuture-r16 [1] SEQUENCE { + + } + } + } +} + +UL-CCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionReestablishmentRequest [0] + RRCConnectionReestablishmentRequest, + rrcConnectionRequest [1] RRCConnectionRequest + }, + messageClassExtension [1] EXPLICIT CHOICE { + c2 [0] EXPLICIT CHOICE { + rrcConnectionResumeRequest-r13 [0] RRCConnectionResumeRequest-r13 + }, + messageClassExtensionFuture-r13 [1] EXPLICIT CHOICE { + c3 [0] EXPLICIT CHOICE { + rrcEarlyDataRequest-r15 [0] RRCEarlyDataRequest-r15, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + messageClassExtensionFuture-r15 [1] SEQUENCE { + + } + } + } +} + +UL-CCCH-Message ::= SEQUENCE { + message [0] EXPLICIT UL-CCCH-MessageType +} + +CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL +} + +CSFBParametersRequestCDMA2000 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + csfbParametersRequestCDMA2000-r8 [0] CSFBParametersRequestCDMA2000-r8-IEs + , + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity + +AdditionalSI-Info-r9 ::= SEQUENCE { + csg-MemberStatus-r9 [0] ENUMERATED { member(0) } OPTIONAL, + csg-Identity-r9 [1] CSG-Identity OPTIONAL +} + +MeasResultEUTRA ::= SEQUENCE { + physCellId [0] PhysCellId, + cgi-Info [1] SEQUENCE { + cellGlobalId [0] CellGlobalIdEUTRA, + trackingAreaCode [1] TrackingAreaCode, + plmn-IdentityList [2] PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult [2] SEQUENCE { + rsrpResult [0] RSRP-Range OPTIONAL, + rsrqResult [1] RSRQ-Range OPTIONAL, + ..., + [[ + additionalSI-Info-r9 [2] AdditionalSI-Info-r9 OPTIONAL + ]], + [[ + primaryPLMN-Suitable-r12 [3] ENUMERATED { true(0) } OPTIONAL, + measResult-v1250 [4] RSRQ-Range-v1250 OPTIONAL + ]], + [[ + rs-sinr-Result-r13 [5] RS-SINR-Range-r13 OPTIONAL, + cgi-Info-v1310 [6] SEQUENCE { + freqBandIndicator-r13 [0] FreqBandIndicator-r11 OPTIONAL, + multiBandInfoList-r13 [1] MultiBandInfoList-r11 OPTIONAL, + freqBandIndicatorPriority-r13 [2] ENUMERATED { true(0) } OPTIONAL + } OPTIONAL + ]], + [[ + measResult-v1360 [7] RSRP-Range-v1360 OPTIONAL + ]], + [[ + cgi-Info-5GC-r15 [8] SEQUENCE (SIZE (1..maxPLMN-r11)) OF + CellAccessRelatedInfo-5GC-r15 OPTIONAL + ]] + } +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +CellGlobalIdUTRA ::= SEQUENCE { + plmn-Identity [0] PLMN-Identity, + cellIdentity [1] BIT STRING (SIZE (28)) +} + +MeasResultUTRA ::= SEQUENCE { + physCellId [0] EXPLICIT CHOICE { + fdd [0] PhysCellIdUTRA-FDD, + tdd [1] PhysCellIdUTRA-TDD + }, + cgi-Info [1] SEQUENCE { + cellGlobalId [0] CellGlobalIdUTRA, + locationAreaCode [1] BIT STRING (SIZE (16)) OPTIONAL, + routingAreaCode [2] BIT STRING (SIZE (8)) OPTIONAL, + plmn-IdentityList [3] PLMN-IdentityList2 OPTIONAL + } OPTIONAL, + measResult [2] SEQUENCE { + utra-RSCP [0] INTEGER (-5..91) OPTIONAL, + utra-EcN0 [1] INTEGER (0..49) OPTIONAL, + ..., + [[ + additionalSI-Info-r9 [2] AdditionalSI-Info-r9 OPTIONAL + ]], + [[ + primaryPLMN-Suitable-r12 [3] ENUMERATED { true(0) } OPTIONAL + ]] + } +} + +MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA + +CellGlobalIdGERAN ::= SEQUENCE { + plmn-Identity [0] PLMN-Identity, + locationAreaCode [1] BIT STRING (SIZE (16)), + cellIdentity [2] BIT STRING (SIZE (16)) +} + +MeasResultGERAN ::= SEQUENCE { + carrierFreq [0] CarrierFreqGERAN, + physCellId [1] PhysCellIdGERAN, + cgi-Info [2] SEQUENCE { + cellGlobalId [0] CellGlobalIdGERAN, + routingAreaCode [1] BIT STRING (SIZE (8)) OPTIONAL + } OPTIONAL, + measResult [3] SEQUENCE { + rssi [0] INTEGER (0..63), + ... + } +} + +MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN + +CellGlobalIdCDMA2000 ::= CHOICE { + cellGlobalId1XRTT [0] BIT STRING (SIZE (47)), + cellGlobalIdHRPD [1] BIT STRING (SIZE (128)) +} + +MeasResultCDMA2000 ::= SEQUENCE { + physCellId [0] PhysCellIdCDMA2000, + cgi-Info [1] EXPLICIT CellGlobalIdCDMA2000 OPTIONAL, + measResult [2] SEQUENCE { + pilotPnPhase [0] INTEGER (0..32767) OPTIONAL, + pilotStrength [1] INTEGER (0..63), + ... + } +} + +MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000 + +MeasResultsCDMA2000 ::= SEQUENCE { + preRegistrationStatusHRPD [0] BOOLEAN, + measResultListCDMA2000 [1] MeasResultListCDMA2000 +} + +MeasResultNR-r15 ::= SEQUENCE { + rsrpResult-r15 [0] RSRP-RangeNR-r15 OPTIONAL, + rsrqResult-r15 [1] RSRQ-RangeNR-r15 OPTIONAL, + rs-sinr-Result-r15 [2] RS-SINR-RangeNR-r15 OPTIONAL, + ... +} + +MeasResultSSB-Index-r15 ::= SEQUENCE { + ssb-Index-r15 [0] RS-IndexNR-r15, + measResultSSB-Index-r15 [1] MeasResultNR-r15 OPTIONAL, + ... +} + +MeasResultSSB-IndexList-r15 ::= SEQUENCE (SIZE (1..maxRS-IndexReport-r15)) OF MeasResultSSB-Index-r15 + + +PLMN-IdentityListNR-r15 ::= SEQUENCE (SIZE (1..maxPLMN-NR-r15)) OF PLMN-Identity + +PLMN-IdentityInfoNR-r15 ::= SEQUENCE { + plmn-IdentityList-r15 [0] PLMN-IdentityListNR-r15, + trackingAreaCode-r15 [1] TrackingAreaCodeNR-r15 OPTIONAL, + ran-AreaCode-r15 [2] RAN-AreaCode-r15 OPTIONAL, + cellIdentity-r15 [3] CellIdentityNR-r15 +} + +PLMN-IdentityInfoListNR-r15 ::= SEQUENCE (SIZE (1..maxPLMN-NR-r15)) OF PLMN-IdentityInfoNR-r15 + + +PLMN-IdentityInfoNR-v1710 ::= SEQUENCE { + gNB-ID-Length-r17 [0] INTEGER (22..32) OPTIONAL +} + +PLMN-IdentityInfoListNR-v1710 ::= SEQUENCE (SIZE (1..maxPLMN-NR-r15)) OF + PLMN-IdentityInfoNR-v1710 + +CGI-InfoNR-r15 ::= SEQUENCE { + plmn-IdentityInfoList-r15 [0] PLMN-IdentityInfoListNR-r15 OPTIONAL, + frequencyBandList-r15 [1] MultiFrequencyBandListNR-r15 OPTIONAL, + noSIB1-r15 [2] SEQUENCE { + ssb-SubcarrierOffset-r15 [0] INTEGER (0..15), + pdcch-ConfigSIB1-r15 [1] INTEGER (0..255) + } OPTIONAL, + ..., + [[ + plmn-IdentityInfoList-v1710 [3] PLMN-IdentityInfoListNR-v1710 OPTIONAL + ]] +} + +MeasResultCellNR-r15 ::= SEQUENCE { + pci-r15 [0] PhysCellIdNR-r15, + measResultCell-r15 [1] MeasResultNR-r15, + measResultRS-IndexList-r15 [2] MeasResultSSB-IndexList-r15 OPTIONAL, + ..., + [[ + cgi-Info-r15 [3] CGI-InfoNR-r15 OPTIONAL + ]] +} + +MeasResultCellListNR-r15 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCellNR-r15 + +MeasResultForECID-r9 ::= SEQUENCE { + ue-RxTxTimeDiffResult-r9 [0] INTEGER (0..4095), + currentSFN-r9 [1] BIT STRING (SIZE (10)) +} + +LocationInfo-r10 ::= SEQUENCE { + locationCoordinates-r10 [0] EXPLICIT CHOICE { + ellipsoid-Point-r10 [0] OCTET STRING, + ellipsoidPointWithAltitude-r10 [1] OCTET STRING, + ..., + ellipsoidPointWithUncertaintyCircle-r11 [2] OCTET STRING, + ellipsoidPointWithUncertaintyEllipse-r11 [3] OCTET STRING, + ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 [4] OCTET STRING, + ellipsoidArc-r11 [5] OCTET STRING, + polygon-r11 [6] OCTET STRING + }, + horizontalVelocity-r10 [1] OCTET STRING OPTIONAL, + gnss-TOD-msec-r10 [2] OCTET STRING OPTIONAL, + ..., + [[ + verticalVelocityInfo-r15 [3] EXPLICIT CHOICE { + verticalVelocity-r15 [0] OCTET STRING, + verticalVelocityAndUncertainty-r15 [1] OCTET STRING + } OPTIONAL + ]] +} + +MeasResultServFreq-r10 ::= SEQUENCE { + servFreqId-r10 [0] ServCellIndex-r10, + measResultSCell-r10 [1] SEQUENCE { + rsrpResultSCell-r10 [0] RSRP-Range, + rsrqResultSCell-r10 [1] RSRQ-Range + } OPTIONAL, + measResultBestNeighCell-r10 [2] SEQUENCE { + physCellId-r10 [0] PhysCellId, + rsrpResultNCell-r10 [1] RSRP-Range, + rsrqResultNCell-r10 [2] RSRQ-Range + } OPTIONAL, + ..., + [[ + measResultSCell-v1250 [3] RSRQ-Range-v1250 OPTIONAL, + measResultBestNeighCell-v1250 [4] RSRQ-Range-v1250 OPTIONAL + ]], + [[ + measResultSCell-v1310 [5] SEQUENCE { + rs-sinr-Result-r13 [0] RS-SINR-Range-r13 + } OPTIONAL, + measResultBestNeighCell-v1310 [6] SEQUENCE { + rs-sinr-Result-r13 [0] RS-SINR-Range-r13 + } OPTIONAL + ]] +} + +MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10 + +MeasResultCSI-RS-r12 ::= SEQUENCE { + measCSI-RS-Id-r12 [0] MeasCSI-RS-Id-r12, + csi-RSRP-Result-r12 [1] CSI-RSRP-Range-r12, + ... +} + +MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12 + +MeasResultForRSSI-r13 ::= SEQUENCE { + rssi-Result-r13 [0] RSSI-Range-r13, + channelOccupancy-r13 [1] INTEGER (0..100), + ... +} + +MeasResultServFreq-r13 ::= SEQUENCE { + servFreqId-r13 [0] ServCellIndex-r13, + measResultSCell-r13 [1] SEQUENCE { + rsrpResultSCell-r13 [0] RSRP-Range, + rsrqResultSCell-r13 [1] RSRQ-Range-r13, + rs-sinr-Result-r13 [2] RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + measResultBestNeighCell-r13 [2] SEQUENCE { + physCellId-r13 [0] PhysCellId, + rsrpResultNCell-r13 [1] RSRP-Range, + rsrqResultNCell-r13 [2] RSRQ-Range-r13, + rs-sinr-Result-r13 [3] RS-SINR-Range-r13 OPTIONAL + } OPTIONAL, + ..., + [[ + measResultBestNeighCell-v1360 [3] SEQUENCE { + rsrpResultNCell-v1360 [0] RSRP-Range-v1360 + } OPTIONAL + ]] +} + +MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF + MeasResultServFreq-r13 + +MeasResultSSTD-r13 ::= SEQUENCE { + sfn-OffsetResult-r13 [0] INTEGER (0..1023), + frameBoundaryOffsetResult-r13 [1] INTEGER (-5..4), + subframeBoundaryOffsetResult-r13 [2] INTEGER (0..127) +} + +UL-PDCP-DelayResult-r13 ::= SEQUENCE { + qci-Id-r13 [0] ENUMERATED { qci1(0), qci2(1), qci3(2), qci4(3), spare4(4), + spare3(5), spare2(6), spare1(7) }, + excessDelay-r13 [1] INTEGER (0..31), + ... +} + +UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13 + + +MeasResultWLAN-r13 ::= SEQUENCE { + wlan-Identifiers-r13 [0] WLAN-Identifiers-r12, + carrierInfoWLAN-r13 [1] WLAN-CarrierInfo-r13 OPTIONAL, + bandWLAN-r13 [2] WLAN-BandIndicator-r13 OPTIONAL, + rssiWLAN-r13 [3] WLAN-RSSI-Range-r13, + availableAdmissionCapacityWLAN-r13 [4] INTEGER (0..31250) OPTIONAL, + backhaulDL-BandwidthWLAN-r13 [5] WLAN-backhaulRate-r12 OPTIONAL, + backhaulUL-BandwidthWLAN-r13 [6] WLAN-backhaulRate-r12 OPTIONAL, + channelUtilizationWLAN-r13 [7] INTEGER (0..255) OPTIONAL, + stationCountWLAN-r13 [8] INTEGER (0..65535) OPTIONAL, + connectedWLAN-r13 [9] ENUMERATED { true(0) } OPTIONAL, + ... +} + +MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13 + +MeasResultCBR-r14 ::= SEQUENCE { + poolIdentity-r14 [0] SL-V2X-TxPoolReportIdentity-r14, + cbr-PSSCH-r14 [1] SL-CBR-r14, + cbr-PSCCH-r14 [2] SL-CBR-r14 OPTIONAL +} + +MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14 + +MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13 + +MeasResultServFreqNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + measResultSCell-r15 [1] MeasResultCellNR-r15 OPTIONAL, + measResultBestNeighCell-r15 [2] MeasResultCellNR-r15 OPTIONAL, + ... +} + +MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF + MeasResultServFreqNR-r15 + +MeasResultCellSFTD-r15 ::= SEQUENCE { + physCellId-r15 [0] PhysCellIdNR-r15, + sfn-OffsetResult-r15 [1] INTEGER (0..1023), + frameBoundaryOffsetResult-r15 [2] INTEGER (-30720..30719), + rsrpResult-r15 [3] RSRP-RangeNR-r15 OPTIONAL +} + +MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-r15 + +LogMeasResultBT-r15 ::= SEQUENCE { + bt-Addr-r15 [0] BIT STRING (SIZE (48)), + rssi-BT-r15 [1] INTEGER (-128..127) OPTIONAL, + ... +} + +LogMeasResultListBT-r15 ::= SEQUENCE (SIZE (1..maxBT-IdReport-r15)) OF LogMeasResultBT-r15 + +WLAN-RTT-r15 ::= SEQUENCE { + rttValue-r15 [0] INTEGER (0..16777215), + rttUnits-r15 [1] ENUMERATED { microseconds(0), hundredsofnanoseconds(1), + tensofnanoseconds(2), nanoseconds(3), tenthsofnanoseconds(4), ... }, + rttAccuracy-r15 [2] INTEGER (0..255) OPTIONAL, + ... +} + +LogMeasResultWLAN-r15 ::= SEQUENCE { + wlan-Identifiers-r15 [0] WLAN-Identifiers-r12, + rssiWLAN-r15 [1] WLAN-RSSI-Range-r13 OPTIONAL, + rtt-WLAN-r15 [2] WLAN-RTT-r15 OPTIONAL, + ... +} + +LogMeasResultListWLAN-r15 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF LogMeasResultWLAN-r15 + +SensingResult-r15 ::= SEQUENCE { + resourceIndex-r15 [0] INTEGER (1..2000) +} + +MeasResultSensing-r15 ::= SEQUENCE { + sl-SubframeRef-r15 [0] INTEGER (0..10239), + sensingResult-r15 [1] SEQUENCE (SIZE (0..400)) OF SensingResult-r15 +} + +UL-PDCP-DelayValueResult-r16 ::= SEQUENCE { + drb-Id-r16 [0] DRB-Identity, + averageDelay-r16 [1] INTEGER (0..10000), + ... +} + +UL-PDCP-DelayValueResultList-r16 ::= SEQUENCE (SIZE (1..maxDRB)) OF + UL-PDCP-DelayValueResult-r16 + +MeasResultForRSSI-NR-r16 ::= SEQUENCE { + rssi-ResultNR-r16 [0] RSSI-Range-r13, + channelOccupancyNR-r16 [1] INTEGER (0..100), + ... +} + +MeasResults ::= SEQUENCE { + measId [0] MeasId, + measResultPCell [1] SEQUENCE { + rsrpResult [0] RSRP-Range, + rsrqResult [1] RSRQ-Range + }, + measResultNeighCells [2] EXPLICIT CHOICE { + measResultListEUTRA [0] MeasResultListEUTRA, + measResultListUTRA [1] MeasResultListUTRA, + measResultListGERAN [2] MeasResultListGERAN, + measResultsCDMA2000 [3] MeasResultsCDMA2000, + ..., + measResultNeighCellListNR-r15 [4] MeasResultCellListNR-r15 + } OPTIONAL, + ..., + [[ + measResultForECID-r9 [3] MeasResultForECID-r9 OPTIONAL + ]], + [[ + locationInfo-r10 [4] LocationInfo-r10 OPTIONAL, + measResultServFreqList-r10 [5] MeasResultServFreqList-r10 OPTIONAL + ]], + [[ + measId-v1250 [6] MeasId-v1250 OPTIONAL, + measResultPCell-v1250 [7] RSRQ-Range-v1250 OPTIONAL, + measResultCSI-RS-List-r12 [8] MeasResultCSI-RS-List-r12 OPTIONAL + ]], + [[ + measResultForRSSI-r13 [9] MeasResultForRSSI-r13 OPTIONAL, + measResultServFreqListExt-r13 [10] MeasResultServFreqListExt-r13 OPTIONAL + , + measResultSSTD-r13 [11] MeasResultSSTD-r13 OPTIONAL, + measResultPCell-v1310 [12] SEQUENCE { + rs-sinr-Result-r13 [0] RS-SINR-Range-r13 + } OPTIONAL, + ul-PDCP-DelayResultList-r13 [13] UL-PDCP-DelayResultList-r13 OPTIONAL, + measResultListWLAN-r13 [14] MeasResultListWLAN-r13 OPTIONAL + ]], + [[ + measResultPCell-v1360 [15] RSRP-Range-v1360 OPTIONAL + ]], + [[ + measResultListCBR-r14 [16] MeasResultListCBR-r14 OPTIONAL, + measResultListWLAN-r14 [17] MeasResultListWLAN-r14 OPTIONAL + ]], + [[ + measResultServFreqListNR-r15 [18] MeasResultServFreqListNR-r15 OPTIONAL, + measResultCellListSFTD-r15 [19] MeasResultCellListSFTD-r15 OPTIONAL + ]], + [[ + logMeasResultListBT-r15 [20] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r15 [21] LogMeasResultListWLAN-r15 OPTIONAL, + measResultSensing-r15 [22] MeasResultSensing-r15 OPTIONAL, + heightUE-r15 [23] INTEGER (-400..8880) OPTIONAL + ]], + [[ + ul-PDCP-DelayValueResultList-r16 [24] UL-PDCP-DelayValueResultList-r16 + OPTIONAL, + measResultForRSSI-NR-r16 [25] MeasResultForRSSI-NR-r16 OPTIONAL + ]], + [[ + uncomBarPreMeasResult-r17 [26] OCTET STRING OPTIONAL, + coarseLocationInfo-r17 [27] OCTET STRING OPTIONAL + ]] +} + +MeasurementReport-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MeasurementReport-r8-IEs ::= SEQUENCE { + measResults [0] MeasResults, + nonCriticalExtension [1] MeasurementReport-v8a0-IEs OPTIONAL +} + +MeasurementReport ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + measurementReport-r8 [0] MeasurementReport-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +PerCC-GapIndication-r14 ::= SEQUENCE { + servCellId-r14 [0] ServCellIndex-r13, + gapIndication-r14 [1] ENUMERATED { gap(0), ncsg(1), nogap-noNcsg(2) } +} + +PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14 + + +RRCConnectionReconfigurationComplete-v1710-IEs ::= SEQUENCE { + gnss-ValidityDuration-r17 [0] GNSS-ValidityDuration-r17 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1700-IEs ::= SEQUENCE { + selectedCondReconfigurationToApply-r17 [0] CondReconfigurationId-r16 + OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfigurationComplete-v1710-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1530-IEs ::= SEQUENCE { + logMeasAvailableBT-r15 [0] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableWLAN-r15 [1] ENUMERATED { true(0) } OPTIONAL, + flightPathInfoAvailable-r15 [2] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [3] RRCConnectionReconfigurationComplete-v1700-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE { + scg-ConfigResponseNR-r15 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfigurationComplete-v1530-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE { + perCC-GapIndicationList-r14 [0] PerCC-GapIndicationList-r14 OPTIONAL, + numFreqEffective-r14 [1] INTEGER (1..12) OPTIONAL, + numFreqEffectiveReduced-r14 [2] INTEGER (1..12) OPTIONAL, + nonCriticalExtension [3] RRCConnectionReconfigurationComplete-v1510-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfigurationComplete-v1430-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfigurationComplete-v1250-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE { + rlf-InfoAvailable-r10 [0] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailable-r10 [1] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [2] RRCConnectionReconfigurationComplete-v1130-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionReconfigurationComplete-v1020-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] RRCConnectionReconfigurationComplete-v8a0-IEs + OPTIONAL +} + +RRCConnectionReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + rrcConnectionReconfigurationComplete-r8 [0] + RRCConnectionReconfigurationComplete-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RRCConnectionReestablishmentComplete-v1710-IEs ::= SEQUENCE { + gnss-ValidityDuration-r17 [0] GNSS-ValidityDuration-r17 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE { + logMeasAvailableBT-r15 [0] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableWLAN-r15 [1] ENUMERATED { true(0) } OPTIONAL, + flightPathInfoAvailable-r15 [2] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [3] RRCConnectionReestablishmentComplete-v1710-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE { + logMeasAvailableMBSFN-r12 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReestablishmentComplete-v1530-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReestablishmentComplete-v1250-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE { + logMeasAvailable-r10 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReestablishmentComplete-v1130-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionReestablishmentComplete-v1020-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE { + rlf-InfoAvailable-r9 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionReestablishmentComplete-v8a0-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] RRCConnectionReestablishmentComplete-v920-IEs + OPTIONAL +} + +RRCConnectionReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + rrcConnectionReestablishmentComplete-r8 [0] + RRCConnectionReestablishmentComplete-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RegisteredMME ::= SEQUENCE { + plmn-Identity [0] PLMN-Identity OPTIONAL, + mmegi [1] BIT STRING (SIZE (16)), + mmec [2] MMEC +} + +RegisteredAMF-r15 ::= SEQUENCE { + plmn-Identity-r15 [0] PLMN-Identity OPTIONAL, + amf-Identifier-r15 [1] AMF-Identifier-r15 +} + +S-NSSAI-r15 ::= CHOICE { + sst [0] BIT STRING (SIZE (8)), + sst-SD [1] BIT STRING (SIZE (32)) +} + +RRCConnectionSetupComplete-v1710-IEs ::= SEQUENCE { + gnss-ValidityDuration-r17 [0] GNSS-ValidityDuration-r17 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionSetupComplete-v1690-IEs ::= SEQUENCE { + ul-RRC-Segmentation-r16 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetupComplete-v1710-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1610-IEs ::= SEQUENCE { + rlos-Request-r16 [0] ENUMERATED { true(0) } OPTIONAL, + cp-CIoT-5GS-Optimisation-r16 [1] ENUMERATED { true(0) } OPTIONAL, + up-CIoT-5GS-Optimisation-r16 [2] ENUMERATED { true(0) } OPTIONAL, + pur-ConfigID-r16 [3] PUR-ConfigID-r16 OPTIONAL, + lte-M-r16 [4] ENUMERATED { true(0) } OPTIONAL, + iab-NodeIndication-r16 [5] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [6] RRCConnectionSetupComplete-v1690-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1540-IEs ::= SEQUENCE { + gummei-Type-v1540 [0] ENUMERATED { mappedFrom5G-v1540(0) } OPTIONAL, + guami-Type-r15 [1] ENUMERATED { native(0), mapped(1) } OPTIONAL, + nonCriticalExtension [2] RRCConnectionSetupComplete-v1610-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1530-IEs ::= SEQUENCE { + logMeasAvailableBT-r15 [0] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableWLAN-r15 [1] ENUMERATED { true(0) } OPTIONAL, + idleMeasAvailable-r15 [2] ENUMERATED { true(0) } OPTIONAL, + flightPathInfoAvailable-r15 [3] ENUMERATED { true(0) } OPTIONAL, + connectTo5GC-r15 [4] ENUMERATED { true(0) } OPTIONAL, + registeredAMF-r15 [5] RegisteredAMF-r15 OPTIONAL, + s-NSSAI-list-r15 [6] SEQUENCE (SIZE (1..maxNrofS-NSSAI-r15)) OF S-NSSAI-r15 OPTIONAL, + ng-5G-S-TMSI-Bits-r15 [7] EXPLICIT CHOICE { + ng-5G-S-TMSI-r15 [0] NG-5G-S-TMSI-r15, + ng-5G-S-TMSI-Part2-r15 [1] BIT STRING (SIZE (8)) + } OPTIONAL, + nonCriticalExtension [8] RRCConnectionSetupComplete-v1540-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE { + dcn-ID-r14 [0] INTEGER (0..65535) OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetupComplete-v1530-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE { + ue-CE-NeedULGaps-r13 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetupComplete-v1430-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE { + ce-ModeB-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + s-TMSI-r13 [1] S-TMSI OPTIONAL, + attachWithoutPDN-Connectivity-r13 [2] ENUMERATED { true(0) } OPTIONAL, + up-CIoT-EPS-Optimisation-r13 [3] ENUMERATED { true(0) } OPTIONAL, + cp-CIoT-EPS-Optimisation-r13 [4] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [5] RRCConnectionSetupComplete-v1330-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE { + mobilityState-r12 [0] ENUMERATED { normal(0), medium(1), high(2), spare(3) } + OPTIONAL, + mobilityHistoryAvail-r12 [1] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableMBSFN-r12 [2] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [3] RRCConnectionSetupComplete-v1320-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE { + connEstFailInfoAvailable-r11 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetupComplete-v1250-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE { + gummei-Type-r10 [0] ENUMERATED { native(0), mapped(1) } OPTIONAL, + rlf-InfoAvailable-r10 [1] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailable-r10 [2] ENUMERATED { true(0) } OPTIONAL, + rn-SubframeConfigReq-r10 [3] ENUMERATED { required(0), notRequired(1) } + OPTIONAL, + nonCriticalExtension [4] RRCConnectionSetupComplete-v1130-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] RRCConnectionSetupComplete-v1020-IEs OPTIONAL +} + +RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE { + selectedPLMN-Identity [0] INTEGER (1..maxPLMN-r11), + registeredMME [1] RegisteredMME OPTIONAL, + dedicatedInfoNAS [2] DedicatedInfoNAS, + nonCriticalExtension [3] RRCConnectionSetupComplete-v8a0-IEs OPTIONAL +} + +RRCConnectionSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rrcConnectionSetupComplete-r8 [0] RRCConnectionSetupComplete-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SecurityModeComplete-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SecurityModeComplete-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] SecurityModeComplete-v8a0-IEs OPTIONAL +} + +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + securityModeComplete-r8 [0] SecurityModeComplete-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SecurityModeFailure-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SecurityModeFailure-r8-IEs ::= SEQUENCE { + nonCriticalExtension [0] SecurityModeFailure-v8a0-IEs OPTIONAL +} + +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + securityModeFailure-r8 [0] SecurityModeFailure-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type [0] RAT-Type, + ueCapabilityRAT-Container [1] OCTET STRING +} + +UE-CapabilityRAT-ContainerList ::= SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF + UE-CapabilityRAT-Container + +UE-RadioPagingInfo-r12 ::= SEQUENCE { + ue-Category-v1250 [0] INTEGER (0) OPTIONAL, + ..., + [[ + ue-CategoryDL-v1310 [1] ENUMERATED { m1(0) } OPTIONAL, + ce-ModeA-r13 [2] ENUMERATED { true(0) } OPTIONAL, + ce-ModeB-r13 [3] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + wakeUpSignal-r15 [4] ENUMERATED { true(0) } OPTIONAL, + wakeUpSignal-TDD-r15 [5] ENUMERATED { true(0) } OPTIONAL, + wakeUpSignalMinGap-eDRX-r15 [6] ENUMERATED { ms40(0), ms240(1), ms1000(2) + , ms2000(3) } OPTIONAL, + wakeUpSignalMinGap-eDRX-TDD-r15 [7] ENUMERATED { ms40(0), ms240(1), + ms1000(2), ms2000(3) } OPTIONAL + ]], + [[ + ue-CategoryDL-v1610 [8] ENUMERATED { m2(0) } OPTIONAL, + groupWakeUpSignal-r16 [9] ENUMERATED { true(0) } OPTIONAL, + groupWakeUpSignalTDD-r16 [10] ENUMERATED { true(0) } OPTIONAL, + groupWakeUpSignalAlternation-r16 [11] ENUMERATED { true(0) } OPTIONAL, + groupWakeUpSignalAlternationTDD-r16 [12] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + inactiveStatePO-Determination-r17 [13] ENUMERATED { true(0) } OPTIONAL + ]] +} + +UECapabilityInformation-v1250-IEs ::= SEQUENCE { + ue-RadioPagingInfo-r12 [0] UE-RadioPagingInfo-r12 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UECapabilityInformation-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UECapabilityInformation-v1250-IEs OPTIONAL +} + +UECapabilityInformation-r8-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList [0] UE-CapabilityRAT-ContainerList, + nonCriticalExtension [1] UECapabilityInformation-v8a0-IEs OPTIONAL +} + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueCapabilityInformation-r8 [0] UECapabilityInformation-r8-IEs, + spare7 [1] NULL, + spare6 [2] NULL, + spare5 [3] NULL, + spare4 [4] NULL, + spare3 [5] NULL, + spare2 [6] NULL, + spare1 [7] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE { + cdma2000-Type [0] CDMA2000-Type, + meid [1] BIT STRING (SIZE (56)) OPTIONAL, + dedicatedInfo [2] DedicatedInfoCDMA2000, + nonCriticalExtension [3] ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL +} + +ULHandoverPreparationTransfer ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ulHandoverPreparationTransfer-r8 [0] + ULHandoverPreparationTransfer-r8-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +ULInformationTransfer-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +ULInformationTransfer-r8-IEs ::= SEQUENCE { + dedicatedInfoType [0] EXPLICIT CHOICE { + dedicatedInfoNAS [0] DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT [1] DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD [2] DedicatedInfoCDMA2000 + }, + nonCriticalExtension [1] ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer-r16-IEs ::= SEQUENCE { + dedicatedInfoType-r16 [0] EXPLICIT CHOICE { + dedicatedInfoNAS-r16 [0] DedicatedInfoNAS, + dedicatedInfoCDMA2000-1XRTT-r16 [1] DedicatedInfoCDMA2000, + dedicatedInfoCDMA2000-HRPD-r16 [2] DedicatedInfoCDMA2000 + } OPTIONAL, + dedicatedInfoF1c-r16 [1] DedicatedInfoF1c-r16 OPTIONAL, + nonCriticalExtension [2] ULInformationTransfer-v8a0-IEs OPTIONAL +} + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ulInformationTransfer-r8 [0] ULInformationTransfer-r8-IEs, + ulInformationTransfer-r16 [1] ULInformationTransfer-r16-IEs, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +DRB-CountInfo ::= SEQUENCE { + drb-Identity [0] DRB-Identity, + count-Uplink [1] INTEGER (0..4294967295), + count-Downlink [2] INTEGER (0..4294967295) +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfoListExt-r15 ::= SEQUENCE (SIZE (1..maxDRBExt-r15)) OF DRB-CountInfo + +CounterCheckResponse-v1530-IEs ::= SEQUENCE { + drb-CountInfoListExt-r15 [0] DRB-CountInfoListExt-r15 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +CounterCheckResponse-v8a0-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] CounterCheckResponse-v1530-IEs OPTIONAL +} + +CounterCheckResponse-r8-IEs ::= SEQUENCE { + drb-CountInfoList [0] DRB-CountInfoList, + nonCriticalExtension [1] CounterCheckResponse-v8a0-IEs OPTIONAL +} + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + counterCheckResponse-r8 [0] CounterCheckResponse-r8-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RACH-Report-r16 ::= SEQUENCE { + numberOfPreamblesSent-r16 [0] NumberOfPreamblesSent-r11, + contentionDetected-r16 [1] BOOLEAN +} + +MeasResult2EUTRA-r9 ::= SEQUENCE { + carrierFreq-r9 [0] ARFCN-ValueEUTRA, + measResultList-r9 [1] MeasResultListEUTRA +} + +MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9 + +MeasResult2UTRA-r9 ::= SEQUENCE { + carrierFreq-r9 [0] ARFCN-ValueUTRA, + measResultList-r9 [1] MeasResultListUTRA +} + +MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9 + +MeasResult2CDMA2000-r9 ::= SEQUENCE { + carrierFreq-r9 [0] CarrierFreqCDMA2000, + measResultList-r9 [1] MeasResultsCDMA2000 +} + +MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9 + +RSRQ-Type-r12 ::= SEQUENCE { + allSymbols-r12 [0] BOOLEAN, + wideBand-r12 [1] BOOLEAN +} + +MeasResult2EUTRA-v1250 ::= SEQUENCE { + rsrq-Type-r12 [0] RSRQ-Type-r12 OPTIONAL +} + +MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250 + +CellGlobalIdNR-r16 ::= SEQUENCE { + plmn-Identity-r16 [0] PLMN-Identity, + cellIdentity-r16 [1] CellIdentityNR-r15, + trackingAreaCode-r16 [2] TrackingAreaCodeNR-r15 OPTIONAL +} + +MeasResultFreqFailNR-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueNR-r15, + measResultCellList-r15 [1] MeasResultCellListNR-r15 OPTIONAL, + ... +} + +MeasResultFreqListNR-r16 ::= SEQUENCE (SIZE (1..maxFreq-1-r16)) OF MeasResultFreqFailNR-r15 + +RLF-Report-r9 ::= SEQUENCE { + measResultLastServCell-r9 [0] SEQUENCE { + rsrpResult-r9 [0] RSRP-Range, + rsrqResult-r9 [1] RSRQ-Range OPTIONAL + }, + measResultNeighCells-r9 [1] SEQUENCE { + measResultListEUTRA-r9 [0] MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r9 [1] MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r9 [2] MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r9 [3] MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ + locationInfo-r10 [2] LocationInfo-r10 OPTIONAL, + failedPCellId-r10 [3] EXPLICIT CHOICE { + cellGlobalId-r10 [0] CellGlobalIdEUTRA, + pci-arfcn-r10 [1] SEQUENCE { + physCellId-r10 [0] PhysCellId, + carrierFreq-r10 [1] ARFCN-ValueEUTRA + } + } OPTIONAL, + reestablishmentCellId-r10 [4] CellGlobalIdEUTRA OPTIONAL, + timeConnFailure-r10 [5] INTEGER (0..1023) OPTIONAL, + connectionFailureType-r10 [6] ENUMERATED { rlf(0), hof(1) } OPTIONAL, + previousPCellId-r10 [7] CellGlobalIdEUTRA OPTIONAL + ]], + [[ + failedPCellId-v1090 [8] SEQUENCE { + carrierFreq-v1090 [0] ARFCN-ValueEUTRA-v9e0 + } OPTIONAL + ]], + [[ + basicFields-r11 [9] SEQUENCE { + c-RNTI-r11 [0] C-RNTI, + rlf-Cause-r11 [1] ENUMERATED { t310-Expiry(0), randomAccessProblem(1) + , rlc-MaxNumRetx(2), t312-Expiry-r12(3) }, + timeSinceFailure-r11 [2] TimeSinceFailure-r11 + } OPTIONAL, + previousUTRA-CellId-r11 [10] SEQUENCE { + carrierFreq-r11 [0] ARFCN-ValueUTRA, + physCellId-r11 [1] EXPLICIT CHOICE { + fdd-r11 [0] PhysCellIdUTRA-FDD, + tdd-r11 [1] PhysCellIdUTRA-TDD + }, + cellGlobalId-r11 [2] CellGlobalIdUTRA OPTIONAL + } OPTIONAL, + selectedUTRA-CellId-r11 [11] SEQUENCE { + carrierFreq-r11 [0] ARFCN-ValueUTRA, + physCellId-r11 [1] EXPLICIT CHOICE { + fdd-r11 [0] PhysCellIdUTRA-FDD, + tdd-r11 [1] PhysCellIdUTRA-TDD + } + } OPTIONAL + ]], + [[ + failedPCellId-v1250 [12] SEQUENCE { + tac-FailedPCell-r12 [0] TrackingAreaCode + } OPTIONAL, + measResultLastServCell-v1250 [13] RSRQ-Range-v1250 OPTIONAL, + lastServCellRSRQ-Type-r12 [14] RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 [15] MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ + drb-EstablishedWithQCI-1-r13 [16] ENUMERATED { qci1(0) } OPTIONAL + ]], + [[ + measResultLastServCell-v1360 [17] RSRP-Range-v1360 OPTIONAL + ]], + [[ + logMeasResultListBT-r15 [18] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r15 [19] LogMeasResultListWLAN-r15 OPTIONAL + ]], + [[ + measResultListNR-r16 [20] MeasResultCellListNR-r15 OPTIONAL, + previousNR-PCellId-r16 [21] CellGlobalIdNR-r16 OPTIONAL, + failedNR-PCellId-r16 [22] EXPLICIT CHOICE { + cellGlobalId [0] CellGlobalIdNR-r16, + pci-arfcn [1] SEQUENCE { + physCellId-r16 [0] PhysCellIdNR-r15, + carrierFreq-r16 [1] ARFCN-ValueNR-r15 + } + } OPTIONAL, + reconnectCellId-r16 [23] EXPLICIT CHOICE { + nrReconnectCellId [0] CellGlobalIdNR-r16, + eutraReconnectCellId [1] SEQUENCE { + cellGlobalId-r16 [0] CellGlobalIdEUTRA, + trackingAreaCode-EPC-r16 [1] TrackingAreaCode OPTIONAL, + trackingAreaCode-5GC-r16 [2] TrackingAreaCode-5GC-r15 OPTIONAL + } + } OPTIONAL, + timeUntilReconnection-r16 [24] TimeUntilReconnection-r16 OPTIONAL + ]], + [[ + measResultListNR-v1640 [25] SEQUENCE { + carrierFreqNR-r16 [0] ARFCN-ValueNR-r15 + } OPTIONAL, + measResultListExtNR-r16 [26] MeasResultFreqListNR-r16 OPTIONAL + ]] +} + +MeasResult2EUTRA-v9e0 ::= SEQUENCE { + carrierFreq-v9e0 [0] ARFCN-ValueEUTRA-v9e0 OPTIONAL +} + +MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0 + +RLF-Report-v9e0 ::= SEQUENCE { + measResultListEUTRA-v9e0 [0] MeasResultList2EUTRA-v9e0 +} + +-- Late non critical extensions +UEInformationResponse-v9e0-IEs ::= SEQUENCE { + rlf-Report-v9e0 [0] RLF-Report-v9e0 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN + +BLER-Result-r12 ::= SEQUENCE { + bler-r12 [0] BLER-Range-r12, + blocksReceived-r12 [1] SEQUENCE { + n-r12 [0] BIT STRING (SIZE (3)), + m-r12 [1] BIT STRING (SIZE (8)) + } +} + +DataBLER-MCH-Result-r12 ::= SEQUENCE { + mch-Index-r12 [0] INTEGER (1..maxPMCH-PerMBSFN), + dataBLER-Result-r12 [1] BLER-Result-r12 +} + +DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1..maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12 + + +MeasResultMBSFN-r12 ::= SEQUENCE { + mbsfn-Area-r12 [0] SEQUENCE { + mbsfn-AreaId-r12 [0] MBSFN-AreaId-r12, + carrierFreq-r12 [1] ARFCN-ValueEUTRA-r9 + }, + rsrpResultMBSFN-r12 [1] RSRP-Range, + rsrqResultMBSFN-r12 [2] MBSFN-RSRQ-Range-r12, + signallingBLER-Result-r12 [3] BLER-Result-r12 OPTIONAL, + dataBLER-MCH-ResultList-r12 [4] DataBLER-MCH-ResultList-r12 OPTIONAL, + ... +} + +MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12 + +LogMeasInfo-r10 ::= SEQUENCE { + locationInfo-r10 [0] LocationInfo-r10 OPTIONAL, + relativeTimeStamp-r10 [1] INTEGER (0..7200), + servCellIdentity-r10 [2] CellGlobalIdEUTRA, + measResultServCell-r10 [3] SEQUENCE { + rsrpResult-r10 [0] RSRP-Range, + rsrqResult-r10 [1] RSRQ-Range + }, + measResultNeighCells-r10 [4] SEQUENCE { + measResultListEUTRA-r10 [0] MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r10 [1] MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r10 [2] MeasResultList2GERAN-r10 OPTIONAL, + measResultListCDMA2000-r10 [3] MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + ..., + [[ + measResultListEUTRA-v1090 [5] MeasResultList2EUTRA-v9e0 OPTIONAL + ]], + [[ + measResultListMBSFN-r12 [6] MeasResultListMBSFN-r12 OPTIONAL, + measResultServCell-v1250 [7] RSRQ-Range-v1250 OPTIONAL, + servCellRSRQ-Type-r12 [8] RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 [9] MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ + inDeviceCoexDetected-r13 [10] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + measResultServCell-v1360 [11] RSRP-Range-v1360 OPTIONAL + ]], + [[ + logMeasResultListBT-r15 [12] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r15 [13] LogMeasResultListWLAN-r15 OPTIONAL + ]], + [[ + anyCellSelectionDetected-r15 [14] ENUMERATED { true(0) } OPTIONAL + ]], + [[ + measResultListNR-r16 [15] MeasResultCellListNR-r15 OPTIONAL + ]], + [[ + measResultListNR-v1640 [16] SEQUENCE { + carrierFreqNR-r16 [0] ARFCN-ValueNR-r15 + } OPTIONAL, + measResultListExtNR-r16 [17] MeasResultFreqListNR-r16 OPTIONAL + ]], + [[ + uncomBarPreMeasResult-r17 [18] OCTET STRING OPTIONAL + ]] +} + +LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10 + +LogMeasReport-r10 ::= SEQUENCE { + absoluteTimeStamp-r10 [0] AbsoluteTimeInfo-r10, + traceReference-r10 [1] TraceReference-r10, + traceRecordingSessionRef-r10 [2] OCTET STRING (SIZE (2)), + tce-Id-r10 [3] OCTET STRING (SIZE (1)), + logMeasInfoList-r10 [4] LogMeasInfoList-r10, + logMeasAvailable-r10 [5] ENUMERATED { true(0) } OPTIONAL, + ..., + [[ + logMeasAvailableBT-r15 [6] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableWLAN-r15 [7] ENUMERATED { true(0) } OPTIONAL + ]] +} + +ConnEstFailReport-r11 ::= SEQUENCE { + failedCellId-r11 [0] CellGlobalIdEUTRA, + locationInfo-r11 [1] LocationInfo-r10 OPTIONAL, + measResultFailedCell-r11 [2] SEQUENCE { + rsrpResult-r11 [0] RSRP-Range, + rsrqResult-r11 [1] RSRQ-Range OPTIONAL + }, + measResultNeighCells-r11 [3] SEQUENCE { + measResultListEUTRA-r11 [0] MeasResultList2EUTRA-r9 OPTIONAL, + measResultListUTRA-r11 [1] MeasResultList2UTRA-r9 OPTIONAL, + measResultListGERAN-r11 [2] MeasResultListGERAN OPTIONAL, + measResultsCDMA2000-r11 [3] MeasResultList2CDMA2000-r9 OPTIONAL + } OPTIONAL, + numberOfPreamblesSent-r11 [4] NumberOfPreamblesSent-r11, + contentionDetected-r11 [5] BOOLEAN, + maxTxPowerReached-r11 [6] BOOLEAN, + timeSinceFailure-r11 [7] TimeSinceFailure-r11, + measResultListEUTRA-v1130 [8] MeasResultList2EUTRA-v9e0 OPTIONAL, + ..., + [[ + measResultFailedCell-v1250 [9] RSRQ-Range-v1250 OPTIONAL, + failedCellRSRQ-Type-r12 [10] RSRQ-Type-r12 OPTIONAL, + measResultListEUTRA-v1250 [11] MeasResultList2EUTRA-v1250 OPTIONAL + ]], + [[ + measResultFailedCell-v1360 [12] RSRP-Range-v1360 OPTIONAL + ]], + [[ + logMeasResultListBT-r15 [13] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r15 [14] LogMeasResultListWLAN-r15 OPTIONAL + ]], + [[ + measResultListNR-r16 [15] MeasResultCellListNR-r15 OPTIONAL + ]], + [[ + measResultListNR-v1640 [16] SEQUENCE { + carrierFreqNR-r16 [0] ARFCN-ValueNR-r15 + } OPTIONAL, + measResultListExtNR-r16 [17] MeasResultFreqListNR-r16 OPTIONAL + ]] +} + +MeasResultIdleEUTRA-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueEUTRA-r9, + physCellId-r15 [1] PhysCellId, + measResult-r15 [2] SEQUENCE { + rsrpResult-r15 [0] RSRP-Range, + rsrqResult-r15 [1] RSRQ-Range-r13 + }, + ... +} + +MeasResultIdleListEUTRA-r15 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF MeasResultIdleEUTRA-r15 + + +MeasResultIdle-r15 ::= SEQUENCE { + measResultServingCell-r15 [0] SEQUENCE { + rsrpResult-r15 [0] RSRP-Range, + rsrqResult-r15 [1] RSRQ-Range-r13 + }, + measResultNeighCells-r15 [1] EXPLICIT CHOICE { + measResultIdleListEUTRA-r15 [0] MeasResultIdleListEUTRA-r15, + ... + } OPTIONAL, + ... +} + +MeasResultListIdle-r15 ::= SEQUENCE (SIZE (1..maxIdleMeasCarriers-r15)) OF MeasResultIdle-r15 + +WayPointLocation-r15 ::= SEQUENCE { + wayPointLocation-r15 [0] LocationInfo-r10, + timeStamp-r15 [1] AbsoluteTimeInfo-r10 OPTIONAL +} + +FlightPathInfoReport-r15 ::= SEQUENCE { + flightPath-r15 [0] SEQUENCE (SIZE (1..maxWayPoint-r15)) OF WayPointLocation-r15 OPTIONAL, + dummy [1] SEQUENCE { + + } OPTIONAL +} + +RACH-Report-v1610 ::= SEQUENCE { + initialCEL-r16 [0] INTEGER (0..3), + edt-Fallback-r16 [1] BOOLEAN +} + +MeasResultListExtIdle-r16 ::= SEQUENCE (SIZE (1..maxIdleMeasCarriersExt-r16)) OF + MeasResultIdleListEUTRA-r15 + +ResultsPerSSB-IndexIdle-r16 ::= SEQUENCE { + ssb-Index-r16 [0] RS-IndexNR-r15, + ssb-Results-r16 [1] SEQUENCE { + ssb-RSRP-Result-r16 [0] RSRP-RangeNR-r15 OPTIONAL, + ssb-RSRQ-Result-r16 [1] RSRQ-RangeNR-r15 OPTIONAL + } OPTIONAL +} + +ResultsPerSSB-IndexList-r16 ::= SEQUENCE (SIZE (1..maxRS-IndexReport-r15)) OF + ResultsPerSSB-IndexIdle-r16 + +MeasResultsPerCellIdleNR-r16 ::= SEQUENCE { + physCellIdNR-r16 [0] PhysCellIdNR-r15, + measIdleResultNR-r16 [1] SEQUENCE { + rsrpResultNR-r16 [0] RSRP-RangeNR-r15 OPTIONAL, + rsrqResultNR-r16 [1] RSRQ-RangeNR-r15 OPTIONAL, + resultRS-IndexList-r16 [2] ResultsPerSSB-IndexList-r16 OPTIONAL + }, + ... +} + +MeasResultIdleNR-r16 ::= SEQUENCE { + carrierFreqNR-r16 [0] ARFCN-ValueNR-r15, + measResultsPerCellListIdleNR-r16 [1] SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF + MeasResultsPerCellIdleNR-r16, + ... +} + +MeasResultListIdleNR-r16 ::= SEQUENCE (SIZE (1..maxIdleMeasCarriers-r16)) OF MeasResultIdleNR-r16 + +UEInformationResponse-v1710-IEs ::= SEQUENCE { + coarseLocationInfo-r17 [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UEInformationResponse-v1610-IEs ::= SEQUENCE { + rach-Report-v1610 [0] RACH-Report-v1610 OPTIONAL, + measResultListExtIdle-r16 [1] MeasResultListExtIdle-r16 OPTIONAL, + measResultListIdleNR-r16 [2] MeasResultListIdleNR-r16 OPTIONAL, + nonCriticalExtension [3] UEInformationResponse-v1710-IEs OPTIONAL +} + +UEInformationResponse-v1530-IEs ::= SEQUENCE { + measResultListIdle-r15 [0] MeasResultListIdle-r15 OPTIONAL, + flightPathInfoReport-r15 [1] FlightPathInfoReport-r15 OPTIONAL, + nonCriticalExtension [2] UEInformationResponse-v1610-IEs OPTIONAL +} + +UEInformationResponse-v1250-IEs ::= SEQUENCE { + mobilityHistoryReport-r12 [0] MobilityHistoryReport-r12 OPTIONAL, + nonCriticalExtension [1] UEInformationResponse-v1530-IEs OPTIONAL +} + +UEInformationResponse-v1130-IEs ::= SEQUENCE { + connEstFailReport-r11 [0] ConnEstFailReport-r11 OPTIONAL, + nonCriticalExtension [1] UEInformationResponse-v1250-IEs OPTIONAL +} + +UEInformationResponse-v1020-IEs ::= SEQUENCE { + logMeasReport-r10 [0] LogMeasReport-r10 OPTIONAL, + nonCriticalExtension [1] UEInformationResponse-v1130-IEs OPTIONAL +} + +-- Regular non critical extensions +UEInformationResponse-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + UEInformationResponse-v9e0-IEs) OPTIONAL, + nonCriticalExtension [1] UEInformationResponse-v1020-IEs OPTIONAL +} + +UEInformationResponse-r9-IEs ::= SEQUENCE { + rach-Report-r9 [0] RACH-Report-r16 OPTIONAL, + rlf-Report-r9 [1] RLF-Report-r9 OPTIONAL, + nonCriticalExtension [2] UEInformationResponse-v930-IEs OPTIONAL +} + +UEInformationResponse-r9 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueInformationResponse-r9 [0] UEInformationResponse-r9-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +ProximityIndication-v930-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +ProximityIndication-r9-IEs ::= SEQUENCE { + type-r9 [0] ENUMERATED { entering(0), leaving(1) }, + carrierFreq-r9 [1] EXPLICIT CHOICE { + eutra-r9 [0] ARFCN-ValueEUTRA, + utra-r9 [1] ARFCN-ValueUTRA, + ..., + eutra2-v9e0 [2] ARFCN-ValueEUTRA-v9e0 + }, + nonCriticalExtension [2] ProximityIndication-v930-IEs OPTIONAL +} + +ProximityIndication-r9 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + proximityIndication-r9 [0] ProximityIndication-r9-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RNReconfigurationComplete-r10-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RNReconfigurationComplete-r10 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + rnReconfigurationComplete-r10 [0] RNReconfigurationComplete-r10-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +CountingResponseInfo-r10 ::= SEQUENCE { + countingResponseService-r10 [0] INTEGER (0..maxServiceCount-1), + ... +} + +CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10 + +MBMSCountingResponse-r10-IEs ::= SEQUENCE { + mbsfn-AreaIndex-r10 [0] INTEGER (0..maxMBSFN-Area-1) OPTIONAL, + countingResponseList-r10 [1] CountingResponseList-r10 OPTIONAL, + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] SEQUENCE { + + } OPTIONAL +} + +MBMSCountingResponse-r10 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + countingResponse-r10 [0] MBMSCountingResponse-r10-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RSTD-InterFreqInfo-r10 ::= SEQUENCE { + carrierFreq-r10 [0] ARFCN-ValueEUTRA, + measPRS-Offset-r10 [1] INTEGER (0..39), + ..., + [[ + carrierFreq-v1090 [2] ARFCN-ValueEUTRA-v9e0 OPTIONAL + ]], + [[ + measPRS-Offset-r15 [3] EXPLICIT CHOICE { + rstd0-r15 [0] INTEGER (0..79), + rstd1-r15 [1] INTEGER (0..159), + rstd2-r15 [2] INTEGER (0..319), + rstd3-r15 [3] INTEGER (0..639), + rstd4-r15 [4] INTEGER (0..1279), + rstd5-r15 [5] INTEGER (0..159), + rstd6-r15 [6] INTEGER (0..319), + rstd7-r15 [7] INTEGER (0..639), + rstd8-r15 [8] INTEGER (0..1279), + rstd9-r15 [9] INTEGER (0..319), + rstd10-r15 [10] INTEGER (0..639), + rstd11-r15 [11] INTEGER (0..1279), + rstd12-r15 [12] INTEGER (0..319), + rstd13-r15 [13] INTEGER (0..639), + rstd14-r15 [14] INTEGER (0..1279), + rstd15-r15 [15] INTEGER (0..639), + rstd16-r15 [16] INTEGER (0..1279), + rstd17-r15 [17] INTEGER (0..639), + rstd18-r15 [18] INTEGER (0..1279), + rstd19-r15 [19] INTEGER (0..639), + rstd20-r15 [20] INTEGER (0..1279) + } OPTIONAL + ]] +} + +RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE (1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10 + +InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE { + rstd-InterFreqIndication-r10 [0] EXPLICIT CHOICE { + start [0] SEQUENCE { + rstd-InterFreqInfoList-r10 [0] RSTD-InterFreqInfoList-r10 + }, + stop [1] NULL + }, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + interFreqRSTDMeasurementIndication-r10 [0] + InterFreqRSTDMeasurementIndication-r10-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +BW-Preference-r14 ::= SEQUENCE { + dl-Preference-r14 [0] ENUMERATED { mhz1dot4(0), mhz5(1), mhz20(2) } OPTIONAL + , + ul-Preference-r14 [1] ENUMERATED { mhz1dot4(0), mhz5(1) } OPTIONAL +} + +TrafficPatternInfo-r14 ::= SEQUENCE { + trafficPeriodicity-r14 [0] ENUMERATED { sf20(0), sf50(1), sf100(2), sf200(3) + , sf300(4), sf400(5), sf500(6), sf600(7), sf700(8), sf800(9), sf900(10), + sf1000(11) }, + timingOffset-r14 [1] INTEGER (0..10239), + priorityInfoSL-r14 [2] SL-Priority-r13 OPTIONAL, + logicalChannelIdentityUL-r14 [3] INTEGER (3..10) OPTIONAL, + messageSize-r14 [4] BIT STRING (SIZE (6)) +} + +TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14 + +DelayBudgetReport-r14 ::= CHOICE { + type1 [0] ENUMERATED { msMinus1280(0), msMinus640(1), msMinus320(2), + msMinus160(3), msMinus80(4), msMinus60(5), msMinus40(6), msMinus20(7), + ms0(8), ms20(9), ms40(10), ms60(11), ms80(12), ms160(13), ms320(14), + ms640(15), ms1280(16) }, + type2 [1] ENUMERATED { msMinus192(0), msMinus168(1), msMinus144(2), + msMinus120(3), msMinus96(4), msMinus72(5), msMinus48(6), msMinus24(7), + ms0(8), ms24(9), ms48(10), ms72(11), ms96(12), ms120(13), ms144(14), + ms168(15), ms192(16) } +} + +OverheatingAssistance-r14 ::= SEQUENCE { + reducedUE-Category [0] SEQUENCE { + reducedUE-CategoryDL [0] INTEGER (0..19), + reducedUE-CategoryUL [1] INTEGER (0..21) + } OPTIONAL, + reducedMaxCCs [1] SEQUENCE { + reducedCCsDL [0] INTEGER (0..31), + reducedCCsUL [1] INTEGER (0..31) + } OPTIONAL +} + +TrafficPatternInfo-v1530 ::= SEQUENCE { + trafficDestination-r15 [0] SL-DestinationIdentity-r12 OPTIONAL, + reliabilityInfoSL-r15 [1] SL-Reliability-r15 OPTIONAL +} + +TrafficPatternInfoList-v1530 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF + TrafficPatternInfo-v1530 + +OverheatingAssistance-v1610 ::= SEQUENCE { + overheatingAssistanceForSCG-r16 [0] OCTET STRING +} + +OverheatingAssistance-v1710 ::= SEQUENCE { + overheatingAssistanceForSCG-FR2-2-r17 [0] OCTET STRING +} + +UEAssistanceInformation-v1710-IEs ::= SEQUENCE { + overheatingAssistance-v1710 [0] OverheatingAssistance-v1710 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UEAssistanceInformation-v1700-IEs ::= SEQUENCE { + uplinkData-r17 [0] ENUMERATED { true(0) } OPTIONAL, + scg-DeactivationPreference-r17 [1] ENUMERATED { scgDeactivationPreferred(0) + , noPreference(1) } OPTIONAL, + nonCriticalExtension [2] UEAssistanceInformation-v1710-IEs OPTIONAL +} + +UEAssistanceInformation-v1610-IEs ::= SEQUENCE { + overheatingAssistance-v1610 [0] OverheatingAssistance-v1610 OPTIONAL, + nonCriticalExtension [1] UEAssistanceInformation-v1700-IEs OPTIONAL +} + +UEAssistanceInformation-v1530-IEs ::= SEQUENCE { + sps-AssistanceInformation-v1530 [0] SEQUENCE { + trafficPatternInfoListSL-v1530 [0] TrafficPatternInfoList-v1530 + } OPTIONAL, + nonCriticalExtension [1] UEAssistanceInformation-v1610-IEs OPTIONAL +} + +UEAssistanceInformation-v1450-IEs ::= SEQUENCE { + overheatingAssistance-r14 [0] OverheatingAssistance-r14 OPTIONAL, + nonCriticalExtension [1] UEAssistanceInformation-v1530-IEs OPTIONAL +} + +UEAssistanceInformation-v1430-IEs ::= SEQUENCE { + bw-Preference-r14 [0] BW-Preference-r14 OPTIONAL, + sps-AssistanceInformation-r14 [1] SEQUENCE { + trafficPatternInfoListSL-r14 [0] TrafficPatternInfoList-r14 OPTIONAL, + trafficPatternInfoListUL-r14 [1] TrafficPatternInfoList-r14 OPTIONAL + } OPTIONAL, + rlm-Report-r14 [2] SEQUENCE { + rlm-Event-r14 [0] ENUMERATED { earlyOutOfSync(0), earlyInSync(1) }, + excessRep-MPDCCH-r14 [1] ENUMERATED { excessRep1(0), excessRep2(1) } + OPTIONAL + } OPTIONAL, + delayBudgetReport-r14 [3] EXPLICIT DelayBudgetReport-r14 OPTIONAL, + nonCriticalExtension [4] UEAssistanceInformation-v1450-IEs OPTIONAL +} + +UEAssistanceInformation-r11-IEs ::= SEQUENCE { + powerPrefIndication-r11 [0] ENUMERATED { normal(0), lowPowerConsumption(1) } + OPTIONAL, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] UEAssistanceInformation-v1430-IEs OPTIONAL +} + +UEAssistanceInformation-r11 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ueAssistanceInformation-r11 [0] UEAssistanceInformation-r11-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +AffectedCarrierFreq-r11 ::= SEQUENCE { + carrierFreq-r11 [0] MeasObjectId, + interferenceDirection-r11 [1] ENUMERATED { eutra(0), other(1), both(2), + spare(3) } +} + +AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11 + + +IDC-SubframePattern-r11 ::= CHOICE { + subframePatternFDD-r11 [0] BIT STRING (SIZE (4)), + subframePatternTDD-r11 [1] EXPLICIT CHOICE { + subframeConfig0-r11 [0] BIT STRING (SIZE (70)), + subframeConfig1-5-r11 [1] BIT STRING (SIZE (10)), + subframeConfig6-r11 [2] BIT STRING (SIZE (60)) + }, + ... +} + +IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11 + + +TDM-AssistanceInfo-r11 ::= CHOICE { + drx-AssistanceInfo-r11 [0] SEQUENCE { + drx-CycleLength-r11 [0] ENUMERATED { sf40(0), sf64(1), sf80(2), sf128(3) + , sf160(4), sf256(5), spare2(6), spare1(7) }, + drx-Offset-r11 [1] INTEGER (0..255) OPTIONAL, + drx-ActiveTime-r11 [2] ENUMERATED { sf20(0), sf30(1), sf40(2), sf60(3), + sf80(4), sf100(5), spare2(6), spare1(7) } + }, + idc-SubframePatternList-r11 [1] IDC-SubframePatternList-r11, + ... +} + +AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId + +AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF + AffectedCarrierFreqComb-r11 + +VictimSystemType-r11 ::= SEQUENCE { + gps-r11 [0] ENUMERATED { true(0) } OPTIONAL, + glonass-r11 [1] ENUMERATED { true(0) } OPTIONAL, + bds-r11 [2] ENUMERATED { true(0) } OPTIONAL, + galileo-r11 [3] ENUMERATED { true(0) } OPTIONAL, + wlan-r11 [4] ENUMERATED { true(0) } OPTIONAL, + bluetooth-r11 [5] ENUMERATED { true(0) } OPTIONAL +} + +AffectedCarrierFreq-v1310 ::= SEQUENCE { + carrierFreq-v1310 [0] MeasObjectId-v1310 OPTIONAL +} + +AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF + AffectedCarrierFreq-v1310 + +AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13 + +AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF + AffectedCarrierFreqComb-r13 + +AffectedCarrierFreqComb-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasObjectId-r13 + +AffectedCarrierFreqCombNR-r15 ::= SEQUENCE (SIZE (1..maxServCellNR-r15)) OF ARFCN-ValueNR-r15 + +AffectedCarrierFreqCombInfoMRDC-r15 ::= SEQUENCE { + victimSystemType-r15 [0] VictimSystemType-r11, + interferenceDirectionMRDC-r15 [1] ENUMERATED { eutra-nr(0), nr(1), other(2) + , eutra-nr-other(3), nr-other(4), spare3(5), spare2(6), spare1(7) }, + affectedCarrierFreqCombMRDC-r15 [2] SEQUENCE { + affectedCarrierFreqCombEUTRA-r15 [0] AffectedCarrierFreqComb-r15 OPTIONAL + , + affectedCarrierFreqCombNR-r15 [1] AffectedCarrierFreqCombNR-r15 + } OPTIONAL +} + +VictimSystemType-v1610 ::= SEQUENCE { + navic-r16 [0] ENUMERATED { true(0) } OPTIONAL +} + +MRDC-AssistanceInfo-r15 ::= SEQUENCE { + affectedCarrierFreqCombInfoListMRDC-r15 [0] SEQUENCE (SIZE (1..maxCombIDC-r11)) OF + AffectedCarrierFreqCombInfoMRDC-r15, + ..., + [[ + affectedCarrierFreqCombInfoListMRDC-v1610 [1] SEQUENCE (SIZE (1..maxCombIDC-r11)) OF + VictimSystemType-v1610 OPTIONAL + ]] +} + +InDeviceCoexIndication-v1610-IEs ::= SEQUENCE { + victimSystemType-v1610 [0] VictimSystemType-v1610 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +InDeviceCoexIndication-v1530-IEs ::= SEQUENCE { + mrdc-AssistanceInfo-r15 [0] MRDC-AssistanceInfo-r15 OPTIONAL, + nonCriticalExtension [1] InDeviceCoexIndication-v1610-IEs OPTIONAL +} + +InDeviceCoexIndication-v1360-IEs ::= SEQUENCE { + hardwareSharingProblem-r13 [0] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [1] InDeviceCoexIndication-v1530-IEs OPTIONAL +} + +InDeviceCoexIndication-v1310-IEs ::= SEQUENCE { + affectedCarrierFreqList-v1310 [0] AffectedCarrierFreqList-v1310 OPTIONAL, + affectedCarrierFreqCombList-r13 [1] AffectedCarrierFreqCombList-r13 OPTIONAL + , + nonCriticalExtension [2] InDeviceCoexIndication-v1360-IEs OPTIONAL +} + +InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE { + ul-CA-AssistanceInfo-r11 [0] SEQUENCE { + affectedCarrierFreqCombList-r11 [0] AffectedCarrierFreqCombList-r11 + OPTIONAL, + victimSystemType-r11 [1] VictimSystemType-r11 + } OPTIONAL, + nonCriticalExtension [1] InDeviceCoexIndication-v1310-IEs OPTIONAL +} + +InDeviceCoexIndication-r11-IEs ::= SEQUENCE { + affectedCarrierFreqList-r11 [0] AffectedCarrierFreqList-r11 OPTIONAL, + tdm-AssistanceInfo-r11 [1] EXPLICIT TDM-AssistanceInfo-r11 OPTIONAL, + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] InDeviceCoexIndication-v11d0-IEs OPTIONAL +} + +InDeviceCoexIndication-r11 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + inDeviceCoexIndication-r11 [0] InDeviceCoexIndication-r11-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9 + +MBMS-ServiceInfo-r13 ::= SEQUENCE { + tmgi-r13 [0] TMGI-r9 +} + +MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13 + +MBMS-ROM-Info-r15 ::= SEQUENCE { + mbms-ROM-Freq-r15 [0] ARFCN-ValueEUTRA-r9, + mbms-ROM-SubcarrierSpacing-r15 [1] ENUMERATED { kHz15(0), kHz7dot5(1), + kHz1dot25(2) }, + mbms-Bandwidth-r15 [2] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) } +} + +MBMS-ROM-Info-r16 ::= SEQUENCE { + mbms-ROM-Freq-r16 [0] ARFCN-ValueEUTRA-r9, + mbms-ROM-SubcarrierSpacing-r16 [1] ENUMERATED { kHz2dot5(0), kHz0dot37(1) }, + mbms-Bandwidth-r16 [2] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) } +} + +MBMSInterestIndication-v1610-IEs ::= SEQUENCE { + mbms-ROM-InfoList-r16 [0] SEQUENCE (SIZE (1..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ROM-Info-r16 OPTIONAL + , + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MBMSInterestIndication-v1540-IEs ::= SEQUENCE { + mbms-ROM-InfoList-r15 [0] SEQUENCE (SIZE (1..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ROM-Info-r15 OPTIONAL + , + nonCriticalExtension [1] MBMSInterestIndication-v1610-IEs OPTIONAL +} + +MBMSInterestIndication-v1310-IEs ::= SEQUENCE { + mbms-Services-r13 [0] MBMS-ServiceList-r13 OPTIONAL, + nonCriticalExtension [1] MBMSInterestIndication-v1540-IEs OPTIONAL +} + +MBMSInterestIndication-r11-IEs ::= SEQUENCE { + mbms-FreqList-r11 [0] CarrierFreqListMBMS-r11 OPTIONAL, + mbms-Priority-r11 [1] ENUMERATED { true(0) } OPTIONAL, + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] MBMSInterestIndication-v1310-IEs OPTIONAL +} + +MBMSInterestIndication-r11 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + interestIndication-r11 [0] MBMSInterestIndication-r11-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +-- Regular non-critical extensions: +FailureReportSCG-r12 ::= SEQUENCE { + failureType-r12 [0] ENUMERATED { t313-Expiry(0), randomAccessProblem(1), + rlc-MaxNumRetx(2), scg-ChangeFailure(3) }, + measResultServFreqList-r12 [1] MeasResultServFreqList-r10 OPTIONAL, + measResultNeighCells-r12 [2] MeasResultList2EUTRA-r9 OPTIONAL, + ..., + [[ + failureType-v1290 [3] ENUMERATED { maxUL-TimingDiff-v1290(0) } OPTIONAL + ]], + [[ + measResultServFreqListExt-r13 [4] MeasResultServFreqListExt-r13 OPTIONAL + ]] +} + +FailureReportSCG-v12d0 ::= SEQUENCE { + measResultNeighCells-v12d0 [0] MeasResultList2EUTRA-v9e0 OPTIONAL +} + +-- Late non-critical extensions: +SCGFailureInformation-v12d0b-IEs ::= SEQUENCE { + failureReportSCG-v12d0 [0] FailureReportSCG-v12d0 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCGFailureInformation-v12d0a-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + SCGFailureInformation-v12d0b-IEs) OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCGFailureInformation-r12-IEs ::= SEQUENCE { + failureReportSCG-r12 [0] FailureReportSCG-r12 OPTIONAL, + nonCriticalExtension [1] SCGFailureInformation-v12d0a-IEs OPTIONAL +} + +SCGFailureInformation-r12 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + scgFailureInformation-r12 [0] SCGFailureInformation-r12-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +SL-CommTxResourceReq-r12 ::= SEQUENCE { + carrierFreq-r12 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, + destinationInfoList-r12 [1] SL-DestinationInfoList-r12 +} + +SL-DiscTxResourceReq-r13 ::= SEQUENCE { + carrierFreqDiscTx-r13 [0] INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReq-r13 [1] INTEGER (1..63) +} + +SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF + SL-DiscTxResourceReq-r13 + +SL-GapFreqInfo-r13 ::= SEQUENCE { + carrierFreq-r13 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, + gapPatternList-r13 [1] SL-GapPatternList-r13 +} + +SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13 + +SL-DiscSysInfoReport-r13 ::= SEQUENCE { + plmn-IdentityList-r13 [0] PLMN-IdentityList OPTIONAL, + cellIdentity-13 [1] CellIdentity OPTIONAL, + carrierFreqInfo-13 [2] ARFCN-ValueEUTRA-r9 OPTIONAL, + discRxResources-r13 [3] SL-DiscRxPoolList-r12 OPTIONAL, + discTxPoolCommon-r13 [4] SL-DiscTxPoolList-r12 OPTIONAL, + discTxPowerInfo-r13 [5] SL-DiscTxPowerInfoList-r12 OPTIONAL, + discSyncConfig-r13 [6] SL-SyncConfigNFreq-r13 OPTIONAL, + discCellSelectionInfo-r13 [7] SEQUENCE { + q-RxLevMin-r13 [0] Q-RxLevMin, + q-RxLevMinOffset-r13 [1] INTEGER (1..8) OPTIONAL + } OPTIONAL, + cellReselectionInfo-r13 [8] SEQUENCE { + q-Hyst-r13 [0] ENUMERATED { dB0(0), dB1(1), dB2(2), dB3(3), dB4(4), + dB5(5), dB6(6), dB8(7), dB10(8), dB12(9), dB14(10), dB16(11), dB18(12) + , dB20(13), dB22(14), dB24(15) }, + q-RxLevMin-r13 [1] Q-RxLevMin, + t-ReselectionEUTRA-r13 [2] T-Reselection + } OPTIONAL, + tdd-Config-r13 [9] TDD-Config OPTIONAL, + freqInfo-r13 [10] SEQUENCE { + ul-CarrierFreq-r13 [0] ARFCN-ValueEUTRA OPTIONAL, + ul-Bandwidth-r13 [1] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) } OPTIONAL, + additionalSpectrumEmission-r13 [2] AdditionalSpectrumEmission OPTIONAL + } OPTIONAL, + p-Max-r13 [11] P-Max OPTIONAL, + referenceSignalPower-r13 [12] INTEGER (-60..50) OPTIONAL, + ..., + [[ + freqInfo-v1370 [13] SEQUENCE { + additionalSpectrumEmission-v1370 [0] AdditionalSpectrumEmission-v10l0 + } OPTIONAL + ]] +} + +SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscSysInfoReportFreq-r13)) OF + SL-DiscSysInfoReport-r13 + +SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14) + +SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE { + carrierFreqCommTx-r14 [0] INTEGER (0..maxFreqV2X-1-r14) OPTIONAL, + v2x-TypeTxSync-r14 [1] SL-TypeTxSync-r14 OPTIONAL, + v2x-DestinationInfoList-r14 [2] SL-DestinationInfoList-r12 OPTIONAL +} + +SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF + SL-V2X-CommTxResourceReq-r14 + +SidelinkUEInformation-v1530-IEs ::= SEQUENCE { + reliabilityInfoListSL-r15 [0] SL-ReliabilityList-r15 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SidelinkUEInformation-v1430-IEs ::= SEQUENCE { + v2x-CommRxInterestedFreqList-r14 [0] SL-V2X-CommFreqList-r14 OPTIONAL, + p2x-CommTxType-r14 [1] ENUMERATED { true(0) } OPTIONAL, + v2x-CommTxResourceReq-r14 [2] SL-V2X-CommTxFreqList-r14 OPTIONAL, + nonCriticalExtension [3] SidelinkUEInformation-v1530-IEs OPTIONAL +} + +SidelinkUEInformation-v1310-IEs ::= SEQUENCE { + commTxResourceReqUC-r13 [0] SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceInfoReqRelay-r13 [1] SEQUENCE { + commTxResourceReqRelay-r13 [0] SL-CommTxResourceReq-r12 OPTIONAL, + commTxResourceReqRelayUC-r13 [1] SL-CommTxResourceReq-r12 OPTIONAL, + ue-Type-r13 [2] ENUMERATED { relayUE(0), remoteUE(1) } + } OPTIONAL, + discTxResourceReq-v1310 [2] SEQUENCE { + carrierFreqDiscTx-r13 [0] INTEGER (1..maxFreq) OPTIONAL, + discTxResourceReqAddFreq-r13 [1] SL-DiscTxResourceReqPerFreqList-r13 + OPTIONAL + } OPTIONAL, + discTxResourceReqPS-r13 [3] SL-DiscTxResourceReq-r13 OPTIONAL, + discRxGapReq-r13 [4] SL-GapRequest-r13 OPTIONAL, + discTxGapReq-r13 [5] SL-GapRequest-r13 OPTIONAL, + discSysInfoReportFreqList-r13 [6] SL-DiscSysInfoReportFreqList-r13 OPTIONAL, + nonCriticalExtension [7] SidelinkUEInformation-v1430-IEs OPTIONAL +} + +SidelinkUEInformation-r12-IEs ::= SEQUENCE { + commRxInterestedFreq-r12 [0] ARFCN-ValueEUTRA-r9 OPTIONAL, + commTxResourceReq-r12 [1] SL-CommTxResourceReq-r12 OPTIONAL, + discRxInterest-r12 [2] ENUMERATED { true(0) } OPTIONAL, + discTxResourceReq-r12 [3] INTEGER (1..63) OPTIONAL, + lateNonCriticalExtension [4] OCTET STRING OPTIONAL, + nonCriticalExtension [5] SidelinkUEInformation-v1310-IEs OPTIONAL +} + +SidelinkUEInformation-r12 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + sidelinkUEInformation-r12 [0] SidelinkUEInformation-r12-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE { + wlan-Status-v1430 [0] WLAN-Status-v1430, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +WLANConnectionStatusReport-r13-IEs ::= SEQUENCE { + wlan-Status-r13 [0] WLAN-Status-r13, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] WLANConnectionStatusReport-v1430-IEs OPTIONAL +} + +WLANConnectionStatusReport-r13 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + wlanConnectionStatusReport-r13 [0] WLANConnectionStatusReport-r13-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +RRCConnectionResumeComplete-v1710-IEs ::= SEQUENCE { + gnss-ValidityDuration-r17 [0] GNSS-ValidityDuration-r17 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +RRCConnectionResumeComplete-v1610-IEs ::= SEQUENCE { + measResultListIdle-r16 [0] MeasResultListIdle-r15 OPTIONAL, + measResultListExtIdle-r16 [1] MeasResultListExtIdle-r16 OPTIONAL, + measResultListIdleNR-r16 [2] MeasResultListIdleNR-r16 OPTIONAL, + scg-ConfigResponseNR-r16 [3] OCTET STRING OPTIONAL, + nonCriticalExtension [4] RRCConnectionResumeComplete-v1710-IEs OPTIONAL +} + +RRCConnectionResumeComplete-v1530-IEs ::= SEQUENCE { + logMeasAvailableBT-r15 [0] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableWLAN-r15 [1] ENUMERATED { true(0) } OPTIONAL, + idleMeasAvailable-r15 [2] ENUMERATED { true(0) } OPTIONAL, + flightPathInfoAvailable-r15 [3] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [4] RRCConnectionResumeComplete-v1610-IEs OPTIONAL +} + +RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE { + selectedPLMN-Identity-r13 [0] INTEGER (1..maxPLMN-r11) OPTIONAL, + dedicatedInfoNAS-r13 [1] DedicatedInfoNAS OPTIONAL, + rlf-InfoAvailable-r13 [2] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailable-r13 [3] ENUMERATED { true(0) } OPTIONAL, + connEstFailInfoAvailable-r13 [4] ENUMERATED { true(0) } OPTIONAL, + mobilityState-r13 [5] ENUMERATED { normal(0), medium(1), high(2), spare(3) } + OPTIONAL, + mobilityHistoryAvail-r13 [6] ENUMERATED { true(0) } OPTIONAL, + logMeasAvailableMBSFN-r13 [7] ENUMERATED { true(0) } OPTIONAL, + lateNonCriticalExtension [8] OCTET STRING OPTIONAL, + nonCriticalExtension [9] RRCConnectionResumeComplete-v1530-IEs OPTIONAL +} + +RRCConnectionResumeComplete-r13 ::= SEQUENCE { + rrc-TransactionIdentifier [0] RRC-TransactionIdentifier, + criticalExtensions [1] EXPLICIT CHOICE { + rrcConnectionResumeComplete-r13 [0] RRCConnectionResumeComplete-r13-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +ULInformationTransferMRDC-r15-IEs ::= SEQUENCE { + ul-DCCH-MessageNR-r15 [0] OCTET STRING OPTIONAL, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +ULInformationTransferMRDC-r15 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ulInformationTransferMRDC-r15 [0] ULInformationTransferMRDC-r15-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..maxFreqNR-r15)) OF + MeasResultFreqFailNR-r15 + +FailureReportSCG-NR-r15 ::= SEQUENCE { + failureType-r15 [0] ENUMERATED { t310-Expiry(0), randomAccessProblem(1), + rlc-MaxNumRetx(2), synchReconfigFailureSCG(3), scg-reconfigFailure(4), + srb3-IntegrityFailure(5), dummy(6) }, + measResultFreqListNR-r15 [1] MeasResultFreqListFailNR-r15 OPTIONAL, + measResultSCG-r15 [2] OCTET STRING OPTIONAL, + ..., + [[ + locationInfo-r16 [3] LocationInfo-r10 OPTIONAL, + logMeasResultListBT-r16 [4] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r16 [5] LogMeasResultListWLAN-r15 OPTIONAL, + failureType-v1610 [6] ENUMERATED { t312-Expiry(0), scg-lbtFailure(1), + beamFailureRecoveryFailure(2), bh-RLF-r16(3), beamFailure-r17(4), + spare3(5), spare2(6), spare1(7) } OPTIONAL + ]] +} + +SCGFailureInformationNR-v1590-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCGFailureInformationNR-r15-IEs ::= SEQUENCE { + failureReportSCG-NR-r15 [0] FailureReportSCG-NR-r15 OPTIONAL, + nonCriticalExtension [1] SCGFailureInformationNR-v1590-IEs OPTIONAL +} + +SCGFailureInformationNR-r15 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + scgFailureInformationNR-r15 [0] SCGFailureInformationNR-r15-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +MeasReportAppLayer-v1590-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MeasReportAppLayer-r15-IEs ::= SEQUENCE { + measReportAppLayerContainer-r15 [0] OCTET STRING (SIZE (1..8000)) OPTIONAL, + serviceType-r15 [1] ENUMERATED { qoe(0), qoemtsi(1), spare6(2), spare5(3), + spare4(4), spare3(5), spare2(6), spare1(7) } OPTIONAL, + nonCriticalExtension [2] MeasReportAppLayer-v1590-IEs OPTIONAL +} + +MeasReportAppLayer-r15 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + measReportAppLayer-r15 [0] MeasReportAppLayer-r15-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +FailedLogicalChannelInfo-r15 ::= SEQUENCE { + failedLogicalChannelIdentity-r15 [0] SEQUENCE { + cellGroupIndication-r15 [0] ENUMERATED { mn(0), sn(1) }, + logicalChannelIdentity-r15 [1] INTEGER (1..10) OPTIONAL, + logicalChannelIdentityExt-r15 [2] INTEGER (32..38) OPTIONAL + }, + failureType [1] ENUMERATED { duplication(0), spare3(1), spare2(2), spare1(3) + } +} + +FailureInformation-r15 ::= SEQUENCE { + failedLogicalChannelInfo-r15 [0] FailedLogicalChannelInfo-r15 OPTIONAL +--nonCriticalExtension is removed in this version as OPTIONAL was missing +} + +ULDedicatedMessageSegment-r16-IEs ::= SEQUENCE { + segmentNumber-r16 [0] INTEGER (0..15), + rrc-MessageSegmentContainer-r16 [1] OCTET STRING, + rrc-MessageSegmentType-r16 [2] ENUMERATED { notLastSegment(0), + lastSegment(1) }, + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + nonCriticalExtension [4] SEQUENCE { + + } OPTIONAL +} + +ULDedicatedMessageSegment-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + ulDedicatedMessageSegment-r16 [0] ULDedicatedMessageSegment-r16-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +PURConfigurationRequest-r16-IEs ::= SEQUENCE { + pur-ConfigRequest-r16 [0] EXPLICIT CHOICE { + pur-ReleaseRequest [0] NULL, + pur-SetupRequest [1] SEQUENCE { + requestedNumOccasions-r16 [0] ENUMERATED { one(0), infinite(1) }, + requestedPeriodicityAndOffset-r16 [1] EXPLICIT + PUR-PeriodicityAndOffset-r16 OPTIONAL, + requestedTBS-r16 [2] ENUMERATED { b328(0), b344(1), b376(2), b392(3), + b408(4), b424(5), b440(6), b456(7), b472(8), b488(9), b504(10), + b536(11), b568(12), b584(13), b616(14), b648(15), b680(16), + b712(17), b744(18), b776(19), b808(20), b840(21), b872(22), + b904(23), b936(24), b968(25), b1000(26), b1032(27), b1064(28), + b1096(29), b1128(30), b1160(31), b1192(32), b1224(33), b1256(34), + b1288(35), b1320(36), b1352(37), b1384(38), b1416(39), b1480(40), + b1544(41), b1608(42), b1672(43), b1736(44), b1800(45), b1864(46), + b1928(47), b1992(48), b2024(49), b2088(50), b2152(51), b2216(52), + b2280(53), b2344(54), b2408(55), b2472(56), b2536(57), b2600(58), + b2664(59), b2728(60), b2792(61), b2856(62), b2984(63) }, + rrc-ACK-r16 [3] ENUMERATED { true(0) } OPTIONAL + } + } OPTIONAL, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +PURConfigurationRequest-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + purConfigurationRequest [0] PURConfigurationRequest-r16-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +FailedLogicalChannelIdentity-r16 ::= SEQUENCE { + cellGroupIndication-r16 [0] ENUMERATED { mn(0), sn(1) }, + logicalChannelIdentity-r16 [1] INTEGER (1..10) OPTIONAL, + logicalChannelIdentityExt-r16 [2] INTEGER (32..38) OPTIONAL +} + +FailureInformation-r16-IEs ::= SEQUENCE { + failedLogicalChannelIdentity-r16 [0] FailedLogicalChannelIdentity-r16 + OPTIONAL, + failureType-r16 [1] ENUMERATED { duplication(0), dapsHO-failure(1), + spare2(2), spare1(3) } OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +FailureInformation-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + failureInformation-r16 [0] FailureInformation-r16-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +MeasResult3EUTRA-r15 ::= SEQUENCE { + carrierFreq-r15 [0] ARFCN-ValueEUTRA-r9, + measResultServingCell-r15 [1] MeasResultEUTRA OPTIONAL, + measResultNeighCellList-r15 [2] MeasResultListEUTRA OPTIONAL, + ... +} + +MeasResultList3EUTRA-r15 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult3EUTRA-r15 + +FailureReportMCG-r16 ::= SEQUENCE { + failureType-r16 [0] ENUMERATED { t310-Expiry(0), randomAccessProblem(1), + rlc-MaxNumRetx(2), t312-Expiry(3), spare4(4), spare3(5), spare2(6), + spare1(7) } OPTIONAL, + measResultFreqListEUTRA-r16 [1] MeasResultList3EUTRA-r15 OPTIONAL, + measResultFreqListNR-r16 [2] MeasResultFreqListFailNR-r15 OPTIONAL, + measResultFreqListGERAN-r16 [3] MeasResultList2GERAN-r10 OPTIONAL, + measResultFreqListUTRA-r16 [4] MeasResultList2UTRA-r9 OPTIONAL, + measResultSCG-r16 [5] OCTET STRING OPTIONAL, + ... +} + +MCGFailureInformation-r16-IEs ::= SEQUENCE { + failureReportMCG-r16 [0] FailureReportMCG-r16 OPTIONAL, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +MCGFailureInformation-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + mcgFailureInformation [0] MCGFailureInformation-r16-IEs, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +ULInformationTransferIRAT-r16-IEs ::= SEQUENCE { + ul-DCCH-MessageNR-r16 [0] OCTET STRING OPTIONAL, + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +ULInformationTransferIRAT-r16 ::= SEQUENCE { + criticalExtensions [0] EXPLICIT CHOICE { + c1 [0] EXPLICIT CHOICE { + ulInformationTransferIRAT-r16 [0] ULInformationTransferIRAT-r16-IEs, + spare3 [1] NULL, + spare2 [2] NULL, + spare1 [3] NULL + }, + criticalExtensionsFuture [1] SEQUENCE { + + } + } +} + +UL-DCCH-MessageType ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + csfbParametersRequestCDMA2000 [0] CSFBParametersRequestCDMA2000, + measurementReport [1] MeasurementReport, + rrcConnectionReconfigurationComplete [2] + RRCConnectionReconfigurationComplete, + rrcConnectionReestablishmentComplete [3] + RRCConnectionReestablishmentComplete, + rrcConnectionSetupComplete [4] RRCConnectionSetupComplete, + securityModeComplete [5] SecurityModeComplete, + securityModeFailure [6] SecurityModeFailure, + ueCapabilityInformation [7] UECapabilityInformation, + ulHandoverPreparationTransfer [8] ULHandoverPreparationTransfer, + ulInformationTransfer [9] ULInformationTransfer, + counterCheckResponse [10] CounterCheckResponse, + ueInformationResponse-r9 [11] UEInformationResponse-r9, + proximityIndication-r9 [12] ProximityIndication-r9, + rnReconfigurationComplete-r10 [13] RNReconfigurationComplete-r10, + mbmsCountingResponse-r10 [14] MBMSCountingResponse-r10, + interFreqRSTDMeasurementIndication-r10 [15] + InterFreqRSTDMeasurementIndication-r10 + }, + messageClassExtension [1] EXPLICIT CHOICE { + c2 [0] EXPLICIT CHOICE { + ueAssistanceInformation-r11 [0] UEAssistanceInformation-r11, + inDeviceCoexIndication-r11 [1] InDeviceCoexIndication-r11, + mbmsInterestIndication-r11 [2] MBMSInterestIndication-r11, + scgFailureInformation-r12 [3] SCGFailureInformation-r12, + sidelinkUEInformation-r12 [4] SidelinkUEInformation-r12, + wlanConnectionStatusReport-r13 [5] WLANConnectionStatusReport-r13, + rrcConnectionResumeComplete-r13 [6] RRCConnectionResumeComplete-r13, + ulInformationTransferMRDC-r15 [7] ULInformationTransferMRDC-r15, + scgFailureInformationNR-r15 [8] SCGFailureInformationNR-r15, + measReportAppLayer-r15 [9] MeasReportAppLayer-r15, + failureInformation-r15 [10] FailureInformation-r15, + ulDedicatedMessageSegment-r16 [11] ULDedicatedMessageSegment-r16, + purConfigurationRequest-r16 [12] PURConfigurationRequest-r16, + failureInformation-r16 [13] FailureInformation-r16, + mcgFailureInformation-r16 [14] MCGFailureInformation-r16, + ulInformationTransferIRAT-r16 [15] ULInformationTransferIRAT-r16 + }, + messageClassExtensionFuture-r11 [1] SEQUENCE { + + } + } +} + +UL-DCCH-Message ::= SEQUENCE { + message [0] EXPLICIT UL-DCCH-MessageType +} + +MBMSSessionInfo-r13 ::= SEQUENCE { + tmgi-r13 [0] TMGI-r9, + sessionId-r13 [1] OCTET STRING (SIZE (1)) OPTIONAL -- Need OR +} + +SC-MTCH-SchedulingInfo-r13 ::= SEQUENCE { + onDurationTimerSCPTM-r13 [0] ENUMERATED { psf1(0), psf2(1), psf3(2), psf4(3) + , psf5(4), psf6(5), psf8(6), psf10(7), psf20(8), psf30(9), psf40(10), + psf50(11), psf60(12), psf80(13), psf100(14), psf200(15) }, + drx-InactivityTimerSCPTM-r13 [1] ENUMERATED { psf0(0), psf1(1), psf2(2), + psf4(3), psf8(4), psf10(5), psf20(6), psf40(7), psf80(8), psf160(9), + ps320(10), psf640(11), psf960(12), psf1280(13), psf1920(14), psf2560(15) + }, + schedulingPeriodStartOffsetSCPTM-r13 [2] EXPLICIT CHOICE { + sf10 [0] INTEGER (0..9), + sf20 [1] INTEGER (0..19), + sf32 [2] INTEGER (0..31), + sf40 [3] INTEGER (0..39), + sf64 [4] INTEGER (0..63), + sf80 [5] INTEGER (0..79), + sf128 [6] INTEGER (0..127), + sf160 [7] INTEGER (0..159), + sf256 [8] INTEGER (0..255), + sf320 [9] INTEGER (0..319), + sf512 [10] INTEGER (0..511), + sf640 [11] INTEGER (0..639), + sf1024 [12] INTEGER (0..1023), + sf2048 [13] INTEGER (0..2048), + sf4096 [14] INTEGER (0..4096), + sf8192 [15] INTEGER (0..8192) + }, + ... +} + +SC-MTCH-Info-r13 ::= SEQUENCE { + mbmsSessionInfo-r13 [0] MBMSSessionInfo-r13, + g-RNTI-r13 [1] BIT STRING (SIZE (16)), + sc-mtch-schedulingInfo-r13 [2] SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r13 [3] BIT STRING (SIZE (maxNeighCell-SCPTM-r13)) OPTIONAL, + ..., + [[ + p-a-r13 [4] ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), dB-1dot77(3), + dB0(4), dB1(5), dB2(6), dB3(7) } OPTIONAL + ]] +} + +SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13 + +PCI-ARFCN-r13 ::= SEQUENCE { + physCellId-r13 [0] PhysCellId, + carrierFreq-r13 [1] ARFCN-ValueEUTRA-r9 OPTIONAL +} + +SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13 + +SCPTMConfiguration-v1340 ::= SEQUENCE { + p-b-r13 [0] INTEGER (0..3) OPTIONAL, -- Need ON + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SCPTMConfiguration-r13 ::= SEQUENCE { + sc-mtch-InfoList-r13 [0] SC-MTCH-InfoList-r13, + scptm-NeighbourCellList-r13 [1] SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + lateNonCriticalExtension [2] OCTET STRING OPTIONAL, + nonCriticalExtension [3] SCPTMConfiguration-v1340 OPTIONAL +} + +SC-MTCH-SchedulingInfo-BR-r14 ::= SEQUENCE { + onDurationTimerSCPTM-r14 [0] ENUMERATED { psf300(0), psf400(1), psf500(2), + psf600(3), psf800(4), psf1000(5), psf1200(6), psf1600(7) }, + drx-InactivityTimerSCPTM-r14 [1] ENUMERATED { psf0(0), psf1(1), psf2(2), + psf4(3), psf8(4), psf16(5), psf32(6), psf64(7), psf128(8), psf256(9), + ps512(10), psf1024(11), psf2048(12), psf4096(13), psf8192(14), + psf16384(15) }, + schedulingPeriodStartOffsetSCPTM-r14 [2] EXPLICIT CHOICE { + sf10 [0] INTEGER (0..9), + sf20 [1] INTEGER (0..19), + sf32 [2] INTEGER (0..31), + sf40 [3] INTEGER (0..39), + sf64 [4] INTEGER (0..63), + sf80 [5] INTEGER (0..79), + sf128 [6] INTEGER (0..127), + sf160 [7] INTEGER (0..159), + sf256 [8] INTEGER (0..255), + sf320 [9] INTEGER (0..319), + sf512 [10] INTEGER (0..511), + sf640 [11] INTEGER (0..639), + sf1024 [12] INTEGER (0..1023), + sf2048 [13] INTEGER (0..2047), + sf4096 [14] INTEGER (0..4095), + sf8192 [15] INTEGER (0..8191) + }, + ... +} + +SC-MTCH-Info-BR-r14 ::= SEQUENCE { + sc-mtch-CarrierFreq-r14 [0] ARFCN-ValueEUTRA-r9, + mbmsSessionInfo-r14 [1] MBMSSessionInfo-r13, + g-RNTI-r14 [2] BIT STRING (SIZE (16)), + sc-mtch-schedulingInfo-r14 [3] SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP + sc-mtch-neighbourCell-r14 [4] BIT STRING (SIZE (maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP + mpdcch-Narrowband-SC-MTCH-r14 [5] INTEGER (1..maxAvailNarrowBands-r13), + mpdcch-NumRepetition-SC-MTCH-r14 [6] ENUMERATED { r1(0), r2(1), r4(2), r8(3) + , r16(4), r32(5), r64(6), r128(7), r256(8) }, + mpdcch-StartSF-SC-MTCH-r14 [7] EXPLICIT CHOICE { + fdd-r14 [0] ENUMERATED { v1(0), v1dot5(1), v2(2), v2dot5(3), v4(4), v5(5) + , v8(6), v10(7) }, + tdd-r14 [1] ENUMERATED { v1(0), v2(1), v4(2), v5(3), v8(4), v10(5), + v20(6) } + }, + mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 [8] ENUMERATED { on(0), off(1) }, + mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 [9] ENUMERATED { ce-ModeA(0), + ce-ModeB(1) }, + mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 [10] ENUMERATED { bw1dot4(0), bw5(1) } + , + mpdcch-Offset-SC-MTCH-r14 [11] ENUMERATED { zero(0), oneEighth(1), + oneQuarter(2), threeEighth(3), oneHalf(4), fiveEighth(5), threeQuarter(6) + , sevenEighth(7) }, + p-a-r14 [12] ENUMERATED { dB-6(0), dB-4dot77(1), dB-3(2), dB-1dot77(3), + dB0(4), dB1(5), dB2(6), dB3(7) } OPTIONAL, + ... +} + +SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14 + +SCPTMConfiguration-BR-v1610 ::= SEQUENCE { + sc-MTCH-InfoList-MultiTB-r16 [0] SC-MTCH-InfoList-BR-r14, + multiTB-Gap-r16 [1] ENUMERATED { sf2(0), sf4(1), sf8(2), sf16(3), sf32(4), + sf64(5), sf128(6), spare(7) } OPTIONAL, + -- Need OR + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +SCPTMConfiguration-BR-r14 ::= SEQUENCE { + sc-mtch-InfoList-r14 [0] SC-MTCH-InfoList-BR-r14, + scptm-NeighbourCellList-r14 [1] SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP + p-b-r14 [2] INTEGER (0..3) OPTIONAL, -- Need OR + lateNonCriticalExtension [3] OCTET STRING OPTIONAL, + nonCriticalExtension [4] SCPTMConfiguration-BR-v1610 OPTIONAL +} + +SC-MCCH-MessageType-r13 ::= CHOICE { + c1 [0] EXPLICIT CHOICE { + scptmConfiguration-r13 [0] SCPTMConfiguration-r13 + }, + messageClassExtension [1] EXPLICIT CHOICE { + c2 [0] EXPLICIT CHOICE { + scptmConfiguration-BR-r14 [0] SCPTMConfiguration-BR-r14, + spare [1] NULL + }, + messageClassExtensionFuture-r14 [1] SEQUENCE { + + } + } +} + +SC-MCCH-Message-r13 ::= SEQUENCE { + message [0] EXPLICIT SC-MCCH-MessageType-r13 +} + +TDD-ConfigSL-r12 ::= SEQUENCE { + subframeAssignmentSL-r12 [0] ENUMERATED { none(0), sa0(1), sa1(2), sa2(3), + sa3(4), sa4(5), sa5(6), sa6(7) } +} + +MeasResultSCG-FailureMRDC-r15 ::= SEQUENCE { + measResultFreqListEUTRA-r15 [0] MeasResultList3EUTRA-r15, + ..., + [[ + locationInfo-r16 [1] LocationInfo-r10 OPTIONAL, + logMeasResultListBT-r16 [2] LogMeasResultListBT-r15 OPTIONAL, + logMeasResultListWLAN-r16 [3] LogMeasResultListWLAN-r15 OPTIONAL + ]] +} + +ROHC-ProfileSupportList-r15 ::= SEQUENCE { + profile0x0001-r15 [0] BOOLEAN, + profile0x0002-r15 [1] BOOLEAN, + profile0x0003-r15 [2] BOOLEAN, + profile0x0004-r15 [3] BOOLEAN, + profile0x0006-r15 [4] BOOLEAN, + profile0x0101-r15 [5] BOOLEAN, + profile0x0102-r15 [6] BOOLEAN, + profile0x0103-r15 [7] BOOLEAN, + profile0x0104-r15 [8] BOOLEAN +} + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles [0] ROHC-ProfileSupportList-r15, + maxNumberROHC-ContextSessions [1] ENUMERATED { cs2(0), cs4(1), cs8(2), + cs12(3), cs16(4), cs24(5), cs32(6), cs48(7), cs64(8), cs128(9), cs256(10) + , cs512(11), cs1024(12), cs16384(13), spare2(14), spare1(15) } DEFAULT cs16, + ... +} + +PhyLayerParameters ::= SEQUENCE { + ue-TxAntennaSelectionSupported [0] BOOLEAN, + ue-SpecificRefSigsSupported [1] BOOLEAN +} + +SupportedBandEUTRA ::= SEQUENCE { + bandEUTRA [0] FreqBandIndicator, + halfDuplex [1] BOOLEAN +} + +SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA + +RF-Parameters ::= SEQUENCE { + supportedBandListEUTRA [0] SupportedBandListEUTRA +} + +InterFreqBandInfo ::= SEQUENCE { + interFreqNeedForGaps [0] BOOLEAN +} + +InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo + +InterRAT-BandInfo ::= SEQUENCE { + interRAT-NeedForGaps [0] BOOLEAN +} + +InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo + +BandInfoEUTRA ::= SEQUENCE { + interFreqBandList [0] InterFreqBandList, + interRAT-BandList [1] InterRAT-BandList OPTIONAL +} + +BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA + +MeasParameters ::= SEQUENCE { + bandListEUTRA [0] BandListEUTRA +} + +SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD + +IRAT-ParametersUTRA-FDD ::= SEQUENCE { + supportedBandListUTRA-FDD [0] SupportedBandListUTRA-FDD +} + +SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandUTRA-TDD128 + +IRAT-ParametersUTRA-TDD128 ::= SEQUENCE { + supportedBandListUTRA-TDD128 [0] SupportedBandListUTRA-TDD128 +} + +SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandUTRA-TDD384 + +IRAT-ParametersUTRA-TDD384 ::= SEQUENCE { + supportedBandListUTRA-TDD384 [0] SupportedBandListUTRA-TDD384 +} + +SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandUTRA-TDD768 + +IRAT-ParametersUTRA-TDD768 ::= SEQUENCE { + supportedBandListUTRA-TDD768 [0] SupportedBandListUTRA-TDD768 +} + +SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN + +IRAT-ParametersGERAN ::= SEQUENCE { + supportedBandListGERAN [0] SupportedBandListGERAN, + interRAT-PS-HO-ToGERAN [1] BOOLEAN +} + +SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE { + supportedBandListHRPD [0] SupportedBandListHRPD, + tx-ConfigHRPD [1] ENUMERATED { single(0), dual(1) }, + rx-ConfigHRPD [2] ENUMERATED { single(0), dual(1) } +} + +SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000 + +IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE { + supportedBandList1XRTT [0] SupportedBandList1XRTT, + tx-Config1XRTT [1] ENUMERATED { single(0), dual(1) }, + rx-Config1XRTT [2] ENUMERATED { single(0), dual(1) } +} + +PhyLayerParameters-v920 ::= SEQUENCE { + enhancedDualLayerFDD-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + enhancedDualLayerTDD-r9 [1] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersGERAN-v920 ::= SEQUENCE { + dtm-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + e-RedirectionGERAN-r9 [1] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersUTRA-v920 ::= SEQUENCE { + e-RedirectionUTRA-r9 [0] ENUMERATED { supported(0) } +} + +IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE { + e-CSFB-1XRTT-r9 [0] ENUMERATED { supported(0) }, + e-CSFB-ConcPS-Mob1XRTT-r9 [1] ENUMERATED { supported(0) } OPTIONAL +} + +CSG-ProximityIndicationParameters-r9 ::= SEQUENCE { + intraFreqProximityIndication-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + interFreqProximityIndication-r9 [1] ENUMERATED { supported(0) } OPTIONAL, + utran-ProximityIndication-r9 [2] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE { + intraFreqSI-AcquisitionForHO-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + interFreqSI-AcquisitionForHO-r9 [1] ENUMERATED { supported(0) } OPTIONAL, + utran-SI-AcquisitionForHO-r9 [2] ENUMERATED { supported(0) } OPTIONAL +} + +SON-Parameters-r9 ::= SEQUENCE { + rach-Report-r9 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { + phyLayerParameters-r9 [0] PhyLayerParameters OPTIONAL, + featureGroupIndicators-r9 [1] BIT STRING (SIZE (32)) OPTIONAL, + featureGroupIndRel9Add-r9 [2] BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersGERAN-r9 [3] IRAT-ParametersGERAN OPTIONAL, + interRAT-ParametersUTRA-r9 [4] IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-r9 [5] IRAT-ParametersCDMA2000-1XRTT-v920 + OPTIONAL, + neighCellSI-AcquisitionParameters-r9 [6] + NeighCellSI-AcquisitionParameters-r9 OPTIONAL, + ... +} + +IRAT-ParametersUTRA-v9c0 ::= SEQUENCE { + voiceOverPS-HS-UTRA-FDD-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + voiceOverPS-HS-UTRA-TDD128-r9 [1] ENUMERATED { supported(0) } OPTIONAL, + srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 [2] ENUMERATED { supported(0) } OPTIONAL, + srvcc-FromUTRA-FDD-ToGERAN-r9 [3] ENUMERATED { supported(0) } OPTIONAL, + srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 [4] ENUMERATED { supported(0) } + OPTIONAL, + srvcc-FromUTRA-TDD128-ToGERAN-r9 [5] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v9d0 ::= SEQUENCE { + tm5-FDD-r9 [0] ENUMERATED { supported(0) } OPTIONAL, + tm5-TDD-r9 [1] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandEUTRA-v9e0 ::= SEQUENCE { + bandEUTRA-v9e0 [0] FreqBandIndicator-v9e0 OPTIONAL +} + +SupportedBandListEUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0 + + +RF-Parameters-v9e0 ::= SEQUENCE { + supportedBandListEUTRA-v9e0 [0] SupportedBandListEUTRA-v9e0 OPTIONAL +} + +IRAT-ParametersUTRA-v9h0 ::= SEQUENCE { + mfbi-UTRA-r9 [0] ENUMERATED { supported(0) } +} + +OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { + otdoa-UE-Assisted-r10 [0] ENUMERATED { supported(0) }, + interFreqRSTD-Measurement-r10 [1] ENUMERATED { supported(0) } OPTIONAL +} + +RF-Parameters-v10f0 ::= SEQUENCE { + modifiedMPR-Behavior-r10 [0] BIT STRING (SIZE (32)) OPTIONAL +} + +CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE { + fourLayerTM3-TM4-r10 [0] ENUMERATED { supported(0) } OPTIONAL +} + +BandParameters-v10i0 ::= SEQUENCE { + bandParametersDL-v10i0 [0] SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF + CA-MIMO-ParametersDL-v10i0 +} + +BandCombinationParameters-v10i0 ::= SEQUENCE { + bandParameterList-v10i0 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v10i0 + OPTIONAL +} + +SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v10i0 + +RF-Parameters-v10i0 ::= SEQUENCE { + supportedBandCombination-v10i0 [0] SupportedBandCombination-v10i0 OPTIONAL +} + +RF-Parameters-v10j0 ::= SEQUENCE { + multiNS-Pmax-r10 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE { + rf-Parameters-v10j0 [0] RF-Parameters-v10j0 OPTIONAL, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v10i0 + +RF-Parameters-v11d0 ::= SEQUENCE { + supportedBandCombinationAdd-v11d0 [0] SupportedBandCombinationAdd-v11d0 + OPTIONAL +} + +Other-Parameters-v11d0 ::= SEQUENCE { + inDeviceCoexInd-UL-CA-r11 [0] ENUMERATED { supported(0) } OPTIONAL +} + +RF-Parameters-v12b0 ::= SEQUENCE { + maxLayersMIMO-Indication-r12 [0] ENUMERATED { supported(0) } OPTIONAL +} + +CE-Parameters-v1370 ::= SEQUENCE { + tm9-CE-ModeA-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + tm9-CE-ModeB-r13 [1] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE { + ce-Parameters-v1370 [0] CE-Parameters-v1370 OPTIONAL +} + +BandParameters-v1380 ::= SEQUENCE { + txAntennaSwitchDL-r13 [0] INTEGER (1..32) OPTIONAL, + txAntennaSwitchUL-r13 [1] INTEGER (1..32) OPTIONAL +} + +BandCombinationParameters-v1380 ::= SEQUENCE { + bandParameterList-v1380 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1380 + OPTIONAL +} + +SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1380 + +SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1380 + +SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1380 + +RF-Parameters-v1380 ::= SEQUENCE { + supportedBandCombination-v1380 [0] SupportedBandCombination-v1380 OPTIONAL, + supportedBandCombinationAdd-v1380 [1] SupportedBandCombinationAdd-v1380 + OPTIONAL, + supportedBandCombinationReduced-v1380 [2] + SupportedBandCombinationReduced-v1380 OPTIONAL +} + +CE-Parameters-v1380 ::= SEQUENCE { + tm6-CE-ModeA-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE { + ce-Parameters-v1380 [0] CE-Parameters-v1380 +} + +BandCombinationParameters-v1390 ::= SEQUENCE { + ue-CA-PowerClass-N-r13 [0] ENUMERATED { class2(0) } OPTIONAL +} + +SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1390 + +SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1390 + +SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1390 + +RF-Parameters-v1390 ::= SEQUENCE { + supportedBandCombination-v1390 [0] SupportedBandCombination-v1390 OPTIONAL, + supportedBandCombinationAdd-v1390 [1] SupportedBandCombinationAdd-v1390 + OPTIONAL, + supportedBandCombinationReduced-v1390 [2] + SupportedBandCombinationReduced-v1390 OPTIONAL +} + +MIMO-WeightedLayersCapabilities-r13 ::= SEQUENCE { + relWeightTwoLayers-r13 [0] ENUMERATED { v1(0), v1dot25(1), v1dot5(2), + v1dot75(3), v2(4), v2dot5(5), v3(6), v4(7) }, + relWeightFourLayers-r13 [1] ENUMERATED { v1(0), v1dot25(1), v1dot5(2), + v1dot75(3), v2(4), v2dot5(5), v3(6), v4(7) } OPTIONAL, + relWeightEightLayers-r13 [2] ENUMERATED { v1(0), v1dot25(1), v1dot5(2), + v1dot75(3), v2(4), v2dot5(5), v3(6), v4(7) } OPTIONAL, + totalWeightedLayers-r13 [3] INTEGER (2..128) +} + +MIMO-UE-Parameters-v13e0 ::= SEQUENCE { + mimo-WeightedLayersCapabilities-r13 [0] MIMO-WeightedLayersCapabilities-r13 + OPTIONAL +} + +PhyLayerParameters-v13e0 ::= SEQUENCE { + mimo-UE-Parameters-v13e0 [0] MIMO-UE-Parameters-v13e0 +} + +UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE { + phyLayerParameters-v13e0 [0] PhyLayerParameters-v13e0, +--Following field is only to be used for late REL-13 extensions + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +MBMS-Parameters-v1470 ::= SEQUENCE { + mbms-MaxBW-r14 [0] EXPLICIT CHOICE { + implicitValue [0] NULL, + explicitValue [1] INTEGER (2..20) + }, + mbms-ScalingFactor1dot25-r14 [1] ENUMERATED { n3(0), n6(1), n9(2), n12(3) } + OPTIONAL, + mbms-ScalingFactor7dot5-r14 [2] ENUMERATED { n1(0), n2(1), n3(2), n4(3) } + OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 [0] ENUMERATED { n8(0), n12(1), n16(2), + n20(3), n24(4), n28(5) } OPTIONAL +} + +MIMO-UE-Parameters-v1470 ::= SEQUENCE { + parametersTM9-v1470 [0] MIMO-UE-ParametersPerTM-v1470, + parametersTM10-v1470 [1] MIMO-UE-ParametersPerTM-v1470 +} + +PhyLayerParameters-v1470 ::= SEQUENCE { + mimo-UE-Parameters-v1470 [0] MIMO-UE-Parameters-v1470 OPTIONAL, + srs-UpPTS-6sym-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE { + csi-ReportingAdvancedMaxPorts-r14 [0] ENUMERATED { n8(0), n12(1), n16(2), + n20(3), n24(4), n28(5) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE { + parametersTM9-v1470 [0] MIMO-CA-ParametersPerBoBCPerTM-v1470, + parametersTM10-v1470 [1] MIMO-CA-ParametersPerBoBCPerTM-v1470 +} + +BandParameters-v1470 ::= SEQUENCE { + bandParametersDL-v1470 [0] MIMO-CA-ParametersPerBoBC-v1470 OPTIONAL +} + +BandCombinationParameters-v1470 ::= SEQUENCE { + bandParameterList-v1470 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1470 + OPTIONAL, + srs-MaxSimultaneousCCs-r14 [1] INTEGER (1..31) OPTIONAL +} + +SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1470 + +SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1470 + +SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1470 + +RF-Parameters-v1470 ::= SEQUENCE { + supportedBandCombination-v1470 [0] SupportedBandCombination-v1470 OPTIONAL, + supportedBandCombinationAdd-v1470 [1] SupportedBandCombinationAdd-v1470 + OPTIONAL, + supportedBandCombinationReduced-v1470 [2] + SupportedBandCombinationReduced-v1470 OPTIONAL +} + +PhyLayerParameters-v14a0 ::= SEQUENCE { + ssp10-TDD-Only-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SRS-CapabilityPerBandPair-v14b0 ::= SEQUENCE { + srs-FlexibleTiming-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + srs-HARQ-ReferenceConfig-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +BandParameters-v14b0 ::= SEQUENCE { + srs-CapabilityPerBandPairList-v14b0 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + SRS-CapabilityPerBandPair-v14b0 OPTIONAL +} + +BandCombinationParameters-v14b0 ::= SEQUENCE { + bandParameterList-v14b0 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v14b0 + OPTIONAL +} + +SupportedBandCombination-v14b0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v14b0 + +SupportedBandCombinationAdd-v14b0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v14b0 + +SupportedBandCombinationReduced-v14b0 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v14b0 + +RF-Parameters-v14b0 ::= SEQUENCE { + supportedBandCombination-v14b0 [0] SupportedBandCombination-v14b0 OPTIONAL, + supportedBandCombinationAdd-v14b0 [1] SupportedBandCombinationAdd-v14b0 + OPTIONAL, + supportedBandCombinationReduced-v14b0 [2] + SupportedBandCombinationReduced-v14b0 OPTIONAL +} + +MeasParameters-v16c0 ::= SEQUENCE { + nr-CellIndividualOffset-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-Capability-v16c0-IEs ::= SEQUENCE { + measParameters-v16c0 [0] MeasParameters-v16c0, +--Following field is only to be used for late REL-16 extensions + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] SEQUENCE { + + } OPTIONAL +} + +UE-EUTRA-Capability-v15x0-IEs ::= SEQUENCE { +--Following field is only to be used for late REL-15 extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v16c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v14x0-IEs ::= SEQUENCE { +--Following field is only to be used for late REL-14 extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v15x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE { + rf-Parameters-v14b0 [0] RF-Parameters-v14b0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v14x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE { + phyLayerParameters-v14a0 [0] PhyLayerParameters-v14a0, + nonCriticalExtension [1] UE-EUTRA-Capability-v14b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE { + mbms-Parameters-v1470 [0] MBMS-Parameters-v1470 OPTIONAL, + phyLayerParameters-v1470 [1] PhyLayerParameters-v1470 OPTIONAL, + rf-Parameters-v1470 [2] RF-Parameters-v1470 OPTIONAL, + nonCriticalExtension [3] UE-EUTRA-Capability-v14a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + UE-EUTRA-Capability-v13e0b-IEs) OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1470-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE { + rf-Parameters-v1390 [0] RF-Parameters-v1390 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v13e0a-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE { + rf-Parameters-v1380 [0] RF-Parameters-v1380 OPTIONAL, + ce-Parameters-v1380 [1] CE-Parameters-v1380, + fdd-Add-UE-EUTRA-Capabilities-v1380 [2] UE-EUTRA-CapabilityAddXDD-Mode-v1380 + , + tdd-Add-UE-EUTRA-Capabilities-v1380 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1380 + , + nonCriticalExtension [4] UE-EUTRA-Capability-v1390-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE { + ce-Parameters-v1370 [0] CE-Parameters-v1370 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1370 [1] UE-EUTRA-CapabilityAddXDD-Mode-v1370 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1370 [2] UE-EUTRA-CapabilityAddXDD-Mode-v1370 + OPTIONAL, + nonCriticalExtension [3] UE-EUTRA-Capability-v1380-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE { +--Following field is only to be used for late REL-12 extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1370-IEs OPTIONAL +} + +UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE { + rf-Parameters-v12b0 [0] RF-Parameters-v12b0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v12x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE { +--Following field is only to be used for late REL-11 extensions + lateNonCriticalExtension [0] OCTET STRING OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v12b0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE { + rf-Parameters-v11d0 [0] RF-Parameters-v11d0 OPTIONAL, + otherParameters-v11d0 [1] Other-Parameters-v11d0 OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v11x0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE { + rf-Parameters-v10i0 [0] RF-Parameters-v10i0 OPTIONAL, +--Following field is only to be used for late REL-10 extensions + lateNonCriticalExtension [1] OCTET STRING (CONTAINING + UE-EUTRA-Capability-v10j0-IEs) OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v11d0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE { + rf-Parameters-v10f0 [0] RF-Parameters-v10f0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v10i0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE { + otdoa-PositioningCapabilities-r10 [0] OTDOA-PositioningCapabilities-r10 + OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v10f0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9h0 [0] IRAT-ParametersUTRA-v9h0 OPTIONAL, +--Following field is only to be used for late REL-9 extensions + lateNonCriticalExtension [1] OCTET STRING OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v10c0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE { + rf-Parameters-v9e0 [0] RF-Parameters-v9e0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v9h0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE { + phyLayerParameters-v9d0 [0] PhyLayerParameters-v9d0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v9e0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE { + interRAT-ParametersUTRA-v9c0 [0] IRAT-ParametersUTRA-v9c0 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v9d0-IEs OPTIONAL +} + +-- Late non critical extensions +UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE { + featureGroupIndRel9Add-r9 [0] BIT STRING (SIZE (32)) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-r9 [1] UE-EUTRA-CapabilityAddXDD-Mode-r9 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-r9 [2] UE-EUTRA-CapabilityAddXDD-Mode-r9 + OPTIONAL, + nonCriticalExtension [3] UE-EUTRA-Capability-v9c0-IEs OPTIONAL +} + +NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE { + nonContiguousUL-RA-WithinCC-Info-r10 [0] ENUMERATED { supported(0) } + OPTIONAL +} + +NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF + NonContiguousUL-RA-WithinCC-r10 + +PhyLayerParameters-v1020 ::= SEQUENCE { + twoAntennaPortsForPUCCH-r10 [0] ENUMERATED { supported(0) } OPTIONAL, + tm9-With-8Tx-FDD-r10 [1] ENUMERATED { supported(0) } OPTIONAL, + pmi-Disabling-r10 [2] ENUMERATED { supported(0) } OPTIONAL, + crossCarrierScheduling-r10 [3] ENUMERATED { supported(0) } OPTIONAL, + simultaneousPUCCH-PUSCH-r10 [4] ENUMERATED { supported(0) } OPTIONAL, + multiClusterPUSCH-WithinCC-r10 [5] ENUMERATED { supported(0) } OPTIONAL, + nonContiguousUL-RA-WithinCC-List-r10 [6] + NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL +} + +BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10 + +CA-MIMO-ParametersDL-r10 ::= SEQUENCE { + ca-BandwidthClassDL-r10 [0] CA-BandwidthClass-r10, + supportedMIMO-CapabilityDL-r10 [1] MIMO-CapabilityDL-r10 OPTIONAL +} + +BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10 + +BandParameters-r10 ::= SEQUENCE { + bandEUTRA-r10 [0] FreqBandIndicator, + bandParametersUL-r10 [1] BandParametersUL-r10 OPTIONAL, + bandParametersDL-r10 [2] BandParametersDL-r10 OPTIONAL +} + +BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 + +SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-r10 + +RF-Parameters-v1020 ::= SEQUENCE { + supportedBandCombination-r10 [0] SupportedBandCombination-r10 +} + +BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA + +MeasParameters-v1020 ::= SEQUENCE { + bandCombinationListEUTRA-r10 [0] BandCombinationListEUTRA-r10 +} + +IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE { + e-CSFB-dual-1XRTT-r10 [0] ENUMERATED { supported(0) } +} + +UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE { + loggedMeasurementsIdle-r10 [0] ENUMERATED { supported(0) } OPTIONAL, + standaloneGNSS-Location-r10 [1] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE { + e-RedirectionUTRA-TDD-r10 [0] ENUMERATED { supported(0) } +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE { + phyLayerParameters-v1060 [0] PhyLayerParameters-v1020 OPTIONAL, + featureGroupIndRel10-v1060 [1] BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1060 [2] IRAT-ParametersCDMA2000-1XRTT-v1020 + OPTIONAL, + interRAT-ParametersUTRA-TDD-v1060 [3] IRAT-ParametersUTRA-TDD-v1020 OPTIONAL + , + ..., + [[ + otdoa-PositioningCapabilities-r10 [4] OTDOA-PositioningCapabilities-r10 + OPTIONAL + ]] +} + +BandCombinationParametersExt-r10 ::= SEQUENCE { + supportedBandwidthCombinationSet-r10 [0] + SupportedBandwidthCombinationSet-r10 OPTIONAL +} + +SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParametersExt-r10 + +RF-Parameters-v1060 ::= SEQUENCE { + supportedBandCombinationExt-r10 [0] SupportedBandCombinationExt-r10 +} + +BandParameters-v1090 ::= SEQUENCE { + bandEUTRA-v1090 [0] FreqBandIndicator-v9e0 OPTIONAL, + ... +} + +BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + BandParameters-v1090 + +SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1090 + +RF-Parameters-v1090 ::= SEQUENCE { + supportedBandCombination-v1090 [0] SupportedBandCombination-v1090 OPTIONAL +} + +PDCP-Parameters-v1130 ::= SEQUENCE { + pdcp-SN-Extension-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + supportRohcContextContinue-r11 [1] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1130 ::= SEQUENCE { + crs-InterfHandl-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + ePDCCH-r11 [1] ENUMERATED { supported(0) } OPTIONAL, + multiACK-CSI-Reporting-r11 [2] ENUMERATED { supported(0) } OPTIONAL, + ss-CCH-InterfHandl-r11 [3] ENUMERATED { supported(0) } OPTIONAL, + tdd-SpecialSubframe-r11 [4] ENUMERATED { supported(0) } OPTIONAL, + txDiv-PUCCH1b-ChSelect-r11 [5] ENUMERATED { supported(0) } OPTIONAL, + ul-CoMP-r11 [6] ENUMERATED { supported(0) } OPTIONAL +} + +BandParameters-v1130 ::= SEQUENCE { + supportedCSI-Proc-r11 [0] ENUMERATED { n1(0), n3(1), n4(2) } +} + +BandCombinationParameters-v1130 ::= SEQUENCE { + multipleTimingAdvance-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + simultaneousRx-Tx-r11 [1] ENUMERATED { supported(0) } OPTIONAL, + bandParameterList-r11 [2] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 + OPTIONAL, + ... +} + +SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1130 + +RF-Parameters-v1130 ::= SEQUENCE { + supportedBandCombination-v1130 [0] SupportedBandCombination-v1130 OPTIONAL +} + +MeasParameters-v1130 ::= SEQUENCE { + rsrqMeasWideband-r11 [0] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE { + cdma2000-NW-Sharing-r11 [0] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-r11 ::= SEQUENCE { + inDeviceCoexInd-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + powerPrefInd-r11 [1] ENUMERATED { supported(0) } OPTIONAL, + ue-Rx-TxTimeDiffMeasurements-r11 [2] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE { + phyLayerParameters-v1130 [0] PhyLayerParameters-v1130 OPTIONAL, + measParameters-v1130 [1] MeasParameters-v1130 OPTIONAL, + otherParameters-r11 [2] Other-Parameters-r11 OPTIONAL, + ... +} + +PhyLayerParameters-v1170 ::= SEQUENCE { + interBandTDD-CA-WithDifferentConfig-r11 [0] BIT STRING (SIZE (2)) OPTIONAL +} + +BandParameters-r11 ::= SEQUENCE { + bandEUTRA-r11 [0] FreqBandIndicator-r11, + bandParametersUL-r11 [1] BandParametersUL-r10 OPTIONAL, + bandParametersDL-r11 [2] BandParametersDL-r10 OPTIONAL, + supportedCSI-Proc-r11 [3] ENUMERATED { n1(0), n3(1), n4(2) } OPTIONAL +} + +BandCombinationParameters-r11 ::= SEQUENCE { + bandParameterList-r11 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r11, + supportedBandwidthCombinationSet-r11 [1] + SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r11 [2] ENUMERATED { supported(0) } OPTIONAL, + simultaneousRx-Tx-r11 [3] ENUMERATED { supported(0) } OPTIONAL, + bandInfoEUTRA-r11 [4] BandInfoEUTRA, + ... +} + +SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-r11 + +RF-Parameters-v1180 ::= SEQUENCE { + freqBandRetrieval-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + requestedBands-r11 [1] SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 + OPTIONAL, + supportedBandCombinationAdd-r11 [2] SupportedBandCombinationAdd-r11 OPTIONAL +} + +MBMS-Parameters-r11 ::= SEQUENCE { + mbms-SCell-r11 [0] ENUMERATED { supported(0) } OPTIONAL, + mbms-NonServingCell-r11 [1] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE { + mbms-Parameters-r11 [0] MBMS-Parameters-r11 +} + +MeasParameters-v11a0 ::= SEQUENCE { + benefitsFromInterruption-r11 [0] ENUMERATED { true(0) } OPTIONAL +} + +NAICS-Capability-Entry-r12 ::= SEQUENCE { + numberOfNAICS-CapableCC-r12 [0] INTEGER (1..5), + numberOfAggregatedPRB-r12 [1] ENUMERATED { n50(0), n75(1), n100(2), n125(3) + , n150(4), n175(5), n200(6), n225(7), n250(8), n275(9), n300(10), + n350(11), n400(12), n450(13), n500(14), spare(15) }, + ... +} + +NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF + NAICS-Capability-Entry-r12 + +PhyLayerParameters-v1250 ::= SEQUENCE { + e-HARQ-Pattern-FDD-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + enhanced-4TxCodebook-r12 [1] ENUMERATED { supported(0) } OPTIONAL, + tdd-FDD-CA-PCellDuplex-r12 [2] BIT STRING (SIZE (2)) OPTIONAL, + phy-TDD-ReConfig-TDD-PCell-r12 [3] ENUMERATED { supported(0) } OPTIONAL, + phy-TDD-ReConfig-FDD-PCell-r12 [4] ENUMERATED { supported(0) } OPTIONAL, + pusch-FeedbackMode-r12 [5] ENUMERATED { supported(0) } OPTIONAL, + pusch-SRS-PowerControl-SubframeSet-r12 [6] ENUMERATED { supported(0) } + OPTIONAL, + csi-SubframeSet-r12 [7] ENUMERATED { supported(0) } OPTIONAL, + noResourceRestrictionForTTIBundling-r12 [8] ENUMERATED { supported(0) } + OPTIONAL, + discoverySignalsInDeactSCell-r12 [9] ENUMERATED { supported(0) } OPTIONAL, + naics-Capability-List-r12 [10] NAICS-Capability-List-r12 OPTIONAL +} + +SupportedBandEUTRA-v1250 ::= SEQUENCE { + dl-256QAM-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + ul-64QAM-r12 [1] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandEUTRA-v1250 + +BandCombinationParameters-v1250 ::= SEQUENCE { + dc-Support-r12 [0] SEQUENCE { + asynchronous-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedCellGrouping-r12 [1] EXPLICIT CHOICE { + threeEntries-r12 [0] BIT STRING (SIZE (3)), + fourEntries-r12 [1] BIT STRING (SIZE (7)), + fiveEntries-r12 [2] BIT STRING (SIZE (15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r12 [1] BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r12 [2] BIT STRING (SIZE (1..maxBands)) OPTIONAL, + ... +} + +SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1250 + +SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1250 + +RF-Parameters-v1250 ::= SEQUENCE { + supportedBandListEUTRA-v1250 [0] SupportedBandListEUTRA-v1250 OPTIONAL, + supportedBandCombination-v1250 [1] SupportedBandCombination-v1250 OPTIONAL, + supportedBandCombinationAdd-v1250 [2] SupportedBandCombinationAdd-v1250 + OPTIONAL, + freqBandPriorityAdjustment-r12 [3] ENUMERATED { supported(0) } OPTIONAL +} + +RLC-Parameters-r12 ::= SEQUENCE { + extended-RLC-LI-Field-r12 [0] ENUMERATED { supported(0) } +} + +UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE { + loggedMBSFNMeasurements-r12 [0] ENUMERATED { supported(0) } +} + +WLAN-IW-Parameters-r12 ::= SEQUENCE { + wlan-IW-RAN-Rules-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + wlan-IW-ANDSF-Policies-r12 [1] ENUMERATED { supported(0) } OPTIONAL +} + +MeasParameters-v1250 ::= SEQUENCE { + timerT312-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + alternativeTimeToTrigger-r12 [1] ENUMERATED { supported(0) } OPTIONAL, + incMonEUTRA-r12 [2] ENUMERATED { supported(0) } OPTIONAL, + incMonUTRA-r12 [3] ENUMERATED { supported(0) } OPTIONAL, + extendedMaxMeasId-r12 [4] ENUMERATED { supported(0) } OPTIONAL, + extendedRSRQ-LowerRange-r12 [5] ENUMERATED { supported(0) } OPTIONAL, + rsrq-OnAllSymbols-r12 [6] ENUMERATED { supported(0) } OPTIONAL, + crs-DiscoverySignalsMeas-r12 [7] ENUMERATED { supported(0) } OPTIONAL, + csi-RS-DiscoverySignalsMeas-r12 [8] ENUMERATED { supported(0) } OPTIONAL +} + +DC-Parameters-r12 ::= SEQUENCE { + drb-TypeSplit-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + drb-TypeSCG-r12 [1] ENUMERATED { supported(0) } OPTIONAL +} + +MBMS-Parameters-v1250 ::= SEQUENCE { + mbms-AsyncDC-r12 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MAC-Parameters-r12 ::= SEQUENCE { + logicalChannelSR-ProhibitTimer-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + longDRX-Command-r12 [1] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE { + phyLayerParameters-v1250 [0] PhyLayerParameters-v1250 OPTIONAL, + measParameters-v1250 [1] MeasParameters-v1250 OPTIONAL +} + +FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF + FreqBandIndicator-r11 + +SupportedBandInfo-r12 ::= SEQUENCE { + support-r12 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 + +SL-Parameters-r12 ::= SEQUENCE { + commSimultaneousTx-r12 [0] ENUMERATED { supported(0) } OPTIONAL, + commSupportedBands-r12 [1] FreqBandIndicatorListEUTRA-r12 OPTIONAL, + discSupportedBands-r12 [2] SupportedBandInfoList-r12 OPTIONAL, + discScheduledResourceAlloc-r12 [3] ENUMERATED { supported(0) } OPTIONAL, + disc-UE-SelectedResourceAlloc-r12 [4] ENUMERATED { supported(0) } OPTIONAL, + disc-SLSS-r12 [5] ENUMERATED { supported(0) } OPTIONAL, + discSupportedProc-r12 [6] ENUMERATED { n50(0), n400(1) } OPTIONAL +} + +CA-MIMO-ParametersDL-v1270 ::= SEQUENCE { + intraBandContiguousCC-InfoList-r12 [0] SEQUENCE (SIZE (1..maxServCell-r10)) OF + IntraBandContiguousCC-Info-r12 +} + +BandParameters-v1270 ::= SEQUENCE { + bandParametersDL-v1270 [0] SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF + CA-MIMO-ParametersDL-v1270 +} + +BandCombinationParameters-v1270 ::= SEQUENCE { + bandParameterList-v1270 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1270 + OPTIONAL +} + +SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1270 + +SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1270 + +RF-Parameters-v1270 ::= SEQUENCE { + supportedBandCombination-v1270 [0] SupportedBandCombination-v1270 OPTIONAL, + supportedBandCombinationAdd-v1270 [1] SupportedBandCombinationAdd-v1270 + OPTIONAL +} + +PhyLayerParameters-v1280 ::= SEQUENCE { + alternativeTBS-Indices-r12 [0] ENUMERATED { supported(0) } OPTIONAL +} + +PDCP-Parameters-v1310 ::= SEQUENCE { + pdcp-SN-Extension-18bits-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +RLC-Parameters-v1310 ::= SEQUENCE { + extendedRLC-SN-SO-Field-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MAC-Parameters-v1310 ::= SEQUENCE { + extendedMAC-LengthField-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + extendedLongDRX-r13 [1] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1310 ::= SEQUENCE { + aperiodicCSI-Reporting-r13 [0] BIT STRING (SIZE (2)) OPTIONAL, + codebook-HARQ-ACK-r13 [1] BIT STRING (SIZE (2)) OPTIONAL, + crossCarrierScheduling-B5C-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + fdd-HARQ-TimingTDD-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + maxNumberUpdatedCSI-Proc-r13 [4] INTEGER (5..32) OPTIONAL, + pucch-Format4-r13 [5] ENUMERATED { supported(0) } OPTIONAL, + pucch-Format5-r13 [6] ENUMERATED { supported(0) } OPTIONAL, + pucch-SCell-r13 [7] ENUMERATED { supported(0) } OPTIONAL, + spatialBundling-HARQ-ACK-r13 [8] ENUMERATED { supported(0) } OPTIONAL, + supportedBlindDecoding-r13 [9] SEQUENCE { + maxNumberDecoding-r13 [0] INTEGER (1..32) OPTIONAL, + pdcch-CandidateReductions-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + skipMonitoringDCI-Format0-1A-r13 [2] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + uci-PUSCH-Ext-r13 [10] ENUMERATED { supported(0) } OPTIONAL, + crs-InterfMitigationTM10-r13 [11] ENUMERATED { supported(0) } OPTIONAL, + pdsch-CollisionHandling-r13 [12] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandEUTRA-v1310 ::= SEQUENCE { + ue-PowerClass-5-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandEUTRA-v1310 + +BandParameters-r13 ::= SEQUENCE { + bandEUTRA-r13 [0] FreqBandIndicator-r11, + bandParametersUL-r13 [1] BandParametersUL-r13 OPTIONAL, + bandParametersDL-r13 [2] BandParametersDL-r13 OPTIONAL, + supportedCSI-Proc-r13 [3] ENUMERATED { n1(0), n3(1), n4(2) } OPTIONAL +} + +BandCombinationParameters-r13 ::= SEQUENCE { + differentFallbackSupported-r13 [0] ENUMERATED { true(0) } OPTIONAL, + bandParameterList-r13 [1] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13, + supportedBandwidthCombinationSet-r13 [2] + SupportedBandwidthCombinationSet-r10 OPTIONAL, + multipleTimingAdvance-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + simultaneousRx-Tx-r13 [4] ENUMERATED { supported(0) } OPTIONAL, + bandInfoEUTRA-r13 [5] BandInfoEUTRA, + dc-Support-r13 [6] SEQUENCE { + asynchronous-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedCellGrouping-r13 [1] EXPLICIT CHOICE { + threeEntries-r13 [0] BIT STRING (SIZE (3)), + fourEntries-r13 [1] BIT STRING (SIZE (7)), + fiveEntries-r13 [2] BIT STRING (SIZE (15)) + } OPTIONAL + } OPTIONAL, + supportedNAICS-2CRS-AP-r13 [7] BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL, + commSupportedBandsPerBC-r13 [8] BIT STRING (SIZE (1..maxBands)) OPTIONAL +} + +SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-r13 + +RF-Parameters-v1310 ::= SEQUENCE { + eNB-RequestedParameters-r13 [0] SEQUENCE { + reducedIntNonContCombRequested-r13 [0] ENUMERATED { true(0) } OPTIONAL, + requestedCCsDL-r13 [1] INTEGER (2..32) OPTIONAL, + requestedCCsUL-r13 [2] INTEGER (2..32) OPTIONAL, + skipFallbackCombRequested-r13 [3] ENUMERATED { true(0) } OPTIONAL + } OPTIONAL, + maximumCCsRetrieval-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + skipFallbackCombinations-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + reducedIntNonContComb-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + supportedBandListEUTRA-v1310 [4] SupportedBandListEUTRA-v1310 OPTIONAL, + supportedBandCombinationReduced-r13 [5] SupportedBandCombinationReduced-r13 + OPTIONAL +} + +MeasParameters-v1310 ::= SEQUENCE { + rs-SINR-Meas-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + allowedCellList-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + extendedMaxObjectId-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + ul-PDCP-Delay-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + extendedFreqPriorities-r13 [4] ENUMERATED { supported(0) } OPTIONAL, + multiBandInfoReport-r13 [5] ENUMERATED { supported(0) } OPTIONAL, + rssi-AndChannelOccupancyReporting-r13 [6] ENUMERATED { supported(0) } + OPTIONAL +} + +DC-Parameters-v1310 ::= SEQUENCE { + pdcp-TransferSplitUL-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + ue-SSTD-Meas-r13 [1] ENUMERATED { supported(0) } OPTIONAL +} + +SL-Parameters-v1310 ::= SEQUENCE { + discSysInfoReporting-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + commMultipleTx-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + discInterFreqTx-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + discPeriodicSLSS-r13 [3] ENUMERATED { supported(0) } OPTIONAL +} + +SCPTM-Parameters-r13 ::= SEQUENCE { + scptm-ParallelReception-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + scptm-SCell-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + scptm-NonServingCell-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + scptm-AsyncDC-r13 [3] ENUMERATED { supported(0) } OPTIONAL +} + +CE-Parameters-r13 ::= SEQUENCE { + ce-ModeA-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-ModeB-r13 [1] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersWLAN-r13 ::= SEQUENCE { + supportedBandListWLAN-r13 [0] SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 + OPTIONAL +} + +LAA-Parameters-r13 ::= SEQUENCE { + crossCarrierSchedulingLAA-DL-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + csi-RS-DRS-RRM-MeasurementsLAA-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + downlinkLAA-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + endingDwPTS-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + secondSlotStartingPosition-r13 [4] ENUMERATED { supported(0) } OPTIONAL, + tm9-LAA-r13 [5] ENUMERATED { supported(0) } OPTIONAL, + tm10-LAA-r13 [6] ENUMERATED { supported(0) } OPTIONAL +} + +LWA-Parameters-r13 ::= SEQUENCE { + lwa-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + lwa-SplitBearer-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + wlan-MAC-Address-r13 [2] OCTET STRING (SIZE (6)) OPTIONAL, + lwa-BufferSize-r13 [3] ENUMERATED { supported(0) } OPTIONAL +} + +WLAN-IW-Parameters-v1310 ::= SEQUENCE { + rclwi-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +LWIP-Parameters-r13 ::= SEQUENCE { + lwip-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE { + phyLayerParameters-v1310 [0] PhyLayerParameters-v1310 OPTIONAL +} + +CE-Parameters-v1320 ::= SEQUENCE { + intraFreqA3-CE-ModeA-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + intraFreqA3-CE-ModeB-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + intraFreqHO-CE-ModeA-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + intraFreqHO-CE-ModeB-r13 [3] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE { + config1-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + config2-r13 [1] ENUMERATED { supported(0) } OPTIONAL, + config3-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + config4-r13 [3] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-BeamformedCapabilities-r13 ::= SEQUENCE { + k-Max-r13 [0] INTEGER (1..8), + n-MaxList-r13 [1] BIT STRING (SIZE (1..7)) OPTIONAL +} + +MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF + MIMO-BeamformedCapabilities-r13 + +MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE { + altCodebook-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + mimo-BeamformedCapabilities-r13 [1] MIMO-BeamformedCapabilityList-r13 +} + +MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 [0] MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 [1] MIMO-UE-BeamformedCapabilities-r13 OPTIONAL, + channelMeasRestriction-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + dmrs-Enhancements-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + csi-RS-EnhancementsTDD-r13 [4] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-UE-Parameters-r13 ::= SEQUENCE { + parametersTM9-r13 [0] MIMO-UE-ParametersPerTM-r13 OPTIONAL, + parametersTM10-r13 [1] MIMO-UE-ParametersPerTM-r13 OPTIONAL, + srs-EnhancementsTDD-r13 [2] ENUMERATED { supported(0) } OPTIONAL, + srs-Enhancements-r13 [3] ENUMERATED { supported(0) } OPTIONAL, + interferenceMeasRestriction-r13 [4] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1320 ::= SEQUENCE { + mimo-UE-Parameters-r13 [0] MIMO-UE-Parameters-r13 OPTIONAL +} + +SupportedBandEUTRA-v1320 ::= SEQUENCE { + intraFreq-CE-NeedForGaps-r13 [0] ENUMERATED { supported(0) } OPTIONAL, + ue-PowerClass-N-r13 [1] ENUMERATED { class1(0), class2(1), class4(2) } + OPTIONAL +} + +SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF + SupportedBandEUTRA-v1320 + +MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE { + nonPrecoded-r13 [0] MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 [1] MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 [2] ENUMERATED { different(0) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE { + parametersTM9-r13 [0] MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL, + parametersTM10-r13 [1] MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL +} + +BandParameters-v1320 ::= SEQUENCE { + bandParametersDL-v1320 [0] MIMO-CA-ParametersPerBoBC-r13 +} + +BandCombinationParameters-v1320 ::= SEQUENCE { + bandParameterList-v1320 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1320 + OPTIONAL, + additionalRx-Tx-PerformanceReq-r13 [1] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1320 + +SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1320 + +SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1320 + +RF-Parameters-v1320 ::= SEQUENCE { + supportedBandListEUTRA-v1320 [0] SupportedBandListEUTRA-v1320 OPTIONAL, + supportedBandCombination-v1320 [1] SupportedBandCombination-v1320 OPTIONAL, + supportedBandCombinationAdd-v1320 [2] SupportedBandCombinationAdd-v1320 + OPTIONAL, + supportedBandCombinationReduced-v1320 [3] + SupportedBandCombinationReduced-v1320 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE { + phyLayerParameters-v1320 [0] PhyLayerParameters-v1320 OPTIONAL, + scptm-Parameters-r13 [1] SCPTM-Parameters-r13 OPTIONAL +} + +PhyLayerParameters-v1330 ::= SEQUENCE { + cch-InterfMitigation-RefRecTypeA-r13 [0] ENUMERATED { supported(0) } + OPTIONAL, + cch-InterfMitigation-RefRecTypeB-r13 [1] ENUMERATED { supported(0) } + OPTIONAL, + cch-InterfMitigation-MaxNumCCs-r13 [2] INTEGER (1..maxServCell-r13) OPTIONAL, + crs-InterfMitigationTM1toTM9-r13 [3] INTEGER (1..maxServCell-r13) OPTIONAL +} + +CE-Parameters-v1350 ::= SEQUENCE { + unicastFrequencyHopping-r13 [0] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1360 ::= SEQUENCE { + inDeviceCoexInd-HardwareSharingInd-r13 [0] ENUMERATED { supported(0) } + OPTIONAL +} + +MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE { + nzp-CSI-RS-AperiodicInfo-r14 [0] SEQUENCE { + nMaxProc-r14 [0] INTEGER (5..32), + nMaxResource-r14 [1] ENUMERATED { n1(0), n2(1), n4(2), n8(3) } + } OPTIONAL, + nzp-CSI-RS-PeriodicInfo-r14 [1] SEQUENCE { + nMaxResource-r14 [0] ENUMERATED { n1(0), n2(1), n4(2), n8(3) } + } OPTIONAL, + zp-CSI-RS-AperiodicInfo-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + ul-dmrs-Enhancements-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + densityReductionNP-r14 [4] ENUMERATED { supported(0) } OPTIONAL, + densityReductionBF-r14 [5] ENUMERATED { supported(0) } OPTIONAL, + hybridCSI-r14 [6] ENUMERATED { supported(0) } OPTIONAL, + semiOL-r14 [7] ENUMERATED { supported(0) } OPTIONAL, + csi-ReportingNP-r14 [8] ENUMERATED { supported(0) } OPTIONAL, + csi-ReportingAdvanced-r14 [9] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-UE-Parameters-v1430 ::= SEQUENCE { + parametersTM9-v1430 [0] MIMO-UE-ParametersPerTM-v1430 OPTIONAL, + parametersTM10-v1430 [1] MIMO-UE-ParametersPerTM-v1430 OPTIONAL +} + +FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE { + unicast-fembmsMixedSCell-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + emptyUnicastRegion-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1430 ::= SEQUENCE { + ce-PUSCH-NB-MaxTBS-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-PDSCH-PUSCH-MaxBandwidth-r14 [1] ENUMERATED { bw5(0), bw20(1) } OPTIONAL, + ce-HARQ-AckBundling-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + ce-PDSCH-TenProcesses-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + ce-RetuningSymbols-r14 [4] ENUMERATED { n0(0), n1(1) } OPTIONAL, + ce-PDSCH-PUSCH-Enhancement-r14 [5] ENUMERATED { supported(0) } OPTIONAL, + ce-SchedulingEnhancement-r14 [6] ENUMERATED { supported(0) } OPTIONAL, + ce-SRS-Enhancement-r14 [7] ENUMERATED { supported(0) } OPTIONAL, + ce-PUCCH-Enhancement-r14 [8] ENUMERATED { supported(0) } OPTIONAL, + ce-ClosedLoopTxAntennaSelection-r14 [9] ENUMERATED { supported(0) } OPTIONAL + , + tdd-SpecialSubframe-r14 [10] ENUMERATED { supported(0) } OPTIONAL, + tdd-TTI-Bundling-r14 [11] ENUMERATED { supported(0) } OPTIONAL, + dmrs-LessUpPTS-r14 [12] ENUMERATED { supported(0) } OPTIONAL, + mimo-UE-Parameters-v1430 [13] MIMO-UE-Parameters-v1430 OPTIONAL, + alternativeTBS-Index-r14 [14] ENUMERATED { supported(0) } OPTIONAL, + feMBMS-Unicast-Parameters-r14 [15] FeMBMS-Unicast-Parameters-r14 OPTIONAL +} + +MAC-Parameters-v1430 ::= SEQUENCE { + shortSPS-IntervalFDD-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + shortSPS-IntervalTDD-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + skipUplinkDynamic-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + skipUplinkSPS-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + multipleUplinkSPS-r14 [4] ENUMERATED { supported(0) } OPTIONAL, + dataInactMon-r14 [5] ENUMERATED { supported(0) } OPTIONAL +} + +MeasParameters-v1430 ::= SEQUENCE { + ceMeasurements-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + ncsg-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + shortMeasurementGap-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + perServingCellMeasurementGap-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + nonUniformGap-r14 [4] ENUMERATED { supported(0) } OPTIONAL +} + +PDCP-Parameters-v1430 ::= SEQUENCE { + supportedUplinkOnlyROHC-Profiles-r14 [0] SEQUENCE { + profile0x0006-r14 [0] BOOLEAN + }, + maxNumberROHC-ContextSessions-r14 [1] ENUMERATED { cs2(0), cs4(1), cs8(2), + cs12(3), cs16(4), cs24(5), cs32(6), cs48(7), cs64(8), cs128(9), cs256(10) + , cs512(11), cs1024(12), cs16384(13), spare2(14), spare1(15) } DEFAULT cs16 +} + +RLC-Parameters-v1430 ::= SEQUENCE { + extendedPollByte-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE { + csi-ReportingNP-r14 [0] ENUMERATED { different(0) } OPTIONAL, + csi-ReportingAdvanced-r14 [1] ENUMERATED { different(0) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE { + parametersTM9-v1430 [0] MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL, + parametersTM10-v1430 [1] MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL +} + +UL-256QAM-perCC-Info-r14 ::= SEQUENCE { + ul-256QAM-perCC-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SRS-CapabilityPerBandPair-r14 ::= SEQUENCE { + retuningInfo [0] SEQUENCE { + rf-RetuningTimeDL-r14 [0] ENUMERATED { n0(0), n0dot5(1), n1(2), n1dot5(3) + , n2(4), n2dot5(5), n3(6), n3dot5(7), n4(8), n4dot5(9), n5(10), + n5dot5(11), n6(12), n6dot5(13), n7(14), spare1(15) } OPTIONAL, + rf-RetuningTimeUL-r14 [1] ENUMERATED { n0(0), n0dot5(1), n1(2), n1dot5(3) + , n2(4), n2dot5(5), n3(6), n3dot5(7), n4(8), n4dot5(9), n5(10), + n5dot5(11), n6(12), n6dot5(13), n7(14), spare1(15) } OPTIONAL + } +} + +BandParameters-v1430 ::= SEQUENCE { + bandParametersDL-v1430 [0] MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL, + ul-256QAM-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + ul-256QAM-perCC-InfoList-r14 [2] SEQUENCE (SIZE (2..maxServCell-r13)) OF + UL-256QAM-perCC-Info-r14 OPTIONAL, + srs-CapabilityPerBandPairList-r14 [3] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + SRS-CapabilityPerBandPair-r14 OPTIONAL +} + +BandCombinationParameters-v1430 ::= SEQUENCE { + bandParameterList-v1430 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1430 + OPTIONAL, + v2x-SupportedTxBandCombListPerBC-r14 [1] BIT STRING (SIZE (1..maxBandComb-r13)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-r14 [2] BIT STRING (SIZE (1..maxBandComb-r13)) OPTIONAL +} + +SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1430 + +SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1430 + +SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1430 + +RF-Parameters-v1430 ::= SEQUENCE { + supportedBandCombination-v1430 [0] SupportedBandCombination-v1430 OPTIONAL, + supportedBandCombinationAdd-v1430 [1] SupportedBandCombinationAdd-v1430 + OPTIONAL, + supportedBandCombinationReduced-v1430 [2] + SupportedBandCombinationReduced-v1430 OPTIONAL, + eNB-RequestedParameters-v1430 [3] SEQUENCE { + requestedDiffFallbackCombList-r14 [0] BandCombinationList-r14 + } OPTIONAL, + diffFallbackCombReport-r14 [4] ENUMERATED { supported(0) } OPTIONAL +} + +LAA-Parameters-v1430 ::= SEQUENCE { + crossCarrierSchedulingLAA-UL-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + uplinkLAA-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + twoStepSchedulingTimingInfo-r14 [2] ENUMERATED { nPlus1(0), nPlus2(1), + nPlus3(2) } OPTIONAL, + uss-BlindDecodingAdjustment-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + uss-BlindDecodingReduction-r14 [4] ENUMERATED { supported(0) } OPTIONAL, + outOfSequenceGrantHandling-r14 [5] ENUMERATED { supported(0) } OPTIONAL +} + +LWA-Parameters-v1430 ::= SEQUENCE { + lwa-HO-WithoutWT-Change-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + lwa-UL-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + wlan-PeriodicMeas-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + wlan-ReportAnyWLAN-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + wlan-SupportedDataRate-r14 [4] INTEGER (1..2048) OPTIONAL +} + +LWIP-Parameters-v1430 ::= SEQUENCE { + lwip-Aggregation-DL-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + lwip-Aggregation-UL-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1430 ::= SEQUENCE { + bwPrefInd-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + rlm-ReportSupport-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +MMTEL-Parameters-r14 ::= SEQUENCE { + delayBudgetReporting-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + pusch-Enhancements-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + recommendedBitRate-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + recommendedBitRateQuery-r14 [3] ENUMERATED { supported(0) } OPTIONAL +} + +MobilityParameters-r14 ::= SEQUENCE { + makeBeforeBreak-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + rach-Less-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +CE-Parameters-v1430 ::= SEQUENCE { + ce-SwitchWithoutHO-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE { + phyLayerParameters-v1430 [0] PhyLayerParameters-v1430 OPTIONAL, + mmtel-Parameters-r14 [1] MMTEL-Parameters-r14 OPTIONAL +} + +MBMS-Parameters-v1430 ::= SEQUENCE { + fembmsDedicatedCell-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + fembmsMixedCell-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + subcarrierSpacingMBMS-khz7dot5-r14 [2] ENUMERATED { supported(0) } OPTIONAL, + subcarrierSpacingMBMS-khz1dot25-r14 [3] ENUMERATED { supported(0) } OPTIONAL +} + +V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14 + +BandParametersTxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassTxSL-r14 [0] V2X-BandwidthClassSL-r14, + v2x-eNB-Scheduled-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + v2x-HighPower-r14 [2] ENUMERATED { supported(0) } OPTIONAL +} + +BandParametersRxSL-r14 ::= SEQUENCE { + v2x-BandwidthClassRxSL-r14 [0] V2X-BandwidthClassSL-r14, + v2x-HighReception-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +V2X-BandParameters-r14 ::= SEQUENCE { + v2x-FreqBandEUTRA-r14 [0] FreqBandIndicator-r11, + bandParametersTxSL-r14 [1] BandParametersTxSL-r14 OPTIONAL, + bandParametersRxSL-r14 [2] BandParametersRxSL-r14 OPTIONAL +} + +V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + V2X-BandParameters-r14 + +V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + V2X-BandCombinationParameters-r14 + +SL-Parameters-v1430 ::= SEQUENCE { + zoneBasedPoolSelection-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + ue-AutonomousWithFullSensing-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + ue-AutonomousWithPartialSensing-r14 [2] ENUMERATED { supported(0) } OPTIONAL + , + sl-CongestionControl-r14 [3] ENUMERATED { supported(0) } OPTIONAL, + v2x-TxWithShortResvInterval-r14 [4] ENUMERATED { supported(0) } OPTIONAL, + v2x-numberTxRxTiming-r14 [5] INTEGER (1..16) OPTIONAL, + v2x-nonAdjacentPSCCH-PSSCH-r14 [6] ENUMERATED { supported(0) } OPTIONAL, + slss-TxRx-r14 [7] ENUMERATED { supported(0) } OPTIONAL, + v2x-SupportedBandCombinationList-r14 [8] V2X-SupportedBandCombination-r14 + OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE { + locationReport-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +HighSpeedEnhParameters-r14 ::= SEQUENCE { + measurementEnhancements-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + demodulationEnhancements-r14 [1] ENUMERATED { supported(0) } OPTIONAL, + prach-Enhancements-r14 [2] ENUMERATED { supported(0) } OPTIONAL +} + +LWA-Parameters-v1440 ::= SEQUENCE { + lwa-RLC-UM-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MAC-Parameters-v1440 ::= SEQUENCE { + rai-Support-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1450 ::= SEQUENCE { + ce-SRS-EnhancementWithoutComb4-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + crs-LessDwPTS-r14 [1] ENUMERATED { supported(0) } OPTIONAL +} + +MUST-Parameters-r14 ::= SEQUENCE { + must-TM234-UpTo2Tx-r14 [0] ENUMERATED { supported(0) } OPTIONAL, + must-TM89-UpToOneInterferingLayer-r14 [1] ENUMERATED { supported(0) } + OPTIONAL, + must-TM10-UpToOneInterferingLayer-r14 [2] ENUMERATED { supported(0) } + OPTIONAL, + must-TM89-UpToThreeInterferingLayers-r14 [3] ENUMERATED { supported(0) } + OPTIONAL, + must-TM10-UpToThreeInterferingLayers-r14 [4] ENUMERATED { supported(0) } + OPTIONAL +} + +BandParameters-v1450 ::= SEQUENCE { + must-CapabilityPerBand-r14 [0] MUST-Parameters-r14 OPTIONAL +} + +BandCombinationParameters-v1450 ::= SEQUENCE { + bandParameterList-v1450 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1450 + OPTIONAL +} + +SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1450 + +SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1450 + +SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1450 + +RF-Parameters-v1450 ::= SEQUENCE { + supportedBandCombination-v1450 [0] SupportedBandCombination-v1450 OPTIONAL, + supportedBandCombinationAdd-v1450 [1] SupportedBandCombinationAdd-v1450 + OPTIONAL, + supportedBandCombinationReduced-v1450 [2] + SupportedBandCombinationReduced-v1450 OPTIONAL +} + +OtherParameters-v1450 ::= SEQUENCE { + overheatingInd-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1460 ::= SEQUENCE { + nonCSG-SI-Reporting-r14 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandNR-r15 ::= SEQUENCE { + bandNR-r15 [0] FreqBandIndicatorNR-r15 +} + +SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SupportedBandNR-r15 + +IRAT-ParametersNR-r15 ::= SEQUENCE { + en-DC-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + eventB2-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + supportedBandListEN-DC-r15 [2] SupportedBandListNR-r15 OPTIONAL +} + +MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE { + nonPrecoded-r13 [0] MIMO-NonPrecodedCapabilities-r13 OPTIONAL, + beamformed-r13 [1] MIMO-BeamformedCapabilityList-r13 OPTIONAL, + dmrs-Enhancements-r13 [2] ENUMERATED { different(0) } OPTIONAL, + csi-ReportingNP-r14 [3] ENUMERATED { different(0) } OPTIONAL, + csi-ReportingAdvanced-r14 [4] ENUMERATED { different(0) } OPTIONAL +} + +MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE { + parametersTM9-r15 [0] MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL, + parametersTM10-r15 [1] MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL +} + +FeatureSetDL-r15 ::= SEQUENCE { + mimo-CA-ParametersPerBoBC-r15 [0] MIMO-CA-ParametersPerBoBC-r15 OPTIONAL, + featureSetPerCC-ListDL-r15 [1] SEQUENCE (SIZE (1..maxServCell-r13)) OF + FeatureSetDL-PerCC-Id-r15 +} + +FeatureSetDL-PerCC-r15 ::= SEQUENCE { + fourLayerTM3-TM4-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedMIMO-CapabilityDL-MRDC-r15 [1] MIMO-CapabilityDL-r10 OPTIONAL, + supportedCSI-Proc-r15 [2] ENUMERATED { n1(0), n3(1), n4(2) } OPTIONAL +} + +FeatureSetUL-r15 ::= SEQUENCE { + featureSetPerCC-ListUL-r15 [0] SEQUENCE (SIZE (1..maxServCell-r13)) OF + FeatureSetUL-PerCC-Id-r15 +} + +FeatureSetUL-PerCC-r15 ::= SEQUENCE { + supportedMIMO-CapabilityUL-r15 [0] MIMO-CapabilityUL-r10 OPTIONAL, + ul-256QAM-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +FeatureSetDL-v1550 ::= SEQUENCE { + dl-1024QAM-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +FeatureSetsEUTRA-r15 ::= SEQUENCE { + featureSetsDL-r15 [0] SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL, + featureSetsDL-PerCC-r15 [1] SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetDL-PerCC-r15 + OPTIONAL, + featureSetsUL-r15 [2] SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetUL-r15 OPTIONAL, + featureSetsUL-PerCC-r15 [3] SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetUL-PerCC-r15 + OPTIONAL, + ..., + [[ + featureSetsDL-v1550 [4] SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-v1550 + OPTIONAL + ]] +} + +PDCP-ParametersNR-r15 ::= SEQUENCE { + rohc-Profiles-r15 [0] ROHC-ProfileSupportList-r15, + rohc-ContextMaxSessions-r15 [1] ENUMERATED { cs2(0), cs4(1), cs8(2), cs12(3) + , cs16(4), cs24(5), cs32(6), cs48(7), cs64(8), cs128(9), cs256(10), + cs512(11), cs1024(12), cs16384(13), spare2(14), spare1(15) } DEFAULT cs16, + rohc-ProfilesUL-Only-r15 [2] SEQUENCE { + profile0x0006-r15 [0] BOOLEAN + }, + rohc-ContextContinue-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + outOfOrderDelivery-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + sn-SizeLo-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + ims-VoiceOverNR-PDCP-MCG-Bearer-r15 [6] ENUMERATED { supported(0) } OPTIONAL + , + ims-VoiceOverNR-PDCP-SCG-Bearer-r15 [7] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE { + pdcp-ParametersNR-r15 [0] PDCP-ParametersNR-r15 OPTIONAL +} + +MeasParameters-v1520 ::= SEQUENCE { + measGapPatterns-r15 [0] BIT STRING (SIZE (8)) OPTIONAL +} + +MeasParameters-v1530 ::= SEQUENCE { + qoe-MeasReport-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + qoe-MTSI-MeasReport-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + ca-IdleModeMeasurements-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + ca-IdleModeValidityArea-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + heightMeas-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + multipleCellsMeasExtension-r15 [5] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1530 ::= SEQUENCE { + assistInfoBitForLC-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + timeReferenceProvision-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + flightPathPlan-r15 [2] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-v1530 ::= SEQUENCE { + reportCGI-NR-EN-DC-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + reportCGI-NR-NoEN-DC-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +SkipSubframeProcessing-r15 ::= SEQUENCE { + skipProcessingDL-Slot-r15 [0] INTEGER (0..3) OPTIONAL, + skipProcessingDL-SubSlot-r15 [1] INTEGER (0..3) OPTIONAL, + skipProcessingUL-Slot-r15 [2] INTEGER (0..3) OPTIONAL, + skipProcessingUL-SubSlot-r15 [3] INTEGER (0..3) OPTIONAL +} + +MAC-Parameters-v1530 ::= SEQUENCE { + min-Proc-TimelineSubslot-r15 [0] SEQUENCE (SIZE (1..3)) OF + ProcessingTimelineSet-r15 OPTIONAL, + skipSubframeProcessing-r15 [1] SkipSubframeProcessing-r15 OPTIONAL, + earlyData-UP-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + dormantSCellState-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + directSCellActivation-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + directSCellHibernation-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + extendedLCID-Duplication-r15 [6] ENUMERATED { supported(0) } OPTIONAL, + sps-ServingCell-r15 [7] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1530 ::= SEQUENCE { + stti-SPT-Capabilities-r15 [0] SEQUENCE { + aperiodicCsi-ReportingSTTI-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + dmrs-BasedSPDCCH-MBSFN-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + dmrs-BasedSPDCCH-nonMBSFN-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + dmrs-PositionPattern-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + dmrs-SharingSubslotPDSCH-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + dmrs-RepetitionSubslotPDSCH-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + epdcch-SPT-differentCells-r15 [6] ENUMERATED { supported(0) } OPTIONAL, + epdcch-STTI-differentCells-r15 [7] ENUMERATED { supported(0) } OPTIONAL, + maxLayersSlotOrSubslotPUSCH-r15 [8] ENUMERATED { oneLayer(0), + twoLayers(1), fourLayers(2) } OPTIONAL, + maxNumberUpdatedCSI-Proc-SPT-r15 [9] INTEGER (5..32) OPTIONAL, + maxNumberUpdatedCSI-Proc-STTI-Comb77-r15 [10] INTEGER (1..32) OPTIONAL, + maxNumberUpdatedCSI-Proc-STTI-Comb27-r15 [11] INTEGER (1..32) OPTIONAL, + maxNumberUpdatedCSI-Proc-STTI-Comb22-Set1-r15 [12] INTEGER (1..32) OPTIONAL, + maxNumberUpdatedCSI-Proc-STTI-Comb22-Set2-r15 [13] INTEGER (1..32) OPTIONAL, + mimo-UE-ParametersSTTI-r15 [14] MIMO-UE-Parameters-r13 OPTIONAL, + mimo-UE-ParametersSTTI-v1530 [15] MIMO-UE-Parameters-v1430 OPTIONAL, + numberOfBlindDecodesUSS-r15 [16] INTEGER (4..32) OPTIONAL, + pdsch-SlotSubslotPDSCH-Decoding-r15 [17] ENUMERATED { supported(0) } + OPTIONAL, + powerUCI-SlotPUSCH [18] ENUMERATED { supported(0) } OPTIONAL, + powerUCI-SubslotPUSCH [19] ENUMERATED { supported(0) } OPTIONAL, + slotPDSCH-TxDiv-TM9and10 [20] ENUMERATED { supported(0) } OPTIONAL, + subslotPDSCH-TxDiv-TM9and10 [21] ENUMERATED { supported(0) } OPTIONAL, + spdcch-differentRS-types-r15 [22] ENUMERATED { supported(0) } OPTIONAL, + srs-DCI7-TriggeringFS2-r15 [23] ENUMERATED { supported(0) } OPTIONAL, + sps-cyclicShift-r15 [24] ENUMERATED { supported(0) } OPTIONAL, + spdcch-Reuse-r15 [25] ENUMERATED { supported(0) } OPTIONAL, + sps-STTI-r15 [26] ENUMERATED { slot(0), subslot(1), slotAndSubslot(2) } + OPTIONAL, + tm8-slotPDSCH-r15 [27] ENUMERATED { supported(0) } OPTIONAL, + tm9-slotSubslot-r15 [28] ENUMERATED { supported(0) } OPTIONAL, + tm9-slotSubslotMBSFN-r15 [29] ENUMERATED { supported(0) } OPTIONAL, + tm10-slotSubslot-r15 [30] ENUMERATED { supported(0) } OPTIONAL, + tm10-slotSubslotMBSFN-r15 [31] ENUMERATED { supported(0) } OPTIONAL, + txDiv-SPUCCH-r15 [32] ENUMERATED { supported(0) } OPTIONAL, + ul-AsyncHarqSharingDiff-TTI-Lengths-r15 [33] ENUMERATED { supported(0) } + OPTIONAL + } OPTIONAL, + ce-Capabilities-r15 [1] SEQUENCE { + ce-CRS-IntfMitig-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-CQI-AlternativeTable-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + ce-PDSCH-FlexibleStartPRB-CE-ModeA-r15 [2] ENUMERATED { supported(0) } + OPTIONAL, + ce-PDSCH-FlexibleStartPRB-CE-ModeB-r15 [3] ENUMERATED { supported(0) } + OPTIONAL, + ce-PDSCH-64QAM-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + ce-PUSCH-FlexibleStartPRB-CE-ModeA-r15 [5] ENUMERATED { supported(0) } + OPTIONAL, + ce-PUSCH-FlexibleStartPRB-CE-ModeB-r15 [6] ENUMERATED { supported(0) } + OPTIONAL, + ce-PUSCH-SubPRB-Allocation-r15 [7] ENUMERATED { supported(0) } OPTIONAL, + ce-UL-HARQ-ACK-Feedback-r15 [8] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + shortCQI-ForSCellActivation-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + mimo-CBSR-AdvancedCSI-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + crs-IntfMitig-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + ul-PowerControlEnhancements-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + urllc-Capabilities-r15 [6] SEQUENCE { + pdsch-RepSubframe-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + pdsch-RepSlot-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + pdsch-RepSubslot-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-MultiConfigSubframe-r15 [3] INTEGER (0..6) OPTIONAL, + pusch-SPS-MaxConfigSubframe-r15 [4] INTEGER (0..31) OPTIONAL, + pusch-SPS-MultiConfigSlot-r15 [5] INTEGER (0..6) OPTIONAL, + pusch-SPS-MaxConfigSlot-r15 [6] INTEGER (0..31) OPTIONAL, + pusch-SPS-MultiConfigSubslot-r15 [7] INTEGER (0..6) OPTIONAL, + pusch-SPS-MaxConfigSubslot-r15 [8] INTEGER (0..31) OPTIONAL, + pusch-SPS-SlotRepPCell-r15 [9] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SlotRepPSCell-r15 [10] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SlotRepSCell-r15 [11] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SubframeRepPCell-r15 [12] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SubframeRepPSCell-r15 [13] ENUMERATED { supported(0) } OPTIONAL + , + pusch-SPS-SubframeRepSCell-r15 [14] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SubslotRepPCell-r15 [15] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SubslotRepPSCell-r15 [16] ENUMERATED { supported(0) } OPTIONAL, + pusch-SPS-SubslotRepSCell-r15 [17] ENUMERATED { supported(0) } OPTIONAL, + semiStaticCFI-r15 [18] ENUMERATED { supported(0) } OPTIONAL, + semiStaticCFI-Pattern-r15 [19] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + altMCS-Table-r15 [7] ENUMERATED { supported(0) } OPTIONAL +} + +CA-MIMO-ParametersDL-r15 ::= SEQUENCE { + supportedMIMO-CapabilityDL-r15 [0] MIMO-CapabilityDL-r10 OPTIONAL, + fourLayerTM3-TM4-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + intraBandContiguousCC-InfoList-r15 [2] SEQUENCE (SIZE (1..maxServCell-r13)) OF + IntraBandContiguousCC-Info-r12 OPTIONAL +} + +CA-MIMO-ParametersUL-r15 ::= SEQUENCE { + supportedMIMO-CapabilityUL-r15 [0] MIMO-CapabilityUL-r10 OPTIONAL +} + +DL-UL-CCs-r15 ::= SEQUENCE { + maxNumberDL-CCs-r15 [0] INTEGER (1..32) OPTIONAL, + maxNumberUL-CCs-r15 [1] INTEGER (1..32) OPTIONAL +} + +STTI-SupportedCombinations-r15 ::= SEQUENCE { + combination-22-r15 [0] DL-UL-CCs-r15 OPTIONAL, + combination-77-r15 [1] DL-UL-CCs-r15 OPTIONAL, + combination-27-r15 [2] DL-UL-CCs-r15 OPTIONAL, + combination-22-27-r15 [3] SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL, + combination-77-22-r15 [4] SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL, + combination-77-27-r15 [5] SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL +} + +STTI-SPT-BandParameters-r15 ::= SEQUENCE { + dl-1024QAM-Slot-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + dl-1024QAM-SubslotTA-1-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + dl-1024QAM-SubslotTA-2-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + simultaneousTx-differentTx-duration-r15 [3] ENUMERATED { supported(0) } + OPTIONAL, + sTTI-CA-MIMO-ParametersDL-r15 [4] CA-MIMO-ParametersDL-r15 OPTIONAL, + sTTI-CA-MIMO-ParametersUL-r15 [5] CA-MIMO-ParametersUL-r15, + sTTI-FD-MIMO-Coexistence [6] ENUMERATED { supported(0) } OPTIONAL, + sTTI-MIMO-CA-ParametersPerBoBCs-r15 [7] MIMO-CA-ParametersPerBoBC-r13 + OPTIONAL, + sTTI-MIMO-CA-ParametersPerBoBCs-v1530 [8] MIMO-CA-ParametersPerBoBC-v1430 + OPTIONAL, + sTTI-SupportedCombinations-r15 [9] STTI-SupportedCombinations-r15 OPTIONAL, + sTTI-SupportedCSI-Proc-r15 [10] ENUMERATED { n1(0), n3(1), n4(2) } OPTIONAL, + ul-256QAM-Slot-r15 [11] ENUMERATED { supported(0) } OPTIONAL, + ul-256QAM-Subslot-r15 [12] ENUMERATED { supported(0) } OPTIONAL, + ... +} + +BandParameters-v1530 ::= SEQUENCE { + ue-TxAntennaSelection-SRS-1T4R-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + ue-TxAntennaSelection-SRS-2T4R-2Pairs-r15 [1] ENUMERATED { supported(0) } + OPTIONAL, + ue-TxAntennaSelection-SRS-2T4R-3Pairs-r15 [2] ENUMERATED { supported(0) } + OPTIONAL, + dl-1024QAM-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + qcl-TypeC-Operation-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + qcl-CRI-BasedCSI-Reporting-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + stti-SPT-BandParameters-r15 [6] STTI-SPT-BandParameters-r15 OPTIONAL +} + +SPT-Parameters-r15 ::= SEQUENCE { + frameStructureType-SPT-r15 [0] BIT STRING (SIZE (3)) OPTIONAL, + maxNumberCCs-SPT-r15 [1] INTEGER (1..32) OPTIONAL +} + +BandCombinationParameters-v1530 ::= SEQUENCE { + bandParameterList-v1530 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1530 + OPTIONAL, + spt-Parameters-r15 [1] SPT-Parameters-r15 OPTIONAL +} + +SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1530 + +SupportedBandCombinationAdd-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1530 + +SupportedBandCombinationReduced-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1530 + +RF-Parameters-v1530 ::= SEQUENCE { + sTTI-SPT-Supported-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedBandCombination-v1530 [1] SupportedBandCombination-v1530 OPTIONAL, + supportedBandCombinationAdd-v1530 [2] SupportedBandCombinationAdd-v1530 + OPTIONAL, + supportedBandCombinationReduced-v1530 [3] + SupportedBandCombinationReduced-v1530 OPTIONAL, + powerClass-14dBm-r15 [4] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedOperatorDic-r15 ::= SEQUENCE { + versionOfDictionary-r15 [0] INTEGER (0..15), + associatedPLMN-ID-r15 [1] PLMN-Identity +} + +SupportedUDC-r15 ::= SEQUENCE { + supportedStandardDic-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + supportedOperatorDic-r15 [1] SupportedOperatorDic-r15 OPTIONAL +} + +PDCP-Parameters-v1530 ::= SEQUENCE { + supportedUDC-r15 [0] SupportedUDC-r15 OPTIONAL, + pdcp-Duplication-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1530 ::= SEQUENCE { + loggedMeasBT-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + loggedMeasWLAN-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + immMeasBT-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + immMeasWLAN-r15 [3] ENUMERATED { supported(0) } OPTIONAL +} + +RLC-Parameters-v1530 ::= SEQUENCE { + flexibleUM-AM-Combinations-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + rlc-AM-Ooo-Delivery-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + rlc-UM-Ooo-Delivery-r15 [2] ENUMERATED { supported(0) } OPTIONAL +} + +UE-CategorySL-r15 ::= SEQUENCE { + ue-CategorySL-C-TX-r15 [0] INTEGER (1..5), + ue-CategorySL-C-RX-r15 [1] INTEGER (1..4) +} + +V2X-BandParameters-v1530 ::= SEQUENCE { + v2x-EnhancedHighReception-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +V2X-BandCombinationParameters-v1530 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + V2X-BandParameters-v1530 + +V2X-SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + V2X-BandCombinationParameters-v1530 + +SL-Parameters-v1530 ::= SEQUENCE { + slss-SupportedTxFreq-r15 [0] ENUMERATED { single(0), multiple(1) } OPTIONAL, + sl-64QAM-Tx-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + sl-TxDiversity-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + ue-CategorySL-r15 [3] UE-CategorySL-r15 OPTIONAL, + v2x-SupportedBandCombinationList-v1530 [4] + V2X-SupportedBandCombination-v1530 OPTIONAL +} + +LAA-Parameters-v1530 ::= SEQUENCE { + aul-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + laa-PUSCH-Mode1-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + laa-PUSCH-Mode2-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + laa-PUSCH-Mode3-r15 [3] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1530 ::= SEQUENCE { + neighCellSI-AcquisitionParameters-v1530 [0] + NeighCellSI-AcquisitionParameters-v1530 OPTIONAL, + reducedCP-Latency-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1540 ::= SEQUENCE { + stti-SPT-Capabilities-v1540 [0] SEQUENCE { + slotPDSCH-TxDiv-TM8-r15 [0] ENUMERATED { supported(0) } + } OPTIONAL, + crs-IM-TM1-toTM9-OneRX-Port-v1540 [1] ENUMERATED { supported(0) } OPTIONAL, + cch-IM-RefRecTypeA-OneRX-Port-v1540 [2] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1540 ::= SEQUENCE { + inDeviceCoexInd-ENDC-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +EUTRA-5GC-Parameters-r15 ::= SEQUENCE { + eutra-5GC-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-EUTRA-5GC-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + ho-EUTRA-5GC-FDD-TDD-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + ho-InterfreqEUTRA-5GC-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + ims-VoiceOverMCG-BearerEUTRA-5GC-r15 [4] ENUMERATED { supported(0) } + OPTIONAL, + inactiveState-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + reflectiveQoS-r15 [6] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersNR-v1540 ::= SEQUENCE { + eutra-5GC-HO-ToNR-FDD-FR1-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + eutra-5GC-HO-ToNR-TDD-FR1-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + eutra-5GC-HO-ToNR-FDD-FR2-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + eutra-5GC-HO-ToNR-TDD-FR2-r15 [3] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-ToNR-FDD-FR1-r15 [4] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-ToNR-TDD-FR1-r15 [5] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-ToNR-FDD-FR2-r15 [6] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-ToNR-TDD-FR2-r15 [7] ENUMERATED { supported(0) } OPTIONAL, + ims-VoiceOverNR-FR1-r15 [8] ENUMERATED { supported(0) } OPTIONAL, + ims-VoiceOverNR-FR2-r15 [9] ENUMERATED { supported(0) } OPTIONAL, + sa-NR-r15 [10] ENUMERATED { supported(0) } OPTIONAL, + supportedBandListNR-SA-r15 [11] SupportedBandListNR-r15 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1540 ::= SEQUENCE { + eutra-5GC-Parameters-r15 [0] EUTRA-5GC-Parameters-r15 OPTIONAL, + irat-ParametersNR-v1540 [1] IRAT-ParametersNR-v1540 OPTIONAL +} + +SL-Parameters-v1540 ::= SEQUENCE { + sl-64QAM-Rx-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + sl-RateMatchingTBSScaling-r15 [1] ENUMERATED { supported(0) } OPTIONAL, + sl-LowT2min-r15 [2] ENUMERATED { supported(0) } OPTIONAL, + v2x-SensingReportingMode3-r15 [3] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-v1550 ::= SEQUENCE { + eutra-CGI-Reporting-ENDC-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + utra-GERAN-CGI-Reporting-ENDC-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1550 ::= SEQUENCE { + dmrs-OverheadReduction-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MAC-Parameters-v1550 ::= SEQUENCE { + eLCID-Support-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1550 ::= SEQUENCE { + neighCellSI-AcquisitionParameters-v1550 [0] + NeighCellSI-AcquisitionParameters-v1550 OPTIONAL +} + +PDCP-ParametersNR-v1560 ::= SEQUENCE { + ims-VoNR-PDCP-SCG-NGENDC-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersNR-v1560 ::= SEQUENCE { + ng-EN-DC-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1560 ::= SEQUENCE { + pdcp-ParametersNR-v1560 [0] PDCP-ParametersNR-v1560 +} + +RF-Parameters-v1570 ::= SEQUENCE { + dl-1024QAM-ScalingFactor-r15 [0] ENUMERATED { v1(0), v1dot2(1), v1dot25(2) } + , + dl-1024QAM-TotalWeightedLayers-r15 [1] INTEGER (0..10) +} + +IRAT-ParametersNR-v1570 ::= SEQUENCE { + ss-SINR-Meas-NR-FR1-r15 [0] ENUMERATED { supported(0) } OPTIONAL, + ss-SINR-Meas-NR-FR2-r15 [1] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-v15a0 ::= SEQUENCE { + eutra-CGI-Reporting-NEDC-r15 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v15a0 ::= SEQUENCE { + phyLayerParameters-v1530 [0] PhyLayerParameters-v1530 OPTIONAL, + phyLayerParameters-v1540 [1] PhyLayerParameters-v1540 OPTIONAL, + phyLayerParameters-v1550 [2] PhyLayerParameters-v1550 OPTIONAL, + neighCellSI-AcquisitionParameters-v15a0 [3] + NeighCellSI-AcquisitionParameters-v15a0 +} + +HighSpeedEnhParameters-v1610 ::= SEQUENCE { + measurementEnhancementsSCell-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + measurementEnhancements2-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + demodulationEnhancements2-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + interRAT-enhancementNR-r16 [3] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-v1610 ::= SEQUENCE { + eutra-SI-AcquisitionForHO-ENDC-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + nr-AutonomousGaps-ENDC-FR1-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + nr-AutonomousGaps-ENDC-FR2-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + nr-AutonomousGaps-FR1-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + nr-AutonomousGaps-FR2-r16 [4] ENUMERATED { supported(0) } OPTIONAL +} + +MBMS-SupportedBandInfo-r16 ::= SEQUENCE { + subcarrierSpacingMBMS-khz2dot5-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + subcarrierSpacingMBMS-khz0dot37-r16 [1] SEQUENCE { + timeSeparationSlot2-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + timeSeparationSlot4-r16 [1] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL +} + +MBMS-Parameters-v1610 ::= SEQUENCE { + mbms-ScalingFactor2dot5-r16 [0] ENUMERATED { n2(0), n4(1), n6(2), n8(3) } + OPTIONAL, + mbms-ScalingFactor0dot37-r16 [1] ENUMERATED { n12(0), n16(1), n20(2), n24(3) + } OPTIONAL, + mbms-SupportedBandInfoList-r16 [2] SEQUENCE (SIZE (1..maxBands)) OF + MBMS-SupportedBandInfo-r16 +} + +PDCP-Parameters-v1610 ::= SEQUENCE { + pdcp-VersionChangeWithoutHO-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + ehc-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + continueEHC-Context-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + maxNumberEHC-Contexts-r16 [3] ENUMERATED { cs2(0), cs4(1), cs8(2), cs16(3), + cs32(4), cs64(5), cs128(6), cs256(7), cs512(8), cs1024(9), cs2048(10), + cs4096(11), cs8192(12), cs16384(13), cs32768(14), cs65536(15) } OPTIONAL, + jointEHC-ROHC-Config-r16 [4] ENUMERATED { supported(0) } OPTIONAL +} + +MAC-Parameters-v1610 ::= SEQUENCE { + directMCG-SCellActivationResume-r16 [0] ENUMERATED { supported(0) } OPTIONAL + , + directSCG-SCellActivationResume-r16 [1] ENUMERATED { supported(0) } OPTIONAL + , + earlyData-UP-5GC-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + rai-SupportEnh-r16 [3] ENUMERATED { supported(0) } OPTIONAL +} + +CE-MultiTB-Parameters-r16 ::= SEQUENCE { + pdsch-MultiTB-CE-ModeA-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + pdsch-MultiTB-CE-ModeB-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + pusch-MultiTB-CE-ModeA-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + pusch-MultiTB-CE-ModeB-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-64QAM-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-EarlyTermination-r16 [5] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-FrequencyHopping-r16 [6] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-HARQ-AckBundling-r16 [7] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-Interleaving-r16 [8] ENUMERATED { supported(0) } OPTIONAL, + ce-MultiTB-SubPRB-r16 [9] ENUMERATED { supported(0) } OPTIONAL +} + +CE-ResourceResvParameters-r16 ::= SEQUENCE { + subframeResourceResvDL-CE-ModeA-r16 [0] ENUMERATED { supported(0) } OPTIONAL + , + subframeResourceResvDL-CE-ModeB-r16 [1] ENUMERATED { supported(0) } OPTIONAL + , + subframeResourceResvUL-CE-ModeA-r16 [2] ENUMERATED { supported(0) } OPTIONAL + , + subframeResourceResvUL-CE-ModeB-r16 [3] ENUMERATED { supported(0) } OPTIONAL + , + slotSymbolResourceResvDL-CE-ModeA-r16 [4] ENUMERATED { supported(0) } + OPTIONAL, + slotSymbolResourceResvDL-CE-ModeB-r16 [5] ENUMERATED { supported(0) } + OPTIONAL, + slotSymbolResourceResvUL-CE-ModeA-r16 [6] ENUMERATED { supported(0) } + OPTIONAL, + slotSymbolResourceResvUL-CE-ModeB-r16 [7] ENUMERATED { supported(0) } + OPTIONAL, + subcarrierPuncturingCE-ModeA-r16 [8] ENUMERATED { supported(0) } OPTIONAL, + subcarrierPuncturingCE-ModeB-r16 [9] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1610 ::= SEQUENCE { + ce-Capabilities-v1610 [0] SEQUENCE { + ce-CSI-RS-Feedback-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-CSI-RS-FeedbackCodebookRestriction-r16 [1] ENUMERATED { supported(0) } + OPTIONAL, + crs-ChEstMPDCCH-CE-ModeA-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + crs-ChEstMPDCCH-CE-ModeB-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + crs-ChEstMPDCCH-CSI-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + crs-ChEstMPDCCH-ReciprocityTDD-r16 [5] ENUMERATED { supported(0) } + OPTIONAL, + etws-CMAS-RxInConnCE-ModeA-r16 [6] ENUMERATED { supported(0) } OPTIONAL, + etws-CMAS-RxInConnCE-ModeB-r16 [7] ENUMERATED { supported(0) } OPTIONAL, + mpdcch-InLteControlRegionCE-ModeA-r16 [8] ENUMERATED { supported(0) } + OPTIONAL, + mpdcch-InLteControlRegionCE-ModeB-r16 [9] ENUMERATED { supported(0) } + OPTIONAL, + pdsch-InLteControlRegionCE-ModeA-r16 [10] ENUMERATED { supported(0) } + OPTIONAL, + pdsch-InLteControlRegionCE-ModeB-r16 [11] ENUMERATED { supported(0) } + OPTIONAL, + multiTB-Parameters-r16 [12] CE-MultiTB-Parameters-r16 OPTIONAL, + resourceResvParameters-r16 [13] CE-ResourceResvParameters-r16 OPTIONAL + } OPTIONAL, + widebandPRG-Slot-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + widebandPRG-Subslot-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + widebandPRG-Subframe-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + addSRS-r16 [4] SEQUENCE { + addSRS-FrequencyHopping-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + addSRS-AntennaSwitching-r16 [1] ENUMERATED { useBasic(0) } OPTIONAL, + addSRS-CarrierSwitching-r16 [2] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + virtualCellID-BasicSRS-r16 [5] ENUMERATED { supported(0) } OPTIONAL, + virtualCellID-AddSRS-r16 [6] ENUMERATED { supported(0) } OPTIONAL +} + +InterRAT-BandInfoNR-r16 ::= SEQUENCE { + interRAT-NeedForGapsNR-r16 [0] BOOLEAN +} + +InterRAT-BandListNR-r16 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF InterRAT-BandInfoNR-r16 + +MeasGapInfoNR-r16 ::= SEQUENCE { + interRAT-BandListNR-EN-DC-r16 [0] InterRAT-BandListNR-r16 OPTIONAL, + interRAT-BandListNR-SA-r16 [1] InterRAT-BandListNR-r16 OPTIONAL +} + +MeasParameters-v1610 ::= SEQUENCE { + bandInfoNR-v1610 [0] SEQUENCE (SIZE (1..maxBands)) OF MeasGapInfoNR-r16 OPTIONAL, + altFreqPriority-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + ce-DL-ChannelQualityReporting-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + ce-MeasRSS-Dedicated-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + eutra-IdleInactiveMeasurements-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + nr-IdleInactiveMeasFR1-r16 [5] ENUMERATED { supported(0) } OPTIONAL, + nr-IdleInactiveMeasFR2-r16 [6] ENUMERATED { supported(0) } OPTIONAL, + idleInactiveValidityAreaList-r16 [7] ENUMERATED { supported(0) } OPTIONAL, + measGapPatterns-NRonly-r16 [8] ENUMERATED { supported(0) } OPTIONAL, + measGapPatterns-NRonly-ENDC-r16 [9] ENUMERATED { supported(0) } OPTIONAL +} + +PUR-Parameters-r16 ::= SEQUENCE { + pur-CP-5GC-CE-ModeA-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + pur-CP-5GC-CE-ModeB-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + pur-UP-5GC-CE-ModeA-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + pur-UP-5GC-CE-ModeB-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + pur-CP-EPC-CE-ModeA-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + pur-CP-EPC-CE-ModeB-r16 [5] ENUMERATED { supported(0) } OPTIONAL, + pur-UP-EPC-CE-ModeA-r16 [6] ENUMERATED { supported(0) } OPTIONAL, + pur-UP-EPC-CE-ModeB-r16 [7] ENUMERATED { supported(0) } OPTIONAL, + pur-CP-L1Ack-r16 [8] ENUMERATED { supported(0) } OPTIONAL, + pur-FrequencyHopping-r16 [9] ENUMERATED { supported(0) } OPTIONAL, + pur-PUSCH-NB-MaxTBS-r16 [10] ENUMERATED { supported(0) } OPTIONAL, + pur-RSRP-Validation-r16 [11] ENUMERATED { supported(0) } OPTIONAL, + pur-SubPRB-CE-ModeA-r16 [12] ENUMERATED { supported(0) } OPTIONAL, + pur-SubPRB-CE-ModeB-r16 [13] ENUMERATED { supported(0) } OPTIONAL +} + +EUTRA-5GC-Parameters-v1610 ::= SEQUENCE { + ce-InactiveState-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-r16 [1] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1610 ::= SEQUENCE { + resumeWithStoredMCG-SCells-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + resumeWithMCG-SCellConfig-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + resumeWithStoredSCG-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + resumeWithSCG-Config-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + mcgRLF-RecoveryViaSCG-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + overheatingIndForSCG-r16 [5] ENUMERATED { supported(0) } OPTIONAL +} + +MMTEL-Parameters-v1610 ::= SEQUENCE { + recommendedBitRateMultiplier-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersNR-v1610 ::= SEQUENCE { + nr-HO-ToEN-DC-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-HO-ToNR-FDD-FR1-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-HO-ToNR-TDD-FR1-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-HO-ToNR-FDD-FR2-r16 [3] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-HO-ToNR-TDD-FR2-r16 [4] ENUMERATED { supported(0) } OPTIONAL +} + +SRS-CapabilityPerBandPair-v1610 ::= SEQUENCE { + addSRS-CarrierSwitching-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +BandParameters-v1610 ::= SEQUENCE { + intraFreqDAPS-r16 [0] SEQUENCE { + intraFreqAsyncDAPS-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + dummy [1] ENUMERATED { supported(0) } OPTIONAL, + intraFreqTwoTAGs-DAPS-r16 [2] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + addSRS-FrequencyHopping-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + addSRS-AntennaSwitching-r16 [2] SEQUENCE { + addSRS-1T2R-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + addSRS-1T4R-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + addSRS-2T4R-2pairs-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + addSRS-2T4R-3pairs-r16 [3] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL, + srs-CapabilityPerBandPairList-v1610 [3] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + SRS-CapabilityPerBandPair-v1610 OPTIONAL +} + +-- If an additional band combination parameter is defined, which is supported for MR-DC, +-- it shall be defined in the IE CA-ParametersEUTRA in TS 38.331 [82]. +BandCombinationParameters-v1610 ::= SEQUENCE { + measGapInfoNR-r16 [0] MeasGapInfoNR-r16 OPTIONAL, + bandParameterList-v1610 [1] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1610 + OPTIONAL, + interFreqDAPS-r16 [2] SEQUENCE { + interFreqAsyncDAPS-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + interFreqMultiUL-TransmissionDAPS-r16 [1] ENUMERATED { supported(0) } + OPTIONAL + } OPTIONAL +} + +SupportedBandCombination-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1610 + +SupportedBandCombinationAdd-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1610 + +SupportedBandCombinationReduced-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1610 + +RF-Parameters-v1610 ::= SEQUENCE { + supportedBandCombination-v1610 [0] SupportedBandCombination-v1610 OPTIONAL, + supportedBandCombinationAdd-v1610 [1] SupportedBandCombinationAdd-v1610 + OPTIONAL, + supportedBandCombinationReduced-v1610 [2] + SupportedBandCombinationReduced-v1610 OPTIONAL +} + +MobilityParameters-v1610 ::= SEQUENCE { + cho-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + cho-FDD-TDD-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + cho-Failure-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + cho-TwoTriggerEvents-r16 [3] ENUMERATED { supported(0) } OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1610 ::= SEQUENCE { + ul-PDCP-AvgDelay-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +V2X-BandParametersEUTRA-NR-r16 ::= CHOICE { + eutra [0] SEQUENCE { + v2x-BandParameters1-r16 [0] V2X-BandParameters-r14 OPTIONAL, + v2x-BandParameters2-r16 [1] V2X-BandParameters-v1530 OPTIONAL + }, + nr [1] SEQUENCE { + v2x-BandParametersNR-r16 [0] OCTET STRING OPTIONAL + } +} + +V2X-SupportedBandCombinationEUTRA-NR-r16 ::= SEQUENCE (SIZE (1..maxBandCombSidelinkNR-r16)) OF + V2X-BandParametersEUTRA-NR-r16 + +SL-Parameters-v1610 ::= SEQUENCE { + sl-ParameterNR-r16 [0] OCTET STRING OPTIONAL, + dummy [1] V2X-SupportedBandCombinationEUTRA-NR-r16 OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1610 ::= SEQUENCE { + phyLayerParameters-v1610 [0] PhyLayerParameters-v1610 OPTIONAL, + pur-Parameters-r16 [1] PUR-Parameters-r16 OPTIONAL, + measParameters-v1610 [2] MeasParameters-v1610 OPTIONAL, + eutra-5GC-Parameters-v1610 [3] EUTRA-5GC-Parameters-v1610 OPTIONAL, + irat-ParametersNR-v1610 [4] IRAT-ParametersNR-v1610 OPTIONAL, + neighCellSI-AcquisitionParameters-v1610 [5] + NeighCellSI-AcquisitionParameters-v1610 OPTIONAL, + mobilityParameters-v1610 [6] MobilityParameters-v1610 OPTIONAL +} + +BandCombinationParameters-v1630 ::= SEQUENCE { + v2x-SupportedTxBandCombListPerBC-v1630 [0] BIT STRING (SIZE (1..maxBandCombSidelinkNR-r16)) OPTIONAL, + v2x-SupportedRxBandCombListPerBC-v1630 [1] BIT STRING (SIZE (1..maxBandCombSidelinkNR-r16)) OPTIONAL, + scalingFactorTxSidelink-r16 [2] SEQUENCE (SIZE (1..maxBandCombSidelinkNR-r16)) OF + ScalingFactorSidelink-r16 OPTIONAL, + scalingFactorRxSidelink-r16 [3] SEQUENCE (SIZE (1..maxBandCombSidelinkNR-r16)) OF + ScalingFactorSidelink-r16 OPTIONAL, + interBandPowerSharingSyncDAPS-r16 [4] ENUMERATED { supported(0) } OPTIONAL, + interBandPowerSharingAsyncDAPS-r16 [5] ENUMERATED { supported(0) } OPTIONAL +} + +SupportedBandCombination-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF + BandCombinationParameters-v1630 + +SupportedBandCombinationAdd-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF + BandCombinationParameters-v1630 + +SupportedBandCombinationReduced-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF + BandCombinationParameters-v1630 + +RF-Parameters-v1630 ::= SEQUENCE { + supportedBandCombination-v1630 [0] SupportedBandCombination-v1630 OPTIONAL, + supportedBandCombinationAdd-v1630 [1] SupportedBandCombinationAdd-v1630 + OPTIONAL, + supportedBandCombinationReduced-v1630 [2] + SupportedBandCombinationReduced-v1630 OPTIONAL +} + +V2X-BandParametersEUTRA-NR-v1630 ::= CHOICE { + eutra [0] NULL, + nr [1] SEQUENCE { + tx-Sidelink-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + rx-Sidelink-r16 [1] ENUMERATED { supported(0) } OPTIONAL + } +} + +V2X-BandCombinationParametersEUTRA-NR-v1630 ::= SEQUENCE { + bandListSidelinkEUTRA-NR-r16 [0] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + V2X-BandParametersEUTRA-NR-r16, + bandListSidelinkEUTRA-NR-v1630 [1] SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + V2X-BandParametersEUTRA-NR-v1630 +} + +V2X-SupportedBandCombinationEUTRA-NR-v1630 ::= SEQUENCE (SIZE (1..maxBandCombSidelinkNR-r16)) OF + V2X-BandCombinationParametersEUTRA-NR-v1630 + +SL-Parameters-v1630 ::= SEQUENCE { + v2x-SupportedBandCombinationListEUTRA-NR-r16 [0] + V2X-SupportedBandCombinationEUTRA-NR-v1630 OPTIONAL +} + +MAC-Parameters-v1630 ::= SEQUENCE { + directSCG-SCellActivationNEDC-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +MeasParameters-v1630 ::= SEQUENCE { + nr-IdleInactiveBeamMeasFR1-r16 [0] ENUMERATED { supported(0) } OPTIONAL, + nr-IdleInactiveBeamMeasFR2-r16 [1] ENUMERATED { supported(0) } OPTIONAL, + ce-MeasRSS-DedicatedSameRBs-r16 [2] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-CapabilityAddXDD-Mode-v1630 ::= SEQUENCE { + measParameters-v1630 [0] MeasParameters-v1630 +} + +Other-Parameters-v1650 ::= SEQUENCE { + mpsPriorityIndication-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +IRAT-ParametersNR-v1660 ::= SEQUENCE { + extendedBand-n77-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +Other-Parameters-v1690 ::= SEQUENCE { + ul-RRC-Segmentation-r16 [0] ENUMERATED { supported(0) } OPTIONAL +} + +SharedSpectrumMeasNR-r17 ::= SEQUENCE { + nr-RSSI-ChannelOccupancyReporting-r17 [0] BOOLEAN +} + +MeasParameters-v1700 ::= SEQUENCE { + sharedSpectrumMeasNR-EN-DC-r17 [0] SEQUENCE (SIZE (1..maxBandsNR-r15)) OF + SharedSpectrumMeasNR-r17 OPTIONAL, + sharedSpectrumMeasNR-SA-r17 [1] SEQUENCE (SIZE (1..maxBandsNR-r15)) OF + SharedSpectrumMeasNR-r17 OPTIONAL +} + +UE-BasedNetwPerfMeasParameters-v1700 ::= SEQUENCE { + loggedMeasIdleEventL1-r17 [0] ENUMERATED { supported(0) } OPTIONAL, + loggedMeasIdleEventOutOfCoverage-r17 [1] ENUMERATED { supported(0) } + OPTIONAL, + loggedMeasUncomBarPre-r17 [2] ENUMERATED { supported(0) } OPTIONAL, + immMeasUncomBarPre-r17 [3] ENUMERATED { supported(0) } OPTIONAL +} + +PhyLayerParameters-v1700 ::= SEQUENCE { + ce-Capabilities-v1700 [0] SEQUENCE { + ce-PDSCH-14HARQProcesses-r17 [0] ENUMERATED { supported(0) } OPTIONAL, + ce-PDSCH-14HARQProcesses-Alt2-r17 [1] ENUMERATED { supported(0) } + OPTIONAL, + ce-PDSCH-MaxTBS-r17 [2] ENUMERATED { supported(0) } OPTIONAL + } OPTIONAL +} + +NTN-Parameters-r17 ::= SEQUENCE { + ntn-Connectivity-EPC-r17 [0] ENUMERATED { supported(0) } OPTIONAL, + ntn-TA-Report-r17 [1] ENUMERATED { supported(0) } OPTIONAL, + ntn-PUR-TimerDelay-r17 [2] ENUMERATED { supported(0) } OPTIONAL, + ntn-OffsetTimingEnh-r17 [3] ENUMERATED { supported(0) } OPTIONAL, + ntn-ScenarioSupport-r17 [4] ENUMERATED { ngso(0), gso(1) } OPTIONAL +} + +IRAT-ParametersNR-v1700 ::= SEQUENCE { + eutra-5GC-HO-ToNR-TDD-FR2-2-r17 [0] ENUMERATED { supported(0) } OPTIONAL, + eutra-EPC-HO-ToNR-TDD-FR2-2-r17 [1] ENUMERATED { supported(0) } OPTIONAL, + ce-EUTRA-5GC-HO-ToNR-TDD-FR2-2-r17 [2] ENUMERATED { supported(0) } OPTIONAL, + ims-VoiceOverNR-FR2-2-r17 [3] ENUMERATED { supported(0) } OPTIONAL +} + +MBMS-SupportedBandInfo-v1700 ::= SEQUENCE { + pmch-Bandwidth-n40-r17 [0] ENUMERATED { supported(0) } OPTIONAL, + pmch-Bandwidth-n35-r17 [1] ENUMERATED { supported(0) } OPTIONAL, + pmch-Bandwidth-n30-r17 [2] ENUMERATED { supported(0) } OPTIONAL +} + +MBMS-Parameters-v1700 ::= SEQUENCE { + mbms-SupportedBandInfoList-v1700 [0] SEQUENCE (SIZE (1..maxBands)) OF + MBMS-SupportedBandInfo-v1700 OPTIONAL +} + +IRAT-ParametersNR-v1710 ::= SEQUENCE { + extendedBand-n77-2-r17 [0] ENUMERATED { supported(0) } OPTIONAL +} + +NeighCellSI-AcquisitionParameters-v1710 ::= SEQUENCE { + gNB-ID-Length-Reporting-NR-EN-DC-r17 [0] ENUMERATED { supported(0) } + OPTIONAL, + gNB-ID-Length-Reporting-NR-NoEN-DC-r17 [1] ENUMERATED { supported(0) } + OPTIONAL +} + +V2X-BandParametersEUTRA-NR-v1710 ::= SEQUENCE { + v2x-BandParametersEUTRA-NR-v1710 [0] OCTET STRING OPTIONAL +} + +V2X-BandCombinationParametersEUTRA-NR-v1710 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF + V2X-BandParametersEUTRA-NR-v1710 + +V2X-SupportedBandCombinationEUTRA-NR-v1710 ::= SEQUENCE (SIZE (1..maxBandCombSidelinkNR-r16)) OF + V2X-BandCombinationParametersEUTRA-NR-v1710 + +SL-Parameters-v1710 ::= SEQUENCE { + v2x-SupportedBandCombinationListEUTRA-NR-v1710 [0] + V2X-SupportedBandCombinationEUTRA-NR-v1710 OPTIONAL +} + +NTN-Parameters-v1720 ::= SEQUENCE { + ntn-SegmentedPrecompensationGaps-r17 [0] ENUMERATED { sym1(0), sl1(1), + sf1(2) } OPTIONAL +} + +PhyLayerParameters-v1730 ::= SEQUENCE { + csi-SubframeSet2ForDormantSCell-r17 [0] ENUMERATED { supported(0) } OPTIONAL +} + +UE-EUTRA-Capability-v1730-IEs ::= SEQUENCE { + phyLayerParameters-v1730 [0] PhyLayerParameters-v1730, + nonCriticalExtension [1] SEQUENCE { + + } OPTIONAL +} + +UE-EUTRA-Capability-v1720-IEs ::= SEQUENCE { + ntn-Parameters-v1720 [0] NTN-Parameters-v1720, + nonCriticalExtension [1] UE-EUTRA-Capability-v1730-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1710-IEs ::= SEQUENCE { + irat-ParametersNR-v1710 [0] IRAT-ParametersNR-v1710, + neighCellSI-AcquisitionParameters-v1710 [1] + NeighCellSI-AcquisitionParameters-v1710 OPTIONAL, + sl-Parameters-v1710 [2] SL-Parameters-v1710 OPTIONAL, + sidelinkRequested-r17 [3] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [4] UE-EUTRA-Capability-v1720-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1700-IEs ::= SEQUENCE { + measParameters-v1700 [0] MeasParameters-v1700 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1700 [1] + UE-BasedNetwPerfMeasParameters-v1700 OPTIONAL, + phyLayerParameters-v1700 [2] PhyLayerParameters-v1700, + ntn-Parameters-r17 [3] NTN-Parameters-r17 OPTIONAL, + irat-ParametersNR-v1700 [4] IRAT-ParametersNR-v1700 OPTIONAL, + mbms-Parameters-v1700 [5] MBMS-Parameters-v1700, + nonCriticalExtension [6] UE-EUTRA-Capability-v1710-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1690-IEs ::= SEQUENCE { + other-Parameters-v1690 [0] Other-Parameters-v1690, + nonCriticalExtension [1] UE-EUTRA-Capability-v1700-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1660-IEs ::= SEQUENCE { + irat-ParametersNR-v1660 [0] IRAT-ParametersNR-v1660, + nonCriticalExtension [1] UE-EUTRA-Capability-v1690-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1650-IEs ::= SEQUENCE { + otherParameters-v1650 [0] Other-Parameters-v1650 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1660-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1630-IEs ::= SEQUENCE { + rf-Parameters-v1630 [0] RF-Parameters-v1630 OPTIONAL, + sl-Parameters-v1630 [1] SL-Parameters-v1630 OPTIONAL, + earlySecurityReactivation-r16 [2] ENUMERATED { supported(0) } OPTIONAL, + mac-Parameters-v1630 [3] MAC-Parameters-v1630, + measParameters-v1630 [4] MeasParameters-v1630 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1630 [5] UE-EUTRA-CapabilityAddXDD-Mode-v1630 + , + tdd-Add-UE-EUTRA-Capabilities-v1630 [6] UE-EUTRA-CapabilityAddXDD-Mode-v1630 + , + nonCriticalExtension [7] UE-EUTRA-Capability-v1650-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1610-IEs ::= SEQUENCE { + highSpeedEnhParameters-v1610 [0] HighSpeedEnhParameters-v1610 OPTIONAL, + neighCellSI-AcquisitionParameters-v1610 [1] + NeighCellSI-AcquisitionParameters-v1610 OPTIONAL, + mbms-Parameters-v1610 [2] MBMS-Parameters-v1610 OPTIONAL, + pdcp-Parameters-v1610 [3] PDCP-Parameters-v1610 OPTIONAL, + mac-Parameters-v1610 [4] MAC-Parameters-v1610 OPTIONAL, + phyLayerParameters-v1610 [5] PhyLayerParameters-v1610 OPTIONAL, + measParameters-v1610 [6] MeasParameters-v1610 OPTIONAL, + pur-Parameters-r16 [7] PUR-Parameters-r16 OPTIONAL, + eutra-5GC-Parameters-v1610 [8] EUTRA-5GC-Parameters-v1610 OPTIONAL, + otherParameters-v1610 [9] Other-Parameters-v1610 OPTIONAL, + dl-DedicatedMessageSegmentation-r16 [10] ENUMERATED { supported(0) } + OPTIONAL, + mmtel-Parameters-v1610 [11] MMTEL-Parameters-v1610, + irat-ParametersNR-v1610 [12] IRAT-ParametersNR-v1610 OPTIONAL, + rf-Parameters-v1610 [13] RF-Parameters-v1610 OPTIONAL, + mobilityParameters-v1610 [14] MobilityParameters-v1610 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1610 [15] + UE-BasedNetwPerfMeasParameters-v1610, + sl-Parameters-v1610 [16] SL-Parameters-v1610 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1610 [17] + UE-EUTRA-CapabilityAddXDD-Mode-v1610 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1610 [18] + UE-EUTRA-CapabilityAddXDD-Mode-v1610 OPTIONAL, + nonCriticalExtension [19] UE-EUTRA-Capability-v1630-IEs OPTIONAL +} + +UE-EUTRA-Capability-v15a0-IEs ::= SEQUENCE { + neighCellSI-AcquisitionParameters-v15a0 [0] + NeighCellSI-AcquisitionParameters-v15a0, + eutra-5GC-Parameters-r15 [1] EUTRA-5GC-Parameters-r15 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v15a0 [2] UE-EUTRA-CapabilityAddXDD-Mode-v15a0 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v15a0 [3] UE-EUTRA-CapabilityAddXDD-Mode-v15a0 + OPTIONAL, + nonCriticalExtension [4] UE-EUTRA-Capability-v1610-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1570-IEs ::= SEQUENCE { + rf-Parameters-v1570 [0] RF-Parameters-v1570 OPTIONAL, + irat-ParametersNR-v1570 [1] IRAT-ParametersNR-v1570 OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v15a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1560-IEs ::= SEQUENCE { + pdcp-ParametersNR-v1560 [0] PDCP-ParametersNR-v1560, + irat-ParametersNR-v1560 [1] IRAT-ParametersNR-v1560, + appliedCapabilityFilterCommon-r15 [2] OCTET STRING OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1560 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1560 + , + tdd-Add-UE-EUTRA-Capabilities-v1560 [4] UE-EUTRA-CapabilityAddXDD-Mode-v1560 + , + nonCriticalExtension [5] UE-EUTRA-Capability-v1570-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1550-IEs ::= SEQUENCE { + neighCellSI-AcquisitionParameters-v1550 [0] + NeighCellSI-AcquisitionParameters-v1550 OPTIONAL, + phyLayerParameters-v1550 [1] PhyLayerParameters-v1550, + mac-Parameters-v1550 [2] MAC-Parameters-v1550, + fdd-Add-UE-EUTRA-Capabilities-v1550 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1550 + , + tdd-Add-UE-EUTRA-Capabilities-v1550 [4] UE-EUTRA-CapabilityAddXDD-Mode-v1550 + , + nonCriticalExtension [5] UE-EUTRA-Capability-v1560-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1540-IEs ::= SEQUENCE { + phyLayerParameters-v1540 [0] PhyLayerParameters-v1540 OPTIONAL, + otherParameters-v1540 [1] Other-Parameters-v1540, + fdd-Add-UE-EUTRA-Capabilities-v1540 [2] UE-EUTRA-CapabilityAddXDD-Mode-v1540 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1540 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1540 + OPTIONAL, + sl-Parameters-v1540 [4] SL-Parameters-v1540 OPTIONAL, + irat-ParametersNR-v1540 [5] IRAT-ParametersNR-v1540 OPTIONAL, + nonCriticalExtension [6] UE-EUTRA-Capability-v1550-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1530-IEs ::= SEQUENCE { + measParameters-v1530 [0] MeasParameters-v1530 OPTIONAL, + otherParameters-v1530 [1] Other-Parameters-v1530 OPTIONAL, + neighCellSI-AcquisitionParameters-v1530 [2] + NeighCellSI-AcquisitionParameters-v1530 OPTIONAL, + mac-Parameters-v1530 [3] MAC-Parameters-v1530 OPTIONAL, + phyLayerParameters-v1530 [4] PhyLayerParameters-v1530 OPTIONAL, + rf-Parameters-v1530 [5] RF-Parameters-v1530 OPTIONAL, + pdcp-Parameters-v1530 [6] PDCP-Parameters-v1530 OPTIONAL, + ue-CategoryDL-v1530 [7] INTEGER (22..26) OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1530 [8] + UE-BasedNetwPerfMeasParameters-v1530 OPTIONAL, + rlc-Parameters-v1530 [9] RLC-Parameters-v1530 OPTIONAL, + sl-Parameters-v1530 [10] SL-Parameters-v1530 OPTIONAL, + extendedNumberOfDRBs-r15 [11] ENUMERATED { supported(0) } OPTIONAL, + reducedCP-Latency-r15 [12] ENUMERATED { supported(0) } OPTIONAL, + laa-Parameters-v1530 [13] LAA-Parameters-v1530 OPTIONAL, + ue-CategoryUL-v1530 [14] INTEGER (22..26) OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1530 [15] + UE-EUTRA-CapabilityAddXDD-Mode-v1530 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1530 [16] + UE-EUTRA-CapabilityAddXDD-Mode-v1530 OPTIONAL, + nonCriticalExtension [17] UE-EUTRA-Capability-v1540-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE { + measParameters-v1520 [0] MeasParameters-v1520, + nonCriticalExtension [1] UE-EUTRA-Capability-v1530-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE { + irat-ParametersNR-r15 [0] IRAT-ParametersNR-r15 OPTIONAL, + featureSetsEUTRA-r15 [1] FeatureSetsEUTRA-r15 OPTIONAL, + pdcp-ParametersNR-r15 [2] PDCP-ParametersNR-r15 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1510 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1510 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1510 [4] UE-EUTRA-CapabilityAddXDD-Mode-v1510 + OPTIONAL, + nonCriticalExtension [5] UE-EUTRA-Capability-v1520-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE { + ue-CategoryDL-v1460 [0] INTEGER (21) OPTIONAL, + otherParameters-v1460 [1] Other-Parameters-v1460, + nonCriticalExtension [2] UE-EUTRA-Capability-v1510-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE { + phyLayerParameters-v1450 [0] PhyLayerParameters-v1450 OPTIONAL, + rf-Parameters-v1450 [1] RF-Parameters-v1450 OPTIONAL, + otherParameters-v1450 [2] OtherParameters-v1450, + ue-CategoryDL-v1450 [3] INTEGER (20) OPTIONAL, + nonCriticalExtension [4] UE-EUTRA-Capability-v1460-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE { + lwa-Parameters-v1440 [0] LWA-Parameters-v1440, + mac-Parameters-v1440 [1] MAC-Parameters-v1440, + nonCriticalExtension [2] UE-EUTRA-Capability-v1450-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE { + phyLayerParameters-v1430 [0] PhyLayerParameters-v1430, + ue-CategoryDL-v1430 [1] ENUMERATED { m2(0) } OPTIONAL, + ue-CategoryUL-v1430 [2] ENUMERATED { n16(0), n17(1), n18(2), n19(3), n20(4) + , m2(5) } OPTIONAL, + ue-CategoryUL-v1430b [3] ENUMERATED { n21(0) } OPTIONAL, + mac-Parameters-v1430 [4] MAC-Parameters-v1430 OPTIONAL, + measParameters-v1430 [5] MeasParameters-v1430 OPTIONAL, + pdcp-Parameters-v1430 [6] PDCP-Parameters-v1430 OPTIONAL, + rlc-Parameters-v1430 [7] RLC-Parameters-v1430, + rf-Parameters-v1430 [8] RF-Parameters-v1430 OPTIONAL, + laa-Parameters-v1430 [9] LAA-Parameters-v1430 OPTIONAL, + lwa-Parameters-v1430 [10] LWA-Parameters-v1430 OPTIONAL, + lwip-Parameters-v1430 [11] LWIP-Parameters-v1430 OPTIONAL, + otherParameters-v1430 [12] Other-Parameters-v1430, + mmtel-Parameters-r14 [13] MMTEL-Parameters-r14 OPTIONAL, + mobilityParameters-r14 [14] MobilityParameters-r14 OPTIONAL, + ce-Parameters-v1430 [15] CE-Parameters-v1430, + fdd-Add-UE-EUTRA-Capabilities-v1430 [16] + UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1430 [17] + UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL, + mbms-Parameters-v1430 [18] MBMS-Parameters-v1430 OPTIONAL, + sl-Parameters-v1430 [19] SL-Parameters-v1430 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1430 [20] + UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL, + highSpeedEnhParameters-r14 [21] HighSpeedEnhParameters-r14 OPTIONAL, + nonCriticalExtension [22] UE-EUTRA-Capability-v1440-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE { + other-Parameters-v1360 [0] Other-Parameters-v1360 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1430-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE { + ue-CategoryDL-v1350 [0] ENUMERATED { oneBis(0) } OPTIONAL, + ue-CategoryUL-v1350 [1] ENUMERATED { oneBis(0) } OPTIONAL, + ce-Parameters-v1350 [2] CE-Parameters-v1350, + nonCriticalExtension [3] UE-EUTRA-Capability-v1360-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE { + ue-CategoryUL-v1340 [0] INTEGER (15) OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1350-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE { + ue-CategoryDL-v1330 [0] INTEGER (18..19) OPTIONAL, + phyLayerParameters-v1330 [1] PhyLayerParameters-v1330 OPTIONAL, + ue-CE-NeedULGaps-r13 [2] ENUMERATED { true(0) } OPTIONAL, + nonCriticalExtension [3] UE-EUTRA-Capability-v1340-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE { + ce-Parameters-v1320 [0] CE-Parameters-v1320 OPTIONAL, + phyLayerParameters-v1320 [1] PhyLayerParameters-v1320 OPTIONAL, + rf-Parameters-v1320 [2] RF-Parameters-v1320 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1320 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1320 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1320 [4] UE-EUTRA-CapabilityAddXDD-Mode-v1320 + OPTIONAL, + nonCriticalExtension [5] UE-EUTRA-Capability-v1330-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE { + ue-CategoryDL-v1310 [0] ENUMERATED { n17(0), m1(1) } OPTIONAL, + ue-CategoryUL-v1310 [1] ENUMERATED { n14(0), m1(1) } OPTIONAL, + pdcp-Parameters-v1310 [2] PDCP-Parameters-v1310, + rlc-Parameters-v1310 [3] RLC-Parameters-v1310, + mac-Parameters-v1310 [4] MAC-Parameters-v1310 OPTIONAL, + phyLayerParameters-v1310 [5] PhyLayerParameters-v1310 OPTIONAL, + rf-Parameters-v1310 [6] RF-Parameters-v1310 OPTIONAL, + measParameters-v1310 [7] MeasParameters-v1310 OPTIONAL, + dc-Parameters-v1310 [8] DC-Parameters-v1310 OPTIONAL, + sl-Parameters-v1310 [9] SL-Parameters-v1310 OPTIONAL, + scptm-Parameters-r13 [10] SCPTM-Parameters-r13 OPTIONAL, + ce-Parameters-r13 [11] CE-Parameters-r13 OPTIONAL, + interRAT-ParametersWLAN-r13 [12] IRAT-ParametersWLAN-r13, + laa-Parameters-r13 [13] LAA-Parameters-r13 OPTIONAL, + lwa-Parameters-r13 [14] LWA-Parameters-r13 OPTIONAL, + wlan-IW-Parameters-v1310 [15] WLAN-IW-Parameters-v1310, + lwip-Parameters-r13 [16] LWIP-Parameters-r13, + fdd-Add-UE-EUTRA-Capabilities-v1310 [17] + UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1310 [18] + UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL, + nonCriticalExtension [19] UE-EUTRA-Capability-v1320-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE { + phyLayerParameters-v1280 [0] PhyLayerParameters-v1280 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1310-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE { + rf-Parameters-v1270 [0] RF-Parameters-v1270 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1280-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE { + ue-CategoryDL-v1260 [0] INTEGER (15..16) OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1270-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE { + phyLayerParameters-v1250 [0] PhyLayerParameters-v1250 OPTIONAL, + rf-Parameters-v1250 [1] RF-Parameters-v1250 OPTIONAL, + rlc-Parameters-r12 [2] RLC-Parameters-r12 OPTIONAL, + ue-BasedNetwPerfMeasParameters-v1250 [3] + UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL, + ue-CategoryDL-r12 [4] INTEGER (0..14) OPTIONAL, + ue-CategoryUL-r12 [5] INTEGER (0..13) OPTIONAL, + wlan-IW-Parameters-r12 [6] WLAN-IW-Parameters-r12 OPTIONAL, + measParameters-v1250 [7] MeasParameters-v1250 OPTIONAL, + dc-Parameters-r12 [8] DC-Parameters-r12 OPTIONAL, + mbms-Parameters-v1250 [9] MBMS-Parameters-v1250 OPTIONAL, + mac-Parameters-r12 [10] MAC-Parameters-r12 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1250 [11] + UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1250 [12] + UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL, + sl-Parameters-r12 [13] SL-Parameters-r12 OPTIONAL, + nonCriticalExtension [14] UE-EUTRA-Capability-v1260-IEs OPTIONAL +} + +UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE { + ue-Category-v11a0 [0] INTEGER (11..12) OPTIONAL, + measParameters-v11a0 [1] MeasParameters-v11a0 OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v1250-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE { + rf-Parameters-v1180 [0] RF-Parameters-v1180 OPTIONAL, + mbms-Parameters-r11 [1] MBMS-Parameters-r11 OPTIONAL, + fdd-Add-UE-EUTRA-Capabilities-v1180 [2] UE-EUTRA-CapabilityAddXDD-Mode-v1180 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1180 [3] UE-EUTRA-CapabilityAddXDD-Mode-v1180 + OPTIONAL, + nonCriticalExtension [4] UE-EUTRA-Capability-v11a0-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE { + phyLayerParameters-v1170 [0] PhyLayerParameters-v1170 OPTIONAL, + ue-Category-v1170 [1] INTEGER (9..10) OPTIONAL, + nonCriticalExtension [2] UE-EUTRA-Capability-v1180-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE { + pdcp-Parameters-v1130 [0] PDCP-Parameters-v1130, + phyLayerParameters-v1130 [1] PhyLayerParameters-v1130 OPTIONAL, + rf-Parameters-v1130 [2] RF-Parameters-v1130, + measParameters-v1130 [3] MeasParameters-v1130, + interRAT-ParametersCDMA2000-v1130 [4] IRAT-ParametersCDMA2000-v1130, + otherParameters-r11 [5] Other-Parameters-r11, + fdd-Add-UE-EUTRA-Capabilities-v1130 [6] UE-EUTRA-CapabilityAddXDD-Mode-v1130 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1130 [7] UE-EUTRA-CapabilityAddXDD-Mode-v1130 + OPTIONAL, + nonCriticalExtension [8] UE-EUTRA-Capability-v1170-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE { + rf-Parameters-v1090 [0] RF-Parameters-v1090 OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1130-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE { + fdd-Add-UE-EUTRA-Capabilities-v1060 [0] UE-EUTRA-CapabilityAddXDD-Mode-v1060 + OPTIONAL, + tdd-Add-UE-EUTRA-Capabilities-v1060 [1] UE-EUTRA-CapabilityAddXDD-Mode-v1060 + OPTIONAL, + rf-Parameters-v1060 [2] RF-Parameters-v1060 OPTIONAL, + nonCriticalExtension [3] UE-EUTRA-Capability-v1090-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE { + ue-Category-v1020 [0] INTEGER (6..8) OPTIONAL, + phyLayerParameters-v1020 [1] PhyLayerParameters-v1020 OPTIONAL, + rf-Parameters-v1020 [2] RF-Parameters-v1020 OPTIONAL, + measParameters-v1020 [3] MeasParameters-v1020 OPTIONAL, + featureGroupIndRel10-r10 [4] BIT STRING (SIZE (32)) OPTIONAL, + interRAT-ParametersCDMA2000-v1020 [5] IRAT-ParametersCDMA2000-1XRTT-v1020 + OPTIONAL, + ue-BasedNetwPerfMeasParameters-r10 [6] UE-BasedNetwPerfMeasParameters-r10 + OPTIONAL, + interRAT-ParametersUTRA-TDD-v1020 [7] IRAT-ParametersUTRA-TDD-v1020 OPTIONAL + , + nonCriticalExtension [8] UE-EUTRA-Capability-v1060-IEs OPTIONAL +} + +UE-EUTRA-Capability-v940-IEs ::= SEQUENCE { + lateNonCriticalExtension [0] OCTET STRING (CONTAINING + UE-EUTRA-Capability-v9a0-IEs) OPTIONAL, + nonCriticalExtension [1] UE-EUTRA-Capability-v1020-IEs OPTIONAL +} + +-- Regular non critical extensions +UE-EUTRA-Capability-v920-IEs ::= SEQUENCE { + phyLayerParameters-v920 [0] PhyLayerParameters-v920, + interRAT-ParametersGERAN-v920 [1] IRAT-ParametersGERAN-v920, + interRAT-ParametersUTRA-v920 [2] IRAT-ParametersUTRA-v920 OPTIONAL, + interRAT-ParametersCDMA2000-v920 [3] IRAT-ParametersCDMA2000-1XRTT-v920 + OPTIONAL, + deviceType-r9 [4] ENUMERATED { noBenFromBatConsumpOpt(0) } OPTIONAL, + csg-ProximityIndicationParameters-r9 [5] + CSG-ProximityIndicationParameters-r9, + neighCellSI-AcquisitionParameters-r9 [6] + NeighCellSI-AcquisitionParameters-r9, + son-Parameters-r9 [7] SON-Parameters-r9, + nonCriticalExtension [8] UE-EUTRA-Capability-v940-IEs OPTIONAL +} + +UE-EUTRA-Capability ::= SEQUENCE { + accessStratumRelease [0] AccessStratumRelease, + ue-Category [1] INTEGER (1..5), + pdcp-Parameters [2] PDCP-Parameters, + phyLayerParameters [3] PhyLayerParameters, + rf-Parameters [4] RF-Parameters, + measParameters [5] MeasParameters, + featureGroupIndicators [6] BIT STRING (SIZE (32)) OPTIONAL, + interRAT-Parameters [7] SEQUENCE { + utraFDD [0] IRAT-ParametersUTRA-FDD OPTIONAL, + utraTDD128 [1] IRAT-ParametersUTRA-TDD128 OPTIONAL, + utraTDD384 [2] IRAT-ParametersUTRA-TDD384 OPTIONAL, + utraTDD768 [3] IRAT-ParametersUTRA-TDD768 OPTIONAL, + geran [4] IRAT-ParametersGERAN OPTIONAL, + cdma2000-HRPD [5] IRAT-ParametersCDMA2000-HRPD OPTIONAL, + cdma2000-1xRTT [6] IRAT-ParametersCDMA2000-1XRTT OPTIONAL + }, + nonCriticalExtension [8] UE-EUTRA-Capability-v920-IEs OPTIONAL +} + +-- Value assignments + +maxAccessCat-1-r15 INTEGER ::= 63 + +maxACDC-Cat-r13 INTEGER ::= 16 + +maxAvailNarrowBands-r13 INTEGER ::= 16 + +maxAvailNarrowBands-1-r16 INTEGER ::= 15 + +maxBandComb-r10 INTEGER ::= 128 + +maxBandComb-r11 INTEGER ::= 256 + +maxBandComb-r13 INTEGER ::= 384 + +maxBandCombSidelinkNR-r16 INTEGER ::= 512 + +maxBands INTEGER ::= 64 + +maxBandsNR-r15 INTEGER ::= 1024 + +maxBandsENDC-r16 INTEGER ::= 10 + +maxBandwidthClass-r10 INTEGER ::= 16 + +maxBandwidthCombSet-r10 INTEGER ::= 32 + +maxBarringInfoSet-r15 INTEGER ::= 8 + +maxBT-IdReport-r15 INTEGER ::= 32 + +maxBT-Name-r15 INTEGER ::= 4 + +maxCBR-Level-r14 INTEGER ::= 16 + +maxCBR-Level-1-r14 INTEGER ::= 15 + +maxCBR-Report-r14 INTEGER ::= 72 + +maxCDMA-BandClass INTEGER ::= 32 + +maxCE-Level-r13 INTEGER ::= 4 + +maxExcludedCell INTEGER ::= 16 + +maxCellHistory-r12 INTEGER ::= 16 + +maxCellInfoGERAN-r9 INTEGER ::= 32 + +maxCellInfoUTRA-r9 INTEGER ::= 16 + +maxCellMeasIdle-r15 INTEGER ::= 8 + +maxCellNR-r17 INTEGER ::= 8 + +maxCombIDC-r11 INTEGER ::= 128 + +maxCSI-IM-r11 INTEGER ::= 3 + +maxCSI-IM-r12 INTEGER ::= 4 + +minCSI-IM-r13 INTEGER ::= 5 + +maxCSI-IM-r13 INTEGER ::= 24 + +maxCSI-IM-v1310 INTEGER ::= 20 + +maxCSI-Proc-r11 INTEGER ::= 4 + +maxCSI-RS-NZP-r11 INTEGER ::= 3 + +minCSI-RS-NZP-r13 INTEGER ::= 4 + +maxCSI-RS-NZP-r13 INTEGER ::= 24 + +maxCSI-RS-NZP-v1310 INTEGER ::= 21 + +maxCSI-RS-ZP-r11 INTEGER ::= 4 + +maxCQI-ProcExt-r11 INTEGER ::= 3 + +maxFreqUTRA-TDD-r10 INTEGER ::= 6 + +maxCellInter INTEGER ::= 16 + +maxCellIntra INTEGER ::= 16 + +maxCellListGERAN INTEGER ::= 3 + +maxCellMeas INTEGER ::= 32 + +maxCellReport INTEGER ::= 8 + +maxCellSFTD INTEGER ::= 3 + +maxCellAllowedNR-r16 INTEGER ::= 16 + +maxCondConfig-r16 INTEGER ::= 8 + +maxConfigSPS-r14 INTEGER ::= 8 + +maxConfigSPS-r15 INTEGER ::= 6 + +maxCSI-RS-Meas-r12 INTEGER ::= 96 + +maxDRB INTEGER ::= 11 + +maxDRBExt-r15 INTEGER ::= 4 + +maxDRB-r15 INTEGER ::= 15 + +maxDS-Duration-r12 INTEGER ::= 5 + +maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 + +maxEARFCN INTEGER ::= 65535 + +maxEARFCN-Plus1 INTEGER ::= 65536 + +maxEARFCN2 INTEGER ::= 262143 + +maxEPDCCH-Set-r11 INTEGER ::= 2 + +maxFBI INTEGER ::= 64 + +maxFBI-NR-r15 INTEGER ::= 1024 + +maxFBI-Plus1 INTEGER ::= 65 + +maxFBI2 INTEGER ::= 256 + +maxFeatureSets-r15 INTEGER ::= 256 + +maxPerCC-FeatureSets-r15 INTEGER ::= 32 + +maxFreq INTEGER ::= 8 + +maxFreq-1-r16 INTEGER ::= 7 + +maxFreqIDC-r11 INTEGER ::= 32 + +maxFreqIdle-r15 INTEGER ::= 8 + +maxFreqMBMS-r11 INTEGER ::= 5 + +maxFreqNBIOT-r16 INTEGER ::= 8 + +maxFreqNR-r15 INTEGER ::= 5 + +maxFreqSL-NR-r16 INTEGER ::= 8 + +maxFreqV2X-r14 INTEGER ::= 8 + +maxFreqV2X-1-r14 INTEGER ::= 7 + +maxGERAN-SI INTEGER ::= 10 + +maxGNFG INTEGER ::= 16 + +maxGWUS-Groups-1-r16 INTEGER ::= 31 + +maxGWUS-Resources-r16 INTEGER ::= 4 + +maxGWUS-ProbThresholds-r16 INTEGER ::= 3 + +maxIdleMeasCarriers-r15 INTEGER ::= 3 + +maxIdleMeasCarriersExt-r16 INTEGER ::= 5 + +maxIdleMeasCarriers-r16 INTEGER ::= 8 + +maxLCG-r13 INTEGER ::= 4 + +maxLogMeasReport-r10 INTEGER ::= 520 + +maxMBSFN-Allocations INTEGER ::= 8 + +maxMBSFN-Area INTEGER ::= 8 + +maxMBSFN-Area-1 INTEGER ::= 7 + +maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 + +maxMeasId INTEGER ::= 32 + +maxMeasId-Plus1 INTEGER ::= 33 + +maxMeasId-r12 INTEGER ::= 64 + +maxMultiBands INTEGER ::= 8 + +maxMultiBandsNR-r15 INTEGER ::= 32 + +maxMultiBandsNR-1-r15 INTEGER ::= 31 + +maxNS-Pmax-r10 INTEGER ::= 8 + +maxNAICS-Entries-r12 INTEGER ::= 8 + +maxNeighCell-r12 INTEGER ::= 8 + +maxNeighCell-SCPTM-r13 INTEGER ::= 8 + +maxNrofPCI-PerSMTC-r16 INTEGER ::= 64 + +maxNrofS-NSSAI-r15 INTEGER ::= 8 + +maxObjectId INTEGER ::= 32 + +maxObjectId-Plus1-r13 INTEGER ::= 33 + +maxObjectId-r13 INTEGER ::= 64 + +maxP-a-PerNeighCell-r12 INTEGER ::= 3 + +maxPageRec INTEGER ::= 16 + +maxPhysCellIdRange-r9 INTEGER ::= 4 + +maxPLMN-r11 INTEGER ::= 6 + +maxPLMN-1-r14 INTEGER ::= 5 + +maxPLMN-r15 INTEGER ::= 8 + +maxPLMN-NR-r15 INTEGER ::= 12 + +maxPNOffset INTEGER ::= 511 + +maxPMCH-PerMBSFN INTEGER ::= 15 + +maxPSSCH-TxConfig-r14 INTEGER ::= 16 + +maxQuantSetsNR-r15 INTEGER ::= 2 + +maxQCI-r13 INTEGER ::= 6 + +maxRAT-Capabilities INTEGER ::= 8 + +maxRE-MapQCL-r11 INTEGER ::= 4 + +maxReportConfigId INTEGER ::= 32 + +maxReservationPeriod-r14 INTEGER ::= 16 + +maxRS-Index-r15 INTEGER ::= 64 + +maxRS-Index-1-r15 INTEGER ::= 63 + +maxRS-IndexCellQual-r15 INTEGER ::= 16 + +maxRS-IndexReport-r15 INTEGER ::= 32 + +maxRSTD-Freq-r10 INTEGER ::= 3 + +maxSAI-MBMS-r11 INTEGER ::= 64 + +maxSat-r17 INTEGER ::= 4 + +maxSCell-r10 INTEGER ::= 4 + +maxSCell-r13 INTEGER ::= 31 + +maxSCellGroups-r15 INTEGER ::= 4 + +maxSC-MTCH-r13 INTEGER ::= 1023 + +maxSC-MTCH-BR-r14 INTEGER ::= 128 + +maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 + +maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 + +maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 + +maxSL-TxPool-v1310 INTEGER ::= 4 + +maxSL-TxPool-r13 INTEGER ::= 8 + +maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 + +maxSL-Dest-r12 INTEGER ::= 16 + +maxSL-DiscCells-r13 INTEGER ::= 16 + +maxSL-DiscPowerClass-r12 INTEGER ::= 3 + +maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 + +maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 + +maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 + +maxSL-GP-r13 INTEGER ::= 8 + +maxSL-PoolToMeasure-r14 INTEGER ::= 72 + +maxSL-Prio-r13 INTEGER ::= 8 + +maxSL-RxPool-r12 INTEGER ::= 16 + +maxSL-Reliability-r15 INTEGER ::= 8 + +maxSL-SyncConfig-r12 INTEGER ::= 16 + +maxSL-TF-IndexPair-r12 INTEGER ::= 64 + +maxSL-TxPool-r12 INTEGER ::= 4 + +maxSL-V2X-RxPool-r14 INTEGER ::= 16 + +maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 + +maxSL-V2X-TxPool-r14 INTEGER ::= 8 + +maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 + +maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 + +maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 + +maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3 + +maxSL-V2X-TxConfig-r14 INTEGER ::= 64 + +maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63 + +maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 + +maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7 + +maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 + +maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127 + +maxSTAG-r11 INTEGER ::= 3 + +maxServCell-r10 INTEGER ::= 5 + +maxServCell-r13 INTEGER ::= 32 + +maxServCellNR-r15 INTEGER ::= 16 + +maxServiceCount INTEGER ::= 16 + +maxServiceCount-1 INTEGER ::= 15 + +maxSessionPerPMCH INTEGER ::= 29 + +maxSessionPerPMCH-1 INTEGER ::= 28 + +maxSIB INTEGER ::= 32 + +maxSIB-1 INTEGER ::= 31 + +maxSI-Message INTEGER ::= 32 + +maxSimultaneousBands-r10 INTEGER ::= 64 + +maxSubframePatternIDC-r11 INTEGER ::= 8 + +maxTAC-r17 INTEGER ::= 12 + +maxTrafficPattern-r14 INTEGER ::= 8 + +maxUTRA-FDD-Carrier INTEGER ::= 16 + +maxUTRA-TDD-Carrier INTEGER ::= 16 + +maxWayPoint-r15 INTEGER ::= 20 + +maxWLAN-Id-r12 INTEGER ::= 16 + +maxWLAN-Bands-r13 INTEGER ::= 8 + +maxWLAN-Id-r13 INTEGER ::= 32 + +maxWLAN-Channels-r13 INTEGER ::= 16 + +maxWLAN-CarrierInfo-r13 INTEGER ::= 8 + +maxWLAN-Id-Report-r14 INTEGER ::= 32 + +maxWLAN-Name-r15 INTEGER ::= 4 + + +END diff --git a/lte-parser/specs/EUTRA-Sidelink-Preconf.asn b/lte-parser/specs/EUTRA-Sidelink-Preconf.asn new file mode 100644 index 0000000..34a745b --- /dev/null +++ b/lte-parser/specs/EUTRA-Sidelink-Preconf.asn @@ -0,0 +1,274 @@ +-- This file was generated by the Objective Systems ASN1C Compiler +-- (http://www.obj-sys.com). Version: 7.7.2, Date: 13-Oct-2023. + +EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +AdditionalSpectrumEmission, AdditionalSpectrumEmission-v10l0, + ARFCN-ValueEUTRA-r9, FilterCoefficient, maxCBR-Level-r14, maxCBR-Level-1-r14 + , maxFreq, maxFreqV2X-r14, maxSL-TxPool-r12, maxSL-CommRxPoolPreconf-v1310, + maxSL-CommTxPoolPreconf-v1310, maxSL-DiscRxPoolPreconf-r13, + maxSL-DiscTxPoolPreconf-r13, maxSL-V2X-CBRConfig2-r14, + maxSL-V2X-CBRConfig2-1-r14, maxSL-V2X-RxPoolPreconf-r14, + maxSL-V2X-TxConfig2-r14, maxSL-V2X-TxConfig2-1-r14, + maxSL-V2X-TxPoolPreconf-r14, MCS-PSSCH-Range-r15, P-Max, + ReselectionInfoRelay-r13, SL-AnchorCarrierFreqList-V2X-r14, + SL-CBR-Levels-Config-r14, SL-CBR-PSSCH-TxConfig-r14, + SL-CommTxPoolSensingConfig-r14, SL-CP-Len-r12, SL-HoppingConfigComm-r12, + SL-NR-AnchorCarrierFreqList-r16, SL-OffsetIndicator-r12, + SL-OffsetIndicatorSync-r12, SL-OffsetIndicatorSync-v1430, SL-PeriodComm-r12 + , RSRP-RangeSL3-r12, SL-MinT2ValueList-r15, SL-PriorityList-r13, + SL-TF-ResourceConfig-r12, SL-TRPT-Subset-r12, SL-TxParameters-r12, + SL-ZoneConfig-r14, P0-SL-r12, TDD-ConfigSL-r12, SubframeBitmapSL-r14, + SL-P2X-ResourceSelectionConfig-r14, + SL-RestrictResourceReservationPeriodList-r14, SL-SyncAllowed-r14, + SL-OffsetIndicatorSync-r14, SL-Priority-r13, + SL-V2X-FreqSelectionConfigList-r15, SL-V2X-PacketDuplicationConfig-r15, + SL-V2X-SyncFreqList-r15 +FROM EUTRA-RRC-Definitions ; + +-- Productions + +Tx-PreconfigIndex-r14 ::= INTEGER (0..maxSL-V2X-TxConfig2-1-r14) + +SL-V2X-TxProfile-r15 ::= ENUMERATED { rel14(0), rel15(1), spare6(2), spare5(3) + , spare4(4), spare3(5), spare2(6), spare1(7), ... } + +SL-PreconfigGeneral-r12 ::= SEQUENCE { +--PDCP configuration + rohc-Profiles-r12 [0] SEQUENCE { + profile0x0001-r12 [0] BOOLEAN, + profile0x0002-r12 [1] BOOLEAN, + profile0x0004-r12 [2] BOOLEAN, + profile0x0006-r12 [3] BOOLEAN, + profile0x0101-r12 [4] BOOLEAN, + profile0x0102-r12 [5] BOOLEAN, + profile0x0104-r12 [6] BOOLEAN + }, +--Physical configuration + carrierFreq-r12 [1] ARFCN-ValueEUTRA-r9, + maxTxPower-r12 [2] P-Max, + additionalSpectrumEmission-r12 [3] AdditionalSpectrumEmission, + sl-bandwidth-r12 [4] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) }, + tdd-ConfigSL-r12 [5] TDD-ConfigSL-r12, + reserved-r12 [6] BIT STRING (SIZE (19)), + ..., + [[ + additionalSpectrumEmission-v1440 [7] AdditionalSpectrumEmission-v10l0 + OPTIONAL + ]] +} + +SL-PreconfigSync-r12 ::= SEQUENCE { + syncCP-Len-r12 [0] SL-CP-Len-r12, + syncOffsetIndicator1-r12 [1] SL-OffsetIndicatorSync-r12, + syncOffsetIndicator2-r12 [2] SL-OffsetIndicatorSync-r12, + syncTxParameters-r12 [3] P0-SL-r12, + syncTxThreshOoC-r12 [4] RSRP-RangeSL3-r12, + filterCoefficient-r12 [5] FilterCoefficient, + syncRefMinHyst-r12 [6] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) + }, + syncRefDiffHyst-r12 [7] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) + , dBinf(5) }, + ..., + [[ + syncTxPeriodic-r13 [8] ENUMERATED { true(0) } OPTIONAL + ]] +} + +SL-PreconfigCommPool-r12 ::= SEQUENCE { +--This IE is same as SL-CommResourcePool with rxParametersNCell absent + sc-CP-Len-r12 [0] SL-CP-Len-r12, + sc-Period-r12 [1] SL-PeriodComm-r12, + sc-TF-ResourceConfig-r12 [2] SL-TF-ResourceConfig-r12, + sc-TxParameters-r12 [3] P0-SL-r12, + data-CP-Len-r12 [4] SL-CP-Len-r12, + data-TF-ResourceConfig-r12 [5] SL-TF-ResourceConfig-r12, + dataHoppingConfig-r12 [6] SL-HoppingConfigComm-r12, + dataTxParameters-r12 [7] P0-SL-r12, + trpt-Subset-r12 [8] SL-TRPT-Subset-r12, + ..., + [[ + priorityList-r13 [9] SL-PriorityList-r13 OPTIONAL + ]] +} + +SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF + SL-PreconfigCommPool-r12 + +SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF + SL-PreconfigCommPool-r12 + +SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF + SL-PreconfigCommPool-r12 + +SL-PreconfigDiscPool-r13 ::= SEQUENCE { +--This IE is same as SL-DiscResourcePool with rxParameters absent + cp-Len-r13 [0] SL-CP-Len-r12, + discPeriod-r13 [1] ENUMERATED { rf4(0), rf6(1), rf7(2), rf8(3), rf12(4), + rf14(5), rf16(6), rf24(7), rf28(8), rf32(9), rf64(10), rf128(11), + rf256(12), rf512(13), rf1024(14), spare(15) }, + numRetx-r13 [2] INTEGER (0..3), + numRepetition-r13 [3] INTEGER (1..50), + tf-ResourceConfig-r13 [4] SL-TF-ResourceConfig-r12, + txParameters-r13 [5] SEQUENCE { + txParametersGeneral-r13 [0] P0-SL-r12, + txProbability-r13 [1] ENUMERATED { p25(0), p50(1), p75(2), p100(3) } + } OPTIONAL, + ... +} + +SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF + SL-PreconfigDiscPool-r13 + +SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF + SL-PreconfigDiscPool-r13 + +SL-PreconfigRelay-r13 ::= SEQUENCE { + reselectionInfoOoC-r13 [0] ReselectionInfoRelay-r13 +} + +SL-Preconfiguration-r12 ::= SEQUENCE { + preconfigGeneral-r12 [0] SL-PreconfigGeneral-r12, + preconfigSync-r12 [1] SL-PreconfigSync-r12, + preconfigComm-r12 [2] SL-PreconfigCommPoolList4-r12, + ..., + [[ + preconfigComm-v1310 [3] SEQUENCE { + commRxPoolList-r13 [0] SL-PreconfigCommRxPoolList-r13, + commTxPoolList-r13 [1] SL-PreconfigCommTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigDisc-r13 [4] SEQUENCE { + discRxPoolList-r13 [0] SL-PreconfigDiscRxPoolList-r13, + discTxPoolList-r13 [1] SL-PreconfigDiscTxPoolList-r13 OPTIONAL + } OPTIONAL, + preconfigRelay-r13 [5] SL-PreconfigRelay-r13 OPTIONAL + ]] +} + +SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE { + syncOffsetIndicator1-r14 [0] SL-OffsetIndicatorSync-r14, + syncOffsetIndicator2-r14 [1] SL-OffsetIndicatorSync-r14, + syncOffsetIndicator3-r14 [2] SL-OffsetIndicatorSync-r14 OPTIONAL +} + +SL-PreconfigV2X-Sync-r14 ::= SEQUENCE { + syncOffsetIndicators-r14 [0] SL-V2X-SyncOffsetIndicators-r14, + syncTxParameters-r14 [1] P0-SL-r12, + syncTxThreshOoC-r14 [2] RSRP-RangeSL3-r12, + filterCoefficient-r14 [3] FilterCoefficient, + syncRefMinHyst-r14 [4] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) + }, + syncRefDiffHyst-r14 [5] ENUMERATED { dB0(0), dB3(1), dB6(2), dB9(3), dB12(4) + , dBinf(5) }, + ..., + [[ + slss-TxDisabled-r15 [6] ENUMERATED { true(0) } OPTIONAL + ]] +} + +SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE { + priorityThreshold-r14 [0] SL-Priority-r13, + defaultTxConfigIndex-r14 [1] INTEGER (0..maxCBR-Level-1-r14), + cbr-ConfigIndex-r14 [2] INTEGER (0..maxSL-V2X-CBRConfig2-1-r14), + tx-ConfigIndexList-r14 [3] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14 +} + +SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF + SL-PPPP-TxPreconfigIndex-r14 + +SL-PPPP-TxPreconfigIndex-v1530 ::= SEQUENCE { + mcs-PSSCH-Range-r15 [0] SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15 OPTIONAL +} + +SL-CBR-PPPP-TxPreconfigList-v1530 ::= SEQUENCE (SIZE (1..8)) OF + SL-PPPP-TxPreconfigIndex-v1530 + +SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE { +--This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent + sl-OffsetIndicator-r14 [0] EXPLICIT SL-OffsetIndicator-r12 OPTIONAL, + sl-Subframe-r14 [1] EXPLICIT SubframeBitmapSL-r14, + adjacencyPSCCH-PSSCH-r14 [2] BOOLEAN, + sizeSubchannel-r14 [3] ENUMERATED { n4(0), n5(1), n6(2), n8(3), n9(4), + n10(5), n12(6), n15(7), n16(8), n18(9), n20(10), n25(11), n30(12), + n48(13), n50(14), n72(15), n75(16), n96(17), n100(18), spare13(19), + spare12(20), spare11(21), spare10(22), spare9(23), spare8(24), spare7(25) + , spare6(26), spare5(27), spare4(28), spare3(29), spare2(30), spare1(31) + }, + numSubchannel-r14 [4] ENUMERATED { n1(0), n3(1), n5(2), n8(3), n10(4), + n15(5), n20(6), spare1(7) }, + startRB-Subchannel-r14 [5] INTEGER (0..99), + startRB-PSCCH-Pool-r14 [6] INTEGER (0..99) OPTIONAL, + dataTxParameters-r14 [7] P0-SL-r12, + zoneID-r14 [8] INTEGER (0..7) OPTIONAL, + threshS-RSSI-CBR-r14 [9] INTEGER (0..45) OPTIONAL, + cbr-pssch-TxConfigList-r14 [10] SL-CBR-PPPP-TxPreconfigList-r14 OPTIONAL, + resourceSelectionConfigP2X-r14 [11] SL-P2X-ResourceSelectionConfig-r14 + OPTIONAL, + syncAllowed-r14 [12] SL-SyncAllowed-r14 OPTIONAL, + restrictResourceReservationPeriod-r14 [13] + SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, + ..., + [[ + sl-MinT2ValueList-r15 [14] SL-MinT2ValueList-r15 OPTIONAL, + cbr-pssch-TxConfigList-v1530 [15] SL-CBR-PPPP-TxPreconfigList-v1530 + OPTIONAL + ]] +} + +SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF + SL-V2X-PreconfigCommPool-r14 + +SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF + SL-V2X-PreconfigCommPool-r14 + +SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE { + v2x-CommPreconfigGeneral-r14 [0] SL-PreconfigGeneral-r12, + v2x-CommPreconfigSync-r14 [1] SL-PreconfigV2X-Sync-r14 OPTIONAL, + v2x-CommRxPoolList-r14 [2] SL-PreconfigV2X-RxPoolList-r14, + v2x-CommTxPoolList-r14 [3] SL-PreconfigV2X-TxPoolList-r14, + p2x-CommTxPoolList-r14 [4] SL-PreconfigV2X-TxPoolList-r14, + v2x-ResourceSelectionConfig-r14 [5] SL-CommTxPoolSensingConfig-r14 OPTIONAL, + zoneConfig-r14 [6] SL-ZoneConfig-r14 OPTIONAL, + syncPriority-r14 [7] ENUMERATED { gnss(0), enb(1) }, + thresSL-TxPrioritization-r14 [8] SL-Priority-r13 OPTIONAL, + offsetDFN-r14 [9] INTEGER (0..1000) OPTIONAL, + ..., + [[ + v2x-FreqSelectionConfigList-r15 [10] SL-V2X-FreqSelectionConfigList-r15 + OPTIONAL + ]] +} + +SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF + SL-V2X-PreconfigFreqInfo-r14 + +SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE { + cbr-RangeCommonConfigList-r14 [0] SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF + SL-CBR-Levels-Config-r14, + sl-CBR-PSSCH-TxConfigList-r14 [1] SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF + SL-CBR-PSSCH-TxConfig-r14 +} + +SL-V2X-TxProfileList-r15 ::= SEQUENCE (SIZE (1..256)) OF SL-V2X-TxProfile-r15 + +SL-V2X-Preconfiguration-r14 ::= SEQUENCE { + v2x-PreconfigFreqList-r14 [0] SL-V2X-PreconfigFreqList-r14, + anchorCarrierFreqList-r14 [1] SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, + cbr-PreconfigList-r14 [2] SL-CBR-PreconfigTxConfigList-r14 OPTIONAL, + ..., + [[ + v2x-PacketDuplicationConfig-r15 [3] SL-V2X-PacketDuplicationConfig-r15 + OPTIONAL, + syncFreqList-r15 [4] SL-V2X-SyncFreqList-r15 OPTIONAL, + slss-TxMultiFreq-r15 [5] ENUMERATED { true(0) } OPTIONAL, + v2x-TxProfileList-r15 [6] SL-V2X-TxProfileList-r15 OPTIONAL + ]], + [[ + anchorCarrierFreqListNR-r16 [7] SL-NR-AnchorCarrierFreqList-r16 OPTIONAL + ]] +} + +END diff --git a/lte-parser/specs/EUTRA-UE-Variables.asn b/lte-parser/specs/EUTRA-UE-Variables.asn new file mode 100644 index 0000000..3c493b2 --- /dev/null +++ b/lte-parser/specs/EUTRA-UE-Variables.asn @@ -0,0 +1,240 @@ +-- This file was generated by the Objective Systems ASN1C Compiler +-- (http://www.obj-sys.com). Version: 7.7.2, Date: 13-Oct-2023. + +EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +AbsoluteTimeInfo-r10, AreaConfiguration-r10, AreaConfiguration-v1130, + ARFCN-ValueNR-r15, BT-NameList-r15, CarrierFreqGERAN, CellIdentity, + CellList-r15, CondReconfigurationToAddModList-r16, ConnEstFailReport-r11, + EUTRA-CarrierList-r15, SpeedStateScaleFactors, C-RNTI, + LoggedEventTriggerConfig-r17, LoggingDuration-r10, LoggingInterval-r10, + LogMeasInfo-r10, MeasCSI-RS-Id-r12, MeasId, MeasId-v1250, MeasIdToAddModList + , MeasIdToAddModListExt-r12, MeasIdToAddModList-v1310, + MeasIdToAddModListExt-v1310, MeasObjectToAddModList, + MeasObjectToAddModList-v9e0, MeasObjectToAddModListExt-r13, + MeasResultListExtIdle-r16, MeasResultListIdle-r15, MeasResultListIdleNR-r16 + , MeasScaleFactor-r12, MobilityStateParameters, NeighCellConfig, + NR-CarrierList-r16, PhysCellId, PhysCellIdCDMA2000, PhysCellIdGERAN, + PhysCellIdUTRA-FDD, PhysCellIdUTRA-TDD, PLMN-Identity, + PLMN-IdentityList3-r11, QuantityConfig, ReportConfigToAddModList, + RLF-Report-r9, TargetMBSFN-AreaList-r12, TraceReference-r10, + Tx-ResourcePoolMeasList-r14, VisitedCellInfoList-r12, maxCellMeas, + maxCSI-RS-Meas-r12, maxMeasId, maxMeasId-r12, maxRS-Index-r15, + PhysCellIdNR-r15, RS-IndexNR-r15, UL-DelayConfig-r13, ValidityAreaList-r16, + WLAN-CarrierInfo-r13, WLAN-Identifiers-r12, WLAN-Id-List-r13, + WLAN-NameList-r15, WLAN-Status-r13, WLAN-Status-v1430, + WLAN-SuspendConfig-r14 +FROM EUTRA-RRC-Definitions ; + +-- Productions + +VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12 + +VarConditionalReconfiguration ::= SEQUENCE { +-- Conditional reconfigurations list + condReconfigurationList-r16 [0] CondReconfigurationToAddModList-r16 OPTIONAL +} + +VarConnEstFailReport-r11 ::= SEQUENCE { + connEstFailReport-r11 [0] ConnEstFailReport-r11, + plmn-Identity-r11 [1] PLMN-Identity +} + +VarLogMeasConfig-r10 ::= SEQUENCE { + areaConfiguration-r10 [0] EXPLICIT AreaConfiguration-r10 OPTIONAL, + loggingDuration-r10 [1] LoggingDuration-r10, + loggingInterval-r10 [2] LoggingInterval-r10 +} + +VarLogMeasConfig-r11 ::= SEQUENCE { + areaConfiguration-r10 [0] EXPLICIT AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 [1] AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 [2] LoggingDuration-r10, + loggingInterval-r10 [3] LoggingInterval-r10 +} + +VarLogMeasConfig-r12 ::= SEQUENCE { + areaConfiguration-r10 [0] EXPLICIT AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 [1] AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 [2] LoggingDuration-r10, + loggingInterval-r10 [3] LoggingInterval-r10, + targetMBSFN-AreaList-r12 [4] TargetMBSFN-AreaList-r12 OPTIONAL +} + +VarLogMeasConfig-r15 ::= SEQUENCE { + areaConfiguration-r10 [0] EXPLICIT AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 [1] AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 [2] LoggingDuration-r10, + loggingInterval-r10 [3] LoggingInterval-r10, + targetMBSFN-AreaList-r12 [4] TargetMBSFN-AreaList-r12 OPTIONAL, + bt-NameList-r15 [5] BT-NameList-r15 OPTIONAL, + wlan-NameList-r15 [6] WLAN-NameList-r15 OPTIONAL +} + +VarLogMeasConfig-r17 ::= SEQUENCE { + areaConfiguration-r10 [0] EXPLICIT AreaConfiguration-r10 OPTIONAL, + areaConfiguration-v1130 [1] AreaConfiguration-v1130 OPTIONAL, + loggingDuration-r10 [2] LoggingDuration-r10, + loggingInterval-r10 [3] LoggingInterval-r10, + targetMBSFN-AreaList-r12 [4] TargetMBSFN-AreaList-r12 OPTIONAL, + bt-NameList-r15 [5] BT-NameList-r15 OPTIONAL, + wlan-NameList-r15 [6] WLAN-NameList-r15 OPTIONAL, + loggedEventTriggerConfig-r17 [7] LoggedEventTriggerConfig-r17 OPTIONAL, + measUncomBarPre-r17 [8] ENUMERATED { true(0) } OPTIONAL +} + +LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 + +VarLogMeasReport-r10 ::= SEQUENCE { + traceReference-r10 [0] TraceReference-r10, + traceRecordingSessionRef-r10 [1] OCTET STRING (SIZE (2)), + tce-Id-r10 [2] OCTET STRING (SIZE (1)), + plmn-Identity-r10 [3] PLMN-Identity, + absoluteTimeInfo-r10 [4] AbsoluteTimeInfo-r10, + logMeasInfoList-r10 [5] LogMeasInfoList2-r10 +} + +VarLogMeasReport-r11 ::= SEQUENCE { + traceReference-r10 [0] TraceReference-r10, + traceRecordingSessionRef-r10 [1] OCTET STRING (SIZE (2)), + tce-Id-r10 [2] OCTET STRING (SIZE (1)), + plmn-IdentityList-r11 [3] PLMN-IdentityList3-r11, + absoluteTimeInfo-r10 [4] AbsoluteTimeInfo-r10, + logMeasInfoList-r10 [5] LogMeasInfoList2-r10 +} + +VarMeasConfig ::= SEQUENCE { +--Measurement identities + measIdList [0] MeasIdToAddModList OPTIONAL, + measIdListExt-r12 [1] MeasIdToAddModListExt-r12 OPTIONAL, + measIdList-v1310 [2] MeasIdToAddModList-v1310 OPTIONAL, + measIdListExt-v1310 [3] MeasIdToAddModListExt-v1310 OPTIONAL, +--Measurement objects + measObjectList [4] MeasObjectToAddModList OPTIONAL, + measObjectListExt-r13 [5] MeasObjectToAddModListExt-r13 OPTIONAL, + measObjectList-v9i0 [6] MeasObjectToAddModList-v9e0 OPTIONAL, +--Reporting configurations + reportConfigList [7] ReportConfigToAddModList OPTIONAL, +--Other parameters + quantityConfig [8] QuantityConfig OPTIONAL, + measScaleFactor-r12 [9] MeasScaleFactor-r12 OPTIONAL, + s-Measure [10] INTEGER (-140..-44) OPTIONAL, + speedStatePars [11] EXPLICIT CHOICE { + release [0] NULL, + setup [1] SEQUENCE { + mobilityStateParameters [0] MobilityStateParameters, + timeToTrigger-SF [1] SpeedStateScaleFactors + } + } OPTIONAL, + allowInterruptions-r11 [12] BOOLEAN OPTIONAL +} + +VarMeasIdleConfig-r15 ::= SEQUENCE { + measIdleCarrierListEUTRA-r15 [0] EUTRA-CarrierList-r15 OPTIONAL, + measIdleDuration-r15 [1] ENUMERATED { sec10(0), sec30(1), sec60(2), + sec120(3), sec180(4), sec240(5), sec300(6) } +} + +VarMeasIdleConfig-r16 ::= SEQUENCE { + measIdleCarrierListNR-r16 [0] NR-CarrierList-r16 OPTIONAL, + validityAreaList-r16 [1] ValidityAreaList-r16 OPTIONAL +} + +VarMeasIdleReport-r15 ::= SEQUENCE { + measReportIdle-r15 [0] MeasResultListIdle-r15 +} + +VarMeasIdleReport-r16 ::= SEQUENCE { + measReportIdle-r16 [0] MeasResultListExtIdle-r16 OPTIONAL, + measReportIdleNR-r16 [1] MeasResultListIdleNR-r16 OPTIONAL +} + +SSB-IndexList-r15 ::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF RS-IndexNR-r15 + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE { + physCellIdEUTRA [0] PhysCellId, + physCellIdUTRA [1] EXPLICIT CHOICE { + fdd [0] PhysCellIdUTRA-FDD, + tdd [1] PhysCellIdUTRA-TDD + }, + physCellIdGERAN [2] SEQUENCE { + carrierFreq [0] CarrierFreqGERAN, + physCellId [1] PhysCellIdGERAN + }, + physCellIdCDMA2000 [3] PhysCellIdCDMA2000, + wlan-Identifiers-r13 [4] WLAN-Identifiers-r12, + physCellIdNR-r15 [5] SEQUENCE { + carrierFreq [0] ARFCN-ValueNR-r15, + physCellId [1] PhysCellIdNR-r15, + rs-IndexList-r15 [2] SSB-IndexList-r15 OPTIONAL + } +} + +CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12 + +VarMeasReport ::= SEQUENCE { +--List of measurement that have been triggered + measId [0] MeasId, + measId-v1250 [1] MeasId-v1250 OPTIONAL, + cellsTriggeredList [2] CellsTriggeredList OPTIONAL, + csi-RS-TriggeredList-r12 [3] CSI-RS-TriggeredList-r12 OPTIONAL, + poolsTriggeredList-r14 [4] Tx-ResourcePoolMeasList-r14 OPTIONAL, + numberOfReportsSent [5] INTEGER +} + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport + +VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport + +VarPendingRnaUpdate-r15 ::= SEQUENCE { + pendingRnaUpdate [0] BOOLEAN OPTIONAL +} + +VarRLF-Report-r10 ::= SEQUENCE { + rlf-Report-r10 [0] RLF-Report-r9, + plmn-Identity-r10 [1] PLMN-Identity +} + +VarRLF-Report-r11 ::= SEQUENCE { + rlf-Report-r10 [0] RLF-Report-r9, + plmn-IdentityList-r11 [1] PLMN-IdentityList3-r11 +} + +VarShortINACTIVE-MAC-Input-r15 ::= SEQUENCE { + cellIdentity-r15 [0] CellIdentity, + physCellId-r15 [1] PhysCellId, + c-RNTI-r15 [2] C-RNTI +} + +VarShortMAC-Input ::= SEQUENCE { + cellIdentity [0] CellIdentity, + physCellId [1] PhysCellId, + c-RNTI [2] C-RNTI +} + +VarShortResumeMAC-Input-r13 ::= SEQUENCE { + cellIdentity-r13 [0] CellIdentity, + physCellId-r13 [1] PhysCellId, + c-RNTI-r13 [2] C-RNTI, + resumeDiscriminator-r13 [3] BIT STRING (SIZE (1)) +} + +VarWLAN-MobilityConfig ::= SEQUENCE { + wlan-MobilitySet-r13 [0] WLAN-Id-List-r13 OPTIONAL, + successReportRequested [1] ENUMERATED { true(0) } OPTIONAL, + wlan-SuspendConfig-r14 [2] WLAN-SuspendConfig-r14 OPTIONAL +} + +VarWLAN-Status-r13 ::= SEQUENCE { + status-r13 [0] WLAN-Status-r13, + status-r14 [1] WLAN-Status-v1430 OPTIONAL +} + +-- Value assignments + +maxLogMeas-r10 INTEGER ::= 4060 + + +END diff --git a/lte-parser/specs/PC5-RRC-Definitions.asn b/lte-parser/specs/PC5-RRC-Definitions.asn new file mode 100644 index 0000000..f9d313c --- /dev/null +++ b/lte-parser/specs/PC5-RRC-Definitions.asn @@ -0,0 +1,45 @@ +-- This file was generated by the Objective Systems ASN1C Compiler +-- (http://www.obj-sys.com). Version: 7.7.2, Date: 13-Oct-2023. + +PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN + +IMPORTS + +TDD-ConfigSL-r12 +FROM EUTRA-RRC-Definitions ; + +-- Productions + +MasterInformationBlock-SL ::= SEQUENCE { + sl-Bandwidth-r12 [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) }, + tdd-ConfigSL-r12 [1] TDD-ConfigSL-r12, + directFrameNumber-r12 [2] BIT STRING (SIZE (10)), + directSubframeNumber-r12 [3] INTEGER (0..9), + inCoverage-r12 [4] BOOLEAN, + reserved-r12 [5] BIT STRING (SIZE (19)) +} + +SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL + +MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE { + sl-Bandwidth-r14 [0] ENUMERATED { n6(0), n15(1), n25(2), n50(3), n75(4), + n100(5) }, + tdd-ConfigSL-r14 [1] TDD-ConfigSL-r12, + directFrameNumber-r14 [2] BIT STRING (SIZE (10)), + directSubframeNumber-r14 [3] INTEGER (0..9), + inCoverage-r14 [4] BOOLEAN, + reserved-r14 [5] BIT STRING (SIZE (27)) +} + +SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14 + +SBCCH-SL-BCH-Message ::= SEQUENCE { + message [0] SBCCH-SL-BCH-MessageType +} + +SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE { + message [0] SBCCH-SL-BCH-MessageType-V2X-r14 +} + +END diff --git a/lte-parser/src/lib.rs b/lte-parser/src/lib.rs new file mode 100644 index 0000000..3e62906 --- /dev/null +++ b/lte-parser/src/lib.rs @@ -0,0 +1,2 @@ +#[allow(unreachable_patterns, non_camel_case_types)] +pub mod lte_rrc; diff --git a/lte-parser/src/lte_rrc.rs b/lte-parser/src/lte_rrc.rs new file mode 100644 index 0000000..d433907 --- /dev/null +++ b/lte-parser/src/lte_rrc.rs @@ -0,0 +1,51188 @@ +/* +This file was autogenerated using hampi (https://github.com/ystero-dev/hampi), do not modify! + + This place is not a place of honor... + no highly esteemed deed is commemorated here... + nothing valued is here. +*/ + +pub const MAX_ACDC_CAT_R13: i64 = 16; + +pub const MAX_ACCESS_CAT_1_R15: i64 = 63; + +pub const MAX_AVAIL_NARROW_BANDS_1_R16: i64 = 15; + +pub const MAX_AVAIL_NARROW_BANDS_R13: i64 = 16; + +pub const MAX_BT_ID_REPORT_R15: i64 = 32; + +pub const MAX_BT_NAME_R15: i64 = 4; + +pub const MAX_BAND_COMB_R10: i64 = 128; + +pub const MAX_BAND_COMB_R11: i64 = 256; + +pub const MAX_BAND_COMB_R13: i64 = 384; + +pub const MAX_BAND_COMB_SIDELINK_NR_R16: i64 = 512; + +pub const MAX_BANDS: i64 = 64; + +pub const MAX_BANDS_ENDC_R16: i64 = 10; + +pub const MAX_BANDS_NR_R15: i64 = 1024; + +pub const MAX_BANDWIDTH_CLASS_R10: i64 = 16; + +pub const MAX_BANDWIDTH_COMB_SET_R10: i64 = 32; + +pub const MAX_BARRING_INFO_SET_R15: i64 = 8; + +pub const MAX_CBR_LEVEL_1_R14: i64 = 15; + +pub const MAX_CBR_LEVEL_R14: i64 = 16; + +pub const MAX_CBR_REPORT_R14: i64 = 72; + +pub const MAX_CDMA_BAND_CLASS: i64 = 32; + +pub const MAX_CE_LEVEL_R13: i64 = 4; + +pub const MAX_CQI_PROC_EXT_R11: i64 = 3; + +pub const MAX_CSI_IM_R11: i64 = 3; + +pub const MAX_CSI_IM_R12: i64 = 4; + +pub const MAX_CSI_IM_R13: i64 = 24; + +pub const MAX_CSI_IM_V1310: i64 = 20; + +pub const MAX_CSI_PROC_R11: i64 = 4; + +pub const MAX_CSI_RS_MEAS_R12: i64 = 96; + +pub const MAX_CSI_RS_NZP_R11: i64 = 3; + +pub const MAX_CSI_RS_NZP_R13: i64 = 24; + +pub const MAX_CSI_RS_NZP_V1310: i64 = 21; + +pub const MAX_CSI_RS_ZP_R11: i64 = 4; + +pub const MAX_CELL_ALLOWED_NR_R16: i64 = 16; + +pub const MAX_CELL_HISTORY_R12: i64 = 16; + +pub const MAX_CELL_INFO_GERAN_R9: i64 = 32; + +pub const MAX_CELL_INFO_UTRA_R9: i64 = 16; + +pub const MAX_CELL_INTER: i64 = 16; + +pub const MAX_CELL_INTRA: i64 = 16; + +pub const MAX_CELL_LIST_GERAN: i64 = 3; + +pub const MAX_CELL_MEAS: i64 = 32; + +pub const MAX_CELL_MEAS_IDLE_R15: i64 = 8; + +pub const MAX_CELL_NR_R17: i64 = 8; + +pub const MAX_CELL_REPORT: i64 = 8; + +pub const MAX_CELL_SFTD: i64 = 3; + +pub const MAX_COMB_IDC_R11: i64 = 128; + +pub const MAX_COND_CONFIG_R16: i64 = 8; + +pub const MAX_CONFIG_SPS_R14: i64 = 8; + +pub const MAX_CONFIG_SPS_R15: i64 = 6; + +pub const MAX_DRB: i64 = 11; + +pub const MAX_DRB_R15: i64 = 15; + +pub const MAX_DRB_EXT_R15: i64 = 4; + +pub const MAX_DS_DURATION_R12: i64 = 5; + +pub const MAX_DS_ZTP_CSI_RS_R12: i64 = 5; + +pub const MAX_EARFCN: i64 = 65535; + +pub const MAX_EARFCN_PLUS1: i64 = 65536; + +pub const MAX_EARFCN2: i64 = 262143; + +pub const MAX_EPDCCH_SET_R11: i64 = 2; + +pub const MAX_EXCLUDED_CELL: i64 = 16; + +pub const MAX_FBI: i64 = 64; + +pub const MAX_FBI_NR_R15: i64 = 1024; + +pub const MAX_FBI_PLUS1: i64 = 65; + +pub const MAX_FBI2: i64 = 256; + +pub const MAX_FEATURE_SETS_R15: i64 = 256; + +pub const MAX_FREQ: i64 = 8; + +pub const MAX_FREQ_1_R16: i64 = 7; + +pub const MAX_FREQ_IDC_R11: i64 = 32; + +pub const MAX_FREQ_IDLE_R15: i64 = 8; + +pub const MAX_FREQ_MBMS_R11: i64 = 5; + +pub const MAX_FREQ_NBIOT_R16: i64 = 8; + +pub const MAX_FREQ_NR_R15: i64 = 5; + +pub const MAX_FREQ_SL_NR_R16: i64 = 8; + +pub const MAX_FREQ_UTRA_TDD_R10: i64 = 6; + +pub const MAX_FREQ_V2X_1_R14: i64 = 7; + +pub const MAX_FREQ_V2X_R14: i64 = 8; + +pub const MAX_GERAN_SI: i64 = 10; + +pub const MAX_GNFG: i64 = 16; + +pub const MAX_GWUS_GROUPS_1_R16: i64 = 31; + +pub const MAX_GWUS_PROB_THRESHOLDS_R16: i64 = 3; + +pub const MAX_GWUS_RESOURCES_R16: i64 = 4; + +pub const MAX_IDLE_MEAS_CARRIERS_R15: i64 = 3; + +pub const MAX_IDLE_MEAS_CARRIERS_R16: i64 = 8; + +pub const MAX_IDLE_MEAS_CARRIERS_EXT_R16: i64 = 5; + +pub const MAX_LCG_R13: i64 = 4; + +pub const MAX_LOG_MEAS_R10: i64 = 4060; + +pub const MAX_LOG_MEAS_REPORT_R10: i64 = 520; + +pub const MAX_MBMS_SERVICE_LIST_PER_UE_R13: i64 = 15; + +pub const MAX_MBSFN_ALLOCATIONS: i64 = 8; + +pub const MAX_MBSFN_AREA: i64 = 8; + +pub const MAX_MBSFN_AREA_1: i64 = 7; + +pub const MAX_MEAS_ID: i64 = 32; + +pub const MAX_MEAS_ID_PLUS1: i64 = 33; + +pub const MAX_MEAS_ID_R12: i64 = 64; + +pub const MAX_MULTI_BANDS: i64 = 8; + +pub const MAX_MULTI_BANDS_NR_1_R15: i64 = 31; + +pub const MAX_MULTI_BANDS_NR_R15: i64 = 32; + +pub const MAX_NAICS_ENTRIES_R12: i64 = 8; + +pub const MAX_NS_PMAX_R10: i64 = 8; + +pub const MAX_NEIGH_CELL_SCPTM_R13: i64 = 8; + +pub const MAX_NEIGH_CELL_R12: i64 = 8; + +pub const MAX_NROF_PCI_PER_SMTC_R16: i64 = 64; + +pub const MAX_NROF_S_NSSAI_R15: i64 = 8; + +pub const MAX_OBJECT_ID: i64 = 32; + +pub const MAX_OBJECT_ID_PLUS1_R13: i64 = 33; + +pub const MAX_OBJECT_ID_R13: i64 = 64; + +pub const MAX_P_A_PER_NEIGH_CELL_R12: i64 = 3; + +pub const MAX_PLMN_1_R14: i64 = 5; + +pub const MAX_PLMN_NR_R15: i64 = 12; + +pub const MAX_PLMN_R11: i64 = 6; + +pub const MAX_PLMN_R15: i64 = 8; + +pub const MAX_PMCH_PER_MBSFN: i64 = 15; + +pub const MAX_PN_OFFSET: i64 = 511; + +pub const MAX_PSSCH_TX_CONFIG_R14: i64 = 16; + +pub const MAX_PAGE_REC: i64 = 16; + +pub const MAX_PER_CC_FEATURE_SETS_R15: i64 = 32; + +pub const MAX_PHYS_CELL_ID_RANGE_R9: i64 = 4; + +pub const MAX_QCI_R13: i64 = 6; + +pub const MAX_QUANT_SETS_NR_R15: i64 = 2; + +pub const MAX_RAT_CAPABILITIES: i64 = 8; + +pub const MAX_RE_MAP_QCL_R11: i64 = 4; + +pub const MAX_RS_INDEX_1_R15: i64 = 63; + +pub const MAX_RS_INDEX_R15: i64 = 64; + +pub const MAX_RS_INDEX_CELL_QUAL_R15: i64 = 16; + +pub const MAX_RS_INDEX_REPORT_R15: i64 = 32; + +pub const MAX_RSTD_FREQ_R10: i64 = 3; + +pub const MAX_REESTAB_INFO: i64 = 32; + +pub const MAX_REPORT_CONFIG_ID: i64 = 32; + +pub const MAX_RESERVATION_PERIOD_R14: i64 = 16; + +pub const MAX_SAI_MBMS_R11: i64 = 64; + +pub const MAX_SC_MTCH_BR_R14: i64 = 128; + +pub const MAX_SC_MTCH_R13: i64 = 1023; + +pub const MAX_S_CELL_R10: i64 = 4; + +pub const MAX_S_CELL_R13: i64 = 31; + +pub const MAX_S_CELL_GROUPS_R15: i64 = 4; + +pub const MAX_SI_MESSAGE: i64 = 32; + +pub const MAX_SIB: i64 = 32; + +pub const MAX_SIB_1: i64 = 31; + +pub const MAX_SL_COMM_RX_POOL_N_FREQ_R13: i64 = 32; + +pub const MAX_SL_COMM_RX_POOL_PRECONF_V1310: i64 = 12; + +pub const MAX_SL_COMM_TX_POOL_PRECONF_V1310: i64 = 7; + +pub const MAX_SL_DEST_R12: i64 = 16; + +pub const MAX_SL_DISC_CELLS_R13: i64 = 16; + +pub const MAX_SL_DISC_POWER_CLASS_R12: i64 = 3; + +pub const MAX_SL_DISC_RX_POOL_PRECONF_R13: i64 = 16; + +pub const MAX_SL_DISC_SYS_INFO_REPORT_FREQ_R13: i64 = 8; + +pub const MAX_SL_DISC_TX_POOL_PRECONF_R13: i64 = 4; + +pub const MAX_SL_GP_R13: i64 = 8; + +pub const MAX_SL_POOL_TO_MEASURE_R14: i64 = 72; + +pub const MAX_SL_PRIO_R13: i64 = 8; + +pub const MAX_SL_RELIABILITY_R15: i64 = 8; + +pub const MAX_SL_RX_POOL_R12: i64 = 16; + +pub const MAX_SL_SYNC_CONFIG_R12: i64 = 16; + +pub const MAX_SL_TF_INDEX_PAIR_R12: i64 = 64; + +pub const MAX_SL_TX_POOL_R12: i64 = 4; + +pub const MAX_SL_TX_POOL_R12_PLUS1_R13: i64 = 5; + +pub const MAX_SL_TX_POOL_R13: i64 = 8; + +pub const MAX_SL_TX_POOL_V1310: i64 = 4; + +pub const MAX_SL_V2X_CBR_CONFIG_1_R14: i64 = 3; + +pub const MAX_SL_V2X_CBR_CONFIG_R14: i64 = 4; + +pub const MAX_SL_V2X_CBR_CONFIG2_1_R14: i64 = 7; + +pub const MAX_SL_V2X_CBR_CONFIG2_R14: i64 = 8; + +pub const MAX_SL_V2X_RX_POOL_R14: i64 = 16; + +pub const MAX_SL_V2X_RX_POOL_PRECONF_R14: i64 = 16; + +pub const MAX_SL_V2X_SYNC_CONFIG_R14: i64 = 16; + +pub const MAX_SL_V2X_TX_CONFIG_1_R14: i64 = 63; + +pub const MAX_SL_V2X_TX_CONFIG_R14: i64 = 64; + +pub const MAX_SL_V2X_TX_CONFIG2_1_R14: i64 = 127; + +pub const MAX_SL_V2X_TX_CONFIG2_R14: i64 = 128; + +pub const MAX_SL_V2X_TX_POOL_R14: i64 = 8; + +pub const MAX_SL_V2X_TX_POOL_PRECONF_R14: i64 = 8; + +pub const MAX_STAG_R11: i64 = 3; + +pub const MAX_SAT_R17: i64 = 4; + +pub const MAX_SERV_CELL_R10: i64 = 5; + +pub const MAX_SERV_CELL_R13: i64 = 32; + +pub const MAX_SERV_CELL_NR_R15: i64 = 16; + +pub const MAX_SERVICE_COUNT: i64 = 16; + +pub const MAX_SERVICE_COUNT_1: i64 = 15; + +pub const MAX_SESSION_PER_PMCH: i64 = 29; + +pub const MAX_SESSION_PER_PMCH_1: i64 = 28; + +pub const MAX_SIMULTANEOUS_BANDS_R10: i64 = 64; + +pub const MAX_SUBFRAME_PATTERN_IDC_R11: i64 = 8; + +pub const MAX_TAC_R17: i64 = 12; + +pub const MAX_TRAFFIC_PATTERN_R14: i64 = 8; + +pub const MAX_UTRA_FDD_CARRIER: i64 = 16; + +pub const MAX_UTRA_TDD_CARRIER: i64 = 16; + +pub const MAX_WLAN_BANDS_R13: i64 = 8; + +pub const MAX_WLAN_CARRIER_INFO_R13: i64 = 8; + +pub const MAX_WLAN_CHANNELS_R13: i64 = 16; + +pub const MAX_WLAN_ID_REPORT_R14: i64 = 32; + +pub const MAX_WLAN_ID_R12: i64 = 16; + +pub const MAX_WLAN_ID_R13: i64 = 32; + +pub const MAX_WLAN_NAME_R15: i64 = 4; + +pub const MAX_WAY_POINT_R15: i64 = 20; + +pub const MIN_CSI_IM_R13: i64 = 5; + +pub const MIN_CSI_RS_NZP_R13: i64 = 4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AC_BarringConfig { + pub ac_barring_factor: AC_BarringConfigAc_BarringFactor, + pub ac_barring_time: AC_BarringConfigAc_BarringTime, + pub ac_barring_for_special_ac: AC_BarringConfigAc_BarringForSpecialAC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AC_BarringConfig1XRTT_r9 { + pub ac_barring0to9_r9: AC_BarringConfig1XRTT_r9Ac_Barring0to9_r9, + pub ac_barring10_r9: AC_BarringConfig1XRTT_r9Ac_Barring10_r9, + pub ac_barring11_r9: AC_BarringConfig1XRTT_r9Ac_Barring11_r9, + pub ac_barring12_r9: AC_BarringConfig1XRTT_r9Ac_Barring12_r9, + pub ac_barring13_r9: AC_BarringConfig1XRTT_r9Ac_Barring13_r9, + pub ac_barring14_r9: AC_BarringConfig1XRTT_r9Ac_Barring14_r9, + pub ac_barring15_r9: AC_BarringConfig1XRTT_r9Ac_Barring15_r9, + pub ac_barring_msg_r9: AC_BarringConfig1XRTT_r9Ac_BarringMsg_r9, + pub ac_barring_reg_r9: AC_BarringConfig1XRTT_r9Ac_BarringReg_r9, + pub ac_barring_emg_r9: AC_BarringConfig1XRTT_r9Ac_BarringEmg_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct AC_BarringPerPLMN_List_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct AC_BarringPerPLMN_r12 { + pub plmn_identity_index_r12: AC_BarringPerPLMN_r12Plmn_IdentityIndex_r12, + #[asn(optional_idx = 0)] + pub ac_barring_info_r12: Option, + #[asn(optional_idx = 1)] + pub ac_barring_skip_for_mmtel_voice_r12: + Option, + #[asn(optional_idx = 2)] + pub ac_barring_skip_for_mmtel_video_r12: + Option, + #[asn(optional_idx = 3)] + pub ac_barring_skip_for_sms_r12: Option, + #[asn(optional_idx = 4)] + pub ac_barring_for_csfb_r12: Option, + #[asn(optional_idx = 5)] + pub ssac_barring_for_mmtel_voice_r12: Option, + #[asn(optional_idx = 6)] + pub ssac_barring_for_mmtel_video_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ACDC_BarringForCommon_r13 { + pub acdc_hplm_nonly_r13: ACDC_BarringForCommon_r13Acdc_HPLMNonly_r13, + pub barring_per_acdc_category_list_r13: BarringPerACDC_CategoryList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct ACDC_BarringPerPLMN_List_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ACDC_BarringPerPLMN_r13 { + pub plmn_identity_index_r13: ACDC_BarringPerPLMN_r13Plmn_IdentityIndex_r13, + pub acdc_only_for_hplmn_r13: ACDC_BarringPerPLMN_r13Acdc_OnlyForHPLMN_r13, + pub barring_per_acdc_category_list_r13: BarringPerACDC_CategoryList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct AMF_Identifier_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct ARFCN_ValueCDMA2000(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct ARFCN_ValueEUTRA(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "262143")] +pub struct ARFCN_ValueEUTRA_r9(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "65536", ub = "262143")] +pub struct ARFCN_ValueEUTRA_v9e0(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct ARFCN_ValueGERAN(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3279165")] +pub struct ARFCN_ValueNR_r15(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "16383")] +pub struct ARFCN_ValueUTRA(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct AS_Config { + pub source_meas_config: MeasConfig, + pub source_radio_resource_config: RadioResourceConfigDedicated, + pub source_security_algorithm_config: SecurityAlgorithmConfig, + pub source_ue_identity: C_RNTI, + pub source_master_information_block: MasterInformationBlock, + pub source_system_information_block_type1: SystemInformationBlockType1, + pub source_system_information_block_type2: SystemInformationBlockType2, + pub antenna_info_common: AntennaInfoCommon, + pub source_dl_carrier_freq: ARFCN_ValueEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Config_v10j0 { + #[asn(optional_idx = 0)] + pub antenna_info_dedicated_p_cell_v10i0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct AS_Config_v1250 { + #[asn(optional_idx = 0)] + pub source_wlan_offload_config_r12: Option, + #[asn(optional_idx = 1)] + pub source_sl_comm_config_r12: Option, + #[asn(optional_idx = 2)] + pub source_sl_disc_config_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct AS_Config_v1320 { + #[asn(optional_idx = 0)] + pub source_s_cell_config_list_r13: Option, + #[asn(optional_idx = 1)] + pub source_rclwi_configuration_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct AS_Config_v13c0 { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_v13c01: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_dedicated_v13c02: Option, + #[asn(optional_idx = 2)] + pub s_cell_to_add_mod_list_v13c0: Option, + #[asn(optional_idx = 3)] + pub s_cell_to_add_mod_list_ext_v13c0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct AS_Config_v1430 { + #[asn(optional_idx = 0)] + pub source_sl_v2x_comm_config_r14: Option, + #[asn(optional_idx = 1)] + pub source_lwa_config_r14: Option, + #[asn(optional_idx = 2)] + pub source_wlan_meas_result_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct AS_Config_v1550 { + #[asn(optional_idx = 0)] + pub tdm_pattern_config_r15: Option, + #[asn(optional_idx = 1)] + pub p_max_eutra_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Config_v1700 { + #[asn(optional_idx = 0)] + pub scg_state_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AS_Config_v9e0 { + pub source_dl_carrier_freq_v9e0: ARFCN_ValueEUTRA_v9e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct AS_ConfigNR_r15 { + #[asn(optional_idx = 0)] + pub source_rb_config_nr_r15: Option, + #[asn(optional_idx = 1)] + pub source_rb_config_sn_nr_r15: Option, + #[asn(optional_idx = 2)] + pub source_other_config_sn_nr_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AS_ConfigNR_v1570 { + pub source_scg_configured_nr_r15: AS_ConfigNR_v1570SourceSCG_ConfiguredNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AS_ConfigNR_v1620 { + pub tdm_pattern_config2_r16: TDM_PatternConfig_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Context { + #[asn(optional_idx = 0)] + pub reestablishment_info: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct AS_Context_v1130 { + #[asn(optional_idx = 0)] + pub idc_indication_r11: Option, + #[asn(optional_idx = 1)] + pub mbms_interest_indication_r11: Option, + #[asn(optional_idx = 2)] + pub ue_assistance_information_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Context_v1320 { + #[asn(optional_idx = 0)] + pub wlan_connection_status_report_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct AS_Context_v1610 { + #[asn(optional_idx = 0)] + pub sidelink_ue_information_nr_r16: Option, + #[asn(optional_idx = 1)] + pub ue_assistance_information_nr_r16: Option, + #[asn(optional_idx = 2)] + pub config_restrict_info_daps_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Context_v1620 { + #[asn(optional_idx = 0)] + pub ue_assistance_information_nr_scg_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AS_Context_v1630 { + #[asn(optional_idx = 0)] + pub config_restrict_info_daps_v1630: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AUL_Config_r15 { + #[asn(key = 0, extended = false)] + Release(AUL_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(AUL_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "48", sz_ub = "48")] +pub struct AbsoluteTimeInfo_r10(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct AccessStratumRelease(pub u8); +impl AccessStratumRelease { + pub const REL8: u8 = 0u8; + pub const REL9: u8 = 1u8; + pub const REL10: u8 = 2u8; + pub const REL11: u8 = 3u8; + pub const REL12: u8 = 4u8; + pub const REL13: u8 = 5u8; + pub const REL14: u8 = 6u8; + pub const REL15: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AdditionalReestabInfo { + pub cell_identity: CellIdentity, + pub key_e_node_b_star: Key_eNodeB_Star, + pub short_mac_i: ShortMAC_I, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AdditionalReestabInfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct AdditionalSI_Info_r9 { + #[asn(optional_idx = 0)] + pub csg_member_status_r9: Option, + #[asn(optional_idx = 1)] + pub csg_identity_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct AdditionalSpectrumEmission(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "33", ub = "288")] +pub struct AdditionalSpectrumEmission_v10l0(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AdditionalSpectrumEmissionNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "8", ub = "39")] +pub struct AdditionalSpectrumEmissionNR_v1760(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AffectedCarrierFreq_r11 { + pub carrier_freq_r11: MeasObjectId, + pub interference_direction_r11: AffectedCarrierFreq_r11InterferenceDirection_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AffectedCarrierFreq_v1310 { + #[asn(optional_idx = 0)] + pub carrier_freq_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "5")] +pub struct AffectedCarrierFreqComb_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "32")] +pub struct AffectedCarrierFreqComb_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AffectedCarrierFreqComb_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AffectedCarrierFreqCombInfoMRDC_r15 { + pub victim_system_type_r15: VictimSystemType_r11, + pub interference_direction_mrdc_r15: + AffectedCarrierFreqCombInfoMRDC_r15InterferenceDirectionMRDC_r15, + #[asn(optional_idx = 0)] + pub affected_carrier_freq_comb_mrdc_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct AffectedCarrierFreqCombList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct AffectedCarrierFreqCombList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct AffectedCarrierFreqCombNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AffectedCarrierFreqList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AffectedCarrierFreqList_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct AllowedCellListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AllowedCellsToAddMod_r13 { + pub cell_index_r13: AllowedCellsToAddMod_r13CellIndex_r13, + pub phys_cell_id_range_r13: PhysCellIdRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AllowedCellsToAddModList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct AllowedMeasBandwidth(pub u8); +impl AllowedMeasBandwidth { + pub const MBW6: u8 = 0u8; + pub const MBW15: u8 = 1u8; + pub const MBW25: u8 = 2u8; + pub const MBW50: u8 = 3u8; + pub const MBW75: u8 = 4u8; + pub const MBW100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct Alpha_r12(pub u8); +impl Alpha_r12 { + pub const AL0: u8 = 0u8; + pub const AL04: u8 = 1u8; + pub const AL05: u8 = 2u8; + pub const AL06: u8 = 3u8; + pub const AL07: u8 = 4u8; + pub const AL08: u8 = 5u8; + pub const AL09: u8 = 6u8; + pub const AL1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AltTTT_CellsToAddMod_r12 { + pub cell_index_r12: AltTTT_CellsToAddMod_r12CellIndex_r12, + pub phys_cell_id_range_r12: PhysCellIdRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct AltTTT_CellsToAddModList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AntennaInfoCommon { + pub antenna_ports_count: AntennaInfoCommonAntennaPortsCount, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoDedicated { + pub transmission_mode: AntennaInfoDedicatedTransmissionMode, + #[asn(optional_idx = 0)] + pub codebook_subset_restriction: Option, + pub ue_transmit_antenna_selection: AntennaInfoDedicatedUe_TransmitAntennaSelection, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoDedicated_r10 { + pub transmission_mode_r10: AntennaInfoDedicated_r10TransmissionMode_r10, + #[asn(optional_idx = 0)] + pub codebook_subset_restriction_r10: + Option, + pub ue_transmit_antenna_selection: AntennaInfoDedicated_r10Ue_TransmitAntennaSelection, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoDedicated_v10i0 { + #[asn(optional_idx = 0)] + pub max_layers_mimo_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AntennaInfoDedicated_v1250 { + pub alternative_codebook_enabled_for4_tx_r12: + AntennaInfoDedicated_v1250AlternativeCodebookEnabledFor4TX_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoDedicated_v1430 { + #[asn(optional_idx = 0)] + pub ce_ue_tx_antenna_selection_config_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicated_v1530 { + #[asn(key = 0, extended = false)] + Release(AntennaInfoDedicated_v1530_release), + #[asn(key = 1, extended = false)] + Setup(AntennaInfoDedicated_v1530_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoDedicated_v920 { + #[asn(optional_idx = 0)] + pub codebook_subset_restriction_v920: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicatedSTTI_r15 { + #[asn(key = 0, extended = false)] + Release(AntennaInfoDedicatedSTTI_r15_release), + #[asn(key = 1, extended = false)] + Setup(AntennaInfoDedicatedSTTI_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AntennaInfoUL_STTI_r15 { + #[asn(optional_idx = 0)] + pub transmission_mode_ul_stti_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct AntennaInfoUL_r10 { + #[asn(optional_idx = 0)] + pub transmission_mode_ul_r10: Option, + #[asn(optional_idx = 1)] + pub four_antenna_port_activated_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ApplicableDisasterInfo_r17 { + #[asn(key = 0, extended = false)] + NoDisasterRoaming_r17(ApplicableDisasterInfo_r17_noDisasterRoaming_r17), + #[asn(key = 1, extended = false)] + DisasterRelatedIndication_r17(ApplicableDisasterInfo_r17_disasterRelatedIndication_r17), + #[asn(key = 2, extended = false)] + CommonPLMNs_r17(ApplicableDisasterInfo_r17_commonPLMNs_r17), + #[asn(key = 3, extended = false)] + DedicatedPLMNs_r17(ApplicableDisasterInfo_r17_dedicatedPLMNs_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AreaConfiguration_r10 { + #[asn(key = 0, extended = false)] + CellGlobalIdList_r10(CellGlobalIdList_r10), + #[asn(key = 1, extended = false)] + TrackingAreaCodeList_r10(TrackingAreaCodeList_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AreaConfiguration_v1130 { + pub tracking_area_code_list_v1130: TrackingAreaCodeList_v1130, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_BCH_Message { + pub message: BCCH_BCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_BCH_Message_MBMS { + pub message: BCCH_BCH_MessageType_MBMS_r14, +} + +pub type BCCH_BCH_MessageType = MasterInformationBlock; + +pub type BCCH_BCH_MessageType_MBMS_r14 = MasterInformationBlock_MBMS_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_Config { + pub modification_period_coeff: BCCH_ConfigModificationPeriodCoeff, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_Config_v1310 { + pub modification_period_coeff_v1310: BCCH_Config_v1310ModificationPeriodCoeff_v1310, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_Message { + pub message: BCCH_DL_SCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_Message_BR { + pub message: BCCH_DL_SCH_MessageType_BR_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_Message_MBMS { + pub message: BCCH_DL_SCH_MessageType_MBMS_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType { + #[asn(key = 0, extended = false)] + C1(BCCH_DL_SCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(BCCH_DL_SCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType_BR_r13 { + #[asn(key = 0, extended = false)] + C1(BCCH_DL_SCH_MessageType_BR_r13_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(BCCH_DL_SCH_MessageType_BR_r13_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType_MBMS_r14 { + #[asn(key = 0, extended = false)] + C1(BCCH_DL_SCH_MessageType_MBMS_r14_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(BCCH_DL_SCH_MessageType_MBMS_r14_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct BLER_Range_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BLER_Result_r12 { + pub bler_r12: BLER_Range_r12, + pub blocks_received_r12: BLER_Result_r12BlocksReceived_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "248" +)] +pub struct BT_Name_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct BT_NameList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BT_NameListConfig_r15 { + #[asn(key = 0, extended = false)] + Release(BT_NameListConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(BT_NameList_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BW_Preference_r14 { + #[asn(optional_idx = 0)] + pub dl_preference_r14: Option, + #[asn(optional_idx = 1)] + pub ul_preference_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct BandClassInfoCDMA2000 { + pub band_class: BandclassCDMA2000, + #[asn(optional_idx = 0)] + pub cell_reselection_priority: Option, + pub thresh_x_high: BandClassInfoCDMA2000ThreshX_High, + pub thresh_x_low: BandClassInfoCDMA2000ThreshX_Low, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct BandClassListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandClassPriority1XRTT { + pub band_class: BandclassCDMA2000, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandClassPriorityHRPD { + pub band_class: BandclassCDMA2000, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct BandClassPriorityList1XRTT(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct BandClassPriorityListHRPD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombination_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct BandCombinationList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct BandCombinationListEUTRA_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct BandCombinationParameters_r11 { + pub band_parameter_list_r11: BandCombinationParameters_r11BandParameterList_r11, + #[asn(optional_idx = 0)] + pub supported_bandwidth_combination_set_r11: Option, + #[asn(optional_idx = 1)] + pub multiple_timing_advance_r11: Option, + #[asn(optional_idx = 2)] + pub simultaneous_rx_tx_r11: Option, + pub band_info_eutra_r11: BandInfoEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct BandCombinationParameters_r13 { + #[asn(optional_idx = 0)] + pub different_fallback_supported_r13: + Option, + pub band_parameter_list_r13: BandCombinationParameters_r13BandParameterList_r13, + #[asn(optional_idx = 1)] + pub supported_bandwidth_combination_set_r13: Option, + #[asn(optional_idx = 2)] + pub multiple_timing_advance_r13: Option, + #[asn(optional_idx = 3)] + pub simultaneous_rx_tx_r13: Option, + pub band_info_eutra_r13: BandInfoEUTRA, + #[asn(optional_idx = 4)] + pub dc_support_r13: Option, + #[asn(optional_idx = 5)] + pub supported_naics_2crs_ap_r13: + Option, + #[asn(optional_idx = 6)] + pub comm_supported_bands_per_bc_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1090(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v10i0 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v10i0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct BandCombinationParameters_v1130 { + #[asn(optional_idx = 0)] + pub multiple_timing_advance_r11: + Option, + #[asn(optional_idx = 1)] + pub simultaneous_rx_tx_r11: Option, + #[asn(optional_idx = 2)] + pub band_parameter_list_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct BandCombinationParameters_v1250 { + #[asn(optional_idx = 0)] + pub dc_support_r12: Option, + #[asn(optional_idx = 1)] + pub supported_naics_2crs_ap_r12: + Option, + #[asn(optional_idx = 2)] + pub comm_supported_bands_per_bc_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v1270 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1270: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_v1320 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1320: Option, + #[asn(optional_idx = 1)] + pub additional_rx_tx_performance_req_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v1380 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1380: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v1390 { + #[asn(optional_idx = 0)] + pub ue_ca_power_class_n_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct BandCombinationParameters_v1430 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1430: Option, + #[asn(optional_idx = 1)] + pub v2x_supported_tx_band_comb_list_per_bc_r14: + Option, + #[asn(optional_idx = 2)] + pub v2x_supported_rx_band_comb_list_per_bc_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v1450 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1450: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_v1470 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1470: Option, + #[asn(optional_idx = 1)] + pub srs_max_simultaneous_c_cs_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParameters_v14b0 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v14b0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_v1530 { + #[asn(optional_idx = 0)] + pub band_parameter_list_v1530: Option, + #[asn(optional_idx = 1)] + pub spt_parameters_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct BandCombinationParameters_v1610 { + #[asn(optional_idx = 0)] + pub meas_gap_info_nr_r16: Option, + #[asn(optional_idx = 1)] + pub band_parameter_list_v1610: Option, + #[asn(optional_idx = 2)] + pub inter_freq_daps_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct BandCombinationParameters_v1630 { + #[asn(optional_idx = 0)] + pub v2x_supported_tx_band_comb_list_per_bc_v1630: + Option, + #[asn(optional_idx = 1)] + pub v2x_supported_rx_band_comb_list_per_bc_v1630: + Option, + #[asn(optional_idx = 2)] + pub scaling_factor_tx_sidelink_r16: + Option, + #[asn(optional_idx = 3)] + pub scaling_factor_rx_sidelink_r16: + Option, + #[asn(optional_idx = 4)] + pub inter_band_power_sharing_sync_daps_r16: + Option, + #[asn(optional_idx = 5)] + pub inter_band_power_sharing_async_daps_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandCombinationParametersExt_r10 { + #[asn(optional_idx = 0)] + pub supported_bandwidth_combination_set_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandIndication_r14 { + pub band_eutra_r14: FreqBandIndicator_r11, + pub ca_bandwidth_class_dl_r14: CA_BandwidthClass_r10, + #[asn(optional_idx = 0)] + pub ca_bandwidth_class_ul_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct BandIndicatorGERAN(pub u8); +impl BandIndicatorGERAN { + pub const DCS1800: u8 = 0u8; + pub const PCS1900: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandInfoEUTRA { + pub inter_freq_band_list: InterFreqBandList, + #[asn(optional_idx = 0)] + pub inter_rat_band_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "10")] +pub struct BandListENDC_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandListEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandParameters_r10 { + pub band_eutra_r10: FreqBandIndicator, + #[asn(optional_idx = 0)] + pub band_parameters_ul_r10: Option, + #[asn(optional_idx = 1)] + pub band_parameters_dl_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct BandParameters_r11 { + pub band_eutra_r11: FreqBandIndicator_r11, + #[asn(optional_idx = 0)] + pub band_parameters_ul_r11: Option, + #[asn(optional_idx = 1)] + pub band_parameters_dl_r11: Option, + #[asn(optional_idx = 2)] + pub supported_csi_proc_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct BandParameters_r13 { + pub band_eutra_r13: FreqBandIndicator_r11, + #[asn(optional_idx = 0)] + pub band_parameters_ul_r13: Option, + #[asn(optional_idx = 1)] + pub band_parameters_dl_r13: Option, + #[asn(optional_idx = 2)] + pub supported_csi_proc_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct BandParameters_v1090 { + #[asn(optional_idx = 0)] + pub band_eutra_v1090: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandParameters_v10i0 { + pub band_parameters_dl_v10i0: BandParameters_v10i0BandParametersDL_v10i0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandParameters_v1130 { + pub supported_csi_proc_r11: BandParameters_v1130SupportedCSI_Proc_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandParameters_v1270 { + pub band_parameters_dl_v1270: BandParameters_v1270BandParametersDL_v1270, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BandParameters_v1320 { + pub band_parameters_dl_v1320: MIMO_CA_ParametersPerBoBC_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandParameters_v1380 { + #[asn(optional_idx = 0)] + pub tx_antenna_switch_dl_r13: Option, + #[asn(optional_idx = 1)] + pub tx_antenna_switch_ul_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct BandParameters_v1430 { + #[asn(optional_idx = 0)] + pub band_parameters_dl_v1430: Option, + #[asn(optional_idx = 1)] + pub ul_256qam_r14: Option, + #[asn(optional_idx = 2)] + pub ul_256qam_per_cc_info_list_r14: Option, + #[asn(optional_idx = 3)] + pub srs_capability_per_band_pair_list_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandParameters_v1450 { + #[asn(optional_idx = 0)] + pub must_capability_per_band_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandParameters_v1470 { + #[asn(optional_idx = 0)] + pub band_parameters_dl_v1470: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandParameters_v14b0 { + #[asn(optional_idx = 0)] + pub srs_capability_per_band_pair_list_v14b0: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct BandParameters_v1530 { + #[asn(optional_idx = 0)] + pub ue_tx_antenna_selection_srs_1t4r_r15: + Option, + #[asn(optional_idx = 1)] + pub ue_tx_antenna_selection_srs_2t4r_2pairs_r15: + Option, + #[asn(optional_idx = 2)] + pub ue_tx_antenna_selection_srs_2t4r_3pairs_r15: + Option, + #[asn(optional_idx = 3)] + pub dl_1024qam_r15: Option, + #[asn(optional_idx = 4)] + pub qcl_type_c_operation_r15: Option, + #[asn(optional_idx = 5)] + pub qcl_cri_based_csi_reporting_r15: Option, + #[asn(optional_idx = 6)] + pub stti_spt_band_parameters_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct BandParameters_v1610 { + #[asn(optional_idx = 0)] + pub intra_freq_daps_r16: Option, + #[asn(optional_idx = 1)] + pub add_srs_frequency_hopping_r16: Option, + #[asn(optional_idx = 2)] + pub add_srs_antenna_switching_r16: Option, + #[asn(optional_idx = 3)] + pub srs_capability_per_band_pair_list_v1610: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct BandParametersDL_r10(pub Vec); + +pub type BandParametersDL_r13 = CA_MIMO_ParametersDL_r13; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BandParametersRxSL_r14 { + pub v2x_bandwidth_class_rx_sl_r14: V2X_BandwidthClassSL_r14, + #[asn(optional_idx = 0)] + pub v2x_high_reception_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandParametersTxSL_r14 { + pub v2x_bandwidth_class_tx_sl_r14: V2X_BandwidthClassSL_r14, + #[asn(optional_idx = 0)] + pub v2x_e_nb_scheduled_r14: Option, + #[asn(optional_idx = 1)] + pub v2x_high_power_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct BandParametersUL_r10(pub Vec); + +pub type BandParametersUL_r13 = CA_MIMO_ParametersUL_r10; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "31")] +pub struct BandclassCDMA2000(pub u8); +impl BandclassCDMA2000 { + pub const BC0: u8 = 0u8; + pub const BC1: u8 = 1u8; + pub const BC2: u8 = 2u8; + pub const BC3: u8 = 3u8; + pub const BC4: u8 = 4u8; + pub const BC5: u8 = 5u8; + pub const BC6: u8 = 6u8; + pub const BC7: u8 = 7u8; + pub const BC8: u8 = 8u8; + pub const BC9: u8 = 9u8; + pub const BC10: u8 = 10u8; + pub const BC11: u8 = 11u8; + pub const BC12: u8 = 12u8; + pub const BC13: u8 = 13u8; + pub const BC14: u8 = 14u8; + pub const BC15: u8 = 15u8; + pub const BC16: u8 = 16u8; + pub const BC17: u8 = 17u8; + pub const BC18_V9A0: u8 = 18u8; + pub const BC19_V9A0: u8 = 19u8; + pub const BC20_V9A0: u8 = 20u8; + pub const BC21_V9A0: u8 = 21u8; + pub const SPARE10: u8 = 22u8; + pub const SPARE9: u8 = 23u8; + pub const SPARE8: u8 = 24u8; + pub const SPARE7: u8 = 25u8; + pub const SPARE6: u8 = 26u8; + pub const SPARE5: u8 = 27u8; + pub const SPARE4: u8 = 28u8; + pub const SPARE3: u8 = 29u8; + pub const SPARE2: u8 = 30u8; + pub const SPARE1: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct BarringPerACDC_Category_r13 { + pub acdc_category_r13: BarringPerACDC_Category_r13Acdc_Category_r13, + #[asn(optional_idx = 0)] + pub acdc_barring_config_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct BarringPerACDC_CategoryList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BeamMeasConfigIdleNR_r16 { + pub report_quantity_rs_index_nr_r16: BeamMeasConfigIdleNR_r16ReportQuantityRS_IndexNR_r16, + pub max_report_rs_index_r16: BeamMeasConfigIdleNR_r16MaxReportRS_Index_r16, + pub report_rs_index_results_nr_r16: BeamMeasConfigIdleNR_r16ReportRS_IndexResultsNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct C_RNTI(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "5")] +pub struct CA_BandwidthClass_r10(pub u8); +impl CA_BandwidthClass_r10 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const D: u8 = 3u8; + pub const E: u8 = 4u8; + pub const F: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CA_MIMO_ParametersDL_r10 { + pub ca_bandwidth_class_dl_r10: CA_BandwidthClass_r10, + #[asn(optional_idx = 0)] + pub supported_mimo_capability_dl_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CA_MIMO_ParametersDL_r13 { + pub ca_bandwidth_class_dl_r13: CA_BandwidthClass_r10, + #[asn(optional_idx = 0)] + pub supported_mimo_capability_dl_r13: Option, + #[asn(optional_idx = 1)] + pub four_layer_tm3_tm4_r13: Option, + pub intra_band_contiguous_cc_info_list_r13: + CA_MIMO_ParametersDL_r13IntraBandContiguousCC_InfoList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CA_MIMO_ParametersDL_r15 { + #[asn(optional_idx = 0)] + pub supported_mimo_capability_dl_r15: Option, + #[asn(optional_idx = 1)] + pub four_layer_tm3_tm4_r15: Option, + #[asn(optional_idx = 2)] + pub intra_band_contiguous_cc_info_list_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CA_MIMO_ParametersDL_v10i0 { + #[asn(optional_idx = 0)] + pub four_layer_tm3_tm4_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CA_MIMO_ParametersDL_v1270 { + pub intra_band_contiguous_cc_info_list_r12: + CA_MIMO_ParametersDL_v1270IntraBandContiguousCC_InfoList_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CA_MIMO_ParametersUL_r10 { + pub ca_bandwidth_class_ul_r10: CA_BandwidthClass_r10, + #[asn(optional_idx = 0)] + pub supported_mimo_capability_ul_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CA_MIMO_ParametersUL_r15 { + #[asn(optional_idx = 0)] + pub supported_mimo_capability_ul_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CDMA2000_Type(pub u8); +impl CDMA2000_Type { + pub const TYPE1_XRTT: u8 = 0u8; + pub const TYPE_HRPD: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct CE_MultiTB_Parameters_r16 { + #[asn(optional_idx = 0)] + pub pdsch_multi_tb_ce_mode_a_r16: Option, + #[asn(optional_idx = 1)] + pub pdsch_multi_tb_ce_mode_b_r16: Option, + #[asn(optional_idx = 2)] + pub pusch_multi_tb_ce_mode_a_r16: Option, + #[asn(optional_idx = 3)] + pub pusch_multi_tb_ce_mode_b_r16: Option, + #[asn(optional_idx = 4)] + pub ce_multi_tb_64qam_r16: Option, + #[asn(optional_idx = 5)] + pub ce_multi_tb_early_termination_r16: + Option, + #[asn(optional_idx = 6)] + pub ce_multi_tb_frequency_hopping_r16: + Option, + #[asn(optional_idx = 7)] + pub ce_multi_tb_harq_ack_bundling_r16: + Option, + #[asn(optional_idx = 8)] + pub ce_multi_tb_interleaving_r16: Option, + #[asn(optional_idx = 9)] + pub ce_multi_tb_sub_prb_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CE_PDSCH_14HARQ_Config_r17 { + pub ce_harq_ack_delay_r17: CE_PDSCH_14HARQ_Config_r17Ce_HARQ_AckDelay_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CE_PDSCH_MultiTB_Config_r16 { + #[asn(optional_idx = 0)] + pub interleaving_r16: Option, + #[asn(optional_idx = 1)] + pub harq_ack_bundling_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CE_PUSCH_MultiTB_Config_r16 { + #[asn(optional_idx = 0)] + pub interleaving_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CE_Parameters_r13 { + #[asn(optional_idx = 0)] + pub ce_mode_a_r13: Option, + #[asn(optional_idx = 1)] + pub ce_mode_b_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CE_Parameters_v1320 { + #[asn(optional_idx = 0)] + pub intra_freq_a3_ce_mode_a_r13: Option, + #[asn(optional_idx = 1)] + pub intra_freq_a3_ce_mode_b_r13: Option, + #[asn(optional_idx = 2)] + pub intra_freq_ho_ce_mode_a_r13: Option, + #[asn(optional_idx = 3)] + pub intra_freq_ho_ce_mode_b_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CE_Parameters_v1350 { + #[asn(optional_idx = 0)] + pub unicast_frequency_hopping_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CE_Parameters_v1370 { + #[asn(optional_idx = 0)] + pub tm9_ce_mode_a_r13: Option, + #[asn(optional_idx = 1)] + pub tm9_ce_mode_b_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CE_Parameters_v1380 { + #[asn(optional_idx = 0)] + pub tm6_ce_mode_a_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CE_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub ce_switch_without_ho_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct CE_ResourceResvParameters_r16 { + #[asn(optional_idx = 0)] + pub subframe_resource_resv_dl_ce_mode_a_r16: + Option, + #[asn(optional_idx = 1)] + pub subframe_resource_resv_dl_ce_mode_b_r16: + Option, + #[asn(optional_idx = 2)] + pub subframe_resource_resv_ul_ce_mode_a_r16: + Option, + #[asn(optional_idx = 3)] + pub subframe_resource_resv_ul_ce_mode_b_r16: + Option, + #[asn(optional_idx = 4)] + pub slot_symbol_resource_resv_dl_ce_mode_a_r16: + Option, + #[asn(optional_idx = 5)] + pub slot_symbol_resource_resv_dl_ce_mode_b_r16: + Option, + #[asn(optional_idx = 6)] + pub slot_symbol_resource_resv_ul_ce_mode_a_r16: + Option, + #[asn(optional_idx = 7)] + pub slot_symbol_resource_resv_ul_ce_mode_b_r16: + Option, + #[asn(optional_idx = 8)] + pub subcarrier_puncturing_ce_mode_a_r16: + Option, + #[asn(optional_idx = 9)] + pub subcarrier_puncturing_ce_mode_b_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CFI_Config_r15 { + #[asn(optional_idx = 0)] + pub cfi_subframe_non_mbsfn_r15: Option, + #[asn(optional_idx = 1)] + pub cfi_slot_subslot_non_mbsfn_r15: Option, + #[asn(optional_idx = 2)] + pub cfi_subframe_mbsfn_r15: Option, + #[asn(optional_idx = 3)] + pub cfi_slot_subslot_mbsfn_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CFI_PatternConfig_r15 { + #[asn(optional_idx = 0)] + pub cfi_pattern_subframe_r15: Option, + #[asn(optional_idx = 1)] + pub cfi_pattern_slot_subslot_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct CGI_InfoNR_r15 { + #[asn(optional_idx = 0)] + pub plmn_identity_info_list_r15: Option, + #[asn(optional_idx = 1)] + pub frequency_band_list_r15: Option, + #[asn(optional_idx = 2)] + pub no_sib1_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct CIOT_EPS_OptimisationInfo_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CIOT_OptimisationPLMN_r13 { + #[asn(optional_idx = 0)] + pub up_c_io_t_eps_optimisation_r13: + Option, + #[asn(optional_idx = 1)] + pub cp_c_io_t_eps_optimisation_r13: + Option, + #[asn(optional_idx = 2)] + pub attach_without_pdn_connectivity_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportAperiodic_r10 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportAperiodic_r10_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportAperiodic_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportAperiodic_v1250 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportAperiodic_v1250_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportAperiodic_v1250_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportAperiodic_v1310 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportAperiodic_v1310_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportAperiodic_v1310_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportAperiodicHybrid_r14 { + #[asn(optional_idx = 0)] + pub triggers_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodicProc_r11 { + pub cqi_report_mode_aperiodic_r11: CQI_ReportModeAperiodic, + pub trigger01_r11: CQI_ReportAperiodicProc_r11Trigger01_r11, + pub trigger10_r11: CQI_ReportAperiodicProc_r11Trigger10_r11, + pub trigger11_r11: CQI_ReportAperiodicProc_r11Trigger11_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodicProc_v1310 { + pub trigger001_r13: CQI_ReportAperiodicProc_v1310Trigger001_r13, + pub trigger010_r13: CQI_ReportAperiodicProc_v1310Trigger010_r13, + pub trigger011_r13: CQI_ReportAperiodicProc_v1310Trigger011_r13, + pub trigger100_r13: CQI_ReportAperiodicProc_v1310Trigger100_r13, + pub trigger101_r13: CQI_ReportAperiodicProc_v1310Trigger101_r13, + pub trigger110_r13: CQI_ReportAperiodicProc_v1310Trigger110_r13, + pub trigger111_r13: CQI_ReportAperiodicProc_v1310Trigger111_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CQI_ReportBoth_r11 { + #[asn(optional_idx = 0)] + pub csi_im_config_to_release_list_r11: Option, + #[asn(optional_idx = 1)] + pub csi_im_config_to_add_mod_list_r11: Option, + #[asn(optional_idx = 2)] + pub csi_process_to_release_list_r11: Option, + #[asn(optional_idx = 3)] + pub csi_process_to_add_mod_list_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportBoth_v1250 { + #[asn(optional_idx = 0)] + pub csi_im_config_to_release_list_ext_r12: Option, + #[asn(optional_idx = 1)] + pub csi_im_config_to_add_mod_list_ext_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportBoth_v1310 { + #[asn(optional_idx = 0)] + pub csi_im_config_to_release_list_ext_r13: Option, + #[asn(optional_idx = 1)] + pub csi_im_config_to_add_mod_list_ext_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportBothProc_r11 { + #[asn(optional_idx = 0)] + pub ri_ref_csi_process_id_r11: Option, + #[asn(optional_idx = 1)] + pub pmi_ri_report_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportConfig { + #[asn(optional_idx = 0)] + pub cqi_report_mode_aperiodic: Option, + pub nom_pdsch_rs_epre_offset: CQI_ReportConfigNomPDSCH_RS_EPRE_Offset, + #[asn(optional_idx = 1)] + pub cqi_report_periodic: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CQI_ReportConfig_r10 { + #[asn(optional_idx = 0)] + pub cqi_report_aperiodic_r10: Option, + pub nom_pdsch_rs_epre_offset: CQI_ReportConfig_r10NomPDSCH_RS_EPRE_Offset, + #[asn(optional_idx = 1)] + pub cqi_report_periodic_r10: Option, + #[asn(optional_idx = 2)] + pub pmi_ri_report_r9: Option, + #[asn(optional_idx = 3)] + pub csi_subframe_pattern_config_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportConfig_r15 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportConfig_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportConfig_v1130 { + pub cqi_report_periodic_v1130: CQI_ReportPeriodic_v1130, + pub cqi_report_both_r11: CQI_ReportBoth_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CQI_ReportConfig_v1250 { + #[asn(optional_idx = 0)] + pub csi_subframe_pattern_config_r12: + Option, + #[asn(optional_idx = 1)] + pub cqi_report_both_v1250: Option, + #[asn(optional_idx = 2)] + pub cqi_report_aperiodic_v1250: Option, + #[asn(optional_idx = 3)] + pub alt_cqi_table_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CQI_ReportConfig_v1310 { + #[asn(optional_idx = 0)] + pub cqi_report_both_v1310: Option, + #[asn(optional_idx = 1)] + pub cqi_report_aperiodic_v1310: Option, + #[asn(optional_idx = 2)] + pub cqi_report_periodic_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportConfig_v1320 { + #[asn(optional_idx = 0)] + pub cqi_report_periodic_v1320: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportConfig_v1430 { + #[asn(optional_idx = 0)] + pub cqi_report_aperiodic_hybrid_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportConfig_v1530 { + #[asn(optional_idx = 0)] + pub alt_cqi_table_1024qam_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportConfig_v920 { + #[asn(optional_idx = 0)] + pub cqi_mask_r9: Option, + #[asn(optional_idx = 1)] + pub pmi_ri_report_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CQI_ReportConfigSCell_r10 { + #[asn(optional_idx = 0)] + pub cqi_report_mode_aperiodic_r10: Option, + pub nom_pdsch_rs_epre_offset_r10: CQI_ReportConfigSCell_r10NomPDSCH_RS_EPRE_Offset_r10, + #[asn(optional_idx = 1)] + pub cqi_report_periodic_s_cell_r10: Option, + #[asn(optional_idx = 2)] + pub pmi_ri_report_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportConfigSCell_r15 { + #[asn(optional_idx = 0)] + pub cqi_report_periodic_s_cell_r15: Option, + #[asn(optional_idx = 1)] + pub alt_cqi_table_1024qam_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct CQI_ReportModeAperiodic(pub u8); +impl CQI_ReportModeAperiodic { + pub const RM12: u8 = 0u8; + pub const RM20: u8 = 1u8; + pub const RM22: u8 = 2u8; + pub const RM30: u8 = 3u8; + pub const RM31: u8 = 4u8; + pub const RM32_V1250: u8 = 5u8; + pub const RM10_V1310: u8 = 6u8; + pub const RM11_V1310: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodic { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodic_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodic_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodic_r10 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodic_r10_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodic_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CQI_ReportPeriodic_v1130 { + #[asn(optional_idx = 0)] + pub simultaneous_ack_nack_and_cqi_format3_r11: + Option, + #[asn(optional_idx = 1)] + pub cqi_report_periodic_proc_ext_to_release_list_r11: + Option, + #[asn(optional_idx = 2)] + pub cqi_report_periodic_proc_ext_to_add_mod_list_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportPeriodic_v1310 { + #[asn(optional_idx = 0)] + pub cri_report_config_r13: Option, + #[asn(optional_idx = 1)] + pub simultaneous_ack_nack_and_cqi_format4_format5_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodic_v1320 { + #[asn(optional_idx = 0)] + pub periodicity_factor_wb_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct CQI_ReportPeriodicProcExt_r11 { + pub cqi_report_periodic_proc_ext_id_r11: CQI_ReportPeriodicProcExtId_r11, + pub cqi_pmi_config_index_r11: CQI_ReportPeriodicProcExt_r11Cqi_pmi_ConfigIndex_r11, + pub cqi_format_indicator_periodic_r11: + CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11, + #[asn(optional_idx = 0)] + pub ri_config_index_r11: Option, + #[asn(optional_idx = 1)] + pub csi_config_index_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct CQI_ReportPeriodicProcExtId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CQI_ReportPeriodicProcExtToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CQI_ReportPeriodicProcExtToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodicSCell_r15 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodicSCell_r15_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodicSCell_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodicSCell_v1730 { + pub cqi_pmi_config_index2_dormant_r17: + CQI_ReportPeriodicSCell_v1730Cqi_pmi_ConfigIndex2Dormant_r17, + #[asn(optional_idx = 0)] + pub ri_config_index2_dormant_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ShortConfigSCell_r15 { + #[asn(key = 0, extended = false)] + Release(CQI_ShortConfigSCell_r15_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ShortConfigSCell_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CRI_ConfigIndex_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CRI_ReportConfig_r13 { + #[asn(key = 0, extended = false)] + Release(CRI_ReportConfig_r13_release), + #[asn(key = 1, extended = false)] + Setup(CRI_ReportConfig_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CRS_AssistanceInfo_r11 { + pub phys_cell_id_r11: PhysCellId, + pub antenna_ports_count_r11: CRS_AssistanceInfo_r11AntennaPortsCount_r11, + pub mbsfn_subframe_config_list_r11: MBSFN_SubframeConfigList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct CRS_AssistanceInfo_r13 { + pub phys_cell_id_r13: PhysCellId, + pub antenna_ports_count_r13: CRS_AssistanceInfo_r13AntennaPortsCount_r13, + #[asn(optional_idx = 0)] + pub mbsfn_subframe_config_list_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CRS_AssistanceInfo_r15 { + pub phys_cell_id_r15: PhysCellId, + #[asn(optional_idx = 0)] + pub crs_intf_mitig_enabled_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CRS_AssistanceInfoList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CRS_AssistanceInfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CRS_AssistanceInfoList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CRS_ChEstMPDCCH_ConfigCommon_r16 { + pub power_ratio_r16: CRS_ChEstMPDCCH_ConfigCommon_r16PowerRatio_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CRS_ChEstMPDCCH_ConfigDedicated_r16 { + #[asn(optional_idx = 0)] + pub power_ratio_r16: Option, + #[asn(optional_idx = 1)] + pub localized_mapping_type_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFB_RegistrationParam1XRTT { + pub sid: CSFB_RegistrationParam1XRTTSid, + pub nid: CSFB_RegistrationParam1XRTTNid, + pub multiple_sid: CSFB_RegistrationParam1XRTTMultipleSID, + pub multiple_nid: CSFB_RegistrationParam1XRTTMultipleNID, + pub home_reg: CSFB_RegistrationParam1XRTTHomeReg, + pub foreign_sid_reg: CSFB_RegistrationParam1XRTTForeignSIDReg, + pub foreign_nid_reg: CSFB_RegistrationParam1XRTTForeignNIDReg, + pub parameter_reg: CSFB_RegistrationParam1XRTTParameterReg, + pub power_up_reg: CSFB_RegistrationParam1XRTTPowerUpReg, + pub registration_period: CSFB_RegistrationParam1XRTTRegistrationPeriod, + pub registration_zone: CSFB_RegistrationParam1XRTTRegistrationZone, + pub total_zone: CSFB_RegistrationParam1XRTTTotalZone, + pub zone_timer: CSFB_RegistrationParam1XRTTZoneTimer, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFB_RegistrationParam1XRTT_v920 { + pub power_down_reg_r9: CSFB_RegistrationParam1XRTT_v920PowerDownReg_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersRequestCDMA2000 { + pub critical_extensions: CSFBParametersRequestCDMA2000CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSFBParametersRequestCDMA2000_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSFBParametersRequestCDMA2000_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersResponseCDMA2000 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: CSFBParametersResponseCDMA2000CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSFBParametersResponseCDMA2000_r8_IEs { + pub rand: RAND_CDMA2000, + pub mobility_parameters: MobilityParametersCDMA2000, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSFBParametersResponseCDMA2000_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSG_AllowedReportingCells_r9 { + #[asn(optional_idx = 0)] + pub phys_cell_id_range_utra_fdd_list_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "27", sz_ub = "27")] +pub struct CSG_Identity(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CSG_ProximityIndicationParameters_r9 { + #[asn(optional_idx = 0)] + pub intra_freq_proximity_indication_r9: + Option, + #[asn(optional_idx = 1)] + pub inter_freq_proximity_indication_r9: + Option, + #[asn(optional_idx = 2)] + pub utran_proximity_indication_r9: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CSI_IM_Config_r11 { + pub csi_im_config_id_r11: CSI_IM_ConfigId_r11, + pub resource_config_r11: CSI_IM_Config_r11ResourceConfig_r11, + pub subframe_config_r11: CSI_IM_Config_r11SubframeConfig_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CSI_IM_ConfigExt_r12 { + pub csi_im_config_id_v1250: CSI_IM_ConfigId_v1250, + pub resource_config_r12: CSI_IM_ConfigExt_r12ResourceConfig_r12, + pub subframe_config_r12: CSI_IM_ConfigExt_r12SubframeConfig_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct CSI_IM_ConfigId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CSI_IM_ConfigId_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "24")] +pub struct CSI_IM_ConfigId_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "4", ub = "4")] +pub struct CSI_IM_ConfigId_v1250(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "24")] +pub struct CSI_IM_ConfigId_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CSI_IM_ConfigToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "20")] +pub struct CSI_IM_ConfigToAddModListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CSI_IM_ConfigToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "20")] +pub struct CSI_IM_ConfigToReleaseListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct CSI_Process_r11 { + pub csi_process_id_r11: CSI_ProcessId_r11, + pub csi_rs_config_nzp_id_r11: CSI_RS_ConfigNZPId_r11, + pub csi_im_config_id_r11: CSI_IM_ConfigId_r11, + pub p_c_and_cbsr_list_r11: P_C_AndCBSR_Pair_r13a, + #[asn(optional_idx = 0)] + pub cqi_report_both_proc_r11: Option, + #[asn(optional_idx = 1)] + pub cqi_report_periodic_proc_id_r11: Option, + #[asn(optional_idx = 2)] + pub cqi_report_aperiodic_proc_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CSI_ProcessId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct CSI_ProcessToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct CSI_ProcessToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSI_RS_Config_NZP_v1430 { + #[asn(optional_idx = 0)] + pub transmission_comb_r14: Option, + #[asn(optional_idx = 1)] + pub frequency_density_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSI_RS_Config_r10 { + #[asn(optional_idx = 0)] + pub csi_rs_r10: Option, + #[asn(optional_idx = 1)] + pub zero_tx_power_csi_rs_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_Config_r15 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSI_RS_Config_v1250 { + #[asn(optional_idx = 0)] + pub zero_tx_power_csi_rs2_r12: Option, + #[asn(optional_idx = 1)] + pub ds_zero_tx_power_csi_rs_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_Config_v1310 { + #[asn(optional_idx = 0)] + pub emimo_type_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CSI_RS_Config_v1430 { + #[asn(optional_idx = 0)] + pub dummy: Option, + #[asn(optional_idx = 1)] + pub emimo_hybrid_r14: Option, + #[asn(optional_idx = 2)] + pub advanced_codebook_enabled_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_Config_v1480 { + #[asn(optional_idx = 0)] + pub emimo_type_v1480: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_Config_v1530 { + #[asn(optional_idx = 0)] + pub emimo_type_v1530: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct CSI_RS_ConfigBeamformed_r13 { + #[asn(optional_idx = 0)] + pub csi_rs_config_nzp_id_list_ext_r13: + Option, + #[asn(optional_idx = 1)] + pub csi_im_config_id_list_r13: Option, + #[asn(optional_idx = 2)] + pub p_c_and_cbsr_per_resource_config_list_r13: + Option, + #[asn(optional_idx = 3)] + pub ace_for4_tx_per_resource_config_list_r13: + Option, + #[asn(optional_idx = 4)] + pub alternative_codebook_enabled_beamformed_r13: + Option, + #[asn(optional_idx = 5)] + pub channel_meas_restriction_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct CSI_RS_ConfigBeamformed_r14 { + #[asn(optional_idx = 0)] + pub csi_rs_config_nzp_id_list_ext_r14: + Option, + #[asn(optional_idx = 1)] + pub csi_im_config_id_list_r14: Option, + #[asn(optional_idx = 2)] + pub p_c_and_cbsr_per_resource_config_list_r14: + Option, + #[asn(optional_idx = 3)] + pub ace_for4_tx_per_resource_config_list_r14: + Option, + #[asn(optional_idx = 4)] + pub alternative_codebook_enabled_beamformed_r14: + Option, + #[asn(optional_idx = 5)] + pub channel_meas_restriction_r14: Option, + #[asn(optional_idx = 6)] + pub csi_rs_config_nzp_ap_list_r14: + Option, + #[asn(optional_idx = 7)] + pub nzp_resource_config_original_v1430: Option, + #[asn(optional_idx = 8)] + pub csi_rs_nzp_activation_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CSI_RS_ConfigBeamformed_v1430 { + #[asn(optional_idx = 0)] + pub csi_rs_config_nzp_ap_list_r14: + Option, + #[asn(optional_idx = 1)] + pub nzp_resource_config_original_v1430: Option, + #[asn(optional_idx = 2)] + pub csi_rs_nzp_activation_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_Hybrid_r14 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO_Hybrid_r14_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigEMIMO_Hybrid_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_r13 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO_r13_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigEMIMO_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1430 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO_v1430_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigEMIMO_v1430_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1480 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO_v1480_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigEMIMO_v1480_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1530 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO_v1530_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigEMIMO_v1530_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO2_r14 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigEMIMO2_r14_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigBeamformed_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSI_RS_ConfigNZP_Activation_r14 { + pub csi_rs_nzp_mode_r14: CSI_RS_ConfigNZP_Activation_r14Csi_RS_NZP_mode_r14, + pub activated_resources_r14: CSI_RS_ConfigNZP_Activation_r14ActivatedResources_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigNZP_EMIMO_r13 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigNZP_EMIMO_r13_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigNZP_EMIMO_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_ConfigNZP_EMIMO_v1430 { + pub nzp_resource_config_list_ext_r14: CSI_RS_ConfigNZP_EMIMO_v1430Nzp_resourceConfigListExt_r14, + #[asn(optional_idx = 0)] + pub cdm_type_v1430: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct CSI_RS_ConfigNZP_r11 { + pub csi_rs_config_nzp_id_r11: CSI_RS_ConfigNZPId_r11, + pub antenna_ports_count_r11: CSI_RS_ConfigNZP_r11AntennaPortsCount_r11, + pub resource_config_r11: CSI_RS_ConfigNZP_r11ResourceConfig_r11, + pub subframe_config_r11: CSI_RS_ConfigNZP_r11SubframeConfig_r11, + pub scrambling_identity_r11: CSI_RS_ConfigNZP_r11ScramblingIdentity_r11, + #[asn(optional_idx = 0)] + pub qcl_crs_info_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct CSI_RS_ConfigNZPId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "24")] +pub struct CSI_RS_ConfigNZPId_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "4", ub = "24")] +pub struct CSI_RS_ConfigNZPId_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CSI_RS_ConfigNZPToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "24")] +pub struct CSI_RS_ConfigNZPToAddModList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "21")] +pub struct CSI_RS_ConfigNZPToAddModListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct CSI_RS_ConfigNZPToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "24")] +pub struct CSI_RS_ConfigNZPToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "21")] +pub struct CSI_RS_ConfigNZPToReleaseListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct CSI_RS_ConfigNonPrecoded_r13 { + #[asn(optional_idx = 0)] + pub p_c_and_cbsr_list_r13: Option, + pub codebook_config_n1_r13: CSI_RS_ConfigNonPrecoded_r13CodebookConfigN1_r13, + pub codebook_config_n2_r13: CSI_RS_ConfigNonPrecoded_r13CodebookConfigN2_r13, + #[asn(optional_idx = 1)] + pub codebook_over_sampling_rate_config_o1_r13: + Option, + #[asn(optional_idx = 2)] + pub codebook_over_sampling_rate_config_o2_r13: + Option, + pub codebook_config_r13: CSI_RS_ConfigNonPrecoded_r13CodebookConfig_r13, + #[asn(optional_idx = 3)] + pub csi_im_config_id_list_r13: Option, + #[asn(optional_idx = 4)] + pub csi_rs_config_nzp_emimo_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_ConfigNonPrecoded_v1430 { + #[asn(optional_idx = 0)] + pub csi_rs_config_nzp_emimo_v1430: Option, + pub codebook_config_n1_v1430: CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN1_v1430, + pub codebook_config_n2_v1430: CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN2_v1430, + pub nzp_resource_config_tm9_original_v1430: CSI_RS_Config_NZP_v1430, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CSI_RS_ConfigNonPrecoded_v1480 { + #[asn(optional_idx = 0)] + pub csi_rs_config_nzp_emimo_v1480: Option, + #[asn(optional_idx = 1)] + pub codebook_config_n1_v1480: Option, + #[asn(optional_idx = 2)] + pub codebook_config_n2_r1480: Option, + pub nzp_resource_config_tm9_original_v1480: CSI_RS_Config_NZP_v1430, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_ConfigNonPrecoded_v1530 { + #[asn(optional_idx = 0)] + pub p_c_and_cbsr_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigZP_ApList_r14 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigZP_ApList_r14_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigZP_ApList_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CSI_RS_ConfigZP_r11 { + pub csi_rs_config_zp_id_r11: CSI_RS_ConfigZPId_r11, + pub resource_config_list_r11: CSI_RS_ConfigZP_r11ResourceConfigList_r11, + pub subframe_config_r11: CSI_RS_ConfigZP_r11SubframeConfig_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CSI_RS_ConfigZPId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct CSI_RS_ConfigZPToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct CSI_RS_ConfigZPToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "96")] +pub struct CSI_RS_TriggeredList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "97")] +pub struct CSI_RSRP_Range_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct CandidateCellInfo_r10 { + pub phys_cell_id_r10: PhysCellId, + pub dl_carrier_freq_r10: ARFCN_ValueEUTRA, + #[asn(optional_idx = 0)] + pub rsrp_result_r10: Option, + #[asn(optional_idx = 1)] + pub rsrq_result_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CandidateCellInfoList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CandidateServingFreqListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierBandwidthEUTRA { + pub dl_bandwidth: CarrierBandwidthEUTRADl_Bandwidth, + #[asn(optional_idx = 0)] + pub ul_bandwidth: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqCDMA2000 { + pub band_class: BandclassCDMA2000, + pub arfcn: ARFCN_ValueCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierFreqEUTRA { + pub dl_carrier_freq: ARFCN_ValueEUTRA, + #[asn(optional_idx = 0)] + pub ul_carrier_freq: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierFreqEUTRA_v9e0 { + pub dl_carrier_freq_v9e0: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 0)] + pub ul_carrier_freq_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqGERAN { + pub arfcn: ARFCN_ValueGERAN, + pub band_indicator: BandIndicatorGERAN, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierFreqInfoUTRA_FDD_v8h0 { + #[asn(optional_idx = 0)] + pub multi_band_info_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierFreqInfoUTRA_v1250 { + #[asn(optional_idx = 0)] + pub reduced_meas_performance_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct CarrierFreqListMBMS_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqListNBIOT_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqListNR_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqListNR_v1700(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqListNR_v1720(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CarrierFreqListUTRA_FDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CarrierFreqListUTRA_FDD_Ext_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CarrierFreqListUTRA_TDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CarrierFreqListUTRA_TDD_Ext_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct CarrierFreqListUTRA_TDD_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqNBIOT_r16 { + pub carrier_freq_r16: ARFCN_ValueEUTRA_r9, + pub carrier_freq_offset_r16: CarrierFreqNBIOT_r16CarrierFreqOffset_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 12)] +pub struct CarrierFreqNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + #[asn(optional_idx = 0)] + pub multi_band_info_list_r15: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_sul_r15: Option, + #[asn(optional_idx = 2)] + pub meas_timing_config_r15: Option, + pub subcarrier_spacing_ssb_r15: CarrierFreqNR_r15SubcarrierSpacingSSB_r15, + #[asn(optional_idx = 3)] + pub ss_rssi_measurement_r15: Option, + #[asn(optional_idx = 4)] + pub cell_reselection_priority_r15: Option, + #[asn(optional_idx = 5)] + pub cell_reselection_sub_priority_r15: Option, + pub thresh_x_high_r15: ReselectionThreshold, + pub thresh_x_low_r15: ReselectionThreshold, + #[asn(optional_idx = 6)] + pub thresh_x_q_r15: Option, + pub q_rx_lev_min_r15: CarrierFreqNR_r15Q_RxLevMin_r15, + #[asn(optional_idx = 7)] + pub q_rx_lev_min_sul_r15: Option, + pub p_max_nr_r15: P_MaxNR_r15, + #[asn(optional_idx = 8)] + pub ns_pmax_list_nr_r15: Option, + #[asn(optional_idx = 9)] + pub q_qual_min_r15: Option, + pub derive_ssb_index_from_cell_r15: CarrierFreqNR_r15DeriveSSB_IndexFromCell_r15, + #[asn(optional_idx = 10)] + pub max_rs_index_cell_qual_r15: Option, + #[asn(optional_idx = 11)] + pub thresh_rs_index_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CarrierFreqNR_v1610 { + #[asn(optional_idx = 0)] + pub smtc2_lp_r16: Option, + #[asn(optional_idx = 1)] + pub ssb_position_qcl_common_nr_r16: Option, + #[asn(optional_idx = 2)] + pub allowed_cell_list_nr_r16: Option, + #[asn(optional_idx = 3)] + pub high_speed_carrier_nr_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierFreqNR_v1700 { + #[asn(optional_idx = 0)] + pub nr_freq_neigh_hsdn_cell_list_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CarrierFreqNR_v1720 { + #[asn(optional_idx = 0)] + pub subcarrier_spacing_ssb_r17: Option, + #[asn(optional_idx = 1)] + pub ssb_position_qcl_common_nr_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct CarrierFreqUTRA_FDD { + pub carrier_freq: ARFCN_ValueUTRA, + #[asn(optional_idx = 0)] + pub cell_reselection_priority: Option, + pub thresh_x_high: ReselectionThreshold, + pub thresh_x_low: ReselectionThreshold, + pub q_rx_lev_min: CarrierFreqUTRA_FDDQ_RxLevMin, + pub p_max_utra: CarrierFreqUTRA_FDDP_MaxUTRA, + pub q_qual_min: CarrierFreqUTRA_FDDQ_QualMin, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct CarrierFreqUTRA_FDD_Ext_r12 { + pub carrier_freq_r12: ARFCN_ValueUTRA, + #[asn(optional_idx = 0)] + pub cell_reselection_priority_r12: Option, + pub thresh_x_high_r12: ReselectionThreshold, + pub thresh_x_low_r12: ReselectionThreshold, + pub q_rx_lev_min_r12: CarrierFreqUTRA_FDD_Ext_r12Q_RxLevMin_r12, + pub p_max_utra_r12: CarrierFreqUTRA_FDD_Ext_r12P_MaxUTRA_r12, + pub q_qual_min_r12: CarrierFreqUTRA_FDD_Ext_r12Q_QualMin_r12, + #[asn(optional_idx = 1)] + pub thresh_x_q_r12: Option, + #[asn(optional_idx = 2)] + pub multi_band_info_list_r12: Option, + #[asn(optional_idx = 3)] + pub reduced_meas_performance_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct CarrierFreqUTRA_TDD { + pub carrier_freq: ARFCN_ValueUTRA, + #[asn(optional_idx = 0)] + pub cell_reselection_priority: Option, + pub thresh_x_high: ReselectionThreshold, + pub thresh_x_low: ReselectionThreshold, + pub q_rx_lev_min: CarrierFreqUTRA_TDDQ_RxLevMin, + pub p_max_utra: CarrierFreqUTRA_TDDP_MaxUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct CarrierFreqUTRA_TDD_r12 { + pub carrier_freq_r12: ARFCN_ValueUTRA, + #[asn(optional_idx = 0)] + pub cell_reselection_priority_r12: Option, + pub thresh_x_high_r12: ReselectionThreshold, + pub thresh_x_low_r12: ReselectionThreshold, + pub q_rx_lev_min_r12: CarrierFreqUTRA_TDD_r12Q_RxLevMin_r12, + pub p_max_utra_r12: CarrierFreqUTRA_TDD_r12P_MaxUTRA_r12, + #[asn(optional_idx = 1)] + pub reduced_meas_performance_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqsGERAN { + pub starting_arfcn: ARFCN_ValueGERAN, + pub band_indicator: BandIndicatorGERAN, + pub following_arfc_ns: CarrierFreqsGERANFollowingARFCNs, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CarrierFreqsInfoGERAN { + pub carrier_freqs: CarrierFreqsGERAN, + pub common_info: CarrierFreqsInfoGERANCommonInfo, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CarrierFreqsInfoListGERAN(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierInfoNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + pub subcarrier_spacing_ssb_r15: CarrierInfoNR_r15SubcarrierSpacingSSB_r15, + #[asn(optional_idx = 0)] + pub smtc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CarrierInfoNR_r17 { + pub carrier_freq_r17: ARFCN_ValueNR_r15, + pub subcarrier_spacing_ssb_r17: CarrierInfoNR_r17SubcarrierSpacingSSB_r17, + #[asn(optional_idx = 0)] + pub smtc_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct Cell_ToAddMod_r12 { + pub s_cell_index_r12: SCellIndex_r10, + #[asn(optional_idx = 0)] + pub cell_identification_r12: Option, + #[asn(optional_idx = 1)] + pub meas_result_cell_to_add_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellAccessRelatedInfo_5GC_r15 { + pub plmn_identity_list_r15: PLMN_IdentityList_r15, + #[asn(optional_idx = 0)] + pub ran_area_code_r15: Option, + pub tracking_area_code_5gc_r15: TrackingAreaCode_5GC_r15, + pub cell_identity_5gc_r15: CellIdentity_5GC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellAccessRelatedInfo_r14 { + pub plmn_identity_list_r14: PLMN_IdentityList, + pub tracking_area_code_r14: TrackingAreaCode, + pub cell_identity_r14: CellIdentity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellChangeOrder { + pub t304: CellChangeOrderT304, + pub target_rat_type: CellChangeOrderTargetRAT_Type, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CellGlobalIdCDMA2000 { + #[asn(key = 0, extended = false)] + CellGlobalId1XRTT(CellGlobalIdCDMA2000_cellGlobalId1XRTT), + #[asn(key = 1, extended = false)] + CellGlobalIdHRPD(CellGlobalIdCDMA2000_cellGlobalIdHRPD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellGlobalIdEUTRA { + pub plmn_identity: PLMN_Identity, + pub cell_identity: CellIdentity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellGlobalIdGERAN { + pub plmn_identity: PLMN_Identity, + pub location_area_code: CellGlobalIdGERANLocationAreaCode, + pub cell_identity: CellGlobalIdGERANCellIdentity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellGlobalIdList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellGlobalIdNR_r16 { + pub plmn_identity_r16: PLMN_Identity, + pub cell_identity_r16: CellIdentityNR_r15, + #[asn(optional_idx = 0)] + pub tracking_area_code_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellGlobalIdUTRA { + pub plmn_identity: PLMN_Identity, + pub cell_identity: CellGlobalIdUTRACellIdentity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "28", sz_ub = "28")] +pub struct CellIdentity(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CellIdentity_5GC_r15 { + #[asn(key = 0, extended = false)] + CellIdentity_r15(CellIdentity), + #[asn(key = 1, extended = false)] + CellId_Index_r15(CellIdentity_5GC_r15_cellId_Index_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "36", sz_ub = "36")] +pub struct CellIdentityNR_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellIndexList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellInfoGERAN_r9 { + pub phys_cell_id_r9: PhysCellIdGERAN, + pub carrier_freq_r9: CarrierFreqGERAN, + pub system_information_r9: SystemInfoListGERAN, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellInfoListGERAN_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CellInfoListUTRA_FDD_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CellInfoListUTRA_TDD_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CellInfoListUTRA_TDD_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellInfoUTRA_FDD_r9 { + pub phys_cell_id_r9: PhysCellIdUTRA_FDD, + pub utra_bcch_container_r9: CellInfoUTRA_FDD_r9Utra_BCCH_Container_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellInfoUTRA_TDD_r10 { + pub phys_cell_id_r10: PhysCellIdUTRA_TDD, + pub carrier_freq_r10: ARFCN_ValueUTRA, + pub utra_bcch_container_r10: CellInfoUTRA_TDD_r10Utra_BCCH_Container_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellInfoUTRA_TDD_r9 { + pub phys_cell_id_r9: PhysCellIdUTRA_TDD, + pub utra_bcch_container_r9: CellInfoUTRA_TDD_r9Utra_BCCH_Container_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CellList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CellListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellReselectionInfoCommon_v1460 { + pub s_search_delta_p_r14: CellReselectionInfoCommon_v1460S_SearchDeltaP_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellReselectionInfoHSDN_r15 { + pub cell_equivalent_size_r15: CellReselectionInfoHSDN_r15CellEquivalentSize_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellReselectionParametersCDMA2000 { + pub band_class_list: BandClassListCDMA2000, + pub neigh_cell_list: NeighCellListCDMA2000, + pub t_reselection_cdma2000: T_Reselection, + #[asn(optional_idx = 0)] + pub t_reselection_cdma2000_sf: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellReselectionParametersCDMA2000_r11 { + pub band_class_list: BandClassListCDMA2000, + pub neigh_cell_list_r11: CellReselectionParametersCDMA2000_r11NeighCellList_r11, + pub t_reselection_cdma2000: T_Reselection, + #[asn(optional_idx = 0)] + pub t_reselection_cdma2000_sf: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellReselectionParametersCDMA2000_v920 { + pub neigh_cell_list_v920: NeighCellListCDMA2000_v920, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct CellReselectionPriority(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellReselectionServingFreqInfo_v1310 { + pub cell_reselection_sub_priority_r13: CellReselectionSubPriority_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CellReselectionServingFreqInfo_v1610 { + #[asn(optional_idx = 0)] + pub alt_cell_reselection_priority_r16: Option, + #[asn(optional_idx = 1)] + pub alt_cell_reselection_sub_priority_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CellReselectionSubPriority_r13(pub u8); +impl CellReselectionSubPriority_r13 { + pub const O_DOT2: u8 = 0u8; + pub const O_DOT4: u8 = 1u8; + pub const O_DOT6: u8 = 2u8; + pub const O_DOT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellSelectionInfo_v1130 { + pub q_qual_min_wb_r11: Q_QualMin_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellSelectionInfo_v1250 { + pub q_qual_min_rsrq_on_all_symbols_r12: Q_QualMin_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellSelectionInfo_v920 { + pub q_qual_min_r9: Q_QualMin_r9, + #[asn(optional_idx = 0)] + pub q_qual_min_offset_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellSelectionInfoCE_r13 { + pub q_rx_lev_min_ce_r13: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub q_qual_min_rsrq_ce_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellSelectionInfoCE_v1530 { + pub power_class14d_bm_offset_r15: CellSelectionInfoCE_v1530PowerClass14dBm_Offset_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellSelectionInfoCE1_r13 { + pub q_rx_lev_min_ce1_r13: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub q_qual_min_rsrq_ce1_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellSelectionInfoCE1_v1360 { + pub delta_rx_lev_min_ce1_v1360: CellSelectionInfoCE1_v1360Delta_RxLevMinCE1_v1360, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellSelectionInfoNFreq_r13 { + pub q_rx_lev_min_r13: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub q_rx_lev_min_offset: Option, + pub q_hyst_r13: CellSelectionInfoNFreq_r13Q_Hyst_r13, + pub q_rx_lev_min_reselection_r13: Q_RxLevMin, + pub t_reselection_eutra_r13: T_Reselection, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddMod { + pub cell_index: CellsToAddModCellIndex, + pub phys_cell_id: PhysCellId, + pub cell_individual_offset: Q_OffsetRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddMod_v1610 { + pub rss_meas_power_bias_r16: RSS_MeasPowerBias_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddModCDMA2000 { + pub cell_index: CellsToAddModCDMA2000CellIndex, + pub phys_cell_id: PhysCellIdCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModListUTRA_FDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsToAddModListUTRA_TDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddModNR_r15 { + pub cell_index_r15: CellsToAddModNR_r15CellIndex_r15, + pub phys_cell_id_r15: PhysCellIdNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddModNR_r16 { + pub cell_index_r16: CellsToAddModNR_r16CellIndex_r16, + pub phys_cell_id_r16: PhysCellIdNR_r15, + pub cell_individual_offset_r16: Q_OffsetRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddModUTRA_FDD { + pub cell_index: CellsToAddModUTRA_FDDCellIndex, + pub phys_cell_id: PhysCellIdUTRA_FDD, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsToAddModUTRA_TDD { + pub cell_index: CellsToAddModUTRA_TDDCellIndex, + pub phys_cell_id: PhysCellIdUTRA_TDD, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CellsTriggeredList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct CipheringAlgorithm_r12(pub u8); +impl CipheringAlgorithm_r12 { + pub const EEA0: u8 = 0u8; + pub const EEA1: u8 = 1u8; + pub const EEA2: u8 = 2u8; + pub const EEA3_V1130: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CommonSF_AllocPatternList_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CommonSF_AllocPatternList_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CommonSF_AllocPatternList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct CondReconfigurationAddMod_r16 { + pub cond_reconfiguration_id_r16: CondReconfigurationId_r16, + #[asn(optional_idx = 0)] + pub trigger_condition_r16: Option, + #[asn(optional_idx = 1)] + pub cond_reconfiguration_to_apply_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct CondReconfigurationId_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CondReconfigurationToAddModList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CondReconfigurationToRemoveList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CondReconfigurationTriggerEUTRA_r16 { + pub cond_event_id_r16: CondReconfigurationTriggerEUTRA_r16CondEventId_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CondReconfigurationTriggerNR_r17 { + pub cond_event_id_r17: CondReconfigurationTriggerNR_r17CondEventId_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct ConditionalReconfiguration_r16 { + #[asn(optional_idx = 0)] + pub cond_reconfiguration_to_add_mod_list_r16: Option, + #[asn(optional_idx = 1)] + pub cond_reconfiguration_to_remove_list_r16: Option, + #[asn(optional_idx = 2)] + pub attempt_cond_reconf_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ConfigRestrictInfoDAPS_r16 { + #[asn(optional_idx = 0)] + pub max_sch_tb_bits_dl_r16: Option, + #[asn(optional_idx = 1)] + pub max_sch_tb_bits_ul_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ConfigRestrictInfoDAPS_v1630 { + #[asn(optional_idx = 0)] + pub daps_power_coordination_info_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct ConnEstFailReport_r11 { + pub failed_cell_id_r11: CellGlobalIdEUTRA, + #[asn(optional_idx = 0)] + pub location_info_r11: Option, + pub meas_result_failed_cell_r11: ConnEstFailReport_r11MeasResultFailedCell_r11, + #[asn(optional_idx = 1)] + pub meas_result_neigh_cells_r11: Option, + pub number_of_preambles_sent_r11: NumberOfPreamblesSent_r11, + pub contention_detected_r11: ConnEstFailReport_r11ContentionDetected_r11, + pub max_tx_power_reached_r11: ConnEstFailReport_r11MaxTxPowerReached_r11, + pub time_since_failure_r11: TimeSinceFailure_r11, + #[asn(optional_idx = 2)] + pub meas_result_list_eutra_v1130: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheck { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: CounterCheckCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CounterCheck_r8_IEs { + pub drb_count_msb_info_list: DRB_CountMSB_InfoList, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CounterCheck_v1530_IEs { + #[asn(optional_idx = 0)] + pub drb_count_msb_info_list_ext_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CounterCheck_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheckResponse { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: CounterCheckResponseCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CounterCheckResponse_r8_IEs { + pub drb_count_info_list: DRB_CountInfoList, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CounterCheckResponse_v1530_IEs { + #[asn(optional_idx = 0)] + pub drb_count_info_list_ext_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CounterCheckResponse_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CountingRequestInfo_r10 { + pub tmgi_r10: TMGI_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CountingRequestList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct CountingResponseInfo_r10 { + pub counting_response_service_r10: CountingResponseInfo_r10CountingResponseService_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CountingResponseList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r10 { + pub scheduling_cell_info_r10: CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r13 { + pub scheduling_cell_info_r13: CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfigLAA_UL_r14 { + pub scheduling_cell_id_r14: ServCellIndex_r13, + pub cif_in_scheduling_cell_r14: CrossCarrierSchedulingConfigLAA_UL_r14Cif_InSchedulingCell_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct DAPS_Config_r16 { + #[asn(optional_idx = 0)] + pub daps_power_coordination_info_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DAPS_PowerCoordinationInfo_r16 { + pub p_daps_source_r16: DAPS_PowerCoordinationInfo_r16P_DAPS_Source_r16, + pub p_daps_target_r16: DAPS_PowerCoordinationInfo_r16P_DAPS_Target_r16, + pub power_control_mode_r16: DAPS_PowerCoordinationInfo_r16PowerControlMode_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DC_Parameters_r12 { + #[asn(optional_idx = 0)] + pub drb_type_split_r12: Option, + #[asn(optional_idx = 1)] + pub drb_type_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DC_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub pdcp_transfer_split_ul_r13: Option, + #[asn(optional_idx = 1)] + pub ue_sstd_meas_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "6")] +pub struct DCI7_Candidates_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct DCI7_CandidatesPerAL_SPDCCH_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_AM_RLC { + pub t_reordering: T_Reordering, + pub t_status_prohibit: T_StatusProhibit, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_AM_RLC_r15 { + pub t_reordering_r15: T_Reordering, + pub t_status_prohibit_r15: T_StatusProhibit, + pub extended_rlc_li_field_r15: DL_AM_RLC_r15Extended_RLC_LI_Field_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_CCCH_Message { + pub message: DL_CCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DL_CCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(DL_CCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(DL_CCCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_DCCH_Message { + pub message: DL_DCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DL_DCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(DL_DCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(DL_DCCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DL_UL_CCs_r15 { + #[asn(optional_idx = 0)] + pub max_number_dl_c_cs_r15: Option, + #[asn(optional_idx = 1)] + pub max_number_ul_c_cs_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_UM_RLC { + pub sn_field_length: SN_FieldLength, + pub t_reordering: T_Reordering, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_UM_RLC_r15 { + pub sn_field_length_r15: SN_FieldLength_r15, + pub t_reordering_r15: T_Reordering, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLDedicatedMessageSegment_r16 { + pub critical_extensions: DLDedicatedMessageSegment_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DLDedicatedMessageSegment_r16_IEs { + pub segment_number_r16: DLDedicatedMessageSegment_r16_IEsSegmentNumber_r16, + pub rrc_message_segment_container_r16: + DLDedicatedMessageSegment_r16_IEsRrc_MessageSegmentContainer_r16, + pub rrc_message_segment_type_r16: DLDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLInformationTransfer { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: DLInformationTransferCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct DLInformationTransfer_r15_IEs { + #[asn(optional_idx = 0)] + pub dedicated_info_type_r15: Option, + #[asn(optional_idx = 1)] + pub time_reference_info_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct DLInformationTransfer_r8_IEs { + pub dedicated_info_type: DLInformationTransfer_r8_IEsDedicatedInfoType, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DLInformationTransfer_v1610_IEs { + #[asn(optional_idx = 0)] + pub dedicated_info_f1c_r16: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DLInformationTransfer_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DMRS_Config_r11 { + #[asn(key = 0, extended = false)] + Release(DMRS_Config_r11_release), + #[asn(key = 1, extended = false)] + Setup(DMRS_Config_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct DMRS_Config_v1310 { + #[asn(optional_idx = 0)] + pub dmrs_table_alt_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DRB_CountInfo { + pub drb_identity: DRB_Identity, + pub count_uplink: DRB_CountInfoCount_Uplink, + pub count_downlink: DRB_CountInfoCount_Downlink, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "11")] +pub struct DRB_CountInfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct DRB_CountInfoListExt_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DRB_CountMSB_Info { + pub drb_identity: DRB_Identity, + pub count_msb_uplink: DRB_CountMSB_InfoCountMSB_Uplink, + pub count_msb_downlink: DRB_CountMSB_InfoCountMSB_Downlink, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct DRB_CountMSB_InfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct DRB_CountMSB_InfoListExt_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct DRB_Identity(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct DRB_InfoListSCG_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct DRB_InfoListSCG_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct DRB_InfoSCG_r12 { + #[asn(optional_idx = 0)] + pub eps_bearer_identity_r12: Option, + pub drb_identity_r12: DRB_Identity, + #[asn(optional_idx = 1)] + pub drb_type_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct DRB_ToAddMod { + #[asn(optional_idx = 0)] + pub eps_bearer_identity: Option, + pub drb_identity: DRB_Identity, + #[asn(optional_idx = 1)] + pub pdcp_config: Option, + #[asn(optional_idx = 2)] + pub rlc_config: Option, + #[asn(optional_idx = 3)] + pub logical_channel_identity: Option, + #[asn(optional_idx = 4)] + pub logical_channel_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct DRB_ToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct DRB_ToAddModList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct DRB_ToAddModListSCG_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct DRB_ToAddModListSCG_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct DRB_ToAddModSCG_r12 { + pub drb_identity_r12: DRB_Identity, + #[asn(optional_idx = 0)] + pub drb_type_r12: Option, + #[asn(optional_idx = 1)] + pub rlc_config_scg_r12: Option, + #[asn(optional_idx = 2)] + pub rlc_config_v1250: Option, + #[asn(optional_idx = 3)] + pub logical_channel_identity_scg_r12: Option, + #[asn(optional_idx = 4)] + pub logical_channel_config_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct DRB_ToReleaseList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct DRB_ToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DRX_Config { + #[asn(key = 0, extended = false)] + Release(DRX_Config_release), + #[asn(key = 1, extended = false)] + Setup(DRX_Config_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct DRX_Config_r13 { + #[asn(optional_idx = 0)] + pub on_duration_timer_v1310: Option, + #[asn(optional_idx = 1)] + pub drx_retransmission_timer_v1310: Option, + #[asn(optional_idx = 2)] + pub drx_ul_retransmission_timer_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DRX_Config_r15 { + #[asn(optional_idx = 0)] + pub drx_retransmission_timer_short_tti_r15: + Option, + #[asn(optional_idx = 1)] + pub drx_ul_retransmission_timer_short_tti_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct DRX_Config_v1130 { + #[asn(optional_idx = 0)] + pub drx_retransmission_timer_v1130: Option, + #[asn(optional_idx = 1)] + pub long_drx_cycle_start_offset_v1130: Option, + #[asn(optional_idx = 2)] + pub short_drx_cycle_v1130: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct DRX_Config_v1310 { + #[asn(optional_idx = 0)] + pub long_drx_cycle_start_offset_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DataBLER_MCH_Result_r12 { + pub mch_index_r12: DataBLER_MCH_Result_r12Mch_Index_r12, + pub data_bler_result_r12: BLER_Result_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct DataBLER_MCH_ResultList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct DataInactivityTimer_r14(pub u8); +impl DataInactivityTimer_r14 { + pub const S1: u8 = 0u8; + pub const S2: u8 = 1u8; + pub const S3: u8 = 2u8; + pub const S5: u8 = 3u8; + pub const S7: u8 = 4u8; + pub const S10: u8 = 5u8; + pub const S15: u8 = 6u8; + pub const S20: u8 = 7u8; + pub const S40: u8 = 8u8; + pub const S50: u8 = 9u8; + pub const S60: u8 = 10u8; + pub const S80: u8 = 11u8; + pub const S100: u8 = 12u8; + pub const S120: u8 = 13u8; + pub const S150: u8 = 14u8; + pub const S180: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DedicatedInfoCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DedicatedInfoF1c_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DedicatedInfoNAS(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DelayBudgetReport_r14 { + #[asn(key = 0, extended = false)] + Type1(DelayBudgetReport_r14_type1), + #[asn(key = 1, extended = false)] + Type2(DelayBudgetReport_r14_type2), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DeltaFList_PUCCH { + pub delta_f_pucch_format1: DeltaFList_PUCCHDeltaF_PUCCH_Format1, + pub delta_f_pucch_format1b: DeltaFList_PUCCHDeltaF_PUCCH_Format1b, + pub delta_f_pucch_format2: DeltaFList_PUCCHDeltaF_PUCCH_Format2, + pub delta_f_pucch_format2a: DeltaFList_PUCCHDeltaF_PUCCH_Format2a, + pub delta_f_pucch_format2b: DeltaFList_PUCCHDeltaF_PUCCH_Format2b, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DeltaFList_SPUCCH_r15 { + #[asn(key = 0, extended = false)] + Release(DeltaFList_SPUCCH_r15_release), + #[asn(key = 1, extended = false)] + Setup(DeltaFList_SPUCCH_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct DeltaTxD_OffsetListPUCCH_r10 { + pub delta_tx_d_offset_pucch_format1_r10: + DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1_r10, + pub delta_tx_d_offset_pucch_format1a1b_r10: + DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1a1b_r10, + pub delta_tx_d_offset_pucch_format22a2b_r10: + DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format22a2b_r10, + pub delta_tx_d_offset_pucch_format3_r10: + DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format3_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DeltaTxD_OffsetListPUCCH_v1130 { + pub delta_tx_d_offset_pucch_format1b_cs_r11: + DeltaTxD_OffsetListPUCCH_v1130DeltaTxD_OffsetPUCCH_Format1bCS_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct DeltaTxD_OffsetListSPUCCH_r15 { + pub delta_tx_d_offset_spucch_format1_r15: + DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1_r15, + pub delta_tx_d_offset_spucch_format1a_r15: + DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1a_r15, + pub delta_tx_d_offset_spucch_format1b_r15: + DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1b_r15, + pub delta_tx_d_offset_spucch_format3_r15: + DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format3_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DiscardTimerExt_r17(pub u8); +impl DiscardTimerExt_r17 { + pub const MS2000: u8 = 0u8; + pub const SPARE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct E_CSFB_r9 { + #[asn(optional_idx = 0)] + pub message_cont_cdma2000_1xrtt_r9: Option, + #[asn(optional_idx = 1)] + pub mobility_cdma2000_hrpd_r9: Option, + #[asn(optional_idx = 2)] + pub message_cont_cdma2000_hrpd_r9: Option, + #[asn(optional_idx = 3)] + pub redirect_carrier_cdma2000_hrpd_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EAB_Config_r11 { + pub eab_category_r11: EAB_Config_r11Eab_Category_r11, + pub eab_barring_bitmap_r11: EAB_Config_r11Eab_BarringBitmap_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct EAB_ConfigPLMN_r11 { + #[asn(optional_idx = 0)] + pub eab_config_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct EDT_PRACH_ParametersCE_r15 { + #[asn(optional_idx = 0)] + pub edt_prach_parameters_ce_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum EIMTA_MainConfig_r12 { + #[asn(key = 0, extended = false)] + Release(EIMTA_MainConfig_r12_release), + #[asn(key = 1, extended = false)] + Setup(EIMTA_MainConfig_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum EIMTA_MainConfigServCell_r12 { + #[asn(key = 0, extended = false)] + Release(EIMTA_MainConfigServCell_r12_release), + #[asn(key = 1, extended = false)] + Setup(EIMTA_MainConfigServCell_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EPDCCH_Config_r11 { + pub config_r11: EPDCCH_Config_r11Config_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct EPDCCH_SetConfig_r11 { + pub set_config_id_r11: EPDCCH_SetConfigId_r11, + pub transmission_type_r11: EPDCCH_SetConfig_r11TransmissionType_r11, + pub resource_block_assignment_r11: EPDCCH_SetConfig_r11ResourceBlockAssignment_r11, + pub dmrs_scrambling_sequence_int_r11: EPDCCH_SetConfig_r11Dmrs_ScramblingSequenceInt_r11, + pub pucch_resource_start_offset_r11: EPDCCH_SetConfig_r11Pucch_ResourceStartOffset_r11, + #[asn(optional_idx = 0)] + pub re_mapping_qcl_config_id_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1")] +pub struct EPDCCH_SetConfigId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct EPDCCH_SetConfigToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct EPDCCH_SetConfigToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct EUTRA_5GC_Parameters_r15 { + #[asn(optional_idx = 0)] + pub eutra_5gc_r15: Option, + #[asn(optional_idx = 1)] + pub eutra_epc_ho_eutra_5gc_r15: Option, + #[asn(optional_idx = 2)] + pub ho_eutra_5gc_fdd_tdd_r15: Option, + #[asn(optional_idx = 3)] + pub ho_interfreq_eutra_5gc_r15: Option, + #[asn(optional_idx = 4)] + pub ims_voice_over_mcg_bearer_eutra_5gc_r15: + Option, + #[asn(optional_idx = 5)] + pub inactive_state_r15: Option, + #[asn(optional_idx = 6)] + pub reflective_qo_s_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct EUTRA_5GC_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub ce_inactive_state_r16: Option, + #[asn(optional_idx = 1)] + pub ce_eutra_5gc_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct EUTRA_CarrierList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum Enable256QAM_r14 { + #[asn(key = 0, extended = false)] + Release(Enable256QAM_r14_release), + #[asn(key = 1, extended = false)] + Setup(Enable256QAM_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EphemerisOrbitalParameters_r17 { + pub semi_major_axis_r17: EphemerisOrbitalParameters_r17SemiMajorAxis_r17, + pub eccentricity_r17: EphemerisOrbitalParameters_r17Eccentricity_r17, + pub periapsis_r17: EphemerisOrbitalParameters_r17Periapsis_r17, + pub longitude_r17: EphemerisOrbitalParameters_r17Longitude_r17, + pub inclination_r17: EphemerisOrbitalParameters_r17Inclination_r17, + pub anomaly_r17: EphemerisOrbitalParameters_r17Anomaly_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EphemerisStateVectors_r17 { + pub position_x_r17: PositionStateVector_r17, + pub position_y_r17: PositionStateVector_r17, + pub position_z_r17: PositionStateVector_r17, + pub velocity_vx_r17: VelocityStateVector_r17, + pub velocity_vy_r17: VelocityStateVector_r17, + pub velocity_vz_r17: VelocityStateVector_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct EstablishmentCause(pub u8); +impl EstablishmentCause { + pub const EMERGENCY: u8 = 0u8; + pub const HIGH_PRIORITY_ACCESS: u8 = 1u8; + pub const MT_ACCESS: u8 = 2u8; + pub const MO_SIGNALLING: u8 = 3u8; + pub const MO_DATA: u8 = 4u8; + pub const DELAY_TOLERANT_ACCESS_V1020: u8 = 5u8; + pub const MO_VOICE_CALL_V1280: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct EstablishmentCause_5GC_r15(pub u8); +impl EstablishmentCause_5GC_r15 { + pub const EMERGENCY: u8 = 0u8; + pub const HIGH_PRIORITY_ACCESS: u8 = 1u8; + pub const MT_ACCESS: u8 = 2u8; + pub const MO_SIGNALLING: u8 = 3u8; + pub const MO_DATA: u8 = 4u8; + pub const MO_VOICE_CALL: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct EthernetHeaderCompression_r16 { + pub ehc_common_r16: EthernetHeaderCompression_r16Ehc_Common_r16, + #[asn(optional_idx = 0)] + pub ehc_downlink_r16: Option, + #[asn(optional_idx = 1)] + pub ehc_uplink_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum EventType_r17 { + #[asn(key = 0, extended = false)] + OutOfCoverage(EventType_r17_outOfCoverage), + #[asn(key = 1, extended = false)] + EventL1(EventType_r17_eventL1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ExcludedCellsToAddMod { + pub cell_index: ExcludedCellsToAddModCellIndex, + pub phys_cell_id_range: PhysCellIdRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct ExcludedCellsToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "31")] +pub struct ExplicitListOfARFCNs(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct FailedLogicalChannelIdentity_r16 { + pub cell_group_indication_r16: FailedLogicalChannelIdentity_r16CellGroupIndication_r16, + #[asn(optional_idx = 0)] + pub logical_channel_identity_r16: + Option, + #[asn(optional_idx = 1)] + pub logical_channel_identity_ext_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FailedLogicalChannelInfo_r15 { + pub failed_logical_channel_identity_r15: + FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15, + pub failure_type: FailedLogicalChannelInfo_r15FailureType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FailureInformation_r15 { + #[asn(optional_idx = 0)] + pub failed_logical_channel_info_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FailureInformation_r16 { + pub critical_extensions: FailureInformation_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct FailureInformation_r16_IEs { + #[asn(optional_idx = 0)] + pub failed_logical_channel_identity_r16: Option, + #[asn(optional_idx = 1)] + pub failure_type_r16: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct FailureReportMCG_r16 { + #[asn(optional_idx = 0)] + pub failure_type_r16: Option, + #[asn(optional_idx = 1)] + pub meas_result_freq_list_eutra_r16: Option, + #[asn(optional_idx = 2)] + pub meas_result_freq_list_nr_r16: Option, + #[asn(optional_idx = 3)] + pub meas_result_freq_list_geran_r16: Option, + #[asn(optional_idx = 4)] + pub meas_result_freq_list_utra_r16: Option, + #[asn(optional_idx = 5)] + pub meas_result_scg_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct FailureReportSCG_NR_r15 { + pub failure_type_r15: FailureReportSCG_NR_r15FailureType_r15, + #[asn(optional_idx = 0)] + pub meas_result_freq_list_nr_r15: Option, + #[asn(optional_idx = 1)] + pub meas_result_scg_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct FailureReportSCG_r12 { + pub failure_type_r12: FailureReportSCG_r12FailureType_r12, + #[asn(optional_idx = 0)] + pub meas_result_serv_freq_list_r12: Option, + #[asn(optional_idx = 1)] + pub meas_result_neigh_cells_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FailureReportSCG_v12d0 { + #[asn(optional_idx = 0)] + pub meas_result_neigh_cells_v12d0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct FeMBMS_Unicast_Parameters_r14 { + #[asn(optional_idx = 0)] + pub unicast_fembms_mixed_s_cell_r14: + Option, + #[asn(optional_idx = 1)] + pub empty_unicast_region_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "32")] +pub struct FeatureSetDL_PerCC_Id_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct FeatureSetDL_PerCC_r15 { + #[asn(optional_idx = 0)] + pub four_layer_tm3_tm4_r15: Option, + #[asn(optional_idx = 1)] + pub supported_mimo_capability_dl_mrdc_r15: Option, + #[asn(optional_idx = 2)] + pub supported_csi_proc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FeatureSetDL_r15 { + #[asn(optional_idx = 0)] + pub mimo_ca_parameters_per_bo_bc_r15: Option, + pub feature_set_per_cc_list_dl_r15: FeatureSetDL_r15FeatureSetPerCC_ListDL_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FeatureSetDL_v1550 { + #[asn(optional_idx = 0)] + pub dl_1024qam_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "32")] +pub struct FeatureSetUL_PerCC_Id_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct FeatureSetUL_PerCC_r15 { + #[asn(optional_idx = 0)] + pub supported_mimo_capability_ul_r15: Option, + #[asn(optional_idx = 1)] + pub ul_256qam_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FeatureSetUL_r15 { + pub feature_set_per_cc_list_ul_r15: FeatureSetUL_r15FeatureSetPerCC_ListUL_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct FeatureSetsEUTRA_r15 { + #[asn(optional_idx = 0)] + pub feature_sets_dl_r15: Option, + #[asn(optional_idx = 1)] + pub feature_sets_dl_per_cc_r15: Option, + #[asn(optional_idx = 2)] + pub feature_sets_ul_r15: Option, + #[asn(optional_idx = 3)] + pub feature_sets_ul_per_cc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct FilterCoefficient(pub u8); +impl FilterCoefficient { + pub const FC0: u8 = 0u8; + pub const FC1: u8 = 1u8; + pub const FC2: u8 = 2u8; + pub const FC3: u8 = 3u8; + pub const FC4: u8 = 4u8; + pub const FC5: u8 = 5u8; + pub const FC6: u8 = 6u8; + pub const FC7: u8 = 7u8; + pub const FC8: u8 = 8u8; + pub const FC9: u8 = 9u8; + pub const FC11: u8 = 10u8; + pub const FC13: u8 = 11u8; + pub const FC15: u8 = 12u8; + pub const FC17: u8 = 13u8; + pub const FC19: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct FlightPathInfoReport_r15 { + #[asn(optional_idx = 0)] + pub flight_path_r15: Option, + #[asn(optional_idx = 1)] + pub dummy: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FlightPathInfoReportConfig_r15 { + pub max_way_point_number_r15: FlightPathInfoReportConfig_r15MaxWayPointNumber_r15, + #[asn(optional_idx = 0)] + pub include_time_stamp_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Format4_resource_r13 { + pub starting_prb_format4_r13: Format4_resource_r13StartingPRB_format4_r13, + pub number_of_prb_format4_r13: Format4_resource_r13NumberOfPRB_format4_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Format5_resource_r13 { + pub starting_prb_format5_r13: Format5_resource_r13StartingPRB_format5_r13, + pub cdm_index_format5_r13: Format5_resource_r13Cdm_index_format5_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "64")] +pub struct FreqBandIndicator(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "86")] +pub struct FreqBandIndicator_UTRA_FDD(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "256")] +pub struct FreqBandIndicator_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "65", ub = "256")] +pub struct FreqBandIndicator_v9e0(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct FreqBandIndicatorListEUTRA_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "1024")] +pub struct FreqBandIndicatorNR_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct FreqHoppingParameters_r13 { + #[asn(optional_idx = 0)] + pub dummy: Option, + #[asn(optional_idx = 1)] + pub dummy2: Option, + #[asn(optional_idx = 2)] + pub dummy3: Option, + #[asn(optional_idx = 3)] + pub interval_ul_hopping_config_common_mode_a_r13: + Option, + #[asn(optional_idx = 4)] + pub interval_ul_hopping_config_common_mode_b_r13: + Option, + #[asn(optional_idx = 5)] + pub dummy4: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FreqPriorityEUTRA { + pub carrier_freq: ARFCN_ValueEUTRA, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FreqPriorityEUTRA_r12 { + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, + pub cell_reselection_priority_r12: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FreqPriorityEUTRA_v1310 { + #[asn(optional_idx = 0)] + pub cell_reselection_sub_priority_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FreqPriorityEUTRA_v9e0 { + #[asn(optional_idx = 0)] + pub carrier_freq_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct FreqPriorityListEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct FreqPriorityListEUTRA_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct FreqPriorityListExtEUTRA_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct FreqPriorityListExtEUTRA_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct FreqPriorityListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct FreqPriorityListUTRA_FDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct FreqPriorityListUTRA_TDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct FreqPriorityNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + pub cell_reselection_priority_r15: CellReselectionPriority, + #[asn(optional_idx = 0)] + pub cell_reselection_sub_priority_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FreqPriorityUTRA_FDD { + pub carrier_freq: ARFCN_ValueUTRA, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FreqPriorityUTRA_TDD { + pub carrier_freq: ARFCN_ValueUTRA, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FreqsPriorityGERAN { + pub carrier_freqs: CarrierFreqsGERAN, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct FreqsPriorityListGERAN(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct GNSS_ID_r15 { + pub gnss_id_r15: GNSS_ID_r15Gnss_id_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct GNSS_ValidityDuration_r17(pub u8); +impl GNSS_ValidityDuration_r17 { + pub const S10: u8 = 0u8; + pub const S20: u8 = 1u8; + pub const S30: u8 = 2u8; + pub const S40: u8 = 3u8; + pub const S50: u8 = 4u8; + pub const S60: u8 = 5u8; + pub const MIN5: u8 = 6u8; + pub const MIN10: u8 = 7u8; + pub const MIN15: u8 = 8u8; + pub const MIN20: u8 = 9u8; + pub const MIN25: u8 = 10u8; + pub const MIN30: u8 = 11u8; + pub const MIN50: u8 = 12u8; + pub const MIN90: u8 = 13u8; + pub const MIN120: u8 = 14u8; + pub const INFINITY: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct GWUS_Config_r16 { + #[asn(optional_idx = 0)] + pub group_alternation_r16: Option, + #[asn(optional_idx = 1)] + pub common_sequence_r16: Option, + #[asn(optional_idx = 2)] + pub time_parameters_r16: Option, + pub resource_config_drx_r16: GWUS_ResourceConfig_r16, + #[asn(optional_idx = 3)] + pub resource_config_e_drx_short_r16: Option, + #[asn(optional_idx = 4)] + pub resource_config_e_drx_long_r16: Option, + #[asn(optional_idx = 5)] + pub prob_thresh_list_r16: Option, + #[asn(optional_idx = 6)] + pub group_narrow_band_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct GWUS_GroupNarrowBandList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct GWUS_GroupsForServiceList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_NumGroups_r16(pub u8); +impl GWUS_NumGroups_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct GWUS_NumGroupsList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct GWUS_PagingProbThresh_r16(pub u8); +impl GWUS_PagingProbThresh_r16 { + pub const P20: u8 = 0u8; + pub const P30: u8 = 1u8; + pub const P40: u8 = 2u8; + pub const P50: u8 = 3u8; + pub const P60: u8 = 4u8; + pub const P70: u8 = 5u8; + pub const P80: u8 = 6u8; + pub const P90: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct GWUS_ProbThreshList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct GWUS_ResourceConfig_r16 { + pub resource_mapping_pattern_r16: GWUS_ResourceConfig_r16ResourceMappingPattern_r16, + #[asn(optional_idx = 0)] + pub num_groups_list_r16: Option, + #[asn(optional_idx = 1)] + pub groups_for_service_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct GWUS_TimeParameters_r16 { + pub max_duration_factor_r16: GWUS_TimeParameters_r16MaxDurationFactor_r16, + #[asn(optional_idx = 0)] + pub num_p_os_r16: Option, + pub time_offset_drx_r16: GWUS_TimeParameters_r16TimeOffsetDRX_r16, + pub time_offset_e_drx_short_r16: GWUS_TimeParameters_r16TimeOffset_eDRX_Short_r16, + #[asn(optional_idx = 1)] + pub time_offset_e_drx_long_r16: Option, + #[asn(optional_idx = 2)] + pub num_drx_cycles_relaxed_r16: Option, + #[asn(optional_idx = 3)] + pub power_boost_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Handover { + pub target_rat_type: HandoverTargetRAT_Type, + pub target_rat_message_container: HandoverTargetRAT_MessageContainer, + #[asn(optional_idx = 0)] + pub nas_security_param_from_eutra: Option, + #[asn(optional_idx = 1)] + pub system_information: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverCommand { + pub critical_extensions: HandoverCommandCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct HandoverCommand_r8_IEs { + pub handover_command_message: HandoverCommand_r8_IEsHandoverCommandMessage, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverFromEUTRAPreparationRequest { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: HandoverFromEUTRAPreparationRequestCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HandoverFromEUTRAPreparationRequest_r8_IEs { + pub cdma2000_type: CDMA2000_Type, + #[asn(optional_idx = 0)] + pub rand: Option, + #[asn(optional_idx = 1)] + pub mobility_parameters: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HandoverFromEUTRAPreparationRequest_v1020_IEs { + #[asn(optional_idx = 0)] + pub dual_rx_tx_redirect_indicator_r10: + Option, + #[asn(optional_idx = 1)] + pub redirect_carrier_cdma2000_1xrtt_r10: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverFromEUTRAPreparationRequest_v890_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverFromEUTRAPreparationRequest_v920_IEs { + #[asn(optional_idx = 0)] + pub concurr_prep_cdma2000_hrpd_r9: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverPreparationInformation { + pub critical_extensions: HandoverPreparationInformationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct HandoverPreparationInformation_r8_IEs { + pub ue_radio_access_capability_info: UE_CapabilityRAT_ContainerList, + #[asn(optional_idx = 0)] + pub as_config: Option, + #[asn(optional_idx = 1)] + pub rrm_config: Option, + #[asn(optional_idx = 2)] + pub as_context: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v10j0_IEs { + #[asn(optional_idx = 0)] + pub as_config_v10j0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v10x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1130_IEs { + #[asn(optional_idx = 0)] + pub as_context_v1130: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HandoverPreparationInformation_v1250_IEs { + #[asn(optional_idx = 0)] + pub ue_supported_earfcn_r12: Option, + #[asn(optional_idx = 1)] + pub as_config_v1250: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HandoverPreparationInformation_v1320_IEs { + #[asn(optional_idx = 0)] + pub as_config_v1320: Option, + #[asn(optional_idx = 1)] + pub as_context_v1320: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v13c0_IEs { + #[asn(optional_idx = 0)] + pub as_config_v13c0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HandoverPreparationInformation_v1430_IEs { + #[asn(optional_idx = 0)] + pub as_config_v1430: Option, + #[asn(optional_idx = 1)] + pub make_before_break_req_r14: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1530_IEs { + #[asn(optional_idx = 0)] + pub ran_notification_area_info_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1540_IEs { + #[asn(optional_idx = 0)] + pub source_rb_config_intra5_gc_r15: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1610_IEs { + #[asn(optional_idx = 0)] + pub as_context_v1610: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1620_IEs { + #[asn(optional_idx = 0)] + pub as_context_v1620: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1630_IEs { + #[asn(optional_idx = 0)] + pub as_context_v1630: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v1700_IEs { + #[asn(optional_idx = 0)] + pub as_config_v1700: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v920_IEs { + #[asn(optional_idx = 0)] + pub ue_config_release_r9: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v9d0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v9e0_IEs { + #[asn(optional_idx = 0)] + pub as_config_v9e0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HandoverPreparationInformation_v9j0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HighSpeedConfig_r14 { + #[asn(optional_idx = 0)] + pub high_speed_enhanced_meas_flag_r14: Option, + #[asn(optional_idx = 1)] + pub high_speed_enhanced_demodulation_flag_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HighSpeedConfig_v1530 { + pub high_speed_meas_gap_ce_mode_a_r15: HighSpeedConfig_v1530HighSpeedMeasGapCE_ModeA_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct HighSpeedConfig_v1610 { + #[asn(optional_idx = 0)] + pub high_speed_enh_meas_flag2_r16: Option, + #[asn(optional_idx = 1)] + pub high_speed_enh_demod_flag2_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct HighSpeedConfigSCell_r14 { + #[asn(optional_idx = 0)] + pub high_speed_enhanced_demodulation_flag_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct HighSpeedEnhParameters_r14 { + #[asn(optional_idx = 0)] + pub measurement_enhancements_r14: Option, + #[asn(optional_idx = 1)] + pub demodulation_enhancements_r14: + Option, + #[asn(optional_idx = 2)] + pub prach_enhancements_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct HighSpeedEnhParameters_v1610 { + #[asn(optional_idx = 0)] + pub measurement_enhancements_s_cell_r16: + Option, + #[asn(optional_idx = 1)] + pub measurement_enhancements2_r16: + Option, + #[asn(optional_idx = 2)] + pub demodulation_enhancements2_r16: + Option, + #[asn(optional_idx = 3)] + pub inter_rat_enhancement_nr_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "30")] +pub struct Hysteresis(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct I_RNTI_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct IDC_Config_r11 { + #[asn(optional_idx = 0)] + pub idc_indication_r11: Option, + #[asn(optional_idx = 1)] + pub autonomous_denial_parameters_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum IDC_SubframePattern_r11 { + #[asn(key = 0, extended = false)] + SubframePatternFDD_r11(IDC_SubframePattern_r11_subframePatternFDD_r11), + #[asn(key = 1, extended = false)] + SubframePatternTDD_r11(IDC_SubframePattern_r11_subframePatternTDD_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct IDC_SubframePatternList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IKE_Identity_r13 { + pub id_i_r13: IKE_Identity_r13IdI_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "6", sz_ub = "21")] +pub struct IMSI(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct IMSI_Digit(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum IP_Address_r13 { + #[asn(key = 0, extended = false)] + Ipv4_r13(IP_Address_r13_ipv4_r13), + #[asn(key = 1, extended = false)] + Ipv6_r13(IP_Address_r13_ipv6_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersCDMA2000_1XRTT { + pub supported_band_list1_xrtt: SupportedBandList1XRTT, + pub tx_config1_xrtt: IRAT_ParametersCDMA2000_1XRTTTx_Config1XRTT, + pub rx_config1_xrtt: IRAT_ParametersCDMA2000_1XRTTRx_Config1XRTT, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersCDMA2000_1XRTT_v1020 { + pub e_csfb_dual_1xrtt_r10: IRAT_ParametersCDMA2000_1XRTT_v1020E_CSFB_dual_1XRTT_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersCDMA2000_1XRTT_v920 { + pub e_csfb_1xrtt_r9: IRAT_ParametersCDMA2000_1XRTT_v920E_CSFB_1XRTT_r9, + #[asn(optional_idx = 0)] + pub e_csfb_conc_ps_mob1_xrtt_r9: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersCDMA2000_HRPD { + pub supported_band_list_hrpd: SupportedBandListHRPD, + pub tx_config_hrpd: IRAT_ParametersCDMA2000_HRPDTx_ConfigHRPD, + pub rx_config_hrpd: IRAT_ParametersCDMA2000_HRPDRx_ConfigHRPD, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersCDMA2000_v1130 { + #[asn(optional_idx = 0)] + pub cdma2000_nw_sharing_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersGERAN { + pub supported_band_list_geran: SupportedBandListGERAN, + pub inter_rat_ps_ho_to_geran: IRAT_ParametersGERANInterRAT_PS_HO_ToGERAN, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct IRAT_ParametersGERAN_v920 { + #[asn(optional_idx = 0)] + pub dtm_r9: Option, + #[asn(optional_idx = 1)] + pub e_redirection_geran_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct IRAT_ParametersNR_r15 { + #[asn(optional_idx = 0)] + pub en_dc_r15: Option, + #[asn(optional_idx = 1)] + pub event_b2_r15: Option, + #[asn(optional_idx = 2)] + pub supported_band_list_en_dc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 12)] +pub struct IRAT_ParametersNR_v1540 { + #[asn(optional_idx = 0)] + pub eutra_5gc_ho_to_nr_fdd_fr1_r15: + Option, + #[asn(optional_idx = 1)] + pub eutra_5gc_ho_to_nr_tdd_fr1_r15: + Option, + #[asn(optional_idx = 2)] + pub eutra_5gc_ho_to_nr_fdd_fr2_r15: + Option, + #[asn(optional_idx = 3)] + pub eutra_5gc_ho_to_nr_tdd_fr2_r15: + Option, + #[asn(optional_idx = 4)] + pub eutra_epc_ho_to_nr_fdd_fr1_r15: + Option, + #[asn(optional_idx = 5)] + pub eutra_epc_ho_to_nr_tdd_fr1_r15: + Option, + #[asn(optional_idx = 6)] + pub eutra_epc_ho_to_nr_fdd_fr2_r15: + Option, + #[asn(optional_idx = 7)] + pub eutra_epc_ho_to_nr_tdd_fr2_r15: + Option, + #[asn(optional_idx = 8)] + pub ims_voice_over_nr_fr1_r15: Option, + #[asn(optional_idx = 9)] + pub ims_voice_over_nr_fr2_r15: Option, + #[asn(optional_idx = 10)] + pub sa_nr_r15: Option, + #[asn(optional_idx = 11)] + pub supported_band_list_nr_sa_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersNR_v1560 { + #[asn(optional_idx = 0)] + pub ng_en_dc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct IRAT_ParametersNR_v1570 { + #[asn(optional_idx = 0)] + pub ss_sinr_meas_nr_fr1_r15: Option, + #[asn(optional_idx = 1)] + pub ss_sinr_meas_nr_fr2_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct IRAT_ParametersNR_v1610 { + #[asn(optional_idx = 0)] + pub nr_ho_to_en_dc_r16: Option, + #[asn(optional_idx = 1)] + pub ce_eutra_5gc_ho_to_nr_fdd_fr1_r16: + Option, + #[asn(optional_idx = 2)] + pub ce_eutra_5gc_ho_to_nr_tdd_fr1_r16: + Option, + #[asn(optional_idx = 3)] + pub ce_eutra_5gc_ho_to_nr_fdd_fr2_r16: + Option, + #[asn(optional_idx = 4)] + pub ce_eutra_5gc_ho_to_nr_tdd_fr2_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersNR_v1660 { + #[asn(optional_idx = 0)] + pub extended_band_n77_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct IRAT_ParametersNR_v1700 { + #[asn(optional_idx = 0)] + pub eutra_5gc_ho_to_nr_tdd_fr2_2_r17: + Option, + #[asn(optional_idx = 1)] + pub eutra_epc_ho_to_nr_tdd_fr2_2_r17: + Option, + #[asn(optional_idx = 2)] + pub ce_eutra_5gc_ho_to_nr_tdd_fr2_2_r17: + Option, + #[asn(optional_idx = 3)] + pub ims_voice_over_nr_fr2_2_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersNR_v1710 { + #[asn(optional_idx = 0)] + pub extended_band_n77_2_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_FDD { + pub supported_band_list_utra_fdd: SupportedBandListUTRA_FDD, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_TDD_v1020 { + pub e_redirection_utra_tdd_r10: IRAT_ParametersUTRA_TDD_v1020E_RedirectionUTRA_TDD_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_TDD128 { + pub supported_band_list_utra_tdd128: SupportedBandListUTRA_TDD128, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_TDD384 { + pub supported_band_list_utra_tdd384: SupportedBandListUTRA_TDD384, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_TDD768 { + pub supported_band_list_utra_tdd768: SupportedBandListUTRA_TDD768, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_v920 { + pub e_redirection_utra_r9: IRAT_ParametersUTRA_v920E_RedirectionUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct IRAT_ParametersUTRA_v9c0 { + #[asn(optional_idx = 0)] + pub voice_over_ps_hs_utra_fdd_r9: Option, + #[asn(optional_idx = 1)] + pub voice_over_ps_hs_utra_tdd128_r9: + Option, + #[asn(optional_idx = 2)] + pub srvcc_from_utra_fdd_to_utra_fdd_r9: + Option, + #[asn(optional_idx = 3)] + pub srvcc_from_utra_fdd_to_geran_r9: + Option, + #[asn(optional_idx = 4)] + pub srvcc_from_utra_tdd128_to_utra_tdd128_r9: + Option, + #[asn(optional_idx = 5)] + pub srvcc_from_utra_tdd128_to_geran_r9: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IRAT_ParametersUTRA_v9h0 { + pub mfbi_utra_r9: IRAT_ParametersUTRA_v9h0Mfbi_UTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct IRAT_ParametersWLAN_r13 { + #[asn(optional_idx = 0)] + pub supported_band_list_wlan_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 7)] +pub struct IdleModeMobilityControlInfo { + #[asn(optional_idx = 0)] + pub freq_priority_list_eutra: Option, + #[asn(optional_idx = 1)] + pub freq_priority_list_geran: Option, + #[asn(optional_idx = 2)] + pub freq_priority_list_utra_fdd: Option, + #[asn(optional_idx = 3)] + pub freq_priority_list_utra_tdd: Option, + #[asn(optional_idx = 4)] + pub band_class_priority_list_hrpd: Option, + #[asn(optional_idx = 5)] + pub band_class_priority_list1_xrtt: Option, + #[asn(optional_idx = 6)] + pub t320: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IdleModeMobilityControlInfo_v9e0 { + pub freq_priority_list_eutra_v9e0: IdleModeMobilityControlInfo_v9e0FreqPriorityListEUTRA_v9e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InDeviceCoexIndication_r11 { + pub critical_extensions: InDeviceCoexIndication_r11CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct InDeviceCoexIndication_r11_IEs { + #[asn(optional_idx = 0)] + pub affected_carrier_freq_list_r11: Option, + #[asn(optional_idx = 1)] + pub tdm_assistance_info_r11: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InDeviceCoexIndication_v11d0_IEs { + #[asn(optional_idx = 0)] + pub ul_ca_assistance_info_r11: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct InDeviceCoexIndication_v1310_IEs { + #[asn(optional_idx = 0)] + pub affected_carrier_freq_list_v1310: Option, + #[asn(optional_idx = 1)] + pub affected_carrier_freq_comb_list_r13: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InDeviceCoexIndication_v1360_IEs { + #[asn(optional_idx = 0)] + pub hardware_sharing_problem_r13: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InDeviceCoexIndication_v1530_IEs { + #[asn(optional_idx = 0)] + pub mrdc_assistance_info_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InDeviceCoexIndication_v1610_IEs { + #[asn(optional_idx = 0)] + pub victim_system_type_v1610: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum InitialUE_Identity { + #[asn(key = 0, extended = false)] + S_TMSI(S_TMSI), + #[asn(key = 1, extended = false)] + RandomValue(InitialUE_Identity_randomValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum InitialUE_Identity_5GC_r15 { + #[asn(key = 0, extended = false)] + Ng_5G_S_TMSI_Part1(InitialUE_Identity_5GC_r15_ng_5G_S_TMSI_Part1), + #[asn(key = 1, extended = false)] + RandomValue(InitialUE_Identity_5GC_r15_randomValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqBandInfo { + pub inter_freq_need_for_gaps: InterFreqBandInfoInterFreqNeedForGaps, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct InterFreqBandList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct InterFreqCarrierFreqInfo { + pub dl_carrier_freq: ARFCN_ValueEUTRA, + pub q_rx_lev_min: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub p_max: Option, + pub t_reselection_eutra: T_Reselection, + #[asn(optional_idx = 1)] + pub t_reselection_eutra_sf: Option, + pub thresh_x_high: ReselectionThreshold, + pub thresh_x_low: ReselectionThreshold, + pub allowed_meas_bandwidth: AllowedMeasBandwidth, + pub presence_antenna_port1: PresenceAntennaPort1, + #[asn(optional_idx = 2)] + pub cell_reselection_priority: Option, + pub neigh_cell_config: NeighCellConfig, + #[asn(optional_idx = 3)] + pub q_offset_freq: Option, + #[asn(optional_idx = 4)] + pub inter_freq_neigh_cell_list: Option, + #[asn(optional_idx = 5)] + pub inter_freq_excluded_cell_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 12)] +pub struct InterFreqCarrierFreqInfo_r12 { + pub dl_carrier_freq_r12: ARFCN_ValueEUTRA_r9, + pub q_rx_lev_min_r12: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub p_max_r12: Option, + pub t_reselection_eutra_r12: T_Reselection, + #[asn(optional_idx = 1)] + pub t_reselection_eutra_sf_r12: Option, + pub thresh_x_high_r12: ReselectionThreshold, + pub thresh_x_low_r12: ReselectionThreshold, + pub allowed_meas_bandwidth_r12: AllowedMeasBandwidth, + pub presence_antenna_port1_r12: PresenceAntennaPort1, + #[asn(optional_idx = 2)] + pub cell_reselection_priority_r12: Option, + pub neigh_cell_config_r12: NeighCellConfig, + #[asn(optional_idx = 3)] + pub q_offset_freq_r12: Option, + #[asn(optional_idx = 4)] + pub inter_freq_neigh_cell_list_r12: Option, + #[asn(optional_idx = 5)] + pub inter_freq_excluded_cell_list_r12: Option, + #[asn(optional_idx = 6)] + pub q_qual_min_r12: Option, + #[asn(optional_idx = 7)] + pub thresh_x_q_r12: Option, + #[asn(optional_idx = 8)] + pub q_qual_min_wb_r12: Option, + #[asn(optional_idx = 9)] + pub multi_band_info_list_r12: Option, + #[asn(optional_idx = 10)] + pub reduced_meas_performance_r12: + Option, + #[asn(optional_idx = 11)] + pub q_qual_min_rsrq_on_all_symbols_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqCarrierFreqInfo_v10j0 { + #[asn(optional_idx = 0)] + pub freq_band_info_r10: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10j0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqCarrierFreqInfo_v10l0 { + #[asn(optional_idx = 0)] + pub freq_band_info_v10l0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10l0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqCarrierFreqInfo_v1250 { + #[asn(optional_idx = 0)] + pub reduced_meas_performance_r12: + Option, + #[asn(optional_idx = 1)] + pub q_qual_min_rsrq_on_all_symbols_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct InterFreqCarrierFreqInfo_v1310 { + #[asn(optional_idx = 0)] + pub cell_reselection_sub_priority_r13: Option, + #[asn(optional_idx = 1)] + pub redistribution_inter_freq_info_r13: Option, + #[asn(optional_idx = 2)] + pub cell_selection_info_ce_r13: Option, + #[asn(optional_idx = 3)] + pub t_reselection_eutra_ce_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct InterFreqCarrierFreqInfo_v1350 { + #[asn(optional_idx = 0)] + pub cell_selection_info_ce1_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct InterFreqCarrierFreqInfo_v1360 { + #[asn(optional_idx = 0)] + pub cell_selection_info_ce1_v1360: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqCarrierFreqInfo_v1530 { + pub hsdn_indication_r15: InterFreqCarrierFreqInfo_v1530Hsdn_Indication_r15, + #[asn(optional_idx = 0)] + pub inter_freq_neigh_hsdn_cell_list_r15: Option, + #[asn(optional_idx = 1)] + pub cell_selection_info_ce_v1530: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct InterFreqCarrierFreqInfo_v1610 { + #[asn(optional_idx = 0)] + pub alt_cell_reselection_priority_r16: Option, + #[asn(optional_idx = 1)] + pub alt_cell_reselection_sub_priority_r16: Option, + #[asn(optional_idx = 2)] + pub rss_config_carrier_info_r16: Option, + #[asn(optional_idx = 3)] + pub inter_freq_neigh_cell_list_v1610: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct InterFreqCarrierFreqInfo_v8h0 { + #[asn(optional_idx = 0)] + pub multi_band_info_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqCarrierFreqInfo_v9e0 { + #[asn(optional_idx = 0)] + pub dl_carrier_freq_v9e0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v1250(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v1350(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v13a0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1280(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1350(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1360(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct InterFreqCarrierFreqListExt_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct InterFreqExcludedCellList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqNeighCellInfo { + pub phys_cell_id: PhysCellId, + pub q_offset_cell: Q_OffsetRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqNeighCellInfo_v1610 { + pub rss_meas_power_bias_r16: RSS_MeasPowerBias_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct InterFreqNeighCellList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct InterFreqNeighCellList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct InterFreqNeighHSDN_CellList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqRSTDMeasurementIndication_r10 { + pub critical_extensions: InterFreqRSTDMeasurementIndication_r10CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct InterFreqRSTDMeasurementIndication_r10_IEs { + pub rstd_inter_freq_indication_r10: + InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterRAT_BandInfo { + pub inter_rat_need_for_gaps: InterRAT_BandInfoInterRAT_NeedForGaps, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterRAT_BandInfoNR_r16 { + pub inter_rat_need_for_gaps_nr_r16: InterRAT_BandInfoNR_r16InterRAT_NeedForGapsNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct InterRAT_BandList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "1024" +)] +pub struct InterRAT_BandListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct IntraBandContiguousCC_Info_r12 { + #[asn(optional_idx = 0)] + pub four_layer_tm3_tm4_per_cc_r12: + Option, + #[asn(optional_idx = 1)] + pub supported_mimo_capability_dl_r12: Option, + #[asn(optional_idx = 2)] + pub supported_csi_proc_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct IntraFreqExcludedCellList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct IntraFreqNeighCellInfo { + pub phys_cell_id: PhysCellId, + pub q_offset_cell: Q_OffsetRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IntraFreqNeighCellInfo_v1610 { + pub rss_meas_power_bias_r16: RSS_MeasPowerBias_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct IntraFreqNeighCellList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct IntraFreqNeighCellList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct IntraFreqNeighHSDN_CellList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "256", + sz_ub = "256" +)] +pub struct Key_eNodeB_Star(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct LAA_Parameters_r13 { + #[asn(optional_idx = 0)] + pub cross_carrier_scheduling_laa_dl_r13: + Option, + #[asn(optional_idx = 1)] + pub csi_rs_drs_rrm_measurements_laa_r13: + Option, + #[asn(optional_idx = 2)] + pub downlink_laa_r13: Option, + #[asn(optional_idx = 3)] + pub ending_dw_pts_r13: Option, + #[asn(optional_idx = 4)] + pub second_slot_starting_position_r13: Option, + #[asn(optional_idx = 5)] + pub tm9_laa_r13: Option, + #[asn(optional_idx = 6)] + pub tm10_laa_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct LAA_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub cross_carrier_scheduling_laa_ul_r14: + Option, + #[asn(optional_idx = 1)] + pub uplink_laa_r14: Option, + #[asn(optional_idx = 2)] + pub two_step_scheduling_timing_info_r14: + Option, + #[asn(optional_idx = 3)] + pub uss_blind_decoding_adjustment_r14: + Option, + #[asn(optional_idx = 4)] + pub uss_blind_decoding_reduction_r14: + Option, + #[asn(optional_idx = 5)] + pub out_of_sequence_grant_handling_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct LAA_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub aul_r15: Option, + #[asn(optional_idx = 1)] + pub laa_pusch_mode1_r15: Option, + #[asn(optional_idx = 2)] + pub laa_pusch_mode2_r15: Option, + #[asn(optional_idx = 3)] + pub laa_pusch_mode3_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LAA_SCellConfiguration_r13 { + pub subframe_start_position_r13: LAA_SCellConfiguration_r13SubframeStartPosition_r13, + pub laa_s_cell_subframe_config_r13: LAA_SCellConfiguration_r13Laa_SCellSubframeConfig_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct LAA_SCellConfiguration_v1430 { + #[asn(optional_idx = 0)] + pub cross_carrier_scheduling_config_ul_r14: + Option, + #[asn(optional_idx = 1)] + pub lbt_config_r14: Option, + #[asn(optional_idx = 2)] + pub pdcch_config_laa_r14: Option, + #[asn(optional_idx = 3)] + pub absence_of_any_other_technology_r14: + Option, + #[asn(optional_idx = 4)] + pub sounding_rs_ul_config_dedicated_aperiodic_v1430: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct LAA_SCellConfiguration_v1530 { + #[asn(optional_idx = 0)] + pub aul_config_r15: Option, + #[asn(optional_idx = 1)] + pub pusch_mode_config_laa_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum LBT_Config_r14 { + #[asn(key = 0, extended = false)] + MaxEnergyDetectionThreshold_r14(LBT_Config_r14_maxEnergyDetectionThreshold_r14), + #[asn(key = 1, extended = false)] + EnergyDetectionThresholdOffset_r14(LBT_Config_r14_energyDetectionThresholdOffset_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct LWA_Config_r13 { + #[asn(optional_idx = 0)] + pub lwa_mobility_config_r13: Option, + #[asn(optional_idx = 1)] + pub lwa_wt_counter_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum LWA_Configuration_r13 { + #[asn(key = 0, extended = false)] + Release(LWA_Configuration_r13_release), + #[asn(key = 1, extended = false)] + Setup(LWA_Configuration_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct LWA_Parameters_r13 { + #[asn(optional_idx = 0)] + pub lwa_r13: Option, + #[asn(optional_idx = 1)] + pub lwa_split_bearer_r13: Option, + #[asn(optional_idx = 2)] + pub wlan_mac_address_r13: Option, + #[asn(optional_idx = 3)] + pub lwa_buffer_size_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct LWA_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub lwa_ho_without_wt_change_r14: Option, + #[asn(optional_idx = 1)] + pub lwa_ul_r14: Option, + #[asn(optional_idx = 2)] + pub wlan_periodic_meas_r14: Option, + #[asn(optional_idx = 3)] + pub wlan_report_any_wlan_r14: Option, + #[asn(optional_idx = 4)] + pub wlan_supported_data_rate_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct LWA_Parameters_v1440 { + #[asn(optional_idx = 0)] + pub lwa_rlc_um_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct LWIP_Config_r13 { + #[asn(optional_idx = 0)] + pub lwip_mobility_config_r13: Option, + #[asn(optional_idx = 1)] + pub tunnel_config_lwip_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum LWIP_Configuration_r13 { + #[asn(key = 0, extended = false)] + Release(LWIP_Configuration_r13_release), + #[asn(key = 1, extended = false)] + Setup(LWIP_Configuration_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct LWIP_Parameters_r13 { + #[asn(optional_idx = 0)] + pub lwip_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct LWIP_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub lwip_aggregation_dl_r14: Option, + #[asn(optional_idx = 1)] + pub lwip_aggregation_ul_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct LocationInfo_r10 { + pub location_coordinates_r10: LocationInfo_r10LocationCoordinates_r10, + #[asn(optional_idx = 0)] + pub horizontal_velocity_r10: Option, + #[asn(optional_idx = 1)] + pub gnss_tod_msec_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct LogMeasInfo_r10 { + #[asn(optional_idx = 0)] + pub location_info_r10: Option, + pub relative_time_stamp_r10: LogMeasInfo_r10RelativeTimeStamp_r10, + pub serv_cell_identity_r10: CellGlobalIdEUTRA, + pub meas_result_serv_cell_r10: LogMeasInfo_r10MeasResultServCell_r10, + #[asn(optional_idx = 1)] + pub meas_result_neigh_cells_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "520" +)] +pub struct LogMeasInfoList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "4060" +)] +pub struct LogMeasInfoList2_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct LogMeasReport_r10 { + pub absolute_time_stamp_r10: AbsoluteTimeInfo_r10, + pub trace_reference_r10: TraceReference_r10, + pub trace_recording_session_ref_r10: LogMeasReport_r10TraceRecordingSessionRef_r10, + pub tce_id_r10: LogMeasReport_r10Tce_Id_r10, + pub log_meas_info_list_r10: LogMeasInfoList_r10, + #[asn(optional_idx = 0)] + pub log_meas_available_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct LogMeasResultBT_r15 { + pub bt_addr_r15: LogMeasResultBT_r15Bt_Addr_r15, + #[asn(optional_idx = 0)] + pub rssi_bt_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct LogMeasResultListBT_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct LogMeasResultListWLAN_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct LogMeasResultWLAN_r15 { + pub wlan_identifiers_r15: WLAN_Identifiers_r12, + #[asn(optional_idx = 0)] + pub rssi_wlan_r15: Option, + #[asn(optional_idx = 1)] + pub rtt_wlan_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LoggedEventTriggerConfig_r17 { + pub event_type_r17: EventType_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LoggedMeasurementConfiguration_r10 { + pub critical_extensions: LoggedMeasurementConfiguration_r10CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct LoggedMeasurementConfiguration_r10_IEs { + pub trace_reference_r10: TraceReference_r10, + pub trace_recording_session_ref_r10: + LoggedMeasurementConfiguration_r10_IEsTraceRecordingSessionRef_r10, + pub tce_id_r10: LoggedMeasurementConfiguration_r10_IEsTce_Id_r10, + pub absolute_time_info_r10: AbsoluteTimeInfo_r10, + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct LoggedMeasurementConfiguration_v1080_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension_r10: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct LoggedMeasurementConfiguration_v1130_IEs { + #[asn(optional_idx = 0)] + pub plmn_identity_list_r11: Option, + #[asn(optional_idx = 1)] + pub area_configuration_v1130: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct LoggedMeasurementConfiguration_v1250_IEs { + #[asn(optional_idx = 0)] + pub target_mbsfn_area_list_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct LoggedMeasurementConfiguration_v1530_IEs { + #[asn(optional_idx = 0)] + pub bt_name_list_r15: Option, + #[asn(optional_idx = 1)] + pub wlan_name_list_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct LoggedMeasurementConfiguration_v1700_IEs { + #[asn(optional_idx = 0)] + pub logged_event_trigger_config_r17: Option, + #[asn(optional_idx = 1)] + pub meas_uncom_bar_pre_r17: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct LoggingDuration_r10(pub u8); +impl LoggingDuration_r10 { + pub const MIN10: u8 = 0u8; + pub const MIN20: u8 = 1u8; + pub const MIN40: u8 = 2u8; + pub const MIN60: u8 = 3u8; + pub const MIN90: u8 = 4u8; + pub const MIN120: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct LoggingInterval_r10(pub u8); +impl LoggingInterval_r10 { + pub const MS1280: u8 = 0u8; + pub const MS2560: u8 = 1u8; + pub const MS5120: u8 = 2u8; + pub const MS10240: u8 = 3u8; + pub const MS20480: u8 = 4u8; + pub const MS30720: u8 = 5u8; + pub const MS40960: u8 = 6u8; + pub const MS61440: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct LogicalChGroupInfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct LogicalChGroupInfoList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct LogicalChannelConfig { + #[asn(optional_idx = 0)] + pub ul_specific_parameters: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MAC_MainConfig { + #[asn(optional_idx = 0)] + pub ul_sch_config: Option, + #[asn(optional_idx = 1)] + pub drx_config: Option, + pub time_alignment_timer_dedicated: TimeAlignmentTimer, + #[asn(optional_idx = 2)] + pub phr_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MAC_MainConfigSCell_r11 { + #[asn(optional_idx = 0)] + pub stag_id_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MAC_MainConfigSL_r12 { + #[asn(optional_idx = 0)] + pub periodic_bsr_timer_sl: Option, + pub retx_bsr_timer_sl: RetxBSR_Timer_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MAC_Parameters_r12 { + #[asn(optional_idx = 0)] + pub logical_channel_sr_prohibit_timer_r12: + Option, + #[asn(optional_idx = 1)] + pub long_drx_command_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MAC_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub extended_mac_length_field_r13: Option, + #[asn(optional_idx = 1)] + pub extended_long_drx_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct MAC_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub short_sps_interval_fdd_r14: Option, + #[asn(optional_idx = 1)] + pub short_sps_interval_tdd_r14: Option, + #[asn(optional_idx = 2)] + pub skip_uplink_dynamic_r14: Option, + #[asn(optional_idx = 3)] + pub skip_uplink_sps_r14: Option, + #[asn(optional_idx = 4)] + pub multiple_uplink_sps_r14: Option, + #[asn(optional_idx = 5)] + pub data_inact_mon_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MAC_Parameters_v1440 { + #[asn(optional_idx = 0)] + pub rai_support_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 8)] +pub struct MAC_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub min_proc_timeline_subslot_r15: Option, + #[asn(optional_idx = 1)] + pub skip_subframe_processing_r15: Option, + #[asn(optional_idx = 2)] + pub early_data_up_r15: Option, + #[asn(optional_idx = 3)] + pub dormant_s_cell_state_r15: Option, + #[asn(optional_idx = 4)] + pub direct_s_cell_activation_r15: Option, + #[asn(optional_idx = 5)] + pub direct_s_cell_hibernation_r15: Option, + #[asn(optional_idx = 6)] + pub extended_lcid_duplication_r15: Option, + #[asn(optional_idx = 7)] + pub sps_serving_cell_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MAC_Parameters_v1550 { + #[asn(optional_idx = 0)] + pub elcid_support_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MAC_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub direct_mcg_s_cell_activation_resume_r16: + Option, + #[asn(optional_idx = 1)] + pub direct_scg_s_cell_activation_resume_r16: + Option, + #[asn(optional_idx = 2)] + pub early_data_up_5gc_r16: Option, + #[asn(optional_idx = 3)] + pub rai_support_enh_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MAC_Parameters_v1630 { + #[asn(optional_idx = 0)] + pub direct_scg_s_cell_activation_nedc_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBMS_CarrierType_r14 { + pub carrier_type_r14: MBMS_CarrierType_r14CarrierType_r14, + #[asn(optional_idx = 0)] + pub frame_offset_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBMS_InterFreqCarrierTypeList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_NotificationConfig_r9 { + pub notification_repetition_coeff_r9: MBMS_NotificationConfig_r9NotificationRepetitionCoeff_r9, + pub notification_offset_r9: MBMS_NotificationConfig_r9NotificationOffset_r9, + pub notification_sf_index_r9: MBMS_NotificationConfig_r9NotificationSF_Index_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_NotificationConfig_v1430 { + pub notification_sf_index_v1430: MBMS_NotificationConfig_v1430NotificationSF_Index_v1430, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMS_Parameters_r11 { + #[asn(optional_idx = 0)] + pub mbms_s_cell_r11: Option, + #[asn(optional_idx = 1)] + pub mbms_non_serving_cell_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBMS_Parameters_v1250 { + #[asn(optional_idx = 0)] + pub mbms_async_dc_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MBMS_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub fembms_dedicated_cell_r14: Option, + #[asn(optional_idx = 1)] + pub fembms_mixed_cell_r14: Option, + #[asn(optional_idx = 2)] + pub subcarrier_spacing_mbms_khz7dot5_r14: + Option, + #[asn(optional_idx = 3)] + pub subcarrier_spacing_mbms_khz1dot25_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMS_Parameters_v1470 { + pub mbms_max_bw_r14: MBMS_Parameters_v1470Mbms_MaxBW_r14, + #[asn(optional_idx = 0)] + pub mbms_scaling_factor1dot25_r14: Option, + #[asn(optional_idx = 1)] + pub mbms_scaling_factor7dot5_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMS_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub mbms_scaling_factor2dot5_r16: Option, + #[asn(optional_idx = 1)] + pub mbms_scaling_factor0dot37_r16: Option, + pub mbms_supported_band_info_list_r16: MBMS_Parameters_v1610Mbms_SupportedBandInfoList_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBMS_Parameters_v1700 { + #[asn(optional_idx = 0)] + pub mbms_supported_band_info_list_v1700: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_ROM_Info_r15 { + pub mbms_rom_freq_r15: ARFCN_ValueEUTRA_r9, + pub mbms_rom_subcarrier_spacing_r15: MBMS_ROM_Info_r15Mbms_ROM_SubcarrierSpacing_r15, + pub mbms_bandwidth_r15: MBMS_ROM_Info_r15Mbms_Bandwidth_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_ROM_Info_r16 { + pub mbms_rom_freq_r16: ARFCN_ValueEUTRA_r9, + pub mbms_rom_subcarrier_spacing_r16: MBMS_ROM_Info_r16Mbms_ROM_SubcarrierSpacing_r16, + pub mbms_bandwidth_r16: MBMS_ROM_Info_r16Mbms_Bandwidth_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_SAI_InterFreq_r11 { + pub dl_carrier_freq_r11: ARFCN_ValueEUTRA_r9, + pub mbms_sai_list_r11: MBMS_SAI_List_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBMS_SAI_InterFreq_v1140 { + #[asn(optional_idx = 0)] + pub multi_band_info_list_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBMS_SAI_InterFreqList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBMS_SAI_InterFreqList_v1140(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct MBMS_SAI_List_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct MBMS_SAI_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMS_ServiceInfo_r13 { + pub tmgi_r13: TMGI_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "15")] +pub struct MBMS_ServiceList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MBMS_SessionInfo_r9 { + pub tmgi_r9: TMGI_r9, + #[asn(optional_idx = 0)] + pub session_id_r9: Option, + pub logical_channel_identity_r9: MBMS_SessionInfo_r9LogicalChannelIdentity_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "29")] +pub struct MBMS_SessionInfoList_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMS_SupportedBandInfo_r16 { + #[asn(optional_idx = 0)] + pub subcarrier_spacing_mbms_khz2dot5_r16: + Option, + #[asn(optional_idx = 1)] + pub subcarrier_spacing_mbms_khz0dot37_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MBMS_SupportedBandInfo_v1700 { + #[asn(optional_idx = 0)] + pub pmch_bandwidth_n40_r17: Option, + #[asn(optional_idx = 1)] + pub pmch_bandwidth_n35_r17: Option, + #[asn(optional_idx = 2)] + pub pmch_bandwidth_n30_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMSCountingRequest_r10 { + pub counting_request_list_r10: CountingRequestList_r10, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSCountingResponse_r10 { + pub critical_extensions: MBMSCountingResponse_r10CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MBMSCountingResponse_r10_IEs { + #[asn(optional_idx = 0)] + pub mbsfn_area_index_r10: Option, + #[asn(optional_idx = 1)] + pub counting_response_list_r10: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSInterestIndication_r11 { + pub critical_extensions: MBMSInterestIndication_r11CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MBMSInterestIndication_r11_IEs { + #[asn(optional_idx = 0)] + pub mbms_freq_list_r11: Option, + #[asn(optional_idx = 1)] + pub mbms_priority_r11: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMSInterestIndication_v1310_IEs { + #[asn(optional_idx = 0)] + pub mbms_services_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMSInterestIndication_v1540_IEs { + #[asn(optional_idx = 0)] + pub mbms_rom_info_list_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMSInterestIndication_v1610_IEs { + #[asn(optional_idx = 0)] + pub mbms_rom_info_list_r16: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBMSSessionInfo_r13 { + pub tmgi_r13: TMGI_r9, + #[asn(optional_idx = 0)] + pub session_id_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct MBSFN_AreaId_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MBSFN_AreaInfo_r16 { + pub mbsfn_area_id_r16: MBSFN_AreaId_r12, + pub notification_indicator_r16: MBSFN_AreaInfo_r16NotificationIndicator_r16, + pub mcch_config_r16: MBSFN_AreaInfo_r16Mcch_Config_r16, + pub subcarrier_spacing_mbms_r16: MBSFN_AreaInfo_r16SubcarrierSpacingMBMS_r16, + #[asn(optional_idx = 0)] + pub time_separation_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MBSFN_AreaInfo_r17 { + pub mbsfn_area_info_r17: MBSFN_AreaInfo_r16, + pub pmch_bandwidth_r17: MBSFN_AreaInfo_r17Pmch_Bandwidth_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MBSFN_AreaInfo_r9 { + pub mbsfn_area_id_r9: MBSFN_AreaId_r12, + pub non_mbsf_nregion_length: MBSFN_AreaInfo_r9Non_MBSFNregionLength, + pub notification_indicator_r9: MBSFN_AreaInfo_r9NotificationIndicator_r9, + pub mcch_config_r9: MBSFN_AreaInfo_r9Mcch_Config_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBSFN_AreaInfoList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBSFN_AreaInfoList_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBSFN_AreaInfoList_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct MBSFN_RSRQ_Range_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFN_SubframeConfig { + pub radioframe_allocation_period: MBSFN_SubframeConfigRadioframeAllocationPeriod, + pub radioframe_allocation_offset: MBSFN_SubframeConfigRadioframeAllocationOffset, + pub subframe_allocation: MBSFN_SubframeConfigSubframeAllocation, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFN_SubframeConfig_v1430 { + pub subframe_allocation_v1430: MBSFN_SubframeConfig_v1430SubframeAllocation_v1430, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFN_SubframeConfig_v1610 { + pub subframe_allocation_v1610: MBSFN_SubframeConfig_v1610SubframeAllocation_v1610, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBSFN_SubframeConfigList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MBSFN_SubframeConfigList_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBSFNAreaConfiguration_r9 { + pub common_sf_alloc_r9: CommonSF_AllocPatternList_r9, + pub common_sf_alloc_period_r9: MBSFNAreaConfiguration_r9CommonSF_AllocPeriod_r9, + pub pmch_info_list_r9: PMCH_InfoList_r9, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBSFNAreaConfiguration_v1250_IEs { + #[asn(optional_idx = 0)] + pub pmch_info_list_ext_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MBSFNAreaConfiguration_v1430_IEs { + pub common_sf_alloc_v1430: CommonSF_AllocPatternList_v1430, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBSFNAreaConfiguration_v1610_IEs { + #[asn(optional_idx = 0)] + pub common_sf_alloc_v1610: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBSFNAreaConfiguration_v930_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct MCC(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct MCC_MNC_Digit(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCCH_Message { + pub message: MCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(MCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + Later(MCCH_MessageType_later), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCGFailureInformation_r16 { + pub critical_extensions: MCGFailureInformation_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MCGFailureInformation_r16_IEs { + #[asn(optional_idx = 0)] + pub failure_report_mcg_r16: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCS_PSSCH_Range_r15 { + pub min_mcs_pssch_r15: MCS_PSSCH_Range_r15MinMCS_PSSCH_r15, + pub max_mcs_pssch_r15: MCS_PSSCH_Range_r15MaxMCS_PSSCH_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MIMO_BeamformedCapabilities_r13 { + pub k_max_r13: MIMO_BeamformedCapabilities_r13K_Max_r13, + #[asn(optional_idx = 0)] + pub n_max_list_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct MIMO_BeamformedCapabilityList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_CA_ParametersPerBoBC_r13 { + #[asn(optional_idx = 0)] + pub parameters_tm9_r13: Option, + #[asn(optional_idx = 1)] + pub parameters_tm10_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_CA_ParametersPerBoBC_r15 { + #[asn(optional_idx = 0)] + pub parameters_tm9_r15: Option, + #[asn(optional_idx = 1)] + pub parameters_tm10_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_CA_ParametersPerBoBC_v1430 { + #[asn(optional_idx = 0)] + pub parameters_tm9_v1430: Option, + #[asn(optional_idx = 1)] + pub parameters_tm10_v1430: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MIMO_CA_ParametersPerBoBC_v1470 { + pub parameters_tm9_v1470: MIMO_CA_ParametersPerBoBCPerTM_v1470, + pub parameters_tm10_v1470: MIMO_CA_ParametersPerBoBCPerTM_v1470, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r13 { + #[asn(optional_idx = 0)] + pub non_precoded_r13: Option, + #[asn(optional_idx = 1)] + pub beamformed_r13: Option, + #[asn(optional_idx = 2)] + pub dmrs_enhancements_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r15 { + #[asn(optional_idx = 0)] + pub non_precoded_r13: Option, + #[asn(optional_idx = 1)] + pub beamformed_r13: Option, + #[asn(optional_idx = 2)] + pub dmrs_enhancements_r13: Option, + #[asn(optional_idx = 3)] + pub csi_reporting_np_r14: Option, + #[asn(optional_idx = 4)] + pub csi_reporting_advanced_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_CA_ParametersPerBoBCPerTM_v1430 { + #[asn(optional_idx = 0)] + pub csi_reporting_np_r14: Option, + #[asn(optional_idx = 1)] + pub csi_reporting_advanced_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MIMO_CA_ParametersPerBoBCPerTM_v1470 { + #[asn(optional_idx = 0)] + pub csi_reporting_advanced_max_ports_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct MIMO_CapabilityDL_r10(pub u8); +impl MIMO_CapabilityDL_r10 { + pub const TWO_LAYERS: u8 = 0u8; + pub const FOUR_LAYERS: u8 = 1u8; + pub const EIGHT_LAYERS: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MIMO_CapabilityUL_r10(pub u8); +impl MIMO_CapabilityUL_r10 { + pub const TWO_LAYERS: u8 = 0u8; + pub const FOUR_LAYERS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MIMO_NonPrecodedCapabilities_r13 { + #[asn(optional_idx = 0)] + pub config1_r13: Option, + #[asn(optional_idx = 1)] + pub config2_r13: Option, + #[asn(optional_idx = 2)] + pub config3_r13: Option, + #[asn(optional_idx = 3)] + pub config4_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MIMO_UE_BeamformedCapabilities_r13 { + #[asn(optional_idx = 0)] + pub alt_codebook_r13: Option, + pub mimo_beamformed_capabilities_r13: MIMO_BeamformedCapabilityList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MIMO_UE_Parameters_r13 { + #[asn(optional_idx = 0)] + pub parameters_tm9_r13: Option, + #[asn(optional_idx = 1)] + pub parameters_tm10_r13: Option, + #[asn(optional_idx = 2)] + pub srs_enhancements_tdd_r13: Option, + #[asn(optional_idx = 3)] + pub srs_enhancements_r13: Option, + #[asn(optional_idx = 4)] + pub interference_meas_restriction_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MIMO_UE_Parameters_v13e0 { + #[asn(optional_idx = 0)] + pub mimo_weighted_layers_capabilities_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_UE_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub parameters_tm9_v1430: Option, + #[asn(optional_idx = 1)] + pub parameters_tm10_v1430: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MIMO_UE_Parameters_v1470 { + pub parameters_tm9_v1470: MIMO_UE_ParametersPerTM_v1470, + pub parameters_tm10_v1470: MIMO_UE_ParametersPerTM_v1470, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MIMO_UE_ParametersPerTM_r13 { + #[asn(optional_idx = 0)] + pub non_precoded_r13: Option, + #[asn(optional_idx = 1)] + pub beamformed_r13: Option, + #[asn(optional_idx = 2)] + pub channel_meas_restriction_r13: Option, + #[asn(optional_idx = 3)] + pub dmrs_enhancements_r13: Option, + #[asn(optional_idx = 4)] + pub csi_rs_enhancements_tdd_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct MIMO_UE_ParametersPerTM_v1430 { + #[asn(optional_idx = 0)] + pub nzp_csi_rs_aperiodic_info_r14: + Option, + #[asn(optional_idx = 1)] + pub nzp_csi_rs_periodic_info_r14: + Option, + #[asn(optional_idx = 2)] + pub zp_csi_rs_aperiodic_info_r14: + Option, + #[asn(optional_idx = 3)] + pub ul_dmrs_enhancements_r14: Option, + #[asn(optional_idx = 4)] + pub density_reduction_np_r14: Option, + #[asn(optional_idx = 5)] + pub density_reduction_bf_r14: Option, + #[asn(optional_idx = 6)] + pub hybrid_csi_r14: Option, + #[asn(optional_idx = 7)] + pub semi_ol_r14: Option, + #[asn(optional_idx = 8)] + pub csi_reporting_np_r14: Option, + #[asn(optional_idx = 9)] + pub csi_reporting_advanced_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MIMO_UE_ParametersPerTM_v1470 { + #[asn(optional_idx = 0)] + pub csi_reporting_advanced_max_ports_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MIMO_WeightedLayersCapabilities_r13 { + pub rel_weight_two_layers_r13: MIMO_WeightedLayersCapabilities_r13RelWeightTwoLayers_r13, + #[asn(optional_idx = 0)] + pub rel_weight_four_layers_r13: + Option, + #[asn(optional_idx = 1)] + pub rel_weight_eight_layers_r13: + Option, + pub total_weighted_layers_r13: MIMO_WeightedLayersCapabilities_r13TotalWeightedLayers_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MMEC(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MMTEL_Parameters_r14 { + #[asn(optional_idx = 0)] + pub delay_budget_reporting_r14: Option, + #[asn(optional_idx = 1)] + pub pusch_enhancements_r14: Option, + #[asn(optional_idx = 2)] + pub recommended_bit_rate_r14: Option, + #[asn(optional_idx = 3)] + pub recommended_bit_rate_query_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MMTEL_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub recommended_bit_rate_multiplier_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "3")] +pub struct MNC(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MRDC_AssistanceInfo_r15 { + pub affected_carrier_freq_comb_info_list_mrdc_r15: + MRDC_AssistanceInfo_r15AffectedCarrierFreqCombInfoListMRDC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MTC_SSB_NR_r15 { + pub periodicity_and_offset_r15: MTC_SSB_NR_r15PeriodicityAndOffset_r15, + pub ssb_duration_r15: MTC_SSB_NR_r15Ssb_Duration_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MTC_SSB2_LP_NR_r16 { + #[asn(optional_idx = 0)] + pub pci_list_r16: Option, + pub periodicity_r16: MTC_SSB2_LP_NR_r16Periodicity_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MUST_Parameters_r14 { + #[asn(optional_idx = 0)] + pub must_tm234_up_to2_tx_r14: Option, + #[asn(optional_idx = 1)] + pub must_tm89_up_to_one_interfering_layer_r14: + Option, + #[asn(optional_idx = 2)] + pub must_tm10_up_to_one_interfering_layer_r14: + Option, + #[asn(optional_idx = 3)] + pub must_tm89_up_to_three_interfering_layers_r14: + Option, + #[asn(optional_idx = 4)] + pub must_tm10_up_to_three_interfering_layers_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MasterInformationBlock { + pub dl_bandwidth: MasterInformationBlockDl_Bandwidth, + pub phich_config: PHICH_Config, + pub system_frame_number: MasterInformationBlockSystemFrameNumber, + pub scheduling_info_sib1_br_r13: MasterInformationBlockSchedulingInfoSIB1_BR_r13, + pub system_info_unchanged_br_r15: MasterInformationBlockSystemInfoUnchanged_BR_r15, + pub part_earfcn_17: MasterInformationBlockPartEARFCN_17, + pub spare: MasterInformationBlockSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MasterInformationBlock_MBMS_r14 { + pub dl_bandwidth_mbms_r14: MasterInformationBlock_MBMS_r14Dl_Bandwidth_MBMS_r14, + pub system_frame_number_r14: MasterInformationBlock_MBMS_r14SystemFrameNumber_r14, + pub additional_non_mbsfn_subframes_r14: + MasterInformationBlock_MBMS_r14AdditionalNonMBSFNSubframes_r14, + pub semi_static_cfi_mbms_r16: MasterInformationBlock_MBMS_r14SemiStaticCFI_MBMS_r16, + pub spare: MasterInformationBlock_MBMS_r14Spare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MasterInformationBlock_SL { + pub sl_bandwidth_r12: MasterInformationBlock_SLSl_Bandwidth_r12, + pub tdd_config_sl_r12: TDD_ConfigSL_r12, + pub direct_frame_number_r12: MasterInformationBlock_SLDirectFrameNumber_r12, + pub direct_subframe_number_r12: MasterInformationBlock_SLDirectSubframeNumber_r12, + pub in_coverage_r12: MasterInformationBlock_SLInCoverage_r12, + pub reserved_r12: MasterInformationBlock_SLReserved_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MasterInformationBlock_SL_V2X_r14 { + pub sl_bandwidth_r14: MasterInformationBlock_SL_V2X_r14Sl_Bandwidth_r14, + pub tdd_config_sl_r14: TDD_ConfigSL_r12, + pub direct_frame_number_r14: MasterInformationBlock_SL_V2X_r14DirectFrameNumber_r14, + pub direct_subframe_number_r14: MasterInformationBlock_SL_V2X_r14DirectSubframeNumber_r14, + pub in_coverage_r14: MasterInformationBlock_SL_V2X_r14InCoverage_r14, + pub reserved_r14: MasterInformationBlock_SL_V2X_r14Reserved_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct MaxRS_IndexCellQualNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasCSI_RS_Config_r12 { + pub meas_csi_rs_id_r12: MeasCSI_RS_Id_r12, + pub phys_cell_id_r12: MeasCSI_RS_Config_r12PhysCellId_r12, + pub scrambling_identity_r12: MeasCSI_RS_Config_r12ScramblingIdentity_r12, + pub resource_config_r12: MeasCSI_RS_Config_r12ResourceConfig_r12, + pub subframe_offset_r12: MeasCSI_RS_Config_r12SubframeOffset_r12, + pub csi_rs_individual_offset_r12: Q_OffsetRange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "96")] +pub struct MeasCSI_RS_Id_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "96")] +pub struct MeasCSI_RS_ToAddModList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "96")] +pub struct MeasCSI_RS_ToRemoveList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 11)] +pub struct MeasConfig { + #[asn(optional_idx = 0)] + pub meas_object_to_remove_list: Option, + #[asn(optional_idx = 1)] + pub meas_object_to_add_mod_list: Option, + #[asn(optional_idx = 2)] + pub report_config_to_remove_list: Option, + #[asn(optional_idx = 3)] + pub report_config_to_add_mod_list: Option, + #[asn(optional_idx = 4)] + pub meas_id_to_remove_list: Option, + #[asn(optional_idx = 5)] + pub meas_id_to_add_mod_list: Option, + #[asn(optional_idx = 6)] + pub quantity_config: Option, + #[asn(optional_idx = 7)] + pub meas_gap_config: Option, + #[asn(optional_idx = 8)] + pub s_measure: Option, + #[asn(optional_idx = 9)] + pub pre_registration_info_hrpd: Option, + #[asn(optional_idx = 10)] + pub speed_state_pars: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MeasCycleSCell_r10(pub u8); +impl MeasCycleSCell_r10 { + pub const SF160: u8 = 0u8; + pub const SF256: u8 = 1u8; + pub const SF320: u8 = 2u8; + pub const SF512: u8 = 3u8; + pub const SF640: u8 = 4u8; + pub const SF1024: u8 = 5u8; + pub const SF1280: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasDS_Config_r12 { + #[asn(key = 0, extended = false)] + Release(MeasDS_Config_r12_release), + #[asn(key = 1, extended = false)] + Setup(MeasDS_Config_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasGapConfig { + #[asn(key = 0, extended = false)] + Release(MeasGapConfig_release), + #[asn(key = 1, extended = false)] + Setup(MeasGapConfig_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasGapConfigDensePRS_r15 { + #[asn(key = 0, extended = false)] + Release(MeasGapConfigDensePRS_r15_release), + #[asn(key = 1, extended = false)] + Setup(MeasGapConfigDensePRS_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasGapConfigPerCC_List_r14 { + #[asn(key = 0, extended = false)] + Release(MeasGapConfigPerCC_List_r14_release), + #[asn(key = 1, extended = false)] + Setup(MeasGapConfigPerCC_List_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasGapConfigPerCC_r14 { + pub serv_cell_id_r14: ServCellIndex_r13, + pub meas_gap_config_cc_r14: MeasGapConfig, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasGapConfigToAddModList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasGapConfigToRemoveList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasGapInfoNR_r16 { + #[asn(optional_idx = 0)] + pub inter_rat_band_list_nr_en_dc_r16: Option, + #[asn(optional_idx = 1)] + pub inter_rat_band_list_nr_sa_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasGapSharingConfig_r14 { + #[asn(key = 0, extended = false)] + Release(MeasGapSharingConfig_r14_release), + #[asn(key = 1, extended = false)] + Setup(MeasGapSharingConfig_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct MeasId(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "33", ub = "64")] +pub struct MeasId_v1250(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasIdToAddMod { + pub meas_id: MeasId, + pub meas_object_id: MeasObjectId, + pub report_config_id: ReportConfigId, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasIdToAddMod_v1310 { + #[asn(optional_idx = 0)] + pub meas_object_id_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasIdToAddModExt_r12 { + pub meas_id_v1250: MeasId_v1250, + pub meas_object_id_r12: MeasObjectId, + pub report_config_id_r12: ReportConfigId, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToAddModList_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToAddModListExt_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToAddModListExt_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToRemoveList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasIdToRemoveListExt_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MeasIdleCarrierEUTRA_r15 { + pub carrier_freq_r15: ARFCN_ValueEUTRA_r9, + pub allowed_meas_bandwidth_r15: AllowedMeasBandwidth, + #[asn(optional_idx = 0)] + pub validity_area_r15: Option, + #[asn(optional_idx = 1)] + pub meas_cell_list_r15: Option, + pub report_quantities: MeasIdleCarrierEUTRA_r15ReportQuantities, + #[asn(optional_idx = 2)] + pub quality_threshold_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct MeasIdleCarrierNR_r16 { + pub carrier_freq_nr_r16: ARFCN_ValueNR_r15, + pub subcarrier_spacing_ssb_r16: MeasIdleCarrierNR_r16SubcarrierSpacingSSB_r16, + #[asn(optional_idx = 0)] + pub frequency_band_list: Option, + #[asn(optional_idx = 1)] + pub meas_cell_list_nr_r16: Option, + pub report_quantities_nr_r16: MeasIdleCarrierNR_r16ReportQuantitiesNR_r16, + #[asn(optional_idx = 2)] + pub quality_threshold_nr_r16: Option, + #[asn(optional_idx = 3)] + pub ssb_meas_config_r16: Option, + #[asn(optional_idx = 4)] + pub beam_meas_config_idle_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasIdleConfigDedicated_r15 { + #[asn(optional_idx = 0)] + pub meas_idle_carrier_list_eutra_r15: Option, + pub meas_idle_duration_r15: MeasIdleConfigDedicated_r15MeasIdleDuration_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasIdleConfigSIB_NR_r16 { + pub meas_idle_carrier_list_nr_r16: NR_CarrierList_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasIdleConfigSIB_r15 { + pub meas_idle_carrier_list_eutra_r15: EUTRA_CarrierList_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct MeasObjectCDMA2000 { + pub cdma2000_type: CDMA2000_Type, + pub carrier_freq: CarrierFreqCDMA2000, + #[asn(optional_idx = 0)] + pub search_window_size: Option, + #[asn(optional_idx = 1)] + pub offset_freq: Option, + #[asn(optional_idx = 2)] + pub cells_to_remove_list: Option, + #[asn(optional_idx = 3)] + pub cells_to_add_mod_list: Option, + #[asn(optional_idx = 4)] + pub cell_for_which_to_report_cgi: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct MeasObjectEUTRA { + pub carrier_freq: ARFCN_ValueEUTRA, + pub allowed_meas_bandwidth: AllowedMeasBandwidth, + pub presence_antenna_port1: PresenceAntennaPort1, + pub neigh_cell_config: NeighCellConfig, + #[asn(optional_idx = 0)] + pub offset_freq: Option, + #[asn(optional_idx = 1)] + pub cells_to_remove_list: Option, + #[asn(optional_idx = 2)] + pub cells_to_add_mod_list: Option, + #[asn(optional_idx = 3)] + pub excluded_cells_to_remove_list: Option, + #[asn(optional_idx = 4)] + pub excluded_cells_to_add_mod_list: Option, + #[asn(optional_idx = 5)] + pub cell_for_which_to_report_cgi: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasObjectEUTRA_v9e0 { + pub carrier_freq_v9e0: ARFCN_ValueEUTRA_v9e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MeasObjectGERAN { + pub carrier_freqs: CarrierFreqsGERAN, + #[asn(optional_idx = 0)] + pub offset_freq: Option, + #[asn(optional_idx = 1)] + pub ncc_permitted: Option, + #[asn(optional_idx = 2)] + pub cell_for_which_to_report_cgi: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct MeasObjectId(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "64")] +pub struct MeasObjectId_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "33", ub = "64")] +pub struct MeasObjectId_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct MeasObjectNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + pub rs_config_ssb_r15: RS_ConfigSSB_NR_r15, + #[asn(optional_idx = 0)] + pub thresh_rs_index_r15: Option, + #[asn(optional_idx = 1)] + pub max_rs_index_cell_qual_r15: Option, + #[asn(optional_idx = 2)] + pub offset_freq_r15: Option, + #[asn(optional_idx = 3)] + pub excluded_cells_to_remove_list_r15: Option, + #[asn(optional_idx = 4)] + pub excluded_cells_to_add_mod_list_r15: Option, + pub quantity_config_set_r15: MeasObjectNR_r15QuantityConfigSet_r15, + #[asn(optional_idx = 5)] + pub cells_for_which_to_report_sftd_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasObjectToAddMod { + pub meas_object_id: MeasObjectId, + pub meas_object: MeasObjectToAddModMeasObject, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasObjectToAddMod_v9e0 { + #[asn(optional_idx = 0)] + pub meas_object_eutra_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasObjectToAddModExt_r13 { + pub meas_object_id_r13: MeasObjectId_v1310, + pub meas_object_r13: MeasObjectToAddModExt_r13MeasObject_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasObjectToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasObjectToAddModList_v9e0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasObjectToAddModListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasObjectToRemoveList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasObjectToRemoveListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct MeasObjectUTRA { + pub carrier_freq: ARFCN_ValueUTRA, + #[asn(optional_idx = 0)] + pub offset_freq: Option, + #[asn(optional_idx = 1)] + pub cells_to_remove_list: Option, + #[asn(optional_idx = 2)] + pub cells_to_add_mod_list: Option, + #[asn(optional_idx = 3)] + pub cell_for_which_to_report_cgi: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MeasObjectWLAN_r13 { + #[asn(optional_idx = 0)] + pub carrier_freq_r13: Option, + #[asn(optional_idx = 1)] + pub wlan_to_add_mod_list_r13: Option, + #[asn(optional_idx = 2)] + pub wlan_to_remove_list_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasParameters { + pub band_list_eutra: BandListEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasParameters_v1020 { + pub band_combination_list_eutra_r10: BandCombinationListEUTRA_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasParameters_v1130 { + #[asn(optional_idx = 0)] + pub rsrq_meas_wideband_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasParameters_v11a0 { + #[asn(optional_idx = 0)] + pub benefits_from_interruption_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct MeasParameters_v1250 { + #[asn(optional_idx = 0)] + pub timer_t312_r12: Option, + #[asn(optional_idx = 1)] + pub alternative_time_to_trigger_r12: Option, + #[asn(optional_idx = 2)] + pub inc_mon_eutra_r12: Option, + #[asn(optional_idx = 3)] + pub inc_mon_utra_r12: Option, + #[asn(optional_idx = 4)] + pub extended_max_meas_id_r12: Option, + #[asn(optional_idx = 5)] + pub extended_rsrq_lower_range_r12: Option, + #[asn(optional_idx = 6)] + pub rsrq_on_all_symbols_r12: Option, + #[asn(optional_idx = 7)] + pub crs_discovery_signals_meas_r12: Option, + #[asn(optional_idx = 8)] + pub csi_rs_discovery_signals_meas_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct MeasParameters_v1310 { + #[asn(optional_idx = 0)] + pub rs_sinr_meas_r13: Option, + #[asn(optional_idx = 1)] + pub allowed_cell_list_r13: Option, + #[asn(optional_idx = 2)] + pub extended_max_object_id_r13: Option, + #[asn(optional_idx = 3)] + pub ul_pdcp_delay_r13: Option, + #[asn(optional_idx = 4)] + pub extended_freq_priorities_r13: Option, + #[asn(optional_idx = 5)] + pub multi_band_info_report_r13: Option, + #[asn(optional_idx = 6)] + pub rssi_and_channel_occupancy_reporting_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MeasParameters_v1430 { + #[asn(optional_idx = 0)] + pub ce_measurements_r14: Option, + #[asn(optional_idx = 1)] + pub ncsg_r14: Option, + #[asn(optional_idx = 2)] + pub short_measurement_gap_r14: Option, + #[asn(optional_idx = 3)] + pub per_serving_cell_measurement_gap_r14: + Option, + #[asn(optional_idx = 4)] + pub non_uniform_gap_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasParameters_v1520 { + #[asn(optional_idx = 0)] + pub meas_gap_patterns_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct MeasParameters_v1530 { + #[asn(optional_idx = 0)] + pub qoe_meas_report_r15: Option, + #[asn(optional_idx = 1)] + pub qoe_mtsi_meas_report_r15: Option, + #[asn(optional_idx = 2)] + pub ca_idle_mode_measurements_r15: Option, + #[asn(optional_idx = 3)] + pub ca_idle_mode_validity_area_r15: Option, + #[asn(optional_idx = 4)] + pub height_meas_r15: Option, + #[asn(optional_idx = 5)] + pub multiple_cells_meas_extension_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct MeasParameters_v1610 { + #[asn(optional_idx = 0)] + pub band_info_nr_v1610: Option, + #[asn(optional_idx = 1)] + pub alt_freq_priority_r16: Option, + #[asn(optional_idx = 2)] + pub ce_dl_channel_quality_reporting_r16: + Option, + #[asn(optional_idx = 3)] + pub ce_meas_rss_dedicated_r16: Option, + #[asn(optional_idx = 4)] + pub eutra_idle_inactive_measurements_r16: + Option, + #[asn(optional_idx = 5)] + pub nr_idle_inactive_meas_fr1_r16: Option, + #[asn(optional_idx = 6)] + pub nr_idle_inactive_meas_fr2_r16: Option, + #[asn(optional_idx = 7)] + pub idle_inactive_validity_area_list_r16: + Option, + #[asn(optional_idx = 8)] + pub meas_gap_patterns_n_ronly_r16: Option, + #[asn(optional_idx = 9)] + pub meas_gap_patterns_n_ronly_endc_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MeasParameters_v1630 { + #[asn(optional_idx = 0)] + pub nr_idle_inactive_beam_meas_fr1_r16: + Option, + #[asn(optional_idx = 1)] + pub nr_idle_inactive_beam_meas_fr2_r16: + Option, + #[asn(optional_idx = 2)] + pub ce_meas_rss_dedicated_same_r_bs_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasParameters_v16c0 { + #[asn(optional_idx = 0)] + pub nr_cell_individual_offset_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasParameters_v1700 { + #[asn(optional_idx = 0)] + pub shared_spectrum_meas_nr_en_dc_r17: + Option, + #[asn(optional_idx = 1)] + pub shared_spectrum_meas_nr_sa_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasRSS_DedicatedConfig_r16 { + #[asn(optional_idx = 0)] + pub rss_config_carrier_info_r16: Option, + #[asn(optional_idx = 1)] + pub cells_to_add_mod_list_v1610: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasRSSI_ReportConfig_r13 { + #[asn(optional_idx = 0)] + pub channel_occupancy_threshold_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasReportAppLayer_r15 { + pub critical_extensions: MeasReportAppLayer_r15CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MeasReportAppLayer_r15_IEs { + #[asn(optional_idx = 0)] + pub meas_report_app_layer_container_r15: + Option, + #[asn(optional_idx = 1)] + pub service_type_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasReportAppLayer_v1590_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResult2CDMA2000_r9 { + pub carrier_freq_r9: CarrierFreqCDMA2000, + pub meas_result_list_r9: MeasResultsCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResult2EUTRA_r9 { + pub carrier_freq_r9: ARFCN_ValueEUTRA, + pub meas_result_list_r9: MeasResultListEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResult2EUTRA_v1250 { + #[asn(optional_idx = 0)] + pub rsrq_type_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResult2EUTRA_v9e0 { + #[asn(optional_idx = 0)] + pub carrier_freq_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResult2UTRA_r9 { + pub carrier_freq_r9: ARFCN_ValueUTRA, + pub meas_result_list_r9: MeasResultListUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResult3EUTRA_r15 { + pub carrier_freq_r15: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 0)] + pub meas_result_serving_cell_r15: Option, + #[asn(optional_idx = 1)] + pub meas_result_neigh_cell_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultCBR_r14 { + pub pool_identity_r14: SL_V2X_TxPoolReportIdentity_r14, + pub cbr_pssch_r14: SL_CBR_r14, + #[asn(optional_idx = 0)] + pub cbr_pscch_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultCDMA2000 { + pub phys_cell_id: PhysCellIdCDMA2000, + #[asn(optional_idx = 0)] + pub cgi_info: Option, + pub meas_result: MeasResultCDMA2000MeasResult, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultCSI_RS_List_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultCSI_RS_r12 { + pub meas_csi_rs_id_r12: MeasCSI_RS_Id_r12, + pub csi_rsrp_result_r12: CSI_RSRP_Range_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultCellListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct MeasResultCellListSFTD_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResultCellNR_r15 { + pub pci_r15: PhysCellIdNR_r15, + pub meas_result_cell_r15: MeasResultNR_r15, + #[asn(optional_idx = 0)] + pub meas_result_rs_index_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultCellSFTD_r15 { + pub phys_cell_id_r15: PhysCellIdNR_r15, + pub sfn_offset_result_r15: MeasResultCellSFTD_r15Sfn_OffsetResult_r15, + pub frame_boundary_offset_result_r15: MeasResultCellSFTD_r15FrameBoundaryOffsetResult_r15, + #[asn(optional_idx = 0)] + pub rsrp_result_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultEUTRA { + pub phys_cell_id: PhysCellId, + #[asn(optional_idx = 0)] + pub cgi_info: Option, + pub meas_result: MeasResultEUTRAMeasResult, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultForECID_r9 { + pub ue_rx_tx_time_diff_result_r9: MeasResultForECID_r9Ue_RxTxTimeDiffResult_r9, + pub current_sfn_r9: MeasResultForECID_r9CurrentSFN_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultForRSSI_NR_r16 { + pub rssi_result_nr_r16: RSSI_Range_r13, + pub channel_occupancy_nr_r16: MeasResultForRSSI_NR_r16ChannelOccupancyNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultForRSSI_r13 { + pub rssi_result_r13: RSSI_Range_r13, + pub channel_occupancy_r13: MeasResultForRSSI_r13ChannelOccupancy_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResultFreqFailNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + #[asn(optional_idx = 0)] + pub meas_result_cell_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct MeasResultFreqListFailNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct MeasResultFreqListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultGERAN { + pub carrier_freq: CarrierFreqGERAN, + pub phys_cell_id: PhysCellIdGERAN, + #[asn(optional_idx = 0)] + pub cgi_info: Option, + pub meas_result: MeasResultGERANMeasResult, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResultIdle_r15 { + pub meas_result_serving_cell_r15: MeasResultIdle_r15MeasResultServingCell_r15, + #[asn(optional_idx = 0)] + pub meas_result_neigh_cells_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultIdleEUTRA_r15 { + pub carrier_freq_r15: ARFCN_ValueEUTRA_r9, + pub phys_cell_id_r15: PhysCellId, + pub meas_result_r15: MeasResultIdleEUTRA_r15MeasResult_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultIdleListEUTRA_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultIdleNR_r16 { + pub carrier_freq_nr_r16: ARFCN_ValueNR_r15, + pub meas_results_per_cell_list_idle_nr_r16: + MeasResultIdleNR_r16MeasResultsPerCellListIdleNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList2CDMA2000_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList2EUTRA_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList2EUTRA_v1250(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList2EUTRA_v9e0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct MeasResultList2GERAN_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList2UTRA_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultList3EUTRA_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "72")] +pub struct MeasResultListCBR_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct MeasResultListExtIdle_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListGERAN(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct MeasResultListIdle_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListIdleNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListMBSFN_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultListRSSI_SCG_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultListWLAN_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultListWLAN_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultMBSFN_r12 { + pub mbsfn_area_r12: MeasResultMBSFN_r12Mbsfn_Area_r12, + pub rsrp_result_mbsfn_r12: RSRP_Range, + pub rsrq_result_mbsfn_r12: MBSFN_RSRQ_Range_r12, + #[asn(optional_idx = 0)] + pub signalling_bler_result_r12: Option, + #[asn(optional_idx = 1)] + pub data_bler_mch_result_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MeasResultNR_r15 { + #[asn(optional_idx = 0)] + pub rsrp_result_r15: Option, + #[asn(optional_idx = 1)] + pub rsrq_result_r15: Option, + #[asn(optional_idx = 2)] + pub rs_sinr_result_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultRSSI_SCG_r13 { + pub serv_cell_id_r13: ServCellIndex_r13, + pub meas_result_for_rssi_r13: MeasResultForRSSI_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultSCG_FailureMRDC_r15 { + pub meas_result_freq_list_eutra_r15: MeasResultList3EUTRA_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResultSSB_Index_r15 { + pub ssb_index_r15: RS_IndexNR_r15, + #[asn(optional_idx = 0)] + pub meas_result_ssb_index_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultSSB_IndexList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultSSTD_r13 { + pub sfn_offset_result_r13: MeasResultSSTD_r13Sfn_OffsetResult_r13, + pub frame_boundary_offset_result_r13: MeasResultSSTD_r13FrameBoundaryOffsetResult_r13, + pub subframe_boundary_offset_result_r13: MeasResultSSTD_r13SubframeBoundaryOffsetResult_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultSensing_r15 { + pub sl_subframe_ref_r15: MeasResultSensing_r15Sl_SubframeRef_r15, + pub sensing_result_r15: MeasResultSensing_r15SensingResult_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultServCellListSCG_Ext_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct MeasResultServCellListSCG_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultServCellSCG_r12 { + pub serv_cell_id_r12: ServCellIndex_r10, + pub meas_result_s_cell_r12: MeasResultServCellSCG_r12MeasResultSCell_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultServFreq_r10 { + pub serv_freq_id_r10: ServCellIndex_r10, + #[asn(optional_idx = 0)] + pub meas_result_s_cell_r10: Option, + #[asn(optional_idx = 1)] + pub meas_result_best_neigh_cell_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultServFreq_r13 { + pub serv_freq_id_r13: ServCellIndex_r13, + #[asn(optional_idx = 0)] + pub meas_result_s_cell_r13: Option, + #[asn(optional_idx = 1)] + pub meas_result_best_neigh_cell_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct MeasResultServFreqList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultServFreqListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasResultServFreqListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultServFreqNR_r15 { + pub carrier_freq_r15: ARFCN_ValueNR_r15, + #[asn(optional_idx = 0)] + pub meas_result_s_cell_r15: Option, + #[asn(optional_idx = 1)] + pub meas_result_best_neigh_cell_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultUTRA { + pub phys_cell_id: MeasResultUTRAPhysCellId, + #[asn(optional_idx = 0)] + pub cgi_info: Option, + pub meas_result: MeasResultUTRAMeasResult, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 8)] +pub struct MeasResultWLAN_r13 { + pub wlan_identifiers_r13: WLAN_Identifiers_r12, + #[asn(optional_idx = 0)] + pub carrier_info_wlan_r13: Option, + #[asn(optional_idx = 1)] + pub band_wlan_r13: Option, + pub rssi_wlan_r13: WLAN_RSSI_Range_r13, + #[asn(optional_idx = 2)] + pub available_admission_capacity_wlan_r13: + Option, + #[asn(optional_idx = 3)] + pub backhaul_dl_bandwidth_wlan_r13: Option, + #[asn(optional_idx = 4)] + pub backhaul_ul_bandwidth_wlan_r13: Option, + #[asn(optional_idx = 5)] + pub channel_utilization_wlan_r13: Option, + #[asn(optional_idx = 6)] + pub station_count_wlan_r13: Option, + #[asn(optional_idx = 7)] + pub connected_wlan_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResults { + pub meas_id: MeasId, + pub meas_result_p_cell: MeasResultsMeasResultPCell, + #[asn(optional_idx = 0)] + pub meas_result_neigh_cells: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultsCDMA2000 { + pub pre_registration_status_hrpd: MeasResultsCDMA2000PreRegistrationStatusHRPD, + pub meas_result_list_cdma2000: MeasResultListCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultsPerCellIdleNR_r16 { + pub phys_cell_id_nr_r16: PhysCellIdNR_r15, + pub meas_idle_result_nr_r16: MeasResultsPerCellIdleNR_r16MeasIdleResultNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MeasScaleFactor_r12(pub u8); +impl MeasScaleFactor_r12 { + pub const SF_EUTRA_CF1: u8 = 0u8; + pub const SF_EUTRA_CF2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasSensing_Config_r15 { + pub sensing_subchannel_number_r15: MeasSensing_Config_r15SensingSubchannelNumber_r15, + pub sensing_periodicity_r15: MeasSensing_Config_r15SensingPeriodicity_r15, + pub sensing_reselection_counter_r15: MeasSensing_Config_r15SensingReselectionCounter_r15, + pub sensing_priority_r15: MeasSensing_Config_r15SensingPriority_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MeasSubframeCellList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum MeasSubframePattern_r10 { + #[asn(key = 0, extended = false)] + SubframePatternFDD_r10(MeasSubframePattern_r10_subframePatternFDD_r10), + #[asn(key = 1, extended = false)] + SubframePatternTDD_r10(MeasSubframePattern_r10_subframePatternTDD_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasSubframePatternConfigNeigh_r10 { + #[asn(key = 0, extended = false)] + Release(MeasSubframePatternConfigNeigh_r10_release), + #[asn(key = 1, extended = false)] + Setup(MeasSubframePatternConfigNeigh_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasSubframePatternPCell_r10 { + #[asn(key = 0, extended = false)] + Release(MeasSubframePatternPCell_r10_release), + #[asn(key = 1, extended = false)] + Setup(MeasSubframePattern_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasurementReport { + pub critical_extensions: MeasurementReportCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasurementReport_r8_IEs { + pub meas_results: MeasResults, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasurementReport_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct MobilityControlInfo { + pub target_phys_cell_id: PhysCellId, + #[asn(optional_idx = 0)] + pub carrier_freq: Option, + #[asn(optional_idx = 1)] + pub carrier_bandwidth: Option, + #[asn(optional_idx = 2)] + pub additional_spectrum_emission: Option, + pub t304: MobilityControlInfoT304, + pub new_ue_identity: C_RNTI, + pub radio_resource_config_common: RadioResourceConfigCommon, + #[asn(optional_idx = 3)] + pub rach_config_dedicated: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MobilityControlInfo_v10l0 { + #[asn(optional_idx = 0)] + pub additional_spectrum_emission_v10l0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct MobilityControlInfoSCG_r12 { + pub t307_r12: MobilityControlInfoSCG_r12T307_r12, + #[asn(optional_idx = 0)] + pub ue_identity_scg_r12: Option, + #[asn(optional_idx = 1)] + pub rach_config_dedicated_r12: Option, + #[asn(optional_idx = 2)] + pub ciphering_algorithm_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MobilityControlInfoV2X_r14 { + #[asn(optional_idx = 0)] + pub v2x_comm_tx_pool_exceptional_r14: Option, + #[asn(optional_idx = 1)] + pub v2x_comm_rx_pool_r14: Option, + #[asn(optional_idx = 2)] + pub v2x_comm_sync_config_r14: Option, + #[asn(optional_idx = 3)] + pub cbr_mobility_tx_config_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MobilityFromEUTRACommand { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: MobilityFromEUTRACommandCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MobilityFromEUTRACommand_r8_IEs { + pub cs_fallback_indicator: MobilityFromEUTRACommand_r8_IEsCs_FallbackIndicator, + pub purpose: MobilityFromEUTRACommand_r8_IEsPurpose, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MobilityFromEUTRACommand_r9_IEs { + pub cs_fallback_indicator: MobilityFromEUTRACommand_r9_IEsCs_FallbackIndicator, + pub purpose: MobilityFromEUTRACommand_r9_IEsPurpose, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityFromEUTRACommand_v1530_IEs { + #[asn(optional_idx = 0)] + pub smtc_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityFromEUTRACommand_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityFromEUTRACommand_v8d0_IEs { + #[asn(optional_idx = 0)] + pub band_indicator: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityFromEUTRACommand_v930_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityFromEUTRACommand_v960_IEs { + #[asn(optional_idx = 0)] + pub band_indicator: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +pub type MobilityHistoryReport_r12 = VisitedCellInfoList_r12; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MobilityParameters_r14 { + #[asn(optional_idx = 0)] + pub make_before_break_r14: Option, + #[asn(optional_idx = 1)] + pub rach_less_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct MobilityParameters_v1610 { + #[asn(optional_idx = 0)] + pub cho_r16: Option, + #[asn(optional_idx = 1)] + pub cho_fdd_tdd_r16: Option, + #[asn(optional_idx = 2)] + pub cho_failure_r16: Option, + #[asn(optional_idx = 3)] + pub cho_two_trigger_events_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MobilityParametersCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MobilityStateParameters { + pub t_evaluation: MobilityStateParametersT_Evaluation, + pub t_hyst_normal: MobilityStateParametersT_HystNormal, + pub n_cell_change_medium: MobilityStateParametersN_CellChangeMedium, + pub n_cell_change_high: MobilityStateParametersN_CellChangeHigh, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MultiBandInfo_v9e0 { + #[asn(optional_idx = 0)] + pub freq_band_indicator_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MultiBandInfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MultiBandInfoList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MultiBandInfoList_v10j0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MultiBandInfoList_v10l0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MultiBandInfoList_v9e0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct MultiBandNsPmaxListNR_1_v1550(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct MultiBandNsPmaxListNR_1_v1760(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MultiBandNsPmaxListNR_v1550(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MultiBandNsPmaxListNR_v1760(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct MultiFrequencyBandListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct N1PUCCH_AN_CS_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct N1PUCCH_AN_InfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct N1PUCCH_AN_PersistentList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct N1SPUCCH_AN_PersistentList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct N4SPUCCH_Resource_r15 { + pub n4starting_prb_r15: N4SPUCCH_Resource_r15N4startingPRB_r15, + pub n4number_of_prb_r15: N4SPUCCH_Resource_r15N4numberOfPRB_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum NAICS_AssistanceInfo_r12 { + #[asn(key = 0, extended = false)] + Release(NAICS_AssistanceInfo_r12_release), + #[asn(key = 1, extended = false)] + Setup(NAICS_AssistanceInfo_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct NAICS_Capability_Entry_r12 { + pub number_of_naics_capable_cc_r12: NAICS_Capability_Entry_r12NumberOfNAICS_CapableCC_r12, + pub number_of_aggregated_prb_r12: NAICS_Capability_Entry_r12NumberOfAggregatedPRB_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NAICS_Capability_List_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "48", sz_ub = "48")] +pub struct NG_5G_S_TMSI_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NR_CarrierList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NR_FreqNeighHSDN_CellList_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NS_PmaxList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NS_PmaxList_v10l0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NS_PmaxListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NS_PmaxListNR_v1760(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NS_PmaxValue_r10 { + #[asn(optional_idx = 0)] + pub additional_pmax_r10: Option, + pub additional_spectrum_emission: AdditionalSpectrumEmission, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NS_PmaxValue_v10l0 { + #[asn(optional_idx = 0)] + pub additional_spectrum_emission_v10l0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NS_PmaxValueNR_r15 { + #[asn(optional_idx = 0)] + pub additional_pmax_nr_r15: Option, + pub additional_spectrum_emission_nr_r15: AdditionalSpectrumEmissionNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NS_PmaxValueNR_v1760 { + #[asn(optional_idx = 0)] + pub additional_spectrum_emission_nr_v1760: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct NTN_Parameters_r17 { + #[asn(optional_idx = 0)] + pub ntn_connectivity_epc_r17: Option, + #[asn(optional_idx = 1)] + pub ntn_ta_report_r17: Option, + #[asn(optional_idx = 2)] + pub ntn_pur_timer_delay_r17: Option, + #[asn(optional_idx = 3)] + pub ntn_offset_timing_enh_r17: Option, + #[asn(optional_idx = 4)] + pub ntn_scenario_support_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NTN_Parameters_v1720 { + #[asn(optional_idx = 0)] + pub ntn_segmented_precompensation_gaps_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct NZP_FrequencyDensity_r14(pub u8); +impl NZP_FrequencyDensity_r14 { + pub const D1: u8 = 0u8; + pub const D2: u8 = 1u8; + pub const D3: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct NZP_ResourceConfig_r13 { + pub resource_config_r13: ResourceConfig_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2")] +pub struct NZP_TransmissionComb_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellCDMA2000 { + pub band_class: BandclassCDMA2000, + pub neigh_cells_per_freq_list: NeighCellsPerBandclassListCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellCDMA2000_r11 { + pub band_class: BandclassCDMA2000, + pub neigh_freq_info_list_r11: NeighCellCDMA2000_r11NeighFreqInfoList_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellCDMA2000_v920 { + pub neigh_cells_per_freq_list_v920: NeighCellsPerBandclassListCDMA2000_v920, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct NeighCellConfig(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct NeighCellListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct NeighCellListCDMA2000_v920(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct NeighCellSI_AcquisitionParameters_r9 { + #[asn(optional_idx = 0)] + pub intra_freq_si_acquisition_for_ho_r9: + Option, + #[asn(optional_idx = 1)] + pub inter_freq_si_acquisition_for_ho_r9: + Option, + #[asn(optional_idx = 2)] + pub utran_si_acquisition_for_ho_r9: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct NeighCellSI_AcquisitionParameters_v1530 { + #[asn(optional_idx = 0)] + pub report_cgi_nr_en_dc_r15: + Option, + #[asn(optional_idx = 1)] + pub report_cgi_nr_no_en_dc_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct NeighCellSI_AcquisitionParameters_v1550 { + #[asn(optional_idx = 0)] + pub eutra_cgi_reporting_endc_r15: + Option, + #[asn(optional_idx = 1)] + pub utra_geran_cgi_reporting_endc_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NeighCellSI_AcquisitionParameters_v15a0 { + #[asn(optional_idx = 0)] + pub eutra_cgi_reporting_nedc_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct NeighCellSI_AcquisitionParameters_v1610 { + #[asn(optional_idx = 0)] + pub eutra_si_acquisition_for_ho_endc_r16: + Option, + #[asn(optional_idx = 1)] + pub nr_autonomous_gaps_endc_fr1_r16: + Option, + #[asn(optional_idx = 2)] + pub nr_autonomous_gaps_endc_fr2_r16: + Option, + #[asn(optional_idx = 3)] + pub nr_autonomous_gaps_fr1_r16: + Option, + #[asn(optional_idx = 4)] + pub nr_autonomous_gaps_fr2_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct NeighCellSI_AcquisitionParameters_v1710 { + #[asn(optional_idx = 0)] + pub gnb_id_length_reporting_nr_en_dc_r17: + Option, + #[asn(optional_idx = 1)] + pub gnb_id_length_reporting_nr_no_en_dc_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum NeighCellsCRS_Info_r11 { + #[asn(key = 0, extended = false)] + Release(NeighCellsCRS_Info_r11_release), + #[asn(key = 1, extended = false)] + Setup(CRS_AssistanceInfoList_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum NeighCellsCRS_Info_r13 { + #[asn(key = 0, extended = false)] + Release(NeighCellsCRS_Info_r13_release), + #[asn(key = 1, extended = false)] + Setup(CRS_AssistanceInfoList_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum NeighCellsCRS_Info_r15 { + #[asn(key = 0, extended = false)] + Release(NeighCellsCRS_Info_r15_release), + #[asn(key = 1, extended = false)] + Setup(CRS_AssistanceInfoList_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct NeighCellsInfo_r12 { + pub phys_cell_id_r12: PhysCellId, + pub p_b_r12: NeighCellsInfo_r12P_b_r12, + pub crs_ports_count_r12: NeighCellsInfo_r12Crs_PortsCount_r12, + #[asn(optional_idx = 0)] + pub mbsfn_subframe_config_r12: Option, + pub p_a_list_r12: NeighCellsInfo_r12P_aList_r12, + pub transmission_mode_list_r12: NeighCellsInfo_r12TransmissionModeList_r12, + pub res_alloc_granularity_r12: NeighCellsInfo_r12ResAllocGranularity_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellsPerBandclassCDMA2000 { + pub arfcn: ARFCN_ValueCDMA2000, + pub phys_cell_id_list: PhysCellIdListCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellsPerBandclassCDMA2000_r11 { + pub arfcn: ARFCN_ValueCDMA2000, + pub phys_cell_id_list_r11: NeighCellsPerBandclassCDMA2000_r11PhysCellIdList_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NeighCellsPerBandclassCDMA2000_v920 { + pub phys_cell_id_list_v920: PhysCellIdListCDMA2000_v920, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct NeighCellsPerBandclassListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct NeighCellsPerBandclassListCDMA2000_v920(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NeighCellsToAddModList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct NeighCellsToReleaseList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct NextHopChainingCount(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct NonContiguousUL_RA_WithinCC_List_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct NonContiguousUL_RA_WithinCC_r10 { + #[asn(optional_idx = 0)] + pub non_contiguous_ul_ra_within_cc_info_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct NonMBSFN_SubframeConfig_r14 { + pub radio_frame_allocation_period_r14: + NonMBSFN_SubframeConfig_r14RadioFrameAllocationPeriod_r14, + pub radio_frame_allocation_offset_r14: + NonMBSFN_SubframeConfig_r14RadioFrameAllocationOffset_r14, + pub subframe_allocation_r14: NonMBSFN_SubframeConfig_r14SubframeAllocation_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "200")] +pub struct NumberOfPreamblesSent_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct OTDOA_PositioningCapabilities_r10 { + pub otdoa_ue_assisted_r10: OTDOA_PositioningCapabilities_r10Otdoa_UE_Assisted_r10, + #[asn(optional_idx = 0)] + pub inter_freq_rstd_measurement_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ObtainLocationConfig_r11 { + #[asn(optional_idx = 0)] + pub obtain_location_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct OffsetThresholdTA_r17(pub u8); +impl OffsetThresholdTA_r17 { + pub const MS0DOT5: u8 = 0u8; + pub const MS1: u8 = 1u8; + pub const MS2: u8 = 2u8; + pub const MS3: u8 = 3u8; + pub const MS4: u8 = 4u8; + pub const MS5: u8 = 5u8; + pub const MS6: u8 = 6u8; + pub const MS7: u8 = 7u8; + pub const MS8: u8 = 8u8; + pub const MS9: u8 = 9u8; + pub const MS10: u8 = 10u8; + pub const MS11: u8 = 11u8; + pub const MS12: u8 = 12u8; + pub const MS13: u8 = 13u8; + pub const MS14: u8 = 14u8; + pub const MS15: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct Other_Parameters_r11 { + #[asn(optional_idx = 0)] + pub in_device_coex_ind_r11: Option, + #[asn(optional_idx = 1)] + pub power_pref_ind_r11: Option, + #[asn(optional_idx = 2)] + pub ue_rx_tx_time_diff_measurements_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v11d0 { + #[asn(optional_idx = 0)] + pub in_device_coex_ind_ul_ca_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v1360 { + #[asn(optional_idx = 0)] + pub in_device_coex_ind_hardware_sharing_ind_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Other_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub bw_pref_ind_r14: Option, + #[asn(optional_idx = 1)] + pub rlm_report_support_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v1460 { + #[asn(optional_idx = 0)] + pub non_csg_si_reporting_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct Other_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub assist_info_bit_for_lc_r15: Option, + #[asn(optional_idx = 1)] + pub time_reference_provision_r15: Option, + #[asn(optional_idx = 2)] + pub flight_path_plan_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v1540 { + #[asn(optional_idx = 0)] + pub in_device_coex_ind_endc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct Other_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub resume_with_stored_mcg_s_cells_r16: + Option, + #[asn(optional_idx = 1)] + pub resume_with_mcg_s_cell_config_r16: + Option, + #[asn(optional_idx = 2)] + pub resume_with_stored_scg_r16: Option, + #[asn(optional_idx = 3)] + pub resume_with_scg_config_r16: Option, + #[asn(optional_idx = 4)] + pub mcg_rlf_recovery_via_scg_r16: Option, + #[asn(optional_idx = 5)] + pub overheating_ind_for_scg_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v1650 { + #[asn(optional_idx = 0)] + pub mps_priority_indication_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct Other_Parameters_v1690 { + #[asn(optional_idx = 0)] + pub ul_rrc_segmentation_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct OtherConfig_r9 { + #[asn(optional_idx = 0)] + pub report_proximity_config_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct OtherParameters_v1450 { + #[asn(optional_idx = 0)] + pub overheating_ind_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct OverheatingAssistance_r14 { + #[asn(optional_idx = 0)] + pub reduced_ue_category: Option, + #[asn(optional_idx = 1)] + pub reduced_max_c_cs: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct OverheatingAssistance_v1610 { + pub overheating_assistance_for_scg_r16: + OverheatingAssistance_v1610OverheatingAssistanceForSCG_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct OverheatingAssistance_v1710 { + pub overheating_assistance_for_scg_fr2_2_r17: + OverheatingAssistance_v1710OverheatingAssistanceForSCG_FR2_2_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct P_C_AndCBSR_Pair_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct P_C_AndCBSR_Pair_r13a(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct P_C_AndCBSR_Pair_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct P_C_AndCBSR_r11 { + pub p_c_r11: P_C_AndCBSR_r11P_C_r11, + pub codebook_subset_restriction_r11: P_C_AndCBSR_r11CodebookSubsetRestriction_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct P_C_AndCBSR_r13 { + pub p_c_r13: P_C_AndCBSR_r13P_C_r13, + pub cbsr_selection_r13: P_C_AndCBSR_r13Cbsr_Selection_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct P_C_AndCBSR_r15 { + pub p_c_r15: P_C_AndCBSR_r15P_C_r15, + pub codebook_subset_restriction4_r15: P_C_AndCBSR_r15CodebookSubsetRestriction4_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "33")] +pub struct P_Max(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "33")] +pub struct P_MaxNR_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct P_a(pub u8); +impl P_a { + pub const D_B_6: u8 = 0u8; + pub const D_B_4DOT77: u8 = 1u8; + pub const D_B_3: u8 = 2u8; + pub const D_B_1DOT77: u8 = 3u8; + pub const D_B0: u8 = 4u8; + pub const D_B1: u8 = 5u8; + pub const D_B2: u8 = 6u8; + pub const D_B3: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "31")] +pub struct P0_SL_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PCCH_Config { + pub default_paging_cycle: PCCH_ConfigDefaultPagingCycle, + pub nb: PCCH_ConfigNB, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PCCH_Config_v1310 { + pub paging_narrow_bands_r13: PCCH_Config_v1310Paging_narrowBands_r13, + pub mpdcch_num_repetition_paging_r13: PCCH_Config_v1310Mpdcch_NumRepetition_Paging_r13, + #[asn(optional_idx = 0)] + pub nb_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PCCH_Config_v1700 { + pub ran_paging_in_idle_po_r17: PCCH_Config_v1700RanPagingInIdlePO_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PCCH_Message { + pub message: PCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(PCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(PCCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PCI_ARFCN_r13 { + pub phys_cell_id_r13: PhysCellId, + #[asn(optional_idx = 0)] + pub carrier_freq_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PDCCH_CandidateReductionValue_r13(pub u8); +impl PDCCH_CandidateReductionValue_r13 { + pub const N0: u8 = 0u8; + pub const N33: u8 = 1u8; + pub const N66: u8 = 2u8; + pub const N100: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PDCCH_CandidateReductionValue_r14(pub u8); +impl PDCCH_CandidateReductionValue_r14 { + pub const N0: u8 = 0u8; + pub const N50: u8 = 1u8; + pub const N100: u8 = 2u8; + pub const N150: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDCCH_CandidateReductions_r13 { + #[asn(key = 0, extended = false)] + Release(PDCCH_CandidateReductions_r13_release), + #[asn(key = 1, extended = false)] + Setup(PDCCH_CandidateReductions_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDCCH_CandidateReductionsLAA_UL_r14 { + #[asn(key = 0, extended = false)] + Release(PDCCH_CandidateReductionsLAA_UL_r14_release), + #[asn(key = 1, extended = false)] + Setup(PDCCH_CandidateReductionsLAA_UL_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 8)] +pub struct PDCCH_ConfigLAA_r14 { + #[asn(optional_idx = 0)] + pub max_number_of_sched_subframes_format0_b_r14: + Option, + #[asn(optional_idx = 1)] + pub max_number_of_sched_subframes_format4_b_r14: + Option, + #[asn(optional_idx = 2)] + pub skip_monitoring_dci_format0_a_r14: + Option, + #[asn(optional_idx = 3)] + pub skip_monitoring_dci_format4_a_r14: + Option, + #[asn(optional_idx = 4)] + pub pdcch_candidate_reductions_format0_a_r14: Option, + #[asn(optional_idx = 5)] + pub pdcch_candidate_reductions_format4_a_r14: Option, + #[asn(optional_idx = 6)] + pub pdcch_candidate_reductions_format0_b_r14: Option, + #[asn(optional_idx = 7)] + pub pdcch_candidate_reductions_format4_b_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDCCH_ConfigSCell_r13 { + #[asn(optional_idx = 0)] + pub skip_monitoring_dci_format0_1a_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct PDCP_Config { + #[asn(optional_idx = 0)] + pub discard_timer: Option, + #[asn(optional_idx = 1)] + pub rlc_am: Option, + #[asn(optional_idx = 2)] + pub rlc_um: Option, + pub header_compression: PDCP_ConfigHeaderCompression, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct PDCP_Parameters { + pub supported_rohc_profiles: ROHC_ProfileSupportList_r15, + #[asn(optional_idx = 0)] + pub max_number_rohc_context_sessions: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PDCP_Parameters_v1130 { + #[asn(optional_idx = 0)] + pub pdcp_sn_extension_r11: Option, + #[asn(optional_idx = 1)] + pub support_rohc_context_continue_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDCP_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub pdcp_sn_extension_18bits_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDCP_Parameters_v1430 { + pub supported_uplink_only_rohc_profiles_r14: + PDCP_Parameters_v1430SupportedUplinkOnlyROHC_Profiles_r14, + #[asn(optional_idx = 0)] + pub max_number_rohc_context_sessions_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PDCP_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub supported_udc_r15: Option, + #[asn(optional_idx = 1)] + pub pdcp_duplication_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct PDCP_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub pdcp_version_change_without_ho_r16: + Option, + #[asn(optional_idx = 1)] + pub ehc_r16: Option, + #[asn(optional_idx = 2)] + pub continue_ehc_context_r16: Option, + #[asn(optional_idx = 3)] + pub max_number_ehc_contexts_r16: Option, + #[asn(optional_idx = 4)] + pub joint_ehc_rohc_config_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct PDCP_ParametersNR_r15 { + pub rohc_profiles_r15: ROHC_ProfileSupportList_r15, + #[asn(optional_idx = 0)] + pub rohc_context_max_sessions_r15: Option, + pub rohc_profiles_ul_only_r15: PDCP_ParametersNR_r15Rohc_ProfilesUL_Only_r15, + #[asn(optional_idx = 1)] + pub rohc_context_continue_r15: Option, + #[asn(optional_idx = 2)] + pub out_of_order_delivery_r15: Option, + #[asn(optional_idx = 3)] + pub sn_size_lo_r15: Option, + #[asn(optional_idx = 4)] + pub ims_voice_over_nr_pdcp_mcg_bearer_r15: + Option, + #[asn(optional_idx = 5)] + pub ims_voice_over_nr_pdcp_scg_bearer_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDCP_ParametersNR_v1560 { + #[asn(optional_idx = 0)] + pub ims_vo_nr_pdcp_scg_ngendc_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDSCH_ConfigCommon { + pub reference_signal_power: PDSCH_ConfigCommonReferenceSignalPower, + pub p_b: PDSCH_ConfigCommonP_b, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PDSCH_ConfigCommon_v1310 { + #[asn(optional_idx = 0)] + pub pdsch_max_num_repetition_c_emode_a_r13: + Option, + #[asn(optional_idx = 1)] + pub pdsch_max_num_repetition_c_emode_b_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDSCH_ConfigDedicated { + pub p_a: PDSCH_ConfigDedicatedP_a, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct PDSCH_ConfigDedicated_v1130 { + #[asn(optional_idx = 0)] + pub dmrs_config_pdsch_r11: Option, + #[asn(optional_idx = 1)] + pub qcl_operation: Option, + #[asn(optional_idx = 2)] + pub re_mapping_qcl_config_to_release_list_r11: Option, + #[asn(optional_idx = 3)] + pub re_mapping_qcl_config_to_add_mod_list_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDSCH_ConfigDedicated_v1280 { + #[asn(optional_idx = 0)] + pub tbs_index_alt_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDSCH_ConfigDedicated_v1310 { + #[asn(optional_idx = 0)] + pub dmrs_config_pdsch_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct PDSCH_ConfigDedicated_v1430 { + #[asn(optional_idx = 0)] + pub ce_pdsch_max_bandwidth_r14: Option, + #[asn(optional_idx = 1)] + pub ce_pdsch_ten_processes_r14: Option, + #[asn(optional_idx = 2)] + pub ce_harq_ack_bundling_r14: Option, + #[asn(optional_idx = 3)] + pub ce_scheduling_enhancement_r14: + Option, + #[asn(optional_idx = 4)] + pub tbs_index_alt2_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct PDSCH_ConfigDedicated_v1530 { + #[asn(optional_idx = 0)] + pub qcl_operation_v1530: Option, + #[asn(optional_idx = 1)] + pub tbs_index_alt3_r15: Option, + #[asn(optional_idx = 2)] + pub ce_cqi_alternative_table_config_r15: + Option, + #[asn(optional_idx = 3)] + pub ce_pdsch_64qam_config_r15: Option, + #[asn(optional_idx = 4)] + pub ce_pdsch_flexible_start_prb_alloc_config_r15: + Option, + #[asn(optional_idx = 5)] + pub alt_mcs_table_scaling_config_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDSCH_ConfigDedicated_v1610 { + pub ce_pdsch_multi_tb_config_r16: PDSCH_ConfigDedicated_v1610Ce_PDSCH_MultiTB_Config_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PDSCH_ConfigDedicated_v1700 { + #[asn(optional_idx = 0)] + pub ce_pdsch_14harq_config_r17: Option, + #[asn(optional_idx = 1)] + pub ce_pdsch_max_tbs_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDSCH_ConfigDedicatedSCell_v1430 { + #[asn(optional_idx = 0)] + pub tbs_index_alt2_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct PDSCH_RE_MappingQCL_Config_r11 { + pub pdsch_re_mapping_qcl_config_id_r11: PDSCH_RE_MappingQCL_ConfigId_r11, + #[asn(optional_idx = 0)] + pub optional_set_of_fields_r11: Option, + pub csi_rs_config_zp_id_r11: CSI_RS_ConfigZPId_r11, + #[asn(optional_idx = 1)] + pub qcl_csi_rs_config_nzp_id_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct PDSCH_RE_MappingQCL_ConfigId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PHICH_Config { + pub phich_duration: PHICH_ConfigPhich_Duration, + pub phich_resource: PHICH_ConfigPhich_Resource, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_Identity { + #[asn(optional_idx = 0)] + pub mcc: Option, + pub mnc: MNC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PLMN_IdentityInfo { + pub plmn_identity: PLMN_Identity, + pub cell_reserved_for_operator_use: PLMN_IdentityInfoCellReservedForOperatorUse, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PLMN_IdentityInfo_r15 { + pub plmn_identity_5gc_r15: PLMN_IdentityInfo_r15Plmn_Identity_5GC_r15, + pub cell_reserved_for_operator_use_r15: PLMN_IdentityInfo_r15CellReservedForOperatorUse_r15, + pub cell_reserved_for_operator_use_crs_r15: + PLMN_IdentityInfo_r15CellReservedForOperatorUse_CRS_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PLMN_IdentityInfo_v1530 { + pub cell_reserved_for_operator_use_crs_r15: + PLMN_IdentityInfo_v1530CellReservedForOperatorUse_CRS_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PLMN_IdentityInfo_v1610 { + #[asn(optional_idx = 0)] + pub cp_c_io_t_5gs_optimisation_r16: Option, + #[asn(optional_idx = 1)] + pub up_c_io_t_5gs_optimisation_r16: Option, + #[asn(optional_idx = 2)] + pub iab_support_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_IdentityInfo_v1700 { + #[asn(optional_idx = 0)] + pub tracking_area_list_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PLMN_IdentityInfo2_r12 { + #[asn(key = 0, extended = false)] + Plmn_Index_r12(PLMN_IdentityInfo2_r12_plmn_Index_r12), + #[asn(key = 1, extended = false)] + PlmnIdentity_r12(PLMN_Identity), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "12")] +pub struct PLMN_IdentityInfoListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "12")] +pub struct PLMN_IdentityInfoListNR_v1710(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PLMN_IdentityInfoNR_r15 { + pub plmn_identity_list_r15: PLMN_IdentityListNR_r15, + #[asn(optional_idx = 0)] + pub tracking_area_code_r15: Option, + #[asn(optional_idx = 1)] + pub ran_area_code_r15: Option, + pub cell_identity_r15: CellIdentityNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_IdentityInfoNR_v1710 { + #[asn(optional_idx = 0)] + pub gnb_id_length_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList_MBMS_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList_v1700(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct PLMN_IdentityList2(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PLMN_IdentityList3_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_IdentityList4_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "12")] +pub struct PLMN_IdentityListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_Info_r15 { + #[asn(optional_idx = 0)] + pub upper_layer_indication_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_Info_r16 { + #[asn(optional_idx = 0)] + pub nr_band_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct PLMN_InfoList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "6")] +pub struct PLMN_InfoList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_RAN_AreaCell_r15 { + #[asn(optional_idx = 0)] + pub plmn_identity_r15: Option, + pub ran_area_cells_r15: PLMN_RAN_AreaCell_r15Ran_AreaCells_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct PLMN_RAN_AreaCellList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PLMN_RAN_AreaConfig_r15 { + #[asn(optional_idx = 0)] + pub plmn_identity_r15: Option, + pub ran_area_r15: PLMN_RAN_AreaConfig_r15Ran_Area_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct PLMN_RAN_AreaConfigList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct PMCH_Config_r12 { + pub sf_alloc_end_r12: PMCH_Config_r12Sf_AllocEnd_r12, + pub data_mcs_r12: PMCH_Config_r12DataMCS_r12, + pub mch_scheduling_period_r12: PMCH_Config_r12Mch_SchedulingPeriod_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct PMCH_Config_r9 { + pub sf_alloc_end_r9: PMCH_Config_r9Sf_AllocEnd_r9, + pub data_mcs_r9: PMCH_Config_r9DataMCS_r9, + pub mch_scheduling_period_r9: PMCH_Config_r9Mch_SchedulingPeriod_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct PMCH_Info_r9 { + pub pmch_config_r9: PMCH_Config_r9, + pub mbms_session_info_list_r9: MBMS_SessionInfoList_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct PMCH_InfoExt_r12 { + pub pmch_config_r12: PMCH_Config_r12, + pub mbms_session_info_list_r12: MBMS_SessionInfoList_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "15")] +pub struct PMCH_InfoList_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "15")] +pub struct PMCH_InfoListExt_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PRACH_Config { + pub root_sequence_index: PRACH_ConfigRootSequenceIndex, + #[asn(optional_idx = 0)] + pub prach_config_info: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct PRACH_Config_v1310 { + #[asn(optional_idx = 0)] + pub rsrp_thresholds_prach_info_list_r13: Option, + #[asn(optional_idx = 1)] + pub mpdcch_start_sf_css_ra_r13: Option, + #[asn(optional_idx = 2)] + pub prach_hopping_offset_r13: Option, + #[asn(optional_idx = 3)] + pub prach_parameters_list_ce_r13: Option, + #[asn(optional_idx = 4)] + pub initial_ce_level_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_Config_v1430 { + pub root_sequence_index_high_speed_r14: PRACH_Config_v1430RootSequenceIndexHighSpeed_r14, + pub zero_correlation_zone_config_high_speed_r14: + PRACH_Config_v1430ZeroCorrelationZoneConfigHighSpeed_r14, + pub prach_config_index_high_speed_r14: PRACH_Config_v1430Prach_ConfigIndexHighSpeed_r14, + pub prach_freq_offset_high_speed_r14: PRACH_Config_v1430Prach_FreqOffsetHighSpeed_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_ConfigInfo { + pub prach_config_index: PRACH_ConfigInfoPrach_ConfigIndex, + pub high_speed_flag: PRACH_ConfigInfoHighSpeedFlag, + pub zero_correlation_zone_config: PRACH_ConfigInfoZeroCorrelationZoneConfig, + pub prach_freq_offset: PRACH_ConfigInfoPrach_FreqOffset, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_ConfigSCell_r10 { + pub prach_config_index_r10: PRACH_ConfigSCell_r10Prach_ConfigIndex_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_ConfigSIB { + pub root_sequence_index: PRACH_ConfigSIBRootSequenceIndex, + pub prach_config_info: PRACH_ConfigInfo, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PRACH_ConfigSIB_v1310 { + pub rsrp_thresholds_prach_info_list_r13: RSRP_ThresholdsPrachInfoList_r13, + #[asn(optional_idx = 0)] + pub mpdcch_start_sf_css_ra_r13: Option, + #[asn(optional_idx = 1)] + pub prach_hopping_offset_r13: Option, + pub prach_parameters_list_ce_r13: PRACH_ParametersListCE_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_ConfigSIB_v1530 { + pub edt_prach_parameters_list_ce_r15: PRACH_ConfigSIB_v1530Edt_PRACH_ParametersListCE_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PRACH_ParametersCE_r13 { + pub prach_config_index_r13: PRACH_ParametersCE_r13Prach_ConfigIndex_r13, + pub prach_freq_offset_r13: PRACH_ParametersCE_r13Prach_FreqOffset_r13, + #[asn(optional_idx = 0)] + pub prach_starting_subframe_r13: Option, + #[asn(optional_idx = 1)] + pub max_num_preamble_attempt_ce_r13: Option, + pub num_repetition_per_preamble_attempt_r13: + PRACH_ParametersCE_r13NumRepetitionPerPreambleAttempt_r13, + pub mpdcch_narrowbands_to_monitor_r13: PRACH_ParametersCE_r13Mpdcch_NarrowbandsToMonitor_r13, + pub mpdcch_num_repetition_ra_r13: PRACH_ParametersCE_r13Mpdcch_NumRepetition_RA_r13, + pub prach_hopping_config_r13: PRACH_ParametersCE_r13Prach_HoppingConfig_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PRACH_ParametersListCE_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PRACH_TxDuration_r17 { + pub prach_tx_duration_r17: PRACH_TxDuration_r17Prach_TxDuration_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct PSCellToAddMod_r12 { + pub s_cell_index_r12: SCellIndex_r10, + #[asn(optional_idx = 0)] + pub cell_identification_r12: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_common_ps_cell_r12: Option, + #[asn(optional_idx = 2)] + pub radio_resource_config_dedicated_ps_cell_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PSCellToAddMod_v12f0 { + #[asn(optional_idx = 0)] + pub radio_resource_config_common_ps_cell_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PSCellToAddMod_v1440 { + #[asn(optional_idx = 0)] + pub radio_resource_config_common_ps_cell_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigCommon { + pub delta_pucch_shift: PUCCH_ConfigCommonDeltaPUCCH_Shift, + pub nrb_cqi: PUCCH_ConfigCommonNRB_CQI, + pub ncs_an: PUCCH_ConfigCommonNCS_AN, + pub n1pucch_an: PUCCH_ConfigCommonN1PUCCH_AN, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct PUCCH_ConfigCommon_v1310 { + #[asn(optional_idx = 0)] + pub n1pucch_an_info_list_r13: Option, + #[asn(optional_idx = 1)] + pub pucch_num_repetition_ce_msg4_level0_r13: + Option, + #[asn(optional_idx = 2)] + pub pucch_num_repetition_ce_msg4_level1_r13: + Option, + #[asn(optional_idx = 3)] + pub pucch_num_repetition_ce_msg4_level2_r13: + Option, + #[asn(optional_idx = 4)] + pub pucch_num_repetition_ce_msg4_level3_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigCommon_v1430 { + #[asn(optional_idx = 0)] + pub pucch_num_repetition_ce_msg4_level3_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated { + pub ack_nack_repetition: PUCCH_ConfigDedicatedAckNackRepetition, + #[asn(optional_idx = 0)] + pub tdd_ack_nack_feedback_mode: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct PUCCH_ConfigDedicated_r13 { + pub ack_nack_repetition_r13: PUCCH_ConfigDedicated_r13AckNackRepetition_r13, + #[asn(optional_idx = 0)] + pub tdd_ack_nack_feedback_mode_r13: + Option, + #[asn(optional_idx = 1)] + pub pucch_format_r13: Option, + #[asn(optional_idx = 2)] + pub two_antenna_port_activated_pucch_format1a1b_r13: + Option, + #[asn(optional_idx = 3)] + pub simultaneous_pucch_pusch_r13: Option, + #[asn(optional_idx = 4)] + pub n1pucch_an_rep_p1_r13: Option, + #[asn(optional_idx = 5)] + pub npucch_param_r13: Option, + #[asn(optional_idx = 6)] + pub nka_pucch_param_r13: Option, + pub spatial_bundling_pucch_r13: PUCCH_ConfigDedicated_r13SpatialBundlingPUCCH_r13, + pub spatial_bundling_pusch_r13: PUCCH_ConfigDedicated_r13SpatialBundlingPUSCH_r13, + pub harq_timing_tdd_r13: PUCCH_ConfigDedicated_r13Harq_TimingTDD_r13, + #[asn(optional_idx = 7)] + pub codebooksize_determination_r13: + Option, + #[asn(optional_idx = 8)] + pub maximum_payload_coderate_r13: Option, + #[asn(optional_idx = 9)] + pub pucch_num_repetition_ce_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct PUCCH_ConfigDedicated_v1020 { + #[asn(optional_idx = 0)] + pub pucch_format_r10: Option, + #[asn(optional_idx = 1)] + pub two_antenna_port_activated_pucch_format1a1b_r10: + Option, + #[asn(optional_idx = 2)] + pub simultaneous_pucch_pusch_r10: + Option, + #[asn(optional_idx = 3)] + pub n1pucch_an_rep_p1_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUCCH_ConfigDedicated_v1130 { + #[asn(optional_idx = 0)] + pub n1pucch_an_cs_v1130: Option, + #[asn(optional_idx = 1)] + pub npucch_param_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1250 { + pub nka_pucch_param_r12: PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1370 { + pub pucch_format_v1370: PUCCH_ConfigDedicated_v1370Pucch_Format_v1370, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v13c0 { + pub channel_selection_v13c0: PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated_v1430 { + #[asn(optional_idx = 0)] + pub pucch_num_repetition_ce_format1_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUCCH_ConfigDedicated_v1530 { + #[asn(optional_idx = 0)] + pub n1pucch_an_spt_r15: Option, + #[asn(optional_idx = 1)] + pub codebooksize_determination_stti_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUCCH_Format3_Conf_r13 { + #[asn(optional_idx = 0)] + pub n3pucch_an_list_r13: Option, + #[asn(optional_idx = 1)] + pub two_antenna_port_activated_pucch_format3_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_TxDuration_r17 { + pub pucch_tx_duration_r17: PUCCH_TxDuration_r17Pucch_TxDuration_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct PUR_Config_r16 { + #[asn(optional_idx = 0)] + pub pur_config_id_r16: Option, + #[asn(optional_idx = 1)] + pub pur_implicit_release_after_r16: Option, + #[asn(optional_idx = 2)] + pub pur_start_time_parameters_r16: Option, + pub pur_num_occasions_r16: PUR_Config_r16Pur_NumOccasions_r16, + #[asn(optional_idx = 3)] + pub pur_rnti_r16: Option, + #[asn(optional_idx = 4)] + pub pur_time_alignment_timer_r16: Option, + #[asn(optional_idx = 5)] + pub pur_rsrp_change_threshold_r16: Option, + #[asn(optional_idx = 6)] + pub pur_response_window_timer_r16: Option, + #[asn(optional_idx = 7)] + pub pur_mpdcch_config_r16: Option, + pub pur_pdsch_freq_hopping_r16: PUR_Config_r16Pur_PDSCH_FreqHopping_r16, + #[asn(optional_idx = 8)] + pub pur_pucch_config_r16: Option, + #[asn(optional_idx = 9)] + pub pur_pusch_config_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "20", sz_ub = "20")] +pub struct PUR_ConfigID_r16(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUR_MPDCCH_Config_r16 { + pub mpdcch_freq_hopping_r16: PUR_MPDCCH_Config_r16Mpdcch_FreqHopping_r16, + pub mpdcch_narrowband_r16: PUR_MPDCCH_Config_r16Mpdcch_Narrowband_r16, + pub mpdcch_prb_pairs_config_r16: PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16, + pub mpdcch_num_repetition_r16: PUR_MPDCCH_Config_r16Mpdcch_NumRepetition_r16, + pub mpdcch_start_sf_uess_r16: PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16, + pub mpdcch_offset_pur_ss_r16: PUR_MPDCCH_Config_r16Mpdcch_Offset_PUR_SS_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUR_PUCCH_Config_r16 { + #[asn(optional_idx = 0)] + pub n1pucch_an_r16: Option, + #[asn(optional_idx = 1)] + pub pucch_num_repetition_ce_format1_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUR_PUSCH_Config_r16 { + #[asn(optional_idx = 0)] + pub pur_grant_info_r16: Option, + pub pur_pusch_freq_hopping_r16: PUR_PUSCH_Config_r16Pur_PUSCH_FreqHopping_r16, + pub p0_ue_pusch_r16: PUR_PUSCH_Config_r16P0_UE_PUSCH_r16, + pub alpha_r16: Alpha_r12, + pub pusch_cyclic_shift_r16: PUR_PUSCH_Config_r16Pusch_CyclicShift_r16, + pub pusch_nb_max_tbs_r16: PUR_PUSCH_Config_r16Pusch_NB_MaxTBS_r16, + #[asn(optional_idx = 1)] + pub location_ce_mode_b_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 14)] +pub struct PUR_Parameters_r16 { + #[asn(optional_idx = 0)] + pub pur_cp_5gc_ce_mode_a_r16: Option, + #[asn(optional_idx = 1)] + pub pur_cp_5gc_ce_mode_b_r16: Option, + #[asn(optional_idx = 2)] + pub pur_up_5gc_ce_mode_a_r16: Option, + #[asn(optional_idx = 3)] + pub pur_up_5gc_ce_mode_b_r16: Option, + #[asn(optional_idx = 4)] + pub pur_cp_epc_ce_mode_a_r16: Option, + #[asn(optional_idx = 5)] + pub pur_cp_epc_ce_mode_b_r16: Option, + #[asn(optional_idx = 6)] + pub pur_up_epc_ce_mode_a_r16: Option, + #[asn(optional_idx = 7)] + pub pur_up_epc_ce_mode_b_r16: Option, + #[asn(optional_idx = 8)] + pub pur_cp_l1_ack_r16: Option, + #[asn(optional_idx = 9)] + pub pur_frequency_hopping_r16: Option, + #[asn(optional_idx = 10)] + pub pur_pusch_nb_max_tbs_r16: Option, + #[asn(optional_idx = 11)] + pub pur_rsrp_validation_r16: Option, + #[asn(optional_idx = 12)] + pub pur_sub_prb_ce_mode_a_r16: Option, + #[asn(optional_idx = 13)] + pub pur_sub_prb_ce_mode_b_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "10", extensible = false)] +pub enum PUR_PeriodicityAndOffset_r16 { + #[asn(key = 0, extended = false)] + Periodicity8(PUR_PeriodicityAndOffset_r16_periodicity8), + #[asn(key = 1, extended = false)] + Periodicity16(PUR_PeriodicityAndOffset_r16_periodicity16), + #[asn(key = 2, extended = false)] + Periodicity32(PUR_PeriodicityAndOffset_r16_periodicity32), + #[asn(key = 3, extended = false)] + Periodicity64(PUR_PeriodicityAndOffset_r16_periodicity64), + #[asn(key = 4, extended = false)] + Periodicity128(PUR_PeriodicityAndOffset_r16_periodicity128), + #[asn(key = 5, extended = false)] + Periodicity256(PUR_PeriodicityAndOffset_r16_periodicity256), + #[asn(key = 6, extended = false)] + Periodicity512(PUR_PeriodicityAndOffset_r16_periodicity512), + #[asn(key = 7, extended = false)] + Periodicity1024(PUR_PeriodicityAndOffset_r16_periodicity1024), + #[asn(key = 8, extended = false)] + Periodicity2048(PUR_PeriodicityAndOffset_r16_periodicity2048), + #[asn(key = 9, extended = false)] + Periodicity4096(PUR_PeriodicityAndOffset_r16_periodicity4096), + #[asn(key = 10, extended = false)] + Periodicity8192(PUR_PeriodicityAndOffset_r16_periodicity8192), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUR_RSRP_ChangeThreshold_r16 { + pub increase_thresh_r16: RSRP_ChangeThresh_r16, + #[asn(optional_idx = 0)] + pub decrease_thresh_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PURConfigurationRequest_r16 { + pub critical_extensions: PURConfigurationRequest_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PURConfigurationRequest_r16_IEs { + #[asn(optional_idx = 0)] + pub pur_config_request_r16: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigCommon { + pub pusch_config_basic: PUSCH_ConfigCommonPusch_ConfigBasic, + pub ul_reference_signals_pusch: UL_ReferenceSignalsPUSCH, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigCommon_v1270 { + pub enable64_qam_v1270: PUSCH_ConfigCommon_v1270Enable64QAM_v1270, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PUSCH_ConfigCommon_v1310 { + #[asn(optional_idx = 0)] + pub pusch_max_num_repetition_c_emode_a_r13: + Option, + #[asn(optional_idx = 1)] + pub pusch_max_num_repetition_c_emode_b_r13: + Option, + #[asn(optional_idx = 2)] + pub pusch_hopping_offset_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated { + pub beta_offset_ack_index: PUSCH_ConfigDedicatedBetaOffset_ACK_Index, + pub beta_offset_ri_index: PUSCH_ConfigDedicatedBetaOffset_RI_Index, + pub beta_offset_cqi_index: PUSCH_ConfigDedicatedBetaOffset_CQI_Index, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct PUSCH_ConfigDedicated_r13 { + pub beta_offset_ack_index_r13: PUSCH_ConfigDedicated_r13BetaOffset_ACK_Index_r13, + #[asn(optional_idx = 0)] + pub beta_offset2_ack_index_r13: Option, + pub beta_offset_ri_index_r13: PUSCH_ConfigDedicated_r13BetaOffset_RI_Index_r13, + pub beta_offset_cqi_index_r13: PUSCH_ConfigDedicated_r13BetaOffset_CQI_Index_r13, + #[asn(optional_idx = 1)] + pub beta_offset_mc_r13: Option, + #[asn(optional_idx = 2)] + pub group_hopping_disabled_r13: Option, + #[asn(optional_idx = 3)] + pub dmrs_with_occ_activated_r13: Option, + #[asn(optional_idx = 4)] + pub pusch_dmrs_r11: Option, + #[asn(optional_idx = 5)] + pub uci_on_pusch: Option, + #[asn(optional_idx = 6)] + pub pusch_hopping_config_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PUSCH_ConfigDedicated_v1020 { + #[asn(optional_idx = 0)] + pub beta_offset_mc_r10: Option, + #[asn(optional_idx = 1)] + pub group_hopping_disabled_r10: Option, + #[asn(optional_idx = 2)] + pub dmrs_with_occ_activated_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1130 { + pub pusch_dmrs_r11: PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1250 { + pub uci_on_pusch: PUSCH_ConfigDedicated_v1250UciOnPUSCH, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct PUSCH_ConfigDedicated_v1430 { + #[asn(optional_idx = 0)] + pub ce_pusch_nb_max_tbs_r14: Option, + #[asn(optional_idx = 1)] + pub ce_pusch_max_bandwidth_r14: Option, + #[asn(optional_idx = 2)] + pub tdd_pusch_up_pts_r14: Option, + pub ul_dmrs_ifdma_r14: PUSCH_ConfigDedicated_v1430Ul_DMRS_IFDMA_r14, + #[asn(optional_idx = 3)] + pub enable256_qam_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_v1530 { + pub ce_pusch_flexible_start_prb_alloc_config_r15: + PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15, + #[asn(optional_idx = 0)] + pub ce_pusch_sub_prb_config_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1610 { + pub ce_pusch_multi_tb_config_r16: PUSCH_ConfigDedicated_v1610Ce_PUSCH_MultiTB_Config_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUSCH_ConfigDedicatedSCell_r10 { + #[asn(optional_idx = 0)] + pub group_hopping_disabled_r10: Option, + #[asn(optional_idx = 1)] + pub dmrs_with_occ_activated_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicatedSCell_v1430 { + #[asn(optional_idx = 0)] + pub enable256_qam_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicatedScell_v1530 { + pub uci_on_pusch_r15: PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_EnhancementsConfig_r14 { + #[asn(key = 0, extended = false)] + Release(PUSCH_EnhancementsConfig_r14_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_EnhancementsConfig_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ModeConfigLAA_r15 { + pub laa_pusch_mode1: PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode1, + pub laa_pusch_mode2: PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode2, + pub laa_pusch_mode3: PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode3, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_TxDuration_r17 { + pub pusch_tx_duration_r17: PUSCH_TxDuration_r17Pusch_TxDuration_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct Paging { + #[asn(optional_idx = 0)] + pub paging_record_list: Option, + #[asn(optional_idx = 1)] + pub system_info_modification: Option, + #[asn(optional_idx = 2)] + pub etws_indication: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Paging_v1130_IEs { + #[asn(optional_idx = 0)] + pub eab_param_modification_r11: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct Paging_v1310_IEs { + #[asn(optional_idx = 0)] + pub redistribution_indication_r13: Option, + #[asn(optional_idx = 1)] + pub system_info_modification_e_drx_r13: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Paging_v1530_IEs { + #[asn(optional_idx = 0)] + pub access_type: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct Paging_v1610_IEs { + #[asn(optional_idx = 0)] + pub paging_record_list_v1610: Option, + #[asn(optional_idx = 1)] + pub uac_param_modification_r16: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Paging_v1700_IEs { + #[asn(optional_idx = 0)] + pub paging_record_list_v1700: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Paging_v890_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct Paging_v920_IEs { + #[asn(optional_idx = 0)] + pub cmas_indication_r9: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct PagingRecord { + pub ue_identity: PagingUE_Identity, + pub cn_domain: PagingRecordCn_Domain, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PagingRecord_v1610 { + #[asn(optional_idx = 0)] + pub access_type_r16: Option, + #[asn(optional_idx = 1)] + pub mt_edt_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PagingRecord_v1700 { + #[asn(optional_idx = 0)] + pub paging_cause_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PagingRecordList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PagingRecordList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PagingRecordList_v1700(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum PagingUE_Identity { + #[asn(key = 0, extended = false)] + S_TMSI(S_TMSI), + #[asn(key = 1, extended = false)] + Imsi(IMSI), + #[asn(key = 0, extended = true)] + Ng_5G_S_TMSI_r15(NG_5G_S_TMSI_r15), + #[asn(key = 1, extended = true)] + FullI_RNTI_r15(I_RNTI_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct ParametersCDMA2000_r11 { + #[asn(optional_idx = 0)] + pub system_time_info_r11: Option, + pub search_window_size_r11: ParametersCDMA2000_r11SearchWindowSize_r11, + #[asn(optional_idx = 1)] + pub parameters_hrpd_r11: Option, + #[asn(optional_idx = 2)] + pub parameters1_xrtt_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PerCC_GapIndication_r14 { + pub serv_cell_id_r14: ServCellIndex_r13, + pub gap_indication_r14: PerCC_GapIndication_r14GapIndication_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct PerCC_GapIndicationList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PeriodicBSR_Timer_r12(pub u8); +impl PeriodicBSR_Timer_r12 { + pub const SF5: u8 = 0u8; + pub const SF10: u8 = 1u8; + pub const SF16: u8 = 2u8; + pub const SF20: u8 = 3u8; + pub const SF32: u8 = 4u8; + pub const SF40: u8 = 5u8; + pub const SF64: u8 = 6u8; + pub const SF80: u8 = 7u8; + pub const SF128: u8 = 8u8; + pub const SF160: u8 = 9u8; + pub const SF320: u8 = 10u8; + pub const SF640: u8 = 11u8; + pub const SF1280: u8 = 12u8; + pub const SF2560: u8 = 13u8; + pub const INFINITY: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum PeriodicityStartPos_r16 { + #[asn(key = 0, extended = false)] + Periodicity10ms(PeriodicityStartPos_r16_periodicity10ms), + #[asn(key = 1, extended = false)] + Periodicity20ms(PeriodicityStartPos_r16_periodicity20ms), + #[asn(key = 2, extended = false)] + Periodicity40ms(PeriodicityStartPos_r16_periodicity40ms), + #[asn(key = 3, extended = false)] + Periodicity80ms(PeriodicityStartPos_r16_periodicity80ms), + #[asn(key = 4, extended = false)] + Periodicity160ms(PeriodicityStartPos_r16_periodicity160ms), + #[asn(key = 5, extended = false)] + Spare3(PeriodicityStartPos_r16_spare3), + #[asn(key = 6, extended = false)] + Spare2(PeriodicityStartPos_r16_spare2), + #[asn(key = 7, extended = false)] + Spare1(PeriodicityStartPos_r16_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhyLayerParameters { + pub ue_tx_antenna_selection_supported: PhyLayerParametersUe_TxAntennaSelectionSupported, + pub ue_specific_ref_sigs_supported: PhyLayerParametersUe_SpecificRefSigsSupported, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct PhyLayerParameters_v1020 { + #[asn(optional_idx = 0)] + pub two_antenna_ports_for_pucch_r10: + Option, + #[asn(optional_idx = 1)] + pub tm9_with_8tx_fdd_r10: Option, + #[asn(optional_idx = 2)] + pub pmi_disabling_r10: Option, + #[asn(optional_idx = 3)] + pub cross_carrier_scheduling_r10: Option, + #[asn(optional_idx = 4)] + pub simultaneous_pucch_pusch_r10: Option, + #[asn(optional_idx = 5)] + pub multi_cluster_pusch_within_cc_r10: + Option, + #[asn(optional_idx = 6)] + pub non_contiguous_ul_ra_within_cc_list_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct PhyLayerParameters_v1130 { + #[asn(optional_idx = 0)] + pub crs_interf_handl_r11: Option, + #[asn(optional_idx = 1)] + pub epdcch_r11: Option, + #[asn(optional_idx = 2)] + pub multi_ack_csi_reporting_r11: Option, + #[asn(optional_idx = 3)] + pub ss_cch_interf_handl_r11: Option, + #[asn(optional_idx = 4)] + pub tdd_special_subframe_r11: Option, + #[asn(optional_idx = 5)] + pub tx_div_pucch1b_ch_select_r11: Option, + #[asn(optional_idx = 6)] + pub ul_co_mp_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1170 { + #[asn(optional_idx = 0)] + pub inter_band_tdd_ca_with_different_config_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 11)] +pub struct PhyLayerParameters_v1250 { + #[asn(optional_idx = 0)] + pub e_harq_pattern_fdd_r12: Option, + #[asn(optional_idx = 1)] + pub enhanced_4tx_codebook_r12: Option, + #[asn(optional_idx = 2)] + pub tdd_fdd_ca_p_cell_duplex_r12: Option, + #[asn(optional_idx = 3)] + pub phy_tdd_re_config_tdd_p_cell_r12: + Option, + #[asn(optional_idx = 4)] + pub phy_tdd_re_config_fdd_p_cell_r12: + Option, + #[asn(optional_idx = 5)] + pub pusch_feedback_mode_r12: Option, + #[asn(optional_idx = 6)] + pub pusch_srs_power_control_subframe_set_r12: + Option, + #[asn(optional_idx = 7)] + pub csi_subframe_set_r12: Option, + #[asn(optional_idx = 8)] + pub no_resource_restriction_for_tti_bundling_r12: + Option, + #[asn(optional_idx = 9)] + pub discovery_signals_in_deact_s_cell_r12: + Option, + #[asn(optional_idx = 10)] + pub naics_capability_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1280 { + #[asn(optional_idx = 0)] + pub alternative_tbs_indices_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 13)] +pub struct PhyLayerParameters_v1310 { + #[asn(optional_idx = 0)] + pub aperiodic_csi_reporting_r13: Option, + #[asn(optional_idx = 1)] + pub codebook_harq_ack_r13: Option, + #[asn(optional_idx = 2)] + pub cross_carrier_scheduling_b5c_r13: + Option, + #[asn(optional_idx = 3)] + pub fdd_harq_timing_tdd_r13: Option, + #[asn(optional_idx = 4)] + pub max_number_updated_csi_proc_r13: + Option, + #[asn(optional_idx = 5)] + pub pucch_format4_r13: Option, + #[asn(optional_idx = 6)] + pub pucch_format5_r13: Option, + #[asn(optional_idx = 7)] + pub pucch_s_cell_r13: Option, + #[asn(optional_idx = 8)] + pub spatial_bundling_harq_ack_r13: Option, + #[asn(optional_idx = 9)] + pub supported_blind_decoding_r13: Option, + #[asn(optional_idx = 10)] + pub uci_pusch_ext_r13: Option, + #[asn(optional_idx = 11)] + pub crs_interf_mitigation_tm10_r13: + Option, + #[asn(optional_idx = 12)] + pub pdsch_collision_handling_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1320 { + #[asn(optional_idx = 0)] + pub mimo_ue_parameters_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct PhyLayerParameters_v1330 { + #[asn(optional_idx = 0)] + pub cch_interf_mitigation_ref_rec_type_a_r13: + Option, + #[asn(optional_idx = 1)] + pub cch_interf_mitigation_ref_rec_type_b_r13: + Option, + #[asn(optional_idx = 2)] + pub cch_interf_mitigation_max_num_c_cs_r13: + Option, + #[asn(optional_idx = 3)] + pub crs_interf_mitigation_tm1to_tm9_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhyLayerParameters_v13e0 { + pub mimo_ue_parameters_v13e0: MIMO_UE_Parameters_v13e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 16)] +pub struct PhyLayerParameters_v1430 { + #[asn(optional_idx = 0)] + pub ce_pusch_nb_max_tbs_r14: Option, + #[asn(optional_idx = 1)] + pub ce_pdsch_pusch_max_bandwidth_r14: + Option, + #[asn(optional_idx = 2)] + pub ce_harq_ack_bundling_r14: Option, + #[asn(optional_idx = 3)] + pub ce_pdsch_ten_processes_r14: Option, + #[asn(optional_idx = 4)] + pub ce_retuning_symbols_r14: Option, + #[asn(optional_idx = 5)] + pub ce_pdsch_pusch_enhancement_r14: + Option, + #[asn(optional_idx = 6)] + pub ce_scheduling_enhancement_r14: Option, + #[asn(optional_idx = 7)] + pub ce_srs_enhancement_r14: Option, + #[asn(optional_idx = 8)] + pub ce_pucch_enhancement_r14: Option, + #[asn(optional_idx = 9)] + pub ce_closed_loop_tx_antenna_selection_r14: + Option, + #[asn(optional_idx = 10)] + pub tdd_special_subframe_r14: Option, + #[asn(optional_idx = 11)] + pub tdd_tti_bundling_r14: Option, + #[asn(optional_idx = 12)] + pub dmrs_less_up_pts_r14: Option, + #[asn(optional_idx = 13)] + pub mimo_ue_parameters_v1430: Option, + #[asn(optional_idx = 14)] + pub alternative_tbs_index_r14: Option, + #[asn(optional_idx = 15)] + pub fe_mbms_unicast_parameters_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PhyLayerParameters_v1450 { + #[asn(optional_idx = 0)] + pub ce_srs_enhancement_without_comb4_r14: + Option, + #[asn(optional_idx = 1)] + pub crs_less_dw_pts_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PhyLayerParameters_v1470 { + #[asn(optional_idx = 0)] + pub mimo_ue_parameters_v1470: Option, + #[asn(optional_idx = 1)] + pub srs_up_pts_6sym_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v14a0 { + #[asn(optional_idx = 0)] + pub ssp10_tdd_only_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 8)] +pub struct PhyLayerParameters_v1530 { + #[asn(optional_idx = 0)] + pub stti_spt_capabilities_r15: Option, + #[asn(optional_idx = 1)] + pub ce_capabilities_r15: Option, + #[asn(optional_idx = 2)] + pub short_cqi_for_s_cell_activation_r15: + Option, + #[asn(optional_idx = 3)] + pub mimo_cbsr_advanced_csi_r15: Option, + #[asn(optional_idx = 4)] + pub crs_intf_mitig_r15: Option, + #[asn(optional_idx = 5)] + pub ul_power_control_enhancements_r15: + Option, + #[asn(optional_idx = 6)] + pub urllc_capabilities_r15: Option, + #[asn(optional_idx = 7)] + pub alt_mcs_table_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PhyLayerParameters_v1540 { + #[asn(optional_idx = 0)] + pub stti_spt_capabilities_v1540: Option, + #[asn(optional_idx = 1)] + pub crs_im_tm1_to_tm9_one_rx_port_v1540: + Option, + #[asn(optional_idx = 2)] + pub cch_im_ref_rec_type_a_one_rx_port_v1540: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1550 { + #[asn(optional_idx = 0)] + pub dmrs_overhead_reduction_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct PhyLayerParameters_v1610 { + #[asn(optional_idx = 0)] + pub ce_capabilities_v1610: Option, + #[asn(optional_idx = 1)] + pub wideband_prg_slot_r16: Option, + #[asn(optional_idx = 2)] + pub wideband_prg_subslot_r16: Option, + #[asn(optional_idx = 3)] + pub wideband_prg_subframe_r16: Option, + #[asn(optional_idx = 4)] + pub add_srs_r16: Option, + #[asn(optional_idx = 5)] + pub virtual_cell_id_basic_srs_r16: Option, + #[asn(optional_idx = 6)] + pub virtual_cell_id_add_srs_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1700 { + #[asn(optional_idx = 0)] + pub ce_capabilities_v1700: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhyLayerParameters_v1730 { + #[asn(optional_idx = 0)] + pub csi_subframe_set2_for_dormant_s_cell_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PhyLayerParameters_v920 { + #[asn(optional_idx = 0)] + pub enhanced_dual_layer_fdd_r9: Option, + #[asn(optional_idx = 1)] + pub enhanced_dual_layer_tdd_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PhyLayerParameters_v9d0 { + #[asn(optional_idx = 0)] + pub tm5_fdd_r9: Option, + #[asn(optional_idx = 1)] + pub tm5_tdd_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct PhysCellId(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct PhysCellIdCDMA2000(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysCellIdGERAN { + pub network_colour_code: PhysCellIdGERANNetworkColourCode, + pub base_station_colour_code: PhysCellIdGERANBaseStationColourCode, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PhysCellIdList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PhysCellIdListCDMA2000(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "24")] +pub struct PhysCellIdListCDMA2000_v920(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1007")] +pub struct PhysCellIdNR_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhysCellIdRange { + pub start: PhysCellId, + #[asn(optional_idx = 0)] + pub range: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhysCellIdRangeNR_r16 { + pub start: PhysCellIdNR_r15, + #[asn(optional_idx = 0)] + pub range: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhysCellIdRangeUTRA_FDD_r9 { + pub start_r9: PhysCellIdUTRA_FDD, + #[asn(optional_idx = 0)] + pub range_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PhysCellIdRangeUTRA_FDDList_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct PhysCellIdUTRA_FDD(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct PhysCellIdUTRA_TDD(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct PhysicalConfigDedicated { + #[asn(optional_idx = 0)] + pub pdsch_config_dedicated: Option, + #[asn(optional_idx = 1)] + pub pucch_config_dedicated: Option, + #[asn(optional_idx = 2)] + pub pusch_config_dedicated: Option, + #[asn(optional_idx = 3)] + pub uplink_power_control_dedicated: Option, + #[asn(optional_idx = 4)] + pub tpc_pdcch_config_pucch: Option, + #[asn(optional_idx = 5)] + pub tpc_pdcch_config_pusch: Option, + #[asn(optional_idx = 6)] + pub cqi_report_config: Option, + #[asn(optional_idx = 7)] + pub sounding_rs_ul_config_dedicated: Option, + #[asn(optional_idx = 8)] + pub antenna_info: Option, + #[asn(optional_idx = 9)] + pub scheduling_request_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhysicalConfigDedicated_v1370 { + #[asn(optional_idx = 0)] + pub pucch_config_dedicated_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysicalConfigDedicated_v13c0 { + pub pucch_config_dedicated_v13c0: PUCCH_ConfigDedicated_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct PhysicalConfigDedicatedSCell_r10 { + #[asn(optional_idx = 0)] + pub non_ul_configuration_r10: Option, + #[asn(optional_idx = 1)] + pub ul_configuration_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysicalConfigDedicatedSCell_v1370 { + pub pucch_s_cell_v1370: PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysicalConfigDedicatedSCell_v13c0 { + pub pucch_s_cell_v13c0: PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysicalConfigDedicatedSCell_v1730 { + pub cqi_report_periodic_s_cell_v1730: + PhysicalConfigDedicatedSCell_v1730Cqi_ReportPeriodicSCell_v1730, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PhysicalConfigDedicatedSTTI_r15 { + #[asn(key = 0, extended = false)] + Release(PhysicalConfigDedicatedSTTI_r15_release), + #[asn(key = 1, extended = false)] + Setup(PhysicalConfigDedicatedSTTI_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PollByte(pub u8); +impl PollByte { + pub const K_B25: u8 = 0u8; + pub const K_B50: u8 = 1u8; + pub const K_B75: u8 = 2u8; + pub const K_B100: u8 = 3u8; + pub const K_B125: u8 = 4u8; + pub const K_B250: u8 = 5u8; + pub const K_B375: u8 = 6u8; + pub const K_B500: u8 = 7u8; + pub const K_B750: u8 = 8u8; + pub const K_B1000: u8 = 9u8; + pub const K_B1250: u8 = 10u8; + pub const K_B1500: u8 = 11u8; + pub const K_B2000: u8 = 12u8; + pub const K_B3000: u8 = 13u8; + pub const K_BINFINITY: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct PollByte_r14(pub u8); +impl PollByte_r14 { + pub const K_B1: u8 = 0u8; + pub const K_B2: u8 = 1u8; + pub const K_B5: u8 = 2u8; + pub const K_B8: u8 = 3u8; + pub const K_B10: u8 = 4u8; + pub const K_B15: u8 = 5u8; + pub const K_B3500: u8 = 6u8; + pub const K_B4000: u8 = 7u8; + pub const K_B4500: u8 = 8u8; + pub const K_B5000: u8 = 9u8; + pub const K_B5500: u8 = 10u8; + pub const K_B6000: u8 = 11u8; + pub const K_B6500: u8 = 12u8; + pub const K_B7000: u8 = 13u8; + pub const K_B7500: u8 = 14u8; + pub const K_B8000: u8 = 15u8; + pub const K_B9000: u8 = 16u8; + pub const K_B10000: u8 = 17u8; + pub const K_B11000: u8 = 18u8; + pub const K_B12000: u8 = 19u8; + pub const K_B13000: u8 = 20u8; + pub const K_B14000: u8 = 21u8; + pub const K_B15000: u8 = 22u8; + pub const K_B16000: u8 = 23u8; + pub const K_B17000: u8 = 24u8; + pub const K_B18000: u8 = 25u8; + pub const K_B19000: u8 = 26u8; + pub const K_B20000: u8 = 27u8; + pub const K_B25000: u8 = 28u8; + pub const K_B30000: u8 = 29u8; + pub const K_B35000: u8 = 30u8; + pub const K_B40000: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PollPDU(pub u8); +impl PollPDU { + pub const P4: u8 = 0u8; + pub const P8: u8 = 1u8; + pub const P16: u8 = 2u8; + pub const P32: u8 = 3u8; + pub const P64: u8 = 4u8; + pub const P128: u8 = 5u8; + pub const P256: u8 = 6u8; + pub const P_INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PollPDU_r15(pub u8); +impl PollPDU_r15 { + pub const P4: u8 = 0u8; + pub const P8: u8 = 1u8; + pub const P16: u8 = 2u8; + pub const P32: u8 = 3u8; + pub const P64: u8 = 4u8; + pub const P128: u8 = 5u8; + pub const P256: u8 = 6u8; + pub const P512: u8 = 7u8; + pub const P1024: u8 = 8u8; + pub const P2048_R15: u8 = 9u8; + pub const P4096_R15: u8 = 10u8; + pub const P6144_R15: u8 = 11u8; + pub const P8192_R15: u8 = 12u8; + pub const P12288_R15: u8 = 13u8; + pub const P16384_R15: u8 = 14u8; + pub const P_INFINITY: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PollPDU_v1310(pub u8); +impl PollPDU_v1310 { + pub const P512: u8 = 0u8; + pub const P1024: u8 = 1u8; + pub const P2048: u8 = 2u8; + pub const P4096: u8 = 3u8; + pub const P6144: u8 = 4u8; + pub const P8192: u8 = 5u8; + pub const P12288: u8 = 6u8; + pub const P16384: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct PosSIB_MappingInfo_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct PosSIB_Type_r15 { + #[asn(optional_idx = 0)] + pub encrypted_r15: Option, + #[asn(optional_idx = 1)] + pub gnss_id_r15: Option, + #[asn(optional_idx = 2)] + pub sbas_id_r15: Option, + pub pos_sib_type_r15: PosSIB_Type_r15PosSibType_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PosSchedulingInfo_r15 { + pub pos_si_periodicity_r15: PosSchedulingInfo_r15PosSI_Periodicity_r15, + pub pos_sib_mapping_info_r15: PosSIB_MappingInfo_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct PosSchedulingInfoList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PosSystemInformation_r15_IEs { + pub pos_sib_type_and_info_r15: PosSystemInformation_r15_IEsPosSIB_TypeAndInfo_r15, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-33554432", ub = "33554431")] +pub struct PositionStateVector_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PowerCoordinationInfo_r12 { + pub p_me_nb_r12: PowerCoordinationInfo_r12P_MeNB_r12, + pub p_se_nb_r12: PowerCoordinationInfo_r12P_SeNB_r12, + pub power_control_mode_r12: PowerCoordinationInfo_r12PowerControlMode_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PowerPrefIndicationConfig_r11 { + #[asn(key = 0, extended = false)] + Release(PowerPrefIndicationConfig_r11_release), + #[asn(key = 1, extended = false)] + Setup(PowerPrefIndicationConfig_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PowerRampingParameters { + pub power_ramping_step: PowerRampingParametersPowerRampingStep, + pub preamble_initial_received_target_power: + PowerRampingParametersPreambleInitialReceivedTargetPower, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PreRegistrationInfoHRPD { + pub pre_registration_allowed: PreRegistrationInfoHRPDPreRegistrationAllowed, + #[asn(optional_idx = 0)] + pub pre_registration_zone_id: Option, + #[asn(optional_idx = 1)] + pub secondary_pre_registration_zone_id_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct PreRegistrationZoneIdHRPD(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "10")] +pub struct PreambleTransMax(pub u8); +impl PreambleTransMax { + pub const N3: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N5: u8 = 2u8; + pub const N6: u8 = 3u8; + pub const N7: u8 = 4u8; + pub const N8: u8 = 5u8; + pub const N10: u8 = 6u8; + pub const N20: u8 = 7u8; + pub const N50: u8 = 8u8; + pub const N100: u8 = 9u8; + pub const N200: u8 = 10u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PresenceAntennaPort1(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ProcessingTimelineSet_r15(pub u8); +impl ProcessingTimelineSet_r15 { + pub const SET1: u8 = 0u8; + pub const SET2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ProximityIndication_r9 { + pub critical_extensions: ProximityIndication_r9CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ProximityIndication_r9_IEs { + pub type_r9: ProximityIndication_r9_IEsType_r9, + pub carrier_freq_r9: ProximityIndication_r9_IEsCarrierFreq_r9, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ProximityIndication_v930_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "30")] +pub struct Q_OffsetRange(pub u8); +impl Q_OffsetRange { + pub const D_B_24: u8 = 0u8; + pub const D_B_22: u8 = 1u8; + pub const D_B_20: u8 = 2u8; + pub const D_B_18: u8 = 3u8; + pub const D_B_16: u8 = 4u8; + pub const D_B_14: u8 = 5u8; + pub const D_B_12: u8 = 6u8; + pub const D_B_10: u8 = 7u8; + pub const D_B_8: u8 = 8u8; + pub const D_B_6: u8 = 9u8; + pub const D_B_5: u8 = 10u8; + pub const D_B_4: u8 = 11u8; + pub const D_B_3: u8 = 12u8; + pub const D_B_2: u8 = 13u8; + pub const D_B_1: u8 = 14u8; + pub const D_B0: u8 = 15u8; + pub const D_B1: u8 = 16u8; + pub const D_B2: u8 = 17u8; + pub const D_B3: u8 = 18u8; + pub const D_B4: u8 = 19u8; + pub const D_B5: u8 = 20u8; + pub const D_B6: u8 = 21u8; + pub const D_B8: u8 = 22u8; + pub const D_B10: u8 = 23u8; + pub const D_B12: u8 = 24u8; + pub const D_B14: u8 = 25u8; + pub const D_B16: u8 = 26u8; + pub const D_B18: u8 = 27u8; + pub const D_B20: u8 = 28u8; + pub const D_B22: u8 = 29u8; + pub const D_B24: u8 = 30u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-15", ub = "15")] +pub struct Q_OffsetRangeInterRAT(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-34", ub = "-3")] +pub struct Q_QualMin_r9(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-70", ub = "-22")] +pub struct Q_RxLevMin(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct QuantityConfig { + #[asn(optional_idx = 0)] + pub quantity_config_eutra: Option, + #[asn(optional_idx = 1)] + pub quantity_config_utra: Option, + #[asn(optional_idx = 2)] + pub quantity_config_geran: Option, + #[asn(optional_idx = 3)] + pub quantity_config_cdma2000: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct QuantityConfigCDMA2000 { + pub meas_quantity_cdma2000: QuantityConfigCDMA2000MeasQuantityCDMA2000, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct QuantityConfigEUTRA { + #[asn(optional_idx = 0)] + pub filter_coefficient_rsrp: Option, + #[asn(optional_idx = 1)] + pub filter_coefficient_rsrq: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigEUTRA_v1250 { + #[asn(optional_idx = 0)] + pub filter_coefficient_csi_rsrp_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigEUTRA_v1310 { + #[asn(optional_idx = 0)] + pub filter_coefficient_rs_sinr_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigGERAN { + pub meas_quantity_geran: QuantityConfigGERANMeasQuantityGERAN, + #[asn(optional_idx = 0)] + pub filter_coefficient: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigNR_r15 { + pub meas_quantity_cell_nr_r15: QuantityConfigRS_NR_r15, + #[asn(optional_idx = 0)] + pub meas_quantity_rs_index_nr_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct QuantityConfigNRList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct QuantityConfigRS_NR_r15 { + #[asn(optional_idx = 0)] + pub filter_coeff_rsrp_r15: Option, + #[asn(optional_idx = 1)] + pub filter_coeff_rsrq_r15: Option, + #[asn(optional_idx = 2)] + pub filter_coefficient_sinr_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigUTRA { + pub meas_quantity_utra_fdd: QuantityConfigUTRAMeasQuantityUTRA_FDD, + pub meas_quantity_utra_tdd: QuantityConfigUTRAMeasQuantityUTRA_TDD, + #[asn(optional_idx = 0)] + pub filter_coefficient: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigUTRA_v1020 { + #[asn(optional_idx = 0)] + pub filter_coefficient2_fdd_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct QuantityConfigWLAN_r13 { + pub meas_quantity_wlan_r13: QuantityConfigWLAN_r13MeasQuantityWLAN_r13, + #[asn(optional_idx = 0)] + pub filter_coefficient_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RACH_CE_LevelInfo_r13 { + pub preamble_mapping_info_r13: RACH_CE_LevelInfo_r13PreambleMappingInfo_r13, + pub ra_response_window_size_r13: RACH_CE_LevelInfo_r13Ra_ResponseWindowSize_r13, + pub mac_contention_resolution_timer_r13: RACH_CE_LevelInfo_r13Mac_ContentionResolutionTimer_r13, + pub rar_hopping_config_r13: RACH_CE_LevelInfo_r13Rar_HoppingConfig_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct RACH_CE_LevelInfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RACH_ConfigCommon { + pub preamble_info: RACH_ConfigCommonPreambleInfo, + pub power_ramping_parameters: PowerRampingParameters, + pub ra_supervision_info: RACH_ConfigCommonRa_SupervisionInfo, + pub max_harq_msg3_tx: RACH_ConfigCommonMaxHARQ_Msg3Tx, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_ConfigCommon_v1250 { + pub tx_fail_params_r12: RACH_ConfigCommon_v1250TxFailParams_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RACH_ConfigCommonSCell_r11 { + pub power_ramping_parameters_r11: PowerRampingParameters, + pub ra_supervision_info_r11: RACH_ConfigCommonSCell_r11Ra_SupervisionInfo_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_ConfigDedicated { + pub ra_preamble_index: RACH_ConfigDedicatedRa_PreambleIndex, + pub ra_prach_mask_index: RACH_ConfigDedicatedRa_PRACH_MaskIndex, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_Report_r16 { + pub number_of_preambles_sent_r16: NumberOfPreamblesSent_r11, + pub contention_detected_r16: RACH_Report_r16ContentionDetected_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_Report_v1610 { + pub initial_cel_r16: RACH_Report_v1610InitialCEL_r16, + pub edt_fallback_r16: RACH_Report_v1610Edt_Fallback_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RACH_Skip_r14 { + pub target_ta_r14: RACH_Skip_r14TargetTA_r14, + #[asn(optional_idx = 0)] + pub ul_config_info_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct RAN_AreaCode_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RAN_AreaConfig_r15 { + pub tracking_area_code_5gc_r15: TrackingAreaCode_5GC_r15, + #[asn(optional_idx = 0)] + pub ran_area_code_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RAN_NotificationAreaInfo_r15 { + #[asn(key = 0, extended = false)] + CellList(PLMN_RAN_AreaCellList_r15), + #[asn(key = 1, extended = false)] + Ran_AreaConfigList(PLMN_RAN_AreaConfigList_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct RAND_CDMA2000(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct RAT_Type(pub u8); +impl RAT_Type { + pub const EUTRA: u8 = 0u8; + pub const UTRA: u8 = 1u8; + pub const GERAN_CS: u8 = 2u8; + pub const GERAN_PS: u8 = 3u8; + pub const CDMA2000_1XRTT: u8 = 4u8; + pub const NR: u8 = 5u8; + pub const EUTRA_NR: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RCLWI_Config_r13 { + pub command: RCLWI_Config_r13Command, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RCLWI_Configuration_r13 { + #[asn(key = 0, extended = false)] + Release(RCLWI_Configuration_r13_release), + #[asn(key = 1, extended = false)] + Setup(RCLWI_Configuration_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct RE_MappingQCLConfigToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct RE_MappingQCLConfigToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RF_Parameters { + pub supported_band_list_eutra: SupportedBandListEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RF_Parameters_v1020 { + pub supported_band_combination_r10: SupportedBandCombination_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RF_Parameters_v1060 { + pub supported_band_combination_ext_r10: SupportedBandCombinationExt_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v1090 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1090: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v10f0 { + #[asn(optional_idx = 0)] + pub modified_mpr_behavior_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v10i0 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v10i0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v10j0 { + #[asn(optional_idx = 0)] + pub multi_ns_pmax_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v1130 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1130: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1180 { + #[asn(optional_idx = 0)] + pub freq_band_retrieval_r11: Option, + #[asn(optional_idx = 1)] + pub requested_bands_r11: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_add_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v11d0 { + #[asn(optional_idx = 0)] + pub supported_band_combination_add_v11d0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RF_Parameters_v1250 { + #[asn(optional_idx = 0)] + pub supported_band_list_eutra_v1250: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_v1250: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_add_v1250: Option, + #[asn(optional_idx = 3)] + pub freq_band_priority_adjustment_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RF_Parameters_v1270 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1270: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1270: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v12b0 { + #[asn(optional_idx = 0)] + pub max_layers_mimo_indication_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RF_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub enb_requested_parameters_r13: Option, + #[asn(optional_idx = 1)] + pub maximum_c_cs_retrieval_r13: Option, + #[asn(optional_idx = 2)] + pub skip_fallback_combinations_r13: Option, + #[asn(optional_idx = 3)] + pub reduced_int_non_cont_comb_r13: Option, + #[asn(optional_idx = 4)] + pub supported_band_list_eutra_v1310: Option, + #[asn(optional_idx = 5)] + pub supported_band_combination_reduced_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RF_Parameters_v1320 { + #[asn(optional_idx = 0)] + pub supported_band_list_eutra_v1320: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_v1320: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_add_v1320: Option, + #[asn(optional_idx = 3)] + pub supported_band_combination_reduced_v1320: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1380 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1380: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1380: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1380: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1390 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1390: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1390: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1390: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RF_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1430: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1430: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1430: Option, + #[asn(optional_idx = 3)] + pub enb_requested_parameters_v1430: Option, + #[asn(optional_idx = 4)] + pub diff_fallback_comb_report_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1450 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1450: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1450: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1450: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1470 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1470: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1470: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1470: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v14b0 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v14b0: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v14b0: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v14b0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RF_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub stti_spt_supported_r15: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_v1530: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_add_v1530: Option, + #[asn(optional_idx = 3)] + pub supported_band_combination_reduced_v1530: Option, + #[asn(optional_idx = 4)] + pub power_class_14d_bm_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RF_Parameters_v1570 { + pub dl_1024qam_scaling_factor_r15: RF_Parameters_v1570Dl_1024QAM_ScalingFactor_r15, + pub dl_1024qam_total_weighted_layers_r15: RF_Parameters_v1570Dl_1024QAM_TotalWeightedLayers_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1610: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1610: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1610: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RF_Parameters_v1630 { + #[asn(optional_idx = 0)] + pub supported_band_combination_v1630: Option, + #[asn(optional_idx = 1)] + pub supported_band_combination_add_v1630: Option, + #[asn(optional_idx = 2)] + pub supported_band_combination_reduced_v1630: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RF_Parameters_v9e0 { + #[asn(optional_idx = 0)] + pub supported_band_list_eutra_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLC_BearerConfig_r15 { + #[asn(key = 0, extended = false)] + Release(RLC_BearerConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(RLC_BearerConfig_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = true)] +pub enum RLC_Config { + #[asn(key = 0, extended = false)] + Am(RLC_Config_am), + #[asn(key = 1, extended = false)] + Um_Bi_Directional(RLC_Config_um_Bi_Directional), + #[asn(key = 2, extended = false)] + Um_Uni_Directional_UL(RLC_Config_um_Uni_Directional_UL), + #[asn(key = 3, extended = false)] + Um_Uni_Directional_DL(RLC_Config_um_Uni_Directional_DL), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct RLC_Config_r15 { + pub mode_r15: RLC_Config_r15Mode_r15, + #[asn(optional_idx = 0)] + pub reestablish_rlc_r15: Option, + #[asn(optional_idx = 1)] + pub rlc_out_of_order_delivery_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_v1250 { + pub ul_extended_rlc_li_field_r12: RLC_Config_v1250Ul_extended_RLC_LI_Field_r12, + pub dl_extended_rlc_li_field_r12: RLC_Config_v1250Dl_extended_RLC_LI_Field_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RLC_Config_v1310 { + pub ul_extended_rlc_am_sn_r13: RLC_Config_v1310Ul_extended_RLC_AM_SN_r13, + pub dl_extended_rlc_am_sn_r13: RLC_Config_v1310Dl_extended_RLC_AM_SN_r13, + #[asn(optional_idx = 0)] + pub poll_pdu_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLC_Config_v1430 { + #[asn(key = 0, extended = false)] + Release(RLC_Config_v1430_release), + #[asn(key = 1, extended = false)] + Setup(RLC_Config_v1430_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_v1510 { + pub reestablish_rlc_r15: RLC_Config_v1510ReestablishRLC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLC_Config_v1530 { + #[asn(key = 0, extended = false)] + Release(RLC_Config_v1530_release), + #[asn(key = 1, extended = false)] + Setup(RLC_Config_v1530_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_v1700 { + pub t_reordering_ext_r17: RLC_Config_v1700T_ReorderingExt_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Parameters_r12 { + pub extended_rlc_li_field_r12: RLC_Parameters_r12Extended_RLC_LI_Field_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RLC_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub extended_rlc_sn_so_field_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RLC_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub extended_poll_byte_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RLC_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub flexible_um_am_combinations_r15: Option, + #[asn(optional_idx = 1)] + pub rlc_am_ooo_delivery_r15: Option, + #[asn(optional_idx = 2)] + pub rlc_um_ooo_delivery_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RLF_Report_r9 { + pub meas_result_last_serv_cell_r9: RLF_Report_r9MeasResultLastServCell_r9, + #[asn(optional_idx = 0)] + pub meas_result_neigh_cells_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLF_Report_v9e0 { + pub meas_result_list_eutra_v9e0: MeasResultList2EUTRA_v9e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLF_TimersAndConstants_r13 { + #[asn(key = 0, extended = false)] + Release(RLF_TimersAndConstants_r13_release), + #[asn(key = 1, extended = false)] + Setup(RLF_TimersAndConstants_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLF_TimersAndConstants_r9 { + #[asn(key = 0, extended = false)] + Release(RLF_TimersAndConstants_r9_release), + #[asn(key = 1, extended = false)] + Setup(RLF_TimersAndConstants_r9_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLF_TimersAndConstantsMCG_Failure_r16 { + #[asn(key = 0, extended = false)] + Release(RLF_TimersAndConstantsMCG_Failure_r16_release), + #[asn(key = 1, extended = false)] + Setup(RLF_TimersAndConstantsMCG_Failure_r16_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLF_TimersAndConstantsSCG_r12 { + #[asn(key = 0, extended = false)] + Release(RLF_TimersAndConstantsSCG_r12_release), + #[asn(key = 1, extended = false)] + Setup(RLF_TimersAndConstantsSCG_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RMTC_Config_r13 { + #[asn(key = 0, extended = false)] + Release(RMTC_Config_r13_release), + #[asn(key = 1, extended = false)] + Setup(RMTC_Config_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RMTC_ConfigNR_r16 { + pub rmtc_periodicity_nr_r16: RMTC_ConfigNR_r16Rmtc_PeriodicityNR_r16, + #[asn(optional_idx = 0)] + pub rmtc_subframe_offset_nr_r16: Option, + pub meas_duration_nr_r16: RMTC_ConfigNR_r16MeasDurationNR_r16, + pub rmtc_frequency_nr_r16: ARFCN_ValueNR_r15, + pub ref_scs_cp_nr_r16: RMTC_ConfigNR_r16RefSCS_CP_NR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct RN_SubframeConfig_r10 { + #[asn(optional_idx = 0)] + pub subframe_config_pattern_r10: Option, + #[asn(optional_idx = 1)] + pub rpdcch_config_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct RN_SystemInfo_r10 { + #[asn(optional_idx = 0)] + pub system_information_block_type1_r10: + Option, + #[asn(optional_idx = 1)] + pub system_information_block_type2_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfiguration_r10 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RNReconfiguration_r10CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RNReconfiguration_r10_IEs { + #[asn(optional_idx = 0)] + pub rn_system_info_r10: Option, + #[asn(optional_idx = 1)] + pub rn_subframe_config_r10: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfigurationComplete_r10 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RNReconfigurationComplete_r10CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RNReconfigurationComplete_r10_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ROHC_ProfileSupportList_r15 { + pub profile0x0001_r15: ROHC_ProfileSupportList_r15Profile0x0001_r15, + pub profile0x0002_r15: ROHC_ProfileSupportList_r15Profile0x0002_r15, + pub profile0x0003_r15: ROHC_ProfileSupportList_r15Profile0x0003_r15, + pub profile0x0004_r15: ROHC_ProfileSupportList_r15Profile0x0004_r15, + pub profile0x0006_r15: ROHC_ProfileSupportList_r15Profile0x0006_r15, + pub profile0x0101_r15: ROHC_ProfileSupportList_r15Profile0x0101_r15, + pub profile0x0102_r15: ROHC_ProfileSupportList_r15Profile0x0102_r15, + pub profile0x0103_r15: ROHC_ProfileSupportList_r15Profile0x0103_r15, + pub profile0x0104_r15: ROHC_ProfileSupportList_r15Profile0x0104_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRC_InactiveConfig_r15 { + pub full_i_rnti_r15: I_RNTI_r15, + pub short_i_rnti_r15: ShortI_RNTI_r15, + #[asn(optional_idx = 0)] + pub ran_paging_cycle_r15: Option, + #[asn(optional_idx = 1)] + pub ran_notification_area_info_r15: Option, + #[asn(optional_idx = 2)] + pub periodic_rnau_timer_r15: Option, + #[asn(optional_idx = 3)] + pub next_hop_chaining_count_r15: Option, + #[asn(optional_idx = 4)] + pub dummy: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRC_InactiveConfig_v1610 { + pub ran_paging_cycle_v1610: RRC_InactiveConfig_v1610Ran_PagingCycle_v1610, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct RRC_TransactionIdentifier(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfiguration { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionReconfigurationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionReconfiguration_r8_IEs { + #[asn(optional_idx = 0)] + pub meas_config: Option, + #[asn(optional_idx = 1)] + pub mobility_control_info: Option, + #[asn(optional_idx = 2)] + pub dedicated_info_nas_list: Option, + #[asn(optional_idx = 3)] + pub radio_resource_config_dedicated: Option, + #[asn(optional_idx = 4)] + pub security_config_ho: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfiguration_v1020_IEs { + #[asn(optional_idx = 0)] + pub s_cell_to_release_list_r10: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_r10: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfiguration_v10i0_IEs { + #[asn(optional_idx = 0)] + pub antenna_info_dedicated_p_cell_v10i0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionReconfiguration_v10l0_IEs { + #[asn(optional_idx = 0)] + pub mobility_control_info_v10l0: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_v10l0: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfiguration_v1130_IEs { + #[asn(optional_idx = 0)] + pub system_information_block_type1_dedicated_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionReconfiguration_v1250_IEs { + #[asn(optional_idx = 0)] + pub wlan_offload_info_r12: Option, + #[asn(optional_idx = 1)] + pub scg_configuration_r12: Option, + #[asn(optional_idx = 2)] + pub sl_sync_tx_control_r12: Option, + #[asn(optional_idx = 3)] + pub sl_disc_config_r12: Option, + #[asn(optional_idx = 4)] + pub sl_comm_config_r12: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfiguration_v12f0_IEs { + #[asn(optional_idx = 0)] + pub scg_configuration_v12f0: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionReconfiguration_v1310_IEs { + #[asn(optional_idx = 0)] + pub s_cell_to_release_list_ext_r13: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_ext_r13: Option, + #[asn(optional_idx = 2)] + pub lwa_configuration_r13: Option, + #[asn(optional_idx = 3)] + pub lwip_configuration_r13: Option, + #[asn(optional_idx = 4)] + pub rclwi_configuration_r13: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfiguration_v1370_IEs { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_v1370: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_ext_v1370: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRCConnectionReconfiguration_v13c0_IEs { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_v13c0: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_v13c0: Option, + #[asn(optional_idx = 2)] + pub s_cell_to_add_mod_list_ext_v13c0: Option, + #[asn(optional_idx = 3)] + pub scg_configuration_v13c0: Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRCConnectionReconfiguration_v1430_IEs { + #[asn(optional_idx = 0)] + pub sl_v2x_config_dedicated_r14: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_ext_v1430: Option, + #[asn(optional_idx = 2)] + pub per_cc_gap_indication_request_r14: + Option, + #[asn(optional_idx = 3)] + pub system_information_block_type2_dedicated_r14: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionReconfiguration_v1510_IEs { + #[asn(optional_idx = 0)] + pub nr_config_r15: Option, + #[asn(optional_idx = 1)] + pub sk_counter_r15: Option, + #[asn(optional_idx = 2)] + pub nr_radio_bearer_config1_r15: + Option, + #[asn(optional_idx = 3)] + pub nr_radio_bearer_config2_r15: + Option, + #[asn(optional_idx = 4)] + pub tdm_pattern_config_r15: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct RRCConnectionReconfiguration_v1530_IEs { + #[asn(optional_idx = 0)] + pub security_config_ho_v1530: Option, + #[asn(optional_idx = 1)] + pub s_cell_group_to_release_list_r15: Option, + #[asn(optional_idx = 2)] + pub s_cell_group_to_add_mod_list_r15: Option, + #[asn(optional_idx = 3)] + pub dedicated_info_nas_list_r15: + Option, + #[asn(optional_idx = 4)] + pub p_max_ue_fr1_r15: Option, + #[asn(optional_idx = 5)] + pub smtc_r15: Option, + #[asn(optional_idx = 6)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionReconfiguration_v1610_IEs { + #[asn(optional_idx = 0)] + pub conditional_reconfiguration_r16: Option, + #[asn(optional_idx = 1)] + pub daps_source_release_r16: + Option, + #[asn(optional_idx = 2)] + pub tdm_pattern_config2_r16: Option, + #[asn(optional_idx = 3)] + pub sl_config_dedicated_for_nr_r16: + Option, + #[asn(optional_idx = 4)] + pub sl_ssb_priority_eutra_r16: + Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfiguration_v1700_IEs { + #[asn(optional_idx = 0)] + pub system_information_block_type31_dedicated_r17: + Option, + #[asn(optional_idx = 1)] + pub scg_state_r17: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfiguration_v890_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfiguration_v8m0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfiguration_v920_IEs { + #[asn(optional_idx = 0)] + pub other_config_r9: Option, + #[asn(optional_idx = 1)] + pub full_config_r9: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfigurationComplete { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionReconfigurationCompleteCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReconfigurationComplete_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionReconfigurationComplete_v1020_IEs { + #[asn(optional_idx = 0)] + pub rlf_info_available_r10: + Option, + #[asn(optional_idx = 1)] + pub log_meas_available_r10: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v1130_IEs { + #[asn(optional_idx = 0)] + pub conn_est_fail_info_available_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v1250_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_mbsfn_r12: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionReconfigurationComplete_v1430_IEs { + #[asn(optional_idx = 0)] + pub per_cc_gap_indication_list_r14: Option, + #[asn(optional_idx = 1)] + pub num_freq_effective_r14: + Option, + #[asn(optional_idx = 2)] + pub num_freq_effective_reduced_r14: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v1510_IEs { + #[asn(optional_idx = 0)] + pub scg_config_response_nr_r15: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionReconfigurationComplete_v1530_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_bt_r15: + Option, + #[asn(optional_idx = 1)] + pub log_meas_available_wlan_r15: + Option, + #[asn(optional_idx = 2)] + pub flight_path_info_available_r15: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v1700_IEs { + #[asn(optional_idx = 0)] + pub selected_cond_reconfiguration_to_apply_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v1710_IEs { + #[asn(optional_idx = 0)] + pub gnss_validity_duration_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfigurationComplete_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishment { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionReestablishmentCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReestablishment_r8_IEs { + pub radio_resource_config_dedicated: RadioResourceConfigDedicated, + pub next_hop_chaining_count: NextHopChainingCount, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishment_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentComplete { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionReestablishmentCompleteCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReestablishmentComplete_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v1020_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_r10: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v1130_IEs { + #[asn(optional_idx = 0)] + pub conn_est_fail_info_available_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v1250_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_mbsfn_r12: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionReestablishmentComplete_v1530_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_bt_r15: + Option, + #[asn(optional_idx = 1)] + pub log_meas_available_wlan_r15: + Option, + #[asn(optional_idx = 2)] + pub flight_path_info_available_r15: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v1710_IEs { + #[asn(optional_idx = 0)] + pub gnss_validity_duration_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentComplete_v920_IEs { + #[asn(optional_idx = 0)] + pub rlf_info_available_r9: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentReject { + pub critical_extensions: RRCConnectionReestablishmentRejectCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReestablishmentReject_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReestablishmentReject_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentRequest { + pub critical_extensions: RRCConnectionReestablishmentRequestCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentRequest_r8_IEs { + pub ue_identity: ReestabUE_Identity, + pub reestablishment_cause: ReestablishmentCause, + pub spare: RRCConnectionReestablishmentRequest_r8_IEsSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReject { + pub critical_extensions: RRCConnectionRejectCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReject_r8_IEs { + pub wait_time: RRCConnectionReject_r8_IEsWaitTime, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReject_v1020_IEs { + #[asn(optional_idx = 0)] + pub extended_wait_time_r10: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReject_v1130_IEs { + #[asn(optional_idx = 0)] + pub deprioritisation_req_r11: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReject_v1320_IEs { + #[asn(optional_idx = 0)] + pub rrc_suspend_indication_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReject_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRelease { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionReleaseCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionRelease_r8_IEs { + pub release_cause: ReleaseCause, + #[asn(optional_idx = 0)] + pub redirected_carrier_info: Option, + #[asn(optional_idx = 1)] + pub idle_mode_mobility_control_info: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v1020_IEs { + #[asn(optional_idx = 0)] + pub extended_wait_time_r10: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v1320_IEs { + #[asn(optional_idx = 0)] + pub resume_identity_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionRelease_v1530_IEs { + #[asn(optional_idx = 0)] + pub drb_continue_rohc_r15: Option, + #[asn(optional_idx = 1)] + pub next_hop_chaining_count_r15: Option, + #[asn(optional_idx = 2)] + pub meas_idle_config_r15: Option, + #[asn(optional_idx = 3)] + pub rrc_inactive_config_r15: Option, + #[asn(optional_idx = 4)] + pub cn_type_r15: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v1540_IEs { + #[asn(optional_idx = 0)] + pub wait_time: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v15b0_IEs { + #[asn(optional_idx = 0)] + pub no_last_cell_update_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 8)] +pub struct RRCConnectionRelease_v1610_IEs { + #[asn(optional_idx = 0)] + pub full_i_rnti_r16: Option, + #[asn(optional_idx = 1)] + pub short_i_rnti_r16: Option, + #[asn(optional_idx = 2)] + pub pur_config_r16: Option, + #[asn(optional_idx = 3)] + pub rrc_inactive_config_v1610: Option, + #[asn(optional_idx = 4)] + pub release_idle_meas_config_r16: + Option, + #[asn(optional_idx = 5)] + pub alt_freq_priorities_r16: Option, + #[asn(optional_idx = 6)] + pub t323_r16: Option, + #[asn(optional_idx = 7)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v1650_IEs { + #[asn(optional_idx = 0)] + pub mps_priority_indication_r16: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v890_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionRelease_v920_IEs { + #[asn(optional_idx = 0)] + pub cell_info_list_r9: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionRelease_v9e0_IEs { + #[asn(optional_idx = 0)] + pub redirected_carrier_info_v9e0: Option, + #[asn(optional_idx = 1)] + pub idle_mode_mobility_control_info_v9e0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRequest { + pub critical_extensions: RRCConnectionRequestCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRequest_5GC_r15_IEs { + pub ue_identity_r15: InitialUE_Identity_5GC_r15, + pub establishment_cause_r15: EstablishmentCause_5GC_r15, + pub spare: RRCConnectionRequest_5GC_r15_IEsSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRequest_r8_IEs { + pub ue_identity: InitialUE_Identity, + pub establishment_cause: EstablishmentCause, + pub spare: RRCConnectionRequest_r8_IEsSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResume_r13 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionResume_r13CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionResume_r13_IEs { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_r13: Option, + pub next_hop_chaining_count_r13: NextHopChainingCount, + #[asn(optional_idx = 1)] + pub meas_config_r13: Option, + #[asn(optional_idx = 2)] + pub antenna_info_dedicated_p_cell_r13: Option, + #[asn(optional_idx = 3)] + pub drb_continue_rohc_r13: Option, + #[asn(optional_idx = 4)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 5)] + pub rrc_connection_resume_v1430_i_es: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionResume_v1430_IEs { + #[asn(optional_idx = 0)] + pub other_config_r14: Option, + #[asn(optional_idx = 1)] + pub rrc_connection_resume_v1510_i_es: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionResume_v1510_IEs { + #[asn(optional_idx = 0)] + pub sk_counter_r15: Option, + #[asn(optional_idx = 1)] + pub nr_radio_bearer_config1_r15: Option, + #[asn(optional_idx = 2)] + pub nr_radio_bearer_config2_r15: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionResume_v1530_IEs { + #[asn(optional_idx = 0)] + pub full_config_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 13)] +pub struct RRCConnectionResume_v1610_IEs { + #[asn(optional_idx = 0)] + pub idle_mode_measurement_req_r16: + Option, + #[asn(optional_idx = 1)] + pub restore_mcg_s_cells_r16: Option, + #[asn(optional_idx = 2)] + pub restore_scg_r16: Option, + #[asn(optional_idx = 3)] + pub s_cell_to_add_mod_list_r16: Option, + #[asn(optional_idx = 4)] + pub s_cell_to_release_list_r16: Option, + #[asn(optional_idx = 5)] + pub s_cell_group_to_release_list_r16: Option, + #[asn(optional_idx = 6)] + pub s_cell_group_to_add_mod_list_r16: Option, + #[asn(optional_idx = 7)] + pub nr_secondary_cell_group_config_r16: + Option, + #[asn(optional_idx = 8)] + pub p_max_eutra_r16: Option, + #[asn(optional_idx = 9)] + pub p_max_ue_fr1_r16: Option, + #[asn(optional_idx = 10)] + pub tdm_pattern_config_r16: Option, + #[asn(optional_idx = 11)] + pub tdm_pattern_config2_r16: Option, + #[asn(optional_idx = 12)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionResume_v1700_IEs { + #[asn(optional_idx = 0)] + pub scg_state_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeComplete_r13 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionResumeComplete_r13CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct RRCConnectionResumeComplete_r13_IEs { + #[asn(optional_idx = 0)] + pub selected_plmn_identity_r13: + Option, + #[asn(optional_idx = 1)] + pub dedicated_info_nas_r13: Option, + #[asn(optional_idx = 2)] + pub rlf_info_available_r13: Option, + #[asn(optional_idx = 3)] + pub log_meas_available_r13: Option, + #[asn(optional_idx = 4)] + pub conn_est_fail_info_available_r13: + Option, + #[asn(optional_idx = 5)] + pub mobility_state_r13: Option, + #[asn(optional_idx = 6)] + pub mobility_history_avail_r13: + Option, + #[asn(optional_idx = 7)] + pub log_meas_available_mbsfn_r13: + Option, + #[asn(optional_idx = 8)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 9)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRCConnectionResumeComplete_v1530_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_bt_r15: + Option, + #[asn(optional_idx = 1)] + pub log_meas_available_wlan_r15: + Option, + #[asn(optional_idx = 2)] + pub idle_meas_available_r15: Option, + #[asn(optional_idx = 3)] + pub flight_path_info_available_r15: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRCConnectionResumeComplete_v1610_IEs { + #[asn(optional_idx = 0)] + pub meas_result_list_idle_r16: Option, + #[asn(optional_idx = 1)] + pub meas_result_list_ext_idle_r16: Option, + #[asn(optional_idx = 2)] + pub meas_result_list_idle_nr_r16: Option, + #[asn(optional_idx = 3)] + pub scg_config_response_nr_r16: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionResumeComplete_v1710_IEs { + #[asn(optional_idx = 0)] + pub gnss_validity_duration_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeRequest_5GC_r15_IEs { + pub resume_identity_r15: RRCConnectionResumeRequest_5GC_r15_IEsResumeIdentity_r15, + pub short_resume_mac_i_r15: RRCConnectionResumeRequest_5GC_r15_IEsShortResumeMAC_I_r15, + pub resume_cause_r15: ResumeCause_r15, + pub spare: RRCConnectionResumeRequest_5GC_r15_IEsSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeRequest_r13 { + pub critical_extensions: RRCConnectionResumeRequest_r13CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeRequest_r13_IEs { + pub resume_identity_r13: RRCConnectionResumeRequest_r13_IEsResumeIdentity_r13, + pub short_resume_mac_i_r13: RRCConnectionResumeRequest_r13_IEsShortResumeMAC_I_r13, + pub resume_cause_r13: ResumeCause, + pub spare: RRCConnectionResumeRequest_r13_IEsSpare, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetup { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionSetupCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionSetup_r8_IEs { + pub radio_resource_config_dedicated: RadioResourceConfigDedicated, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetup_v1610_IEs { + #[asn(optional_idx = 0)] + pub dedicated_info_nas_r16: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetup_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetupComplete { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: RRCConnectionSetupCompleteCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_r8_IEs { + pub selected_plmn_identity: RRCConnectionSetupComplete_r8_IEsSelectedPLMN_Identity, + #[asn(optional_idx = 0)] + pub registered_mme: Option, + pub dedicated_info_nas: DedicatedInfoNAS, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct RRCConnectionSetupComplete_v1020_IEs { + #[asn(optional_idx = 0)] + pub gummei_type_r10: Option, + #[asn(optional_idx = 1)] + pub rlf_info_available_r10: Option, + #[asn(optional_idx = 2)] + pub log_meas_available_r10: Option, + #[asn(optional_idx = 3)] + pub rn_subframe_config_req_r10: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v1130_IEs { + #[asn(optional_idx = 0)] + pub conn_est_fail_info_available_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RRCConnectionSetupComplete_v1250_IEs { + #[asn(optional_idx = 0)] + pub mobility_state_r12: Option, + #[asn(optional_idx = 1)] + pub mobility_history_avail_r12: + Option, + #[asn(optional_idx = 2)] + pub log_meas_available_mbsfn_r12: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCConnectionSetupComplete_v1320_IEs { + #[asn(optional_idx = 0)] + pub ce_mode_b_r13: Option, + #[asn(optional_idx = 1)] + pub s_tmsi_r13: Option, + #[asn(optional_idx = 2)] + pub attach_without_pdn_connectivity_r13: + Option, + #[asn(optional_idx = 3)] + pub up_c_io_t_eps_optimisation_r13: + Option, + #[asn(optional_idx = 4)] + pub cp_c_io_t_eps_optimisation_r13: + Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v1330_IEs { + #[asn(optional_idx = 0)] + pub ue_ce_need_ul_gaps_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v1430_IEs { + #[asn(optional_idx = 0)] + pub dcn_id_r14: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct RRCConnectionSetupComplete_v1530_IEs { + #[asn(optional_idx = 0)] + pub log_meas_available_bt_r15: + Option, + #[asn(optional_idx = 1)] + pub log_meas_available_wlan_r15: + Option, + #[asn(optional_idx = 2)] + pub idle_meas_available_r15: Option, + #[asn(optional_idx = 3)] + pub flight_path_info_available_r15: + Option, + #[asn(optional_idx = 4)] + pub connect_to5_gc_r15: Option, + #[asn(optional_idx = 5)] + pub registered_amf_r15: Option, + #[asn(optional_idx = 6)] + pub s_nssai_list_r15: Option, + #[asn(optional_idx = 7)] + pub ng_5g_s_tmsi_bits_r15: Option, + #[asn(optional_idx = 8)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct RRCConnectionSetupComplete_v1540_IEs { + #[asn(optional_idx = 0)] + pub gummei_type_v1540: Option, + #[asn(optional_idx = 1)] + pub guami_type_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct RRCConnectionSetupComplete_v1610_IEs { + #[asn(optional_idx = 0)] + pub rlos_request_r16: Option, + #[asn(optional_idx = 1)] + pub cp_c_io_t_5gs_optimisation_r16: + Option, + #[asn(optional_idx = 2)] + pub up_c_io_t_5gs_optimisation_r16: + Option, + #[asn(optional_idx = 3)] + pub pur_config_id_r16: Option, + #[asn(optional_idx = 4)] + pub lte_m_r16: Option, + #[asn(optional_idx = 5)] + pub iab_node_indication_r16: Option, + #[asn(optional_idx = 6)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v1690_IEs { + #[asn(optional_idx = 0)] + pub ul_rrc_segmentation_r16: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v1710_IEs { + #[asn(optional_idx = 0)] + pub gnss_validity_duration_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionSetupComplete_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataComplete_r15 { + pub critical_extensions: RRCEarlyDataComplete_r15CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct RRCEarlyDataComplete_r15_IEs { + #[asn(optional_idx = 0)] + pub dedicated_info_nas_r15: Option, + #[asn(optional_idx = 1)] + pub extended_wait_time_r15: Option, + #[asn(optional_idx = 2)] + pub idle_mode_mobility_control_info_r15: Option, + #[asn(optional_idx = 3)] + pub idle_mode_mobility_control_info_ext_r15: Option, + #[asn(optional_idx = 4)] + pub redirected_carrier_info_r15: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCEarlyDataComplete_v1590_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCEarlyDataRequest_5GC_r16_IEs { + pub ng_5g_s_tmsi_r16: NG_5G_S_TMSI_r15, + pub establishment_cause_r16: RRCEarlyDataRequest_5GC_r16_IEsEstablishmentCause_r16, + pub dedicated_info_nas_r16: DedicatedInfoNAS, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataRequest_r15 { + pub critical_extensions: RRCEarlyDataRequest_r15CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCEarlyDataRequest_r15_IEs { + pub s_tmsi_r15: S_TMSI, + pub establishment_cause_r15: RRCEarlyDataRequest_r15_IEsEstablishmentCause_r15, + pub dedicated_info_nas_r15: DedicatedInfoNAS, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCEarlyDataRequest_v1590_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCEarlyDataRequest_v1610_IEs { + pub establishment_cause_v1610: RRCEarlyDataRequest_v1610_IEsEstablishmentCause_v1610, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RRM_Config { + #[asn(optional_idx = 0)] + pub ue_inactive_time: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RS_ConfigSSB_NR_r15 { + pub meas_timing_config_r15: MTC_SSB_NR_r15, + pub subcarrier_spacing_ssb_r15: RS_ConfigSSB_NR_r15SubcarrierSpacingSSB_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct RS_IndexNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct RS_SINR_Range_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct RS_SINR_RangeNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct RSRP_ChangeThresh_r16(pub u8); +impl RSRP_ChangeThresh_r16 { + pub const D_B4: u8 = 0u8; + pub const D_B6: u8 = 1u8; + pub const D_B8: u8 = 2u8; + pub const D_B10: u8 = 3u8; + pub const D_B14: u8 = 4u8; + pub const D_B18: u8 = 5u8; + pub const D_B22: u8 = 6u8; + pub const D_B26: u8 = 7u8; + pub const D_B30: u8 = 8u8; + pub const D_B34: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "97")] +pub struct RSRP_Range(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-17", ub = "-1")] +pub struct RSRP_Range_v1360(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct RSRP_RangeNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "13")] +pub struct RSRP_RangeSL_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct RSRP_RangeSL2_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "11")] +pub struct RSRP_RangeSL3_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "49")] +pub struct RSRP_RangeSL4_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct RSRP_ThresholdsPrachInfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "34")] +pub struct RSRQ_Range(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "46")] +pub struct RSRQ_Range_r13(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "46")] +pub struct RSRQ_Range_v1250(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RSRQ_RangeConfig_r12 { + #[asn(key = 0, extended = false)] + Release(RSRQ_RangeConfig_r12_release), + #[asn(key = 1, extended = false)] + Setup(RSRQ_Range_v1250), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct RSRQ_RangeNR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RSRQ_Type_r12 { + pub all_symbols_r12: RSRQ_Type_r12AllSymbols_r12, + pub wide_band_r12: RSRQ_Type_r12WideBand_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RSS_Config_r15 { + pub duration_r15: RSS_Config_r15Duration_r15, + pub freq_location_r15: RSS_Config_r15FreqLocation_r15, + pub periodicity_r15: RSS_Config_r15Periodicity_r15, + pub power_boost_r15: RSS_Config_r15PowerBoost_r15, + pub time_offset_r15: RSS_Config_r15TimeOffset_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RSS_ConfigCarrierInfo_r16 { + pub narrowband_index_r16: RSS_ConfigCarrierInfo_r16NarrowbandIndex_r16, + pub time_offset_granularity_r16: RSS_ConfigCarrierInfo_r16TimeOffsetGranularity_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RSS_MeasPowerBias_r16(pub u8); +impl RSS_MeasPowerBias_r16 { + pub const D_B_6: u8 = 0u8; + pub const D_B_3: u8 = 1u8; + pub const D_B0: u8 = 2u8; + pub const D_B3: u8 = 3u8; + pub const D_B6: u8 = 4u8; + pub const D_B9: u8 = 5u8; + pub const D_B12: u8 = 6u8; + pub const RSS_NOT_USED: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "76")] +pub struct RSSI_Range_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RSTD_InterFreqInfo_r10 { + pub carrier_freq_r10: ARFCN_ValueEUTRA, + pub meas_prs_offset_r10: RSTD_InterFreqInfo_r10MeasPRS_Offset_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct RSTD_InterFreqInfoList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 9)] +pub struct RadioResourceConfigCommon { + #[asn(optional_idx = 0)] + pub rach_config_common: Option, + pub prach_config: PRACH_Config, + #[asn(optional_idx = 1)] + pub pdsch_config_common: Option, + pub pusch_config_common: PUSCH_ConfigCommon, + #[asn(optional_idx = 2)] + pub phich_config: Option, + #[asn(optional_idx = 3)] + pub pucch_config_common: Option, + #[asn(optional_idx = 4)] + pub sounding_rs_ul_config_common: Option, + #[asn(optional_idx = 5)] + pub uplink_power_control_common: Option, + #[asn(optional_idx = 6)] + pub antenna_info_common: Option, + #[asn(optional_idx = 7)] + pub p_max: Option, + #[asn(optional_idx = 8)] + pub tdd_config: Option, + pub ul_cyclic_prefix_length: UL_CyclicPrefixLength, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RadioResourceConfigCommonPSCell_r12 { + pub basic_fields_r12: RadioResourceConfigCommonSCell_r10, + pub pucch_config_common_r12: PUCCH_ConfigCommon, + pub rach_config_common_r12: RACH_ConfigCommon, + pub uplink_power_control_common_ps_cell_r12: UplinkPowerControlCommonPSCell_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonPSCell_v12f0 { + pub basic_fields_v12f0: RadioResourceConfigCommonSCell_v10l0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonPSCell_v1440 { + pub basic_fields_v1440: RadioResourceConfigCommonSCell_v1440, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RadioResourceConfigCommonSCell_r10 { + pub non_ul_configuration_r10: RadioResourceConfigCommonSCell_r10NonUL_Configuration_r10, + #[asn(optional_idx = 0)] + pub ul_configuration_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonSCell_v10l0 { + pub ul_configuration_v10l0: RadioResourceConfigCommonSCell_v10l0Ul_Configuration_v10l0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonSCell_v1440 { + pub ul_configuration_v1440: RadioResourceConfigCommonSCell_v1440Ul_Configuration_v1440, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RadioResourceConfigCommonSIB { + pub rach_config_common: RACH_ConfigCommon, + pub bcch_config: BCCH_Config, + pub pcch_config: PCCH_Config, + pub prach_config: PRACH_ConfigSIB, + pub pdsch_config_common: PDSCH_ConfigCommon, + pub pusch_config_common: PUSCH_ConfigCommon, + pub pucch_config_common: PUCCH_ConfigCommon, + pub sounding_rs_ul_config_common: SoundingRS_UL_ConfigCommon, + pub uplink_power_control_common: UplinkPowerControlCommon, + pub ul_cyclic_prefix_length: UL_CyclicPrefixLength, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct RadioResourceConfigDedicated { + #[asn(optional_idx = 0)] + pub srb_to_add_mod_list: Option, + #[asn(optional_idx = 1)] + pub drb_to_add_mod_list: Option, + #[asn(optional_idx = 2)] + pub drb_to_release_list: Option, + #[asn(optional_idx = 3)] + pub mac_main_config: Option, + #[asn(optional_idx = 4)] + pub sps_config: Option, + #[asn(optional_idx = 5)] + pub physical_config_dedicated: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RadioResourceConfigDedicated_v1370 { + #[asn(optional_idx = 0)] + pub physical_config_dedicated_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigDedicated_v13c0 { + pub physical_config_dedicated_v13c0: PhysicalConfigDedicated_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct RadioResourceConfigDedicatedPSCell_r12 { + #[asn(optional_idx = 0)] + pub physical_config_dedicated_ps_cell_r12: Option, + #[asn(optional_idx = 1)] + pub sps_config_r12: Option, + #[asn(optional_idx = 2)] + pub naics_info_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RadioResourceConfigDedicatedPSCell_v1370 { + #[asn(optional_idx = 0)] + pub physical_config_dedicated_ps_cell_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigDedicatedPSCell_v13c0 { + pub physical_config_dedicated_ps_cell_v13c0: PhysicalConfigDedicated_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct RadioResourceConfigDedicatedSCG_r12 { + #[asn(optional_idx = 0)] + pub drb_to_add_mod_list_scg_r12: Option, + #[asn(optional_idx = 1)] + pub mac_main_config_scg_r12: Option, + #[asn(optional_idx = 2)] + pub rlf_timers_and_constants_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RadioResourceConfigDedicatedSCell_r10 { + #[asn(optional_idx = 0)] + pub physical_config_dedicated_s_cell_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigDedicatedSCell_v13c0 { + pub physical_config_dedicated_s_cell_v13c0: PhysicalConfigDedicatedSCell_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = true)] +pub enum RedirectedCarrierInfo { + #[asn(key = 0, extended = false)] + Eutra(ARFCN_ValueEUTRA), + #[asn(key = 1, extended = false)] + Geran(CarrierFreqsGERAN), + #[asn(key = 2, extended = false)] + Utra_FDD(ARFCN_ValueUTRA), + #[asn(key = 3, extended = false)] + Utra_TDD(ARFCN_ValueUTRA), + #[asn(key = 4, extended = false)] + Cdma2000_HRPD(CarrierFreqCDMA2000), + #[asn(key = 5, extended = false)] + Cdma2000_1xRTT(CarrierFreqCDMA2000), + #[asn(key = 0, extended = true)] + Utra_TDD_r10(CarrierFreqListUTRA_TDD_r10), + #[asn(key = 1, extended = true)] + Nr_r15(CarrierInfoNR_r15), + #[asn(key = 2, extended = true)] + Nr_r17(CarrierInfoNR_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum RedirectedCarrierInfo_r15_IEs { + #[asn(key = 0, extended = false)] + Eutra(ARFCN_ValueEUTRA_r9), + #[asn(key = 1, extended = false)] + Geran(CarrierFreqsGERAN), + #[asn(key = 2, extended = false)] + Utra_FDD(ARFCN_ValueUTRA), + #[asn(key = 3, extended = false)] + Cdma2000_HRPD(CarrierFreqCDMA2000), + #[asn(key = 4, extended = false)] + Cdma2000_1xRTT(CarrierFreqCDMA2000), + #[asn(key = 5, extended = false)] + Utra_TDD(CarrierFreqListUTRA_TDD_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RedirectedCarrierInfo_v9e0 { + pub eutra_v9e0: ARFCN_ValueEUTRA_v9e0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "10")] +pub struct RedistributionFactor_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RedistributionInterFreqInfo_r13 { + #[asn(optional_idx = 0)] + pub redistribution_factor_freq_r13: Option, + #[asn(optional_idx = 1)] + pub redistribution_neigh_cell_list_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RedistributionNeighCell_r13 { + pub phys_cell_id_r13: PhysCellId, + pub redistribution_factor_cell_r13: RedistributionFactor_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct RedistributionNeighCellList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RedistributionServingInfo_r13 { + pub redistribution_factor_serving_r13: + RedistributionServingInfo_r13RedistributionFactorServing_r13, + #[asn(optional_idx = 0)] + pub redistribution_factor_cell_r13: + Option, + pub t360_r13: RedistributionServingInfo_r13T360_r13, + #[asn(optional_idx = 1)] + pub redistr_on_paging_only_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReestabUE_Identity { + pub c_rnti: C_RNTI, + pub phys_cell_id: PhysCellId, + pub short_mac_i: ShortMAC_I, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct ReestablishmentCause(pub u8); +impl ReestablishmentCause { + pub const RECONFIGURATION_FAILURE: u8 = 0u8; + pub const HANDOVER_FAILURE: u8 = 1u8; + pub const OTHER_FAILURE: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct ReestablishmentInfo { + pub source_phys_cell_id: PhysCellId, + pub target_cell_short_mac_i: ShortMAC_I, + #[asn(optional_idx = 0)] + pub additional_reestab_info_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReferenceTime_r15 { + pub ref_days_r15: ReferenceTime_r15RefDays_r15, + pub ref_seconds_r15: ReferenceTime_r15RefSeconds_r15, + pub ref_milli_seconds_r15: ReferenceTime_r15RefMilliSeconds_r15, + pub ref_quarter_micro_seconds_r15: ReferenceTime_r15RefQuarterMicroSeconds_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RegisteredAMF_r15 { + #[asn(optional_idx = 0)] + pub plmn_identity_r15: Option, + pub amf_identifier_r15: AMF_Identifier_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RegisteredMME { + #[asn(optional_idx = 0)] + pub plmn_identity: Option, + pub mmegi: RegisteredMMEMmegi, + pub mmec: MMEC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct ReleaseCause(pub u8); +impl ReleaseCause { + pub const LOAD_BALANCING_TA_UREQUIRED: u8 = 0u8; + pub const OTHER: u8 = 1u8; + pub const CS_FALLBACK_HIGH_PRIORITY_V1020: u8 = 2u8; + pub const RRC_SUSPEND_V1320: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct ReportConfigEUTRA { + pub trigger_type: ReportConfigEUTRATriggerType, + pub trigger_quantity: ReportConfigEUTRATriggerQuantity, + pub report_quantity: ReportConfigEUTRAReportQuantity, + pub max_report_cells: ReportConfigEUTRAMaxReportCells, + pub report_interval: ReportInterval, + pub report_amount: ReportConfigEUTRAReportAmount, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct ReportConfigId(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct ReportConfigInterRAT { + pub trigger_type: ReportConfigInterRATTriggerType, + pub max_report_cells: ReportConfigInterRATMaxReportCells, + pub report_interval: ReportInterval, + pub report_amount: ReportConfigInterRATReportAmount, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigToAddMod { + pub report_config_id: ReportConfigId, + pub report_config: ReportConfigToAddModReportConfig, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct ReportConfigToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct ReportConfigToRemoveList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct ReportInterval(pub u8); +impl ReportInterval { + pub const MS120: u8 = 0u8; + pub const MS240: u8 = 1u8; + pub const MS480: u8 = 2u8; + pub const MS640: u8 = 3u8; + pub const MS1024: u8 = 4u8; + pub const MS2048: u8 = 5u8; + pub const MS5120: u8 = 6u8; + pub const MS10240: u8 = 7u8; + pub const MIN1: u8 = 8u8; + pub const MIN6: u8 = 9u8; + pub const MIN12: u8 = 10u8; + pub const MIN30: u8 = 11u8; + pub const MIN60: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ReportProximityConfig_r9 { + #[asn(optional_idx = 0)] + pub proximity_indication_eutra_r9: Option, + #[asn(optional_idx = 1)] + pub proximity_indication_utra_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportQuantityNR_r15 { + pub ss_rsrp: ReportQuantityNR_r15Ss_rsrp, + pub ss_rsrq: ReportQuantityNR_r15Ss_rsrq, + pub ss_sinr: ReportQuantityNR_r15Ss_sinr, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 7)] +pub struct ReportQuantityWLAN_r13 { + #[asn(optional_idx = 0)] + pub band_request_wlan_r13: Option, + #[asn(optional_idx = 1)] + pub carrier_info_request_wlan_r13: Option, + #[asn(optional_idx = 2)] + pub available_admission_capacity_request_wlan_r13: + Option, + #[asn(optional_idx = 3)] + pub backhaul_dl_bandwidth_request_wlan_r13: + Option, + #[asn(optional_idx = 4)] + pub backhaul_ul_bandwidth_request_wlan_r13: + Option, + #[asn(optional_idx = 5)] + pub channel_utilization_request_wlan_r13: + Option, + #[asn(optional_idx = 6)] + pub station_count_request_wlan_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ReselectionInfoRelay_r13 { + pub q_rx_lev_min_r13: Q_RxLevMin, + pub filter_coefficient_r13: FilterCoefficient, + #[asn(optional_idx = 0)] + pub min_hyst_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct ReselectionThreshold(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct ReselectionThresholdQ_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct ResourceConfig_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct ResourceReservationConfigDL_r16 { + pub periodicity_start_pos_r16: PeriodicityStartPos_r16, + #[asn(optional_idx = 0)] + pub resource_reservation_freq_r16: + Option, + pub slot_bitmap_r16: ResourceReservationConfigDL_r16SlotBitmap_r16, + #[asn(optional_idx = 1)] + pub symbol_bitmap1_r16: Option, + #[asn(optional_idx = 2)] + pub symbol_bitmap2_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ResourceReservationConfigDedicatedDL_r16 { + #[asn(optional_idx = 0)] + pub resource_reservation_dedicated_dl_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ResourceReservationConfigDedicatedUL_r16 { + #[asn(optional_idx = 0)] + pub resource_reservation_dedicated_ul_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct ResourceReservationConfigUL_r16 { + pub periodicity_start_pos_r16: PeriodicityStartPos_r16, + #[asn(optional_idx = 0)] + pub slot_bitmap_r16: Option, + #[asn(optional_idx = 1)] + pub symbol_bitmap1_r16: Option, + #[asn(optional_idx = 2)] + pub symbol_bitmap2_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ResultsPerSSB_IndexIdle_r16 { + pub ssb_index_r16: RS_IndexNR_r15, + #[asn(optional_idx = 0)] + pub ssb_results_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct ResultsPerSSB_IndexList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct ResumeCause(pub u8); +impl ResumeCause { + pub const EMERGENCY: u8 = 0u8; + pub const HIGH_PRIORITY_ACCESS: u8 = 1u8; + pub const MT_ACCESS: u8 = 2u8; + pub const MO_SIGNALLING: u8 = 3u8; + pub const MO_DATA: u8 = 4u8; + pub const DELAY_TOLERANT_ACCESS_V1020: u8 = 5u8; + pub const MO_VOICE_CALL_V1280: u8 = 6u8; + pub const MT_EDT_V1610: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct ResumeCause_r15(pub u8); +impl ResumeCause_r15 { + pub const EMERGENCY: u8 = 0u8; + pub const HIGH_PRIORITY_ACCESS: u8 = 1u8; + pub const MT_ACCESS: u8 = 2u8; + pub const MO_SIGNALLING: u8 = 3u8; + pub const MO_DATA: u8 = 4u8; + pub const RNA_UPDATE: u8 = 5u8; + pub const MO_VOICE_CALL: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct ResumeIdentity_r13(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RetxBSR_Timer_r12(pub u8); +impl RetxBSR_Timer_r12 { + pub const SF320: u8 = 0u8; + pub const SF640: u8 = 1u8; + pub const SF1280: u8 = 2u8; + pub const SF2560: u8 = 3u8; + pub const SF5120: u8 = 4u8; + pub const SF10240: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum S_NSSAI_r15 { + #[asn(key = 0, extended = false)] + Sst(S_NSSAI_r15_sst), + #[asn(key = 1, extended = false)] + Sst_SD(S_NSSAI_r15_sst_SD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct S_TMSI { + pub mmec: MMEC, + pub m_tmsi: S_TMSIM_TMSI, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SBAS_ID_r15 { + pub sbas_id_r15: SBAS_ID_r15Sbas_id_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SBCCH_SL_BCH_Message { + pub message: SBCCH_SL_BCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SBCCH_SL_BCH_Message_V2X_r14 { + pub message: SBCCH_SL_BCH_MessageType_V2X_r14, +} + +pub type SBCCH_SL_BCH_MessageType = MasterInformationBlock_SL; + +pub type SBCCH_SL_BCH_MessageType_V2X_r14 = MasterInformationBlock_SL_V2X_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SC_MCCH_Message_r13 { + pub message: SC_MCCH_MessageType_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SC_MCCH_MessageType_r13 { + #[asn(key = 0, extended = false)] + C1(SC_MCCH_MessageType_r13_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(SC_MCCH_MessageType_r13_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SC_MCCH_SchedulingInfo_r14 { + pub on_duration_timer_scptm_r14: SC_MCCH_SchedulingInfo_r14OnDurationTimerSCPTM_r14, + pub drx_inactivity_timer_scptm_r14: SC_MCCH_SchedulingInfo_r14Drx_InactivityTimerSCPTM_r14, + pub scheduling_period_start_offset_scptm_r14: + SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SC_MTCH_Info_BR_r14 { + pub sc_mtch_carrier_freq_r14: ARFCN_ValueEUTRA_r9, + pub mbms_session_info_r14: MBMSSessionInfo_r13, + pub g_rnti_r14: SC_MTCH_Info_BR_r14G_RNTI_r14, + #[asn(optional_idx = 0)] + pub sc_mtch_scheduling_info_r14: Option, + #[asn(optional_idx = 1)] + pub sc_mtch_neighbour_cell_r14: Option, + pub mpdcch_narrowband_sc_mtch_r14: SC_MTCH_Info_BR_r14Mpdcch_Narrowband_SC_MTCH_r14, + pub mpdcch_num_repetition_sc_mtch_r14: SC_MTCH_Info_BR_r14Mpdcch_NumRepetition_SC_MTCH_r14, + pub mpdcch_start_sf_sc_mtch_r14: SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14, + pub mpdcch_pdsch_hopping_config_sc_mtch_r14: + SC_MTCH_Info_BR_r14Mpdcch_PDSCH_HoppingConfig_SC_MTCH_r14, + pub mpdcch_pdsch_c_emode_config_sc_mtch_r14: + SC_MTCH_Info_BR_r14Mpdcch_PDSCH_CEmodeConfig_SC_MTCH_r14, + pub mpdcch_pdsch_max_bandwidth_sc_mtch_r14: + SC_MTCH_Info_BR_r14Mpdcch_PDSCH_MaxBandwidth_SC_MTCH_r14, + pub mpdcch_offset_sc_mtch_r14: SC_MTCH_Info_BR_r14Mpdcch_Offset_SC_MTCH_r14, + #[asn(optional_idx = 2)] + pub p_a_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SC_MTCH_Info_r13 { + pub mbms_session_info_r13: MBMSSessionInfo_r13, + pub g_rnti_r13: SC_MTCH_Info_r13G_RNTI_r13, + #[asn(optional_idx = 0)] + pub sc_mtch_scheduling_info_r13: Option, + #[asn(optional_idx = 1)] + pub sc_mtch_neighbour_cell_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "0", + sz_ub = "128" +)] +pub struct SC_MTCH_InfoList_BR_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "0", + sz_ub = "1023" +)] +pub struct SC_MTCH_InfoList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SC_MTCH_SchedulingInfo_BR_r14 { + pub on_duration_timer_scptm_r14: SC_MTCH_SchedulingInfo_BR_r14OnDurationTimerSCPTM_r14, + pub drx_inactivity_timer_scptm_r14: SC_MTCH_SchedulingInfo_BR_r14Drx_InactivityTimerSCPTM_r14, + pub scheduling_period_start_offset_scptm_r14: + SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SC_MTCH_SchedulingInfo_r13 { + pub on_duration_timer_scptm_r13: SC_MTCH_SchedulingInfo_r13OnDurationTimerSCPTM_r13, + pub drx_inactivity_timer_scptm_r13: SC_MTCH_SchedulingInfo_r13Drx_InactivityTimerSCPTM_r13, + pub scheduling_period_start_offset_scptm_r13: + SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_Config_r12 { + pub critical_extensions: SCG_Config_r12CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_Config_r12_IEs { + #[asn(optional_idx = 0)] + pub scg_radio_config_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_Config_v12i0a_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_Config_v12i0b_IEs { + #[asn(optional_idx = 0)] + pub scg_radio_config_v12i0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_Config_v13c0_IEs { + #[asn(optional_idx = 0)] + pub scg_radio_config_v13c0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_ConfigInfo_r12 { + pub critical_extensions: SCG_ConfigInfo_r12CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 15)] +pub struct SCG_ConfigInfo_r12_IEs { + #[asn(optional_idx = 0)] + pub radio_resource_config_ded_mcg_r12: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_mcg_r12: Option, + #[asn(optional_idx = 2)] + pub meas_gap_config_r12: Option, + #[asn(optional_idx = 3)] + pub power_coordination_info_r12: Option, + #[asn(optional_idx = 4)] + pub scg_radio_config_r12: Option, + #[asn(optional_idx = 5)] + pub eutra_capability_info_r12: Option, + #[asn(optional_idx = 6)] + pub scg_config_restrict_info_r12: Option, + #[asn(optional_idx = 7)] + pub mbms_interest_indication_r12: Option, + #[asn(optional_idx = 8)] + pub meas_result_serv_cell_list_scg_r12: Option, + #[asn(optional_idx = 9)] + pub drb_to_add_mod_list_scg_r12: Option, + #[asn(optional_idx = 10)] + pub drb_to_release_list_scg_r12: Option, + #[asn(optional_idx = 11)] + pub s_cell_to_add_mod_list_scg_r12: Option, + #[asn(optional_idx = 12)] + pub s_cell_to_release_list_scg_r12: Option, + #[asn(optional_idx = 13)] + pub p_max_r12: Option, + #[asn(optional_idx = 14)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct SCG_ConfigInfo_v1310_IEs { + #[asn(optional_idx = 0)] + pub meas_result_sstd_r13: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_mcg_ext_r13: Option, + #[asn(optional_idx = 2)] + pub meas_result_serv_cell_list_scg_ext_r13: Option, + #[asn(optional_idx = 3)] + pub s_cell_to_add_mod_list_scg_ext_r13: Option, + #[asn(optional_idx = 4)] + pub s_cell_to_release_list_scg_ext_r13: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_ConfigInfo_v1330_IEs { + #[asn(optional_idx = 0)] + pub meas_result_list_rssi_scg_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SCG_ConfigInfo_v1430_IEs { + #[asn(optional_idx = 0)] + pub make_before_break_scg_req_r14: Option, + #[asn(optional_idx = 1)] + pub meas_gap_config_per_cc_list: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SCG_ConfigInfo_v1530_IEs { + #[asn(optional_idx = 0)] + pub drb_to_add_mod_list_scg_r15: Option, + #[asn(optional_idx = 1)] + pub drb_to_release_list_scg_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct SCG_ConfigPartSCG_r12 { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_scg_r12: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_release_list_scg_r12: Option, + #[asn(optional_idx = 2)] + pub ps_cell_to_add_mod_r12: Option, + #[asn(optional_idx = 3)] + pub s_cell_to_add_mod_list_scg_r12: Option, + #[asn(optional_idx = 4)] + pub mobility_control_info_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_ConfigPartSCG_v12f0 { + #[asn(optional_idx = 0)] + pub ps_cell_to_add_mod_v12f0: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_scg_v12f0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_ConfigPartSCG_v13c0 { + #[asn(optional_idx = 0)] + pub s_cell_to_add_mod_list_scg_v13c0: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_add_mod_list_scg_ext_v13c0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_ConfigRestrictInfo_r12 { + pub max_sch_tb_bits_dl_r12: SCG_ConfigRestrictInfo_r12MaxSCH_TB_BitsDL_r12, + pub max_sch_tb_bits_ul_r12: SCG_ConfigRestrictInfo_r12MaxSCH_TB_BitsUL_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCG_Configuration_r12 { + #[asn(key = 0, extended = false)] + Release(SCG_Configuration_r12_release), + #[asn(key = 1, extended = false)] + Setup(SCG_Configuration_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCG_Configuration_v12f0 { + #[asn(key = 0, extended = false)] + Release(SCG_Configuration_v12f0_release), + #[asn(key = 1, extended = false)] + Setup(SCG_Configuration_v12f0_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCG_Configuration_v13c0 { + #[asn(key = 0, extended = false)] + Release(SCG_Configuration_v13c0_release), + #[asn(key = 1, extended = false)] + Setup(SCG_Configuration_v13c0_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_DeactivationPreferenceConfig_r17 { + pub scg_deactivation_preference_prohibit_timer_r17: + SCG_DeactivationPreferenceConfig_r17Scg_DeactivationPreferenceProhibitTimer_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformation_r12 { + pub critical_extensions: SCGFailureInformation_r12CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCGFailureInformation_r12_IEs { + #[asn(optional_idx = 0)] + pub failure_report_scg_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCGFailureInformation_v12d0a_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCGFailureInformation_v12d0b_IEs { + #[asn(optional_idx = 0)] + pub failure_report_scg_v12d0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformationNR_r15 { + pub critical_extensions: SCGFailureInformationNR_r15CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCGFailureInformationNR_r15_IEs { + #[asn(optional_idx = 0)] + pub failure_report_scg_nr_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCGFailureInformationNR_v1590_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SCPTM_NeighbourCellList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SCPTM_Parameters_r13 { + #[asn(optional_idx = 0)] + pub scptm_parallel_reception_r13: Option, + #[asn(optional_idx = 1)] + pub scptm_s_cell_r13: Option, + #[asn(optional_idx = 2)] + pub scptm_non_serving_cell_r13: Option, + #[asn(optional_idx = 3)] + pub scptm_async_dc_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SCPTMConfiguration_BR_r14 { + pub sc_mtch_info_list_r14: SC_MTCH_InfoList_BR_r14, + #[asn(optional_idx = 0)] + pub scptm_neighbour_cell_list_r14: Option, + #[asn(optional_idx = 1)] + pub p_b_r14: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCPTMConfiguration_BR_v1610 { + pub sc_mtch_info_list_multi_tb_r16: SC_MTCH_InfoList_BR_r14, + #[asn(optional_idx = 0)] + pub multi_tb_gap_r16: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SCPTMConfiguration_r13 { + pub sc_mtch_info_list_r13: SC_MTCH_InfoList_r13, + #[asn(optional_idx = 0)] + pub scptm_neighbour_cell_list_r13: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCPTMConfiguration_v1340 { + #[asn(optional_idx = 0)] + pub p_b_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SCellConfigCommon_r15 { + #[asn(optional_idx = 0)] + pub radio_resource_config_common_s_cell_r15: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_dedicated_s_cell_r15: Option, + #[asn(optional_idx = 2)] + pub antenna_info_dedicated_s_cell_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SCellGroupIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SCellGroupToAddMod_r15 { + pub s_cell_group_index_r15: SCellGroupIndex_r15, + #[asn(optional_idx = 0)] + pub s_cell_config_common_r15: Option, + #[asn(optional_idx = 1)] + pub s_cell_to_release_list_r15: Option, + #[asn(optional_idx = 2)] + pub s_cell_to_add_mod_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellGroupToAddModList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellGroupToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "7")] +pub struct SCellIndex_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "31")] +pub struct SCellIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SCellToAddMod_r10 { + pub s_cell_index_r10: SCellIndex_r10, + #[asn(optional_idx = 0)] + pub cell_identification_r10: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_common_s_cell_r10: Option, + #[asn(optional_idx = 2)] + pub radio_resource_config_dedicated_s_cell_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct SCellToAddMod_r16 { + pub s_cell_index_r16: SCellIndex_r13, + #[asn(optional_idx = 0)] + pub cell_identification_r16: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_common_s_cell_r16: Option, + #[asn(optional_idx = 2)] + pub radio_resource_config_dedicated_s_cell_r16: Option, + #[asn(optional_idx = 3)] + pub antenna_info_dedicated_s_cell_r16: Option, + #[asn(optional_idx = 4)] + pub srs_switch_from_serv_cell_index_r16: + Option, + #[asn(optional_idx = 5)] + pub s_cell_state_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SCellToAddMod_v10l0 { + #[asn(optional_idx = 0)] + pub radio_resource_config_common_s_cell_v10l0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SCellToAddMod_v13c0 { + #[asn(optional_idx = 0)] + pub radio_resource_config_dedicated_s_cell_v13c0: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SCellToAddModExt_r13 { + pub s_cell_index_r13: SCellIndex_r13, + #[asn(optional_idx = 0)] + pub cell_identification_r13: Option, + #[asn(optional_idx = 1)] + pub radio_resource_config_common_s_cell_r13: Option, + #[asn(optional_idx = 2)] + pub radio_resource_config_dedicated_s_cell_r13: Option, + #[asn(optional_idx = 3)] + pub antenna_info_dedicated_s_cell_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SCellToAddModExt_v1370 { + #[asn(optional_idx = 0)] + pub radio_resource_config_common_s_cell_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SCellToAddModExt_v1430 { + #[asn(optional_idx = 0)] + pub srs_switch_from_serv_cell_index_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellToAddModList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellToAddModList_v10l0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellToAddModList_v13c0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModListExt_v1370(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModListExt_v13c0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModListExt_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToAddModListSCG_Ext_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellToAddModListSCG_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SCellToReleaseList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SCellToReleaseListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SI_OrPSI_GERAN { + #[asn(key = 0, extended = false)] + Si(SystemInfoListGERAN), + #[asn(key = 1, extended = false)] + Psi(SystemInfoListGERAN), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct SI_Periodicity_r12(pub u8); +impl SI_Periodicity_r12 { + pub const RF8: u8 = 0u8; + pub const RF16: u8 = 1u8; + pub const RF32: u8 = 2u8; + pub const RF64: u8 = 3u8; + pub const RF128: u8 = 4u8; + pub const RF256: u8 = 5u8; + pub const RF512: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "31")] +pub struct SIB_MappingInfo(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "31")] +pub struct SIB_MappingInfo_MBMS_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "31")] +pub struct SIB_MappingInfo_v12j0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SIB_Type(pub u8); +impl SIB_Type { + pub const SIB_TYPE3: u8 = 0u8; + pub const SIB_TYPE4: u8 = 1u8; + pub const SIB_TYPE5: u8 = 2u8; + pub const SIB_TYPE6: u8 = 3u8; + pub const SIB_TYPE7: u8 = 4u8; + pub const SIB_TYPE8: u8 = 5u8; + pub const SIB_TYPE9: u8 = 6u8; + pub const SIB_TYPE10: u8 = 7u8; + pub const SIB_TYPE11: u8 = 8u8; + pub const SIB_TYPE12_V920: u8 = 9u8; + pub const SIB_TYPE13_V920: u8 = 10u8; + pub const SIB_TYPE14_V1130: u8 = 11u8; + pub const SIB_TYPE15_V1130: u8 = 12u8; + pub const SIB_TYPE16_V1130: u8 = 13u8; + pub const SIB_TYPE17_V1250: u8 = 14u8; + pub const SIB_TYPE18_V1250: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "5")] +pub struct SIB_Type_MBMS_r14(pub u8); +impl SIB_Type_MBMS_r14 { + pub const SIB_TYPE10: u8 = 0u8; + pub const SIB_TYPE11: u8 = 1u8; + pub const SIB_TYPE12_V920: u8 = 2u8; + pub const SIB_TYPE13_V920: u8 = 3u8; + pub const SIB_TYPE15_V1130: u8 = 4u8; + pub const SIB_TYPE16_V1130: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SIB_Type_v12j0(pub u8); +impl SIB_Type_v12j0 { + pub const SIB_TYPE19_V1250: u8 = 0u8; + pub const SIB_TYPE20_V1310: u8 = 1u8; + pub const SIB_TYPE21_V1430: u8 = 2u8; + pub const SIB_TYPE24_V1530: u8 = 3u8; + pub const SIB_TYPE25_V1530: u8 = 4u8; + pub const SIB_TYPE26_V1530: u8 = 5u8; + pub const SIB_TYPE26A_V1610: u8 = 6u8; + pub const SIB_TYPE27_V1610: u8 = 7u8; + pub const SIB_TYPE28_V1610: u8 = 8u8; + pub const SIB_TYPE29_V1610: u8 = 9u8; + pub const SIB_TYPE30_V1700: u8 = 10u8; + pub const SIB_TYPE31_V1700: u8 = 11u8; + pub const SIB_TYPE32_V1700: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SIB8_PerPLMN_List_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SIB8_PerPLMN_r11 { + pub plmn_identity_r11: SIB8_PerPLMN_r11Plmn_Identity_r11, + pub parameters_cdma2000_r11: SIB8_PerPLMN_r11ParametersCDMA2000_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_AllowedCarrierFreqList_r15 { + pub allowed_carrier_freq_set1: SL_AllowedCarrierFreqList_r15AllowedCarrierFreqSet1, + pub allowed_carrier_freq_set2: SL_AllowedCarrierFreqList_r15AllowedCarrierFreqSet2, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_AnchorCarrierFreqList_V2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CBR_CommonTxConfigList_r14 { + pub cbr_range_common_config_list_r14: + SL_CBR_CommonTxConfigList_r14Cbr_RangeCommonConfigList_r14, + pub sl_cbr_pssch_tx_config_list_r14: SL_CBR_CommonTxConfigList_r14Sl_CBR_PSSCH_TxConfigList_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_CBR_Levels_Config_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PPPP_TxConfigList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PPPP_TxConfigList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PPPP_TxConfigList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PPPP_TxPreconfigList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PPPP_TxPreconfigList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CBR_PSSCH_TxConfig_r14 { + pub cr_limit_r14: SL_CBR_PSSCH_TxConfig_r14Cr_Limit_r14, + pub tx_parameters_r14: SL_PSSCH_TxParameters_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CBR_PreconfigTxConfigList_r14 { + pub cbr_range_common_config_list_r14: + SL_CBR_PreconfigTxConfigList_r14Cbr_RangeCommonConfigList_r14, + pub sl_cbr_pssch_tx_config_list_r14: + SL_CBR_PreconfigTxConfigList_r14Sl_CBR_PSSCH_TxConfigList_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "100")] +pub struct SL_CBR_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_CP_Len_r12(pub u8); +impl SL_CP_Len_r12 { + pub const NORMAL: u8 = 0u8; + pub const EXTENDED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CarrierFreqInfo_r12 { + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 0)] + pub plmn_identity_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SL_CarrierFreqInfo_v1310 { + #[asn(optional_idx = 0)] + pub disc_resources_non_ps_r13: Option, + #[asn(optional_idx = 1)] + pub disc_resources_ps_r13: Option, + #[asn(optional_idx = 2)] + pub disc_config_other_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CarrierFreqInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CarrierFreqInfoList_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SL_CommConfig_r12 { + #[asn(optional_idx = 0)] + pub comm_tx_resources_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SL_CommResourcePool_r12 { + pub sc_cp_len_r12: SL_CP_Len_r12, + pub sc_period_r12: SL_PeriodComm_r12, + pub sc_tf_resource_config_r12: SL_TF_ResourceConfig_r12, + pub data_cp_len_r12: SL_CP_Len_r12, + pub data_hopping_config_r12: SL_HoppingConfigComm_r12, + #[asn(optional_idx = 0)] + pub ue_selected_resource_config_r12: + Option, + #[asn(optional_idx = 1)] + pub rx_parameters_n_cell_r12: Option, + #[asn(optional_idx = 2)] + pub tx_parameters_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 11)] +pub struct SL_CommResourcePoolV2X_r14 { + #[asn(optional_idx = 0)] + pub sl_offset_indicator_r14: Option, + pub sl_subframe_r14: SubframeBitmapSL_r14, + pub adjacency_pscch_pssch_r14: SL_CommResourcePoolV2X_r14AdjacencyPSCCH_PSSCH_r14, + pub size_subchannel_r14: SL_CommResourcePoolV2X_r14SizeSubchannel_r14, + pub num_subchannel_r14: SL_CommResourcePoolV2X_r14NumSubchannel_r14, + pub start_rb_subchannel_r14: SL_CommResourcePoolV2X_r14StartRB_Subchannel_r14, + #[asn(optional_idx = 1)] + pub start_rb_pscch_pool_r14: Option, + #[asn(optional_idx = 2)] + pub rx_parameters_n_cell_r14: Option, + #[asn(optional_idx = 3)] + pub data_tx_parameters_r14: Option, + #[asn(optional_idx = 4)] + pub zone_id_r14: Option, + #[asn(optional_idx = 5)] + pub thresh_s_rssi_cbr_r14: Option, + #[asn(optional_idx = 6)] + pub pool_report_id_r14: Option, + #[asn(optional_idx = 7)] + pub cbr_pssch_tx_config_list_r14: Option, + #[asn(optional_idx = 8)] + pub resource_selection_config_p2x_r14: Option, + #[asn(optional_idx = 9)] + pub sync_allowed_r14: Option, + #[asn(optional_idx = 10)] + pub restrict_resource_reservation_period_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_CommRxPoolList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_CommRxPoolListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_CommTxPoolList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_CommTxPoolListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CommTxPoolListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_CommTxPoolSensingConfig_r14 { + pub pssch_tx_config_list_r14: SL_PSSCH_TxConfigList_r14, + pub thres_pssch_rsrp_list_r14: SL_ThresPSSCH_RSRP_List_r14, + #[asn(optional_idx = 0)] + pub restrict_resource_reservation_period_r14: + Option, + pub prob_resource_keep_r14: SL_CommTxPoolSensingConfig_r14ProbResourceKeep_r14, + #[asn(optional_idx = 1)] + pub p2x_sensing_config_r14: Option, + #[asn(optional_idx = 2)] + pub sl_reselect_after_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CommTxPoolToAddMod_r12 { + pub pool_identity_r12: SL_TxPoolIdentity_r12, + pub pool_r12: SL_CommResourcePool_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CommTxPoolToAddModExt_r13 { + pub pool_identity_v1310: SL_TxPoolIdentity_v1310, + pub pool_r13: SL_CommResourcePool_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_CommTxPoolToAddModList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_CommTxPoolToAddModListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CommTxResourceReq_r12 { + #[asn(optional_idx = 0)] + pub carrier_freq_r12: Option, + pub destination_info_list_r12: SL_DestinationInfoList_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct SL_DestinationIdentity_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_DestinationInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SL_DiscConfig_r12 { + #[asn(optional_idx = 0)] + pub disc_tx_resources_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SL_DiscConfigOtherInterFreq_r13 { + #[asn(optional_idx = 0)] + pub tx_power_info_r13: Option, + #[asn(optional_idx = 1)] + pub ref_carrier_common_r13: Option, + #[asn(optional_idx = 2)] + pub disc_sync_config_r13: Option, + #[asn(optional_idx = 3)] + pub disc_cell_selection_info_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SL_DiscConfigRelayUE_r13 { + #[asn(optional_idx = 0)] + pub thresh_high_r13: Option, + #[asn(optional_idx = 1)] + pub thresh_low_r13: Option, + #[asn(optional_idx = 2)] + pub hyst_max_r13: Option, + #[asn(optional_idx = 3)] + pub hyst_min_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_DiscConfigRemoteUE_r13 { + #[asn(optional_idx = 0)] + pub thresh_high_r13: Option, + #[asn(optional_idx = 1)] + pub hyst_max_r13: Option, + pub reselection_info_ic_r13: ReselectionInfoRelay_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SL_DiscResourcePool_r12 { + pub cp_len_r12: SL_CP_Len_r12, + pub disc_period_r12: SL_DiscResourcePool_r12DiscPeriod_r12, + pub num_retx_r12: SL_DiscResourcePool_r12NumRetx_r12, + pub num_repetition_r12: SL_DiscResourcePool_r12NumRepetition_r12, + pub tf_resource_config_r12: SL_TF_ResourceConfig_r12, + #[asn(optional_idx = 0)] + pub tx_parameters_r12: Option, + #[asn(optional_idx = 1)] + pub rx_parameters_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_DiscRxPoolList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 13)] +pub struct SL_DiscSysInfoReport_r13 { + #[asn(optional_idx = 0)] + pub plmn_identity_list_r13: Option, + #[asn(optional_idx = 1)] + pub cell_identity_13: Option, + #[asn(optional_idx = 2)] + pub carrier_freq_info_13: Option, + #[asn(optional_idx = 3)] + pub disc_rx_resources_r13: Option, + #[asn(optional_idx = 4)] + pub disc_tx_pool_common_r13: Option, + #[asn(optional_idx = 5)] + pub disc_tx_power_info_r13: Option, + #[asn(optional_idx = 6)] + pub disc_sync_config_r13: Option, + #[asn(optional_idx = 7)] + pub disc_cell_selection_info_r13: Option, + #[asn(optional_idx = 8)] + pub cell_reselection_info_r13: Option, + #[asn(optional_idx = 9)] + pub tdd_config_r13: Option, + #[asn(optional_idx = 10)] + pub freq_info_r13: Option, + #[asn(optional_idx = 11)] + pub p_max_r13: Option, + #[asn(optional_idx = 12)] + pub reference_signal_power_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_DiscSysInfoReportFreqList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_DiscSysInfoToReportFreqList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SL_DiscTxConfigScheduled_r13 { + #[asn(optional_idx = 0)] + pub disc_tx_config_r13: Option, + #[asn(optional_idx = 1)] + pub disc_tf_index_list_r13: Option, + #[asn(optional_idx = 2)] + pub disc_hopping_config_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SL_DiscTxInfoInterFreqListAdd_r13 { + #[asn(optional_idx = 0)] + pub disc_tx_freq_to_add_mod_list_r13: + Option, + #[asn(optional_idx = 1)] + pub disc_tx_freq_to_release_list_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_DiscTxPoolDedicated_r13 { + #[asn(optional_idx = 0)] + pub pool_to_release_list_r13: Option, + #[asn(optional_idx = 1)] + pub pool_to_add_mod_list_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_DiscTxPoolList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_DiscTxPoolToAddMod_r12 { + pub pool_identity_r12: SL_TxPoolIdentity_r12, + pub pool_r12: SL_DiscResourcePool_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_DiscTxPoolToAddModList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_DiscTxPowerInfo_r12 { + pub disc_max_tx_power_r12: P_Max, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct SL_DiscTxPowerInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscTxRefCarrierDedicated_r13 { + #[asn(key = 0, extended = false)] + PCell(SL_DiscTxRefCarrierDedicated_r13_pCell), + #[asn(key = 1, extended = false)] + SCell(SCellIndex_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscTxResource_r13 { + #[asn(key = 0, extended = false)] + Release(SL_DiscTxResource_r13_release), + #[asn(key = 1, extended = false)] + Setup(SL_DiscTxResource_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct SL_DiscTxResourceInfoPerFreq_r13 { + pub disc_tx_carrier_freq_r13: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 0)] + pub disc_tx_resources_r13: Option, + #[asn(optional_idx = 1)] + pub disc_tx_resources_ps_r13: Option, + #[asn(optional_idx = 2)] + pub disc_tx_ref_carrier_dedicated_r13: Option, + #[asn(optional_idx = 3)] + pub disc_cell_selection_info_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_DiscTxResourceReq_r13 { + #[asn(optional_idx = 0)] + pub carrier_freq_disc_tx_r13: Option, + pub disc_tx_resource_req_r13: SL_DiscTxResourceReq_r13DiscTxResourceReq_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_DiscTxResourceReqPerFreqList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum SL_DiscTxResourcesInterFreq_r13 { + #[asn(key = 0, extended = false)] + AcquireSI_FromCarrier_r13(SL_DiscTxResourcesInterFreq_r13_acquireSI_FromCarrier_r13), + #[asn(key = 1, extended = false)] + DiscTxPoolCommon_r13(SL_DiscTxPoolList_r12), + #[asn(key = 2, extended = false)] + RequestDedicated_r13(SL_DiscTxResourcesInterFreq_r13_requestDedicated_r13), + #[asn(key = 3, extended = false)] + NoTxOnCarrier_r13(SL_DiscTxResourcesInterFreq_r13_noTxOnCarrier_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_GapConfig_r13 { + pub gap_pattern_list_r13: SL_GapPatternList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_GapFreqInfo_r13 { + #[asn(optional_idx = 0)] + pub carrier_freq_r13: Option, + pub gap_pattern_list_r13: SL_GapPatternList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_GapPattern_r13 { + pub gap_period_r13: SL_GapPattern_r13GapPeriod_r13, + pub gap_offset_r12: SL_OffsetIndicator_r12, + pub gap_subframe_bitmap_r13: SL_GapPattern_r13GapSubframeBitmap_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_GapPatternList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_GapRequest_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_HoppingConfigComm_r12 { + pub hopping_parameter_r12: SL_HoppingConfigComm_r12HoppingParameter_r12, + pub num_subbands_r12: SL_HoppingConfigComm_r12NumSubbands_r12, + pub rb_offset_r12: SL_HoppingConfigComm_r12Rb_Offset_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_HoppingConfigDisc_r12 { + pub a_r12: SL_HoppingConfigDisc_r12A_r12, + pub b_r12: SL_HoppingConfigDisc_r12B_r12, + pub c_r12: SL_HoppingConfigDisc_r12C_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "7")] +pub struct SL_InterFreqInfoListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct SL_InterFreqInfoV2X_r14 { + #[asn(optional_idx = 0)] + pub plmn_identity_list_r14: Option, + pub v2x_comm_carrier_freq_r14: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 1)] + pub sl_max_tx_power_r14: Option, + #[asn(optional_idx = 2)] + pub sl_bandwidth_r14: Option, + #[asn(optional_idx = 3)] + pub v2x_scheduling_pool_r14: Option, + #[asn(optional_idx = 4)] + pub v2x_ue_config_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_MinT2Value_r15 { + pub priority_list_r15: SL_PriorityList_r13, + pub min_t2_value_r15: SL_MinT2Value_r15MinT2Value_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_MinT2ValueList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_NR_AnchorCarrierFreqList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_OffsetIndicator_r12 { + #[asn(key = 0, extended = false)] + Small_r12(SL_OffsetIndicator_r12_small_r12), + #[asn(key = 1, extended = false)] + Large_r12(SL_OffsetIndicator_r12_large_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct SL_OffsetIndicatorSync_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct SL_OffsetIndicatorSync_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "40", ub = "159")] +pub struct SL_OffsetIndicatorSync_v1430(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_P2X_ResourceSelectionConfig_r14 { + #[asn(optional_idx = 0)] + pub partial_sensing_r14: Option, + #[asn(optional_idx = 1)] + pub random_selection_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PPPP_TxConfigIndex_r14 { + pub priority_threshold_r14: SL_Priority_r13, + pub default_tx_config_index_r14: SL_PPPP_TxConfigIndex_r14DefaultTxConfigIndex_r14, + pub cbr_config_index_r14: SL_PPPP_TxConfigIndex_r14Cbr_ConfigIndex_r14, + pub tx_config_index_list_r14: SL_PPPP_TxConfigIndex_r14Tx_ConfigIndexList_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PPPP_TxConfigIndex_r15 { + pub priority_threshold_r15: SL_Priority_r13, + pub default_tx_config_index_r15: SL_PPPP_TxConfigIndex_r15DefaultTxConfigIndex_r15, + pub cbr_config_index_r15: SL_PPPP_TxConfigIndex_r15Cbr_ConfigIndex_r15, + pub tx_config_index_list_r15: SL_PPPP_TxConfigIndex_r15Tx_ConfigIndexList_r15, + pub mcs_pssch_range_list_r15: SL_PPPP_TxConfigIndex_r15Mcs_PSSCH_RangeList_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_PPPP_TxConfigIndex_v1530 { + #[asn(optional_idx = 0)] + pub mcs_pssch_range_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PPPP_TxPreconfigIndex_r14 { + pub priority_threshold_r14: SL_Priority_r13, + pub default_tx_config_index_r14: SL_PPPP_TxPreconfigIndex_r14DefaultTxConfigIndex_r14, + pub cbr_config_index_r14: SL_PPPP_TxPreconfigIndex_r14Cbr_ConfigIndex_r14, + pub tx_config_index_list_r14: SL_PPPP_TxPreconfigIndex_r14Tx_ConfigIndexList_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_PPPP_TxPreconfigIndex_v1530 { + #[asn(optional_idx = 0)] + pub mcs_pssch_range_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_PPPR_Dest_CarrierFreq { + #[asn(optional_idx = 0)] + pub destination_info_list_r15: Option, + #[asn(optional_idx = 1)] + pub allowed_carrier_freq_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPR_Dest_CarrierFreqList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SL_PSSCH_TxConfig_r14 { + #[asn(optional_idx = 0)] + pub type_tx_sync_r14: Option, + pub thres_ue_speed_r14: SL_PSSCH_TxConfig_r14ThresUE_Speed_r14, + pub parameters_above_thres_r14: SL_PSSCH_TxParameters_r14, + pub parameters_below_thres_r14: SL_PSSCH_TxParameters_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PSSCH_TxConfigList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_PSSCH_TxParameters_r14 { + pub min_mcs_pssch_r14: SL_PSSCH_TxParameters_r14MinMCS_PSSCH_r14, + pub max_mcs_pssch_r14: SL_PSSCH_TxParameters_r14MaxMCS_PSSCH_r14, + pub min_sub_channel_number_pssch_r14: SL_PSSCH_TxParameters_r14MinSubChannel_NumberPSSCH_r14, + pub max_subchannel_number_pssch_r14: SL_PSSCH_TxParameters_r14MaxSubchannel_NumberPSSCH_r14, + pub allowed_retx_number_pssch_r14: SL_PSSCH_TxParameters_r14AllowedRetxNumberPSSCH_r14, + #[asn(optional_idx = 0)] + pub max_tx_power_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PSSCH_TxParameters_v1530 { + pub min_mcs_pssch_r15: SL_PSSCH_TxParameters_v1530MinMCS_PSSCH_r15, + pub max_mcs_pssch_r15: SL_PSSCH_TxParameters_v1530MaxMCS_PSSCH_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct SL_Parameters_r12 { + #[asn(optional_idx = 0)] + pub comm_simultaneous_tx_r12: Option, + #[asn(optional_idx = 1)] + pub comm_supported_bands_r12: Option, + #[asn(optional_idx = 2)] + pub disc_supported_bands_r12: Option, + #[asn(optional_idx = 3)] + pub disc_scheduled_resource_alloc_r12: Option, + #[asn(optional_idx = 4)] + pub disc_ue_selected_resource_alloc_r12: + Option, + #[asn(optional_idx = 5)] + pub disc_slss_r12: Option, + #[asn(optional_idx = 6)] + pub disc_supported_proc_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SL_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub disc_sys_info_reporting_r13: Option, + #[asn(optional_idx = 1)] + pub comm_multiple_tx_r13: Option, + #[asn(optional_idx = 2)] + pub disc_inter_freq_tx_r13: Option, + #[asn(optional_idx = 3)] + pub disc_periodic_slss_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct SL_Parameters_v1430 { + #[asn(optional_idx = 0)] + pub zone_based_pool_selection_r14: Option, + #[asn(optional_idx = 1)] + pub ue_autonomous_with_full_sensing_r14: + Option, + #[asn(optional_idx = 2)] + pub ue_autonomous_with_partial_sensing_r14: + Option, + #[asn(optional_idx = 3)] + pub sl_congestion_control_r14: Option, + #[asn(optional_idx = 4)] + pub v2x_tx_with_short_resv_interval_r14: + Option, + #[asn(optional_idx = 5)] + pub v2x_number_tx_rx_timing_r14: Option, + #[asn(optional_idx = 6)] + pub v2x_non_adjacent_pscch_pssch_r14: Option, + #[asn(optional_idx = 7)] + pub slss_tx_rx_r14: Option, + #[asn(optional_idx = 8)] + pub v2x_supported_band_combination_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SL_Parameters_v1530 { + #[asn(optional_idx = 0)] + pub slss_supported_tx_freq_r15: Option, + #[asn(optional_idx = 1)] + pub sl_64qam_tx_r15: Option, + #[asn(optional_idx = 2)] + pub sl_tx_diversity_r15: Option, + #[asn(optional_idx = 3)] + pub ue_category_sl_r15: Option, + #[asn(optional_idx = 4)] + pub v2x_supported_band_combination_list_v1530: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SL_Parameters_v1540 { + #[asn(optional_idx = 0)] + pub sl_64qam_rx_r15: Option, + #[asn(optional_idx = 1)] + pub sl_rate_matching_tbs_scaling_r15: Option, + #[asn(optional_idx = 2)] + pub sl_low_t2min_r15: Option, + #[asn(optional_idx = 3)] + pub v2x_sensing_reporting_mode3_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_Parameters_v1610 { + #[asn(optional_idx = 0)] + pub sl_parameter_nr_r16: Option, + #[asn(optional_idx = 1)] + pub dummy: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_Parameters_v1630 { + #[asn(optional_idx = 0)] + pub v2x_supported_band_combination_list_eutra_nr_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_Parameters_v1710 { + #[asn(optional_idx = 0)] + pub v2x_supported_band_combination_list_eutra_nr_v1710: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SL_PeriodComm_r12(pub u8); +impl SL_PeriodComm_r12 { + pub const SF40: u8 = 0u8; + pub const SF60: u8 = 1u8; + pub const SF70: u8 = 2u8; + pub const SF80: u8 = 3u8; + pub const SF120: u8 = 4u8; + pub const SF140: u8 = 5u8; + pub const SF160: u8 = 6u8; + pub const SF240: u8 = 7u8; + pub const SF280: u8 = 8u8; + pub const SF320: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PoolSelectionConfig_r12 { + pub thresh_low_r12: RSRP_RangeSL2_r12, + pub thresh_high_r12: RSRP_RangeSL2_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_PreconfigCommPool_r12 { + pub sc_cp_len_r12: SL_CP_Len_r12, + pub sc_period_r12: SL_PeriodComm_r12, + pub sc_tf_resource_config_r12: SL_TF_ResourceConfig_r12, + pub sc_tx_parameters_r12: P0_SL_r12, + pub data_cp_len_r12: SL_CP_Len_r12, + pub data_tf_resource_config_r12: SL_TF_ResourceConfig_r12, + pub data_hopping_config_r12: SL_HoppingConfigComm_r12, + pub data_tx_parameters_r12: P0_SL_r12, + pub trpt_subset_r12: SL_TRPT_Subset_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_PreconfigCommPoolList4_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "12")] +pub struct SL_PreconfigCommRxPoolList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct SL_PreconfigCommTxPoolList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SL_PreconfigDiscPool_r13 { + pub cp_len_r13: SL_CP_Len_r12, + pub disc_period_r13: SL_PreconfigDiscPool_r13DiscPeriod_r13, + pub num_retx_r13: SL_PreconfigDiscPool_r13NumRetx_r13, + pub num_repetition_r13: SL_PreconfigDiscPool_r13NumRepetition_r13, + pub tf_resource_config_r13: SL_TF_ResourceConfig_r12, + #[asn(optional_idx = 0)] + pub tx_parameters_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PreconfigDiscRxPoolList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_PreconfigDiscTxPoolList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_PreconfigGeneral_r12 { + pub rohc_profiles_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12, + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, + pub max_tx_power_r12: P_Max, + pub additional_spectrum_emission_r12: AdditionalSpectrumEmission, + pub sl_bandwidth_r12: SL_PreconfigGeneral_r12Sl_bandwidth_r12, + pub tdd_config_sl_r12: TDD_ConfigSL_r12, + pub reserved_r12: SL_PreconfigGeneral_r12Reserved_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PreconfigRelay_r13 { + pub reselection_info_oo_c_r13: ReselectionInfoRelay_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_PreconfigSync_r12 { + pub sync_cp_len_r12: SL_CP_Len_r12, + pub sync_offset_indicator1_r12: SL_OffsetIndicatorSync_r12, + pub sync_offset_indicator2_r12: SL_OffsetIndicatorSync_r12, + pub sync_tx_parameters_r12: P0_SL_r12, + pub sync_tx_thresh_oo_c_r12: RSRP_RangeSL3_r12, + pub filter_coefficient_r12: FilterCoefficient, + pub sync_ref_min_hyst_r12: SL_PreconfigSync_r12SyncRefMinHyst_r12, + pub sync_ref_diff_hyst_r12: SL_PreconfigSync_r12SyncRefDiffHyst_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PreconfigV2X_RxPoolList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_PreconfigV2X_Sync_r14 { + pub sync_offset_indicators_r14: SL_V2X_SyncOffsetIndicators_r14, + pub sync_tx_parameters_r14: P0_SL_r12, + pub sync_tx_thresh_oo_c_r14: RSRP_RangeSL3_r12, + pub filter_coefficient_r14: FilterCoefficient, + pub sync_ref_min_hyst_r14: SL_PreconfigV2X_Sync_r14SyncRefMinHyst_r14, + pub sync_ref_diff_hyst_r14: SL_PreconfigV2X_Sync_r14SyncRefDiffHyst_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_PreconfigV2X_TxPoolList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SL_Preconfiguration_r12 { + pub preconfig_general_r12: SL_PreconfigGeneral_r12, + pub preconfig_sync_r12: SL_PreconfigSync_r12, + pub preconfig_comm_r12: SL_PreconfigCommPoolList4_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SL_Priority_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_PriorityList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SL_Reliability_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_ReliabilityList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_ResourcesInterFreq_r13 { + #[asn(optional_idx = 0)] + pub disc_rx_resources_inter_freq_r13: Option, + #[asn(optional_idx = 1)] + pub disc_tx_resources_inter_freq_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SL_RestrictResourceReservationPeriod_r14(pub u8); +impl SL_RestrictResourceReservationPeriod_r14 { + pub const V0DOT2: u8 = 0u8; + pub const V0DOT5: u8 = 1u8; + pub const V1: u8 = 2u8; + pub const V2: u8 = 3u8; + pub const V3: u8 = 4u8; + pub const V4: u8 = 5u8; + pub const V5: u8 = 6u8; + pub const V6: u8 = 7u8; + pub const V7: u8 = 8u8; + pub const V8: u8 = 9u8; + pub const V9: u8 = 10u8; + pub const V10: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_RestrictResourceReservationPeriodList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_SyncAllowed_r14 { + #[asn(optional_idx = 0)] + pub gnss_sync_r14: Option, + #[asn(optional_idx = 1)] + pub enb_sync_r14: Option, + #[asn(optional_idx = 2)] + pub ue_sync_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SL_SyncConfig_r12 { + pub sync_cp_len_r12: SL_CP_Len_r12, + pub sync_offset_indicator_r12: SL_OffsetIndicatorSync_r12, + pub slssid_r12: SLSSID_r12, + #[asn(optional_idx = 0)] + pub tx_parameters_r12: Option, + #[asn(optional_idx = 1)] + pub rx_params_n_cell_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_SyncConfigList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_SyncConfigListNFreq_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_SyncConfigListNFreqV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_SyncConfigListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SL_SyncConfigNFreq_r13 { + #[asn(optional_idx = 0)] + pub async_parameters_r13: Option, + #[asn(optional_idx = 1)] + pub tx_parameters_r13: Option, + #[asn(optional_idx = 2)] + pub rx_parameters_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_SyncTxControl_r12 { + #[asn(optional_idx = 0)] + pub network_controlled_sync_tx_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_TF_IndexPair_r12 { + #[asn(optional_idx = 0)] + pub disc_sf_index_r12: Option, + #[asn(optional_idx = 1)] + pub disc_prb_index_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_TF_IndexPair_r12b { + #[asn(optional_idx = 0)] + pub disc_sf_index_r12b: Option, + #[asn(optional_idx = 1)] + pub disc_prb_index_r12b: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SL_TF_IndexPairList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SL_TF_IndexPairList_r12b(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_TF_ResourceConfig_r12 { + pub prb_num_r12: SL_TF_ResourceConfig_r12Prb_Num_r12, + pub prb_start_r12: SL_TF_ResourceConfig_r12Prb_Start_r12, + pub prb_end_r12: SL_TF_ResourceConfig_r12Prb_End_r12, + pub offset_indicator_r12: SL_OffsetIndicator_r12, + pub subframe_bitmap_r12: SubframeBitmapSL_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "5")] +pub struct SL_TRPT_Subset_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "64", + sz_ub = "64" +)] +pub struct SL_ThresPSSCH_RSRP_List_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "66")] +pub struct SL_ThresPSSCH_RSRP_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_TxParameters_r12 { + pub alpha_r12: Alpha_r12, + pub p0_r12: P0_SL_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SL_TxPoolIdentity_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "8")] +pub struct SL_TxPoolIdentity_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_TxPoolToAddMod_r14 { + pub pool_identity_r14: SL_V2X_TxPoolIdentity_r14, + pub pool_r14: SL_CommResourcePoolV2X_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_TxPoolToAddModListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_TxPoolToReleaseList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_TxPoolToReleaseListExt_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_TxPoolToReleaseListV2X_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_TxPower_r14 { + #[asn(key = 0, extended = false)] + Minusinfinity_r14(SL_TxPower_r14_minusinfinity_r14), + #[asn(key = 1, extended = false)] + TxPower_r14(SL_TxPower_r14_txPower_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SL_TypeTxSync_r14(pub u8); +impl SL_TypeTxSync_r14 { + pub const GNSS: u8 = 0u8; + pub const ENB: u8 = 1u8; + pub const UE: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_V2X_CommFreqList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_V2X_CommTxFreqList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_V2X_CommTxResourceReq_r14 { + #[asn(optional_idx = 0)] + pub carrier_freq_comm_tx_r14: Option, + #[asn(optional_idx = 1)] + pub v2x_type_tx_sync_r14: Option, + #[asn(optional_idx = 2)] + pub v2x_destination_info_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 13)] +pub struct SL_V2X_ConfigCommon_r14 { + #[asn(optional_idx = 0)] + pub v2x_comm_rx_pool_r14: Option, + #[asn(optional_idx = 1)] + pub v2x_comm_tx_pool_normal_common_r14: Option, + #[asn(optional_idx = 2)] + pub p2x_comm_tx_pool_normal_common_r14: Option, + #[asn(optional_idx = 3)] + pub v2x_comm_tx_pool_exceptional_r14: Option, + #[asn(optional_idx = 4)] + pub v2x_sync_config_r14: Option, + #[asn(optional_idx = 5)] + pub v2x_inter_freq_info_list_r14: Option, + #[asn(optional_idx = 6)] + pub v2x_resource_selection_config_r14: Option, + #[asn(optional_idx = 7)] + pub zone_config_r14: Option, + #[asn(optional_idx = 8)] + pub type_tx_sync_r14: Option, + #[asn(optional_idx = 9)] + pub thres_sl_tx_prioritization_r14: Option, + #[asn(optional_idx = 10)] + pub anchor_carrier_freq_list_r14: Option, + #[asn(optional_idx = 11)] + pub offset_dfn_r14: Option, + #[asn(optional_idx = 12)] + pub cbr_common_tx_config_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct SL_V2X_ConfigDedicated_r14 { + #[asn(optional_idx = 0)] + pub comm_tx_resources_r14: Option, + #[asn(optional_idx = 1)] + pub v2x_inter_freq_info_list_r14: Option, + #[asn(optional_idx = 2)] + pub thres_sl_tx_prioritization_r14: Option, + #[asn(optional_idx = 3)] + pub type_tx_sync_r14: Option, + #[asn(optional_idx = 4)] + pub cbr_dedicated_tx_config_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_V2X_FreqSelectionConfig_r15 { + pub priority_list_r15: SL_PriorityList_r13, + #[asn(optional_idx = 0)] + pub thresh_cbr_freq_reselection_r15: Option, + #[asn(optional_idx = 1)] + pub thresh_cbr_freq_keeping_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_V2X_FreqSelectionConfigList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct SL_V2X_InterFreqUE_Config_r14 { + #[asn(optional_idx = 0)] + pub phys_cell_id_list_r14: Option, + #[asn(optional_idx = 1)] + pub type_tx_sync_r14: Option, + #[asn(optional_idx = 2)] + pub v2x_sync_config_r14: Option, + #[asn(optional_idx = 3)] + pub v2x_comm_rx_pool_r14: Option, + #[asn(optional_idx = 4)] + pub v2x_comm_tx_pool_normal_r14: Option, + #[asn(optional_idx = 5)] + pub p2x_comm_tx_pool_normal_r14: Option, + #[asn(optional_idx = 6)] + pub v2x_comm_tx_pool_exceptional_r14: Option, + #[asn(optional_idx = 7)] + pub v2x_resource_selection_config_r14: Option, + #[asn(optional_idx = 8)] + pub zone_config_r14: Option, + #[asn(optional_idx = 9)] + pub offset_dfn_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SL_V2X_PacketDuplicationConfig_r15 { + pub thresh_sl_reliability_r15: SL_Reliability_r15, + #[asn(optional_idx = 0)] + pub allowed_carrier_freq_config_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 8)] +pub struct SL_V2X_PreconfigCommPool_r14 { + #[asn(optional_idx = 0)] + pub sl_offset_indicator_r14: Option, + pub sl_subframe_r14: SubframeBitmapSL_r14, + pub adjacency_pscch_pssch_r14: SL_V2X_PreconfigCommPool_r14AdjacencyPSCCH_PSSCH_r14, + pub size_subchannel_r14: SL_V2X_PreconfigCommPool_r14SizeSubchannel_r14, + pub num_subchannel_r14: SL_V2X_PreconfigCommPool_r14NumSubchannel_r14, + pub start_rb_subchannel_r14: SL_V2X_PreconfigCommPool_r14StartRB_Subchannel_r14, + #[asn(optional_idx = 1)] + pub start_rb_pscch_pool_r14: Option, + pub data_tx_parameters_r14: P0_SL_r12, + #[asn(optional_idx = 2)] + pub zone_id_r14: Option, + #[asn(optional_idx = 3)] + pub thresh_s_rssi_cbr_r14: Option, + #[asn(optional_idx = 4)] + pub cbr_pssch_tx_config_list_r14: Option, + #[asn(optional_idx = 5)] + pub resource_selection_config_p2x_r14: Option, + #[asn(optional_idx = 6)] + pub sync_allowed_r14: Option, + #[asn(optional_idx = 7)] + pub restrict_resource_reservation_period_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 5)] +pub struct SL_V2X_PreconfigFreqInfo_r14 { + pub v2x_comm_preconfig_general_r14: SL_PreconfigGeneral_r12, + #[asn(optional_idx = 0)] + pub v2x_comm_preconfig_sync_r14: Option, + pub v2x_comm_rx_pool_list_r14: SL_PreconfigV2X_RxPoolList_r14, + pub v2x_comm_tx_pool_list_r14: SL_PreconfigV2X_TxPoolList_r14, + pub p2x_comm_tx_pool_list_r14: SL_PreconfigV2X_TxPoolList_r14, + #[asn(optional_idx = 1)] + pub v2x_resource_selection_config_r14: Option, + #[asn(optional_idx = 2)] + pub zone_config_r14: Option, + pub sync_priority_r14: SL_V2X_PreconfigFreqInfo_r14SyncPriority_r14, + #[asn(optional_idx = 3)] + pub thres_sl_tx_prioritization_r14: Option, + #[asn(optional_idx = 4)] + pub offset_dfn_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_V2X_PreconfigFreqList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SL_V2X_Preconfiguration_r14 { + pub v2x_preconfig_freq_list_r14: SL_V2X_PreconfigFreqList_r14, + #[asn(optional_idx = 0)] + pub anchor_carrier_freq_list_r14: Option, + #[asn(optional_idx = 1)] + pub cbr_preconfig_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_V2X_SyncFreqList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_V2X_SyncOffsetIndicators_r14 { + pub sync_offset_indicator1_r14: SL_OffsetIndicatorSync_r14, + pub sync_offset_indicator2_r14: SL_OffsetIndicatorSync_r14, + #[asn(optional_idx = 0)] + pub sync_offset_indicator3_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SL_V2X_TxPoolIdentity_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "72")] +pub struct SL_V2X_TxPoolReportIdentity_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct SL_V2X_TxProfile_r15(pub u8); +impl SL_V2X_TxProfile_r15 { + pub const REL14: u8 = 0u8; + pub const REL15: u8 = 1u8; + pub const SPARE6: u8 = 2u8; + pub const SPARE5: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SL_V2X_TxProfileList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_V2X_UE_ConfigList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_ZoneConfig_r14 { + pub zone_length_r14: SL_ZoneConfig_r14ZoneLength_r14, + pub zone_width_r14: SL_ZoneConfig_r14ZoneWidth_r14, + pub zone_id_longi_mod_r14: SL_ZoneConfig_r14ZoneIdLongiMod_r14, + pub zone_id_lati_mod_r14: SL_ZoneConfig_r14ZoneIdLatiMod_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "167")] +pub struct SLSSID_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SN_FieldLength(pub u8); +impl SN_FieldLength { + pub const SIZE5: u8 = 0u8; + pub const SIZE10: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SN_FieldLength_r15(pub u8); +impl SN_FieldLength_r15 { + pub const SIZE5: u8 = 0u8; + pub const SIZE10: u8 = 1u8; + pub const SIZE16_R15: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SON_Parameters_r9 { + #[asn(optional_idx = 0)] + pub rach_report_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPDCCH_Config_r15 { + #[asn(key = 0, extended = false)] + Release(SPDCCH_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPDCCH_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPDCCH_Elements_r15 { + #[asn(key = 0, extended = false)] + Release(SPDCCH_Elements_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPDCCH_Elements_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPDCCH_Set_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SPS_Config { + #[asn(optional_idx = 0)] + pub semi_persist_sched_c_rnti: Option, + #[asn(optional_idx = 1)] + pub sps_config_dl: Option, + #[asn(optional_idx = 2)] + pub sps_config_ul: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct SPS_Config_v1430 { + #[asn(optional_idx = 0)] + pub ul_sps_v_rnti_r14: Option, + #[asn(optional_idx = 1)] + pub sl_sps_v_rnti_r14: Option, + #[asn(optional_idx = 2)] + pub sps_config_ul_to_add_mod_list_r14: Option, + #[asn(optional_idx = 3)] + pub sps_config_ul_to_release_list_r14: Option, + #[asn(optional_idx = 4)] + pub sps_config_sl_to_add_mod_list_r14: Option, + #[asn(optional_idx = 5)] + pub sps_config_sl_to_release_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct SPS_Config_v1530 { + #[asn(optional_idx = 0)] + pub semi_persist_sched_c_rnti_r15: Option, + #[asn(optional_idx = 1)] + pub sps_config_dl_r15: Option, + #[asn(optional_idx = 2)] + pub sps_config_ul_stti_to_add_mod_list_r15: Option, + #[asn(optional_idx = 3)] + pub sps_config_ul_stti_to_release_list_r15: Option, + #[asn(optional_idx = 4)] + pub sps_config_ul_to_add_mod_list_r15: Option, + #[asn(optional_idx = 5)] + pub sps_config_ul_to_release_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SPS_Config_v1540 { + #[asn(optional_idx = 0)] + pub sps_config_dl_stti_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigDL { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigDL_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigDL_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigDL_STTI_r15 { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigDL_STTI_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigDL_STTI_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SPS_ConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct SPS_ConfigIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SPS_ConfigSL_ToAddModList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SPS_ConfigSL_ToReleaseList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPS_ConfigSL_r14 { + pub sps_config_index_r14: SPS_ConfigIndex_r14, + pub semi_persist_sched_interval_sl_r14: SPS_ConfigSL_r14SemiPersistSchedIntervalSL_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigUL { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigUL_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigUL_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SPS_ConfigUL_STTI_ToAddModList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SPS_ConfigUL_STTI_ToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigUL_STTI_r15 { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigUL_STTI_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigUL_STTI_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SPS_ConfigUL_ToAddModList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SPS_ConfigUL_ToAddModList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SPS_ConfigUL_ToReleaseList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SPS_ConfigUL_ToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SPT_Parameters_r15 { + #[asn(optional_idx = 0)] + pub frame_structure_type_spt_r15: Option, + #[asn(optional_idx = 1)] + pub max_number_c_cs_spt_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPUCCH_Config_r15 { + #[asn(key = 0, extended = false)] + Release(SPUCCH_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPUCCH_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPUCCH_Config_v1550 { + #[asn(key = 0, extended = false)] + Release(SPUCCH_Config_v1550_release), + #[asn(key = 1, extended = false)] + Setup(SPUCCH_Config_v1550_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPUCCH_Elements_r15 { + #[asn(key = 0, extended = false)] + Release(SPUCCH_Elements_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPUCCH_Elements_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPUCCH_Set_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SR_ProhibitTimerOffset_r17(pub u8); +impl SR_ProhibitTimerOffset_r17 { + pub const MS90: u8 = 0u8; + pub const MS180: u8 = 1u8; + pub const MS270: u8 = 2u8; + pub const MS360: u8 = 3u8; + pub const MS450: u8 = 4u8; + pub const MS540: u8 = 5u8; + pub const MS1080: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SR_SubslotSPUCCH_ResourceList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SRB_ToAddMod { + pub srb_identity: SRB_ToAddModSrb_Identity, + #[asn(optional_idx = 0)] + pub rlc_config: Option, + #[asn(optional_idx = 1)] + pub logical_channel_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SRB_ToAddModList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct SRB_ToAddModListExt_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SRB_ToReleaseList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_AntennaPort(pub u8); +impl SRS_AntennaPort { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SRS_CC_SetIndex_r14 { + pub cc_set_index_r14: SRS_CC_SetIndex_r14Cc_SetIndex_r14, + pub cc_index_in_one_cc_set_r14: SRS_CC_SetIndex_r14Cc_IndexInOneCC_Set_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SRS_CapabilityPerBandPair_r14 { + pub retuning_info: SRS_CapabilityPerBandPair_r14RetuningInfo, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SRS_CapabilityPerBandPair_v14b0 { + #[asn(optional_idx = 0)] + pub srs_flexible_timing_r14: Option, + #[asn(optional_idx = 1)] + pub srs_harq_reference_config_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SRS_CapabilityPerBandPair_v1610 { + #[asn(optional_idx = 0)] + pub add_srs_carrier_switching_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SRS_ConfigAdd_r16 { + pub srs_rep_num_add_r16: SRS_ConfigAdd_r16Srs_RepNumAdd_r16, + pub srs_bandwidth_add_r16: SRS_ConfigAdd_r16Srs_BandwidthAdd_r16, + pub srs_hopping_bandwidth_add_r16: SRS_ConfigAdd_r16Srs_HoppingBandwidthAdd_r16, + pub srs_freq_domain_pos_add_r16: SRS_ConfigAdd_r16Srs_FreqDomainPosAdd_r16, + pub srs_antenna_port_add_r16: SRS_AntennaPort, + pub srs_cyclic_shift_add_r16: SRS_ConfigAdd_r16Srs_CyclicShiftAdd_r16, + pub srs_transmission_comb_num_add_r16: SRS_ConfigAdd_r16Srs_TransmissionCombNumAdd_r16, + pub srs_transmission_comb_add_r16: SRS_ConfigAdd_r16Srs_TransmissionCombAdd_r16, + pub srs_start_pos_add_r16: SRS_ConfigAdd_r16Srs_StartPosAdd_r16, + pub srs_duration_add_r16: SRS_ConfigAdd_r16Srs_DurationAdd_r16, + #[asn(optional_idx = 0)] + pub srs_guard_symbol_as_add_r16: Option, + #[asn(optional_idx = 1)] + pub srs_guard_symbol_fh_add_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SRS_ConfigAp_r10 { + pub srs_antenna_port_ap_r10: SRS_AntennaPort, + pub srs_bandwidth_ap_r10: SRS_ConfigAp_r10Srs_BandwidthAp_r10, + pub freq_domain_position_ap_r10: SRS_ConfigAp_r10FreqDomainPositionAp_r10, + pub transmission_comb_ap_r10: SRS_ConfigAp_r10TransmissionCombAp_r10, + pub cyclic_shift_ap_r10: SRS_ConfigAp_r10CyclicShiftAp_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SRS_ConfigAp_r13 { + pub srs_antenna_port_ap_r13: SRS_AntennaPort, + pub srs_bandwidth_ap_r13: SRS_ConfigAp_r13Srs_BandwidthAp_r13, + pub freq_domain_position_ap_r13: SRS_ConfigAp_r13FreqDomainPositionAp_r13, + pub transmission_comb_ap_r13: SRS_ConfigAp_r13TransmissionCombAp_r13, + pub cyclic_shift_ap_r13: SRS_ConfigAp_r13CyclicShiftAp_r13, + pub transmission_comb_num_r13: SRS_ConfigAp_r13TransmissionCombNum_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SRS_ConfigAp_v1310 { + #[asn(optional_idx = 0)] + pub transmission_comb_ap_v1310: Option, + #[asn(optional_idx = 1)] + pub cyclic_shift_ap_v1310: Option, + #[asn(optional_idx = 2)] + pub transmission_comb_num_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SRS_TPC_PDCCH_Config_r14 { + #[asn(key = 0, extended = false)] + Release(SRS_TPC_PDCCH_Config_r14_release), + #[asn(key = 1, extended = false)] + Setup(SRS_TPC_PDCCH_Config_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SS_RSSI_Measurement_r15 { + pub measurement_slots_r15: SS_RSSI_Measurement_r15MeasurementSlots_r15, + pub end_symbol_r15: SS_RSSI_Measurement_r15EndSymbol_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SSB_IndexList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SSB_PositionQCL_CellsToAddModListNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SSB_PositionQCL_CellsToAddModListNR_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SSB_PositionQCL_CellsToAddNR_r16 { + pub phys_cell_id_r16: PhysCellIdNR_r15, + pub ssb_position_qcl_nr_r16: SSB_PositionQCL_RelationNR_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SSB_PositionQCL_CellsToAddNR_r17 { + pub phys_cell_id_nr_r17: PhysCellIdNR_r15, + pub ssb_position_qcl_nr_r17: SSB_PositionQCL_RelationNR_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SSB_PositionQCL_RelationNR_r16(pub u8); +impl SSB_PositionQCL_RelationNR_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SSB_PositionQCL_RelationNR_r17(pub u8); +impl SSB_PositionQCL_RelationNR_r17 { + pub const N32: u8 = 0u8; + pub const N64: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum SSB_ToMeasure_r15 { + #[asn(key = 0, extended = false)] + ShortBitmap_r15(SSB_ToMeasure_r15_shortBitmap_r15), + #[asn(key = 1, extended = false)] + MediumBitmap_r15(SSB_ToMeasure_r15_mediumBitmap_r15), + #[asn(key = 2, extended = false)] + LongBitmap_r15(SSB_ToMeasure_r15_longBitmap_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct STAG_Id_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct STAG_ToAddMod_r11 { + pub stag_id_r11: STAG_Id_r11, + pub time_alignment_timer_stag_r11: TimeAlignmentTimer, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct STAG_ToAddModList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct STAG_ToReleaseList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 12)] +pub struct STTI_SPT_BandParameters_r15 { + #[asn(optional_idx = 0)] + pub dl_1024qam_slot_r15: Option, + #[asn(optional_idx = 1)] + pub dl_1024qam_subslot_ta_1_r15: Option, + #[asn(optional_idx = 2)] + pub dl_1024qam_subslot_ta_2_r15: Option, + #[asn(optional_idx = 3)] + pub simultaneous_tx_different_tx_duration_r15: + Option, + #[asn(optional_idx = 4)] + pub stti_ca_mimo_parameters_dl_r15: Option, + pub stti_ca_mimo_parameters_ul_r15: CA_MIMO_ParametersUL_r15, + #[asn(optional_idx = 5)] + pub stti_fd_mimo_coexistence: Option, + #[asn(optional_idx = 6)] + pub stti_mimo_ca_parameters_per_bo_b_cs_r15: Option, + #[asn(optional_idx = 7)] + pub stti_mimo_ca_parameters_per_bo_b_cs_v1530: Option, + #[asn(optional_idx = 8)] + pub stti_supported_combinations_r15: Option, + #[asn(optional_idx = 9)] + pub stti_supported_csi_proc_r15: Option, + #[asn(optional_idx = 10)] + pub ul_256qam_slot_r15: Option, + #[asn(optional_idx = 11)] + pub ul_256qam_subslot_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct STTI_SupportedCombinations_r15 { + #[asn(optional_idx = 0)] + pub combination_22_r15: Option, + #[asn(optional_idx = 1)] + pub combination_77_r15: Option, + #[asn(optional_idx = 2)] + pub combination_27_r15: Option, + #[asn(optional_idx = 3)] + pub combination_22_27_r15: Option, + #[asn(optional_idx = 4)] + pub combination_77_22_r15: Option, + #[asn(optional_idx = 5)] + pub combination_77_27_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SatelliteInfo_r17 { + pub satellite_id_r17: SatelliteInfo_r17SatelliteId_r17, + pub service_info_r17: SatelliteInfo_r17ServiceInfo_r17, + pub footprint_info_r17: SatelliteInfo_r17FootprintInfo_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SatelliteInfoList_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct ScalingFactorSidelink_r16(pub u8); +impl ScalingFactorSidelink_r16 { + pub const F0P4: u8 = 0u8; + pub const F0P75: u8 = 1u8; + pub const F0P8: u8 = 2u8; + pub const F1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SchedulingInfo { + pub si_periodicity: SI_Periodicity_r12, + pub sib_mapping_info: SIB_MappingInfo, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SchedulingInfo_BR_r13 { + pub si_narrowband_r13: SchedulingInfo_BR_r13Si_Narrowband_r13, + pub si_tbs_r13: SchedulingInfo_BR_r13Si_TBS_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SchedulingInfo_MBMS_r14 { + pub si_periodicity_r14: SchedulingInfo_MBMS_r14Si_Periodicity_r14, + pub sib_mapping_info_r14: SIB_MappingInfo_MBMS_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SchedulingInfo_v12j0 { + #[asn(optional_idx = 0)] + pub sib_mapping_info_v12j0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SchedulingInfoExt_r12 { + pub si_periodicity_r12: SI_Periodicity_r12, + pub sib_mapping_info_r12: SIB_MappingInfo_v12j0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SchedulingInfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SchedulingInfoList_BR_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SchedulingInfoList_MBMS_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SchedulingInfoList_v12j0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SchedulingInfoListExt_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SchedulingRequestConfig { + #[asn(key = 0, extended = false)] + Release(SchedulingRequestConfig_release), + #[asn(key = 1, extended = false)] + Setup(SchedulingRequestConfig_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SchedulingRequestConfig_v1020 { + #[asn(optional_idx = 0)] + pub sr_pucch_resource_index_p1_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SchedulingRequestConfig_v1530 { + #[asn(key = 0, extended = false)] + Release(SchedulingRequestConfig_v1530_release), + #[asn(key = 1, extended = false)] + Setup(SchedulingRequestConfig_v1530_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SchedulingRequestConfigSCell_r13 { + #[asn(key = 0, extended = false)] + Release(SchedulingRequestConfigSCell_r13_release), + #[asn(key = 1, extended = false)] + Setup(SchedulingRequestConfigSCell_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SecondaryPreRegistrationZoneIdListHRPD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityAlgorithmConfig { + pub ciphering_algorithm: CipheringAlgorithm_r12, + pub integrity_prot_algorithm: SecurityAlgorithmConfigIntegrityProtAlgorithm, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SecurityConfigHO { + pub handover_type: SecurityConfigHOHandoverType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SecurityConfigHO_v1530 { + pub handover_type_v1530: SecurityConfigHO_v1530HandoverType_v1530, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SecurityConfigSMC { + pub security_algorithm_config: SecurityAlgorithmConfig, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeCommand { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: SecurityModeCommandCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SecurityModeCommand_r8_IEs { + pub security_config_smc: SecurityConfigSMC, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SecurityModeCommand_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeComplete { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: SecurityModeCompleteCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SecurityModeComplete_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SecurityModeComplete_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeFailure { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: SecurityModeFailureCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SecurityModeFailure_r8_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SecurityModeFailure_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SensingResult_r15 { + pub resource_index_r15: SensingResult_r15ResourceIndex_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct ServCellIndex_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct ServCellIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct ServingSatelliteInfo_r17 { + pub ephemeris_info_r17: ServingSatelliteInfo_r17EphemerisInfo_r17, + pub nta_common_parameters_17: ServingSatelliteInfo_r17Nta_CommonParameters_17, + pub ul_sync_validity_duration_r17: ServingSatelliteInfo_r17Ul_SyncValidityDuration_r17, + #[asn(optional_idx = 0)] + pub epoch_time_r17: Option, + pub k_offset_r17: ServingSatelliteInfo_r17K_Offset_r17, + #[asn(optional_idx = 1)] + pub k_mac_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SharedSpectrumMeasNR_r17 { + pub nr_rssi_channel_occupancy_reporting_r17: + SharedSpectrumMeasNR_r17Nr_RSSI_ChannelOccupancyReporting_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct ShortI_RNTI_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct ShortMAC_I(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ShortTTI_Length_r15(pub u8); +impl ShortTTI_Length_r15 { + pub const SLOT: u8 = 0u8; + pub const SUBSLOT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ShortTTI_r15 { + #[asn(optional_idx = 0)] + pub dl_stti_length_r15: Option, + #[asn(optional_idx = 1)] + pub ul_stti_length_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SidelinkUEInformation_r12 { + pub critical_extensions: SidelinkUEInformation_r12CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct SidelinkUEInformation_r12_IEs { + #[asn(optional_idx = 0)] + pub comm_rx_interested_freq_r12: Option, + #[asn(optional_idx = 1)] + pub comm_tx_resource_req_r12: Option, + #[asn(optional_idx = 2)] + pub disc_rx_interest_r12: Option, + #[asn(optional_idx = 3)] + pub disc_tx_resource_req_r12: Option, + #[asn(optional_idx = 4)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 8)] +pub struct SidelinkUEInformation_v1310_IEs { + #[asn(optional_idx = 0)] + pub comm_tx_resource_req_uc_r13: Option, + #[asn(optional_idx = 1)] + pub comm_tx_resource_info_req_relay_r13: + Option, + #[asn(optional_idx = 2)] + pub disc_tx_resource_req_v1310: Option, + #[asn(optional_idx = 3)] + pub disc_tx_resource_req_ps_r13: Option, + #[asn(optional_idx = 4)] + pub disc_rx_gap_req_r13: Option, + #[asn(optional_idx = 5)] + pub disc_tx_gap_req_r13: Option, + #[asn(optional_idx = 6)] + pub disc_sys_info_report_freq_list_r13: Option, + #[asn(optional_idx = 7)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SidelinkUEInformation_v1430_IEs { + #[asn(optional_idx = 0)] + pub v2x_comm_rx_interested_freq_list_r14: Option, + #[asn(optional_idx = 1)] + pub p2x_comm_tx_type_r14: Option, + #[asn(optional_idx = 2)] + pub v2x_comm_tx_resource_req_r14: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SidelinkUEInformation_v1530_IEs { + #[asn(optional_idx = 0)] + pub reliability_info_list_sl_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SkipSubframeProcessing_r15 { + #[asn(optional_idx = 0)] + pub skip_processing_dl_slot_r15: Option, + #[asn(optional_idx = 1)] + pub skip_processing_dl_sub_slot_r15: + Option, + #[asn(optional_idx = 2)] + pub skip_processing_ul_slot_r15: Option, + #[asn(optional_idx = 3)] + pub skip_processing_ul_sub_slot_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SlotOrSubslotPDSCH_Config_r15 { + #[asn(key = 0, extended = false)] + Release(SlotOrSubslotPDSCH_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(SlotOrSubslotPDSCH_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SlotOrSubslotPUSCH_Config_r15 { + #[asn(key = 0, extended = false)] + Release(SlotOrSubslotPUSCH_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(SlotOrSubslotPUSCH_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SoundingRS_AperiodicSet_r14 { + #[asn(optional_idx = 0)] + pub srs_cc_set_index_list_r14: Option, + pub sounding_rs_ul_config_dedicated_aperiodic_r14: SoundingRS_UL_ConfigDedicatedAperiodic_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SoundingRS_AperiodicSetUpPTsExt_r14 { + #[asn(optional_idx = 0)] + pub srs_cc_set_index_list_r14: + Option, + pub sounding_rs_ul_config_dedicated_aperiodic_up_p_ts_ext_r14: + SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigCommon { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigCommon_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigCommon_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicated { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicated_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicated_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_UL_ConfigDedicated_v1020 { + pub srs_antenna_port_r10: SRS_AntennaPort, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicated_v1310 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicated_v1310_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicated_v1310_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SoundingRS_UL_ConfigDedicatedAdd_r16 { + pub srs_config_index_ap_r16: SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ConfigIndexAp_r16, + #[asn(optional_idx = 0)] + pub srs_config_ap_dci_format4_r16: + Option, + #[asn(optional_idx = 1)] + pub srs_activate_ap_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodic_r10 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodic_r10_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodic_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodic_v1310 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodic_v1310_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodic_v1430 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodic_v1430_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodic_v1430_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedUpPTsExt_r13 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_VirtualCellID_r16 { + pub srs_virtual_cell_id_r16: SoundingRS_VirtualCellID_r16Srs_VirtualCellID_r16, + pub srs_virtual_cell_id_all_srs_r16: SoundingRS_VirtualCellID_r16Srs_VirtualCellID_AllSRS_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SpeedStateScaleFactors { + pub sf_medium: SpeedStateScaleFactorsSf_Medium, + pub sf_high: SpeedStateScaleFactorsSf_High, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct SubframeAssignment_r15(pub u8); +impl SubframeAssignment_r15 { + pub const SA0: u8 = 0u8; + pub const SA1: u8 = 1u8; + pub const SA2: u8 = 2u8; + pub const SA3: u8 = 3u8; + pub const SA4: u8 = 4u8; + pub const SA5: u8 = 5u8; + pub const SA6: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "6", extensible = false)] +pub enum SubframeBitmapSL_r12 { + #[asn(key = 0, extended = false)] + Bs4_r12(SubframeBitmapSL_r12_bs4_r12), + #[asn(key = 1, extended = false)] + Bs8_r12(SubframeBitmapSL_r12_bs8_r12), + #[asn(key = 2, extended = false)] + Bs12_r12(SubframeBitmapSL_r12_bs12_r12), + #[asn(key = 3, extended = false)] + Bs16_r12(SubframeBitmapSL_r12_bs16_r12), + #[asn(key = 4, extended = false)] + Bs30_r12(SubframeBitmapSL_r12_bs30_r12), + #[asn(key = 5, extended = false)] + Bs40_r12(SubframeBitmapSL_r12_bs40_r12), + #[asn(key = 6, extended = false)] + Bs42_r12(SubframeBitmapSL_r12_bs42_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum SubframeBitmapSL_r14 { + #[asn(key = 0, extended = false)] + Bs10_r14(SubframeBitmapSL_r14_bs10_r14), + #[asn(key = 1, extended = false)] + Bs16_r14(SubframeBitmapSL_r14_bs16_r14), + #[asn(key = 2, extended = false)] + Bs20_r14(SubframeBitmapSL_r14_bs20_r14), + #[asn(key = 3, extended = false)] + Bs30_r14(SubframeBitmapSL_r14_bs30_r14), + #[asn(key = 4, extended = false)] + Bs40_r14(SubframeBitmapSL_r14_bs40_r14), + #[asn(key = 5, extended = false)] + Bs50_r14(SubframeBitmapSL_r14_bs50_r14), + #[asn(key = 6, extended = false)] + Bs60_r14(SubframeBitmapSL_r14_bs60_r14), + #[asn(key = 7, extended = false)] + Bs100_r14(SubframeBitmapSL_r14_bs100_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1090(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v10i0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1130(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1250(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1270(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1320(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1380(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1390(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1450(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1470(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v14b0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombination_v1630(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v11d0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1250(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1270(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1320(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1380(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1390(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1450(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1470(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v14b0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct SupportedBandCombinationAdd_v1630(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SupportedBandCombinationExt_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1320(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1380(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1390(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1450(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1470(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v14b0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct SupportedBandCombinationReduced_v1630(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SupportedBandEUTRA { + pub band_eutra: FreqBandIndicator, + pub half_duplex: SupportedBandEUTRAHalfDuplex, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SupportedBandEUTRA_v1250 { + #[asn(optional_idx = 0)] + pub dl_256qam_r12: Option, + #[asn(optional_idx = 1)] + pub ul_64qam_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SupportedBandEUTRA_v1310 { + #[asn(optional_idx = 0)] + pub ue_power_class_5_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SupportedBandEUTRA_v1320 { + #[asn(optional_idx = 0)] + pub intra_freq_ce_need_for_gaps_r13: + Option, + #[asn(optional_idx = 1)] + pub ue_power_class_n_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SupportedBandEUTRA_v9e0 { + #[asn(optional_idx = 0)] + pub band_eutra_v9e0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SupportedBandGERAN(pub u8); +impl SupportedBandGERAN { + pub const GSM450: u8 = 0u8; + pub const GSM480: u8 = 1u8; + pub const GSM710: u8 = 2u8; + pub const GSM750: u8 = 3u8; + pub const GSM810: u8 = 4u8; + pub const GSM850: u8 = 5u8; + pub const GSM900_P: u8 = 6u8; + pub const GSM900_E: u8 = 7u8; + pub const GSM900_R: u8 = 8u8; + pub const GSM1800: u8 = 9u8; + pub const GSM1900: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SupportedBandInfo_r12 { + #[asn(optional_idx = 0)] + pub support_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SupportedBandList1XRTT(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListEUTRA_v1250(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListEUTRA_v1310(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListEUTRA_v1320(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListEUTRA_v9e0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListGERAN(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SupportedBandListHRPD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "1024" +)] +pub struct SupportedBandListNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListUTRA_FDD(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListUTRA_TDD128(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListUTRA_TDD384(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SupportedBandListUTRA_TDD768(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SupportedBandNR_r15 { + pub band_nr_r15: FreqBandIndicatorNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SupportedBandUTRA_FDD(pub u8); +impl SupportedBandUTRA_FDD { + pub const BAND_I: u8 = 0u8; + pub const BAND_II: u8 = 1u8; + pub const BAND_III: u8 = 2u8; + pub const BAND_IV: u8 = 3u8; + pub const BAND_V: u8 = 4u8; + pub const BAND_VI: u8 = 5u8; + pub const BAND_VII: u8 = 6u8; + pub const BAND_VIII: u8 = 7u8; + pub const BAND_IX: u8 = 8u8; + pub const BAND_X: u8 = 9u8; + pub const BAND_XI: u8 = 10u8; + pub const BAND_XII: u8 = 11u8; + pub const BAND_XIII: u8 = 12u8; + pub const BAND_XIV: u8 = 13u8; + pub const BAND_XV: u8 = 14u8; + pub const BAND_XVI: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SupportedBandUTRA_TDD128(pub u8); +impl SupportedBandUTRA_TDD128 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const D: u8 = 3u8; + pub const E: u8 = 4u8; + pub const F: u8 = 5u8; + pub const G: u8 = 6u8; + pub const H: u8 = 7u8; + pub const I: u8 = 8u8; + pub const J: u8 = 9u8; + pub const K: u8 = 10u8; + pub const L: u8 = 11u8; + pub const M: u8 = 12u8; + pub const N: u8 = 13u8; + pub const O: u8 = 14u8; + pub const P: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SupportedBandUTRA_TDD384(pub u8); +impl SupportedBandUTRA_TDD384 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const D: u8 = 3u8; + pub const E: u8 = 4u8; + pub const F: u8 = 5u8; + pub const G: u8 = 6u8; + pub const H: u8 = 7u8; + pub const I: u8 = 8u8; + pub const J: u8 = 9u8; + pub const K: u8 = 10u8; + pub const L: u8 = 11u8; + pub const M: u8 = 12u8; + pub const N: u8 = 13u8; + pub const O: u8 = 14u8; + pub const P: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "15")] +pub struct SupportedBandUTRA_TDD768(pub u8); +impl SupportedBandUTRA_TDD768 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const D: u8 = 3u8; + pub const E: u8 = 4u8; + pub const F: u8 = 5u8; + pub const G: u8 = 6u8; + pub const H: u8 = 7u8; + pub const I: u8 = 8u8; + pub const J: u8 = 9u8; + pub const K: u8 = 10u8; + pub const L: u8 = 11u8; + pub const M: u8 = 12u8; + pub const N: u8 = 13u8; + pub const O: u8 = 14u8; + pub const P: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SupportedBandwidthCombinationSet_r10(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SupportedOperatorDic_r15 { + pub version_of_dictionary_r15: SupportedOperatorDic_r15VersionOfDictionary_r15, + pub associated_plmn_id_r15: PLMN_Identity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SupportedUDC_r15 { + #[asn(optional_idx = 0)] + pub supported_standard_dic_r15: Option, + #[asn(optional_idx = 1)] + pub supported_operator_dic_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "10")] +pub struct SystemInfoListGERAN(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SystemInfoValueTagList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SystemInfoValueTagSI_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformation { + pub critical_extensions: SystemInformationCriticalExtensions, +} + +pub type SystemInformation_BR_r13 = SystemInformation; + +pub type SystemInformation_MBMS_r14 = SystemInformation; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformation_r8_IEs { + pub sib_type_and_info: SystemInformation_r8_IEsSib_TypeAndInfo, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformation_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockPos_r15 { + pub assistance_data_sib_element_r15: SystemInformationBlockPos_r15AssistanceDataSIB_Element_r15, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1 { + pub cell_access_related_info: SystemInformationBlockType1CellAccessRelatedInfo, + pub cell_selection_info: SystemInformationBlockType1CellSelectionInfo, + #[asn(optional_idx = 0)] + pub p_max: Option, + pub freq_band_indicator: FreqBandIndicator, + pub scheduling_info_list: SchedulingInfoList, + #[asn(optional_idx = 1)] + pub tdd_config: Option, + pub si_window_length: SystemInformationBlockType1Si_WindowLength, + pub system_info_value_tag: SystemInformationBlockType1SystemInfoValueTag, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +pub type SystemInformationBlockType1_BR_r13 = SystemInformationBlockType1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SystemInformationBlockType1_MBMS_r14 { + pub cell_access_related_info_r14: SystemInformationBlockType1_MBMS_r14CellAccessRelatedInfo_r14, + pub freq_band_indicator_r14: FreqBandIndicator_r11, + #[asn(optional_idx = 0)] + pub multi_band_info_list_r14: Option, + pub scheduling_info_list_mbms_r14: SchedulingInfoList_MBMS_r14, + pub si_window_length_r14: SystemInformationBlockType1_MBMS_r14Si_WindowLength_r14, + pub system_info_value_tag_r14: SystemInformationBlockType1_MBMS_r14SystemInfoValueTag_r14, + #[asn(optional_idx = 1)] + pub non_mbsfn_subframe_config_r14: Option, + pub pdsch_config_common_r14: PDSCH_ConfigCommon, + #[asn(optional_idx = 2)] + pub system_information_block_type13_r14: Option, + #[asn(optional_idx = 3)] + pub cell_access_related_info_list_r14: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v10j0_IEs { + #[asn(optional_idx = 0)] + pub freq_band_info_r10: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10j0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v10l0_IEs { + #[asn(optional_idx = 0)] + pub freq_band_info_v10l0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10l0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v10x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v1130_IEs { + #[asn(optional_idx = 0)] + pub tdd_config_v1130: Option, + #[asn(optional_idx = 1)] + pub cell_selection_info_v1130: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v1250_IEs { + pub cell_access_related_info_v1250: + SystemInformationBlockType1_v1250_IEsCellAccessRelatedInfo_v1250, + #[asn(optional_idx = 0)] + pub cell_selection_info_v1250: Option, + #[asn(optional_idx = 1)] + pub freq_band_indicator_priority_r12: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v12j0_IEs { + #[asn(optional_idx = 0)] + pub scheduling_info_list_v12j0: Option, + #[asn(optional_idx = 1)] + pub scheduling_info_list_ext_r12: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SystemInformationBlockType1_v1310_IEs { + #[asn(optional_idx = 0)] + pub hyper_sfn_r13: Option, + #[asn(optional_idx = 1)] + pub edrx_allowed_r13: Option, + #[asn(optional_idx = 2)] + pub cell_selection_info_ce_r13: Option, + #[asn(optional_idx = 3)] + pub bandwidth_reduced_access_related_info_r13: + Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1320_IEs { + #[asn(optional_idx = 0)] + pub freq_hopping_parameters_dl_r13: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1350_IEs { + #[asn(optional_idx = 0)] + pub cell_selection_info_ce1_r13: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1360_IEs { + #[asn(optional_idx = 0)] + pub cell_selection_info_ce1_v1360: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SystemInformationBlockType1_v1430_IEs { + #[asn(optional_idx = 0)] + pub e_call_over_ims_support_r14: + Option, + #[asn(optional_idx = 1)] + pub tdd_config_v1430: Option, + #[asn(optional_idx = 2)] + pub cell_access_related_info_list_r14: + Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1450_IEs { + #[asn(optional_idx = 0)] + pub tdd_config_v1450: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct SystemInformationBlockType1_v1530_IEs { + #[asn(optional_idx = 0)] + pub hsdn_cell_r15: Option, + #[asn(optional_idx = 1)] + pub cell_selection_info_ce_v1530: Option, + #[asn(optional_idx = 2)] + pub crs_intf_mitig_config_r15: + Option, + pub cell_barred_crs_r15: SystemInformationBlockType1_v1530_IEsCellBarred_CRS_r15, + #[asn(optional_idx = 3)] + pub plmn_identity_list_v1530: Option, + #[asn(optional_idx = 4)] + pub pos_scheduling_info_list_r15: Option, + #[asn(optional_idx = 5)] + pub cell_access_related_info_5gc_r15: + Option, + #[asn(optional_idx = 6)] + pub ims_emergency_support5_gc_r15: + Option, + #[asn(optional_idx = 7)] + pub e_call_over_ims_support5_gc_r15: + Option, + #[asn(optional_idx = 8)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1540_IEs { + #[asn(optional_idx = 0)] + pub si_pos_offset_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v15g0_IEs { + #[asn(optional_idx = 0)] + pub bandwidth_reduced_access_related_info_v15g0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SystemInformationBlockType1_v1610_IEs { + #[asn(optional_idx = 0)] + pub edrx_allowed_5gc_r16: Option, + #[asn(optional_idx = 1)] + pub transmission_in_control_ch_region_r16: + Option, + #[asn(optional_idx = 2)] + pub camping_allowed_in_ce_r16: + Option, + #[asn(optional_idx = 3)] + pub plmn_identity_list_v1610: Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v1700_IEs { + #[asn(optional_idx = 0)] + pub cell_access_related_info_ntn_r17: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v890_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType1_v8h0_IEs { + #[asn(optional_idx = 0)] + pub multi_band_info_list: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v920_IEs { + #[asn(optional_idx = 0)] + pub ims_emergency_support_r9: + Option, + #[asn(optional_idx = 1)] + pub cell_selection_info_v920: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType1_v9e0_IEs { + #[asn(optional_idx = 0)] + pub freq_band_indicator_v9e0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v9e0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType10 { + pub message_identifier: SystemInformationBlockType10MessageIdentifier, + pub serial_number: SystemInformationBlockType10SerialNumber, + pub warning_type: SystemInformationBlockType10WarningType, + #[asn(optional_idx = 0)] + pub dummy: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType11 { + pub message_identifier: SystemInformationBlockType11MessageIdentifier, + pub serial_number: SystemInformationBlockType11SerialNumber, + pub warning_message_segment_type: SystemInformationBlockType11WarningMessageSegmentType, + pub warning_message_segment_number: SystemInformationBlockType11WarningMessageSegmentNumber, + pub warning_message_segment: SystemInformationBlockType11WarningMessageSegment, + #[asn(optional_idx = 0)] + pub data_coding_scheme: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType12_r9 { + pub message_identifier_r9: SystemInformationBlockType12_r9MessageIdentifier_r9, + pub serial_number_r9: SystemInformationBlockType12_r9SerialNumber_r9, + pub warning_message_segment_type_r9: + SystemInformationBlockType12_r9WarningMessageSegmentType_r9, + pub warning_message_segment_number_r9: + SystemInformationBlockType12_r9WarningMessageSegmentNumber_r9, + pub warning_message_segment_r9: SystemInformationBlockType12_r9WarningMessageSegment_r9, + #[asn(optional_idx = 0)] + pub data_coding_scheme_r9: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType13_r9 { + pub mbsfn_area_info_list_r9: MBSFN_AreaInfoList_r9, + pub notification_config_r9: MBMS_NotificationConfig_r9, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType14_r11 { + #[asn(optional_idx = 0)] + pub eab_param_r11: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType15_r11 { + #[asn(optional_idx = 0)] + pub mbms_sai_intra_freq_r11: Option, + #[asn(optional_idx = 1)] + pub mbms_sai_inter_freq_list_r11: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType16_r11 { + #[asn(optional_idx = 0)] + pub time_info_r11: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType17_r12 { + #[asn(optional_idx = 0)] + pub wlan_offload_info_per_plmn_list_r12: + Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType18_r12 { + #[asn(optional_idx = 0)] + pub comm_config_r12: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType19_r12 { + #[asn(optional_idx = 0)] + pub disc_config_r12: Option, + #[asn(optional_idx = 1)] + pub disc_inter_freq_list_r12: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType2 { + #[asn(optional_idx = 0)] + pub ac_barring_info: Option, + pub radio_resource_config_common: RadioResourceConfigCommonSIB, + pub ue_timers_and_constants: UE_TimersAndConstants, + pub freq_info: SystemInformationBlockType2FreqInfo, + #[asn(optional_idx = 1)] + pub mbsfn_subframe_config_list: Option, + pub time_alignment_timer_common: TimeAlignmentTimer, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType2_v10m0_IEs { + #[asn(optional_idx = 0)] + pub freq_info_v10l0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10l0: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2_v10n0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2_v13c0_IEs { + #[asn(optional_idx = 0)] + pub uplink_power_control_common_v13c0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2_v8h0_IEs { + #[asn(optional_idx = 0)] + pub multi_band_info_list: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2_v9e0_IEs { + #[asn(optional_idx = 0)] + pub ul_carrier_freq_v9e0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2_v9i0_IEs { + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub dummy: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType20_r13 { + pub sc_mcch_repetition_period_r13: SystemInformationBlockType20_r13Sc_mcch_RepetitionPeriod_r13, + pub sc_mcch_offset_r13: SystemInformationBlockType20_r13Sc_mcch_Offset_r13, + pub sc_mcch_first_subframe_r13: SystemInformationBlockType20_r13Sc_mcch_FirstSubframe_r13, + #[asn(optional_idx = 0)] + pub sc_mcch_duration_r13: Option, + pub sc_mcch_modification_period_r13: + SystemInformationBlockType20_r13Sc_mcch_ModificationPeriod_r13, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType21_r14 { + #[asn(optional_idx = 0)] + pub sl_v2x_config_common_r14: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType24_r15 { + #[asn(optional_idx = 0)] + pub carrier_freq_list_nr_r15: Option, + pub t_reselection_nr_r15: T_Reselection, + #[asn(optional_idx = 1)] + pub t_reselection_nr_sf_r15: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct SystemInformationBlockType25_r15 { + #[asn(optional_idx = 0)] + pub uac_barring_for_common_r15: Option, + #[asn(optional_idx = 1)] + pub uac_barring_per_plmn_list_r15: Option, + pub uac_barring_info_set_list_r15: UAC_BarringInfoSetList_r15, + #[asn(optional_idx = 2)] + pub uac_ac1_select_assist_info_r15: + Option, + #[asn(optional_idx = 3)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 7)] +pub struct SystemInformationBlockType26_r15 { + #[asn(optional_idx = 0)] + pub v2x_inter_freq_info_list_r15: Option, + #[asn(optional_idx = 1)] + pub cbr_pssch_tx_config_list_r15: Option, + #[asn(optional_idx = 2)] + pub v2x_packet_duplication_config_r15: Option, + #[asn(optional_idx = 3)] + pub sync_freq_list_r15: Option, + #[asn(optional_idx = 4)] + pub slss_tx_multi_freq_r15: Option, + #[asn(optional_idx = 5)] + pub v2x_freq_selection_config_list_r15: Option, + #[asn(optional_idx = 6)] + pub thresh_s_rssi_cbr_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType26a_r16 { + pub plmn_info_list_r16: PLMN_InfoList_r16, + pub band_list_endc_r16: BandListENDC_r16, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType27_r16 { + #[asn(optional_idx = 0)] + pub carrier_freq_list_nbiot_r16: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType28_r16 { + pub segment_number_r16: SystemInformationBlockType28_r16SegmentNumber_r16, + pub segment_type_r16: SystemInformationBlockType28_r16SegmentType_r16, + pub segment_container_r16: SystemInformationBlockType28_r16SegmentContainer_r16, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType29_r16 { + #[asn(optional_idx = 0)] + pub resource_reservation_config_common_dl_r16: Option, + #[asn(optional_idx = 1)] + pub resource_reservation_config_common_ul_r16: Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SystemInformationBlockType3 { + pub cell_reselection_info_common: SystemInformationBlockType3CellReselectionInfoCommon, + pub cell_reselection_serving_freq_info: + SystemInformationBlockType3CellReselectionServingFreqInfo, + pub intra_freq_cell_reselection_info: SystemInformationBlockType3IntraFreqCellReselectionInfo, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType3_v10j0_IEs { + #[asn(optional_idx = 0)] + pub freq_band_info_r10: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10j0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType3_v10l0_IEs { + #[asn(optional_idx = 0)] + pub freq_band_info_v10l0: Option, + #[asn(optional_idx = 1)] + pub multi_band_info_list_v10l0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType30_r17 { + #[asn(optional_idx = 0)] + pub common_plm_ns_with_disaster_condition_r17: + Option, + #[asn(optional_idx = 1)] + pub applicable_disaster_info_list_r17: + Option, + #[asn(optional_idx = 2)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType31_r17 { + pub serving_satellite_info_r17: ServingSatelliteInfo_r17, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType32_r17 { + #[asn(optional_idx = 0)] + pub satellite_info_list_r17: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType4 { + #[asn(optional_idx = 0)] + pub intra_freq_neigh_cell_list: Option, + #[asn(optional_idx = 1)] + pub intra_freq_excluded_cell_list: Option, + #[asn(optional_idx = 2)] + pub csg_phys_cell_id_range: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SystemInformationBlockType5 { + pub inter_freq_carrier_freq_list: InterFreqCarrierFreqList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType5_v10j0_IEs { + #[asn(optional_idx = 0)] + pub inter_freq_carrier_freq_list_v10j0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType5_v10l0_IEs { + #[asn(optional_idx = 0)] + pub inter_freq_carrier_freq_list_v10l0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType5_v13a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub inter_freq_carrier_freq_list_v13a0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType5_v8h0_IEs { + #[asn(optional_idx = 0)] + pub inter_freq_carrier_freq_list_v8h0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType5_v9e0_IEs { + #[asn(optional_idx = 0)] + pub inter_freq_carrier_freq_list_v9e0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct SystemInformationBlockType6 { + #[asn(optional_idx = 0)] + pub carrier_freq_list_utra_fdd: Option, + #[asn(optional_idx = 1)] + pub carrier_freq_list_utra_tdd: Option, + pub t_reselection_utra: T_Reselection, + #[asn(optional_idx = 2)] + pub t_reselection_utra_sf: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType6_v8h0_IEs { + #[asn(optional_idx = 0)] + pub carrier_freq_list_utra_fdd_v8h0: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SystemInformationBlockType7 { + pub t_reselection_geran: T_Reselection, + #[asn(optional_idx = 0)] + pub t_reselection_geran_sf: Option, + #[asn(optional_idx = 1)] + pub carrier_freqs_info_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct SystemInformationBlockType8 { + #[asn(optional_idx = 0)] + pub system_time_info: Option, + #[asn(optional_idx = 1)] + pub search_window_size: Option, + #[asn(optional_idx = 2)] + pub parameters_hrpd: Option, + #[asn(optional_idx = 3)] + pub parameters1_xrtt: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct SystemInformationBlockType9 { + #[asn(optional_idx = 0)] + pub hnb_name: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemTimeInfoCDMA2000 { + pub cdma_eutra_synchronisation: SystemTimeInfoCDMA2000Cdma_EUTRA_Synchronisation, + pub cdma_system_time: SystemTimeInfoCDMA2000Cdma_SystemTime, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "63")] +pub struct T_PollRetransmit(pub u8); +impl T_PollRetransmit { + pub const MS5: u8 = 0u8; + pub const MS10: u8 = 1u8; + pub const MS15: u8 = 2u8; + pub const MS20: u8 = 3u8; + pub const MS25: u8 = 4u8; + pub const MS30: u8 = 5u8; + pub const MS35: u8 = 6u8; + pub const MS40: u8 = 7u8; + pub const MS45: u8 = 8u8; + pub const MS50: u8 = 9u8; + pub const MS55: u8 = 10u8; + pub const MS60: u8 = 11u8; + pub const MS65: u8 = 12u8; + pub const MS70: u8 = 13u8; + pub const MS75: u8 = 14u8; + pub const MS80: u8 = 15u8; + pub const MS85: u8 = 16u8; + pub const MS90: u8 = 17u8; + pub const MS95: u8 = 18u8; + pub const MS100: u8 = 19u8; + pub const MS105: u8 = 20u8; + pub const MS110: u8 = 21u8; + pub const MS115: u8 = 22u8; + pub const MS120: u8 = 23u8; + pub const MS125: u8 = 24u8; + pub const MS130: u8 = 25u8; + pub const MS135: u8 = 26u8; + pub const MS140: u8 = 27u8; + pub const MS145: u8 = 28u8; + pub const MS150: u8 = 29u8; + pub const MS155: u8 = 30u8; + pub const MS160: u8 = 31u8; + pub const MS165: u8 = 32u8; + pub const MS170: u8 = 33u8; + pub const MS175: u8 = 34u8; + pub const MS180: u8 = 35u8; + pub const MS185: u8 = 36u8; + pub const MS190: u8 = 37u8; + pub const MS195: u8 = 38u8; + pub const MS200: u8 = 39u8; + pub const MS205: u8 = 40u8; + pub const MS210: u8 = 41u8; + pub const MS215: u8 = 42u8; + pub const MS220: u8 = 43u8; + pub const MS225: u8 = 44u8; + pub const MS230: u8 = 45u8; + pub const MS235: u8 = 46u8; + pub const MS240: u8 = 47u8; + pub const MS245: u8 = 48u8; + pub const MS250: u8 = 49u8; + pub const MS300: u8 = 50u8; + pub const MS350: u8 = 51u8; + pub const MS400: u8 = 52u8; + pub const MS450: u8 = 53u8; + pub const MS500: u8 = 54u8; + pub const MS800_V1310: u8 = 55u8; + pub const MS1000_V1310: u8 = 56u8; + pub const MS2000_V1310: u8 = 57u8; + pub const MS4000_V1310: u8 = 58u8; + pub const SPARE5: u8 = 59u8; + pub const SPARE4: u8 = 60u8; + pub const SPARE3: u8 = 61u8; + pub const SPARE2: u8 = 62u8; + pub const SPARE1: u8 = 63u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct T_Reordering(pub u8); +impl T_Reordering { + pub const MS0: u8 = 0u8; + pub const MS5: u8 = 1u8; + pub const MS10: u8 = 2u8; + pub const MS15: u8 = 3u8; + pub const MS20: u8 = 4u8; + pub const MS25: u8 = 5u8; + pub const MS30: u8 = 6u8; + pub const MS35: u8 = 7u8; + pub const MS40: u8 = 8u8; + pub const MS45: u8 = 9u8; + pub const MS50: u8 = 10u8; + pub const MS55: u8 = 11u8; + pub const MS60: u8 = 12u8; + pub const MS65: u8 = 13u8; + pub const MS70: u8 = 14u8; + pub const MS75: u8 = 15u8; + pub const MS80: u8 = 16u8; + pub const MS85: u8 = 17u8; + pub const MS90: u8 = 18u8; + pub const MS95: u8 = 19u8; + pub const MS100: u8 = 20u8; + pub const MS110: u8 = 21u8; + pub const MS120: u8 = 22u8; + pub const MS130: u8 = 23u8; + pub const MS140: u8 = 24u8; + pub const MS150: u8 = 25u8; + pub const MS160: u8 = 26u8; + pub const MS170: u8 = 27u8; + pub const MS180: u8 = 28u8; + pub const MS190: u8 = 29u8; + pub const MS200: u8 = 30u8; + pub const MS1600_V1310: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct T_ReorderingExt_r17(pub u8); +impl T_ReorderingExt_r17 { + pub const MS2200: u8 = 0u8; + pub const MS3200: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct T_Reselection(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct T_ReselectionEUTRA_CE_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "63")] +pub struct T_StatusProhibit(pub u8); +impl T_StatusProhibit { + pub const MS0: u8 = 0u8; + pub const MS5: u8 = 1u8; + pub const MS10: u8 = 2u8; + pub const MS15: u8 = 3u8; + pub const MS20: u8 = 4u8; + pub const MS25: u8 = 5u8; + pub const MS30: u8 = 6u8; + pub const MS35: u8 = 7u8; + pub const MS40: u8 = 8u8; + pub const MS45: u8 = 9u8; + pub const MS50: u8 = 10u8; + pub const MS55: u8 = 11u8; + pub const MS60: u8 = 12u8; + pub const MS65: u8 = 13u8; + pub const MS70: u8 = 14u8; + pub const MS75: u8 = 15u8; + pub const MS80: u8 = 16u8; + pub const MS85: u8 = 17u8; + pub const MS90: u8 = 18u8; + pub const MS95: u8 = 19u8; + pub const MS100: u8 = 20u8; + pub const MS105: u8 = 21u8; + pub const MS110: u8 = 22u8; + pub const MS115: u8 = 23u8; + pub const MS120: u8 = 24u8; + pub const MS125: u8 = 25u8; + pub const MS130: u8 = 26u8; + pub const MS135: u8 = 27u8; + pub const MS140: u8 = 28u8; + pub const MS145: u8 = 29u8; + pub const MS150: u8 = 30u8; + pub const MS155: u8 = 31u8; + pub const MS160: u8 = 32u8; + pub const MS165: u8 = 33u8; + pub const MS170: u8 = 34u8; + pub const MS175: u8 = 35u8; + pub const MS180: u8 = 36u8; + pub const MS185: u8 = 37u8; + pub const MS190: u8 = 38u8; + pub const MS195: u8 = 39u8; + pub const MS200: u8 = 40u8; + pub const MS205: u8 = 41u8; + pub const MS210: u8 = 42u8; + pub const MS215: u8 = 43u8; + pub const MS220: u8 = 44u8; + pub const MS225: u8 = 45u8; + pub const MS230: u8 = 46u8; + pub const MS235: u8 = 47u8; + pub const MS240: u8 = 48u8; + pub const MS245: u8 = 49u8; + pub const MS250: u8 = 50u8; + pub const MS300: u8 = 51u8; + pub const MS350: u8 = 52u8; + pub const MS400: u8 = 53u8; + pub const MS450: u8 = 54u8; + pub const MS500: u8 = 55u8; + pub const MS800_V1310: u8 = 56u8; + pub const MS1000_V1310: u8 = 57u8; + pub const MS1200_V1310: u8 = 58u8; + pub const MS1600_V1310: u8 = 59u8; + pub const MS2000_V1310: u8 = 60u8; + pub const MS2400_V1310: u8 = 61u8; + pub const SPARE2: u8 = 62u8; + pub const SPARE1: u8 = 63u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDD_Config { + pub subframe_assignment: TDD_ConfigSubframeAssignment, + pub special_subframe_patterns: TDD_ConfigSpecialSubframePatterns, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDD_Config_v1130 { + pub special_subframe_patterns_v1130: TDD_Config_v1130SpecialSubframePatterns_v1130, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDD_Config_v1430 { + pub special_subframe_patterns_v1430: TDD_Config_v1430SpecialSubframePatterns_v1430, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDD_Config_v1450 { + pub special_subframe_patterns_v1450: TDD_Config_v1450SpecialSubframePatterns_v1450, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDD_ConfigSL_r12 { + pub subframe_assignment_sl_r12: TDD_ConfigSL_r12SubframeAssignmentSL_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TDD_PUSCH_UpPTS_r14 { + #[asn(key = 0, extended = false)] + Release(TDD_PUSCH_UpPTS_r14_release), + #[asn(key = 1, extended = false)] + Setup(TDD_PUSCH_UpPTS_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum TDM_AssistanceInfo_r11 { + #[asn(key = 0, extended = false)] + Drx_AssistanceInfo_r11(TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11), + #[asn(key = 1, extended = false)] + Idc_SubframePatternList_r11(IDC_SubframePatternList_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TDM_PatternConfig_r15 { + #[asn(key = 0, extended = false)] + Release(TDM_PatternConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(TDM_PatternConfig_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TLE_EphemerisParameters_r17 { + pub inclination_r17: TLE_EphemerisParameters_r17Inclination_r17, + pub argument_perigee_r17: TLE_EphemerisParameters_r17ArgumentPerigee_r17, + pub right_ascension_r17: TLE_EphemerisParameters_r17RightAscension_r17, + pub mean_anomaly_r17: TLE_EphemerisParameters_r17MeanAnomaly_r17, + pub eccentricity_r17: TLE_EphemerisParameters_r17Eccentricity_r17, + pub mean_motion_r17: TLE_EphemerisParameters_r17MeanMotion_r17, + pub b_star_decimal_r17: TLE_EphemerisParameters_r17BStarDecimal_r17, + pub b_star_exponent_r17: TLE_EphemerisParameters_r17BStarExponent_r17, + pub epoch_star_r17: TLE_EphemerisParameters_r17EpochStar_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TMGI_r9 { + pub plmn_id_r9: TMGI_r9Plmn_Id_r9, + pub service_id_r9: TMGI_r9ServiceId_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TPC_Index { + #[asn(key = 0, extended = false)] + IndexOfFormat3(TPC_Index_indexOfFormat3), + #[asn(key = 1, extended = false)] + IndexOfFormat3A(TPC_Index_indexOfFormat3A), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TPC_PDCCH_Config { + #[asn(key = 0, extended = false)] + Release(TPC_PDCCH_Config_release), + #[asn(key = 1, extended = false)] + Setup(TPC_PDCCH_Config_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TPC_PDCCH_ConfigSCell_r13 { + #[asn(key = 0, extended = false)] + Release(TPC_PDCCH_ConfigSCell_r13_release), + #[asn(key = 1, extended = false)] + Setup(TPC_PDCCH_ConfigSCell_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct TargetMBSFN_Area_r12 { + #[asn(optional_idx = 0)] + pub mbsfn_area_id_r12: Option, + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "8")] +pub struct TargetMBSFN_AreaList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct ThresholdCDMA2000(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ThresholdEUTRA { + #[asn(key = 0, extended = false)] + Threshold_RSRP(RSRP_Range), + #[asn(key = 1, extended = false)] + Threshold_RSRQ(RSRQ_Range), +} + +pub type ThresholdEUTRA_v1250 = CSI_RSRP_Range_r12; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct ThresholdGERAN(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct ThresholdListNR_r15 { + #[asn(optional_idx = 0)] + pub nr_rsrp_r15: Option, + #[asn(optional_idx = 1)] + pub nr_rsrq_r15: Option, + #[asn(optional_idx = 2)] + pub nr_sinr_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum ThresholdNR_r15 { + #[asn(key = 0, extended = false)] + Nr_RSRP_r15(RSRP_RangeNR_r15), + #[asn(key = 1, extended = false)] + Nr_RSRQ_r15(RSRQ_RangeNR_r15), + #[asn(key = 2, extended = false)] + Nr_SINR_r15(RS_SINR_RangeNR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ThresholdUTRA { + #[asn(key = 0, extended = false)] + Utra_RSCP(ThresholdUTRA_utra_RSCP), + #[asn(key = 1, extended = false)] + Utra_EcN0(ThresholdUTRA_utra_EcN0), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct TimeAlignmentTimer(pub u8); +impl TimeAlignmentTimer { + pub const SF500: u8 = 0u8; + pub const SF750: u8 = 1u8; + pub const SF1280: u8 = 2u8; + pub const SF1920: u8 = 3u8; + pub const SF2560: u8 = 4u8; + pub const SF5120: u8 = 5u8; + pub const SF10240: u8 = 6u8; + pub const INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1048575")] +pub struct TimeOffsetUTC_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct TimeReferenceInfo_r15 { + pub time_r15: ReferenceTime_r15, + #[asn(optional_idx = 0)] + pub uncertainty_r15: Option, + #[asn(optional_idx = 1)] + pub time_info_type_r15: Option, + #[asn(optional_idx = 2)] + pub reference_sfn_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "172800")] +pub struct TimeSinceFailure_r11(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct TimeToTrigger(pub u8); +impl TimeToTrigger { + pub const MS0: u8 = 0u8; + pub const MS40: u8 = 1u8; + pub const MS64: u8 = 2u8; + pub const MS80: u8 = 3u8; + pub const MS100: u8 = 4u8; + pub const MS128: u8 = 5u8; + pub const MS160: u8 = 6u8; + pub const MS256: u8 = 7u8; + pub const MS320: u8 = 8u8; + pub const MS480: u8 = 9u8; + pub const MS512: u8 = 10u8; + pub const MS640: u8 = 11u8; + pub const MS1024: u8 = 12u8; + pub const MS1280: u8 = 13u8; + pub const MS2560: u8 = 14u8; + pub const MS5120: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "172800")] +pub struct TimeUntilReconnection_r16(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TraceReference_r10 { + pub plmn_identity_r10: PLMN_Identity, + pub trace_id_r10: TraceReference_r10TraceId_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct TrackingAreaCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct TrackingAreaCode_5GC_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct TrackingAreaCodeList_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TrackingAreaCodeList_v1130 { + pub plmn_identity_per_tac_list_r11: TrackingAreaCodeList_v1130Plmn_Identity_perTAC_List_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct TrackingAreaCodeNR_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "12")] +pub struct TrackingAreaList_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct TrafficPatternInfo_r14 { + pub traffic_periodicity_r14: TrafficPatternInfo_r14TrafficPeriodicity_r14, + pub timing_offset_r14: TrafficPatternInfo_r14TimingOffset_r14, + #[asn(optional_idx = 0)] + pub priority_info_sl_r14: Option, + #[asn(optional_idx = 1)] + pub logical_channel_identity_ul_r14: Option, + pub message_size_r14: TrafficPatternInfo_r14MessageSize_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct TrafficPatternInfo_v1530 { + #[asn(optional_idx = 0)] + pub traffic_destination_r15: Option, + #[asn(optional_idx = 1)] + pub reliability_info_sl_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct TrafficPatternInfoList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct TrafficPatternInfoList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct TunnelConfigLWIP_r13 { + pub ip_address_r13: IP_Address_r13, + pub ike_identity_r13: IKE_Identity_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct Tx_ConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct Tx_PreconfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "72")] +pub struct Tx_ResourcePoolMeasList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct UAC_AC1_SelectAssistInfo_r15(pub u8); +impl UAC_AC1_SelectAssistInfo_r15 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct UAC_AC1_SelectAssistInfo_r16(pub u8); +impl UAC_AC1_SelectAssistInfo_r16 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const NOT_CONFIGURED: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UAC_BarringInfoSet_r15 { + pub uac_barring_factor_r15: UAC_BarringInfoSet_r15Uac_BarringFactor_r15, + pub uac_barring_time_r15: UAC_BarringInfoSet_r15Uac_BarringTime_r15, + pub uac_barring_for_access_identity_r15: UAC_BarringInfoSet_r15Uac_BarringForAccessIdentity_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UAC_BarringInfoSet_v1700 { + #[asn(optional_idx = 0)] + pub uac_barring_factor_for_ai3_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct UAC_BarringInfoSetIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct UAC_BarringInfoSetList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct UAC_BarringInfoSetList_v1700(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UAC_BarringPerCat_r15 { + pub access_category_r15: UAC_BarringPerCat_r15AccessCategory_r15, + pub uac_barring_info_set_index_r15: UAC_BarringInfoSetIndex_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "63")] +pub struct UAC_BarringPerCatList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct UAC_BarringPerPLMN_List_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UAC_BarringPerPLMN_r15 { + pub plmn_identity_index_r15: UAC_BarringPerPLMN_r15Plmn_IdentityIndex_r15, + #[asn(optional_idx = 0)] + pub uac_ac_barring_list_type_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UDT_Restricting_r13 { + #[asn(optional_idx = 0)] + pub udt_restricting_r13: Option, + #[asn(optional_idx = 1)] + pub udt_restricting_time_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct UDT_RestrictingPerPLMN_List_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UDT_RestrictingPerPLMN_r13 { + pub plmn_identity_index_r13: UDT_RestrictingPerPLMN_r13Plmn_IdentityIndex_r13, + #[asn(optional_idx = 0)] + pub udt_restricting_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_BasedNetwPerfMeasParameters_r10 { + #[asn(optional_idx = 0)] + pub logged_measurements_idle_r10: + Option, + #[asn(optional_idx = 1)] + pub standalone_gnss_location_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_BasedNetwPerfMeasParameters_v1250 { + pub logged_mbsfn_measurements_r12: + UE_BasedNetwPerfMeasParameters_v1250LoggedMBSFNMeasurements_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_BasedNetwPerfMeasParameters_v1430 { + #[asn(optional_idx = 0)] + pub location_report_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_BasedNetwPerfMeasParameters_v1530 { + #[asn(optional_idx = 0)] + pub logged_meas_bt_r15: Option, + #[asn(optional_idx = 1)] + pub logged_meas_wlan_r15: Option, + #[asn(optional_idx = 2)] + pub imm_meas_bt_r15: Option, + #[asn(optional_idx = 3)] + pub imm_meas_wlan_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_BasedNetwPerfMeasParameters_v1610 { + #[asn(optional_idx = 0)] + pub ul_pdcp_avg_delay_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_BasedNetwPerfMeasParameters_v1700 { + #[asn(optional_idx = 0)] + pub logged_meas_idle_event_l1_r17: + Option, + #[asn(optional_idx = 1)] + pub logged_meas_idle_event_out_of_coverage_r17: + Option, + #[asn(optional_idx = 2)] + pub logged_meas_uncom_bar_pre_r17: + Option, + #[asn(optional_idx = 3)] + pub imm_meas_uncom_bar_pre_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_CapabilityRAT_Container { + pub rat_type: RAT_Type, + pub ue_capability_rat_container: UE_CapabilityRAT_ContainerUeCapabilityRAT_Container, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "8")] +pub struct UE_CapabilityRAT_ContainerList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct UE_CapabilityRequest(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_CategorySL_r15 { + pub ue_category_sl_c_tx_r15: UE_CategorySL_r15Ue_CategorySL_C_TX_r15, + pub ue_category_sl_c_rx_r15: UE_CategorySL_r15Ue_CategorySL_C_RX_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability { + pub access_stratum_release: AccessStratumRelease, + pub ue_category: UE_EUTRA_CapabilityUe_Category, + pub pdcp_parameters: PDCP_Parameters, + pub phy_layer_parameters: PhyLayerParameters, + pub rf_parameters: RF_Parameters, + pub meas_parameters: MeasParameters, + #[asn(optional_idx = 0)] + pub feature_group_indicators: Option, + pub inter_rat_parameters: UE_EUTRA_CapabilityInterRAT_Parameters, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct UE_EUTRA_Capability_v1020_IEs { + #[asn(optional_idx = 0)] + pub ue_category_v1020: Option, + #[asn(optional_idx = 1)] + pub phy_layer_parameters_v1020: Option, + #[asn(optional_idx = 2)] + pub rf_parameters_v1020: Option, + #[asn(optional_idx = 3)] + pub meas_parameters_v1020: Option, + #[asn(optional_idx = 4)] + pub feature_group_ind_rel10_r10: Option, + #[asn(optional_idx = 5)] + pub inter_rat_parameters_cdma2000_v1020: Option, + #[asn(optional_idx = 6)] + pub ue_based_netw_perf_meas_parameters_r10: Option, + #[asn(optional_idx = 7)] + pub inter_rat_parameters_utra_tdd_v1020: Option, + #[asn(optional_idx = 8)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1060_IEs { + #[asn(optional_idx = 0)] + pub fdd_add_ue_eutra_capabilities_v1060: Option, + #[asn(optional_idx = 1)] + pub tdd_add_ue_eutra_capabilities_v1060: Option, + #[asn(optional_idx = 2)] + pub rf_parameters_v1060: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1090_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1090: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v10c0_IEs { + #[asn(optional_idx = 0)] + pub otdoa_positioning_capabilities_r10: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v10f0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v10f0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v10i0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v10i0: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v10j0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v10j0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1130_IEs { + pub pdcp_parameters_v1130: PDCP_Parameters_v1130, + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1130: Option, + pub rf_parameters_v1130: RF_Parameters_v1130, + pub meas_parameters_v1130: MeasParameters_v1130, + pub inter_rat_parameters_cdma2000_v1130: IRAT_ParametersCDMA2000_v1130, + pub other_parameters_r11: Other_Parameters_r11, + #[asn(optional_idx = 1)] + pub fdd_add_ue_eutra_capabilities_v1130: Option, + #[asn(optional_idx = 2)] + pub tdd_add_ue_eutra_capabilities_v1130: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v1170_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1170: Option, + #[asn(optional_idx = 1)] + pub ue_category_v1170: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct UE_EUTRA_Capability_v1180_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1180: Option, + #[asn(optional_idx = 1)] + pub mbms_parameters_r11: Option, + #[asn(optional_idx = 2)] + pub fdd_add_ue_eutra_capabilities_v1180: Option, + #[asn(optional_idx = 3)] + pub tdd_add_ue_eutra_capabilities_v1180: Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v11a0_IEs { + #[asn(optional_idx = 0)] + pub ue_category_v11a0: Option, + #[asn(optional_idx = 1)] + pub meas_parameters_v11a0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v11d0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v11d0: Option, + #[asn(optional_idx = 1)] + pub other_parameters_v11d0: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v11x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 15)] +pub struct UE_EUTRA_Capability_v1250_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1250: Option, + #[asn(optional_idx = 1)] + pub rf_parameters_v1250: Option, + #[asn(optional_idx = 2)] + pub rlc_parameters_r12: Option, + #[asn(optional_idx = 3)] + pub ue_based_netw_perf_meas_parameters_v1250: Option, + #[asn(optional_idx = 4)] + pub ue_category_dl_r12: Option, + #[asn(optional_idx = 5)] + pub ue_category_ul_r12: Option, + #[asn(optional_idx = 6)] + pub wlan_iw_parameters_r12: Option, + #[asn(optional_idx = 7)] + pub meas_parameters_v1250: Option, + #[asn(optional_idx = 8)] + pub dc_parameters_r12: Option, + #[asn(optional_idx = 9)] + pub mbms_parameters_v1250: Option, + #[asn(optional_idx = 10)] + pub mac_parameters_r12: Option, + #[asn(optional_idx = 11)] + pub fdd_add_ue_eutra_capabilities_v1250: Option, + #[asn(optional_idx = 12)] + pub tdd_add_ue_eutra_capabilities_v1250: Option, + #[asn(optional_idx = 13)] + pub sl_parameters_r12: Option, + #[asn(optional_idx = 14)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1260_IEs { + #[asn(optional_idx = 0)] + pub ue_category_dl_v1260: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1270_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1270: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1280_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1280: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v12b0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v12b0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v12x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 15)] +pub struct UE_EUTRA_Capability_v1310_IEs { + #[asn(optional_idx = 0)] + pub ue_category_dl_v1310: Option, + #[asn(optional_idx = 1)] + pub ue_category_ul_v1310: Option, + pub pdcp_parameters_v1310: PDCP_Parameters_v1310, + pub rlc_parameters_v1310: RLC_Parameters_v1310, + #[asn(optional_idx = 2)] + pub mac_parameters_v1310: Option, + #[asn(optional_idx = 3)] + pub phy_layer_parameters_v1310: Option, + #[asn(optional_idx = 4)] + pub rf_parameters_v1310: Option, + #[asn(optional_idx = 5)] + pub meas_parameters_v1310: Option, + #[asn(optional_idx = 6)] + pub dc_parameters_v1310: Option, + #[asn(optional_idx = 7)] + pub sl_parameters_v1310: Option, + #[asn(optional_idx = 8)] + pub scptm_parameters_r13: Option, + #[asn(optional_idx = 9)] + pub ce_parameters_r13: Option, + pub inter_rat_parameters_wlan_r13: IRAT_ParametersWLAN_r13, + #[asn(optional_idx = 10)] + pub laa_parameters_r13: Option, + #[asn(optional_idx = 11)] + pub lwa_parameters_r13: Option, + pub wlan_iw_parameters_v1310: WLAN_IW_Parameters_v1310, + pub lwip_parameters_r13: LWIP_Parameters_r13, + #[asn(optional_idx = 12)] + pub fdd_add_ue_eutra_capabilities_v1310: Option, + #[asn(optional_idx = 13)] + pub tdd_add_ue_eutra_capabilities_v1310: Option, + #[asn(optional_idx = 14)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct UE_EUTRA_Capability_v1320_IEs { + #[asn(optional_idx = 0)] + pub ce_parameters_v1320: Option, + #[asn(optional_idx = 1)] + pub phy_layer_parameters_v1320: Option, + #[asn(optional_idx = 2)] + pub rf_parameters_v1320: Option, + #[asn(optional_idx = 3)] + pub fdd_add_ue_eutra_capabilities_v1320: Option, + #[asn(optional_idx = 4)] + pub tdd_add_ue_eutra_capabilities_v1320: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1330_IEs { + #[asn(optional_idx = 0)] + pub ue_category_dl_v1330: Option, + #[asn(optional_idx = 1)] + pub phy_layer_parameters_v1330: Option, + #[asn(optional_idx = 2)] + pub ue_ce_need_ul_gaps_r13: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1340_IEs { + #[asn(optional_idx = 0)] + pub ue_category_ul_v1340: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v1350_IEs { + #[asn(optional_idx = 0)] + pub ue_category_dl_v1350: Option, + #[asn(optional_idx = 1)] + pub ue_category_ul_v1350: Option, + pub ce_parameters_v1350: CE_Parameters_v1350, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1360_IEs { + #[asn(optional_idx = 0)] + pub other_parameters_v1360: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1370_IEs { + #[asn(optional_idx = 0)] + pub ce_parameters_v1370: Option, + #[asn(optional_idx = 1)] + pub fdd_add_ue_eutra_capabilities_v1370: Option, + #[asn(optional_idx = 2)] + pub tdd_add_ue_eutra_capabilities_v1370: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1380_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1380: Option, + pub ce_parameters_v1380: CE_Parameters_v1380, + pub fdd_add_ue_eutra_capabilities_v1380: UE_EUTRA_CapabilityAddXDD_Mode_v1380, + pub tdd_add_ue_eutra_capabilities_v1380: UE_EUTRA_CapabilityAddXDD_Mode_v1380, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1390_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1390: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v13e0a_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v13e0b_IEs { + pub phy_layer_parameters_v13e0: PhyLayerParameters_v13e0, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 19)] +pub struct UE_EUTRA_Capability_v1430_IEs { + pub phy_layer_parameters_v1430: PhyLayerParameters_v1430, + #[asn(optional_idx = 0)] + pub ue_category_dl_v1430: Option, + #[asn(optional_idx = 1)] + pub ue_category_ul_v1430: Option, + #[asn(optional_idx = 2)] + pub ue_category_ul_v1430b: Option, + #[asn(optional_idx = 3)] + pub mac_parameters_v1430: Option, + #[asn(optional_idx = 4)] + pub meas_parameters_v1430: Option, + #[asn(optional_idx = 5)] + pub pdcp_parameters_v1430: Option, + pub rlc_parameters_v1430: RLC_Parameters_v1430, + #[asn(optional_idx = 6)] + pub rf_parameters_v1430: Option, + #[asn(optional_idx = 7)] + pub laa_parameters_v1430: Option, + #[asn(optional_idx = 8)] + pub lwa_parameters_v1430: Option, + #[asn(optional_idx = 9)] + pub lwip_parameters_v1430: Option, + pub other_parameters_v1430: Other_Parameters_v1430, + #[asn(optional_idx = 10)] + pub mmtel_parameters_r14: Option, + #[asn(optional_idx = 11)] + pub mobility_parameters_r14: Option, + pub ce_parameters_v1430: CE_Parameters_v1430, + #[asn(optional_idx = 12)] + pub fdd_add_ue_eutra_capabilities_v1430: Option, + #[asn(optional_idx = 13)] + pub tdd_add_ue_eutra_capabilities_v1430: Option, + #[asn(optional_idx = 14)] + pub mbms_parameters_v1430: Option, + #[asn(optional_idx = 15)] + pub sl_parameters_v1430: Option, + #[asn(optional_idx = 16)] + pub ue_based_netw_perf_meas_parameters_v1430: Option, + #[asn(optional_idx = 17)] + pub high_speed_enh_parameters_r14: Option, + #[asn(optional_idx = 18)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1440_IEs { + pub lwa_parameters_v1440: LWA_Parameters_v1440, + pub mac_parameters_v1440: MAC_Parameters_v1440, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1450_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1450: Option, + #[asn(optional_idx = 1)] + pub rf_parameters_v1450: Option, + pub other_parameters_v1450: OtherParameters_v1450, + #[asn(optional_idx = 2)] + pub ue_category_dl_v1450: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1460_IEs { + #[asn(optional_idx = 0)] + pub ue_category_dl_v1460: Option, + pub other_parameters_v1460: Other_Parameters_v1460, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1470_IEs { + #[asn(optional_idx = 0)] + pub mbms_parameters_v1470: Option, + #[asn(optional_idx = 1)] + pub phy_layer_parameters_v1470: Option, + #[asn(optional_idx = 2)] + pub rf_parameters_v1470: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v14a0_IEs { + pub phy_layer_parameters_v14a0: PhyLayerParameters_v14a0, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v14b0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v14b0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v14x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct UE_EUTRA_Capability_v1510_IEs { + #[asn(optional_idx = 0)] + pub irat_parameters_nr_r15: Option, + #[asn(optional_idx = 1)] + pub feature_sets_eutra_r15: Option, + #[asn(optional_idx = 2)] + pub pdcp_parameters_nr_r15: Option, + #[asn(optional_idx = 3)] + pub fdd_add_ue_eutra_capabilities_v1510: Option, + #[asn(optional_idx = 4)] + pub tdd_add_ue_eutra_capabilities_v1510: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1520_IEs { + pub meas_parameters_v1520: MeasParameters_v1520, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 18)] +pub struct UE_EUTRA_Capability_v1530_IEs { + #[asn(optional_idx = 0)] + pub meas_parameters_v1530: Option, + #[asn(optional_idx = 1)] + pub other_parameters_v1530: Option, + #[asn(optional_idx = 2)] + pub neigh_cell_si_acquisition_parameters_v1530: Option, + #[asn(optional_idx = 3)] + pub mac_parameters_v1530: Option, + #[asn(optional_idx = 4)] + pub phy_layer_parameters_v1530: Option, + #[asn(optional_idx = 5)] + pub rf_parameters_v1530: Option, + #[asn(optional_idx = 6)] + pub pdcp_parameters_v1530: Option, + #[asn(optional_idx = 7)] + pub ue_category_dl_v1530: Option, + #[asn(optional_idx = 8)] + pub ue_based_netw_perf_meas_parameters_v1530: Option, + #[asn(optional_idx = 9)] + pub rlc_parameters_v1530: Option, + #[asn(optional_idx = 10)] + pub sl_parameters_v1530: Option, + #[asn(optional_idx = 11)] + pub extended_number_of_dr_bs_r15: Option, + #[asn(optional_idx = 12)] + pub reduced_cp_latency_r15: Option, + #[asn(optional_idx = 13)] + pub laa_parameters_v1530: Option, + #[asn(optional_idx = 14)] + pub ue_category_ul_v1530: Option, + #[asn(optional_idx = 15)] + pub fdd_add_ue_eutra_capabilities_v1530: Option, + #[asn(optional_idx = 16)] + pub tdd_add_ue_eutra_capabilities_v1530: Option, + #[asn(optional_idx = 17)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct UE_EUTRA_Capability_v1540_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1540: Option, + pub other_parameters_v1540: Other_Parameters_v1540, + #[asn(optional_idx = 1)] + pub fdd_add_ue_eutra_capabilities_v1540: Option, + #[asn(optional_idx = 2)] + pub tdd_add_ue_eutra_capabilities_v1540: Option, + #[asn(optional_idx = 3)] + pub sl_parameters_v1540: Option, + #[asn(optional_idx = 4)] + pub irat_parameters_nr_v1540: Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1550_IEs { + #[asn(optional_idx = 0)] + pub neigh_cell_si_acquisition_parameters_v1550: Option, + pub phy_layer_parameters_v1550: PhyLayerParameters_v1550, + pub mac_parameters_v1550: MAC_Parameters_v1550, + pub fdd_add_ue_eutra_capabilities_v1550: UE_EUTRA_CapabilityAddXDD_Mode_v1550, + pub tdd_add_ue_eutra_capabilities_v1550: UE_EUTRA_CapabilityAddXDD_Mode_v1550, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1560_IEs { + pub pdcp_parameters_nr_v1560: PDCP_ParametersNR_v1560, + pub irat_parameters_nr_v1560: IRAT_ParametersNR_v1560, + #[asn(optional_idx = 0)] + pub applied_capability_filter_common_r15: + Option, + pub fdd_add_ue_eutra_capabilities_v1560: UE_EUTRA_CapabilityAddXDD_Mode_v1560, + pub tdd_add_ue_eutra_capabilities_v1560: UE_EUTRA_CapabilityAddXDD_Mode_v1560, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v1570_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1570: Option, + #[asn(optional_idx = 1)] + pub irat_parameters_nr_v1570: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v15a0_IEs { + pub neigh_cell_si_acquisition_parameters_v15a0: NeighCellSI_AcquisitionParameters_v15a0, + #[asn(optional_idx = 0)] + pub eutra_5gc_parameters_r15: Option, + #[asn(optional_idx = 1)] + pub fdd_add_ue_eutra_capabilities_v15a0: Option, + #[asn(optional_idx = 2)] + pub tdd_add_ue_eutra_capabilities_v15a0: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v15x0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 18)] +pub struct UE_EUTRA_Capability_v1610_IEs { + #[asn(optional_idx = 0)] + pub high_speed_enh_parameters_v1610: Option, + #[asn(optional_idx = 1)] + pub neigh_cell_si_acquisition_parameters_v1610: Option, + #[asn(optional_idx = 2)] + pub mbms_parameters_v1610: Option, + #[asn(optional_idx = 3)] + pub pdcp_parameters_v1610: Option, + #[asn(optional_idx = 4)] + pub mac_parameters_v1610: Option, + #[asn(optional_idx = 5)] + pub phy_layer_parameters_v1610: Option, + #[asn(optional_idx = 6)] + pub meas_parameters_v1610: Option, + #[asn(optional_idx = 7)] + pub pur_parameters_r16: Option, + #[asn(optional_idx = 8)] + pub eutra_5gc_parameters_v1610: Option, + #[asn(optional_idx = 9)] + pub other_parameters_v1610: Option, + #[asn(optional_idx = 10)] + pub dl_dedicated_message_segmentation_r16: + Option, + pub mmtel_parameters_v1610: MMTEL_Parameters_v1610, + #[asn(optional_idx = 11)] + pub irat_parameters_nr_v1610: Option, + #[asn(optional_idx = 12)] + pub rf_parameters_v1610: Option, + #[asn(optional_idx = 13)] + pub mobility_parameters_v1610: Option, + pub ue_based_netw_perf_meas_parameters_v1610: UE_BasedNetwPerfMeasParameters_v1610, + #[asn(optional_idx = 14)] + pub sl_parameters_v1610: Option, + #[asn(optional_idx = 15)] + pub fdd_add_ue_eutra_capabilities_v1610: Option, + #[asn(optional_idx = 16)] + pub tdd_add_ue_eutra_capabilities_v1610: Option, + #[asn(optional_idx = 17)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct UE_EUTRA_Capability_v1630_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v1630: Option, + #[asn(optional_idx = 1)] + pub sl_parameters_v1630: Option, + #[asn(optional_idx = 2)] + pub early_security_reactivation_r16: + Option, + pub mac_parameters_v1630: MAC_Parameters_v1630, + #[asn(optional_idx = 3)] + pub meas_parameters_v1630: Option, + pub fdd_add_ue_eutra_capabilities_v1630: UE_EUTRA_CapabilityAddXDD_Mode_v1630, + pub tdd_add_ue_eutra_capabilities_v1630: UE_EUTRA_CapabilityAddXDD_Mode_v1630, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v1650_IEs { + #[asn(optional_idx = 0)] + pub other_parameters_v1650: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1660_IEs { + pub irat_parameters_nr_v1660: IRAT_ParametersNR_v1660, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1690_IEs { + pub other_parameters_v1690: Other_Parameters_v1690, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v16c0_IEs { + pub meas_parameters_v16c0: MeasParameters_v16c0, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct UE_EUTRA_Capability_v1700_IEs { + #[asn(optional_idx = 0)] + pub meas_parameters_v1700: Option, + #[asn(optional_idx = 1)] + pub ue_based_netw_perf_meas_parameters_v1700: Option, + pub phy_layer_parameters_v1700: PhyLayerParameters_v1700, + #[asn(optional_idx = 2)] + pub ntn_parameters_r17: Option, + #[asn(optional_idx = 3)] + pub irat_parameters_nr_v1700: Option, + pub mbms_parameters_v1700: MBMS_Parameters_v1700, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v1710_IEs { + pub irat_parameters_nr_v1710: IRAT_ParametersNR_v1710, + #[asn(optional_idx = 0)] + pub neigh_cell_si_acquisition_parameters_v1710: Option, + #[asn(optional_idx = 1)] + pub sl_parameters_v1710: Option, + #[asn(optional_idx = 2)] + pub sidelink_requested_r17: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1720_IEs { + pub ntn_parameters_v1720: NTN_Parameters_v1720, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_Capability_v1730_IEs { + pub phy_layer_parameters_v1730: PhyLayerParameters_v1730, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v920_IEs { + pub phy_layer_parameters_v920: PhyLayerParameters_v920, + pub inter_rat_parameters_geran_v920: IRAT_ParametersGERAN_v920, + #[asn(optional_idx = 0)] + pub inter_rat_parameters_utra_v920: Option, + #[asn(optional_idx = 1)] + pub inter_rat_parameters_cdma2000_v920: Option, + #[asn(optional_idx = 2)] + pub device_type_r9: Option, + pub csg_proximity_indication_parameters_r9: CSG_ProximityIndicationParameters_r9, + pub neigh_cell_si_acquisition_parameters_r9: NeighCellSI_AcquisitionParameters_r9, + pub son_parameters_r9: SON_Parameters_r9, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v940_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UE_EUTRA_Capability_v9a0_IEs { + #[asn(optional_idx = 0)] + pub feature_group_ind_rel9_add_r9: + Option, + #[asn(optional_idx = 1)] + pub fdd_add_ue_eutra_capabilities_r9: Option, + #[asn(optional_idx = 2)] + pub tdd_add_ue_eutra_capabilities_r9: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v9c0_IEs { + #[asn(optional_idx = 0)] + pub inter_rat_parameters_utra_v9c0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v9d0_IEs { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v9d0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_Capability_v9e0_IEs { + #[asn(optional_idx = 0)] + pub rf_parameters_v9e0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_Capability_v9h0_IEs { + #[asn(optional_idx = 0)] + pub inter_rat_parameters_utra_v9h0: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 7)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_r9 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_r9: Option, + #[asn(optional_idx = 1)] + pub feature_group_indicators_r9: + Option, + #[asn(optional_idx = 2)] + pub feature_group_ind_rel9_add_r9: + Option, + #[asn(optional_idx = 3)] + pub inter_rat_parameters_geran_r9: Option, + #[asn(optional_idx = 4)] + pub inter_rat_parameters_utra_r9: Option, + #[asn(optional_idx = 5)] + pub inter_rat_parameters_cdma2000_r9: Option, + #[asn(optional_idx = 6)] + pub neigh_cell_si_acquisition_parameters_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1060 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1060: Option, + #[asn(optional_idx = 1)] + pub feature_group_ind_rel10_v1060: + Option, + #[asn(optional_idx = 2)] + pub inter_rat_parameters_cdma2000_v1060: Option, + #[asn(optional_idx = 3)] + pub inter_rat_parameters_utra_tdd_v1060: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1130 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1130: Option, + #[asn(optional_idx = 1)] + pub meas_parameters_v1130: Option, + #[asn(optional_idx = 2)] + pub other_parameters_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1180 { + pub mbms_parameters_r11: MBMS_Parameters_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1250 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1250: Option, + #[asn(optional_idx = 1)] + pub meas_parameters_v1250: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1310 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1320 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1320: Option, + #[asn(optional_idx = 1)] + pub scptm_parameters_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1370 { + #[asn(optional_idx = 0)] + pub ce_parameters_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1380 { + pub ce_parameters_v1380: CE_Parameters_v1380, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1430 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1430: Option, + #[asn(optional_idx = 1)] + pub mmtel_parameters_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1510 { + #[asn(optional_idx = 0)] + pub pdcp_parameters_nr_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1530 { + #[asn(optional_idx = 0)] + pub neigh_cell_si_acquisition_parameters_v1530: Option, + #[asn(optional_idx = 1)] + pub reduced_cp_latency_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1540 { + #[asn(optional_idx = 0)] + pub eutra_5gc_parameters_r15: Option, + #[asn(optional_idx = 1)] + pub irat_parameters_nr_v1540: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1550 { + #[asn(optional_idx = 0)] + pub neigh_cell_si_acquisition_parameters_v1550: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1560 { + pub pdcp_parameters_nr_v1560: PDCP_ParametersNR_v1560, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v15a0 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1530: Option, + #[asn(optional_idx = 1)] + pub phy_layer_parameters_v1540: Option, + #[asn(optional_idx = 2)] + pub phy_layer_parameters_v1550: Option, + pub neigh_cell_si_acquisition_parameters_v15a0: NeighCellSI_AcquisitionParameters_v15a0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1610 { + #[asn(optional_idx = 0)] + pub phy_layer_parameters_v1610: Option, + #[asn(optional_idx = 1)] + pub pur_parameters_r16: Option, + #[asn(optional_idx = 2)] + pub meas_parameters_v1610: Option, + #[asn(optional_idx = 3)] + pub eutra_5gc_parameters_v1610: Option, + #[asn(optional_idx = 4)] + pub irat_parameters_nr_v1610: Option, + #[asn(optional_idx = 5)] + pub neigh_cell_si_acquisition_parameters_v1610: Option, + #[asn(optional_idx = 6)] + pub mobility_parameters_v1610: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1630 { + pub meas_parameters_v1630: MeasParameters_v1630, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct UE_RadioPagingInfo_r12 { + #[asn(optional_idx = 0)] + pub ue_category_v1250: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct UE_TimersAndConstants { + pub t300: UE_TimersAndConstantsT300, + pub t301: UE_TimersAndConstantsT301, + pub t310: UE_TimersAndConstantsT310, + pub n310: UE_TimersAndConstantsN310, + pub t311: UE_TimersAndConstantsT311, + pub n311: UE_TimersAndConstantsN311, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEAssistanceInformation_r11 { + pub critical_extensions: UEAssistanceInformation_r11CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UEAssistanceInformation_r11_IEs { + #[asn(optional_idx = 0)] + pub power_pref_indication_r11: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct UEAssistanceInformation_v1430_IEs { + #[asn(optional_idx = 0)] + pub bw_preference_r14: Option, + #[asn(optional_idx = 1)] + pub sps_assistance_information_r14: + Option, + #[asn(optional_idx = 2)] + pub rlm_report_r14: Option, + #[asn(optional_idx = 3)] + pub delay_budget_report_r14: Option, + #[asn(optional_idx = 4)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEAssistanceInformation_v1450_IEs { + #[asn(optional_idx = 0)] + pub overheating_assistance_r14: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEAssistanceInformation_v1530_IEs { + #[asn(optional_idx = 0)] + pub sps_assistance_information_v1530: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEAssistanceInformation_v1610_IEs { + #[asn(optional_idx = 0)] + pub overheating_assistance_v1610: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UEAssistanceInformation_v1700_IEs { + #[asn(optional_idx = 0)] + pub uplink_data_r17: Option, + #[asn(optional_idx = 1)] + pub scg_deactivation_preference_r17: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEAssistanceInformation_v1710_IEs { + #[asn(optional_idx = 0)] + pub overheating_assistance_v1710: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityEnquiry { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: UECapabilityEnquiryCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UECapabilityEnquiry_r8_IEs { + pub ue_capability_request: UE_CapabilityRequest, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1180_IEs { + #[asn(optional_idx = 0)] + pub requested_frequency_bands_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct UECapabilityEnquiry_v1310_IEs { + #[asn(optional_idx = 0)] + pub request_reduced_format_r13: Option, + #[asn(optional_idx = 1)] + pub request_skip_fallback_comb_r13: + Option, + #[asn(optional_idx = 2)] + pub requested_max_c_cs_dl_r13: Option, + #[asn(optional_idx = 3)] + pub requested_max_c_cs_ul_r13: Option, + #[asn(optional_idx = 4)] + pub request_reduced_int_non_cont_comb_r13: + Option, + #[asn(optional_idx = 5)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1430_IEs { + #[asn(optional_idx = 0)] + pub request_diff_fallback_comb_list_r14: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1510_IEs { + #[asn(optional_idx = 0)] + pub requested_freq_bands_nr_mrdc_r15: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UECapabilityEnquiry_v1530_IEs { + #[asn(optional_idx = 0)] + pub request_stti_spt_capability_r15: + Option, + #[asn(optional_idx = 1)] + pub eutra_nr_only_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1550_IEs { + #[asn(optional_idx = 0)] + pub requested_capability_nr_r15: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1560_IEs { + #[asn(optional_idx = 0)] + pub requested_capability_common_r15: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1610_IEs { + #[asn(optional_idx = 0)] + pub rrc_seg_allowed_r16: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v1710_IEs { + #[asn(optional_idx = 0)] + pub sidelink_request_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityEnquiry_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityInformation { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: UECapabilityInformationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UECapabilityInformation_r8_IEs { + pub ue_capability_rat_container_list: UE_CapabilityRAT_ContainerList, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityInformation_v1250_IEs { + #[asn(optional_idx = 0)] + pub ue_radio_paging_info_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UECapabilityInformation_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationRequest_r9 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: UEInformationRequest_r9CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UEInformationRequest_r9_IEs { + pub rach_report_req_r9: UEInformationRequest_r9_IEsRach_ReportReq_r9, + pub rlf_report_req_r9: UEInformationRequest_r9_IEsRlf_ReportReq_r9, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationRequest_v1020_IEs { + #[asn(optional_idx = 0)] + pub log_meas_report_req_r10: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationRequest_v1130_IEs { + #[asn(optional_idx = 0)] + pub conn_est_fail_report_req_r11: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationRequest_v1250_IEs { + #[asn(optional_idx = 0)] + pub mobility_history_report_req_r12: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UEInformationRequest_v1530_IEs { + #[asn(optional_idx = 0)] + pub idle_mode_measurement_req_r15: + Option, + #[asn(optional_idx = 1)] + pub flight_path_info_req_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationRequest_v1710_IEs { + #[asn(optional_idx = 0)] + pub coarse_location_req_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationRequest_v930_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationResponse_r9 { + pub rrc_transaction_identifier: RRC_TransactionIdentifier, + pub critical_extensions: UEInformationResponse_r9CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UEInformationResponse_r9_IEs { + #[asn(optional_idx = 0)] + pub rach_report_r9: Option, + #[asn(optional_idx = 1)] + pub rlf_report_r9: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v1020_IEs { + #[asn(optional_idx = 0)] + pub log_meas_report_r10: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v1130_IEs { + #[asn(optional_idx = 0)] + pub conn_est_fail_report_r11: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v1250_IEs { + #[asn(optional_idx = 0)] + pub mobility_history_report_r12: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UEInformationResponse_v1530_IEs { + #[asn(optional_idx = 0)] + pub meas_result_list_idle_r15: Option, + #[asn(optional_idx = 1)] + pub flight_path_info_report_r15: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UEInformationResponse_v1610_IEs { + #[asn(optional_idx = 0)] + pub rach_report_v1610: Option, + #[asn(optional_idx = 1)] + pub meas_result_list_ext_idle_r16: Option, + #[asn(optional_idx = 2)] + pub meas_result_list_idle_nr_r16: Option, + #[asn(optional_idx = 3)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v1710_IEs { + #[asn(optional_idx = 0)] + pub coarse_location_info_r17: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v930_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEInformationResponse_v9e0_IEs { + #[asn(optional_idx = 0)] + pub rlf_report_v9e0: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEPagingCoverageInformation { + pub critical_extensions: UEPagingCoverageInformationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEPagingCoverageInformation_r13_IEs { + #[asn(optional_idx = 0)] + pub mpdcch_num_repetition_r13: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioAccessCapabilityInformation { + pub critical_extensions: UERadioAccessCapabilityInformationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UERadioAccessCapabilityInformation_r8_IEs { + pub ue_radio_access_capability_info: + UERadioAccessCapabilityInformation_r8_IEsUe_RadioAccessCapabilityInfo, + #[asn(optional_idx = 0)] + pub non_critical_extension: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioPagingInformation { + pub critical_extensions: UERadioPagingInformationCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UERadioPagingInformation_r12_IEs { + pub ue_radio_paging_info_r12: UERadioPagingInformation_r12_IEsUe_RadioPagingInfo_r12, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UERadioPagingInformation_v1310_IEs { + #[asn(optional_idx = 0)] + pub supported_band_list_eutra_for_paging_r13: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UERadioPagingInformation_v1610_IEs { + #[asn(optional_idx = 0)] + pub access_stratum_release_r16: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UL_256QAM_perCC_Info_r14 { + #[asn(optional_idx = 0)] + pub ul_256qam_per_cc_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_AM_RLC { + pub t_poll_retransmit: T_PollRetransmit, + pub poll_pdu: PollPDU, + pub poll_byte: PollByte, + pub max_retx_threshold: UL_AM_RLCMaxRetxThreshold, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_AM_RLC_r15 { + pub t_poll_retransmit_r15: T_PollRetransmit, + pub poll_pdu_r15: PollPDU_r15, + pub poll_byte_r15: PollByte_r14, + pub max_retx_threshold_r15: UL_AM_RLC_r15MaxRetxThreshold_r15, + pub extended_rlc_li_field_r15: UL_AM_RLC_r15Extended_RLC_LI_Field_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_CCCH_Message { + pub message: UL_CCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_CCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(UL_CCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(UL_CCCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UL_CyclicPrefixLength(pub u8); +impl UL_CyclicPrefixLength { + pub const LEN1: u8 = 0u8; + pub const LEN2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_DCCH_Message { + pub message: UL_DCCH_MessageType, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_DCCH_MessageType { + #[asn(key = 0, extended = false)] + C1(UL_DCCH_MessageType_c1), + #[asn(key = 1, extended = false)] + MessageClassExtension(UL_DCCH_MessageType_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_DelayConfig_r13 { + #[asn(key = 0, extended = false)] + Release(UL_DelayConfig_r13_release), + #[asn(key = 1, extended = false)] + Setup(UL_DelayConfig_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_DelayValueConfig_r16 { + #[asn(key = 0, extended = false)] + Release(UL_DelayValueConfig_r16_release), + #[asn(key = 1, extended = false)] + Setup(UL_DelayValueConfig_r16_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct UL_PDCP_DelayResult_r13 { + pub qci_id_r13: UL_PDCP_DelayResult_r13Qci_Id_r13, + pub excess_delay_r13: UL_PDCP_DelayResult_r13ExcessDelay_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct UL_PDCP_DelayResultList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct UL_PDCP_DelayValueResult_r16 { + pub drb_id_r16: DRB_Identity, + pub average_delay_r16: UL_PDCP_DelayValueResult_r16AverageDelay_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct UL_PDCP_DelayValueResultList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_ReferenceSignalsPUSCH { + pub group_hopping_enabled: UL_ReferenceSignalsPUSCHGroupHoppingEnabled, + pub group_assignment_pusch: UL_ReferenceSignalsPUSCHGroupAssignmentPUSCH, + pub sequence_hopping_enabled: UL_ReferenceSignalsPUSCHSequenceHoppingEnabled, + pub cyclic_shift: UL_ReferenceSignalsPUSCHCyclicShift, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_UM_RLC { + pub sn_field_length: SN_FieldLength, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULDedicatedMessageSegment_r16 { + pub critical_extensions: ULDedicatedMessageSegment_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ULDedicatedMessageSegment_r16_IEs { + pub segment_number_r16: ULDedicatedMessageSegment_r16_IEsSegmentNumber_r16, + pub rrc_message_segment_container_r16: + ULDedicatedMessageSegment_r16_IEsRrc_MessageSegmentContainer_r16, + pub rrc_message_segment_type_r16: ULDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULHandoverPreparationTransfer { + pub critical_extensions: ULHandoverPreparationTransferCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ULHandoverPreparationTransfer_r8_IEs { + pub cdma2000_type: CDMA2000_Type, + #[asn(optional_idx = 0)] + pub meid: Option, + pub dedicated_info: DedicatedInfoCDMA2000, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ULHandoverPreparationTransfer_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransfer { + pub critical_extensions: ULInformationTransferCriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct ULInformationTransfer_r16_IEs { + #[asn(optional_idx = 0)] + pub dedicated_info_type_r16: Option, + #[asn(optional_idx = 1)] + pub dedicated_info_f1c_r16: Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ULInformationTransfer_r8_IEs { + pub dedicated_info_type: ULInformationTransfer_r8_IEsDedicatedInfoType, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ULInformationTransfer_v8a0_IEs { + #[asn(optional_idx = 0)] + pub late_non_critical_extension: Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferIRAT_r16 { + pub critical_extensions: ULInformationTransferIRAT_r16CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct ULInformationTransferIRAT_r16_IEs { + #[asn(optional_idx = 0)] + pub ul_dcch_message_nr_r16: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferMRDC_r15 { + pub critical_extensions: ULInformationTransferMRDC_r15CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct ULInformationTransferMRDC_r15_IEs { + #[asn(optional_idx = 0)] + pub ul_dcch_message_nr_r15: Option, + #[asn(optional_idx = 1)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 2)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UplinkPUSCH_LessPowerControlDedicated_v1430 { + #[asn(optional_idx = 0)] + pub p0_ue_periodic_srs_r14: + Option, + #[asn(optional_idx = 1)] + pub p0_ue_aperiodic_srs_r14: + Option, + pub accumulation_enabled_r14: + UplinkPUSCH_LessPowerControlDedicated_v1430AccumulationEnabled_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UplinkPowerControlAddSRS_r16 { + #[asn(optional_idx = 0)] + pub tpc_index_srs_add_r16: Option, + #[asn(optional_idx = 1)] + pub starting_bit_of_format3_b_srs_add_r16: + Option, + #[asn(optional_idx = 2)] + pub field_type_format3_b_srs_add_r16: + Option, + #[asn(optional_idx = 3)] + pub p0_ue_srs_add_r16: Option, + pub accumulation_enabled_srs_add_r16: + UplinkPowerControlAddSRS_r16AccumulationEnabledSRS_Add_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommon { + pub p0_nominal_pusch: UplinkPowerControlCommonP0_NominalPUSCH, + pub alpha: Alpha_r12, + pub p0_nominal_pucch: UplinkPowerControlCommonP0_NominalPUCCH, + pub delta_f_list_pucch: DeltaFList_PUCCH, + pub delta_preamble_msg3: UplinkPowerControlCommonDeltaPreambleMsg3, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommon_v1020 { + pub delta_f_pucch_format3_r10: UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format3_r10, + pub delta_f_pucch_format1b_cs_r10: UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format1bCS_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UplinkPowerControlCommon_v1310 { + #[asn(optional_idx = 0)] + pub delta_f_pucch_format4_r13: Option, + #[asn(optional_idx = 1)] + pub delta_f_pucch_format5_13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommon_v1530 { + pub delta_f_list_spucch_r15: DeltaFList_SPUCCH_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommon_v1610 { + pub alpha_srs_add_r16: Alpha_r12, + pub p0_nominal_srs_add_r16: UplinkPowerControlCommon_v1610P0_NominalSRS_Add_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommonPSCell_r12 { + pub delta_f_pucch_format3_r12: UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format3_r12, + pub delta_f_pucch_format1b_cs_r12: + UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format1bCS_r12, + pub p0_nominal_pucch_r12: UplinkPowerControlCommonPSCell_r12P0_NominalPUCCH_r12, + pub delta_f_list_pucch_r12: DeltaFList_PUCCH, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UplinkPowerControlCommonPUSCH_LessCell_v1430 { + #[asn(optional_idx = 0)] + pub p0_nominal_periodic_srs_r14: + Option, + #[asn(optional_idx = 1)] + pub p0_nominal_aperiodic_srs_r14: + Option, + #[asn(optional_idx = 2)] + pub alpha_srs_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommonSCell_r10 { + pub p0_nominal_pusch_r10: UplinkPowerControlCommonSCell_r10P0_NominalPUSCH_r10, + pub alpha_r10: Alpha_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlCommonSCell_v1130 { + pub delta_preamble_msg3_r11: UplinkPowerControlCommonSCell_v1130DeltaPreambleMsg3_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct UplinkPowerControlCommonSCell_v1310 { + pub p0_nominal_pucch: UplinkPowerControlCommonSCell_v1310P0_NominalPUCCH, + pub delta_f_list_pucch: DeltaFList_PUCCH, + #[asn(optional_idx = 0)] + pub delta_f_pucch_format3_r12: + Option, + #[asn(optional_idx = 1)] + pub delta_f_pucch_format1b_cs_r12: + Option, + #[asn(optional_idx = 2)] + pub delta_f_pucch_format4_r13: + Option, + #[asn(optional_idx = 3)] + pub delta_f_pucch_format5_13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UplinkPowerControlDedicated { + pub p0_ue_pusch: UplinkPowerControlDedicatedP0_UE_PUSCH, + pub delta_mcs_enabled: UplinkPowerControlDedicatedDeltaMCS_Enabled, + pub accumulation_enabled: UplinkPowerControlDedicatedAccumulationEnabled, + pub p0_ue_pucch: UplinkPowerControlDedicatedP0_UE_PUCCH, + pub psrs_offset: UplinkPowerControlDedicatedPSRS_Offset, + #[asn(optional_idx = 0)] + pub filter_coefficient: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UplinkPowerControlDedicated_v1020 { + #[asn(optional_idx = 0)] + pub delta_tx_d_offset_list_pucch_r10: Option, + #[asn(optional_idx = 1)] + pub psrs_offset_ap_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct UplinkPowerControlDedicated_v1130 { + #[asn(optional_idx = 0)] + pub psrs_offset_v1130: Option, + #[asn(optional_idx = 1)] + pub psrs_offset_ap_v1130: Option, + #[asn(optional_idx = 2)] + pub delta_tx_d_offset_list_pucch_v1130: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlDedicated_v1250 { + pub set2_power_control_parameter: UplinkPowerControlDedicated_v1250Set2PowerControlParameter, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UplinkPowerControlDedicated_v1530 { + #[asn(optional_idx = 0)] + pub alpha_ue_r15: Option, + #[asn(optional_idx = 1)] + pub p0_ue_pusch_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UplinkPowerControlDedicatedSCell_r10 { + pub p0_ue_pusch_r10: UplinkPowerControlDedicatedSCell_r10P0_UE_PUSCH_r10, + pub delta_mcs_enabled_r10: UplinkPowerControlDedicatedSCell_r10DeltaMCS_Enabled_r10, + pub accumulation_enabled_r10: UplinkPowerControlDedicatedSCell_r10AccumulationEnabled_r10, + pub psrs_offset_r10: UplinkPowerControlDedicatedSCell_r10PSRS_Offset_r10, + #[asn(optional_idx = 0)] + pub psrs_offset_ap_r10: Option, + #[asn(optional_idx = 1)] + pub filter_coefficient_r10: Option, + pub pathloss_reference_linking_r10: + UplinkPowerControlDedicatedSCell_r10PathlossReferenceLinking_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UplinkPowerControlDedicatedSCell_v1310 { + pub p0_ue_pucch: UplinkPowerControlDedicatedSCell_v1310P0_UE_PUCCH, + #[asn(optional_idx = 0)] + pub delta_tx_d_offset_list_pucch_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UplinkPowerControlDedicatedSTTI_r15 { + pub accumulation_enabled_stti_r15: + UplinkPowerControlDedicatedSTTI_r15AccumulationEnabledSTTI_r15, + #[asn(optional_idx = 0)] + pub delta_tx_d_offset_list_spucch_r15: Option, + pub uplink_power_csi_payload: UplinkPowerControlDedicatedSTTI_r15UplinkPower_CSIPayload, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct V2X_BandCombinationParameters_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct V2X_BandCombinationParameters_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct V2X_BandCombinationParametersEUTRA_NR_v1630 { + pub band_list_sidelink_eutra_nr_r16: + V2X_BandCombinationParametersEUTRA_NR_v1630BandListSidelinkEUTRA_NR_r16, + pub band_list_sidelink_eutra_nr_v1630: + V2X_BandCombinationParametersEUTRA_NR_v1630BandListSidelinkEUTRA_NR_v1630, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct V2X_BandCombinationParametersEUTRA_NR_v1710(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct V2X_BandParameters_r14 { + pub v2x_freq_band_eutra_r14: FreqBandIndicator_r11, + #[asn(optional_idx = 0)] + pub band_parameters_tx_sl_r14: Option, + #[asn(optional_idx = 1)] + pub band_parameters_rx_sl_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct V2X_BandParameters_v1530 { + #[asn(optional_idx = 0)] + pub v2x_enhanced_high_reception_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum V2X_BandParametersEUTRA_NR_r16 { + #[asn(key = 0, extended = false)] + Eutra(V2X_BandParametersEUTRA_NR_r16_eutra), + #[asn(key = 1, extended = false)] + Nr(V2X_BandParametersEUTRA_NR_r16_nr), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum V2X_BandParametersEUTRA_NR_v1630 { + #[asn(key = 0, extended = false)] + Eutra(V2X_BandParametersEUTRA_NR_v1630_eutra), + #[asn(key = 1, extended = false)] + Nr(V2X_BandParametersEUTRA_NR_v1630_nr), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct V2X_BandParametersEUTRA_NR_v1710 { + #[asn(optional_idx = 0)] + pub v2x_band_parameters_eutra_nr_v1710: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "5")] +pub struct V2X_BandwidthClass_r14(pub u8); +impl V2X_BandwidthClass_r14 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; + pub const D: u8 = 3u8; + pub const E: u8 = 4u8; + pub const F: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct V2X_BandwidthClassSL_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct V2X_SupportedBandCombination_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "384" +)] +pub struct V2X_SupportedBandCombination_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "512" +)] +pub struct V2X_SupportedBandCombinationEUTRA_NR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "512" +)] +pub struct V2X_SupportedBandCombinationEUTRA_NR_v1630( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "512" +)] +pub struct V2X_SupportedBandCombinationEUTRA_NR_v1710( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ValidityArea_r16 { + pub carrier_freq_r16: ARFCN_ValueEUTRA_r9, + #[asn(optional_idx = 0)] + pub validity_cell_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct ValidityAreaList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct ValidityCellList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VarConditionalReconfiguration { + #[asn(optional_idx = 0)] + pub cond_reconfiguration_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarConnEstFailReport_r11 { + pub conn_est_fail_report_r11: ConnEstFailReport_r11, + pub plmn_identity_r11: PLMN_Identity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VarLogMeasConfig_r10 { + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct VarLogMeasConfig_r11 { + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + #[asn(optional_idx = 1)] + pub area_configuration_v1130: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct VarLogMeasConfig_r12 { + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + #[asn(optional_idx = 1)] + pub area_configuration_v1130: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, + #[asn(optional_idx = 2)] + pub target_mbsfn_area_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct VarLogMeasConfig_r15 { + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + #[asn(optional_idx = 1)] + pub area_configuration_v1130: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, + #[asn(optional_idx = 2)] + pub target_mbsfn_area_list_r12: Option, + #[asn(optional_idx = 3)] + pub bt_name_list_r15: Option, + #[asn(optional_idx = 4)] + pub wlan_name_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct VarLogMeasConfig_r17 { + #[asn(optional_idx = 0)] + pub area_configuration_r10: Option, + #[asn(optional_idx = 1)] + pub area_configuration_v1130: Option, + pub logging_duration_r10: LoggingDuration_r10, + pub logging_interval_r10: LoggingInterval_r10, + #[asn(optional_idx = 2)] + pub target_mbsfn_area_list_r12: Option, + #[asn(optional_idx = 3)] + pub bt_name_list_r15: Option, + #[asn(optional_idx = 4)] + pub wlan_name_list_r15: Option, + #[asn(optional_idx = 5)] + pub logged_event_trigger_config_r17: Option, + #[asn(optional_idx = 6)] + pub meas_uncom_bar_pre_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarLogMeasReport_r10 { + pub trace_reference_r10: TraceReference_r10, + pub trace_recording_session_ref_r10: VarLogMeasReport_r10TraceRecordingSessionRef_r10, + pub tce_id_r10: VarLogMeasReport_r10Tce_Id_r10, + pub plmn_identity_r10: PLMN_Identity, + pub absolute_time_info_r10: AbsoluteTimeInfo_r10, + pub log_meas_info_list_r10: LogMeasInfoList2_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarLogMeasReport_r11 { + pub trace_reference_r10: TraceReference_r10, + pub trace_recording_session_ref_r10: VarLogMeasReport_r11TraceRecordingSessionRef_r10, + pub tce_id_r10: VarLogMeasReport_r11Tce_Id_r10, + pub plmn_identity_list_r11: PLMN_IdentityList3_r11, + pub absolute_time_info_r10: AbsoluteTimeInfo_r10, + pub log_meas_info_list_r10: LogMeasInfoList2_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 13)] +pub struct VarMeasConfig { + #[asn(optional_idx = 0)] + pub meas_id_list: Option, + #[asn(optional_idx = 1)] + pub meas_id_list_ext_r12: Option, + #[asn(optional_idx = 2)] + pub meas_id_list_v1310: Option, + #[asn(optional_idx = 3)] + pub meas_id_list_ext_v1310: Option, + #[asn(optional_idx = 4)] + pub meas_object_list: Option, + #[asn(optional_idx = 5)] + pub meas_object_list_ext_r13: Option, + #[asn(optional_idx = 6)] + pub meas_object_list_v9i0: Option, + #[asn(optional_idx = 7)] + pub report_config_list: Option, + #[asn(optional_idx = 8)] + pub quantity_config: Option, + #[asn(optional_idx = 9)] + pub meas_scale_factor_r12: Option, + #[asn(optional_idx = 10)] + pub s_measure: Option, + #[asn(optional_idx = 11)] + pub speed_state_pars: Option, + #[asn(optional_idx = 12)] + pub allow_interruptions_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VarMeasIdleConfig_r15 { + #[asn(optional_idx = 0)] + pub meas_idle_carrier_list_eutra_r15: Option, + pub meas_idle_duration_r15: VarMeasIdleConfig_r15MeasIdleDuration_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct VarMeasIdleConfig_r16 { + #[asn(optional_idx = 0)] + pub meas_idle_carrier_list_nr_r16: Option, + #[asn(optional_idx = 1)] + pub validity_area_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarMeasIdleReport_r15 { + pub meas_report_idle_r15: MeasResultListIdle_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct VarMeasIdleReport_r16 { + #[asn(optional_idx = 0)] + pub meas_report_idle_r16: Option, + #[asn(optional_idx = 1)] + pub meas_report_idle_nr_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct VarMeasReport { + pub meas_id: MeasId, + #[asn(optional_idx = 0)] + pub meas_id_v1250: Option, + #[asn(optional_idx = 1)] + pub cells_triggered_list: Option, + #[asn(optional_idx = 2)] + pub csi_rs_triggered_list_r12: Option, + #[asn(optional_idx = 3)] + pub pools_triggered_list_r14: Option, + pub number_of_reports_sent: VarMeasReportNumberOfReportsSent, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct VarMeasReportList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct VarMeasReportList_r12(pub Vec); + +pub type VarMobilityHistoryReport_r12 = VisitedCellInfoList_r12; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VarPendingRnaUpdate_r15 { + #[asn(optional_idx = 0)] + pub pending_rna_update: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarRLF_Report_r10 { + pub rlf_report_r10: RLF_Report_r9, + pub plmn_identity_r10: PLMN_Identity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarRLF_Report_r11 { + pub rlf_report_r10: RLF_Report_r9, + pub plmn_identity_list_r11: PLMN_IdentityList3_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarShortINACTIVE_MAC_Input_r15 { + pub cell_identity_r15: CellIdentity, + pub phys_cell_id_r15: PhysCellId, + pub c_rnti_r15: C_RNTI, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarShortMAC_Input { + pub cell_identity: CellIdentity, + pub phys_cell_id: PhysCellId, + pub c_rnti: C_RNTI, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarShortResumeMAC_Input_r13 { + pub cell_identity_r13: CellIdentity, + pub phys_cell_id_r13: PhysCellId, + pub c_rnti_r13: C_RNTI, + pub resume_discriminator_r13: VarShortResumeMAC_Input_r13ResumeDiscriminator_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct VarWLAN_MobilityConfig { + #[asn(optional_idx = 0)] + pub wlan_mobility_set_r13: Option, + #[asn(optional_idx = 1)] + pub success_report_requested: Option, + #[asn(optional_idx = 2)] + pub wlan_suspend_config_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VarWLAN_Status_r13 { + pub status_r13: WLAN_Status_r13, + #[asn(optional_idx = 0)] + pub status_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-131072", ub = "131071")] +pub struct VelocityStateVector_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 6)] +pub struct VictimSystemType_r11 { + #[asn(optional_idx = 0)] + pub gps_r11: Option, + #[asn(optional_idx = 1)] + pub glonass_r11: Option, + #[asn(optional_idx = 2)] + pub bds_r11: Option, + #[asn(optional_idx = 3)] + pub galileo_r11: Option, + #[asn(optional_idx = 4)] + pub wlan_r11: Option, + #[asn(optional_idx = 5)] + pub bluetooth_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct VictimSystemType_v1610 { + #[asn(optional_idx = 0)] + pub navic_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct VisitedCellInfo_r12 { + #[asn(optional_idx = 0)] + pub visited_cell_id_r12: Option, + pub time_spent_r12: VisitedCellInfo_r12TimeSpent_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct VisitedCellInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct WLAN_BandIndicator_r13(pub u8); +impl WLAN_BandIndicator_r13 { + pub const BAND2DOT4: u8 = 0u8; + pub const BAND5: u8 = 1u8; + pub const BAND60_V1430: u8 = 2u8; + pub const SPARE5: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct WLAN_CarrierInfo_r13 { + #[asn(optional_idx = 0)] + pub operating_class_r13: Option, + #[asn(optional_idx = 1)] + pub country_code_r13: Option, + #[asn(optional_idx = 2)] + pub channel_numbers_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_Channel_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct WLAN_ChannelList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct WLAN_IW_Parameters_r12 { + #[asn(optional_idx = 0)] + pub wlan_iw_ran_rules_r12: Option, + #[asn(optional_idx = 1)] + pub wlan_iw_andsf_policies_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct WLAN_IW_Parameters_v1310 { + #[asn(optional_idx = 0)] + pub rclwi_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct WLAN_Id_List_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct WLAN_Id_List_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 3)] +pub struct WLAN_Identifiers_r12 { + #[asn(optional_idx = 0)] + pub ssid_r12: Option, + #[asn(optional_idx = 1)] + pub bssid_r12: Option, + #[asn(optional_idx = 2)] + pub hessid_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 4)] +pub struct WLAN_MobilityConfig_r13 { + #[asn(optional_idx = 0)] + pub wlan_to_release_list_r13: Option, + #[asn(optional_idx = 1)] + pub wlan_to_add_list_r13: Option, + #[asn(optional_idx = 2)] + pub association_timer_r13: Option, + #[asn(optional_idx = 3)] + pub success_report_requested_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "32" +)] +pub struct WLAN_Name_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct WLAN_NameList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum WLAN_NameListConfig_r15 { + #[asn(key = 0, extended = false)] + Release(WLAN_NameListConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(WLAN_NameList_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct WLAN_OffloadConfig_r12 { + #[asn(optional_idx = 0)] + pub threshold_rsrp_r12: Option, + #[asn(optional_idx = 1)] + pub threshold_rsrq_r12: Option, + #[asn(optional_idx = 2)] + pub threshold_rsrq_on_all_symbols_with_wb_r12: + Option, + #[asn(optional_idx = 3)] + pub threshold_rsrq_on_all_symbols_r12: + Option, + #[asn(optional_idx = 4)] + pub threshold_rsrq_wb_r12: Option, + #[asn(optional_idx = 5)] + pub threshold_channel_utilization_r12: + Option, + #[asn(optional_idx = 6)] + pub threshold_backhaul_bandwidth_r12: + Option, + #[asn(optional_idx = 7)] + pub threshold_wlan_rssi_r12: Option, + #[asn(optional_idx = 8)] + pub offload_preference_indicator_r12: + Option, + #[asn(optional_idx = 9)] + pub t_steering_wlan_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct WLAN_OffloadInfoPerPLMN_r12 { + #[asn(optional_idx = 0)] + pub wlan_offload_config_common_r12: Option, + #[asn(optional_idx = 1)] + pub wlan_id_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "141")] +pub struct WLAN_RSSI_Range_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct WLAN_RTT_r15 { + pub rtt_value_r15: WLAN_RTT_r15RttValue_r15, + pub rtt_units_r15: WLAN_RTT_r15RttUnits_r15, + #[asn(optional_idx = 0)] + pub rtt_accuracy_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WLAN_Status_r13(pub u8); +impl WLAN_Status_r13 { + pub const SUCCESSFUL_ASSOCIATION: u8 = 0u8; + pub const FAILURE_WLAN_RADIO_LINK: u8 = 1u8; + pub const FAILURE_WLAN_UNAVAILABLE: u8 = 2u8; + pub const FAILURE_TIMEOUT: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct WLAN_Status_v1430(pub u8); +impl WLAN_Status_v1430 { + pub const SUSPENDED: u8 = 0u8; + pub const RESUMED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct WLAN_SuspendConfig_r14 { + #[asn(optional_idx = 0)] + pub wlan_suspend_resume_allowed_r14: + Option, + #[asn(optional_idx = 1)] + pub wlan_suspend_triggers_status_report_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct WLAN_backhaulRate_r12(pub u8); +impl WLAN_backhaulRate_r12 { + pub const R0: u8 = 0u8; + pub const R4: u8 = 1u8; + pub const R8: u8 = 2u8; + pub const R16: u8 = 3u8; + pub const R32: u8 = 4u8; + pub const R64: u8 = 5u8; + pub const R128: u8 = 6u8; + pub const R256: u8 = 7u8; + pub const R512: u8 = 8u8; + pub const R1024: u8 = 9u8; + pub const R2048: u8 = 10u8; + pub const R4096: u8 = 11u8; + pub const R8192: u8 = 12u8; + pub const R16384: u8 = 13u8; + pub const R32768: u8 = 14u8; + pub const R65536: u8 = 15u8; + pub const R131072: u8 = 16u8; + pub const R262144: u8 = 17u8; + pub const R524288: u8 = 18u8; + pub const R1048576: u8 = 19u8; + pub const R2097152: u8 = 20u8; + pub const R4194304: u8 = 21u8; + pub const R8388608: u8 = 22u8; + pub const R16777216: u8 = 23u8; + pub const R33554432: u8 = 24u8; + pub const R67108864: u8 = 25u8; + pub const R134217728: u8 = 26u8; + pub const R268435456: u8 = 27u8; + pub const R536870912: u8 = 28u8; + pub const R1073741824: u8 = 29u8; + pub const R2147483648: u8 = 30u8; + pub const R4294967296: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLANConnectionStatusReport_r13 { + pub critical_extensions: WLANConnectionStatusReport_r13CriticalExtensions, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct WLANConnectionStatusReport_r13_IEs { + pub wlan_status_r13: WLAN_Status_r13, + #[asn(optional_idx = 0)] + pub late_non_critical_extension: + Option, + #[asn(optional_idx = 1)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct WLANConnectionStatusReport_v1430_IEs { + pub wlan_status_v1430: WLAN_Status_v1430, + #[asn(optional_idx = 0)] + pub non_critical_extension: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct WUS_Config_r15 { + pub max_duration_factor_r15: WUS_Config_r15MaxDurationFactor_r15, + #[asn(optional_idx = 0)] + pub num_p_os_r15: Option, + pub freq_location_r15: WUS_Config_r15FreqLocation_r15, + pub time_offset_drx_r15: WUS_Config_r15TimeOffsetDRX_r15, + pub time_offset_e_drx_short_r15: WUS_Config_r15TimeOffset_eDRX_Short_r15, + #[asn(optional_idx = 1)] + pub time_offset_e_drx_long_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WUS_Config_v1560 { + pub power_boost_r15: WUS_Config_v1560PowerBoost_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WUS_Config_v1610 { + pub num_drx_cycles_relaxed_r16: WUS_Config_v1610NumDRX_CyclesRelaxed_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct WayPointLocation_r15 { + pub way_point_location_r15: LocationInfo_r10, + #[asn(optional_idx = 0)] + pub time_stamp_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WidebandPRG_r16 { + pub wideband_prg_subframe_r16: WidebandPRG_r16WidebandPRG_Subframe_r16, + pub wideband_prg_slot_subslot_r16: WidebandPRG_r16WidebandPRG_SlotSubslot_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ZeroTxPowerCSI_RS_Conf_r12 { + #[asn(key = 0, extended = false)] + Release(ZeroTxPowerCSI_RS_Conf_r12_release), + #[asn(key = 1, extended = false)] + Setup(ZeroTxPowerCSI_RS_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ZeroTxPowerCSI_RS_r12 { + pub zero_tx_power_resource_config_list_r12: + ZeroTxPowerCSI_RS_r12ZeroTxPowerResourceConfigList_r12, + pub zero_tx_power_subframe_config_r12: ZeroTxPowerCSI_RS_r12ZeroTxPowerSubframeConfig_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct AC_BarringConfigAc_BarringFactor(pub u8); +impl AC_BarringConfigAc_BarringFactor { + pub const P00: u8 = 0u8; + pub const P05: u8 = 1u8; + pub const P10: u8 = 2u8; + pub const P15: u8 = 3u8; + pub const P20: u8 = 4u8; + pub const P25: u8 = 5u8; + pub const P30: u8 = 6u8; + pub const P40: u8 = 7u8; + pub const P50: u8 = 8u8; + pub const P60: u8 = 9u8; + pub const P70: u8 = 10u8; + pub const P75: u8 = 11u8; + pub const P80: u8 = 12u8; + pub const P85: u8 = 13u8; + pub const P90: u8 = 14u8; + pub const P95: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct AC_BarringConfigAc_BarringTime(pub u8); +impl AC_BarringConfigAc_BarringTime { + pub const S4: u8 = 0u8; + pub const S8: u8 = 1u8; + pub const S16: u8 = 2u8; + pub const S32: u8 = 3u8; + pub const S64: u8 = 4u8; + pub const S128: u8 = 5u8; + pub const S256: u8 = 6u8; + pub const S512: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "5", sz_ub = "5")] +pub struct AC_BarringConfigAc_BarringForSpecialAC(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring0to9_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring10_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring11_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring12_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring13_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring14_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_Barring15_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_BarringMsg_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_BarringReg_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct AC_BarringConfig1XRTT_r9Ac_BarringEmg_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct AC_BarringPerPLMN_r12Plmn_IdentityIndex_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct AC_BarringPerPLMN_r12Ac_BarringInfo_r12Ac_BarringForEmergency_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct AC_BarringPerPLMN_r12Ac_BarringInfo_r12 { + pub ac_barring_for_emergency_r12: + AC_BarringPerPLMN_r12Ac_BarringInfo_r12Ac_BarringForEmergency_r12, + #[asn(optional_idx = 0)] + pub ac_barring_for_mo_signalling_r12: Option, + #[asn(optional_idx = 1)] + pub ac_barring_for_mo_data_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AC_BarringPerPLMN_r12Ac_BarringSkipForMMTELVoice_r12(pub u8); +impl AC_BarringPerPLMN_r12Ac_BarringSkipForMMTELVoice_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AC_BarringPerPLMN_r12Ac_BarringSkipForMMTELVideo_r12(pub u8); +impl AC_BarringPerPLMN_r12Ac_BarringSkipForMMTELVideo_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AC_BarringPerPLMN_r12Ac_BarringSkipForSMS_r12(pub u8); +impl AC_BarringPerPLMN_r12Ac_BarringSkipForSMS_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ACDC_BarringForCommon_r13Acdc_HPLMNonly_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct ACDC_BarringPerPLMN_r13Plmn_IdentityIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ACDC_BarringPerPLMN_r13Acdc_OnlyForHPLMN_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct AS_Config_v1550Tdm_PatternConfig_r15Harq_Offset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AS_Config_v1550Tdm_PatternConfig_r15 { + pub subframe_assignment_r15: SubframeAssignment_r15, + pub harq_offset_r15: AS_Config_v1550Tdm_PatternConfig_r15Harq_Offset_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AS_Config_v1700Scg_State_r17(pub u8); +impl AS_Config_v1700Scg_State_r17 { + pub const DEACTIVATED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_ConfigNR_r15SourceRB_ConfigNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_ConfigNR_r15SourceRB_ConfigSN_NR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_ConfigNR_r15SourceOtherConfigSN_NR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AS_ConfigNR_v1570SourceSCG_ConfiguredNR_r15(pub u8); +impl AS_ConfigNR_v1570SourceSCG_ConfiguredNR_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1130Idc_Indication_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1130MbmsInterestIndication_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1130UeAssistanceInformation_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1320WlanConnectionStatusReport_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1610SidelinkUEInformationNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1610UeAssistanceInformationNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct AS_Context_v1620UeAssistanceInformationNR_SCG_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AUL_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct AUL_Config_r15_setupAul_Subframes_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct AUL_Config_r15_setupAul_HARQ_Processes_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AUL_Config_r15_setupTransmissionModeUL_AUL_r15(pub u8); +impl AUL_Config_r15_setupTransmissionModeUL_AUL_r15 { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "5", sz_ub = "5")] +pub struct AUL_Config_r15_setupAul_StartingFullBW_InsideMCOT_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct AUL_Config_r15_setupAul_StartingFullBW_OutsideMCOT_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct AUL_Config_r15_setupAul_StartingPartialBW_InsideMCOT_r15(pub u8); +impl AUL_Config_r15_setupAul_StartingPartialBW_InsideMCOT_r15 { + pub const O34: u8 = 0u8; + pub const O43: u8 = 1u8; + pub const O52: u8 = 2u8; + pub const O61: u8 = 3u8; + pub const O_OS1: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct AUL_Config_r15_setupAul_StartingPartialBW_OutsideMCOT_r15(pub u8); +impl AUL_Config_r15_setupAul_StartingPartialBW_OutsideMCOT_r15 { + pub const O16: u8 = 0u8; + pub const O25: u8 = 1u8; + pub const O34: u8 = 2u8; + pub const O43: u8 = 3u8; + pub const O52: u8 = 4u8; + pub const O61: u8 = 5u8; + pub const O_OS1: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "16")] +pub struct AUL_Config_r15_setupAul_RetransmissionTimer_r15(pub u8); +impl AUL_Config_r15_setupAul_RetransmissionTimer_r15 { + pub const PSF4: u8 = 0u8; + pub const PSF5: u8 = 1u8; + pub const PSF6: u8 = 2u8; + pub const PSF8: u8 = 3u8; + pub const PSF10: u8 = 4u8; + pub const PSF12: u8 = 5u8; + pub const PSF20: u8 = 6u8; + pub const PSF28: u8 = 7u8; + pub const PSF37: u8 = 8u8; + pub const PSF44: u8 = 9u8; + pub const PSF68: u8 = 10u8; + pub const PSF84: u8 = 11u8; + pub const PSF100: u8 = 12u8; + pub const PSF116: u8 = 13u8; + pub const PSF132: u8 = 14u8; + pub const PSF164: u8 = 15u8; + pub const PSF324: u8 = 16u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "12", ub = "13")] +pub struct AUL_Config_r15_setupEndingSymbolAUL_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "4")] +pub struct AUL_Config_r15_setupSubframeOffsetCOT_Sharing_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct AUL_Config_r15_setupContentionWindowSizeTimer_r15(pub u8); +impl AUL_Config_r15_setupContentionWindowSizeTimer_r15 { + pub const N0: u8 = 0u8; + pub const N5: u8 = 1u8; + pub const N10: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct AUL_Config_r15_setup { + pub aul_crnti_r15: C_RNTI, + pub aul_subframes_r15: AUL_Config_r15_setupAul_Subframes_r15, + pub aul_harq_processes_r15: AUL_Config_r15_setupAul_HARQ_Processes_r15, + pub transmission_mode_ul_aul_r15: AUL_Config_r15_setupTransmissionModeUL_AUL_r15, + pub aul_starting_full_bw_inside_mcot_r15: AUL_Config_r15_setupAul_StartingFullBW_InsideMCOT_r15, + pub aul_starting_full_bw_outside_mcot_r15: + AUL_Config_r15_setupAul_StartingFullBW_OutsideMCOT_r15, + pub aul_starting_partial_bw_inside_mcot_r15: + AUL_Config_r15_setupAul_StartingPartialBW_InsideMCOT_r15, + pub aul_starting_partial_bw_outside_mcot_r15: + AUL_Config_r15_setupAul_StartingPartialBW_OutsideMCOT_r15, + pub aul_retransmission_timer_r15: AUL_Config_r15_setupAul_RetransmissionTimer_r15, + pub ending_symbol_aul_r15: AUL_Config_r15_setupEndingSymbolAUL_r15, + pub subframe_offset_cot_sharing_r15: AUL_Config_r15_setupSubframeOffsetCOT_Sharing_r15, + pub contention_window_size_timer_r15: AUL_Config_r15_setupContentionWindowSizeTimer_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AdditionalSI_Info_r9Csg_MemberStatus_r9(pub u8); +impl AdditionalSI_Info_r9Csg_MemberStatus_r9 { + pub const MEMBER: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct AffectedCarrierFreq_r11InterferenceDirection_r11(pub u8); +impl AffectedCarrierFreq_r11InterferenceDirection_r11 { + pub const EUTRA: u8 = 0u8; + pub const OTHER: u8 = 1u8; + pub const BOTH: u8 = 2u8; + pub const SPARE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct AffectedCarrierFreqCombInfoMRDC_r15InterferenceDirectionMRDC_r15(pub u8); +impl AffectedCarrierFreqCombInfoMRDC_r15InterferenceDirectionMRDC_r15 { + pub const EUTRA_NR: u8 = 0u8; + pub const NR: u8 = 1u8; + pub const OTHER: u8 = 2u8; + pub const EUTRA_NR_OTHER: u8 = 3u8; + pub const NR_OTHER: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct AffectedCarrierFreqCombInfoMRDC_r15AffectedCarrierFreqCombMRDC_r15 { + #[asn(optional_idx = 0)] + pub affected_carrier_freq_comb_eutra_r15: Option, + pub affected_carrier_freq_comb_nr_r15: AffectedCarrierFreqCombNR_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct AllowedCellsToAddMod_r13CellIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct AltTTT_CellsToAddMod_r12CellIndex_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct AntennaInfoCommonAntennaPortsCount(pub u8); +impl AntennaInfoCommonAntennaPortsCount { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct AntennaInfoDedicatedTransmissionMode(pub u8); +impl AntennaInfoDedicatedTransmissionMode { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; + pub const TM3: u8 = 2u8; + pub const TM4: u8 = 3u8; + pub const TM5: u8 = 4u8; + pub const TM6: u8 = 5u8; + pub const TM7: u8 = 6u8; + pub const TM8_V920: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm3( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm3( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm4( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "64", sz_ub = "64")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm4( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm5( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm5( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm6( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm6( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum AntennaInfoDedicatedCodebookSubsetRestriction { + #[asn(key = 0, extended = false)] + N2TxAntenna_tm3(AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm3), + #[asn(key = 1, extended = false)] + N4TxAntenna_tm3(AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm3), + #[asn(key = 2, extended = false)] + N2TxAntenna_tm4(AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm4), + #[asn(key = 3, extended = false)] + N4TxAntenna_tm4(AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm4), + #[asn(key = 4, extended = false)] + N2TxAntenna_tm5(AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm5), + #[asn(key = 5, extended = false)] + N4TxAntenna_tm5(AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm5), + #[asn(key = 6, extended = false)] + N2TxAntenna_tm6(AntennaInfoDedicatedCodebookSubsetRestriction_n2TxAntenna_tm6), + #[asn(key = 7, extended = false)] + N4TxAntenna_tm6(AntennaInfoDedicatedCodebookSubsetRestriction_n4TxAntenna_tm6), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AntennaInfoDedicatedUe_TransmitAntennaSelection_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoDedicatedUe_TransmitAntennaSelection_setup(pub u8); +impl AntennaInfoDedicatedUe_TransmitAntennaSelection_setup { + pub const CLOSED_LOOP: u8 = 0u8; + pub const OPEN_LOOP: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicatedUe_TransmitAntennaSelection { + #[asn(key = 0, extended = false)] + Release(AntennaInfoDedicatedUe_TransmitAntennaSelection_release), + #[asn(key = 1, extended = false)] + Setup(AntennaInfoDedicatedUe_TransmitAntennaSelection_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct AntennaInfoDedicated_r10TransmissionMode_r10(pub u8); +impl AntennaInfoDedicated_r10TransmissionMode_r10 { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; + pub const TM3: u8 = 2u8; + pub const TM4: u8 = 3u8; + pub const TM5: u8 = 4u8; + pub const TM6: u8 = 5u8; + pub const TM7: u8 = 6u8; + pub const TM8_V920: u8 = 7u8; + pub const TM9_V1020: u8 = 8u8; + pub const TM10_V1130: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct AntennaInfoDedicated_r10CodebookSubsetRestriction_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AntennaInfoDedicated_r10Ue_TransmitAntennaSelection_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoDedicated_r10Ue_TransmitAntennaSelection_setup(pub u8); +impl AntennaInfoDedicated_r10Ue_TransmitAntennaSelection_setup { + pub const CLOSED_LOOP: u8 = 0u8; + pub const OPEN_LOOP: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicated_r10Ue_TransmitAntennaSelection { + #[asn(key = 0, extended = false)] + Release(AntennaInfoDedicated_r10Ue_TransmitAntennaSelection_release), + #[asn(key = 1, extended = false)] + Setup(AntennaInfoDedicated_r10Ue_TransmitAntennaSelection_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct AntennaInfoDedicated_v10i0MaxLayersMIMO_r10(pub u8); +impl AntennaInfoDedicated_v10i0MaxLayersMIMO_r10 { + pub const TWO_LAYERS: u8 = 0u8; + pub const FOUR_LAYERS: u8 = 1u8; + pub const EIGHT_LAYERS: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct AntennaInfoDedicated_v1250AlternativeCodebookEnabledFor4TX_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AntennaInfoDedicated_v1430Ce_UE_TxAntennaSelection_config_r14(pub u8); +impl AntennaInfoDedicated_v1430Ce_UE_TxAntennaSelection_config_r14 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AntennaInfoDedicated_v1530_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AntennaInfoDedicated_v1530_setup_ue_TxAntennaSelection_SRS_1T4R_Config_r15; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoDedicated_v1530_setup_ue_TxAntennaSelection_SRS_2T4R_NrOfPairs_r15(pub u8); +impl AntennaInfoDedicated_v1530_setup_ue_TxAntennaSelection_SRS_2T4R_NrOfPairs_r15 { + pub const TWO: u8 = 0u8; + pub const THREE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicated_v1530_setup { + #[asn(key = 0, extended = false)] + Ue_TxAntennaSelection_SRS_1T4R_Config_r15( + AntennaInfoDedicated_v1530_setup_ue_TxAntennaSelection_SRS_1T4R_Config_r15, + ), + #[asn(key = 1, extended = false)] + Ue_TxAntennaSelection_SRS_2T4R_NrOfPairs_r15( + AntennaInfoDedicated_v1530_setup_ue_TxAntennaSelection_SRS_2T4R_NrOfPairs_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct AntennaInfoDedicated_v920CodebookSubsetRestriction_v920_n2TxAntenna_tm8_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct AntennaInfoDedicated_v920CodebookSubsetRestriction_v920_n4TxAntenna_tm8_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum AntennaInfoDedicated_v920CodebookSubsetRestriction_v920 { + #[asn(key = 0, extended = false)] + N2TxAntenna_tm8_r9(AntennaInfoDedicated_v920CodebookSubsetRestriction_v920_n2TxAntenna_tm8_r9), + #[asn(key = 1, extended = false)] + N4TxAntenna_tm8_r9(AntennaInfoDedicated_v920CodebookSubsetRestriction_v920_n4TxAntenna_tm8_r9), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct AntennaInfoDedicatedSTTI_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoDedicatedSTTI_r15_setupTransmissionModeDL_MBSFN_r15(pub u8); +impl AntennaInfoDedicatedSTTI_r15_setupTransmissionModeDL_MBSFN_r15 { + pub const TM9: u8 = 0u8; + pub const TM10: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct AntennaInfoDedicatedSTTI_r15_setupTransmissionModeDL_nonMBSFN_r15(pub u8); +impl AntennaInfoDedicatedSTTI_r15_setupTransmissionModeDL_nonMBSFN_r15 { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; + pub const TM3: u8 = 2u8; + pub const TM4: u8 = 3u8; + pub const TM6: u8 = 4u8; + pub const TM8: u8 = 5u8; + pub const TM9: u8 = 6u8; + pub const TM10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm3_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm3_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm4_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "64", sz_ub = "64")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm4_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm5_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm5_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm6_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm6_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm8_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "64", sz_ub = "64")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm8_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm9and10_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "96", sz_ub = "96")] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm9and10_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "109", + sz_ub = "109" +)] +pub struct AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n8TxAntenna_tm9and10_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "12", extensible = false)] +pub enum AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction { + #[asn(key = 0, extended = false)] + N2TxAntenna_tm3_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm3_r15, + ), + #[asn(key = 1, extended = false)] + N4TxAntenna_tm3_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm3_r15, + ), + #[asn(key = 2, extended = false)] + N2TxAntenna_tm4_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm4_r15, + ), + #[asn(key = 3, extended = false)] + N4TxAntenna_tm4_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm4_r15, + ), + #[asn(key = 4, extended = false)] + N2TxAntenna_tm5_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm5_r15, + ), + #[asn(key = 5, extended = false)] + N4TxAntenna_tm5_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm5_r15, + ), + #[asn(key = 6, extended = false)] + N2TxAntenna_tm6_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm6_r15, + ), + #[asn(key = 7, extended = false)] + N4TxAntenna_tm6_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm6_r15, + ), + #[asn(key = 8, extended = false)] + N2TxAntenna_tm8_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm8_r15, + ), + #[asn(key = 9, extended = false)] + N4TxAntenna_tm8_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm8_r15, + ), + #[asn(key = 10, extended = false)] + N2TxAntenna_tm9and10_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n2TxAntenna_tm9and10_r15, + ), + #[asn(key = 11, extended = false)] + N4TxAntenna_tm9and10_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n4TxAntenna_tm9and10_r15, + ), + #[asn(key = 12, extended = false)] + N8TxAntenna_tm9and10_r15( + AntennaInfoDedicatedSTTI_r15_setupCodebookSubsetRestriction_n8TxAntenna_tm9and10_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoDedicatedSTTI_r15_setupMaxLayersMIMO_STTI_r15(pub u8); +impl AntennaInfoDedicatedSTTI_r15_setupMaxLayersMIMO_STTI_r15 { + pub const TWO_LAYERS: u8 = 0u8; + pub const FOUR_LAYERS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct AntennaInfoDedicatedSTTI_r15_setupSlotSubslotPDSCH_TxDiv_2Layer_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct AntennaInfoDedicatedSTTI_r15_setupSlotSubslotPDSCH_TxDiv_4Layer_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct AntennaInfoDedicatedSTTI_r15_setup { + #[asn(optional_idx = 0)] + pub transmission_mode_dl_mbsfn_r15: + Option, + #[asn(optional_idx = 1)] + pub transmission_mode_dl_non_mbsfn_r15: + Option, + #[asn(optional_idx = 2)] + pub codebook_subset_restriction: + Option, + #[asn(optional_idx = 3)] + pub max_layers_mimo_stti_r15: Option, + pub slot_subslot_pdsch_tx_div_2layer_r15: + AntennaInfoDedicatedSTTI_r15_setupSlotSubslotPDSCH_TxDiv_2Layer_r15, + pub slot_subslot_pdsch_tx_div_4layer_r15: + AntennaInfoDedicatedSTTI_r15_setupSlotSubslotPDSCH_TxDiv_4Layer_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct AntennaInfoUL_STTI_r15TransmissionModeUL_STTI_r15(pub u8); +impl AntennaInfoUL_STTI_r15TransmissionModeUL_STTI_r15 { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct AntennaInfoUL_r10TransmissionModeUL_r10(pub u8); +impl AntennaInfoUL_r10TransmissionModeUL_r10 { + pub const TM1: u8 = 0u8; + pub const TM2: u8 = 1u8; + pub const SPARE6: u8 = 2u8; + pub const SPARE5: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct AntennaInfoUL_r10FourAntennaPortActivated_r10(pub u8); +impl AntennaInfoUL_r10FourAntennaPortActivated_r10 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ApplicableDisasterInfo_r17_noDisasterRoaming_r17; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ApplicableDisasterInfo_r17_disasterRelatedIndication_r17; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ApplicableDisasterInfo_r17_commonPLMNs_r17; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct ApplicableDisasterInfo_r17_dedicatedPLMNs_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct BCCH_ConfigModificationPeriodCoeff(pub u8); +impl BCCH_ConfigModificationPeriodCoeff { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N8: u8 = 2u8; + pub const N16: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BCCH_Config_v1310ModificationPeriodCoeff_v1310(pub u8); +impl BCCH_Config_v1310ModificationPeriodCoeff_v1310 { + pub const N64: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + SystemInformation(SystemInformation), + #[asn(key = 1, extended = false)] + SystemInformationBlockType1(SystemInformationBlockType1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_MessageType_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType_BR_r13_c1 { + #[asn(key = 0, extended = false)] + SystemInformation_BR_r13(SystemInformation_BR_r13), + #[asn(key = 1, extended = false)] + SystemInformationBlockType1_BR_r13(SystemInformationBlockType1_BR_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_MessageType_BR_r13_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum BCCH_DL_SCH_MessageType_MBMS_r14_c1 { + #[asn(key = 0, extended = false)] + SystemInformation_MBMS_r14(SystemInformation_MBMS_r14), + #[asn(key = 1, extended = false)] + SystemInformationBlockType1_MBMS_r14(SystemInformationBlockType1_MBMS_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BCCH_DL_SCH_MessageType_MBMS_r14_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct BLER_Result_r12BlocksReceived_r12N_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct BLER_Result_r12BlocksReceived_r12M_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BLER_Result_r12BlocksReceived_r12 { + pub n_r12: BLER_Result_r12BlocksReceived_r12N_r12, + pub m_r12: BLER_Result_r12BlocksReceived_r12M_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct BT_NameListConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct BW_Preference_r14Dl_Preference_r14(pub u8); +impl BW_Preference_r14Dl_Preference_r14 { + pub const MHZ1DOT4: u8 = 0u8; + pub const MHZ5: u8 = 1u8; + pub const MHZ20: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct BW_Preference_r14Ul_Preference_r14(pub u8); +impl BW_Preference_r14Ul_Preference_r14 { + pub const MHZ1DOT4: u8 = 0u8; + pub const MHZ5: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct BandClassInfoCDMA2000ThreshX_High(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct BandClassInfoCDMA2000ThreshX_Low(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_r11BandParameterList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r11MultipleTimingAdvance_r11(pub u8); +impl BandCombinationParameters_r11MultipleTimingAdvance_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r11SimultaneousRx_Tx_r11(pub u8); +impl BandCombinationParameters_r11SimultaneousRx_Tx_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r13DifferentFallbackSupported_r13(pub u8); +impl BandCombinationParameters_r13DifferentFallbackSupported_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_r13BandParameterList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r13MultipleTimingAdvance_r13(pub u8); +impl BandCombinationParameters_r13MultipleTimingAdvance_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r13SimultaneousRx_Tx_r13(pub u8); +impl BandCombinationParameters_r13SimultaneousRx_Tx_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_r13Dc_Support_r13Asynchronous_r13(pub u8); +impl BandCombinationParameters_r13Dc_Support_r13Asynchronous_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_threeEntries_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_fourEntries_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "15", sz_ub = "15")] +pub struct BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_fiveEntries_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13 { + #[asn(key = 0, extended = false)] + ThreeEntries_r13( + BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_threeEntries_r13, + ), + #[asn(key = 1, extended = false)] + FourEntries_r13( + BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_fourEntries_r13, + ), + #[asn(key = 2, extended = false)] + FiveEntries_r13( + BandCombinationParameters_r13Dc_Support_r13SupportedCellGrouping_r13_fiveEntries_r13, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_r13Dc_Support_r13 { + #[asn(optional_idx = 0)] + pub asynchronous_r13: Option, + #[asn(optional_idx = 1)] + pub supported_cell_grouping_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct BandCombinationParameters_r13SupportedNAICS_2CRS_AP_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_r13CommSupportedBandsPerBC_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v10i0BandParameterList_v10i0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1130MultipleTimingAdvance_r11(pub u8); +impl BandCombinationParameters_v1130MultipleTimingAdvance_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1130SimultaneousRx_Tx_r11(pub u8); +impl BandCombinationParameters_v1130SimultaneousRx_Tx_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1130BandParameterList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1250Dc_Support_r12Asynchronous_r12(pub u8); +impl BandCombinationParameters_v1250Dc_Support_r12Asynchronous_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_threeEntries_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_fourEntries_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "15", sz_ub = "15")] +pub struct BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_fiveEntries_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12 { + #[asn(key = 0, extended = false)] + ThreeEntries_r12( + BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_threeEntries_r12, + ), + #[asn(key = 1, extended = false)] + FourEntries_r12( + BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_fourEntries_r12, + ), + #[asn(key = 2, extended = false)] + FiveEntries_r12( + BandCombinationParameters_v1250Dc_Support_r12SupportedCellGrouping_r12_fiveEntries_r12, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_v1250Dc_Support_r12 { + #[asn(optional_idx = 0)] + pub asynchronous_r12: Option, + #[asn(optional_idx = 1)] + pub supported_cell_grouping_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct BandCombinationParameters_v1250SupportedNAICS_2CRS_AP_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1250CommSupportedBandsPerBC_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1270BandParameterList_v1270(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1320BandParameterList_v1320(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1320AdditionalRx_Tx_PerformanceReq_r13(pub u8); +impl BandCombinationParameters_v1320AdditionalRx_Tx_PerformanceReq_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1380BandParameterList_v1380(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1390Ue_CA_PowerClass_N_r13(pub u8); +impl BandCombinationParameters_v1390Ue_CA_PowerClass_N_r13 { + pub const CLASS2: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1430BandParameterList_v1430(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "384")] +pub struct BandCombinationParameters_v1430V2x_SupportedTxBandCombListPerBC_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "384")] +pub struct BandCombinationParameters_v1430V2x_SupportedRxBandCombListPerBC_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1450BandParameterList_v1450(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1470BandParameterList_v1470(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "31")] +pub struct BandCombinationParameters_v1470Srs_MaxSimultaneousCCs_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v14b0BandParameterList_v14b0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1530BandParameterList_v1530(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandCombinationParameters_v1610BandParameterList_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1610InterFreqDAPS_r16InterFreqAsyncDAPS_r16(pub u8); +impl BandCombinationParameters_v1610InterFreqDAPS_r16InterFreqAsyncDAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1610InterFreqDAPS_r16InterFreqMultiUL_TransmissionDAPS_r16( + pub u8, +); +impl BandCombinationParameters_v1610InterFreqDAPS_r16InterFreqMultiUL_TransmissionDAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct BandCombinationParameters_v1610InterFreqDAPS_r16 { + #[asn(optional_idx = 0)] + pub inter_freq_async_daps_r16: + Option, + #[asn(optional_idx = 1)] + pub inter_freq_multi_ul_transmission_daps_r16: Option< + BandCombinationParameters_v1610InterFreqDAPS_r16InterFreqMultiUL_TransmissionDAPS_r16, + >, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "512")] +pub struct BandCombinationParameters_v1630V2x_SupportedTxBandCombListPerBC_v1630( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "512")] +pub struct BandCombinationParameters_v1630V2x_SupportedRxBandCombListPerBC_v1630( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "512" +)] +pub struct BandCombinationParameters_v1630ScalingFactorTxSidelink_r16( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "512" +)] +pub struct BandCombinationParameters_v1630ScalingFactorRxSidelink_r16( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1630InterBandPowerSharingSyncDAPS_r16(pub u8); +impl BandCombinationParameters_v1630InterBandPowerSharingSyncDAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandCombinationParameters_v1630InterBandPowerSharingAsyncDAPS_r16(pub u8); +impl BandCombinationParameters_v1630InterBandPowerSharingAsyncDAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct BandParameters_r11SupportedCSI_Proc_r11(pub u8); +impl BandParameters_r11SupportedCSI_Proc_r11 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct BandParameters_r13SupportedCSI_Proc_r13(pub u8); +impl BandParameters_r13SupportedCSI_Proc_r13 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct BandParameters_v10i0BandParametersDL_v10i0(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct BandParameters_v1130SupportedCSI_Proc_r11(pub u8); +impl BandParameters_v1130SupportedCSI_Proc_r11 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct BandParameters_v1270BandParametersDL_v1270(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct BandParameters_v1380TxAntennaSwitchDL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct BandParameters_v1380TxAntennaSwitchUL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1430Ul_256QAM_r14(pub u8); +impl BandParameters_v1430Ul_256QAM_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "32")] +pub struct BandParameters_v1430Ul_256QAM_perCC_InfoList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandParameters_v1430Srs_CapabilityPerBandPairList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandParameters_v14b0Srs_CapabilityPerBandPairList_v14b0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Ue_TxAntennaSelection_SRS_1T4R_r15(pub u8); +impl BandParameters_v1530Ue_TxAntennaSelection_SRS_1T4R_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Ue_TxAntennaSelection_SRS_2T4R_2Pairs_r15(pub u8); +impl BandParameters_v1530Ue_TxAntennaSelection_SRS_2T4R_2Pairs_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Ue_TxAntennaSelection_SRS_2T4R_3Pairs_r15(pub u8); +impl BandParameters_v1530Ue_TxAntennaSelection_SRS_2T4R_3Pairs_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Dl_1024QAM_r15(pub u8); +impl BandParameters_v1530Dl_1024QAM_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Qcl_TypeC_Operation_r15(pub u8); +impl BandParameters_v1530Qcl_TypeC_Operation_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1530Qcl_CRI_BasedCSI_Reporting_r15(pub u8); +impl BandParameters_v1530Qcl_CRI_BasedCSI_Reporting_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610IntraFreqDAPS_r16IntraFreqAsyncDAPS_r16(pub u8); +impl BandParameters_v1610IntraFreqDAPS_r16IntraFreqAsyncDAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610IntraFreqDAPS_r16Dummy(pub u8); +impl BandParameters_v1610IntraFreqDAPS_r16Dummy { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610IntraFreqDAPS_r16IntraFreqTwoTAGs_DAPS_r16(pub u8); +impl BandParameters_v1610IntraFreqDAPS_r16IntraFreqTwoTAGs_DAPS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct BandParameters_v1610IntraFreqDAPS_r16 { + #[asn(optional_idx = 0)] + pub intra_freq_async_daps_r16: + Option, + #[asn(optional_idx = 1)] + pub dummy: Option, + #[asn(optional_idx = 2)] + pub intra_freq_two_ta_gs_daps_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610AddSRS_FrequencyHopping_r16(pub u8); +impl BandParameters_v1610AddSRS_FrequencyHopping_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_1T2R_r16(pub u8); +impl BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_1T2R_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_1T4R_r16(pub u8); +impl BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_1T4R_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_2T4R_2pairs_r16(pub u8); +impl BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_2T4R_2pairs_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_2T4R_3pairs_r16(pub u8); +impl BandParameters_v1610AddSRS_AntennaSwitching_r16AddSRS_2T4R_3pairs_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct BandParameters_v1610AddSRS_AntennaSwitching_r16 { + #[asn(optional_idx = 0)] + pub add_srs_1t2r_r16: Option, + #[asn(optional_idx = 1)] + pub add_srs_1t4r_r16: Option, + #[asn(optional_idx = 2)] + pub add_srs_2t4r_2pairs_r16: + Option, + #[asn(optional_idx = 3)] + pub add_srs_2t4r_3pairs_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct BandParameters_v1610Srs_CapabilityPerBandPairList_v1610( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParametersRxSL_r14V2x_HighReception_r14(pub u8); +impl BandParametersRxSL_r14V2x_HighReception_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParametersTxSL_r14V2x_eNB_Scheduled_r14(pub u8); +impl BandParametersTxSL_r14V2x_eNB_Scheduled_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct BandParametersTxSL_r14V2x_HighPower_r14(pub u8); +impl BandParametersTxSL_r14V2x_HighPower_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct BarringPerACDC_Category_r13Acdc_Category_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringFactor_r13(pub u8); +impl BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringFactor_r13 { + pub const P00: u8 = 0u8; + pub const P05: u8 = 1u8; + pub const P10: u8 = 2u8; + pub const P15: u8 = 3u8; + pub const P20: u8 = 4u8; + pub const P25: u8 = 5u8; + pub const P30: u8 = 6u8; + pub const P40: u8 = 7u8; + pub const P50: u8 = 8u8; + pub const P60: u8 = 9u8; + pub const P70: u8 = 10u8; + pub const P75: u8 = 11u8; + pub const P80: u8 = 12u8; + pub const P85: u8 = 13u8; + pub const P90: u8 = 14u8; + pub const P95: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringTime_r13(pub u8); +impl BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringTime_r13 { + pub const S4: u8 = 0u8; + pub const S8: u8 = 1u8; + pub const S16: u8 = 2u8; + pub const S32: u8 = 3u8; + pub const S64: u8 = 4u8; + pub const S128: u8 = 5u8; + pub const S256: u8 = 6u8; + pub const S512: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct BarringPerACDC_Category_r13Acdc_BarringConfig_r13 { + pub ac_barring_factor_r13: + BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringFactor_r13, + pub ac_barring_time_r13: BarringPerACDC_Category_r13Acdc_BarringConfig_r13Ac_BarringTime_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct BeamMeasConfigIdleNR_r16ReportQuantityRS_IndexNR_r16(pub u8); +impl BeamMeasConfigIdleNR_r16ReportQuantityRS_IndexNR_r16 { + pub const RSRP: u8 = 0u8; + pub const RSRQ: u8 = 1u8; + pub const BOTH: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "32")] +pub struct BeamMeasConfigIdleNR_r16MaxReportRS_Index_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct BeamMeasConfigIdleNR_r16ReportRS_IndexResultsNR_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CA_MIMO_ParametersDL_r13FourLayerTM3_TM4_r13(pub u8); +impl CA_MIMO_ParametersDL_r13FourLayerTM3_TM4_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CA_MIMO_ParametersDL_r13IntraBandContiguousCC_InfoList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CA_MIMO_ParametersDL_r15FourLayerTM3_TM4_r15(pub u8); +impl CA_MIMO_ParametersDL_r15FourLayerTM3_TM4_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct CA_MIMO_ParametersDL_r15IntraBandContiguousCC_InfoList_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CA_MIMO_ParametersDL_v10i0FourLayerTM3_TM4_r10(pub u8); +impl CA_MIMO_ParametersDL_v10i0FourLayerTM3_TM4_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct CA_MIMO_ParametersDL_v1270IntraBandContiguousCC_InfoList_r12( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Pdsch_MultiTB_CE_ModeA_r16(pub u8); +impl CE_MultiTB_Parameters_r16Pdsch_MultiTB_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Pdsch_MultiTB_CE_ModeB_r16(pub u8); +impl CE_MultiTB_Parameters_r16Pdsch_MultiTB_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Pusch_MultiTB_CE_ModeA_r16(pub u8); +impl CE_MultiTB_Parameters_r16Pusch_MultiTB_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Pusch_MultiTB_CE_ModeB_r16(pub u8); +impl CE_MultiTB_Parameters_r16Pusch_MultiTB_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_64QAM_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_64QAM_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_EarlyTermination_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_EarlyTermination_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_FrequencyHopping_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_FrequencyHopping_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_HARQ_AckBundling_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_HARQ_AckBundling_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_Interleaving_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_Interleaving_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_MultiTB_Parameters_r16Ce_MultiTB_SubPRB_r16(pub u8); +impl CE_MultiTB_Parameters_r16Ce_MultiTB_SubPRB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CE_PDSCH_14HARQ_Config_r17Ce_HARQ_AckDelay_r17(pub u8); +impl CE_PDSCH_14HARQ_Config_r17Ce_HARQ_AckDelay_r17 { + pub const ALT_1: u8 = 0u8; + pub const ALT_2E: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_PDSCH_MultiTB_Config_r16Interleaving_r16(pub u8); +impl CE_PDSCH_MultiTB_Config_r16Interleaving_r16 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_PDSCH_MultiTB_Config_r16Harq_AckBundling_r16(pub u8); +impl CE_PDSCH_MultiTB_Config_r16Harq_AckBundling_r16 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_PUSCH_MultiTB_Config_r16Interleaving_r16(pub u8); +impl CE_PUSCH_MultiTB_Config_r16Interleaving_r16 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_r13Ce_ModeA_r13(pub u8); +impl CE_Parameters_r13Ce_ModeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_r13Ce_ModeB_r13(pub u8); +impl CE_Parameters_r13Ce_ModeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1320IntraFreqA3_CE_ModeA_r13(pub u8); +impl CE_Parameters_v1320IntraFreqA3_CE_ModeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1320IntraFreqA3_CE_ModeB_r13(pub u8); +impl CE_Parameters_v1320IntraFreqA3_CE_ModeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1320IntraFreqHO_CE_ModeA_r13(pub u8); +impl CE_Parameters_v1320IntraFreqHO_CE_ModeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1320IntraFreqHO_CE_ModeB_r13(pub u8); +impl CE_Parameters_v1320IntraFreqHO_CE_ModeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1350UnicastFrequencyHopping_r13(pub u8); +impl CE_Parameters_v1350UnicastFrequencyHopping_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1370Tm9_CE_ModeA_r13(pub u8); +impl CE_Parameters_v1370Tm9_CE_ModeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1370Tm9_CE_ModeB_r13(pub u8); +impl CE_Parameters_v1370Tm9_CE_ModeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1380Tm6_CE_ModeA_r13(pub u8); +impl CE_Parameters_v1380Tm6_CE_ModeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_Parameters_v1430Ce_SwitchWithoutHO_r14(pub u8); +impl CE_Parameters_v1430Ce_SwitchWithoutHO_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubframeResourceResvDL_CE_ModeA_r16(pub u8); +impl CE_ResourceResvParameters_r16SubframeResourceResvDL_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubframeResourceResvDL_CE_ModeB_r16(pub u8); +impl CE_ResourceResvParameters_r16SubframeResourceResvDL_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubframeResourceResvUL_CE_ModeA_r16(pub u8); +impl CE_ResourceResvParameters_r16SubframeResourceResvUL_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubframeResourceResvUL_CE_ModeB_r16(pub u8); +impl CE_ResourceResvParameters_r16SubframeResourceResvUL_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SlotSymbolResourceResvDL_CE_ModeA_r16(pub u8); +impl CE_ResourceResvParameters_r16SlotSymbolResourceResvDL_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SlotSymbolResourceResvDL_CE_ModeB_r16(pub u8); +impl CE_ResourceResvParameters_r16SlotSymbolResourceResvDL_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SlotSymbolResourceResvUL_CE_ModeA_r16(pub u8); +impl CE_ResourceResvParameters_r16SlotSymbolResourceResvUL_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SlotSymbolResourceResvUL_CE_ModeB_r16(pub u8); +impl CE_ResourceResvParameters_r16SlotSymbolResourceResvUL_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubcarrierPuncturingCE_ModeA_r16(pub u8); +impl CE_ResourceResvParameters_r16SubcarrierPuncturingCE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CE_ResourceResvParameters_r16SubcarrierPuncturingCE_ModeB_r16(pub u8); +impl CE_ResourceResvParameters_r16SubcarrierPuncturingCE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CFI_Config_r15Cfi_SubframeNonMBSFN_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct CFI_Config_r15Cfi_SlotSubslotNonMBSFN_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct CFI_Config_r15Cfi_SubframeMBSFN_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct CFI_Config_r15Cfi_SlotSubslotMBSFN_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CFI_PatternConfig_r15Cfi_PatternSubframe_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "10", + sz_ub = "10" +)] +pub struct CFI_PatternConfig_r15Cfi_PatternSubframe_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct CFI_PatternConfig_r15Cfi_PatternSlotSubslot_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "10", + sz_ub = "10" +)] +pub struct CFI_PatternConfig_r15Cfi_PatternSlotSubslot_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct CGI_InfoNR_r15NoSIB1_r15Ssb_SubcarrierOffset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct CGI_InfoNR_r15NoSIB1_r15Pdcch_ConfigSIB1_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CGI_InfoNR_r15NoSIB1_r15 { + pub ssb_subcarrier_offset_r15: CGI_InfoNR_r15NoSIB1_r15Ssb_SubcarrierOffset_r15, + pub pdcch_config_sib1_r15: CGI_InfoNR_r15NoSIB1_r15Pdcch_ConfigSIB1_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CIOT_OptimisationPLMN_r13Up_CIoT_EPS_Optimisation_r13(pub u8); +impl CIOT_OptimisationPLMN_r13Up_CIoT_EPS_Optimisation_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CIOT_OptimisationPLMN_r13Cp_CIoT_EPS_Optimisation_r13(pub u8); +impl CIOT_OptimisationPLMN_r13Cp_CIoT_EPS_Optimisation_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CIOT_OptimisationPLMN_r13AttachWithoutPDN_Connectivity_r13(pub u8); +impl CIOT_OptimisationPLMN_r13AttachWithoutPDN_Connectivity_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportAperiodic_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodic_r10_setupAperiodicCSI_Trigger_r10Trigger1_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodic_r10_setupAperiodicCSI_Trigger_r10Trigger2_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodic_r10_setupAperiodicCSI_Trigger_r10 { + pub trigger1_r10: CQI_ReportAperiodic_r10_setupAperiodicCSI_Trigger_r10Trigger1_r10, + pub trigger2_r10: CQI_ReportAperiodic_r10_setupAperiodicCSI_Trigger_r10Trigger2_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportAperiodic_r10_setup { + pub cqi_report_mode_aperiodic_r10: CQI_ReportModeAperiodic, + #[asn(optional_idx = 0)] + pub aperiodic_csi_trigger_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportAperiodic_v1250_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger_SubframeSetIndicator_r12( + pub u8, +); +impl CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger_SubframeSetIndicator_r12 { + pub const S1: u8 = 0u8; + pub const S2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger1_SubframeSetIndicator_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger2_SubframeSetIndicator_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250 { + pub trigger_subframe_set_indicator_r12: + CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger_SubframeSetIndicator_r12, + pub trigger1_subframe_set_indicator_r12: + CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger1_SubframeSetIndicator_r12, + pub trigger2_subframe_set_indicator_r12: + CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250Trigger2_SubframeSetIndicator_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodic_v1250_setup { + pub aperiodic_csi_trigger_v1250: CQI_ReportAperiodic_v1250_setupAperiodicCSI_Trigger_v1250, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportAperiodic_v1310_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger1_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger2_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger3_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger4_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger5_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger6_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310 { + pub trigger1_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger1_r13, + pub trigger2_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger2_r13, + pub trigger3_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger3_r13, + pub trigger4_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger4_r13, + pub trigger5_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger5_r13, + pub trigger6_r13: CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger_v1310Trigger6_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger1_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger2_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger3_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger4_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger5_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger6_SubframeSetIndicator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setup { pub trigger1_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger1_SubframeSetIndicator_r13 , pub trigger2_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger2_SubframeSetIndicator_r13 , pub trigger3_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger3_SubframeSetIndicator_r13 , pub trigger4_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger4_SubframeSetIndicator_r13 , pub trigger5_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger5_SubframeSetIndicator_r13 , pub trigger6_subframe_set_indicator_r13 : CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setupTrigger6_SubframeSetIndicator_r13 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportAperiodic_v1310_setupAperiodicCSI_Trigger2_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ReportAperiodic_v1310_setup { + #[asn(optional_idx = 0)] + pub aperiodic_csi_trigger_v1310: + Option, + #[asn(optional_idx = 1)] + pub aperiodic_csi_trigger2_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_oneBit_r14Trigger1_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_oneBit_r14 { + pub trigger1_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_oneBit_r14Trigger1_Indicator_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger01_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger10_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger11_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14 { + pub trigger01_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger01_Indicator_r14, + pub trigger10_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger10_Indicator_r14, + pub trigger11_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14Trigger11_Indicator_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger001_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger010_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger011_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger100_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger101_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger110_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger111_Indicator_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14 { + pub trigger001_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger001_Indicator_r14, + pub trigger010_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger010_Indicator_r14, + pub trigger011_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger011_Indicator_r14, + pub trigger100_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger100_Indicator_r14, + pub trigger101_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger101_Indicator_r14, + pub trigger110_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger110_Indicator_r14, + pub trigger111_indicator_r14: + CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14Trigger111_Indicator_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum CQI_ReportAperiodicHybrid_r14Triggers_r14 { + #[asn(key = 0, extended = false)] + OneBit_r14(CQI_ReportAperiodicHybrid_r14Triggers_r14_oneBit_r14), + #[asn(key = 1, extended = false)] + TwoBit_r14(CQI_ReportAperiodicHybrid_r14Triggers_r14_twoBit_r14), + #[asn(key = 2, extended = false)] + ThreeBit_r14(CQI_ReportAperiodicHybrid_r14Triggers_r14_threeBit_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_r11Trigger01_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_r11Trigger10_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_r11Trigger11_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger001_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger010_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger011_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger100_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger101_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger110_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportAperiodicProc_v1310Trigger111_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportBothProc_r11Pmi_RI_Report_r11(pub u8); +impl CQI_ReportBothProc_r11Pmi_RI_Report_r11 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "6")] +pub struct CQI_ReportConfigNomPDSCH_RS_EPRE_Offset(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "6")] +pub struct CQI_ReportConfig_r10NomPDSCH_RS_EPRE_Offset(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportConfig_r10Pmi_RI_Report_r9(pub u8); +impl CQI_ReportConfig_r10Pmi_RI_Report_r9 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportConfig_r10Csi_SubframePatternConfig_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportConfig_r10Csi_SubframePatternConfig_r10_setup { + pub csi_meas_subframe_set1_r10: MeasSubframePattern_r10, + pub csi_meas_subframe_set2_r10: MeasSubframePattern_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportConfig_r10Csi_SubframePatternConfig_r10 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportConfig_r10Csi_SubframePatternConfig_r10_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportConfig_r10Csi_SubframePatternConfig_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CQI_ReportConfig_r15_setupAltCQI_Table_1024QAM_r15(pub u8); +impl CQI_ReportConfig_r15_setupAltCQI_Table_1024QAM_r15 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct CQI_ReportConfig_r15_setup { + #[asn(optional_idx = 0)] + pub cqi_report_config_r10: Option, + #[asn(optional_idx = 1)] + pub cqi_report_config_v1130: Option, + #[asn(optional_idx = 2)] + pub cqi_report_config_p_cell_v1250: Option, + #[asn(optional_idx = 3)] + pub cqi_report_config_v1310: Option, + #[asn(optional_idx = 4)] + pub cqi_report_config_v1320: Option, + #[asn(optional_idx = 5)] + pub cqi_report_config_v1430: Option, + #[asn(optional_idx = 6)] + pub alt_cqi_table_1024qam_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_setupCsi_MeasSubframeSets_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_setup { + pub csi_meas_subframe_sets_r12: + CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_setupCsi_MeasSubframeSets_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportConfig_v1250Csi_SubframePatternConfig_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CQI_ReportConfig_v1250AltCQI_Table_r12(pub u8); +impl CQI_ReportConfig_v1250AltCQI_Table_r12 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CQI_ReportConfig_v1530AltCQI_Table_1024QAM_r15(pub u8); +impl CQI_ReportConfig_v1530AltCQI_Table_1024QAM_r15 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportConfig_v920Cqi_Mask_r9(pub u8); +impl CQI_ReportConfig_v920Cqi_Mask_r9 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportConfig_v920Pmi_RI_Report_r9(pub u8); +impl CQI_ReportConfig_v920Pmi_RI_Report_r9 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "6")] +pub struct CQI_ReportConfigSCell_r10NomPDSCH_RS_EPRE_Offset_r10(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportConfigSCell_r10Pmi_RI_Report_r10(pub u8); +impl CQI_ReportConfigSCell_r10Pmi_RI_Report_r10 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CQI_ReportConfigSCell_r15AltCQI_Table_1024QAM_r15(pub u8); +impl CQI_ReportConfigSCell_r15AltCQI_Table_1024QAM_r15 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodic_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1185")] +pub struct CQI_ReportPeriodic_setupCqi_PUCCH_ResourceIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_setupCqi_pmi_ConfigIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_widebandCQI; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_subbandCQIK(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_subbandCQI { + pub k: CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_subbandCQIK, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic { + #[asn(key = 0, extended = false)] + WidebandCQI(CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_widebandCQI), + #[asn(key = 1, extended = false)] + SubbandCQI(CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic_subbandCQI), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_setupRi_ConfigIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportPeriodic_setupSimultaneousAckNackAndCQI(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodic_setup { + pub cqi_pucch_resource_index: CQI_ReportPeriodic_setupCqi_PUCCH_ResourceIndex, + pub cqi_pmi_config_index: CQI_ReportPeriodic_setupCqi_pmi_ConfigIndex, + pub cqi_format_indicator_periodic: CQI_ReportPeriodic_setupCqi_FormatIndicatorPeriodic, + #[asn(optional_idx = 0)] + pub ri_config_index: Option, + pub simultaneous_ack_nack_and_cqi: CQI_ReportPeriodic_setupSimultaneousAckNackAndCQI, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodic_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1184")] +pub struct CQI_ReportPeriodic_r10_setupCqi_PUCCH_ResourceIndex_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1184")] +pub struct CQI_ReportPeriodic_r10_setupCqi_PUCCH_ResourceIndexP1_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_r10_setupCqi_pmi_ConfigIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_widebandCQI_r10Csi_ReportMode_r10( + pub u8, +); +impl CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_widebandCQI_r10Csi_ReportMode_r10 { + pub const SUBMODE1: u8 = 0u8; + pub const SUBMODE2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_widebandCQI_r10 { # [asn (optional_idx = 0 ,)] pub csi_report_mode_r10 : Option < CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_widebandCQI_r10Csi_ReportMode_r10 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10K(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10PeriodicityFactor_r10( + pub u8, +); +impl + CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10PeriodicityFactor_r10 +{ + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10 { pub k : CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10K , pub periodicity_factor_r10 : CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10PeriodicityFactor_r10 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10 { + #[asn(key = 0, extended = false)] + WidebandCQI_r10(CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_widebandCQI_r10), + #[asn(key = 1, extended = false)] + SubbandCQI_r10(CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10_subbandCQI_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_r10_setupRi_ConfigIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CQI_ReportPeriodic_r10_setupSimultaneousAckNackAndCQI(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportPeriodic_r10_setupCqi_Mask_r9(pub u8); +impl CQI_ReportPeriodic_r10_setupCqi_Mask_r9 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_setupCqi_pmi_ConfigIndex2_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_setupRi_ConfigIndex2_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_setup { + pub cqi_pmi_config_index2_r10: + CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_setupCqi_pmi_ConfigIndex2_r10, + #[asn(optional_idx = 0)] + pub ri_config_index2_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodic_r10_setupCsi_ConfigIndex_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CQI_ReportPeriodic_r10_setup { + pub cqi_pucch_resource_index_r10: CQI_ReportPeriodic_r10_setupCqi_PUCCH_ResourceIndex_r10, + #[asn(optional_idx = 0)] + pub cqi_pucch_resource_index_p1_r10: + Option, + pub cqi_pmi_config_index: CQI_ReportPeriodic_r10_setupCqi_pmi_ConfigIndex, + pub cqi_format_indicator_periodic_r10: + CQI_ReportPeriodic_r10_setupCqi_FormatIndicatorPeriodic_r10, + #[asn(optional_idx = 1)] + pub ri_config_index: Option, + pub simultaneous_ack_nack_and_cqi: CQI_ReportPeriodic_r10_setupSimultaneousAckNackAndCQI, + #[asn(optional_idx = 2)] + pub cqi_mask_r9: Option, + #[asn(optional_idx = 3)] + pub csi_config_index_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportPeriodic_v1130SimultaneousAckNackAndCQI_Format3_r11(pub u8); +impl CQI_ReportPeriodic_v1130SimultaneousAckNackAndCQI_Format3_r11 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CQI_ReportPeriodic_v1310SimultaneousAckNackAndCQI_Format4_Format5_r13(pub u8); +impl CQI_ReportPeriodic_v1310SimultaneousAckNackAndCQI_Format4_Format5_r13 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodic_v1320PeriodicityFactorWB_r13(pub u8); +impl CQI_ReportPeriodic_v1320PeriodicityFactorWB_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_pmi_ConfigIndex_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_widebandCQI_r11Csi_ReportMode_r11( + pub u8, +); +impl + CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_widebandCQI_r11Csi_ReportMode_r11 +{ + pub const SUBMODE1: u8 = 0u8; + pub const SUBMODE2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_widebandCQI_r11 { # [asn (optional_idx = 0 ,)] pub csi_report_mode_r11 : Option < CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_widebandCQI_r11Csi_ReportMode_r11 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11K(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11PeriodicityFactor_r11( + pub u8, +); +impl + CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11PeriodicityFactor_r11 +{ + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11 { pub k : CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11K , pub periodicity_factor_r11 : CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11PeriodicityFactor_r11 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11 { + #[asn(key = 0, extended = false)] + WidebandCQI_r11(CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_widebandCQI_r11), + #[asn(key = 1, extended = false)] + SubbandCQI_r11(CQI_ReportPeriodicProcExt_r11Cqi_FormatIndicatorPeriodic_r11_subbandCQI_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicProcExt_r11Ri_ConfigIndex_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_setupCqi_pmi_ConfigIndex2_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_setupRi_ConfigIndex2_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_setup { + pub cqi_pmi_config_index2_r11: + CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_setupCqi_pmi_ConfigIndex2_r11, + #[asn(optional_idx = 0)] + pub ri_config_index2_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodicProcExt_r11Csi_ConfigIndex_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodicSCell_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_pmi_ConfigIndexDormant_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicSCell_r15_setupRi_ConfigIndexDormant_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ReportPeriodicSCell_r15_setupCsi_SubframePatternDormant_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportPeriodicSCell_r15_setupCsi_SubframePatternDormant_r15_setup { + pub csi_meas_subframe_set1_r15: MeasSubframePattern_r10, + pub csi_meas_subframe_set2_r15: MeasSubframePattern_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodicSCell_r15_setupCsi_SubframePatternDormant_r15 { + #[asn(key = 0, extended = false)] + Release(CQI_ReportPeriodicSCell_r15_setupCsi_SubframePatternDormant_r15_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodicSCell_r15_setupCsi_SubframePatternDormant_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_widebandCQI_r15Csi_ReportMode_r15( + pub u8, +); +impl CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_widebandCQI_r15Csi_ReportMode_r15 { pub const SUBMODE1 : u8 = 0u8 ; pub const SUBMODE2 : u8 = 1u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_widebandCQI_r15 { # [asn (optional_idx = 0 ,)] pub csi_report_mode_r15 : Option < CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_widebandCQI_r15Csi_ReportMode_r15 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15K_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15PeriodicityFactor_r15( + pub u8, +); +impl CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15PeriodicityFactor_r15 { pub const N2 : u8 = 0u8 ; pub const N4 : u8 = 1u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15 { pub k_r15 : CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15K_r15 , pub periodicity_factor_r15 : CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15PeriodicityFactor_r15 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15 { + #[asn(key = 0, extended = false)] + WidebandCQI_r15( + CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_widebandCQI_r15, + ), + #[asn(key = 1, extended = false)] + SubbandCQI_r15(CQI_ReportPeriodicSCell_r15_setupCqi_FormatIndicatorDormant_r15_subbandCQI_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct CQI_ReportPeriodicSCell_r15_setup { + pub cqi_pmi_config_index_dormant_r15: + CQI_ReportPeriodicSCell_r15_setupCqi_pmi_ConfigIndexDormant_r15, + #[asn(optional_idx = 0)] + pub ri_config_index_dormant_r15: + Option, + #[asn(optional_idx = 1)] + pub csi_subframe_pattern_dormant_r15: + Option, + #[asn(optional_idx = 2)] + pub cqi_format_indicator_dormant_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicSCell_v1730Cqi_pmi_ConfigIndex2Dormant_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ReportPeriodicSCell_v1730Ri_ConfigIndex2Dormant_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CQI_ShortConfigSCell_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ShortConfigSCell_r15_setupCqi_pmi_ConfigIndexShort_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CQI_ShortConfigSCell_r15_setupRi_ConfigIndexShort_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_widebandCQI_Short_r15Csi_ReportModeShort_r15( + pub u8, +); +impl CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_widebandCQI_Short_r15Csi_ReportModeShort_r15 { pub const SUBMODE1 : u8 = 0u8 ; pub const SUBMODE2 : u8 = 1u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_widebandCQI_Short_r15 { # [asn (optional_idx = 0 ,)] pub csi_report_mode_short_r15 : Option < CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_widebandCQI_Short_r15Csi_ReportModeShort_r15 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15K_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15PeriodicityFactor_r15( + pub u8, +); +impl CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15PeriodicityFactor_r15 { pub const N2 : u8 = 0u8 ; pub const N4 : u8 = 1u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15 { pub k_r15 : CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15K_r15 , pub periodicity_factor_r15 : CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15PeriodicityFactor_r15 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15 { + #[asn(key = 0, extended = false)] + WidebandCQI_Short_r15( + CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_widebandCQI_Short_r15, + ), + #[asn(key = 1, extended = false)] + SubbandCQI_Short_r15( + CQI_ShortConfigSCell_r15_setupCqi_FormatIndicatorShort_r15_subbandCQI_Short_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CQI_ShortConfigSCell_r15_setup { + pub cqi_pmi_config_index_short_r15: CQI_ShortConfigSCell_r15_setupCqi_pmi_ConfigIndexShort_r15, + #[asn(optional_idx = 0)] + pub ri_config_index_short_r15: Option, + #[asn(optional_idx = 1)] + pub cqi_format_indicator_short_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CRI_ReportConfig_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CRI_ReportConfig_r13_setup { + pub cri_config_index_r13: CRI_ConfigIndex_r13, + #[asn(optional_idx = 0)] + pub cri_config_index2_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CRS_AssistanceInfo_r11AntennaPortsCount_r11(pub u8); +impl CRS_AssistanceInfo_r11AntennaPortsCount_r11 { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CRS_AssistanceInfo_r13AntennaPortsCount_r13(pub u8); +impl CRS_AssistanceInfo_r13AntennaPortsCount_r13 { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CRS_AssistanceInfo_r15Crs_IntfMitigEnabled_r15(pub u8); +impl CRS_AssistanceInfo_r15Crs_IntfMitigEnabled_r15 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct CRS_ChEstMPDCCH_ConfigCommon_r16PowerRatio_r16(pub u8); +impl CRS_ChEstMPDCCH_ConfigCommon_r16PowerRatio_r16 { + pub const D_B_4DOT77: u8 = 0u8; + pub const D_B_3: u8 = 1u8; + pub const D_B_1DOT77: u8 = 2u8; + pub const D_B0: u8 = 3u8; + pub const D_B1: u8 = 4u8; + pub const D_B2: u8 = 5u8; + pub const D_B3: u8 = 6u8; + pub const D_B4DOT77: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct CRS_ChEstMPDCCH_ConfigDedicated_r16PowerRatio_r16(pub u8); +impl CRS_ChEstMPDCCH_ConfigDedicated_r16PowerRatio_r16 { + pub const D_B_4DOT77: u8 = 0u8; + pub const D_B_3: u8 = 1u8; + pub const D_B_1DOT77: u8 = 2u8; + pub const D_B0: u8 = 3u8; + pub const D_B1: u8 = 4u8; + pub const D_B2: u8 = 5u8; + pub const D_B3: u8 = 6u8; + pub const D_B4DOT77: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct CRS_ChEstMPDCCH_ConfigDedicated_r16LocalizedMappingType_r16(pub u8); +impl CRS_ChEstMPDCCH_ConfigDedicated_r16LocalizedMappingType_r16 { + pub const PREDEFINED: u8 = 0u8; + pub const CSI_BASED: u8 = 1u8; + pub const RECIPROCITY_BASED: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "15", sz_ub = "15")] +pub struct CSFB_RegistrationParam1XRTTSid(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct CSFB_RegistrationParam1XRTTNid(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTMultipleSID(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTMultipleNID(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTHomeReg(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTForeignSIDReg(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTForeignNIDReg(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTParameterReg(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSFB_RegistrationParam1XRTTPowerUpReg(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct CSFB_RegistrationParam1XRTTRegistrationPeriod( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "12", sz_ub = "12")] +pub struct CSFB_RegistrationParam1XRTTRegistrationZone( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct CSFB_RegistrationParam1XRTTTotalZone(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct CSFB_RegistrationParam1XRTTZoneTimer(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSFB_RegistrationParam1XRTT_v920PowerDownReg_r9(pub u8); +impl CSFB_RegistrationParam1XRTT_v920PowerDownReg_r9 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersRequestCDMA2000CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSFBParametersRequestCDMA2000CriticalExtensions { + #[asn(key = 0, extended = false)] + CsfbParametersRequestCDMA2000_r8(CSFBParametersRequestCDMA2000_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + CSFBParametersRequestCDMA2000CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CSFBParametersRequestCDMA2000_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersRequestCDMA2000_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersResponseCDMA2000CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSFBParametersResponseCDMA2000CriticalExtensions { + #[asn(key = 0, extended = false)] + CsfbParametersResponseCDMA2000_r8(CSFBParametersResponseCDMA2000_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + CSFBParametersResponseCDMA2000CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CSFBParametersResponseCDMA2000_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSFBParametersResponseCDMA2000_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSG_ProximityIndicationParameters_r9IntraFreqProximityIndication_r9(pub u8); +impl CSG_ProximityIndicationParameters_r9IntraFreqProximityIndication_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSG_ProximityIndicationParameters_r9InterFreqProximityIndication_r9(pub u8); +impl CSG_ProximityIndicationParameters_r9InterFreqProximityIndication_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSG_ProximityIndicationParameters_r9Utran_ProximityIndication_r9(pub u8); +impl CSG_ProximityIndicationParameters_r9Utran_ProximityIndication_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct CSI_IM_Config_r11ResourceConfig_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct CSI_IM_Config_r11SubframeConfig_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct CSI_IM_ConfigExt_r12ResourceConfig_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct CSI_IM_ConfigExt_r12SubframeConfig_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct CSI_Process_r11Cqi_ReportPeriodicProcId_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_Config_r10Csi_RS_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CSI_RS_Config_r10Csi_RS_r10_setupAntennaPortsCount_r10(pub u8); +impl CSI_RS_Config_r10Csi_RS_r10_setupAntennaPortsCount_r10 { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const AN8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct CSI_RS_Config_r10Csi_RS_r10_setupResourceConfig_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct CSI_RS_Config_r10Csi_RS_r10_setupSubframeConfig_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "15")] +pub struct CSI_RS_Config_r10Csi_RS_r10_setupP_C_r10(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSI_RS_Config_r10Csi_RS_r10_setup { + pub antenna_ports_count_r10: CSI_RS_Config_r10Csi_RS_r10_setupAntennaPortsCount_r10, + pub resource_config_r10: CSI_RS_Config_r10Csi_RS_r10_setupResourceConfig_r10, + pub subframe_config_r10: CSI_RS_Config_r10Csi_RS_r10_setupSubframeConfig_r10, + pub p_c_r10: CSI_RS_Config_r10Csi_RS_r10_setupP_C_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_Config_r10Csi_RS_r10 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_Config_r10Csi_RS_r10_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_Config_r10Csi_RS_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct CSI_RS_Config_r15_setup { + #[asn(optional_idx = 0)] + pub csi_rs_config_r10: Option, + #[asn(optional_idx = 1)] + pub csi_rs_config_v1250: Option, + #[asn(optional_idx = 2)] + pub csi_rs_config_v1310: Option, + #[asn(optional_idx = 3)] + pub csi_rs_config_v1430: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_setupZeroTxPowerCSI_RS_List_r12( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_setup { + pub zero_tx_power_csi_rs_list_r12: + CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_setupZeroTxPowerCSI_RS_List_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_Config_v1250Ds_ZeroTxPowerCSI_RS_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSI_RS_Config_v1430AdvancedCodebookEnabled_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct CSI_RS_ConfigBeamformed_r13Csi_RS_ConfigNZPIdListExt_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_r13Csi_IM_ConfigIdList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_r13P_C_AndCBSR_PerResourceConfigList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSI_RS_ConfigBeamformed_r13Ace_For4Tx_PerResourceConfigList_r13_Entry(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct CSI_RS_ConfigBeamformed_r13Ace_For4Tx_PerResourceConfigList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSI_RS_ConfigBeamformed_r13AlternativeCodebookEnabledBeamformed_r13(pub u8); +impl CSI_RS_ConfigBeamformed_r13AlternativeCodebookEnabledBeamformed_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSI_RS_ConfigBeamformed_r13ChannelMeasRestriction_r13(pub u8); +impl CSI_RS_ConfigBeamformed_r13ChannelMeasRestriction_r13 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct CSI_RS_ConfigBeamformed_r14Csi_RS_ConfigNZPIdListExt_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_r14Csi_IM_ConfigIdList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_r14P_C_AndCBSR_PerResourceConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CSI_RS_ConfigBeamformed_r14Ace_For4Tx_PerResourceConfigList_r14_Entry(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct CSI_RS_ConfigBeamformed_r14Ace_For4Tx_PerResourceConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSI_RS_ConfigBeamformed_r14AlternativeCodebookEnabledBeamformed_r14(pub u8); +impl CSI_RS_ConfigBeamformed_r14AlternativeCodebookEnabledBeamformed_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSI_RS_ConfigBeamformed_r14ChannelMeasRestriction_r14(pub u8); +impl CSI_RS_ConfigBeamformed_r14ChannelMeasRestriction_r14 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_r14Csi_RS_ConfigNZP_ApList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CSI_RS_ConfigBeamformed_v1430Csi_RS_ConfigNZP_ApList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO_Hybrid_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct CSI_RS_ConfigEMIMO_Hybrid_r14_setupPeriodicityOffsetIndex_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CSI_RS_ConfigEMIMO_Hybrid_r14_setup { + #[asn(optional_idx = 0)] + pub periodicity_offset_index_r14: + Option, + #[asn(optional_idx = 1)] + pub emimo_type2_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_r13_setup { + #[asn(key = 0, extended = false)] + NonPrecoded_r13(CSI_RS_ConfigNonPrecoded_r13), + #[asn(key = 1, extended = false)] + Beamformed_r13(CSI_RS_ConfigBeamformed_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO_v1430_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1430_setup { + #[asn(key = 0, extended = false)] + NonPrecoded_v1430(CSI_RS_ConfigNonPrecoded_v1430), + #[asn(key = 1, extended = false)] + Beamformed_v1430(CSI_RS_ConfigBeamformed_v1430), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO_v1480_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1480_setup { + #[asn(key = 0, extended = false)] + NonPrecoded_v1480(CSI_RS_ConfigNonPrecoded_v1480), + #[asn(key = 1, extended = false)] + Beamformed_v1480(CSI_RS_ConfigBeamformed_v1430), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO_v1530_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum CSI_RS_ConfigEMIMO_v1530_setup { + #[asn(key = 0, extended = false)] + NonPrecoded_v1530(CSI_RS_ConfigNonPrecoded_v1530), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigEMIMO2_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CSI_RS_ConfigNZP_Activation_r14Csi_RS_NZP_mode_r14(pub u8); +impl CSI_RS_ConfigNZP_Activation_r14Csi_RS_NZP_mode_r14 { + pub const SEMI_PERSISTENT: u8 = 0u8; + pub const APERIODIC: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4")] +pub struct CSI_RS_ConfigNZP_Activation_r14ActivatedResources_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigNZP_EMIMO_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct CSI_RS_ConfigNZP_EMIMO_r13_setupNzp_resourceConfigList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CSI_RS_ConfigNZP_EMIMO_r13_setupCdmType_r13(pub u8); +impl CSI_RS_ConfigNZP_EMIMO_r13_setupCdmType_r13 { + pub const CDM2: u8 = 0u8; + pub const CDM4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_ConfigNZP_EMIMO_r13_setup { + pub nzp_resource_config_list_r13: CSI_RS_ConfigNZP_EMIMO_r13_setupNzp_resourceConfigList_r13, + #[asn(optional_idx = 0)] + pub cdm_type_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "0", sz_ub = "4")] +pub struct CSI_RS_ConfigNZP_EMIMO_v1430Nzp_resourceConfigListExt_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CSI_RS_ConfigNZP_EMIMO_v1430CdmType_v1430(pub u8); +impl CSI_RS_ConfigNZP_EMIMO_v1430CdmType_v1430 { + pub const CDM8: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CSI_RS_ConfigNZP_r11AntennaPortsCount_r11(pub u8); +impl CSI_RS_ConfigNZP_r11AntennaPortsCount_r11 { + pub const AN1: u8 = 0u8; + pub const AN2: u8 = 1u8; + pub const AN4: u8 = 2u8; + pub const AN8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct CSI_RS_ConfigNZP_r11ResourceConfig_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct CSI_RS_ConfigNZP_r11SubframeConfig_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct CSI_RS_ConfigNZP_r11ScramblingIdentity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Qcl_ScramblingIdentity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Crs_PortsCount_r11(pub u8); +impl CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Crs_PortsCount_r11 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Mbsfn_SubframeConfigList_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Mbsfn_SubframeConfigList_r11_setup { + pub subframe_config_list: MBSFN_SubframeConfigList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Mbsfn_SubframeConfigList_r11 { + #[asn(key = 0, extended = false)] + Release(CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Mbsfn_SubframeConfigList_r11_release), + #[asn(key = 1, extended = false)] + Setup(CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Mbsfn_SubframeConfigList_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11 { + pub qcl_scrambling_identity_r11: CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Qcl_ScramblingIdentity_r11, + pub crs_ports_count_r11: CSI_RS_ConfigNZP_r11Qcl_CRS_Info_r11Crs_PortsCount_r11, + #[asn(optional_idx = 0)] + pub mbsfn_subframe_config_list_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct CSI_RS_ConfigNonPrecoded_r13CodebookConfigN1_r13(pub u8); +impl CSI_RS_ConfigNonPrecoded_r13CodebookConfigN1_r13 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N8: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct CSI_RS_ConfigNonPrecoded_r13CodebookConfigN2_r13(pub u8); +impl CSI_RS_ConfigNonPrecoded_r13CodebookConfigN2_r13 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N8: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CSI_RS_ConfigNonPrecoded_r13CodebookOverSamplingRateConfig_O1_r13(pub u8); +impl CSI_RS_ConfigNonPrecoded_r13CodebookOverSamplingRateConfig_O1_r13 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CSI_RS_ConfigNonPrecoded_r13CodebookOverSamplingRateConfig_O2_r13(pub u8); +impl CSI_RS_ConfigNonPrecoded_r13CodebookOverSamplingRateConfig_O2_r13 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CSI_RS_ConfigNonPrecoded_r13CodebookConfig_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct CSI_RS_ConfigNonPrecoded_r13Csi_IM_ConfigIdList_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN1_v1430(pub u8); +impl CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN1_v1430 { + pub const N5: u8 = 0u8; + pub const N6: u8 = 1u8; + pub const N7: u8 = 2u8; + pub const N10: u8 = 3u8; + pub const N12: u8 = 4u8; + pub const N14: u8 = 5u8; + pub const N16: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN2_v1430(pub u8); +impl CSI_RS_ConfigNonPrecoded_v1430CodebookConfigN2_v1430 { + pub const N5: u8 = 0u8; + pub const N6: u8 = 1u8; + pub const N7: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct CSI_RS_ConfigNonPrecoded_v1480CodebookConfigN1_v1480(pub u8); +impl CSI_RS_ConfigNonPrecoded_v1480CodebookConfigN1_v1480 { + pub const N5: u8 = 0u8; + pub const N6: u8 = 1u8; + pub const N7: u8 = 2u8; + pub const N10: u8 = 3u8; + pub const N12: u8 = 4u8; + pub const N14: u8 = 5u8; + pub const N16: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct CSI_RS_ConfigNonPrecoded_v1480CodebookConfigN2_r1480(pub u8); +impl CSI_RS_ConfigNonPrecoded_v1480CodebookConfigN2_r1480 { + pub const N5: u8 = 0u8; + pub const N6: u8 = 1u8; + pub const N7: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CSI_RS_ConfigZP_ApList_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct CSI_RS_ConfigZP_ApList_r14_setup(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct CSI_RS_ConfigZP_r11ResourceConfigList_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct CSI_RS_ConfigZP_r11SubframeConfig_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct CarrierBandwidthEUTRADl_Bandwidth(pub u8); +impl CarrierBandwidthEUTRADl_Bandwidth { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; + pub const SPARE10: u8 = 6u8; + pub const SPARE9: u8 = 7u8; + pub const SPARE8: u8 = 8u8; + pub const SPARE7: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct CarrierBandwidthEUTRAUl_Bandwidth(pub u8); +impl CarrierBandwidthEUTRAUl_Bandwidth { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; + pub const SPARE10: u8 = 6u8; + pub const SPARE9: u8 = 7u8; + pub const SPARE8: u8 = 8u8; + pub const SPARE7: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqInfoUTRA_FDD_v8h0MultiBandInfoList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CarrierFreqInfoUTRA_v1250ReducedMeasPerformance_r12(pub u8); +impl CarrierFreqInfoUTRA_v1250ReducedMeasPerformance_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "24")] +pub struct CarrierFreqNBIOT_r16CarrierFreqOffset_r16(pub u8); +impl CarrierFreqNBIOT_r16CarrierFreqOffset_r16 { + pub const V_10: u8 = 0u8; + pub const V_9: u8 = 1u8; + pub const V_8DOT5: u8 = 2u8; + pub const V_8: u8 = 3u8; + pub const V_7: u8 = 4u8; + pub const V_6: u8 = 5u8; + pub const V_5: u8 = 6u8; + pub const V_4DOT5: u8 = 7u8; + pub const V_4: u8 = 8u8; + pub const V_3: u8 = 9u8; + pub const V_2: u8 = 10u8; + pub const V_1: u8 = 11u8; + pub const V_0DOT5: u8 = 12u8; + pub const V0: u8 = 13u8; + pub const V1: u8 = 14u8; + pub const V2: u8 = 15u8; + pub const V3: u8 = 16u8; + pub const V3DOT5: u8 = 17u8; + pub const V4: u8 = 18u8; + pub const V5: u8 = 19u8; + pub const V6: u8 = 20u8; + pub const V7: u8 = 21u8; + pub const V7DOT5: u8 = 22u8; + pub const V8: u8 = 23u8; + pub const V9: u8 = 24u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CarrierFreqNR_r15SubcarrierSpacingSSB_r15(pub u8); +impl CarrierFreqNR_r15SubcarrierSpacingSSB_r15 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ120: u8 = 2u8; + pub const K_HZ240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqNR_r15ThreshX_Q_r15 { + pub thresh_x_high_q_r15: ReselectionThresholdQ_r9, + pub thresh_x_low_q_r15: ReselectionThresholdQ_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-70", ub = "-22")] +pub struct CarrierFreqNR_r15Q_RxLevMin_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-70", ub = "-22")] +pub struct CarrierFreqNR_r15Q_RxLevMinSUL_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-43", ub = "-12")] +pub struct CarrierFreqNR_r15Q_QualMin_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CarrierFreqNR_r15DeriveSSB_IndexFromCell_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CarrierFreqNR_v1610HighSpeedCarrierNR_r16(pub u8); +impl CarrierFreqNR_v1610HighSpeedCarrierNR_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct CarrierFreqNR_v1720SubcarrierSpacingSSB_r17(pub u8); +impl CarrierFreqNR_v1720SubcarrierSpacingSSB_r17 { + pub const K_HZ480: u8 = 0u8; + pub const SPARE1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "-13")] +pub struct CarrierFreqUTRA_FDDQ_RxLevMin(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-50", ub = "33")] +pub struct CarrierFreqUTRA_FDDP_MaxUTRA(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-24", ub = "0")] +pub struct CarrierFreqUTRA_FDDQ_QualMin(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "-13")] +pub struct CarrierFreqUTRA_FDD_Ext_r12Q_RxLevMin_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-50", ub = "33")] +pub struct CarrierFreqUTRA_FDD_Ext_r12P_MaxUTRA_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-24", ub = "0")] +pub struct CarrierFreqUTRA_FDD_Ext_r12Q_QualMin_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqUTRA_FDD_Ext_r12ThreshX_Q_r12 { + pub thresh_x_high_q_r12: ReselectionThresholdQ_r9, + pub thresh_x_low_q_r12: ReselectionThresholdQ_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct CarrierFreqUTRA_FDD_Ext_r12MultiBandInfoList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CarrierFreqUTRA_FDD_Ext_r12ReducedMeasPerformance_r12(pub u8); +impl CarrierFreqUTRA_FDD_Ext_r12ReducedMeasPerformance_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "-13")] +pub struct CarrierFreqUTRA_TDDQ_RxLevMin(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-50", ub = "33")] +pub struct CarrierFreqUTRA_TDDP_MaxUTRA(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "-13")] +pub struct CarrierFreqUTRA_TDD_r12Q_RxLevMin_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-50", ub = "33")] +pub struct CarrierFreqUTRA_TDD_r12P_MaxUTRA_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct CarrierFreqUTRA_TDD_r12ReducedMeasPerformance_r12(pub u8); +impl CarrierFreqUTRA_TDD_r12ReducedMeasPerformance_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNsArfcn_Spacing(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNsNumberOfFollowingARFCNs(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNs { + pub arfcn_spacing: CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNsArfcn_Spacing, + pub number_of_following_arfc_ns: + CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNsNumberOfFollowingARFCNs, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "16" +)] +pub struct CarrierFreqsGERANFollowingARFCNs_variableBitMapOfARFCNs(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum CarrierFreqsGERANFollowingARFCNs { + #[asn(key = 0, extended = false)] + ExplicitListOfARFCNs(ExplicitListOfARFCNs), + #[asn(key = 1, extended = false)] + EquallySpacedARFCNs(CarrierFreqsGERANFollowingARFCNs_equallySpacedARFCNs), + #[asn(key = 2, extended = false)] + VariableBitMapOfARFCNs(CarrierFreqsGERANFollowingARFCNs_variableBitMapOfARFCNs), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct CarrierFreqsInfoGERANCommonInfoNcc_Permitted( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "45")] +pub struct CarrierFreqsInfoGERANCommonInfoQ_RxLevMin(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct CarrierFreqsInfoGERANCommonInfoP_MaxGERAN(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CarrierFreqsInfoGERANCommonInfo { + #[asn(optional_idx = 0)] + pub cell_reselection_priority: Option, + pub ncc_permitted: CarrierFreqsInfoGERANCommonInfoNcc_Permitted, + pub q_rx_lev_min: CarrierFreqsInfoGERANCommonInfoQ_RxLevMin, + #[asn(optional_idx = 1)] + pub p_max_geran: Option, + pub thresh_x_high: ReselectionThreshold, + pub thresh_x_low: ReselectionThreshold, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CarrierInfoNR_r15SubcarrierSpacingSSB_r15(pub u8); +impl CarrierInfoNR_r15SubcarrierSpacingSSB_r15 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ120: u8 = 2u8; + pub const K_HZ240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct CarrierInfoNR_r17SubcarrierSpacingSSB_r17(pub u8); +impl CarrierInfoNR_r17SubcarrierSpacingSSB_r17 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ120: u8 = 2u8; + pub const K_HZ240: u8 = 3u8; + pub const K_HZ480: u8 = 4u8; + pub const SPARE1: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Cell_ToAddMod_r12CellIdentification_r12 { + pub phys_cell_id_r12: PhysCellId, + pub dl_carrier_freq_r12: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Cell_ToAddMod_r12MeasResultCellToAdd_r12 { + pub rsrp_result_r12: RSRP_Range, + pub rsrq_result_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct CellChangeOrderT304(pub u8); +impl CellChangeOrderT304 { + pub const MS100: u8 = 0u8; + pub const MS200: u8 = 1u8; + pub const MS500: u8 = 2u8; + pub const MS1000: u8 = 3u8; + pub const MS2000: u8 = 4u8; + pub const MS4000: u8 = 5u8; + pub const MS8000: u8 = 6u8; + pub const MS10000_V1310: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct CellChangeOrderTargetRAT_Type_geranNetworkControlOrder( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct CellChangeOrderTargetRAT_Type_geran { + pub phys_cell_id: PhysCellIdGERAN, + pub carrier_freq: CarrierFreqGERAN, + #[asn(optional_idx = 0)] + pub network_control_order: Option, + #[asn(optional_idx = 1)] + pub system_information: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = true)] +pub enum CellChangeOrderTargetRAT_Type { + #[asn(key = 0, extended = false)] + Geran(CellChangeOrderTargetRAT_Type_geran), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "47", sz_ub = "47")] +pub struct CellGlobalIdCDMA2000_cellGlobalId1XRTT(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "128", + sz_ub = "128" +)] +pub struct CellGlobalIdCDMA2000_cellGlobalIdHRPD(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct CellGlobalIdGERANLocationAreaCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct CellGlobalIdGERANCellIdentity(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "28", sz_ub = "28")] +pub struct CellGlobalIdUTRACellIdentity(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct CellIdentity_5GC_r15_cellId_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CellInfoUTRA_FDD_r9Utra_BCCH_Container_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CellInfoUTRA_TDD_r10Utra_BCCH_Container_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CellInfoUTRA_TDD_r9Utra_BCCH_Container_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct CellReselectionInfoCommon_v1460S_SearchDeltaP_r14(pub u8); +impl CellReselectionInfoCommon_v1460S_SearchDeltaP_r14 { + pub const D_B6: u8 = 0u8; + pub const D_B9: u8 = 1u8; + pub const D_B12: u8 = 2u8; + pub const D_B15: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "16")] +pub struct CellReselectionInfoHSDN_r15CellEquivalentSize_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct CellReselectionParametersCDMA2000_r11NeighCellList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct CellSelectionInfo_v920Q_QualMinOffset_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct CellSelectionInfoCE_v1530PowerClass14dBm_Offset_r15(pub u8); +impl CellSelectionInfoCE_v1530PowerClass14dBm_Offset_r15 { + pub const D_B_6: u8 = 0u8; + pub const D_B_3: u8 = 1u8; + pub const D_B3: u8 = 2u8; + pub const D_B6: u8 = 3u8; + pub const D_B9: u8 = 4u8; + pub const D_B12: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "-1")] +pub struct CellSelectionInfoCE1_v1360Delta_RxLevMinCE1_v1360(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct CellSelectionInfoNFreq_r13Q_RxLevMinOffset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct CellSelectionInfoNFreq_r13Q_Hyst_r13(pub u8); +impl CellSelectionInfoNFreq_r13Q_Hyst_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B1: u8 = 1u8; + pub const D_B2: u8 = 2u8; + pub const D_B3: u8 = 3u8; + pub const D_B4: u8 = 4u8; + pub const D_B5: u8 = 5u8; + pub const D_B6: u8 = 6u8; + pub const D_B8: u8 = 7u8; + pub const D_B10: u8 = 8u8; + pub const D_B12: u8 = 9u8; + pub const D_B14: u8 = 10u8; + pub const D_B16: u8 = 11u8; + pub const D_B18: u8 = 12u8; + pub const D_B20: u8 = 13u8; + pub const D_B22: u8 = 14u8; + pub const D_B24: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModCellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModCDMA2000CellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModNR_r15CellIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModNR_r16CellIndex_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModUTRA_FDDCellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct CellsToAddModUTRA_TDDCellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CellsTriggeredList_Entry_physCellIdUTRA { + #[asn(key = 0, extended = false)] + Fdd(PhysCellIdUTRA_FDD), + #[asn(key = 1, extended = false)] + Tdd(PhysCellIdUTRA_TDD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CellsTriggeredList_Entry_physCellIdGERAN { + pub carrier_freq: CarrierFreqGERAN, + pub phys_cell_id: PhysCellIdGERAN, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct CellsTriggeredList_Entry_physCellIdNR_r15 { + pub carrier_freq: ARFCN_ValueNR_r15, + pub phys_cell_id: PhysCellIdNR_r15, + #[asn(optional_idx = 0)] + pub rs_index_list_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum CellsTriggeredList_Entry { + #[asn(key = 0, extended = false)] + PhysCellIdEUTRA(PhysCellId), + #[asn(key = 1, extended = false)] + PhysCellIdUTRA(CellsTriggeredList_Entry_physCellIdUTRA), + #[asn(key = 2, extended = false)] + PhysCellIdGERAN(CellsTriggeredList_Entry_physCellIdGERAN), + #[asn(key = 3, extended = false)] + PhysCellIdCDMA2000(PhysCellIdCDMA2000), + #[asn(key = 4, extended = false)] + Wlan_Identifiers_r13(WLAN_Identifiers_r12), + #[asn(key = 5, extended = false)] + PhysCellIdNR_r15(CellsTriggeredList_Entry_physCellIdNR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct CondReconfigurationAddMod_r16TriggerCondition_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CondReconfigurationAddMod_r16CondReconfigurationToApply_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "30")] +pub struct CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA3_r16A3_Offset_r16(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA3_r16 { + pub a3_offset_r16: + CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA3_r16A3_Offset_r16, + pub hysteresis_r16: Hysteresis, + pub time_to_trigger_r16: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA5_r16 { + pub a5_threshold1_r16: ThresholdEUTRA, + pub a5_threshold2_r16: ThresholdEUTRA, + pub hysteresis_r16: Hysteresis, + pub time_to_trigger_r16: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum CondReconfigurationTriggerEUTRA_r16CondEventId_r16 { + #[asn(key = 0, extended = false)] + CondEventA3_r16(CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA3_r16), + #[asn(key = 1, extended = false)] + CondEventA5_r16(CondReconfigurationTriggerEUTRA_r16CondEventId_r16_condEventA5_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CondReconfigurationTriggerNR_r17CondEventId_r17_condEventB1_NR_r17 { + pub b1_threshold_nr_r17: ThresholdNR_r15, + pub hysteresis_r17: Hysteresis, + pub time_to_trigger_r17: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = true)] +pub enum CondReconfigurationTriggerNR_r17CondEventId_r17 { + #[asn(key = 0, extended = false)] + CondEventB1_NR_r17(CondReconfigurationTriggerNR_r17CondEventId_r17_condEventB1_NR_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ConditionalReconfiguration_r16AttemptCondReconf_r16(pub u8); +impl ConditionalReconfiguration_r16AttemptCondReconf_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct ConfigRestrictInfoDAPS_r16MaxSCH_TB_BitsDL_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct ConfigRestrictInfoDAPS_r16MaxSCH_TB_BitsUL_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ConnEstFailReport_r11MeasResultFailedCell_r11 { + pub rsrp_result_r11: RSRP_Range, + #[asn(optional_idx = 0)] + pub rsrq_result_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct ConnEstFailReport_r11MeasResultNeighCells_r11 { + #[asn(optional_idx = 0)] + pub meas_result_list_eutra_r11: Option, + #[asn(optional_idx = 1)] + pub meas_result_list_utra_r11: Option, + #[asn(optional_idx = 2)] + pub meas_result_list_geran_r11: Option, + #[asn(optional_idx = 3)] + pub meas_results_cdma2000_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ConnEstFailReport_r11ContentionDetected_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ConnEstFailReport_r11MaxTxPowerReached_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CounterCheckCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CounterCheckCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct CounterCheckCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum CounterCheckCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + CounterCheck_r8(CounterCheck_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(CounterCheckCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(CounterCheckCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(CounterCheckCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheckCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CounterCheckCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(CounterCheckCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(CounterCheckCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheck_v1530_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CounterCheck_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheckResponseCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CounterCheckResponseCriticalExtensions { + #[asn(key = 0, extended = false)] + CounterCheckResponse_r8(CounterCheckResponse_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(CounterCheckResponseCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CounterCheckResponse_v1530_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct CounterCheckResponse_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct CountingResponseInfo_r10CountingResponseService_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_own_r10Cif_Presence_r10(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_own_r10 { + pub cif_presence_r10: + CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_own_r10Cif_Presence_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_other_r10Pdsch_Start_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_other_r10 { + pub scheduling_cell_id_r10: ServCellIndex_r10, + pub pdsch_start_r10: + CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_other_r10Pdsch_Start_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10 { + #[asn(key = 0, extended = false)] + Own_r10(CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_own_r10), + #[asn(key = 1, extended = false)] + Other_r10(CrossCarrierSchedulingConfig_r10SchedulingCellInfo_r10_other_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_own_r13Cif_Presence_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_own_r13 { + pub cif_presence_r13: + CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_own_r13Cif_Presence_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13Pdsch_Start_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "7")] +pub struct CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13Cif_InSchedulingCell_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13 { + pub scheduling_cell_id_r13: ServCellIndex_r13, + pub pdsch_start_r13: + CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13Pdsch_Start_r13, + pub cif_in_scheduling_cell_r13: + CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13Cif_InSchedulingCell_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13 { + #[asn(key = 0, extended = false)] + Own_r13(CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_own_r13), + #[asn(key = 1, extended = false)] + Other_r13(CrossCarrierSchedulingConfig_r13SchedulingCellInfo_r13_other_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "7")] +pub struct CrossCarrierSchedulingConfigLAA_UL_r14Cif_InSchedulingCell_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct DAPS_PowerCoordinationInfo_r16P_DAPS_Source_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct DAPS_PowerCoordinationInfo_r16P_DAPS_Target_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct DAPS_PowerCoordinationInfo_r16PowerControlMode_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DC_Parameters_r12Drb_TypeSplit_r12(pub u8); +impl DC_Parameters_r12Drb_TypeSplit_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DC_Parameters_r12Drb_TypeSCG_r12(pub u8); +impl DC_Parameters_r12Drb_TypeSCG_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DC_Parameters_v1310Pdcp_TransferSplitUL_r13(pub u8); +impl DC_Parameters_v1310Pdcp_TransferSplitUL_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DC_Parameters_v1310Ue_SSTD_Meas_r13(pub u8); +impl DC_Parameters_v1310Ue_SSTD_Meas_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct DL_AM_RLC_r15Extended_RLC_LI_Field_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum DL_CCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishment(RRCConnectionReestablishment), + #[asn(key = 1, extended = false)] + RrcConnectionReestablishmentReject(RRCConnectionReestablishmentReject), + #[asn(key = 2, extended = false)] + RrcConnectionReject(RRCConnectionReject), + #[asn(key = 3, extended = false)] + RrcConnectionSetup(RRCConnectionSetup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DL_CCCH_MessageType_messageClassExtension_c2_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DL_CCCH_MessageType_messageClassExtension_c2_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DL_CCCH_MessageType_messageClassExtension_c2_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum DL_CCCH_MessageType_messageClassExtension_c2 { + #[asn(key = 0, extended = false)] + RrcEarlyDataComplete_r15(RRCEarlyDataComplete_r15), + #[asn(key = 1, extended = false)] + Spare3(DL_CCCH_MessageType_messageClassExtension_c2_spare3), + #[asn(key = 2, extended = false)] + Spare2(DL_CCCH_MessageType_messageClassExtension_c2_spare2), + #[asn(key = 3, extended = false)] + Spare1(DL_CCCH_MessageType_messageClassExtension_c2_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r15 {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DL_CCCH_MessageType_messageClassExtension { + #[asn(key = 0, extended = false)] + C2(DL_CCCH_MessageType_messageClassExtension_c2), + #[asn(key = 1, extended = false)] + MessageClassExtensionFuture_r15( + DL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DL_DCCH_MessageType_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DL_DCCH_MessageType_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum DL_DCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + CsfbParametersResponseCDMA2000(CSFBParametersResponseCDMA2000), + #[asn(key = 1, extended = false)] + DlInformationTransfer(DLInformationTransfer), + #[asn(key = 2, extended = false)] + HandoverFromEUTRAPreparationRequest(HandoverFromEUTRAPreparationRequest), + #[asn(key = 3, extended = false)] + MobilityFromEUTRACommand(MobilityFromEUTRACommand), + #[asn(key = 4, extended = false)] + RrcConnectionReconfiguration(RRCConnectionReconfiguration), + #[asn(key = 5, extended = false)] + RrcConnectionRelease(RRCConnectionRelease), + #[asn(key = 6, extended = false)] + SecurityModeCommand(SecurityModeCommand), + #[asn(key = 7, extended = false)] + UeCapabilityEnquiry(UECapabilityEnquiry), + #[asn(key = 8, extended = false)] + CounterCheck(CounterCheck), + #[asn(key = 9, extended = false)] + UeInformationRequest_r9(UEInformationRequest_r9), + #[asn(key = 10, extended = false)] + LoggedMeasurementConfiguration_r10(LoggedMeasurementConfiguration_r10), + #[asn(key = 11, extended = false)] + RnReconfiguration_r10(RNReconfiguration_r10), + #[asn(key = 12, extended = false)] + RrcConnectionResume_r13(RRCConnectionResume_r13), + #[asn(key = 13, extended = false)] + DlDedicatedMessageSegment_r16(DLDedicatedMessageSegment_r16), + #[asn(key = 14, extended = false)] + Spare2(DL_DCCH_MessageType_c1_spare2), + #[asn(key = 15, extended = false)] + Spare1(DL_DCCH_MessageType_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DL_DCCH_MessageType_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct DL_UL_CCs_r15MaxNumberDL_CCs_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct DL_UL_CCs_r15MaxNumberUL_CCs_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLDedicatedMessageSegment_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DLDedicatedMessageSegment_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + DlDedicatedMessageSegment_r16(DLDedicatedMessageSegment_r16_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + DLDedicatedMessageSegment_r16CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4")] +pub struct DLDedicatedMessageSegment_r16_IEsSegmentNumber_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DLDedicatedMessageSegment_r16_IEsRrc_MessageSegmentContainer_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DLDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16(pub u8); +impl DLDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16 { + pub const NOT_LAST_SEGMENT: u8 = 0u8; + pub const LAST_SEGMENT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DLDedicatedMessageSegment_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLDedicatedMessageSegment_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DLInformationTransferCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DLInformationTransferCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum DLInformationTransferCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + DlInformationTransfer_r8(DLInformationTransfer_r8_IEs), + #[asn(key = 1, extended = false)] + DlInformationTransfer_r15(DLInformationTransfer_r15_IEs), + #[asn(key = 2, extended = false)] + Spare2(DLInformationTransferCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(DLInformationTransferCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLInformationTransferCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DLInformationTransferCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(DLInformationTransferCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(DLInformationTransferCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum DLInformationTransfer_r15_IEsDedicatedInfoType_r15 { + #[asn(key = 0, extended = false)] + DedicatedInfoNAS(DedicatedInfoNAS), + #[asn(key = 1, extended = false)] + DedicatedInfoCDMA2000_1XRTT(DedicatedInfoCDMA2000), + #[asn(key = 2, extended = false)] + DedicatedInfoCDMA2000_HRPD(DedicatedInfoCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum DLInformationTransfer_r8_IEsDedicatedInfoType { + #[asn(key = 0, extended = false)] + DedicatedInfoNAS(DedicatedInfoNAS), + #[asn(key = 1, extended = false)] + DedicatedInfoCDMA2000_1XRTT(DedicatedInfoCDMA2000), + #[asn(key = 2, extended = false)] + DedicatedInfoCDMA2000_HRPD(DedicatedInfoCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DLInformationTransfer_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct DLInformationTransfer_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DMRS_Config_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct DMRS_Config_r11_setupScramblingIdentity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct DMRS_Config_r11_setupScramblingIdentity2_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DMRS_Config_r11_setup { + pub scrambling_identity_r11: DMRS_Config_r11_setupScramblingIdentity_r11, + pub scrambling_identity2_r11: DMRS_Config_r11_setupScramblingIdentity2_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DMRS_Config_v1310Dmrs_tableAlt_r13(pub u8); +impl DMRS_Config_v1310Dmrs_tableAlt_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4294967295")] +pub struct DRB_CountInfoCount_Uplink(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4294967295")] +pub struct DRB_CountInfoCount_Downlink(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "33554431")] +pub struct DRB_CountMSB_InfoCountMSB_Uplink(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "33554431")] +pub struct DRB_CountMSB_InfoCountMSB_Downlink(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct DRB_InfoSCG_r12Eps_BearerIdentity_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DRB_InfoSCG_r12Drb_Type_r12(pub u8); +impl DRB_InfoSCG_r12Drb_Type_r12 { + pub const SPLIT: u8 = 0u8; + pub const SCG: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct DRB_ToAddModEps_BearerIdentity(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "3", ub = "10")] +pub struct DRB_ToAddModLogicalChannelIdentity(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DRB_ToAddModSCG_r12Drb_Type_r12_split_r12; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct DRB_ToAddModSCG_r12Drb_Type_r12_scg_r12Eps_BearerIdentity_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct DRB_ToAddModSCG_r12Drb_Type_r12_scg_r12 { + #[asn(optional_idx = 0)] + pub eps_bearer_identity_r12: + Option, + #[asn(optional_idx = 1)] + pub pdcp_config_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DRB_ToAddModSCG_r12Drb_Type_r12 { + #[asn(key = 0, extended = false)] + Split_r12(DRB_ToAddModSCG_r12Drb_Type_r12_split_r12), + #[asn(key = 1, extended = false)] + Scg_r12(DRB_ToAddModSCG_r12Drb_Type_r12_scg_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "3", ub = "10")] +pub struct DRB_ToAddModSCG_r12LogicalChannelIdentitySCG_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DRX_Config_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct DRX_Config_setupOnDurationTimer(pub u8); +impl DRX_Config_setupOnDurationTimer { + pub const PSF1: u8 = 0u8; + pub const PSF2: u8 = 1u8; + pub const PSF3: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF5: u8 = 4u8; + pub const PSF6: u8 = 5u8; + pub const PSF8: u8 = 6u8; + pub const PSF10: u8 = 7u8; + pub const PSF20: u8 = 8u8; + pub const PSF30: u8 = 9u8; + pub const PSF40: u8 = 10u8; + pub const PSF50: u8 = 11u8; + pub const PSF60: u8 = 12u8; + pub const PSF80: u8 = 13u8; + pub const PSF100: u8 = 14u8; + pub const PSF200: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct DRX_Config_setupDrx_InactivityTimer(pub u8); +impl DRX_Config_setupDrx_InactivityTimer { + pub const PSF1: u8 = 0u8; + pub const PSF2: u8 = 1u8; + pub const PSF3: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF5: u8 = 4u8; + pub const PSF6: u8 = 5u8; + pub const PSF8: u8 = 6u8; + pub const PSF10: u8 = 7u8; + pub const PSF20: u8 = 8u8; + pub const PSF30: u8 = 9u8; + pub const PSF40: u8 = 10u8; + pub const PSF50: u8 = 11u8; + pub const PSF60: u8 = 12u8; + pub const PSF80: u8 = 13u8; + pub const PSF100: u8 = 14u8; + pub const PSF200: u8 = 15u8; + pub const PSF300: u8 = 16u8; + pub const PSF500: u8 = 17u8; + pub const PSF750: u8 = 18u8; + pub const PSF1280: u8 = 19u8; + pub const PSF1920: u8 = 20u8; + pub const PSF2560: u8 = 21u8; + pub const PSF0_V1020: u8 = 22u8; + pub const SPARE9: u8 = 23u8; + pub const SPARE8: u8 = 24u8; + pub const SPARE7: u8 = 25u8; + pub const SPARE6: u8 = 26u8; + pub const SPARE5: u8 = 27u8; + pub const SPARE4: u8 = 28u8; + pub const SPARE3: u8 = 29u8; + pub const SPARE2: u8 = 30u8; + pub const SPARE1: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DRX_Config_setupDrx_RetransmissionTimer(pub u8); +impl DRX_Config_setupDrx_RetransmissionTimer { + pub const PSF1: u8 = 0u8; + pub const PSF2: u8 = 1u8; + pub const PSF4: u8 = 2u8; + pub const PSF6: u8 = 3u8; + pub const PSF8: u8 = 4u8; + pub const PSF16: u8 = 5u8; + pub const PSF24: u8 = 6u8; + pub const PSF33: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf20(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf32(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf40(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf64(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf80(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf128(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf160(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf256(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf320(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf512(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf640(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf1024(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf1280(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf2048(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2559")] +pub struct DRX_Config_setupLongDRX_CycleStartOffset_sf2560(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum DRX_Config_setupLongDRX_CycleStartOffset { + #[asn(key = 0, extended = false)] + Sf10(DRX_Config_setupLongDRX_CycleStartOffset_sf10), + #[asn(key = 1, extended = false)] + Sf20(DRX_Config_setupLongDRX_CycleStartOffset_sf20), + #[asn(key = 2, extended = false)] + Sf32(DRX_Config_setupLongDRX_CycleStartOffset_sf32), + #[asn(key = 3, extended = false)] + Sf40(DRX_Config_setupLongDRX_CycleStartOffset_sf40), + #[asn(key = 4, extended = false)] + Sf64(DRX_Config_setupLongDRX_CycleStartOffset_sf64), + #[asn(key = 5, extended = false)] + Sf80(DRX_Config_setupLongDRX_CycleStartOffset_sf80), + #[asn(key = 6, extended = false)] + Sf128(DRX_Config_setupLongDRX_CycleStartOffset_sf128), + #[asn(key = 7, extended = false)] + Sf160(DRX_Config_setupLongDRX_CycleStartOffset_sf160), + #[asn(key = 8, extended = false)] + Sf256(DRX_Config_setupLongDRX_CycleStartOffset_sf256), + #[asn(key = 9, extended = false)] + Sf320(DRX_Config_setupLongDRX_CycleStartOffset_sf320), + #[asn(key = 10, extended = false)] + Sf512(DRX_Config_setupLongDRX_CycleStartOffset_sf512), + #[asn(key = 11, extended = false)] + Sf640(DRX_Config_setupLongDRX_CycleStartOffset_sf640), + #[asn(key = 12, extended = false)] + Sf1024(DRX_Config_setupLongDRX_CycleStartOffset_sf1024), + #[asn(key = 13, extended = false)] + Sf1280(DRX_Config_setupLongDRX_CycleStartOffset_sf1280), + #[asn(key = 14, extended = false)] + Sf2048(DRX_Config_setupLongDRX_CycleStartOffset_sf2048), + #[asn(key = 15, extended = false)] + Sf2560(DRX_Config_setupLongDRX_CycleStartOffset_sf2560), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct DRX_Config_setupShortDRXShortDRX_Cycle(pub u8); +impl DRX_Config_setupShortDRXShortDRX_Cycle { + pub const SF2: u8 = 0u8; + pub const SF5: u8 = 1u8; + pub const SF8: u8 = 2u8; + pub const SF10: u8 = 3u8; + pub const SF16: u8 = 4u8; + pub const SF20: u8 = 5u8; + pub const SF32: u8 = 6u8; + pub const SF40: u8 = 7u8; + pub const SF64: u8 = 8u8; + pub const SF80: u8 = 9u8; + pub const SF128: u8 = 10u8; + pub const SF160: u8 = 11u8; + pub const SF256: u8 = 12u8; + pub const SF320: u8 = 13u8; + pub const SF512: u8 = 14u8; + pub const SF640: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct DRX_Config_setupShortDRXDrxShortCycleTimer(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DRX_Config_setupShortDRX { + pub short_drx_cycle: DRX_Config_setupShortDRXShortDRX_Cycle, + pub drx_short_cycle_timer: DRX_Config_setupShortDRXDrxShortCycleTimer, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct DRX_Config_setup { + pub on_duration_timer: DRX_Config_setupOnDurationTimer, + pub drx_inactivity_timer: DRX_Config_setupDrx_InactivityTimer, + pub drx_retransmission_timer: DRX_Config_setupDrx_RetransmissionTimer, + pub long_drx_cycle_start_offset: DRX_Config_setupLongDRX_CycleStartOffset, + #[asn(optional_idx = 0)] + pub short_drx: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DRX_Config_r13OnDurationTimer_v1310(pub u8); +impl DRX_Config_r13OnDurationTimer_v1310 { + pub const PSF300: u8 = 0u8; + pub const PSF400: u8 = 1u8; + pub const PSF500: u8 = 2u8; + pub const PSF600: u8 = 3u8; + pub const PSF800: u8 = 4u8; + pub const PSF1000: u8 = 5u8; + pub const PSF1200: u8 = 6u8; + pub const PSF1600: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DRX_Config_r13Drx_RetransmissionTimer_v1310(pub u8); +impl DRX_Config_r13Drx_RetransmissionTimer_v1310 { + pub const PSF40: u8 = 0u8; + pub const PSF64: u8 = 1u8; + pub const PSF80: u8 = 2u8; + pub const PSF96: u8 = 3u8; + pub const PSF112: u8 = 4u8; + pub const PSF128: u8 = 5u8; + pub const PSF160: u8 = 6u8; + pub const PSF320: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "16")] +pub struct DRX_Config_r13Drx_ULRetransmissionTimer_r13(pub u8); +impl DRX_Config_r13Drx_ULRetransmissionTimer_r13 { + pub const PSF0: u8 = 0u8; + pub const PSF1: u8 = 1u8; + pub const PSF2: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF6: u8 = 4u8; + pub const PSF8: u8 = 5u8; + pub const PSF16: u8 = 6u8; + pub const PSF24: u8 = 7u8; + pub const PSF33: u8 = 8u8; + pub const PSF40: u8 = 9u8; + pub const PSF64: u8 = 10u8; + pub const PSF80: u8 = 11u8; + pub const PSF96: u8 = 12u8; + pub const PSF112: u8 = 13u8; + pub const PSF128: u8 = 14u8; + pub const PSF160: u8 = 15u8; + pub const PSF320: u8 = 16u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "9")] +pub struct DRX_Config_r15Drx_RetransmissionTimerShortTTI_r15(pub u8); +impl DRX_Config_r15Drx_RetransmissionTimerShortTTI_r15 { + pub const TTI10: u8 = 0u8; + pub const TTI20: u8 = 1u8; + pub const TTI40: u8 = 2u8; + pub const TTI64: u8 = 3u8; + pub const TTI80: u8 = 4u8; + pub const TTI96: u8 = 5u8; + pub const TTI112: u8 = 6u8; + pub const TTI128: u8 = 7u8; + pub const TTI160: u8 = 8u8; + pub const TTI320: u8 = 9u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "16")] +pub struct DRX_Config_r15Drx_UL_RetransmissionTimerShortTTI_r15(pub u8); +impl DRX_Config_r15Drx_UL_RetransmissionTimerShortTTI_r15 { + pub const TTI0: u8 = 0u8; + pub const TTI1: u8 = 1u8; + pub const TTI2: u8 = 2u8; + pub const TTI4: u8 = 3u8; + pub const TTI6: u8 = 4u8; + pub const TTI8: u8 = 5u8; + pub const TTI16: u8 = 6u8; + pub const TTI24: u8 = 7u8; + pub const TTI33: u8 = 8u8; + pub const TTI40: u8 = 9u8; + pub const TTI64: u8 = 10u8; + pub const TTI80: u8 = 11u8; + pub const TTI96: u8 = 12u8; + pub const TTI112: u8 = 13u8; + pub const TTI128: u8 = 14u8; + pub const TTI160: u8 = 15u8; + pub const TTI320: u8 = 16u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DRX_Config_v1130Drx_RetransmissionTimer_v1130(pub u8); +impl DRX_Config_v1130Drx_RetransmissionTimer_v1130 { + pub const PSF0_V1130: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "59")] +pub struct DRX_Config_v1130LongDRX_CycleStartOffset_v1130_sf60_v1130(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "69")] +pub struct DRX_Config_v1130LongDRX_CycleStartOffset_v1130_sf70_v1130(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum DRX_Config_v1130LongDRX_CycleStartOffset_v1130 { + #[asn(key = 0, extended = false)] + Sf60_v1130(DRX_Config_v1130LongDRX_CycleStartOffset_v1130_sf60_v1130), + #[asn(key = 1, extended = false)] + Sf70_v1130(DRX_Config_v1130LongDRX_CycleStartOffset_v1130_sf70_v1130), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct DRX_Config_v1130ShortDRX_Cycle_v1130(pub u8); +impl DRX_Config_v1130ShortDRX_Cycle_v1130 { + pub const SF4_V1130: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "59")] +pub struct DRX_Config_v1310LongDRX_CycleStartOffset_v1310Sf60_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct DRX_Config_v1310LongDRX_CycleStartOffset_v1310 { + pub sf60_v1310: DRX_Config_v1310LongDRX_CycleStartOffset_v1310Sf60_v1310, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "15")] +pub struct DataBLER_MCH_Result_r12Mch_Index_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "16")] +pub struct DelayBudgetReport_r14_type1(pub u8); +impl DelayBudgetReport_r14_type1 { + pub const MS_MINUS1280: u8 = 0u8; + pub const MS_MINUS640: u8 = 1u8; + pub const MS_MINUS320: u8 = 2u8; + pub const MS_MINUS160: u8 = 3u8; + pub const MS_MINUS80: u8 = 4u8; + pub const MS_MINUS60: u8 = 5u8; + pub const MS_MINUS40: u8 = 6u8; + pub const MS_MINUS20: u8 = 7u8; + pub const MS0: u8 = 8u8; + pub const MS20: u8 = 9u8; + pub const MS40: u8 = 10u8; + pub const MS60: u8 = 11u8; + pub const MS80: u8 = 12u8; + pub const MS160: u8 = 13u8; + pub const MS320: u8 = 14u8; + pub const MS640: u8 = 15u8; + pub const MS1280: u8 = 16u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "16")] +pub struct DelayBudgetReport_r14_type2(pub u8); +impl DelayBudgetReport_r14_type2 { + pub const MS_MINUS192: u8 = 0u8; + pub const MS_MINUS168: u8 = 1u8; + pub const MS_MINUS144: u8 = 2u8; + pub const MS_MINUS120: u8 = 3u8; + pub const MS_MINUS96: u8 = 4u8; + pub const MS_MINUS72: u8 = 5u8; + pub const MS_MINUS48: u8 = 6u8; + pub const MS_MINUS24: u8 = 7u8; + pub const MS0: u8 = 8u8; + pub const MS24: u8 = 9u8; + pub const MS48: u8 = 10u8; + pub const MS72: u8 = 11u8; + pub const MS96: u8 = 12u8; + pub const MS120: u8 = 13u8; + pub const MS144: u8 = 14u8; + pub const MS168: u8 = 15u8; + pub const MS192: u8 = 16u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct DeltaFList_PUCCHDeltaF_PUCCH_Format1(pub u8); +impl DeltaFList_PUCCHDeltaF_PUCCH_Format1 { + pub const DELTA_F_2: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F2: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct DeltaFList_PUCCHDeltaF_PUCCH_Format1b(pub u8); +impl DeltaFList_PUCCHDeltaF_PUCCH_Format1b { + pub const DELTA_F1: u8 = 0u8; + pub const DELTA_F3: u8 = 1u8; + pub const DELTA_F5: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct DeltaFList_PUCCHDeltaF_PUCCH_Format2(pub u8); +impl DeltaFList_PUCCHDeltaF_PUCCH_Format2 { + pub const DELTA_F_2: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F1: u8 = 2u8; + pub const DELTA_F2: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct DeltaFList_PUCCHDeltaF_PUCCH_Format2a(pub u8); +impl DeltaFList_PUCCHDeltaF_PUCCH_Format2a { + pub const DELTA_F_2: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F2: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct DeltaFList_PUCCHDeltaF_PUCCH_Format2b(pub u8); +impl DeltaFList_PUCCHDeltaF_PUCCH_Format2b { + pub const DELTA_F_2: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F2: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct DeltaFList_SPUCCH_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1_r15 { + pub const DELTA_F_1: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F1: u8 = 2u8; + pub const DELTA_F2: u8 = 3u8; + pub const DELTA_F3: u8 = 4u8; + pub const DELTA_F4: u8 = 5u8; + pub const DELTA_F5: u8 = 6u8; + pub const DELTA_F6: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1a_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1a_r15 { + pub const DELTA_F1: u8 = 0u8; + pub const DELTA_F2: u8 = 1u8; + pub const DELTA_F3: u8 = 2u8; + pub const DELTA_F4: u8 = 3u8; + pub const DELTA_F5: u8 = 4u8; + pub const DELTA_F6: u8 = 5u8; + pub const DELTA_F7: u8 = 6u8; + pub const DELTA_F8: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1b_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format1b_r15 { + pub const DELTA_F3: u8 = 0u8; + pub const DELTA_F4: u8 = 1u8; + pub const DELTA_F5: u8 = 2u8; + pub const DELTA_F6: u8 = 3u8; + pub const DELTA_F7: u8 = 4u8; + pub const DELTA_F8: u8 = 5u8; + pub const DELTA_F9: u8 = 6u8; + pub const DELTA_F10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format3_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_Format3_r15 { + pub const DELTA_F4: u8 = 0u8; + pub const DELTA_F5: u8 = 1u8; + pub const DELTA_F6: u8 = 2u8; + pub const DELTA_F7: u8 = 3u8; + pub const DELTA_F8: u8 = 4u8; + pub const DELTA_F9: u8 = 5u8; + pub const DELTA_F10: u8 = 6u8; + pub const DELTA_F11: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_RM_Format4_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_RM_Format4_r15 { + pub const DELTA_F13: u8 = 0u8; + pub const DELTA_F14: u8 = 1u8; + pub const DELTA_F15: u8 = 2u8; + pub const DELTA_F16: u8 = 3u8; + pub const DELTA_F17: u8 = 4u8; + pub const DELTA_F18: u8 = 5u8; + pub const DELTA_F19: u8 = 6u8; + pub const DELTA_F20: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_TBCC_Format4_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_slotSPUCCH_TBCC_Format4_r15 { + pub const DELTA_F10: u8 = 0u8; + pub const DELTA_F11: u8 = 1u8; + pub const DELTA_F12: u8 = 2u8; + pub const DELTA_F13: u8 = 3u8; + pub const DELTA_F14: u8 = 4u8; + pub const DELTA_F15: u8 = 5u8; + pub const DELTA_F16: u8 = 6u8; + pub const DELTA_F17: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_Format1and1a_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_Format1and1a_r15 { + pub const DELTA_F5: u8 = 0u8; + pub const DELTA_F6: u8 = 1u8; + pub const DELTA_F7: u8 = 2u8; + pub const DELTA_F8: u8 = 3u8; + pub const DELTA_F9: u8 = 4u8; + pub const DELTA_F10: u8 = 5u8; + pub const DELTA_F11: u8 = 6u8; + pub const DELTA_F12: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_Format1b_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_Format1b_r15 { + pub const DELTA_F6: u8 = 0u8; + pub const DELTA_F7: u8 = 1u8; + pub const DELTA_F8: u8 = 2u8; + pub const DELTA_F9: u8 = 3u8; + pub const DELTA_F10: u8 = 4u8; + pub const DELTA_F11: u8 = 5u8; + pub const DELTA_F12: u8 = 6u8; + pub const DELTA_F13: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_RM_Format4_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_RM_Format4_r15 { + pub const DELTA_F15: u8 = 0u8; + pub const DELTA_F16: u8 = 1u8; + pub const DELTA_F17: u8 = 2u8; + pub const DELTA_F18: u8 = 3u8; + pub const DELTA_F19: u8 = 4u8; + pub const DELTA_F20: u8 = 5u8; + pub const DELTA_F21: u8 = 6u8; + pub const DELTA_F22: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_TBCC_Format4_r15(pub u8); +impl DeltaFList_SPUCCH_r15_setupDeltaF_subslotSPUCCH_TBCC_Format4_r15 { + pub const DELTA_F10: u8 = 0u8; + pub const DELTA_F11: u8 = 1u8; + pub const DELTA_F12: u8 = 2u8; + pub const DELTA_F13: u8 = 3u8; + pub const DELTA_F14: u8 = 4u8; + pub const DELTA_F15: u8 = 5u8; + pub const DELTA_F16: u8 = 6u8; + pub const DELTA_F17: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct DeltaFList_SPUCCH_r15_setup { + #[asn(optional_idx = 0)] + pub delta_f_slot_spucch_format1_r15: + Option, + #[asn(optional_idx = 1)] + pub delta_f_slot_spucch_format1a_r15: + Option, + #[asn(optional_idx = 2)] + pub delta_f_slot_spucch_format1b_r15: + Option, + #[asn(optional_idx = 3)] + pub delta_f_slot_spucch_format3_r15: + Option, + #[asn(optional_idx = 4)] + pub delta_f_slot_spucch_rm_format4_r15: + Option, + #[asn(optional_idx = 5)] + pub delta_f_slot_spucch_tbcc_format4_r15: + Option, + #[asn(optional_idx = 6)] + pub delta_f_subslot_spucch_format1and1a_r15: + Option, + #[asn(optional_idx = 7)] + pub delta_f_subslot_spucch_format1b_r15: + Option, + #[asn(optional_idx = 8)] + pub delta_f_subslot_spucch_rm_format4_r15: + Option, + #[asn(optional_idx = 9)] + pub delta_f_subslot_spucch_tbcc_format4_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1_r10(pub u8); +impl DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1_r10 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1a1b_r10(pub u8); +impl DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format1a1b_r10 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format22a2b_r10(pub u8); +impl DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format22a2b_r10 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format3_r10(pub u8); +impl DeltaTxD_OffsetListPUCCH_r10DeltaTxD_OffsetPUCCH_Format3_r10 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListPUCCH_v1130DeltaTxD_OffsetPUCCH_Format1bCS_r11(pub u8); +impl DeltaTxD_OffsetListPUCCH_v1130DeltaTxD_OffsetPUCCH_Format1bCS_r11 { + pub const D_B0: u8 = 0u8; + pub const D_B_1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1_r15(pub u8); +impl DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1a_r15(pub u8); +impl DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1a_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1b_r15(pub u8); +impl DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format1b_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format3_r15(pub u8); +impl DeltaTxD_OffsetListSPUCCH_r15DeltaTxD_OffsetSPUCCH_Format3_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B_2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct E_CSFB_r9MessageContCDMA2000_1XRTT_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct E_CSFB_r9MobilityCDMA2000_HRPD_r9(pub u8); +impl E_CSFB_r9MobilityCDMA2000_HRPD_r9 { + pub const HANDOVER: u8 = 0u8; + pub const REDIRECTION: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct E_CSFB_r9MessageContCDMA2000_HRPD_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct EAB_Config_r11Eab_Category_r11(pub u8); +impl EAB_Config_r11Eab_Category_r11 { + pub const A: u8 = 0u8; + pub const B: u8 = 1u8; + pub const C: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct EAB_Config_r11Eab_BarringBitmap_r11(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_ConfigIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_FreqOffset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_StartingSubframe_r15(pub u8); +impl EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_StartingSubframe_r15 { + pub const SF2: u8 = 0u8; + pub const SF4: u8 = 1u8; + pub const SF8: u8 = 2u8; + pub const SF16: u8 = 3u8; + pub const SF32: u8 = 4u8; + pub const SF64: u8 = 5u8; + pub const SF128: u8 = 6u8; + pub const SF256: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Mpdcch_NarrowbandsToMonitor_r15_Entry( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Mpdcch_NarrowbandsToMonitor_r15( + pub Vec< + EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Mpdcch_NarrowbandsToMonitor_r15_Entry, + >, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15 { + pub prach_config_index_r15: + EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_ConfigIndex_r15, + pub prach_freq_offset_r15: + EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Prach_FreqOffset_r15, + #[asn(optional_idx = 0)] + pub prach_starting_subframe_r15: + Option, + pub mpdcch_narrowbands_to_monitor_r15: + EDT_PRACH_ParametersCE_r15Edt_PRACH_ParametersCE_r15Mpdcch_NarrowbandsToMonitor_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EIMTA_MainConfig_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct EIMTA_MainConfig_r12_setupEimta_CommandPeriodicity_r12(pub u8); +impl EIMTA_MainConfig_r12_setupEimta_CommandPeriodicity_r12 { + pub const SF10: u8 = 0u8; + pub const SF20: u8 = 1u8; + pub const SF40: u8 = 2u8; + pub const SF80: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct EIMTA_MainConfig_r12_setupEimta_CommandSubframeSet_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EIMTA_MainConfig_r12_setup { + pub eimta_rnti_r12: C_RNTI, + pub eimta_command_periodicity_r12: EIMTA_MainConfig_r12_setupEimta_CommandPeriodicity_r12, + pub eimta_command_subframe_set_r12: EIMTA_MainConfig_r12_setupEimta_CommandSubframeSet_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EIMTA_MainConfigServCell_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "5")] +pub struct EIMTA_MainConfigServCell_r12_setupEimta_UL_DL_ConfigIndex_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct EIMTA_MainConfigServCell_r12_setupEimta_HARQ_ReferenceConfig_r12(pub u8); +impl EIMTA_MainConfigServCell_r12_setupEimta_HARQ_ReferenceConfig_r12 { + pub const SA2: u8 = 0u8; + pub const SA4: u8 = 1u8; + pub const SA5: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250_setup { + pub subframe_config_list_r12: MBSFN_SubframeConfigList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250 { + #[asn(key = 0, extended = false)] + Release(EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250_release), + #[asn(key = 1, extended = false)] + Setup(EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EIMTA_MainConfigServCell_r12_setup { + pub eimta_ul_dl_config_index_r12: EIMTA_MainConfigServCell_r12_setupEimta_UL_DL_ConfigIndex_r12, + pub eimta_harq_reference_config_r12: + EIMTA_MainConfigServCell_r12_setupEimta_HARQ_ReferenceConfig_r12, + pub mbsfn_subframe_config_list_v1250: + EIMTA_MainConfigServCell_r12_setupMbsfn_SubframeConfigList_v1250, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EPDCCH_Config_r11Config_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EPDCCH_Config_r11Config_r11_setupSubframePatternConfig_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EPDCCH_Config_r11Config_r11_setupSubframePatternConfig_r11_setup { + pub subframe_pattern_r11: MeasSubframePattern_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum EPDCCH_Config_r11Config_r11_setupSubframePatternConfig_r11 { + #[asn(key = 0, extended = false)] + Release(EPDCCH_Config_r11Config_r11_setupSubframePatternConfig_r11_release), + #[asn(key = 1, extended = false)] + Setup(EPDCCH_Config_r11Config_r11_setupSubframePatternConfig_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct EPDCCH_Config_r11Config_r11_setupStartSymbol_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct EPDCCH_Config_r11Config_r11_setup { + #[asn(optional_idx = 0)] + pub subframe_pattern_config_r11: + Option, + #[asn(optional_idx = 1)] + pub start_symbol_r11: Option, + #[asn(optional_idx = 2)] + pub set_config_to_release_list_r11: Option, + #[asn(optional_idx = 3)] + pub set_config_to_add_mod_list_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum EPDCCH_Config_r11Config_r11 { + #[asn(key = 0, extended = false)] + Release(EPDCCH_Config_r11Config_r11_release), + #[asn(key = 1, extended = false)] + Setup(EPDCCH_Config_r11Config_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct EPDCCH_SetConfig_r11TransmissionType_r11(pub u8); +impl EPDCCH_SetConfig_r11TransmissionType_r11 { + pub const LOCALISED: u8 = 0u8; + pub const DISTRIBUTED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct EPDCCH_SetConfig_r11ResourceBlockAssignment_r11NumberPRB_Pairs_r11(pub u8); +impl EPDCCH_SetConfig_r11ResourceBlockAssignment_r11NumberPRB_Pairs_r11 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N8: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "38")] +pub struct EPDCCH_SetConfig_r11ResourceBlockAssignment_r11ResourceBlockAssignment_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EPDCCH_SetConfig_r11ResourceBlockAssignment_r11 { + pub number_prb_pairs_r11: EPDCCH_SetConfig_r11ResourceBlockAssignment_r11NumberPRB_Pairs_r11, + pub resource_block_assignment_r11: + EPDCCH_SetConfig_r11ResourceBlockAssignment_r11ResourceBlockAssignment_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct EPDCCH_SetConfig_r11Dmrs_ScramblingSequenceInt_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct EPDCCH_SetConfig_r11Pucch_ResourceStartOffset_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15Eutra_5GC_r15(pub u8); +impl EUTRA_5GC_Parameters_r15Eutra_5GC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15Eutra_EPC_HO_EUTRA_5GC_r15(pub u8); +impl EUTRA_5GC_Parameters_r15Eutra_EPC_HO_EUTRA_5GC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15Ho_EUTRA_5GC_FDD_TDD_r15(pub u8); +impl EUTRA_5GC_Parameters_r15Ho_EUTRA_5GC_FDD_TDD_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15Ho_InterfreqEUTRA_5GC_r15(pub u8); +impl EUTRA_5GC_Parameters_r15Ho_InterfreqEUTRA_5GC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15Ims_VoiceOverMCG_BearerEUTRA_5GC_r15(pub u8); +impl EUTRA_5GC_Parameters_r15Ims_VoiceOverMCG_BearerEUTRA_5GC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15InactiveState_r15(pub u8); +impl EUTRA_5GC_Parameters_r15InactiveState_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_r15ReflectiveQoS_r15(pub u8); +impl EUTRA_5GC_Parameters_r15ReflectiveQoS_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_v1610Ce_InactiveState_r16(pub u8); +impl EUTRA_5GC_Parameters_v1610Ce_InactiveState_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EUTRA_5GC_Parameters_v1610Ce_EUTRA_5GC_r16(pub u8); +impl EUTRA_5GC_Parameters_v1610Ce_EUTRA_5GC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct Enable256QAM_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet1_DCI_Format0_r14( + pub bool, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet1_DCI_Format4_r14( + pub bool, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet2_DCI_Format0_r14( + pub bool, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet2_DCI_Format4_r14( + pub bool, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14 { + pub subframe_set1_dci_format0_r14: + Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet1_DCI_Format0_r14, + pub subframe_set1_dci_format4_r14: + Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet1_DCI_Format4_r14, + pub subframe_set2_dci_format0_r14: + Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet2_DCI_Format0_r14, + pub subframe_set2_dci_format4_r14: + Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14SubframeSet2_DCI_Format4_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14Dci_Format0_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14Dci_Format4_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14 { + pub dci_format0_r14: Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14Dci_Format0_r14, + pub dci_format4_r14: Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14Dci_Format4_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum Enable256QAM_r14_setup { + #[asn(key = 0, extended = false)] + Tpc_SubframeSet_Configured_r14(Enable256QAM_r14_setup_tpc_SubframeSet_Configured_r14), + #[asn(key = 1, extended = false)] + Tpc_SubframeSet_NotConfigured_r14(Enable256QAM_r14_setup_tpc_SubframeSet_NotConfigured_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "8589934591")] +pub struct EphemerisOrbitalParameters_r17SemiMajorAxis_r17(pub u64); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1048575")] +pub struct EphemerisOrbitalParameters_r17Eccentricity_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "268435455")] +pub struct EphemerisOrbitalParameters_r17Periapsis_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "268435455")] +pub struct EphemerisOrbitalParameters_r17Longitude_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-67108864", ub = "67108863")] +pub struct EphemerisOrbitalParameters_r17Inclination_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "268435455")] +pub struct EphemerisOrbitalParameters_r17Anomaly_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct EthernetHeaderCompression_r16Ehc_Common_r16Ehc_CID_Length_r16(pub u8); +impl EthernetHeaderCompression_r16Ehc_Common_r16Ehc_CID_Length_r16 { + pub const BITS7: u8 = 0u8; + pub const BITS15: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EthernetHeaderCompression_r16Ehc_Common_r16 { + pub ehc_cid_length_r16: EthernetHeaderCompression_r16Ehc_Common_r16Ehc_CID_Length_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EthernetHeaderCompression_r16Ehc_Downlink_r16Drb_ContinueEHC_DL_r16(pub u8); +impl EthernetHeaderCompression_r16Ehc_Downlink_r16Drb_ContinueEHC_DL_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct EthernetHeaderCompression_r16Ehc_Downlink_r16 { + #[asn(optional_idx = 0)] + pub drb_continue_ehc_dl_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32767")] +pub struct EthernetHeaderCompression_r16Ehc_Uplink_r16MaxCID_EHC_UL_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct EthernetHeaderCompression_r16Ehc_Uplink_r16Drb_ContinueEHC_UL_r16(pub u8); +impl EthernetHeaderCompression_r16Ehc_Uplink_r16Drb_ContinueEHC_UL_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct EthernetHeaderCompression_r16Ehc_Uplink_r16 { + pub max_cid_ehc_ul_r16: EthernetHeaderCompression_r16Ehc_Uplink_r16MaxCID_EHC_UL_r16, + #[asn(optional_idx = 0)] + pub drb_continue_ehc_ul_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct EventType_r17_outOfCoverage; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct EventType_r17_eventL1 { + pub l1_threshold_r17: ThresholdEUTRA, + pub hysteresis_r17: Hysteresis, + pub time_to_trigger_r17: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct ExcludedCellsToAddModCellIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct FailedLogicalChannelIdentity_r16CellGroupIndication_r16(pub u8); +impl FailedLogicalChannelIdentity_r16CellGroupIndication_r16 { + pub const MN: u8 = 0u8; + pub const SN: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "10")] +pub struct FailedLogicalChannelIdentity_r16LogicalChannelIdentity_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "32", ub = "38")] +pub struct FailedLogicalChannelIdentity_r16LogicalChannelIdentityExt_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15CellGroupIndication_r15( + pub u8, +); +impl FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15CellGroupIndication_r15 { + pub const MN: u8 = 0u8; + pub const SN: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "10")] +pub struct FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15LogicalChannelIdentity_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "32", ub = "38")] +pub struct FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15LogicalChannelIdentityExt_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15 { + pub cell_group_indication_r15: + FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15CellGroupIndication_r15, + #[asn(optional_idx = 0)] + pub logical_channel_identity_r15: Option< + FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15LogicalChannelIdentity_r15, + >, + #[asn(optional_idx = 1)] + pub logical_channel_identity_ext_r15: Option< + FailedLogicalChannelInfo_r15FailedLogicalChannelIdentity_r15LogicalChannelIdentityExt_r15, + >, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FailedLogicalChannelInfo_r15FailureType(pub u8); +impl FailedLogicalChannelInfo_r15FailureType { + pub const DUPLICATION: u8 = 0u8; + pub const SPARE3: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FailureInformation_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum FailureInformation_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + FailureInformation_r16(FailureInformation_r16_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(FailureInformation_r16CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FailureInformation_r16_IEsFailureType_r16(pub u8); +impl FailureInformation_r16_IEsFailureType_r16 { + pub const DUPLICATION: u8 = 0u8; + pub const DAPS_HO_FAILURE: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FailureInformation_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct FailureReportMCG_r16FailureType_r16(pub u8); +impl FailureReportMCG_r16FailureType_r16 { + pub const T310_EXPIRY: u8 = 0u8; + pub const RANDOM_ACCESS_PROBLEM: u8 = 1u8; + pub const RLC_MAX_NUM_RETX: u8 = 2u8; + pub const T312_EXPIRY: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct FailureReportMCG_r16MeasResultSCG_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct FailureReportSCG_NR_r15FailureType_r15(pub u8); +impl FailureReportSCG_NR_r15FailureType_r15 { + pub const T310_EXPIRY: u8 = 0u8; + pub const RANDOM_ACCESS_PROBLEM: u8 = 1u8; + pub const RLC_MAX_NUM_RETX: u8 = 2u8; + pub const SYNCH_RECONFIG_FAILURE_SCG: u8 = 3u8; + pub const SCG_RECONFIG_FAILURE: u8 = 4u8; + pub const SRB3_INTEGRITY_FAILURE: u8 = 5u8; + pub const DUMMY: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct FailureReportSCG_NR_r15MeasResultSCG_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FailureReportSCG_r12FailureType_r12(pub u8); +impl FailureReportSCG_r12FailureType_r12 { + pub const T313_EXPIRY: u8 = 0u8; + pub const RANDOM_ACCESS_PROBLEM: u8 = 1u8; + pub const RLC_MAX_NUM_RETX: u8 = 2u8; + pub const SCG_CHANGE_FAILURE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FeMBMS_Unicast_Parameters_r14Unicast_fembmsMixedSCell_r14(pub u8); +impl FeMBMS_Unicast_Parameters_r14Unicast_fembmsMixedSCell_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FeMBMS_Unicast_Parameters_r14EmptyUnicastRegion_r14(pub u8); +impl FeMBMS_Unicast_Parameters_r14EmptyUnicastRegion_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FeatureSetDL_PerCC_r15FourLayerTM3_TM4_r15(pub u8); +impl FeatureSetDL_PerCC_r15FourLayerTM3_TM4_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct FeatureSetDL_PerCC_r15SupportedCSI_Proc_r15(pub u8); +impl FeatureSetDL_PerCC_r15SupportedCSI_Proc_r15 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct FeatureSetDL_r15FeatureSetPerCC_ListDL_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FeatureSetDL_v1550Dl_1024QAM_r15(pub u8); +impl FeatureSetDL_v1550Dl_1024QAM_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FeatureSetUL_PerCC_r15Ul_256QAM_r15(pub u8); +impl FeatureSetUL_PerCC_r15Ul_256QAM_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct FeatureSetUL_r15FeatureSetPerCC_ListUL_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct FeatureSetsEUTRA_r15FeatureSetsDL_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct FeatureSetsEUTRA_r15FeatureSetsDL_PerCC_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "256" +)] +pub struct FeatureSetsEUTRA_r15FeatureSetsUL_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct FeatureSetsEUTRA_r15FeatureSetsUL_PerCC_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "20")] +pub struct FlightPathInfoReport_r15FlightPath_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct FlightPathInfoReport_r15Dummy {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "20")] +pub struct FlightPathInfoReportConfig_r15MaxWayPointNumber_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct FlightPathInfoReportConfig_r15IncludeTimeStamp_r15(pub u8); +impl FlightPathInfoReportConfig_r15IncludeTimeStamp_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "109")] +pub struct Format4_resource_r13StartingPRB_format4_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct Format4_resource_r13NumberOfPRB_format4_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "109")] +pub struct Format5_resource_r13StartingPRB_format5_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1")] +pub struct Format5_resource_r13Cdm_index_format5_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct FreqHoppingParameters_r13Dummy(pub u8); +impl FreqHoppingParameters_r13Dummy { + pub const NB2: u8 = 0u8; + pub const NB4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Dummy2_interval_FDD_r13(pub u8); +impl FreqHoppingParameters_r13Dummy2_interval_FDD_r13 { + pub const INT1: u8 = 0u8; + pub const INT2: u8 = 1u8; + pub const INT4: u8 = 2u8; + pub const INT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Dummy2_interval_TDD_r13(pub u8); +impl FreqHoppingParameters_r13Dummy2_interval_TDD_r13 { + pub const INT1: u8 = 0u8; + pub const INT5: u8 = 1u8; + pub const INT10: u8 = 2u8; + pub const INT20: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum FreqHoppingParameters_r13Dummy2 { + #[asn(key = 0, extended = false)] + Interval_FDD_r13(FreqHoppingParameters_r13Dummy2_interval_FDD_r13), + #[asn(key = 1, extended = false)] + Interval_TDD_r13(FreqHoppingParameters_r13Dummy2_interval_TDD_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Dummy3_interval_FDD_r13(pub u8); +impl FreqHoppingParameters_r13Dummy3_interval_FDD_r13 { + pub const INT2: u8 = 0u8; + pub const INT4: u8 = 1u8; + pub const INT8: u8 = 2u8; + pub const INT16: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Dummy3_interval_TDD_r13(pub u8); +impl FreqHoppingParameters_r13Dummy3_interval_TDD_r13 { + pub const INT5: u8 = 0u8; + pub const INT10: u8 = 1u8; + pub const INT20: u8 = 2u8; + pub const INT40: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum FreqHoppingParameters_r13Dummy3 { + #[asn(key = 0, extended = false)] + Interval_FDD_r13(FreqHoppingParameters_r13Dummy3_interval_FDD_r13), + #[asn(key = 1, extended = false)] + Interval_TDD_r13(FreqHoppingParameters_r13Dummy3_interval_TDD_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_FDD_r13( + pub u8, +); +impl FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_FDD_r13 { + pub const INT1: u8 = 0u8; + pub const INT2: u8 = 1u8; + pub const INT4: u8 = 2u8; + pub const INT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_TDD_r13( + pub u8, +); +impl FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_TDD_r13 { + pub const INT1: u8 = 0u8; + pub const INT5: u8 = 1u8; + pub const INT10: u8 = 2u8; + pub const INT20: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13 { + #[asn(key = 0, extended = false)] + Interval_FDD_r13( + FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_FDD_r13, + ), + #[asn(key = 1, extended = false)] + Interval_TDD_r13( + FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeA_r13_interval_TDD_r13, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_FDD_r13( + pub u8, +); +impl FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_FDD_r13 { + pub const INT2: u8 = 0u8; + pub const INT4: u8 = 1u8; + pub const INT8: u8 = 2u8; + pub const INT16: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_TDD_r13( + pub u8, +); +impl FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_TDD_r13 { + pub const INT5: u8 = 0u8; + pub const INT10: u8 = 1u8; + pub const INT20: u8 = 2u8; + pub const INT40: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13 { + #[asn(key = 0, extended = false)] + Interval_FDD_r13( + FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_FDD_r13, + ), + #[asn(key = 1, extended = false)] + Interval_TDD_r13( + FreqHoppingParameters_r13Interval_ULHoppingConfigCommonModeB_r13_interval_TDD_r13, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct FreqHoppingParameters_r13Dummy4(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "5")] +pub struct GNSS_ID_r15Gnss_id_r15(pub u8); +impl GNSS_ID_r15Gnss_id_r15 { + pub const GPS: u8 = 0u8; + pub const SBAS: u8 = 1u8; + pub const QZSS: u8 = 2u8; + pub const GALILEO: u8 = 3u8; + pub const GLONASS: u8 = 4u8; + pub const BDS: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct GWUS_Config_r16GroupAlternation_r16(pub u8); +impl GWUS_Config_r16GroupAlternation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct GWUS_Config_r16CommonSequence_r16(pub u8); +impl GWUS_Config_r16CommonSequence_r16 { + pub const G0: u8 = 0u8; + pub const G126: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct GWUS_GroupNarrowBandList_r16_Entry(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "31")] +pub struct GWUS_GroupsForServiceList_r16_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithWUS(pub u8); +impl GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithWUS { + pub const PRIMARY: u8 = 0u8; + pub const SECONDARY: u8 = 1u8; + pub const PRIMARY3_FDM: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithoutWUS(pub u8); +impl GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithoutWUS { + pub const N0: u8 = 0u8; + pub const N2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum GWUS_ResourceConfig_r16ResourceMappingPattern_r16 { + #[asn(key = 0, extended = false)] + ResourceLocationWithWUS( + GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithWUS, + ), + #[asn(key = 1, extended = false)] + ResourceLocationWithoutWUS( + GWUS_ResourceConfig_r16ResourceMappingPattern_r16_resourceLocationWithoutWUS, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16MaxDurationFactor_r16(pub u8); +impl GWUS_TimeParameters_r16MaxDurationFactor_r16 { + pub const ONE32TH: u8 = 0u8; + pub const ONE16TH: u8 = 1u8; + pub const ONE8TH: u8 = 2u8; + pub const ONE4TH: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16NumPOs_r16(pub u8); +impl GWUS_TimeParameters_r16NumPOs_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16TimeOffsetDRX_r16(pub u8); +impl GWUS_TimeParameters_r16TimeOffsetDRX_r16 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16TimeOffset_eDRX_Short_r16(pub u8); +impl GWUS_TimeParameters_r16TimeOffset_eDRX_Short_r16 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct GWUS_TimeParameters_r16TimeOffset_eDRX_Long_r16(pub u8); +impl GWUS_TimeParameters_r16TimeOffset_eDRX_Long_r16 { + pub const MS1000: u8 = 0u8; + pub const MS2000: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16NumDRX_CyclesRelaxed_r16(pub u8); +impl GWUS_TimeParameters_r16NumDRX_CyclesRelaxed_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct GWUS_TimeParameters_r16PowerBoost_r16(pub u8); +impl GWUS_TimeParameters_r16PowerBoost_r16 { + pub const D_B0: u8 = 0u8; + pub const D_B1DOT8: u8 = 1u8; + pub const D_B3: u8 = 2u8; + pub const D_B4DOT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct HandoverTargetRAT_Type(pub u8); +impl HandoverTargetRAT_Type { + pub const UTRA: u8 = 0u8; + pub const GERAN: u8 = 1u8; + pub const CDMA2000_1XRTT: u8 = 2u8; + pub const CDMA2000_HRPD: u8 = 3u8; + pub const NR: u8 = 4u8; + pub const EUTRA: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverTargetRAT_MessageContainer(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct HandoverNas_SecurityParamFromEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverCommandCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum HandoverCommandCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + HandoverCommand_r8(HandoverCommand_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(HandoverCommandCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(HandoverCommandCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(HandoverCommandCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(HandoverCommandCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(HandoverCommandCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(HandoverCommandCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(HandoverCommandCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverCommandCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum HandoverCommandCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(HandoverCommandCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(HandoverCommandCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverCommand_r8_IEsHandoverCommandMessage(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverCommand_r8_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum HandoverFromEUTRAPreparationRequestCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + HandoverFromEUTRAPreparationRequest_r8(HandoverFromEUTRAPreparationRequest_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(HandoverFromEUTRAPreparationRequestCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverFromEUTRAPreparationRequestCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum HandoverFromEUTRAPreparationRequestCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(HandoverFromEUTRAPreparationRequestCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + HandoverFromEUTRAPreparationRequestCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HandoverFromEUTRAPreparationRequest_v1020_IEsDualRxTxRedirectIndicator_r10(pub u8); +impl HandoverFromEUTRAPreparationRequest_v1020_IEsDualRxTxRedirectIndicator_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverFromEUTRAPreparationRequest_v1020_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverFromEUTRAPreparationRequest_v890_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct HandoverFromEUTRAPreparationRequest_v920_IEsConcurrPrepCDMA2000_HRPD_r9(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct HandoverPreparationInformationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum HandoverPreparationInformationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + HandoverPreparationInformation_r8(HandoverPreparationInformation_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(HandoverPreparationInformationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(HandoverPreparationInformationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(HandoverPreparationInformationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(HandoverPreparationInformationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(HandoverPreparationInformationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(HandoverPreparationInformationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(HandoverPreparationInformationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverPreparationInformationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum HandoverPreparationInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(HandoverPreparationInformationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + HandoverPreparationInformationCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverPreparationInformation_v10x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverPreparationInformation_v13c0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HandoverPreparationInformation_v1430_IEsMakeBeforeBreakReq_r14(pub u8); +impl HandoverPreparationInformation_v1430_IEsMakeBeforeBreakReq_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverPreparationInformation_v1540_IEsSourceRB_ConfigIntra5GC_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct HandoverPreparationInformation_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct HandoverPreparationInformation_v920_IEsUe_ConfigRelease_r9(pub u8); +impl HandoverPreparationInformation_v920_IEsUe_ConfigRelease_r9 { + pub const REL9: u8 = 0u8; + pub const REL10: u8 = 1u8; + pub const REL11: u8 = 2u8; + pub const REL12: u8 = 3u8; + pub const V10J0: u8 = 4u8; + pub const V11E0: u8 = 5u8; + pub const V1280: u8 = 6u8; + pub const REL13: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverPreparationInformation_v9d0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct HandoverPreparationInformation_v9j0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfig_r14HighSpeedEnhancedMeasFlag_r14(pub u8); +impl HighSpeedConfig_r14HighSpeedEnhancedMeasFlag_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfig_r14HighSpeedEnhancedDemodulationFlag_r14(pub u8); +impl HighSpeedConfig_r14HighSpeedEnhancedDemodulationFlag_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfig_v1530HighSpeedMeasGapCE_ModeA_r15(pub u8); +impl HighSpeedConfig_v1530HighSpeedMeasGapCE_ModeA_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfig_v1610HighSpeedEnhMeasFlag2_r16(pub u8); +impl HighSpeedConfig_v1610HighSpeedEnhMeasFlag2_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfig_v1610HighSpeedEnhDemodFlag2_r16(pub u8); +impl HighSpeedConfig_v1610HighSpeedEnhDemodFlag2_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedConfigSCell_r14HighSpeedEnhancedDemodulationFlag_r14(pub u8); +impl HighSpeedConfigSCell_r14HighSpeedEnhancedDemodulationFlag_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_r14MeasurementEnhancements_r14(pub u8); +impl HighSpeedEnhParameters_r14MeasurementEnhancements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_r14DemodulationEnhancements_r14(pub u8); +impl HighSpeedEnhParameters_r14DemodulationEnhancements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_r14Prach_Enhancements_r14(pub u8); +impl HighSpeedEnhParameters_r14Prach_Enhancements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_v1610MeasurementEnhancementsSCell_r16(pub u8); +impl HighSpeedEnhParameters_v1610MeasurementEnhancementsSCell_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_v1610MeasurementEnhancements2_r16(pub u8); +impl HighSpeedEnhParameters_v1610MeasurementEnhancements2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_v1610DemodulationEnhancements2_r16(pub u8); +impl HighSpeedEnhParameters_v1610DemodulationEnhancements2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct HighSpeedEnhParameters_v1610InterRAT_enhancementNR_r16(pub u8); +impl HighSpeedEnhParameters_v1610InterRAT_enhancementNR_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IDC_Config_r11Idc_Indication_r11(pub u8); +impl IDC_Config_r11Idc_Indication_r11 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialSubframes_r11(pub u8); +impl IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialSubframes_r11 { + pub const N2: u8 = 0u8; + pub const N5: u8 = 1u8; + pub const N10: u8 = 2u8; + pub const N15: u8 = 3u8; + pub const N20: u8 = 4u8; + pub const N30: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialValidity_r11(pub u8); +impl IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialValidity_r11 { + pub const SF200: u8 = 0u8; + pub const SF500: u8 = 1u8; + pub const SF1000: u8 = 2u8; + pub const SF2000: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct IDC_Config_r11AutonomousDenialParameters_r11 { + pub autonomous_denial_subframes_r11: + IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialSubframes_r11, + pub autonomous_denial_validity_r11: + IDC_Config_r11AutonomousDenialParameters_r11AutonomousDenialValidity_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct IDC_SubframePattern_r11_subframePatternFDD_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "70", sz_ub = "70")] +pub struct IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig0_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig1_5_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "60", sz_ub = "60")] +pub struct IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig6_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum IDC_SubframePattern_r11_subframePatternTDD_r11 { + #[asn(key = 0, extended = false)] + SubframeConfig0_r11(IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig0_r11), + #[asn(key = 1, extended = false)] + SubframeConfig1_5_r11(IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig1_5_r11), + #[asn(key = 2, extended = false)] + SubframeConfig6_r11(IDC_SubframePattern_r11_subframePatternTDD_r11_subframeConfig6_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct IKE_Identity_r13IdI_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct IP_Address_r13_ipv4_r13(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "128", + sz_ub = "128" +)] +pub struct IP_Address_r13_ipv6_r13(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct IRAT_ParametersCDMA2000_1XRTTTx_Config1XRTT(pub u8); +impl IRAT_ParametersCDMA2000_1XRTTTx_Config1XRTT { + pub const SINGLE: u8 = 0u8; + pub const DUAL: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct IRAT_ParametersCDMA2000_1XRTTRx_Config1XRTT(pub u8); +impl IRAT_ParametersCDMA2000_1XRTTRx_Config1XRTT { + pub const SINGLE: u8 = 0u8; + pub const DUAL: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersCDMA2000_1XRTT_v1020E_CSFB_dual_1XRTT_r10(pub u8); +impl IRAT_ParametersCDMA2000_1XRTT_v1020E_CSFB_dual_1XRTT_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersCDMA2000_1XRTT_v920E_CSFB_1XRTT_r9(pub u8); +impl IRAT_ParametersCDMA2000_1XRTT_v920E_CSFB_1XRTT_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersCDMA2000_1XRTT_v920E_CSFB_ConcPS_Mob1XRTT_r9(pub u8); +impl IRAT_ParametersCDMA2000_1XRTT_v920E_CSFB_ConcPS_Mob1XRTT_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct IRAT_ParametersCDMA2000_HRPDTx_ConfigHRPD(pub u8); +impl IRAT_ParametersCDMA2000_HRPDTx_ConfigHRPD { + pub const SINGLE: u8 = 0u8; + pub const DUAL: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct IRAT_ParametersCDMA2000_HRPDRx_ConfigHRPD(pub u8); +impl IRAT_ParametersCDMA2000_HRPDRx_ConfigHRPD { + pub const SINGLE: u8 = 0u8; + pub const DUAL: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersCDMA2000_v1130Cdma2000_NW_Sharing_r11(pub u8); +impl IRAT_ParametersCDMA2000_v1130Cdma2000_NW_Sharing_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct IRAT_ParametersGERANInterRAT_PS_HO_ToGERAN(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersGERAN_v920Dtm_r9(pub u8); +impl IRAT_ParametersGERAN_v920Dtm_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersGERAN_v920E_RedirectionGERAN_r9(pub u8); +impl IRAT_ParametersGERAN_v920E_RedirectionGERAN_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_r15En_DC_r15(pub u8); +impl IRAT_ParametersNR_r15En_DC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_r15EventB2_r15(pub u8); +impl IRAT_ParametersNR_r15EventB2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_FDD_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_FDD_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_TDD_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_TDD_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_FDD_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_FDD_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_TDD_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_5GC_HO_ToNR_TDD_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_FDD_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_FDD_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_TDD_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_TDD_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_FDD_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_FDD_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_TDD_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1540Eutra_EPC_HO_ToNR_TDD_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Ims_VoiceOverNR_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1540Ims_VoiceOverNR_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Ims_VoiceOverNR_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1540Ims_VoiceOverNR_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1540Sa_NR_r15(pub u8); +impl IRAT_ParametersNR_v1540Sa_NR_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1560Ng_EN_DC_r15(pub u8); +impl IRAT_ParametersNR_v1560Ng_EN_DC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1570Ss_SINR_Meas_NR_FR1_r15(pub u8); +impl IRAT_ParametersNR_v1570Ss_SINR_Meas_NR_FR1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1570Ss_SINR_Meas_NR_FR2_r15(pub u8); +impl IRAT_ParametersNR_v1570Ss_SINR_Meas_NR_FR2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1610Nr_HO_ToEN_DC_r16(pub u8); +impl IRAT_ParametersNR_v1610Nr_HO_ToEN_DC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_FDD_FR1_r16(pub u8); +impl IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_FDD_FR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_TDD_FR1_r16(pub u8); +impl IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_TDD_FR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_FDD_FR2_r16(pub u8); +impl IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_FDD_FR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_TDD_FR2_r16(pub u8); +impl IRAT_ParametersNR_v1610Ce_EUTRA_5GC_HO_ToNR_TDD_FR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1660ExtendedBand_n77_r16(pub u8); +impl IRAT_ParametersNR_v1660ExtendedBand_n77_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1700Eutra_5GC_HO_ToNR_TDD_FR2_2_r17(pub u8); +impl IRAT_ParametersNR_v1700Eutra_5GC_HO_ToNR_TDD_FR2_2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1700Eutra_EPC_HO_ToNR_TDD_FR2_2_r17(pub u8); +impl IRAT_ParametersNR_v1700Eutra_EPC_HO_ToNR_TDD_FR2_2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1700Ce_EUTRA_5GC_HO_ToNR_TDD_FR2_2_r17(pub u8); +impl IRAT_ParametersNR_v1700Ce_EUTRA_5GC_HO_ToNR_TDD_FR2_2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1700Ims_VoiceOverNR_FR2_2_r17(pub u8); +impl IRAT_ParametersNR_v1700Ims_VoiceOverNR_FR2_2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersNR_v1710ExtendedBand_n77_2_r17(pub u8); +impl IRAT_ParametersNR_v1710ExtendedBand_n77_2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_TDD_v1020E_RedirectionUTRA_TDD_r10(pub u8); +impl IRAT_ParametersUTRA_TDD_v1020E_RedirectionUTRA_TDD_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v920E_RedirectionUTRA_r9(pub u8); +impl IRAT_ParametersUTRA_v920E_RedirectionUTRA_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0VoiceOverPS_HS_UTRA_FDD_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0VoiceOverPS_HS_UTRA_FDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0VoiceOverPS_HS_UTRA_TDD128_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0VoiceOverPS_HS_UTRA_TDD128_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_FDD_ToUTRA_FDD_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_FDD_ToUTRA_FDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_FDD_ToGERAN_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_FDD_ToGERAN_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_TDD128_ToUTRA_TDD128_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_TDD128_ToUTRA_TDD128_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_TDD128_ToGERAN_r9(pub u8); +impl IRAT_ParametersUTRA_v9c0Srvcc_FromUTRA_TDD128_ToGERAN_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IRAT_ParametersUTRA_v9h0Mfbi_UTRA_r9(pub u8); +impl IRAT_ParametersUTRA_v9h0Mfbi_UTRA_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct IRAT_ParametersWLAN_r13SupportedBandListWLAN_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct IdleModeMobilityControlInfoT320(pub u8); +impl IdleModeMobilityControlInfoT320 { + pub const MIN5: u8 = 0u8; + pub const MIN10: u8 = 1u8; + pub const MIN20: u8 = 2u8; + pub const MIN30: u8 = 3u8; + pub const MIN60: u8 = 4u8; + pub const MIN120: u8 = 5u8; + pub const MIN180: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct IdleModeMobilityControlInfo_v9e0FreqPriorityListEUTRA_v9e0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InDeviceCoexIndication_r11CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InDeviceCoexIndication_r11CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InDeviceCoexIndication_r11CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum InDeviceCoexIndication_r11CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + InDeviceCoexIndication_r11(InDeviceCoexIndication_r11_IEs), + #[asn(key = 1, extended = false)] + Spare3(InDeviceCoexIndication_r11CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(InDeviceCoexIndication_r11CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(InDeviceCoexIndication_r11CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InDeviceCoexIndication_r11CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum InDeviceCoexIndication_r11CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(InDeviceCoexIndication_r11CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(InDeviceCoexIndication_r11CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct InDeviceCoexIndication_r11_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct InDeviceCoexIndication_v11d0_IEsUl_CA_AssistanceInfo_r11 { + #[asn(optional_idx = 0)] + pub affected_carrier_freq_comb_list_r11: Option, + pub victim_system_type_r11: VictimSystemType_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct InDeviceCoexIndication_v1360_IEsHardwareSharingProblem_r13(pub u8); +impl InDeviceCoexIndication_v1360_IEsHardwareSharingProblem_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InDeviceCoexIndication_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct InitialUE_Identity_randomValue(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct InitialUE_Identity_5GC_r15_ng_5G_S_TMSI_Part1( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct InitialUE_Identity_5GC_r15_randomValue(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct InterFreqBandInfoInterFreqNeedForGaps(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqCarrierFreqInfo_r12ThreshX_Q_r12 { + pub thresh_x_high_q_r12: ReselectionThresholdQ_r9, + pub thresh_x_low_q_r12: ReselectionThresholdQ_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct InterFreqCarrierFreqInfo_r12ReducedMeasPerformance_r12(pub u8); +impl InterFreqCarrierFreqInfo_r12ReducedMeasPerformance_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct InterFreqCarrierFreqInfo_v1250ReducedMeasPerformance_r12(pub u8); +impl InterFreqCarrierFreqInfo_v1250ReducedMeasPerformance_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct InterFreqCarrierFreqInfo_v1530Hsdn_Indication_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + InterFreqRSTDMeasurementIndication_r10(InterFreqRSTDMeasurementIndication_r10_IEs), + #[asn(key = 1, extended = false)] + Spare3(InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqRSTDMeasurementIndication_r10CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum InterFreqRSTDMeasurementIndication_r10CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(InterFreqRSTDMeasurementIndication_r10CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + InterFreqRSTDMeasurementIndication_r10CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10_start { + pub rstd_inter_freq_info_list_r10: RSTD_InterFreqInfoList_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10_stop; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10 { + #[asn(key = 0, extended = false)] + Start(InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10_start), + #[asn(key = 1, extended = false)] + Stop(InterFreqRSTDMeasurementIndication_r10_IEsRstd_InterFreqIndication_r10_stop), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct InterFreqRSTDMeasurementIndication_r10_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct InterFreqRSTDMeasurementIndication_r10_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct InterRAT_BandInfoInterRAT_NeedForGaps(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct InterRAT_BandInfoNR_r16InterRAT_NeedForGapsNR_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct IntraBandContiguousCC_Info_r12FourLayerTM3_TM4_perCC_r12(pub u8); +impl IntraBandContiguousCC_Info_r12FourLayerTM3_TM4_perCC_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct IntraBandContiguousCC_Info_r12SupportedCSI_Proc_r12(pub u8); +impl IntraBandContiguousCC_Info_r12SupportedCSI_Proc_r12 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13CrossCarrierSchedulingLAA_DL_r13(pub u8); +impl LAA_Parameters_r13CrossCarrierSchedulingLAA_DL_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13Csi_RS_DRS_RRM_MeasurementsLAA_r13(pub u8); +impl LAA_Parameters_r13Csi_RS_DRS_RRM_MeasurementsLAA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13DownlinkLAA_r13(pub u8); +impl LAA_Parameters_r13DownlinkLAA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13EndingDwPTS_r13(pub u8); +impl LAA_Parameters_r13EndingDwPTS_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13SecondSlotStartingPosition_r13(pub u8); +impl LAA_Parameters_r13SecondSlotStartingPosition_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13Tm9_LAA_r13(pub u8); +impl LAA_Parameters_r13Tm9_LAA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_r13Tm10_LAA_r13(pub u8); +impl LAA_Parameters_r13Tm10_LAA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1430CrossCarrierSchedulingLAA_UL_r14(pub u8); +impl LAA_Parameters_v1430CrossCarrierSchedulingLAA_UL_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1430UplinkLAA_r14(pub u8); +impl LAA_Parameters_v1430UplinkLAA_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct LAA_Parameters_v1430TwoStepSchedulingTimingInfo_r14(pub u8); +impl LAA_Parameters_v1430TwoStepSchedulingTimingInfo_r14 { + pub const N_PLUS1: u8 = 0u8; + pub const N_PLUS2: u8 = 1u8; + pub const N_PLUS3: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1430Uss_BlindDecodingAdjustment_r14(pub u8); +impl LAA_Parameters_v1430Uss_BlindDecodingAdjustment_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1430Uss_BlindDecodingReduction_r14(pub u8); +impl LAA_Parameters_v1430Uss_BlindDecodingReduction_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1430OutOfSequenceGrantHandling_r14(pub u8); +impl LAA_Parameters_v1430OutOfSequenceGrantHandling_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1530Aul_r15(pub u8); +impl LAA_Parameters_v1530Aul_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1530Laa_PUSCH_Mode1_r15(pub u8); +impl LAA_Parameters_v1530Laa_PUSCH_Mode1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1530Laa_PUSCH_Mode2_r15(pub u8); +impl LAA_Parameters_v1530Laa_PUSCH_Mode2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_Parameters_v1530Laa_PUSCH_Mode3_r15(pub u8); +impl LAA_Parameters_v1530Laa_PUSCH_Mode3_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct LAA_SCellConfiguration_r13SubframeStartPosition_r13(pub u8); +impl LAA_SCellConfiguration_r13SubframeStartPosition_r13 { + pub const S0: u8 = 0u8; + pub const S07: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct LAA_SCellConfiguration_r13Laa_SCellSubframeConfig_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LAA_SCellConfiguration_v1430CrossCarrierSchedulingConfig_UL_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LAA_SCellConfiguration_v1430CrossCarrierSchedulingConfig_UL_r14_setup { + pub cross_carrier_scheduling_config_laa_ul_r14: CrossCarrierSchedulingConfigLAA_UL_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum LAA_SCellConfiguration_v1430CrossCarrierSchedulingConfig_UL_r14 { + #[asn(key = 0, extended = false)] + Release(LAA_SCellConfiguration_v1430CrossCarrierSchedulingConfig_UL_r14_release), + #[asn(key = 1, extended = false)] + Setup(LAA_SCellConfiguration_v1430CrossCarrierSchedulingConfig_UL_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LAA_SCellConfiguration_v1430AbsenceOfAnyOtherTechnology_r14(pub u8); +impl LAA_SCellConfiguration_v1430AbsenceOfAnyOtherTechnology_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-85", ub = "-52")] +pub struct LBT_Config_r14_maxEnergyDetectionThreshold_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-13", ub = "20")] +pub struct LBT_Config_r14_energyDetectionThresholdOffset_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct LWA_Config_r13Lwa_WT_Counter_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LWA_Configuration_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LWA_Configuration_r13_setup { + pub lwa_config_r13: LWA_Config_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_r13Lwa_r13(pub u8); +impl LWA_Parameters_r13Lwa_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_r13Lwa_SplitBearer_r13(pub u8); +impl LWA_Parameters_r13Lwa_SplitBearer_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct LWA_Parameters_r13Wlan_MAC_Address_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_r13Lwa_BufferSize_r13(pub u8); +impl LWA_Parameters_r13Lwa_BufferSize_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_v1430Lwa_HO_WithoutWT_Change_r14(pub u8); +impl LWA_Parameters_v1430Lwa_HO_WithoutWT_Change_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_v1430Lwa_UL_r14(pub u8); +impl LWA_Parameters_v1430Lwa_UL_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_v1430Wlan_PeriodicMeas_r14(pub u8); +impl LWA_Parameters_v1430Wlan_PeriodicMeas_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_v1430Wlan_ReportAnyWLAN_r14(pub u8); +impl LWA_Parameters_v1430Wlan_ReportAnyWLAN_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2048")] +pub struct LWA_Parameters_v1430Wlan_SupportedDataRate_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWA_Parameters_v1440Lwa_RLC_UM_r14(pub u8); +impl LWA_Parameters_v1440Lwa_RLC_UM_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LWIP_Configuration_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LWIP_Configuration_r13_setup { + pub lwip_config_r13: LWIP_Config_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWIP_Parameters_r13Lwip_r13(pub u8); +impl LWIP_Parameters_r13Lwip_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWIP_Parameters_v1430Lwip_Aggregation_DL_r14(pub u8); +impl LWIP_Parameters_v1430Lwip_Aggregation_DL_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LWIP_Parameters_v1430Lwip_Aggregation_UL_r14(pub u8); +impl LWIP_Parameters_v1430Lwip_Aggregation_UL_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoid_Point_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithAltitude_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithUncertaintyCircle_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithUncertaintyEllipse_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_ellipsoidArc_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10LocationCoordinates_r10_polygon_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum LocationInfo_r10LocationCoordinates_r10 { + # [asn (key = 0 , extended = false)] Ellipsoid_Point_r10 (LocationInfo_r10LocationCoordinates_r10_ellipsoid_Point_r10) , # [asn (key = 1 , extended = false)] EllipsoidPointWithAltitude_r10 (LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithAltitude_r10) , # [asn (key = 0 , extended = true)] EllipsoidPointWithUncertaintyCircle_r11 (LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithUncertaintyCircle_r11) , # [asn (key = 1 , extended = true)] EllipsoidPointWithUncertaintyEllipse_r11 (LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithUncertaintyEllipse_r11) , # [asn (key = 2 , extended = true)] EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11 (LocationInfo_r10LocationCoordinates_r10_ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11) , # [asn (key = 3 , extended = true)] EllipsoidArc_r11 (LocationInfo_r10LocationCoordinates_r10_ellipsoidArc_r11) , # [asn (key = 4 , extended = true)] Polygon_r11 (LocationInfo_r10LocationCoordinates_r10_polygon_r11) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10HorizontalVelocity_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LocationInfo_r10Gnss_TOD_msec_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7200")] +pub struct LogMeasInfo_r10RelativeTimeStamp_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LogMeasInfo_r10MeasResultServCell_r10 { + pub rsrp_result_r10: RSRP_Range, + pub rsrq_result_r10: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct LogMeasInfo_r10MeasResultNeighCells_r10 { + #[asn(optional_idx = 0)] + pub meas_result_list_eutra_r10: Option, + #[asn(optional_idx = 1)] + pub meas_result_list_utra_r10: Option, + #[asn(optional_idx = 2)] + pub meas_result_list_geran_r10: Option, + #[asn(optional_idx = 3)] + pub meas_result_list_cdma2000_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct LogMeasReport_r10TraceRecordingSessionRef_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct LogMeasReport_r10Tce_Id_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LogMeasReport_r10LogMeasAvailable_r10(pub u8); +impl LogMeasReport_r10LogMeasAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "48", sz_ub = "48")] +pub struct LogMeasResultBT_r15Bt_Addr_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-128", ub = "127")] +pub struct LogMeasResultBT_r15Rssi_BT_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum LoggedMeasurementConfiguration_r10CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + LoggedMeasurementConfiguration_r10(LoggedMeasurementConfiguration_r10_IEs), + #[asn(key = 1, extended = false)] + Spare3(LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(LoggedMeasurementConfiguration_r10CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LoggedMeasurementConfiguration_r10CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum LoggedMeasurementConfiguration_r10CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(LoggedMeasurementConfiguration_r10CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + LoggedMeasurementConfiguration_r10CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct LoggedMeasurementConfiguration_r10_IEsTraceRecordingSessionRef_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct LoggedMeasurementConfiguration_r10_IEsTce_Id_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct LoggedMeasurementConfiguration_v1080_IEsLateNonCriticalExtension_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct LoggedMeasurementConfiguration_v1700_IEsMeasUncomBarPre_r17(pub u8); +impl LoggedMeasurementConfiguration_v1700_IEsMeasUncomBarPre_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct LoggedMeasurementConfiguration_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct LogicalChannelConfigUl_SpecificParametersPriority(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct LogicalChannelConfigUl_SpecificParametersPrioritisedBitRate(pub u8); +impl LogicalChannelConfigUl_SpecificParametersPrioritisedBitRate { + pub const K_BPS0: u8 = 0u8; + pub const K_BPS8: u8 = 1u8; + pub const K_BPS16: u8 = 2u8; + pub const K_BPS32: u8 = 3u8; + pub const K_BPS64: u8 = 4u8; + pub const K_BPS128: u8 = 5u8; + pub const K_BPS256: u8 = 6u8; + pub const INFINITY: u8 = 7u8; + pub const K_BPS512_V1020: u8 = 8u8; + pub const K_BPS1024_V1020: u8 = 9u8; + pub const K_BPS2048_V1020: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct LogicalChannelConfigUl_SpecificParametersBucketSizeDuration(pub u8); +impl LogicalChannelConfigUl_SpecificParametersBucketSizeDuration { + pub const MS50: u8 = 0u8; + pub const MS100: u8 = 1u8; + pub const MS150: u8 = 2u8; + pub const MS300: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct LogicalChannelConfigUl_SpecificParametersLogicalChannelGroup(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct LogicalChannelConfigUl_SpecificParameters { + pub priority: LogicalChannelConfigUl_SpecificParametersPriority, + pub prioritised_bit_rate: LogicalChannelConfigUl_SpecificParametersPrioritisedBitRate, + pub bucket_size_duration: LogicalChannelConfigUl_SpecificParametersBucketSizeDuration, + #[asn(optional_idx = 0)] + pub logical_channel_group: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct MAC_MainConfigUl_SCH_ConfigMaxHARQ_Tx(pub u8); +impl MAC_MainConfigUl_SCH_ConfigMaxHARQ_Tx { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N5: u8 = 4u8; + pub const N6: u8 = 5u8; + pub const N7: u8 = 6u8; + pub const N8: u8 = 7u8; + pub const N10: u8 = 8u8; + pub const N12: u8 = 9u8; + pub const N16: u8 = 10u8; + pub const N20: u8 = 11u8; + pub const N24: u8 = 12u8; + pub const N28: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MAC_MainConfigUl_SCH_ConfigTtiBundling(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MAC_MainConfigUl_SCH_Config { + #[asn(optional_idx = 0)] + pub max_harq_tx: Option, + #[asn(optional_idx = 1)] + pub periodic_bsr_timer: Option, + pub retx_bsr_timer: RetxBSR_Timer_r12, + pub tti_bundling: MAC_MainConfigUl_SCH_ConfigTtiBundling, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MAC_MainConfigPhr_Config_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MAC_MainConfigPhr_Config_setupPeriodicPHR_Timer(pub u8); +impl MAC_MainConfigPhr_Config_setupPeriodicPHR_Timer { + pub const SF10: u8 = 0u8; + pub const SF20: u8 = 1u8; + pub const SF50: u8 = 2u8; + pub const SF100: u8 = 3u8; + pub const SF200: u8 = 4u8; + pub const SF500: u8 = 5u8; + pub const SF1000: u8 = 6u8; + pub const INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MAC_MainConfigPhr_Config_setupProhibitPHR_Timer(pub u8); +impl MAC_MainConfigPhr_Config_setupProhibitPHR_Timer { + pub const SF0: u8 = 0u8; + pub const SF10: u8 = 1u8; + pub const SF20: u8 = 2u8; + pub const SF50: u8 = 3u8; + pub const SF100: u8 = 4u8; + pub const SF200: u8 = 5u8; + pub const SF500: u8 = 6u8; + pub const SF1000: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MAC_MainConfigPhr_Config_setupDl_PathlossChange(pub u8); +impl MAC_MainConfigPhr_Config_setupDl_PathlossChange { + pub const D_B1: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const INFINITY: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MAC_MainConfigPhr_Config_setup { + pub periodic_phr_timer: MAC_MainConfigPhr_Config_setupPeriodicPHR_Timer, + pub prohibit_phr_timer: MAC_MainConfigPhr_Config_setupProhibitPHR_Timer, + pub dl_pathloss_change: MAC_MainConfigPhr_Config_setupDl_PathlossChange, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MAC_MainConfigPhr_Config { + #[asn(key = 0, extended = false)] + Release(MAC_MainConfigPhr_Config_release), + #[asn(key = 1, extended = false)] + Setup(MAC_MainConfigPhr_Config_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_r12LogicalChannelSR_ProhibitTimer_r12(pub u8); +impl MAC_Parameters_r12LogicalChannelSR_ProhibitTimer_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_r12LongDRX_Command_r12(pub u8); +impl MAC_Parameters_r12LongDRX_Command_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1310ExtendedMAC_LengthField_r13(pub u8); +impl MAC_Parameters_v1310ExtendedMAC_LengthField_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1310ExtendedLongDRX_r13(pub u8); +impl MAC_Parameters_v1310ExtendedLongDRX_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430ShortSPS_IntervalFDD_r14(pub u8); +impl MAC_Parameters_v1430ShortSPS_IntervalFDD_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430ShortSPS_IntervalTDD_r14(pub u8); +impl MAC_Parameters_v1430ShortSPS_IntervalTDD_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430SkipUplinkDynamic_r14(pub u8); +impl MAC_Parameters_v1430SkipUplinkDynamic_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430SkipUplinkSPS_r14(pub u8); +impl MAC_Parameters_v1430SkipUplinkSPS_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430MultipleUplinkSPS_r14(pub u8); +impl MAC_Parameters_v1430MultipleUplinkSPS_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1430DataInactMon_r14(pub u8); +impl MAC_Parameters_v1430DataInactMon_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1440Rai_Support_r14(pub u8); +impl MAC_Parameters_v1440Rai_Support_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct MAC_Parameters_v1530Min_Proc_TimelineSubslot_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530EarlyData_UP_r15(pub u8); +impl MAC_Parameters_v1530EarlyData_UP_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530DormantSCellState_r15(pub u8); +impl MAC_Parameters_v1530DormantSCellState_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530DirectSCellActivation_r15(pub u8); +impl MAC_Parameters_v1530DirectSCellActivation_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530DirectSCellHibernation_r15(pub u8); +impl MAC_Parameters_v1530DirectSCellHibernation_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530ExtendedLCID_Duplication_r15(pub u8); +impl MAC_Parameters_v1530ExtendedLCID_Duplication_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1530Sps_ServingCell_r15(pub u8); +impl MAC_Parameters_v1530Sps_ServingCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1550ELCID_Support_r15(pub u8); +impl MAC_Parameters_v1550ELCID_Support_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1610DirectMCG_SCellActivationResume_r16(pub u8); +impl MAC_Parameters_v1610DirectMCG_SCellActivationResume_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1610DirectSCG_SCellActivationResume_r16(pub u8); +impl MAC_Parameters_v1610DirectSCG_SCellActivationResume_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1610EarlyData_UP_5GC_r16(pub u8); +impl MAC_Parameters_v1610EarlyData_UP_5GC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1610Rai_SupportEnh_r16(pub u8); +impl MAC_Parameters_v1610Rai_SupportEnh_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MAC_Parameters_v1630DirectSCG_SCellActivationNEDC_r16(pub u8); +impl MAC_Parameters_v1630DirectSCG_SCellActivationNEDC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct MBMS_CarrierType_r14CarrierType_r14(pub u8); +impl MBMS_CarrierType_r14CarrierType_r14 { + pub const MBMS: u8 = 0u8; + pub const FEMBMS_MIXED: u8 = 1u8; + pub const FEMBMS_DEDICATED: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct MBMS_CarrierType_r14FrameOffset_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MBMS_NotificationConfig_r9NotificationRepetitionCoeff_r9(pub u8); +impl MBMS_NotificationConfig_r9NotificationRepetitionCoeff_r9 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct MBMS_NotificationConfig_r9NotificationOffset_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct MBMS_NotificationConfig_r9NotificationSF_Index_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "7", ub = "10")] +pub struct MBMS_NotificationConfig_v1430NotificationSF_Index_v1430(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_r11Mbms_SCell_r11(pub u8); +impl MBMS_Parameters_r11Mbms_SCell_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_r11Mbms_NonServingCell_r11(pub u8); +impl MBMS_Parameters_r11Mbms_NonServingCell_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_v1250Mbms_AsyncDC_r12(pub u8); +impl MBMS_Parameters_v1250Mbms_AsyncDC_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_v1430FembmsDedicatedCell_r14(pub u8); +impl MBMS_Parameters_v1430FembmsDedicatedCell_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_v1430FembmsMixedCell_r14(pub u8); +impl MBMS_Parameters_v1430FembmsMixedCell_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_v1430SubcarrierSpacingMBMS_khz7dot5_r14(pub u8); +impl MBMS_Parameters_v1430SubcarrierSpacingMBMS_khz7dot5_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_Parameters_v1430SubcarrierSpacingMBMS_khz1dot25_r14(pub u8); +impl MBMS_Parameters_v1430SubcarrierSpacingMBMS_khz1dot25_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMS_Parameters_v1470Mbms_MaxBW_r14_implicitValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "20")] +pub struct MBMS_Parameters_v1470Mbms_MaxBW_r14_explicitValue(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBMS_Parameters_v1470Mbms_MaxBW_r14 { + #[asn(key = 0, extended = false)] + ImplicitValue(MBMS_Parameters_v1470Mbms_MaxBW_r14_implicitValue), + #[asn(key = 1, extended = false)] + ExplicitValue(MBMS_Parameters_v1470Mbms_MaxBW_r14_explicitValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBMS_Parameters_v1470Mbms_ScalingFactor1dot25_r14(pub u8); +impl MBMS_Parameters_v1470Mbms_ScalingFactor1dot25_r14 { + pub const N3: u8 = 0u8; + pub const N6: u8 = 1u8; + pub const N9: u8 = 2u8; + pub const N12: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBMS_Parameters_v1470Mbms_ScalingFactor7dot5_r14(pub u8); +impl MBMS_Parameters_v1470Mbms_ScalingFactor7dot5_r14 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBMS_Parameters_v1610Mbms_ScalingFactor2dot5_r16(pub u8); +impl MBMS_Parameters_v1610Mbms_ScalingFactor2dot5_r16 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBMS_Parameters_v1610Mbms_ScalingFactor0dot37_r16(pub u8); +impl MBMS_Parameters_v1610Mbms_ScalingFactor0dot37_r16 { + pub const N12: u8 = 0u8; + pub const N16: u8 = 1u8; + pub const N20: u8 = 2u8; + pub const N24: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct MBMS_Parameters_v1610Mbms_SupportedBandInfoList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct MBMS_Parameters_v1700Mbms_SupportedBandInfoList_v1700( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct MBMS_ROM_Info_r15Mbms_ROM_SubcarrierSpacing_r15(pub u8); +impl MBMS_ROM_Info_r15Mbms_ROM_SubcarrierSpacing_r15 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ7DOT5: u8 = 1u8; + pub const K_HZ1DOT25: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MBMS_ROM_Info_r15Mbms_Bandwidth_r15(pub u8); +impl MBMS_ROM_Info_r15Mbms_Bandwidth_r15 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MBMS_ROM_Info_r16Mbms_ROM_SubcarrierSpacing_r16(pub u8); +impl MBMS_ROM_Info_r16Mbms_ROM_SubcarrierSpacing_r16 { + pub const K_HZ2DOT5: u8 = 0u8; + pub const K_HZ0DOT37: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MBMS_ROM_Info_r16Mbms_Bandwidth_r16(pub u8); +impl MBMS_ROM_Info_r16Mbms_Bandwidth_r16 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct MBMS_SessionInfo_r9SessionId_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "28")] +pub struct MBMS_SessionInfo_r9LogicalChannelIdentity_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz2dot5_r16(pub u8); +impl MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz2dot5_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot2_r16( + pub u8, +); +impl MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot4_r16( + pub u8, +); +impl MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot4_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16 { + #[asn(optional_idx = 0)] + pub time_separation_slot2_r16: Option< + MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot2_r16, + >, + #[asn(optional_idx = 1)] + pub time_separation_slot4_r16: Option< + MBMS_SupportedBandInfo_r16SubcarrierSpacingMBMS_khz0dot37_r16TimeSeparationSlot4_r16, + >, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n40_r17(pub u8); +impl MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n40_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n35_r17(pub u8); +impl MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n35_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n30_r17(pub u8); +impl MBMS_SupportedBandInfo_v1700Pmch_Bandwidth_n30_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MBMSCountingRequest_r10LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSCountingRequest_r10NonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSCountingResponse_r10CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSCountingResponse_r10CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSCountingResponse_r10CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum MBMSCountingResponse_r10CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + CountingResponse_r10(MBMSCountingResponse_r10_IEs), + #[asn(key = 1, extended = false)] + Spare3(MBMSCountingResponse_r10CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(MBMSCountingResponse_r10CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(MBMSCountingResponse_r10CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSCountingResponse_r10CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBMSCountingResponse_r10CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(MBMSCountingResponse_r10CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MBMSCountingResponse_r10CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct MBMSCountingResponse_r10_IEsMbsfn_AreaIndex_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MBMSCountingResponse_r10_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSCountingResponse_r10_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSInterestIndication_r11CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSInterestIndication_r11CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MBMSInterestIndication_r11CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum MBMSInterestIndication_r11CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + InterestIndication_r11(MBMSInterestIndication_r11_IEs), + #[asn(key = 1, extended = false)] + Spare3(MBMSInterestIndication_r11CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(MBMSInterestIndication_r11CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(MBMSInterestIndication_r11CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSInterestIndication_r11CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBMSInterestIndication_r11CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(MBMSInterestIndication_r11CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MBMSInterestIndication_r11CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MBMSInterestIndication_r11_IEsMbms_Priority_r11(pub u8); +impl MBMSInterestIndication_r11_IEsMbms_Priority_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MBMSInterestIndication_r11_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct MBMSInterestIndication_v1540_IEsMbms_ROM_InfoList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct MBMSInterestIndication_v1610_IEsMbms_ROM_InfoList_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBMSInterestIndication_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct MBMSSessionInfo_r13SessionId_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct MBSFN_AreaInfo_r16NotificationIndicator_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_RepetitionPeriod_r16(pub u8); +impl MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_RepetitionPeriod_r16 { + pub const RF1: u8 = 0u8; + pub const RF2: u8 = 1u8; + pub const RF4: u8 = 2u8; + pub const RF8: u8 = 3u8; + pub const RF16: u8 = 4u8; + pub const RF32: u8 = 5u8; + pub const RF64: u8 = 6u8; + pub const RF128: u8 = 7u8; + pub const RF256: u8 = 8u8; + pub const SPARE7: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_ModificationPeriod_r16(pub u8); +impl MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_ModificationPeriod_r16 { + pub const RF1: u8 = 0u8; + pub const RF2: u8 = 1u8; + pub const RF4: u8 = 2u8; + pub const RF8: u8 = 3u8; + pub const RF16: u8 = 4u8; + pub const RF32: u8 = 5u8; + pub const RF64: u8 = 6u8; + pub const RF128: u8 = 7u8; + pub const RF256: u8 = 8u8; + pub const RF512: u8 = 9u8; + pub const RF1024: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_Offset_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16Sf_AllocInfo_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16SignallingMCS_r16(pub u8); +impl MBSFN_AreaInfo_r16Mcch_Config_r16SignallingMCS_r16 { + pub const N2: u8 = 0u8; + pub const N7: u8 = 1u8; + pub const N13: u8 = 2u8; + pub const N19: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFN_AreaInfo_r16Mcch_Config_r16 { + pub mcch_repetition_period_r16: MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_RepetitionPeriod_r16, + pub mcch_modification_period_r16: MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_ModificationPeriod_r16, + pub mcch_offset_r16: MBSFN_AreaInfo_r16Mcch_Config_r16Mcch_Offset_r16, + pub sf_alloc_info_r16: MBSFN_AreaInfo_r16Mcch_Config_r16Sf_AllocInfo_r16, + pub signalling_mcs_r16: MBSFN_AreaInfo_r16Mcch_Config_r16SignallingMCS_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MBSFN_AreaInfo_r16SubcarrierSpacingMBMS_r16(pub u8); +impl MBSFN_AreaInfo_r16SubcarrierSpacingMBMS_r16 { + pub const K_HZ7DOT5: u8 = 0u8; + pub const K_HZ2DOT5: u8 = 1u8; + pub const K_HZ1DOT25: u8 = 2u8; + pub const K_HZ0DOT37: u8 = 3u8; + pub const K_HZ15_V1710: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MBSFN_AreaInfo_r16TimeSeparation_r16(pub u8); +impl MBSFN_AreaInfo_r16TimeSeparation_r16 { + pub const SL2: u8 = 0u8; + pub const SL4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBSFN_AreaInfo_r17Pmch_Bandwidth_r17(pub u8); +impl MBSFN_AreaInfo_r17Pmch_Bandwidth_r17 { + pub const N40: u8 = 0u8; + pub const N35: u8 = 1u8; + pub const N30: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MBSFN_AreaInfo_r9Non_MBSFNregionLength(pub u8); +impl MBSFN_AreaInfo_r9Non_MBSFNregionLength { + pub const S1: u8 = 0u8; + pub const S2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct MBSFN_AreaInfo_r9NotificationIndicator_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_RepetitionPeriod_r9(pub u8); +impl MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_RepetitionPeriod_r9 { + pub const RF32: u8 = 0u8; + pub const RF64: u8 = 1u8; + pub const RF128: u8 = 2u8; + pub const RF256: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_Offset_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_ModificationPeriod_r9(pub u8); +impl MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_ModificationPeriod_r9 { + pub const RF512: u8 = 0u8; + pub const RF1024: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9Sf_AllocInfo_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9SignallingMCS_r9(pub u8); +impl MBSFN_AreaInfo_r9Mcch_Config_r9SignallingMCS_r9 { + pub const N2: u8 = 0u8; + pub const N7: u8 = 1u8; + pub const N13: u8 = 2u8; + pub const N19: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFN_AreaInfo_r9Mcch_Config_r9 { + pub mcch_repetition_period_r9: MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_RepetitionPeriod_r9, + pub mcch_offset_r9: MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_Offset_r9, + pub mcch_modification_period_r9: MBSFN_AreaInfo_r9Mcch_Config_r9Mcch_ModificationPeriod_r9, + pub sf_alloc_info_r9: MBSFN_AreaInfo_r9Mcch_Config_r9Sf_AllocInfo_r9, + pub signalling_mcs_r9: MBSFN_AreaInfo_r9Mcch_Config_r9SignallingMCS_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MBSFN_SubframeConfigRadioframeAllocationPeriod(pub u8); +impl MBSFN_SubframeConfigRadioframeAllocationPeriod { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N16: u8 = 4u8; + pub const N32: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct MBSFN_SubframeConfigRadioframeAllocationOffset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct MBSFN_SubframeConfigSubframeAllocation_oneFrame( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct MBSFN_SubframeConfigSubframeAllocation_fourFrames( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBSFN_SubframeConfigSubframeAllocation { + #[asn(key = 0, extended = false)] + OneFrame(MBSFN_SubframeConfigSubframeAllocation_oneFrame), + #[asn(key = 1, extended = false)] + FourFrames(MBSFN_SubframeConfigSubframeAllocation_fourFrames), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct MBSFN_SubframeConfig_v1430SubframeAllocation_v1430_oneFrame_v1430( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MBSFN_SubframeConfig_v1430SubframeAllocation_v1430_fourFrames_v1430( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBSFN_SubframeConfig_v1430SubframeAllocation_v1430 { + #[asn(key = 0, extended = false)] + OneFrame_v1430(MBSFN_SubframeConfig_v1430SubframeAllocation_v1430_oneFrame_v1430), + #[asn(key = 1, extended = false)] + FourFrames_v1430(MBSFN_SubframeConfig_v1430SubframeAllocation_v1430_fourFrames_v1430), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct MBSFN_SubframeConfig_v1610SubframeAllocation_v1610_oneFrame_v1610( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MBSFN_SubframeConfig_v1610SubframeAllocation_v1610_fourFrames_v1610( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MBSFN_SubframeConfig_v1610SubframeAllocation_v1610 { + #[asn(key = 0, extended = false)] + OneFrame_v1610(MBSFN_SubframeConfig_v1610SubframeAllocation_v1610_oneFrame_v1610), + #[asn(key = 1, extended = false)] + FourFrames_v1610(MBSFN_SubframeConfig_v1610SubframeAllocation_v1610_fourFrames_v1610), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct MBSFNAreaConfiguration_r9CommonSF_AllocPeriod_r9(pub u8); +impl MBSFNAreaConfiguration_r9CommonSF_AllocPeriod_r9 { + pub const RF4: u8 = 0u8; + pub const RF8: u8 = 1u8; + pub const RF16: u8 = 2u8; + pub const RF32: u8 = 3u8; + pub const RF64: u8 = 4u8; + pub const RF128: u8 = 5u8; + pub const RF256: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MBSFNAreaConfiguration_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MBSFNAreaConfiguration_v930_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum MCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + MbsfnAreaConfiguration_r9(MBSFNAreaConfiguration_r9), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum MCCH_MessageType_later_c2 { + #[asn(key = 0, extended = false)] + MbmsCountingRequest_r10(MBMSCountingRequest_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCCH_MessageType_later_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MCCH_MessageType_later { + #[asn(key = 0, extended = false)] + C2(MCCH_MessageType_later_c2), + #[asn(key = 1, extended = false)] + MessageClassExtension(MCCH_MessageType_later_messageClassExtension), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCGFailureInformation_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MCGFailureInformation_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + McgFailureInformation(MCGFailureInformation_r16_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MCGFailureInformation_r16CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MCGFailureInformation_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MCGFailureInformation_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct MCS_PSSCH_Range_r15MinMCS_PSSCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct MCS_PSSCH_Range_r15MaxMCS_PSSCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct MIMO_BeamformedCapabilities_r13K_Max_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "7")] +pub struct MIMO_BeamformedCapabilities_r13N_MaxList_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r13Dmrs_Enhancements_r13(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_r13Dmrs_Enhancements_r13 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r15Dmrs_Enhancements_r13(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_r15Dmrs_Enhancements_r13 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r15Csi_ReportingNP_r14(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_r15Csi_ReportingNP_r14 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_r15Csi_ReportingAdvanced_r14(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_r15Csi_ReportingAdvanced_r14 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_v1430Csi_ReportingNP_r14(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_v1430Csi_ReportingNP_r14 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_v1430Csi_ReportingAdvanced_r14(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_v1430Csi_ReportingAdvanced_r14 { + pub const DIFFERENT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MIMO_CA_ParametersPerBoBCPerTM_v1470Csi_ReportingAdvancedMaxPorts_r14(pub u8); +impl MIMO_CA_ParametersPerBoBCPerTM_v1470Csi_ReportingAdvancedMaxPorts_r14 { + pub const N8: u8 = 0u8; + pub const N12: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N20: u8 = 3u8; + pub const N24: u8 = 4u8; + pub const N28: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_NonPrecodedCapabilities_r13Config1_r13(pub u8); +impl MIMO_NonPrecodedCapabilities_r13Config1_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_NonPrecodedCapabilities_r13Config2_r13(pub u8); +impl MIMO_NonPrecodedCapabilities_r13Config2_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_NonPrecodedCapabilities_r13Config3_r13(pub u8); +impl MIMO_NonPrecodedCapabilities_r13Config3_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_NonPrecodedCapabilities_r13Config4_r13(pub u8); +impl MIMO_NonPrecodedCapabilities_r13Config4_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_BeamformedCapabilities_r13AltCodebook_r13(pub u8); +impl MIMO_UE_BeamformedCapabilities_r13AltCodebook_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_Parameters_r13Srs_EnhancementsTDD_r13(pub u8); +impl MIMO_UE_Parameters_r13Srs_EnhancementsTDD_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_Parameters_r13Srs_Enhancements_r13(pub u8); +impl MIMO_UE_Parameters_r13Srs_Enhancements_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_Parameters_r13InterferenceMeasRestriction_r13(pub u8); +impl MIMO_UE_Parameters_r13InterferenceMeasRestriction_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_r13ChannelMeasRestriction_r13(pub u8); +impl MIMO_UE_ParametersPerTM_r13ChannelMeasRestriction_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_r13Dmrs_Enhancements_r13(pub u8); +impl MIMO_UE_ParametersPerTM_r13Dmrs_Enhancements_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_r13Csi_RS_EnhancementsTDD_r13(pub u8); +impl MIMO_UE_ParametersPerTM_r13Csi_RS_EnhancementsTDD_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "32")] +pub struct MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14NMaxProc_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14NMaxResource_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14NMaxResource_r14 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14 { + pub n_max_proc_r14: MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14NMaxProc_r14, + pub n_max_resource_r14: + MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_AperiodicInfo_r14NMaxResource_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_PeriodicInfo_r14NMaxResource_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_PeriodicInfo_r14NMaxResource_r14 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_PeriodicInfo_r14 { + pub n_max_resource_r14: + MIMO_UE_ParametersPerTM_v1430Nzp_CSI_RS_PeriodicInfo_r14NMaxResource_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430Zp_CSI_RS_AperiodicInfo_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Zp_CSI_RS_AperiodicInfo_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430Ul_dmrs_Enhancements_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Ul_dmrs_Enhancements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430DensityReductionNP_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430DensityReductionNP_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430DensityReductionBF_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430DensityReductionBF_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430HybridCSI_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430HybridCSI_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430SemiOL_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430SemiOL_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430Csi_ReportingNP_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Csi_ReportingNP_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MIMO_UE_ParametersPerTM_v1430Csi_ReportingAdvanced_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1430Csi_ReportingAdvanced_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MIMO_UE_ParametersPerTM_v1470Csi_ReportingAdvancedMaxPorts_r14(pub u8); +impl MIMO_UE_ParametersPerTM_v1470Csi_ReportingAdvancedMaxPorts_r14 { + pub const N8: u8 = 0u8; + pub const N12: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N20: u8 = 3u8; + pub const N24: u8 = 4u8; + pub const N28: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MIMO_WeightedLayersCapabilities_r13RelWeightTwoLayers_r13(pub u8); +impl MIMO_WeightedLayersCapabilities_r13RelWeightTwoLayers_r13 { + pub const V1: u8 = 0u8; + pub const V1DOT25: u8 = 1u8; + pub const V1DOT5: u8 = 2u8; + pub const V1DOT75: u8 = 3u8; + pub const V2: u8 = 4u8; + pub const V2DOT5: u8 = 5u8; + pub const V3: u8 = 6u8; + pub const V4: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MIMO_WeightedLayersCapabilities_r13RelWeightFourLayers_r13(pub u8); +impl MIMO_WeightedLayersCapabilities_r13RelWeightFourLayers_r13 { + pub const V1: u8 = 0u8; + pub const V1DOT25: u8 = 1u8; + pub const V1DOT5: u8 = 2u8; + pub const V1DOT75: u8 = 3u8; + pub const V2: u8 = 4u8; + pub const V2DOT5: u8 = 5u8; + pub const V3: u8 = 6u8; + pub const V4: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MIMO_WeightedLayersCapabilities_r13RelWeightEightLayers_r13(pub u8); +impl MIMO_WeightedLayersCapabilities_r13RelWeightEightLayers_r13 { + pub const V1: u8 = 0u8; + pub const V1DOT25: u8 = 1u8; + pub const V1DOT5: u8 = 2u8; + pub const V1DOT75: u8 = 3u8; + pub const V2: u8 = 4u8; + pub const V2DOT5: u8 = 5u8; + pub const V3: u8 = 6u8; + pub const V4: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "128")] +pub struct MIMO_WeightedLayersCapabilities_r13TotalWeightedLayers_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MMTEL_Parameters_r14DelayBudgetReporting_r14(pub u8); +impl MMTEL_Parameters_r14DelayBudgetReporting_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MMTEL_Parameters_r14Pusch_Enhancements_r14(pub u8); +impl MMTEL_Parameters_r14Pusch_Enhancements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MMTEL_Parameters_r14RecommendedBitRate_r14(pub u8); +impl MMTEL_Parameters_r14RecommendedBitRate_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MMTEL_Parameters_r14RecommendedBitRateQuery_r14(pub u8); +impl MMTEL_Parameters_r14RecommendedBitRateQuery_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MMTEL_Parameters_v1610RecommendedBitRateMultiplier_r16(pub u8); +impl MMTEL_Parameters_v1610RecommendedBitRateMultiplier_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct MRDC_AssistanceInfo_r15AffectedCarrierFreqCombInfoListMRDC_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf5_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf10_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf20_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf40_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf80_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf160_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum MTC_SSB_NR_r15PeriodicityAndOffset_r15 { + #[asn(key = 0, extended = false)] + Sf5_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf5_r15), + #[asn(key = 1, extended = false)] + Sf10_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf10_r15), + #[asn(key = 2, extended = false)] + Sf20_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf20_r15), + #[asn(key = 3, extended = false)] + Sf40_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf40_r15), + #[asn(key = 4, extended = false)] + Sf80_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf80_r15), + #[asn(key = 5, extended = false)] + Sf160_r15(MTC_SSB_NR_r15PeriodicityAndOffset_r15_sf160_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct MTC_SSB_NR_r15Ssb_Duration_r15(pub u8); +impl MTC_SSB_NR_r15Ssb_Duration_r15 { + pub const SF1: u8 = 0u8; + pub const SF2: u8 = 1u8; + pub const SF3: u8 = 2u8; + pub const SF4: u8 = 3u8; + pub const SF5: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct MTC_SSB2_LP_NR_r16Pci_List_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MTC_SSB2_LP_NR_r16Periodicity_r16(pub u8); +impl MTC_SSB2_LP_NR_r16Periodicity_r16 { + pub const SF10: u8 = 0u8; + pub const SF20: u8 = 1u8; + pub const SF40: u8 = 2u8; + pub const SF80: u8 = 3u8; + pub const SF160: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MUST_Parameters_r14Must_TM234_UpTo2Tx_r14(pub u8); +impl MUST_Parameters_r14Must_TM234_UpTo2Tx_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MUST_Parameters_r14Must_TM89_UpToOneInterferingLayer_r14(pub u8); +impl MUST_Parameters_r14Must_TM89_UpToOneInterferingLayer_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MUST_Parameters_r14Must_TM10_UpToOneInterferingLayer_r14(pub u8); +impl MUST_Parameters_r14Must_TM10_UpToOneInterferingLayer_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MUST_Parameters_r14Must_TM89_UpToThreeInterferingLayers_r14(pub u8); +impl MUST_Parameters_r14Must_TM89_UpToThreeInterferingLayers_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MUST_Parameters_r14Must_TM10_UpToThreeInterferingLayers_r14(pub u8); +impl MUST_Parameters_r14Must_TM10_UpToThreeInterferingLayers_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MasterInformationBlockDl_Bandwidth(pub u8); +impl MasterInformationBlockDl_Bandwidth { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MasterInformationBlockSystemFrameNumber( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct MasterInformationBlockSchedulingInfoSIB1_BR_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MasterInformationBlockSystemInfoUnchanged_BR_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct MasterInformationBlockPartEARFCN_17_spare( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct MasterInformationBlockPartEARFCN_17_earfcn_LSB( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MasterInformationBlockPartEARFCN_17 { + #[asn(key = 0, extended = false)] + Spare(MasterInformationBlockPartEARFCN_17_spare), + #[asn(key = 1, extended = false)] + Earfcn_LSB(MasterInformationBlockPartEARFCN_17_earfcn_LSB), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct MasterInformationBlockSpare(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MasterInformationBlock_MBMS_r14Dl_Bandwidth_MBMS_r14(pub u8); +impl MasterInformationBlock_MBMS_r14Dl_Bandwidth_MBMS_r14 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct MasterInformationBlock_MBMS_r14SystemFrameNumber_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct MasterInformationBlock_MBMS_r14AdditionalNonMBSFNSubframes_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct MasterInformationBlock_MBMS_r14SemiStaticCFI_MBMS_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "11", sz_ub = "11")] +pub struct MasterInformationBlock_MBMS_r14Spare(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MasterInformationBlock_SLSl_Bandwidth_r12(pub u8); +impl MasterInformationBlock_SLSl_Bandwidth_r12 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct MasterInformationBlock_SLDirectFrameNumber_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct MasterInformationBlock_SLDirectSubframeNumber_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MasterInformationBlock_SLInCoverage_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct MasterInformationBlock_SLReserved_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct MasterInformationBlock_SL_V2X_r14Sl_Bandwidth_r14(pub u8); +impl MasterInformationBlock_SL_V2X_r14Sl_Bandwidth_r14 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct MasterInformationBlock_SL_V2X_r14DirectFrameNumber_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct MasterInformationBlock_SL_V2X_r14DirectSubframeNumber_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MasterInformationBlock_SL_V2X_r14InCoverage_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "27", sz_ub = "27")] +pub struct MasterInformationBlock_SL_V2X_r14Reserved_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct MeasCSI_RS_Config_r12PhysCellId_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct MeasCSI_RS_Config_r12ScramblingIdentity_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct MeasCSI_RS_Config_r12ResourceConfig_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4")] +pub struct MeasCSI_RS_Config_r12SubframeOffset_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasConfigSpeedStatePars_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasConfigSpeedStatePars_setup { + pub mobility_state_parameters: MobilityStateParameters, + pub time_to_trigger_sf: SpeedStateScaleFactors, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasConfigSpeedStatePars { + #[asn(key = 0, extended = false)] + Release(MeasConfigSpeedStatePars_release), + #[asn(key = 1, extended = false)] + Setup(MeasConfigSpeedStatePars_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasDS_Config_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms40_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms80_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms160_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = true)] +pub enum MeasDS_Config_r12_setupDmtc_PeriodOffset_r12 { + #[asn(key = 0, extended = false)] + Ms40_r12(MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms40_r12), + #[asn(key = 1, extended = false)] + Ms80_r12(MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms80_r12), + #[asn(key = 2, extended = false)] + Ms160_r12(MeasDS_Config_r12_setupDmtc_PeriodOffset_r12_ms160_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "5")] +pub struct MeasDS_Config_r12_setupDs_OccasionDuration_r12_durationFDD_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "5")] +pub struct MeasDS_Config_r12_setupDs_OccasionDuration_r12_durationTDD_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasDS_Config_r12_setupDs_OccasionDuration_r12 { + #[asn(key = 0, extended = false)] + DurationFDD_r12(MeasDS_Config_r12_setupDs_OccasionDuration_r12_durationFDD_r12), + #[asn(key = 1, extended = false)] + DurationTDD_r12(MeasDS_Config_r12_setupDs_OccasionDuration_r12_durationTDD_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasDS_Config_r12_setup { + pub dmtc_period_offset_r12: MeasDS_Config_r12_setupDmtc_PeriodOffset_r12, + pub ds_occasion_duration_r12: MeasDS_Config_r12_setupDs_OccasionDuration_r12, + #[asn(optional_idx = 0)] + pub meas_csi_rs_to_remove_list_r12: Option, + #[asn(optional_idx = 1)] + pub meas_csi_rs_to_add_mod_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasGapConfig_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasGapConfig_setupGapOffset_gp0(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfig_setupGapOffset_gp1(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasGapConfig_setupGapOffset_gp2_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfig_setupGapOffset_gp3_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasGapConfig_setupGapOffset_gp_ncsg0_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfig_setupGapOffset_gp_ncsg1_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasGapConfig_setupGapOffset_gp_ncsg2_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfig_setupGapOffset_gp_ncsg3_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfig_setupGapOffset_gp_nonUniform1_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2559")] +pub struct MeasGapConfig_setupGapOffset_gp_nonUniform2_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5119")] +pub struct MeasGapConfig_setupGapOffset_gp_nonUniform3_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10239")] +pub struct MeasGapConfig_setupGapOffset_gp_nonUniform4_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct MeasGapConfig_setupGapOffset_gp4_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasGapConfig_setupGapOffset_gp5_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct MeasGapConfig_setupGapOffset_gp6_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct MeasGapConfig_setupGapOffset_gp7_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfig_setupGapOffset_gp8_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasGapConfig_setupGapOffset_gp9_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct MeasGapConfig_setupGapOffset_gp10_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasGapConfig_setupGapOffset_gp11_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum MeasGapConfig_setupGapOffset { + #[asn(key = 0, extended = false)] + Gp0(MeasGapConfig_setupGapOffset_gp0), + #[asn(key = 1, extended = false)] + Gp1(MeasGapConfig_setupGapOffset_gp1), + #[asn(key = 0, extended = true)] + Gp2_r14(MeasGapConfig_setupGapOffset_gp2_r14), + #[asn(key = 1, extended = true)] + Gp3_r14(MeasGapConfig_setupGapOffset_gp3_r14), + #[asn(key = 2, extended = true)] + Gp_ncsg0_r14(MeasGapConfig_setupGapOffset_gp_ncsg0_r14), + #[asn(key = 3, extended = true)] + Gp_ncsg1_r14(MeasGapConfig_setupGapOffset_gp_ncsg1_r14), + #[asn(key = 4, extended = true)] + Gp_ncsg2_r14(MeasGapConfig_setupGapOffset_gp_ncsg2_r14), + #[asn(key = 5, extended = true)] + Gp_ncsg3_r14(MeasGapConfig_setupGapOffset_gp_ncsg3_r14), + #[asn(key = 6, extended = true)] + Gp_nonUniform1_r14(MeasGapConfig_setupGapOffset_gp_nonUniform1_r14), + #[asn(key = 7, extended = true)] + Gp_nonUniform2_r14(MeasGapConfig_setupGapOffset_gp_nonUniform2_r14), + #[asn(key = 8, extended = true)] + Gp_nonUniform3_r14(MeasGapConfig_setupGapOffset_gp_nonUniform3_r14), + #[asn(key = 9, extended = true)] + Gp_nonUniform4_r14(MeasGapConfig_setupGapOffset_gp_nonUniform4_r14), + #[asn(key = 10, extended = true)] + Gp4_r15(MeasGapConfig_setupGapOffset_gp4_r15), + #[asn(key = 11, extended = true)] + Gp5_r15(MeasGapConfig_setupGapOffset_gp5_r15), + #[asn(key = 12, extended = true)] + Gp6_r15(MeasGapConfig_setupGapOffset_gp6_r15), + #[asn(key = 13, extended = true)] + Gp7_r15(MeasGapConfig_setupGapOffset_gp7_r15), + #[asn(key = 14, extended = true)] + Gp8_r15(MeasGapConfig_setupGapOffset_gp8_r15), + #[asn(key = 15, extended = true)] + Gp9_r15(MeasGapConfig_setupGapOffset_gp9_r15), + #[asn(key = 16, extended = true)] + Gp10_r15(MeasGapConfig_setupGapOffset_gp10_r15), + #[asn(key = 17, extended = true)] + Gp11_r15(MeasGapConfig_setupGapOffset_gp11_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasGapConfig_setup { + pub gap_offset: MeasGapConfig_setupGapOffset, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasGapConfigDensePRS_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd0_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd1_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd2_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd3_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd4_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd5_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd6_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd7_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd8_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd9_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd10_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd11_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd12_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd13_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd14_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd15_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd16_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd17_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd18_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd19_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1279")] +pub struct MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd20_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "20", extensible = true)] +pub enum MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15 { + #[asn(key = 0, extended = false)] + Rstd0_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd0_r15), + #[asn(key = 1, extended = false)] + Rstd1_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd1_r15), + #[asn(key = 2, extended = false)] + Rstd2_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd2_r15), + #[asn(key = 3, extended = false)] + Rstd3_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd3_r15), + #[asn(key = 4, extended = false)] + Rstd4_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd4_r15), + #[asn(key = 5, extended = false)] + Rstd5_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd5_r15), + #[asn(key = 6, extended = false)] + Rstd6_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd6_r15), + #[asn(key = 7, extended = false)] + Rstd7_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd7_r15), + #[asn(key = 8, extended = false)] + Rstd8_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd8_r15), + #[asn(key = 9, extended = false)] + Rstd9_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd9_r15), + #[asn(key = 10, extended = false)] + Rstd10_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd10_r15), + #[asn(key = 11, extended = false)] + Rstd11_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd11_r15), + #[asn(key = 12, extended = false)] + Rstd12_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd12_r15), + #[asn(key = 13, extended = false)] + Rstd13_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd13_r15), + #[asn(key = 14, extended = false)] + Rstd14_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd14_r15), + #[asn(key = 15, extended = false)] + Rstd15_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd15_r15), + #[asn(key = 16, extended = false)] + Rstd16_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd16_r15), + #[asn(key = 17, extended = false)] + Rstd17_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd17_r15), + #[asn(key = 18, extended = false)] + Rstd18_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd18_r15), + #[asn(key = 19, extended = false)] + Rstd19_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd19_r15), + #[asn(key = 20, extended = false)] + Rstd20_r15(MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15_rstd20_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasGapConfigDensePRS_r15_setup { + pub gap_offset_dense_prs_r15: MeasGapConfigDensePRS_r15_setupGapOffsetDensePRS_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasGapConfigPerCC_List_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasGapConfigPerCC_List_r14_setup { + #[asn(optional_idx = 0)] + pub meas_gap_config_to_remove_list_r14: Option, + #[asn(optional_idx = 1)] + pub meas_gap_config_to_add_mod_list_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasGapSharingConfig_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MeasGapSharingConfig_r14_setupMeasGapSharingScheme_r14(pub u8); +impl MeasGapSharingConfig_r14_setupMeasGapSharingScheme_r14 { + pub const SCHEME00: u8 = 0u8; + pub const SCHEME01: u8 = 1u8; + pub const SCHEME10: u8 = 2u8; + pub const SCHEME11: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasGapSharingConfig_r14_setup { + pub meas_gap_sharing_scheme_r14: MeasGapSharingConfig_r14_setupMeasGapSharingScheme_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct MeasIdleCarrierEUTRA_r15ReportQuantities(pub u8); +impl MeasIdleCarrierEUTRA_r15ReportQuantities { + pub const RSRP: u8 = 0u8; + pub const RSRQ: u8 = 1u8; + pub const BOTH: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasIdleCarrierEUTRA_r15QualityThreshold_r15 { + #[asn(optional_idx = 0)] + pub idle_rsrp_threshold_r15: Option, + #[asn(optional_idx = 1)] + pub idle_rsrq_threshold_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct MeasIdleCarrierNR_r16SubcarrierSpacingSSB_r16(pub u8); +impl MeasIdleCarrierNR_r16SubcarrierSpacingSSB_r16 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ120: u8 = 2u8; + pub const K_HZ240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct MeasIdleCarrierNR_r16ReportQuantitiesNR_r16(pub u8); +impl MeasIdleCarrierNR_r16ReportQuantitiesNR_r16 { + pub const RSRP: u8 = 0u8; + pub const RSRQ: u8 = 1u8; + pub const BOTH: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct MeasIdleCarrierNR_r16QualityThresholdNR_r16 { + #[asn(optional_idx = 0)] + pub idle_rsrp_threshold_nr_r16: Option, + #[asn(optional_idx = 1)] + pub idle_rsrq_threshold_nr_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MeasIdleCarrierNR_r16Ssb_MeasConfig_r16DeriveSSB_IndexFromCell_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct MeasIdleCarrierNR_r16Ssb_MeasConfig_r16 { + #[asn(optional_idx = 0)] + pub max_rs_index_cell_qual_r16: Option, + #[asn(optional_idx = 1)] + pub thresh_rs_index_r16: Option, + #[asn(optional_idx = 2)] + pub meas_timing_config_r16: Option, + #[asn(optional_idx = 3)] + pub ssb_to_measure_r16: Option, + pub derive_ssb_index_from_cell_r16: + MeasIdleCarrierNR_r16Ssb_MeasConfig_r16DeriveSSB_IndexFromCell_r16, + #[asn(optional_idx = 4)] + pub ss_rssi_measurement_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MeasIdleConfigDedicated_r15MeasIdleDuration_r15(pub u8); +impl MeasIdleConfigDedicated_r15MeasIdleDuration_r15 { + pub const SEC10: u8 = 0u8; + pub const SEC30: u8 = 1u8; + pub const SEC60: u8 = 2u8; + pub const SEC120: u8 = 3u8; + pub const SEC180: u8 = 4u8; + pub const SEC240: u8 = 5u8; + pub const SEC300: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct MeasObjectCDMA2000SearchWindowSize(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MeasObjectGERANNcc_Permitted(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct MeasObjectNR_r15QuantityConfigSet_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct MeasObjectNR_r15CellsForWhichToReportSFTD_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = true)] +pub enum MeasObjectToAddModMeasObject { + #[asn(key = 0, extended = false)] + MeasObjectEUTRA(MeasObjectEUTRA), + #[asn(key = 1, extended = false)] + MeasObjectUTRA(MeasObjectUTRA), + #[asn(key = 2, extended = false)] + MeasObjectGERAN(MeasObjectGERAN), + #[asn(key = 3, extended = false)] + MeasObjectCDMA2000(MeasObjectCDMA2000), + #[asn(key = 0, extended = true)] + MeasObjectWLAN_r13(MeasObjectWLAN_r13), + #[asn(key = 1, extended = true)] + MeasObjectNR_r15(MeasObjectNR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = true)] +pub enum MeasObjectToAddModExt_r13MeasObject_r13 { + #[asn(key = 0, extended = false)] + MeasObjectEUTRA_r13(MeasObjectEUTRA), + #[asn(key = 1, extended = false)] + MeasObjectUTRA_r13(MeasObjectUTRA), + #[asn(key = 2, extended = false)] + MeasObjectGERAN_r13(MeasObjectGERAN), + #[asn(key = 3, extended = false)] + MeasObjectCDMA2000_r13(MeasObjectCDMA2000), + #[asn(key = 0, extended = true)] + MeasObjectWLAN_v1320(MeasObjectWLAN_r13), + #[asn(key = 1, extended = true)] + MeasObjectNR_r15(MeasObjectNR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasObjectUTRACellsToAddModList { + #[asn(key = 0, extended = false)] + CellsToAddModListUTRA_FDD(CellsToAddModListUTRA_FDD), + #[asn(key = 1, extended = false)] + CellsToAddModListUTRA_TDD(CellsToAddModListUTRA_TDD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasObjectUTRACellForWhichToReportCGI { + #[asn(key = 0, extended = false)] + Utra_FDD(PhysCellIdUTRA_FDD), + #[asn(key = 1, extended = false)] + Utra_TDD(PhysCellIdUTRA_TDD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasObjectWLAN_r13CarrierFreq_r13_bandIndicatorListWLAN_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasObjectWLAN_r13CarrierFreq_r13_carrierInfoListWLAN_r13(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasObjectWLAN_r13CarrierFreq_r13 { + #[asn(key = 0, extended = false)] + BandIndicatorListWLAN_r13(MeasObjectWLAN_r13CarrierFreq_r13_bandIndicatorListWLAN_r13), + #[asn(key = 1, extended = false)] + CarrierInfoListWLAN_r13(MeasObjectWLAN_r13CarrierFreq_r13_carrierInfoListWLAN_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1130RsrqMeasWideband_r11(pub u8); +impl MeasParameters_v1130RsrqMeasWideband_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v11a0BenefitsFromInterruption_r11(pub u8); +impl MeasParameters_v11a0BenefitsFromInterruption_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250TimerT312_r12(pub u8); +impl MeasParameters_v1250TimerT312_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250AlternativeTimeToTrigger_r12(pub u8); +impl MeasParameters_v1250AlternativeTimeToTrigger_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250IncMonEUTRA_r12(pub u8); +impl MeasParameters_v1250IncMonEUTRA_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250IncMonUTRA_r12(pub u8); +impl MeasParameters_v1250IncMonUTRA_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250ExtendedMaxMeasId_r12(pub u8); +impl MeasParameters_v1250ExtendedMaxMeasId_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250ExtendedRSRQ_LowerRange_r12(pub u8); +impl MeasParameters_v1250ExtendedRSRQ_LowerRange_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250Rsrq_OnAllSymbols_r12(pub u8); +impl MeasParameters_v1250Rsrq_OnAllSymbols_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250Crs_DiscoverySignalsMeas_r12(pub u8); +impl MeasParameters_v1250Crs_DiscoverySignalsMeas_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1250Csi_RS_DiscoverySignalsMeas_r12(pub u8); +impl MeasParameters_v1250Csi_RS_DiscoverySignalsMeas_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310Rs_SINR_Meas_r13(pub u8); +impl MeasParameters_v1310Rs_SINR_Meas_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310AllowedCellList_r13(pub u8); +impl MeasParameters_v1310AllowedCellList_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310ExtendedMaxObjectId_r13(pub u8); +impl MeasParameters_v1310ExtendedMaxObjectId_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310Ul_PDCP_Delay_r13(pub u8); +impl MeasParameters_v1310Ul_PDCP_Delay_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310ExtendedFreqPriorities_r13(pub u8); +impl MeasParameters_v1310ExtendedFreqPriorities_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310MultiBandInfoReport_r13(pub u8); +impl MeasParameters_v1310MultiBandInfoReport_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1310Rssi_AndChannelOccupancyReporting_r13(pub u8); +impl MeasParameters_v1310Rssi_AndChannelOccupancyReporting_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1430CeMeasurements_r14(pub u8); +impl MeasParameters_v1430CeMeasurements_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1430Ncsg_r14(pub u8); +impl MeasParameters_v1430Ncsg_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1430ShortMeasurementGap_r14(pub u8); +impl MeasParameters_v1430ShortMeasurementGap_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1430PerServingCellMeasurementGap_r14(pub u8); +impl MeasParameters_v1430PerServingCellMeasurementGap_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1430NonUniformGap_r14(pub u8); +impl MeasParameters_v1430NonUniformGap_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MeasParameters_v1520MeasGapPatterns_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530Qoe_MeasReport_r15(pub u8); +impl MeasParameters_v1530Qoe_MeasReport_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530Qoe_MTSI_MeasReport_r15(pub u8); +impl MeasParameters_v1530Qoe_MTSI_MeasReport_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530Ca_IdleModeMeasurements_r15(pub u8); +impl MeasParameters_v1530Ca_IdleModeMeasurements_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530Ca_IdleModeValidityArea_r15(pub u8); +impl MeasParameters_v1530Ca_IdleModeValidityArea_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530HeightMeas_r15(pub u8); +impl MeasParameters_v1530HeightMeas_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1530MultipleCellsMeasExtension_r15(pub u8); +impl MeasParameters_v1530MultipleCellsMeasExtension_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct MeasParameters_v1610BandInfoNR_v1610(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610AltFreqPriority_r16(pub u8); +impl MeasParameters_v1610AltFreqPriority_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610Ce_DL_ChannelQualityReporting_r16(pub u8); +impl MeasParameters_v1610Ce_DL_ChannelQualityReporting_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610Ce_MeasRSS_Dedicated_r16(pub u8); +impl MeasParameters_v1610Ce_MeasRSS_Dedicated_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610Eutra_IdleInactiveMeasurements_r16(pub u8); +impl MeasParameters_v1610Eutra_IdleInactiveMeasurements_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610Nr_IdleInactiveMeasFR1_r16(pub u8); +impl MeasParameters_v1610Nr_IdleInactiveMeasFR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610Nr_IdleInactiveMeasFR2_r16(pub u8); +impl MeasParameters_v1610Nr_IdleInactiveMeasFR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610IdleInactiveValidityAreaList_r16(pub u8); +impl MeasParameters_v1610IdleInactiveValidityAreaList_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610MeasGapPatterns_NRonly_r16(pub u8); +impl MeasParameters_v1610MeasGapPatterns_NRonly_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1610MeasGapPatterns_NRonly_ENDC_r16(pub u8); +impl MeasParameters_v1610MeasGapPatterns_NRonly_ENDC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1630Nr_IdleInactiveBeamMeasFR1_r16(pub u8); +impl MeasParameters_v1630Nr_IdleInactiveBeamMeasFR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1630Nr_IdleInactiveBeamMeasFR2_r16(pub u8); +impl MeasParameters_v1630Nr_IdleInactiveBeamMeasFR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v1630Ce_MeasRSS_DedicatedSameRBs_r16(pub u8); +impl MeasParameters_v1630Ce_MeasRSS_DedicatedSameRBs_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasParameters_v16c0Nr_CellIndividualOffset_r16(pub u8); +impl MeasParameters_v16c0Nr_CellIndividualOffset_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "1024" +)] +pub struct MeasParameters_v1700SharedSpectrumMeasNR_EN_DC_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "1024" +)] +pub struct MeasParameters_v1700SharedSpectrumMeasNR_SA_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasReportAppLayer_r15CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasReportAppLayer_r15CriticalExtensions { + #[asn(key = 0, extended = false)] + MeasReportAppLayer_r15(MeasReportAppLayer_r15_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MeasReportAppLayer_r15CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "8000" +)] +pub struct MeasReportAppLayer_r15_IEsMeasReportAppLayerContainer_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MeasReportAppLayer_r15_IEsServiceType_r15(pub u8); +impl MeasReportAppLayer_r15_IEsServiceType_r15 { + pub const QOE: u8 = 0u8; + pub const QOEMTSI: u8 = 1u8; + pub const SPARE6: u8 = 2u8; + pub const SPARE5: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MeasReportAppLayer_v1590_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasReportAppLayer_v1590_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "32767")] +pub struct MeasResultCDMA2000MeasResultPilotPnPhase(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct MeasResultCDMA2000MeasResultPilotStrength(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct MeasResultCDMA2000MeasResult { + #[asn(optional_idx = 0)] + pub pilot_pn_phase: Option, + pub pilot_strength: MeasResultCDMA2000MeasResultPilotStrength, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct MeasResultCellSFTD_r15Sfn_OffsetResult_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30720", ub = "30719")] +pub struct MeasResultCellSFTD_r15FrameBoundaryOffsetResult_r15(pub i16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultEUTRACgi_Info { + pub cell_global_id: CellGlobalIdEUTRA, + pub tracking_area_code: TrackingAreaCode, + #[asn(optional_idx = 0)] + pub plmn_identity_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultEUTRAMeasResult { + #[asn(optional_idx = 0)] + pub rsrp_result: Option, + #[asn(optional_idx = 1)] + pub rsrq_result: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4095")] +pub struct MeasResultForECID_r9Ue_RxTxTimeDiffResult_r9(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct MeasResultForECID_r9CurrentSFN_r9(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "100")] +pub struct MeasResultForRSSI_NR_r16ChannelOccupancyNR_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "100")] +pub struct MeasResultForRSSI_r13ChannelOccupancy_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MeasResultGERANCgi_InfoRoutingAreaCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultGERANCgi_Info { + pub cell_global_id: CellGlobalIdGERAN, + #[asn(optional_idx = 0)] + pub routing_area_code: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct MeasResultGERANMeasResultRssi(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct MeasResultGERANMeasResult { + pub rssi: MeasResultGERANMeasResultRssi, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultIdle_r15MeasResultServingCell_r15 { + pub rsrp_result_r15: RSRP_Range, + pub rsrq_result_r15: RSRQ_Range_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = true)] +pub enum MeasResultIdle_r15MeasResultNeighCells_r15 { + #[asn(key = 0, extended = false)] + MeasResultIdleListEUTRA_r15(MeasResultIdleListEUTRA_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultIdleEUTRA_r15MeasResult_r15 { + pub rsrp_result_r15: RSRP_Range, + pub rsrq_result_r15: RSRQ_Range_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct MeasResultIdleNR_r16MeasResultsPerCellListIdleNR_r16( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultMBSFN_r12Mbsfn_Area_r12 { + pub mbsfn_area_id_r12: MBSFN_AreaId_r12, + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct MeasResultSSTD_r13Sfn_OffsetResult_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-5", ub = "4")] +pub struct MeasResultSSTD_r13FrameBoundaryOffsetResult_r13(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct MeasResultSSTD_r13SubframeBoundaryOffsetResult_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10239")] +pub struct MeasResultSensing_r15Sl_SubframeRef_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "0", + sz_ub = "400" +)] +pub struct MeasResultSensing_r15SensingResult_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultServCellSCG_r12MeasResultSCell_r12 { + pub rsrp_result_s_cell_r12: RSRP_Range, + pub rsrq_result_s_cell_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultServFreq_r10MeasResultSCell_r10 { + pub rsrp_result_s_cell_r10: RSRP_Range, + pub rsrq_result_s_cell_r10: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultServFreq_r10MeasResultBestNeighCell_r10 { + pub phys_cell_id_r10: PhysCellId, + pub rsrp_result_n_cell_r10: RSRP_Range, + pub rsrq_result_n_cell_r10: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultServFreq_r13MeasResultSCell_r13 { + pub rsrp_result_s_cell_r13: RSRP_Range, + pub rsrq_result_s_cell_r13: RSRQ_Range_r13, + #[asn(optional_idx = 0)] + pub rs_sinr_result_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasResultServFreq_r13MeasResultBestNeighCell_r13 { + pub phys_cell_id_r13: PhysCellId, + pub rsrp_result_n_cell_r13: RSRP_Range, + pub rsrq_result_n_cell_r13: RSRQ_Range_r13, + #[asn(optional_idx = 0)] + pub rs_sinr_result_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasResultUTRAPhysCellId { + #[asn(key = 0, extended = false)] + Fdd(PhysCellIdUTRA_FDD), + #[asn(key = 1, extended = false)] + Tdd(PhysCellIdUTRA_TDD), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct MeasResultUTRACgi_InfoLocationAreaCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct MeasResultUTRACgi_InfoRoutingAreaCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MeasResultUTRACgi_Info { + pub cell_global_id: CellGlobalIdUTRA, + #[asn(optional_idx = 0)] + pub location_area_code: Option, + #[asn(optional_idx = 1)] + pub routing_area_code: Option, + #[asn(optional_idx = 2)] + pub plmn_identity_list: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-5", ub = "91")] +pub struct MeasResultUTRAMeasResultUtra_RSCP(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "49")] +pub struct MeasResultUTRAMeasResultUtra_EcN0(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct MeasResultUTRAMeasResult { + #[asn(optional_idx = 0)] + pub utra_rscp: Option, + #[asn(optional_idx = 1)] + pub utra_ec_n0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31250")] +pub struct MeasResultWLAN_r13AvailableAdmissionCapacityWLAN_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct MeasResultWLAN_r13ChannelUtilizationWLAN_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct MeasResultWLAN_r13StationCountWLAN_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MeasResultWLAN_r13ConnectedWLAN_r13(pub u8); +impl MeasResultWLAN_r13ConnectedWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasResultsMeasResultPCell { + pub rsrp_result: RSRP_Range, + pub rsrq_result: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = true)] +pub enum MeasResultsMeasResultNeighCells { + #[asn(key = 0, extended = false)] + MeasResultListEUTRA(MeasResultListEUTRA), + #[asn(key = 1, extended = false)] + MeasResultListUTRA(MeasResultListUTRA), + #[asn(key = 2, extended = false)] + MeasResultListGERAN(MeasResultListGERAN), + #[asn(key = 3, extended = false)] + MeasResultsCDMA2000(MeasResultsCDMA2000), + #[asn(key = 0, extended = true)] + MeasResultNeighCellListNR_r15(MeasResultCellListNR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MeasResultsCDMA2000PreRegistrationStatusHRPD(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct MeasResultsPerCellIdleNR_r16MeasIdleResultNR_r16 { + #[asn(optional_idx = 0)] + pub rsrp_result_nr_r16: Option, + #[asn(optional_idx = 1)] + pub rsrq_result_nr_r16: Option, + #[asn(optional_idx = 2)] + pub result_rs_index_list_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "20")] +pub struct MeasSensing_Config_r15SensingSubchannelNumber_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "11")] +pub struct MeasSensing_Config_r15SensingPeriodicity_r15(pub u8); +impl MeasSensing_Config_r15SensingPeriodicity_r15 { + pub const MS20: u8 = 0u8; + pub const MS50: u8 = 1u8; + pub const MS100: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS300: u8 = 4u8; + pub const MS400: u8 = 5u8; + pub const MS500: u8 = 6u8; + pub const MS600: u8 = 7u8; + pub const MS700: u8 = 8u8; + pub const MS800: u8 = 9u8; + pub const MS900: u8 = 10u8; + pub const MS1000: u8 = 11u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "75")] +pub struct MeasSensing_Config_r15SensingReselectionCounter_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct MeasSensing_Config_r15SensingPriority_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct MeasSubframePattern_r10_subframePatternFDD_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "20", sz_ub = "20")] +pub struct MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig1_5_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "70", sz_ub = "70")] +pub struct MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig0_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "60", sz_ub = "60")] +pub struct MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig6_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = true)] +pub enum MeasSubframePattern_r10_subframePatternTDD_r10 { + #[asn(key = 0, extended = false)] + SubframeConfig1_5_r10(MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig1_5_r10), + #[asn(key = 1, extended = false)] + SubframeConfig0_r10(MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig0_r10), + #[asn(key = 2, extended = false)] + SubframeConfig6_r10(MeasSubframePattern_r10_subframePatternTDD_r10_subframeConfig6_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasSubframePatternConfigNeigh_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct MeasSubframePatternConfigNeigh_r10_setup { + pub meas_subframe_pattern_neigh_r10: MeasSubframePattern_r10, + #[asn(optional_idx = 0)] + pub meas_subframe_cell_list_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasSubframePatternPCell_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MeasurementReportCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum MeasurementReportCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + MeasurementReport_r8(MeasurementReport_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(MeasurementReportCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(MeasurementReportCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(MeasurementReportCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(MeasurementReportCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(MeasurementReportCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(MeasurementReportCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(MeasurementReportCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasurementReportCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MeasurementReportCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(MeasurementReportCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MeasurementReportCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MeasurementReport_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MeasurementReport_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MobilityControlInfoT304(pub u8); +impl MobilityControlInfoT304 { + pub const MS50: u8 = 0u8; + pub const MS100: u8 = 1u8; + pub const MS150: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS2000: u8 = 6u8; + pub const MS10000_V1310: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MobilityControlInfoSCG_r12T307_r12(pub u8); +impl MobilityControlInfoSCG_r12T307_r12 { + pub const MS50: u8 = 0u8; + pub const MS100: u8 = 1u8; + pub const MS150: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS2000: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MobilityFromEUTRACommandCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct MobilityFromEUTRACommandCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum MobilityFromEUTRACommandCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + MobilityFromEUTRACommand_r8(MobilityFromEUTRACommand_r8_IEs), + #[asn(key = 1, extended = false)] + MobilityFromEUTRACommand_r9(MobilityFromEUTRACommand_r9_IEs), + #[asn(key = 2, extended = false)] + Spare2(MobilityFromEUTRACommandCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(MobilityFromEUTRACommandCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MobilityFromEUTRACommandCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MobilityFromEUTRACommandCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(MobilityFromEUTRACommandCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(MobilityFromEUTRACommandCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MobilityFromEUTRACommand_r8_IEsCs_FallbackIndicator(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum MobilityFromEUTRACommand_r8_IEsPurpose { + #[asn(key = 0, extended = false)] + Handover(Handover), + #[asn(key = 1, extended = false)] + CellChangeOrder(CellChangeOrder), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct MobilityFromEUTRACommand_r9_IEsCs_FallbackIndicator(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = true)] +pub enum MobilityFromEUTRACommand_r9_IEsPurpose { + #[asn(key = 0, extended = false)] + Handover(Handover), + #[asn(key = 1, extended = false)] + CellChangeOrder(CellChangeOrder), + #[asn(key = 2, extended = false)] + E_CSFB_r9(E_CSFB_r9), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MobilityFromEUTRACommand_v1530_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MobilityFromEUTRACommand_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct MobilityFromEUTRACommand_v8d0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct MobilityFromEUTRACommand_v930_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_r14MakeBeforeBreak_r14(pub u8); +impl MobilityParameters_r14MakeBeforeBreak_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_r14Rach_Less_r14(pub u8); +impl MobilityParameters_r14Rach_Less_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_v1610Cho_r16(pub u8); +impl MobilityParameters_v1610Cho_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_v1610Cho_FDD_TDD_r16(pub u8); +impl MobilityParameters_v1610Cho_FDD_TDD_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_v1610Cho_Failure_r16(pub u8); +impl MobilityParameters_v1610Cho_Failure_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct MobilityParameters_v1610Cho_TwoTriggerEvents_r16(pub u8); +impl MobilityParameters_v1610Cho_TwoTriggerEvents_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MobilityStateParametersT_Evaluation(pub u8); +impl MobilityStateParametersT_Evaluation { + pub const S30: u8 = 0u8; + pub const S60: u8 = 1u8; + pub const S120: u8 = 2u8; + pub const S180: u8 = 3u8; + pub const S240: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct MobilityStateParametersT_HystNormal(pub u8); +impl MobilityStateParametersT_HystNormal { + pub const S30: u8 = 0u8; + pub const S60: u8 = 1u8; + pub const S120: u8 = 2u8; + pub const S180: u8 = 3u8; + pub const S240: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct MobilityStateParametersN_CellChangeMedium(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct MobilityStateParametersN_CellChangeHigh(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct N1PUCCH_AN_CS_r10_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct N1PUCCH_AN_InfoList_r13_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct N1PUCCH_AN_PersistentList_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct N1SPUCCH_AN_PersistentList_r15_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "109")] +pub struct N4SPUCCH_Resource_r15N4startingPRB_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct N4SPUCCH_Resource_r15N4numberOfPRB_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct NAICS_AssistanceInfo_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct NAICS_AssistanceInfo_r12_setup { + #[asn(optional_idx = 0)] + pub neigh_cells_to_release_list_r12: Option, + #[asn(optional_idx = 1)] + pub neigh_cells_to_add_mod_list_r12: Option, + #[asn(optional_idx = 2)] + pub serv_cellp_a_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "5")] +pub struct NAICS_Capability_Entry_r12NumberOfNAICS_CapableCC_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct NAICS_Capability_Entry_r12NumberOfAggregatedPRB_r12(pub u8); +impl NAICS_Capability_Entry_r12NumberOfAggregatedPRB_r12 { + pub const N50: u8 = 0u8; + pub const N75: u8 = 1u8; + pub const N100: u8 = 2u8; + pub const N125: u8 = 3u8; + pub const N150: u8 = 4u8; + pub const N175: u8 = 5u8; + pub const N200: u8 = 6u8; + pub const N225: u8 = 7u8; + pub const N250: u8 = 8u8; + pub const N275: u8 = 9u8; + pub const N300: u8 = 10u8; + pub const N350: u8 = 11u8; + pub const N400: u8 = 12u8; + pub const N450: u8 = 13u8; + pub const N500: u8 = 14u8; + pub const SPARE: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NTN_Parameters_r17Ntn_Connectivity_EPC_r17(pub u8); +impl NTN_Parameters_r17Ntn_Connectivity_EPC_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NTN_Parameters_r17Ntn_TA_Report_r17(pub u8); +impl NTN_Parameters_r17Ntn_TA_Report_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NTN_Parameters_r17Ntn_PUR_TimerDelay_r17(pub u8); +impl NTN_Parameters_r17Ntn_PUR_TimerDelay_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NTN_Parameters_r17Ntn_OffsetTimingEnh_r17(pub u8); +impl NTN_Parameters_r17Ntn_OffsetTimingEnh_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct NTN_Parameters_r17Ntn_ScenarioSupport_r17(pub u8); +impl NTN_Parameters_r17Ntn_ScenarioSupport_r17 { + pub const NGSO: u8 = 0u8; + pub const GSO: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct NTN_Parameters_v1720Ntn_SegmentedPrecompensationGaps_r17(pub u8); +impl NTN_Parameters_v1720Ntn_SegmentedPrecompensationGaps_r17 { + pub const SYM1: u8 = 0u8; + pub const SL1: u8 = 1u8; + pub const SF1: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct NeighCellCDMA2000_r11NeighFreqInfoList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_r9IntraFreqSI_AcquisitionForHO_r9(pub u8); +impl NeighCellSI_AcquisitionParameters_r9IntraFreqSI_AcquisitionForHO_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_r9InterFreqSI_AcquisitionForHO_r9(pub u8); +impl NeighCellSI_AcquisitionParameters_r9InterFreqSI_AcquisitionForHO_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_r9Utran_SI_AcquisitionForHO_r9(pub u8); +impl NeighCellSI_AcquisitionParameters_r9Utran_SI_AcquisitionForHO_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1530ReportCGI_NR_EN_DC_r15(pub u8); +impl NeighCellSI_AcquisitionParameters_v1530ReportCGI_NR_EN_DC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1530ReportCGI_NR_NoEN_DC_r15(pub u8); +impl NeighCellSI_AcquisitionParameters_v1530ReportCGI_NR_NoEN_DC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1550Eutra_CGI_Reporting_ENDC_r15(pub u8); +impl NeighCellSI_AcquisitionParameters_v1550Eutra_CGI_Reporting_ENDC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1550Utra_GERAN_CGI_Reporting_ENDC_r15(pub u8); +impl NeighCellSI_AcquisitionParameters_v1550Utra_GERAN_CGI_Reporting_ENDC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v15a0Eutra_CGI_Reporting_NEDC_r15(pub u8); +impl NeighCellSI_AcquisitionParameters_v15a0Eutra_CGI_Reporting_NEDC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1610Eutra_SI_AcquisitionForHO_ENDC_r16(pub u8); +impl NeighCellSI_AcquisitionParameters_v1610Eutra_SI_AcquisitionForHO_ENDC_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_ENDC_FR1_r16(pub u8); +impl NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_ENDC_FR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_ENDC_FR2_r16(pub u8); +impl NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_ENDC_FR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_FR1_r16(pub u8); +impl NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_FR1_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_FR2_r16(pub u8); +impl NeighCellSI_AcquisitionParameters_v1610Nr_AutonomousGaps_FR2_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1710GNB_ID_Length_Reporting_NR_EN_DC_r17(pub u8); +impl NeighCellSI_AcquisitionParameters_v1710GNB_ID_Length_Reporting_NR_EN_DC_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NeighCellSI_AcquisitionParameters_v1710GNB_ID_Length_Reporting_NR_NoEN_DC_r17(pub u8); +impl NeighCellSI_AcquisitionParameters_v1710GNB_ID_Length_Reporting_NR_NoEN_DC_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct NeighCellsCRS_Info_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct NeighCellsCRS_Info_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct NeighCellsCRS_Info_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct NeighCellsInfo_r12P_b_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct NeighCellsInfo_r12Crs_PortsCount_r12(pub u8); +impl NeighCellsInfo_r12Crs_PortsCount_r12 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct NeighCellsInfo_r12P_aList_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct NeighCellsInfo_r12TransmissionModeList_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct NeighCellsInfo_r12ResAllocGranularity_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "40")] +pub struct NeighCellsPerBandclassCDMA2000_r11PhysCellIdList_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct NonContiguousUL_RA_WithinCC_r10NonContiguousUL_RA_WithinCC_Info_r10(pub u8); +impl NonContiguousUL_RA_WithinCC_r10NonContiguousUL_RA_WithinCC_Info_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct NonMBSFN_SubframeConfig_r14RadioFrameAllocationPeriod_r14(pub u8); +impl NonMBSFN_SubframeConfig_r14RadioFrameAllocationPeriod_r14 { + pub const RF4: u8 = 0u8; + pub const RF8: u8 = 1u8; + pub const RF16: u8 = 2u8; + pub const RF32: u8 = 3u8; + pub const RF64: u8 = 4u8; + pub const RF128: u8 = 5u8; + pub const RF512: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct NonMBSFN_SubframeConfig_r14RadioFrameAllocationOffset_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "9", sz_ub = "9")] +pub struct NonMBSFN_SubframeConfig_r14SubframeAllocation_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct OTDOA_PositioningCapabilities_r10Otdoa_UE_Assisted_r10(pub u8); +impl OTDOA_PositioningCapabilities_r10Otdoa_UE_Assisted_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct OTDOA_PositioningCapabilities_r10InterFreqRSTD_Measurement_r10(pub u8); +impl OTDOA_PositioningCapabilities_r10InterFreqRSTD_Measurement_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ObtainLocationConfig_r11ObtainLocation_r11(pub u8); +impl ObtainLocationConfig_r11ObtainLocation_r11 { + pub const SETUP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_r11InDeviceCoexInd_r11(pub u8); +impl Other_Parameters_r11InDeviceCoexInd_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_r11PowerPrefInd_r11(pub u8); +impl Other_Parameters_r11PowerPrefInd_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_r11Ue_Rx_TxTimeDiffMeasurements_r11(pub u8); +impl Other_Parameters_r11Ue_Rx_TxTimeDiffMeasurements_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v11d0InDeviceCoexInd_UL_CA_r11(pub u8); +impl Other_Parameters_v11d0InDeviceCoexInd_UL_CA_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1360InDeviceCoexInd_HardwareSharingInd_r13(pub u8); +impl Other_Parameters_v1360InDeviceCoexInd_HardwareSharingInd_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1430BwPrefInd_r14(pub u8); +impl Other_Parameters_v1430BwPrefInd_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1430Rlm_ReportSupport_r14(pub u8); +impl Other_Parameters_v1430Rlm_ReportSupport_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1460NonCSG_SI_Reporting_r14(pub u8); +impl Other_Parameters_v1460NonCSG_SI_Reporting_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1530AssistInfoBitForLC_r15(pub u8); +impl Other_Parameters_v1530AssistInfoBitForLC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1530TimeReferenceProvision_r15(pub u8); +impl Other_Parameters_v1530TimeReferenceProvision_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1530FlightPathPlan_r15(pub u8); +impl Other_Parameters_v1530FlightPathPlan_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1540InDeviceCoexInd_ENDC_r15(pub u8); +impl Other_Parameters_v1540InDeviceCoexInd_ENDC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610ResumeWithStoredMCG_SCells_r16(pub u8); +impl Other_Parameters_v1610ResumeWithStoredMCG_SCells_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610ResumeWithMCG_SCellConfig_r16(pub u8); +impl Other_Parameters_v1610ResumeWithMCG_SCellConfig_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610ResumeWithStoredSCG_r16(pub u8); +impl Other_Parameters_v1610ResumeWithStoredSCG_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610ResumeWithSCG_Config_r16(pub u8); +impl Other_Parameters_v1610ResumeWithSCG_Config_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610McgRLF_RecoveryViaSCG_r16(pub u8); +impl Other_Parameters_v1610McgRLF_RecoveryViaSCG_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1610OverheatingIndForSCG_r16(pub u8); +impl Other_Parameters_v1610OverheatingIndForSCG_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1650MpsPriorityIndication_r16(pub u8); +impl Other_Parameters_v1650MpsPriorityIndication_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Other_Parameters_v1690Ul_RRC_Segmentation_r16(pub u8); +impl Other_Parameters_v1690Ul_RRC_Segmentation_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct OtherParameters_v1450OverheatingInd_r14(pub u8); +impl OtherParameters_v1450OverheatingInd_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct OverheatingAssistance_r14ReducedUE_CategoryReducedUE_CategoryDL(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "21")] +pub struct OverheatingAssistance_r14ReducedUE_CategoryReducedUE_CategoryUL(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct OverheatingAssistance_r14ReducedUE_Category { + pub reduced_ue_category_dl: OverheatingAssistance_r14ReducedUE_CategoryReducedUE_CategoryDL, + pub reduced_ue_category_ul: OverheatingAssistance_r14ReducedUE_CategoryReducedUE_CategoryUL, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct OverheatingAssistance_r14ReducedMaxCCsReducedCCsDL(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct OverheatingAssistance_r14ReducedMaxCCsReducedCCsUL(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct OverheatingAssistance_r14ReducedMaxCCs { + pub reduced_c_cs_dl: OverheatingAssistance_r14ReducedMaxCCsReducedCCsDL, + pub reduced_c_cs_ul: OverheatingAssistance_r14ReducedMaxCCsReducedCCsUL, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct OverheatingAssistance_v1610OverheatingAssistanceForSCG_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct OverheatingAssistance_v1710OverheatingAssistanceForSCG_FR2_2_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "15")] +pub struct P_C_AndCBSR_r11P_C_r11(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r11CodebookSubsetRestriction_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "15")] +pub struct P_C_AndCBSR_r13P_C_r13(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13CodebookSubsetRestriction1_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13CodebookSubsetRestriction2_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13 { + pub codebook_subset_restriction1_r13: + P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13CodebookSubsetRestriction1_r13, + pub codebook_subset_restriction2_r13: + P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13CodebookSubsetRestriction2_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedK1a_r13CodebookSubsetRestriction3_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedK1a_r13 { + pub codebook_subset_restriction3_r13: + P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedK1a_r13CodebookSubsetRestriction3_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedKN_r13CodebookSubsetRestriction_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedKN_r13 { + pub codebook_subset_restriction_r13: + P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedKN_r13CodebookSubsetRestriction_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum P_C_AndCBSR_r13Cbsr_Selection_r13 { + #[asn(key = 0, extended = false)] + NonPrecoded_r13(P_C_AndCBSR_r13Cbsr_Selection_r13_nonPrecoded_r13), + #[asn(key = 1, extended = false)] + BeamformedK1a_r13(P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedK1a_r13), + #[asn(key = 2, extended = false)] + BeamformedKN_r13(P_C_AndCBSR_r13Cbsr_Selection_r13_beamformedKN_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "15")] +pub struct P_C_AndCBSR_r15P_C_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING")] +pub struct P_C_AndCBSR_r15CodebookSubsetRestriction4_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PCCH_ConfigDefaultPagingCycle(pub u8); +impl PCCH_ConfigDefaultPagingCycle { + pub const RF32: u8 = 0u8; + pub const RF64: u8 = 1u8; + pub const RF128: u8 = 2u8; + pub const RF256: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PCCH_ConfigNB(pub u8); +impl PCCH_ConfigNB { + pub const FOUR_T: u8 = 0u8; + pub const TWO_T: u8 = 1u8; + pub const ONE_T: u8 = 2u8; + pub const HALF_T: u8 = 3u8; + pub const QUARTER_T: u8 = 4u8; + pub const ONE_EIGHTH_T: u8 = 5u8; + pub const ONE_SIXTEENTH_T: u8 = 6u8; + pub const ONE_THIRTY_SECOND_T: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PCCH_Config_v1310Paging_narrowBands_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct PCCH_Config_v1310Mpdcch_NumRepetition_Paging_r13(pub u8); +impl PCCH_Config_v1310Mpdcch_NumRepetition_Paging_r13 { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const R128: u8 = 7u8; + pub const R256: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PCCH_Config_v1310NB_v1310(pub u8); +impl PCCH_Config_v1310NB_v1310 { + pub const ONE64TH_T: u8 = 0u8; + pub const ONE128TH_T: u8 = 1u8; + pub const ONE256TH_T: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PCCH_Config_v1700RanPagingInIdlePO_r17(pub u8); +impl PCCH_Config_v1700RanPagingInIdlePO_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum PCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + Paging(Paging), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PCCH_MessageType_messageClassExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDCCH_CandidateReductions_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCCH_CandidateReductions_r13_setup { + pub pdcch_candidate_reduction_al1_r13: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al2_r13: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al3_r13: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al4_r13: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al5_r13: PDCCH_CandidateReductionValue_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDCCH_CandidateReductionsLAA_UL_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCCH_CandidateReductionsLAA_UL_r14_setup { + pub pdcch_candidate_reduction_al1_r14: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al2_r14: PDCCH_CandidateReductionValue_r13, + pub pdcch_candidate_reduction_al3_r14: PDCCH_CandidateReductionValue_r14, + pub pdcch_candidate_reduction_al4_r14: PDCCH_CandidateReductionValue_r14, + pub pdcch_candidate_reduction_al5_r14: PDCCH_CandidateReductionValue_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PDCCH_ConfigLAA_r14MaxNumberOfSchedSubframes_Format0B_r14(pub u8); +impl PDCCH_ConfigLAA_r14MaxNumberOfSchedSubframes_Format0B_r14 { + pub const SF2: u8 = 0u8; + pub const SF3: u8 = 1u8; + pub const SF4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PDCCH_ConfigLAA_r14MaxNumberOfSchedSubframes_Format4B_r14(pub u8); +impl PDCCH_ConfigLAA_r14MaxNumberOfSchedSubframes_Format4B_r14 { + pub const SF2: u8 = 0u8; + pub const SF3: u8 = 1u8; + pub const SF4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCCH_ConfigLAA_r14SkipMonitoringDCI_Format0A_r14(pub u8); +impl PDCCH_ConfigLAA_r14SkipMonitoringDCI_Format0A_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCCH_ConfigLAA_r14SkipMonitoringDCI_Format4A_r14(pub u8); +impl PDCCH_ConfigLAA_r14SkipMonitoringDCI_Format4A_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCCH_ConfigSCell_r13SkipMonitoringDCI_format0_1A_r13(pub u8); +impl PDCCH_ConfigSCell_r13SkipMonitoringDCI_format0_1A_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PDCP_ConfigDiscardTimer(pub u8); +impl PDCP_ConfigDiscardTimer { + pub const MS50: u8 = 0u8; + pub const MS100: u8 = 1u8; + pub const MS150: u8 = 2u8; + pub const MS300: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS750: u8 = 5u8; + pub const MS1500: u8 = 6u8; + pub const INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigRlc_AMStatusReportRequired(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCP_ConfigRlc_AM { + pub status_report_required: PDCP_ConfigRlc_AMStatusReportRequired, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDCP_ConfigRlc_UMPdcp_SN_Size(pub u8); +impl PDCP_ConfigRlc_UMPdcp_SN_Size { + pub const LEN7BITS: u8 = 0u8; + pub const LEN12BITS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCP_ConfigRlc_UM { + pub pdcp_sn_size: PDCP_ConfigRlc_UMPdcp_SN_Size, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDCP_ConfigHeaderCompression_notUsed; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16383")] +pub struct PDCP_ConfigHeaderCompression_rohcMaxCID(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0001(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0002(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0003(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0004(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0006(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0101(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0102(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0103(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0104(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCP_ConfigHeaderCompression_rohcProfiles { + pub profile0x0001: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0001, + pub profile0x0002: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0002, + pub profile0x0003: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0003, + pub profile0x0004: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0004, + pub profile0x0006: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0006, + pub profile0x0101: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0101, + pub profile0x0102: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0102, + pub profile0x0103: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0103, + pub profile0x0104: PDCP_ConfigHeaderCompression_rohcProfilesProfile0x0104, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct PDCP_ConfigHeaderCompression_rohc { + #[asn(optional_idx = 0)] + pub max_cid: Option, + pub profiles: PDCP_ConfigHeaderCompression_rohcProfiles, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDCP_ConfigHeaderCompression { + #[asn(key = 0, extended = false)] + NotUsed(PDCP_ConfigHeaderCompression_notUsed), + #[asn(key = 1, extended = false)] + Rohc(PDCP_ConfigHeaderCompression_rohc), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PDCP_ParametersMaxNumberROHC_ContextSessions(pub u8); +impl PDCP_ParametersMaxNumberROHC_ContextSessions { + pub const CS2: u8 = 0u8; + pub const CS4: u8 = 1u8; + pub const CS8: u8 = 2u8; + pub const CS12: u8 = 3u8; + pub const CS16: u8 = 4u8; + pub const CS24: u8 = 5u8; + pub const CS32: u8 = 6u8; + pub const CS48: u8 = 7u8; + pub const CS64: u8 = 8u8; + pub const CS128: u8 = 9u8; + pub const CS256: u8 = 10u8; + pub const CS512: u8 = 11u8; + pub const CS1024: u8 = 12u8; + pub const CS16384: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1130Pdcp_SN_Extension_r11(pub u8); +impl PDCP_Parameters_v1130Pdcp_SN_Extension_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1130SupportRohcContextContinue_r11(pub u8); +impl PDCP_Parameters_v1130SupportRohcContextContinue_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1310Pdcp_SN_Extension_18bits_r13(pub u8); +impl PDCP_Parameters_v1310Pdcp_SN_Extension_18bits_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_Parameters_v1430SupportedUplinkOnlyROHC_Profiles_r14Profile0x0006_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCP_Parameters_v1430SupportedUplinkOnlyROHC_Profiles_r14 { + pub profile0x0006_r14: + PDCP_Parameters_v1430SupportedUplinkOnlyROHC_Profiles_r14Profile0x0006_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PDCP_Parameters_v1430MaxNumberROHC_ContextSessions_r14(pub u8); +impl PDCP_Parameters_v1430MaxNumberROHC_ContextSessions_r14 { + pub const CS2: u8 = 0u8; + pub const CS4: u8 = 1u8; + pub const CS8: u8 = 2u8; + pub const CS12: u8 = 3u8; + pub const CS16: u8 = 4u8; + pub const CS24: u8 = 5u8; + pub const CS32: u8 = 6u8; + pub const CS48: u8 = 7u8; + pub const CS64: u8 = 8u8; + pub const CS128: u8 = 9u8; + pub const CS256: u8 = 10u8; + pub const CS512: u8 = 11u8; + pub const CS1024: u8 = 12u8; + pub const CS16384: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1530Pdcp_Duplication_r15(pub u8); +impl PDCP_Parameters_v1530Pdcp_Duplication_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1610Pdcp_VersionChangeWithoutHO_r16(pub u8); +impl PDCP_Parameters_v1610Pdcp_VersionChangeWithoutHO_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1610Ehc_r16(pub u8); +impl PDCP_Parameters_v1610Ehc_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1610ContinueEHC_Context_r16(pub u8); +impl PDCP_Parameters_v1610ContinueEHC_Context_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PDCP_Parameters_v1610MaxNumberEHC_Contexts_r16(pub u8); +impl PDCP_Parameters_v1610MaxNumberEHC_Contexts_r16 { + pub const CS2: u8 = 0u8; + pub const CS4: u8 = 1u8; + pub const CS8: u8 = 2u8; + pub const CS16: u8 = 3u8; + pub const CS32: u8 = 4u8; + pub const CS64: u8 = 5u8; + pub const CS128: u8 = 6u8; + pub const CS256: u8 = 7u8; + pub const CS512: u8 = 8u8; + pub const CS1024: u8 = 9u8; + pub const CS2048: u8 = 10u8; + pub const CS4096: u8 = 11u8; + pub const CS8192: u8 = 12u8; + pub const CS16384: u8 = 13u8; + pub const CS32768: u8 = 14u8; + pub const CS65536: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_Parameters_v1610JointEHC_ROHC_Config_r16(pub u8); +impl PDCP_Parameters_v1610JointEHC_ROHC_Config_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PDCP_ParametersNR_r15Rohc_ContextMaxSessions_r15(pub u8); +impl PDCP_ParametersNR_r15Rohc_ContextMaxSessions_r15 { + pub const CS2: u8 = 0u8; + pub const CS4: u8 = 1u8; + pub const CS8: u8 = 2u8; + pub const CS12: u8 = 3u8; + pub const CS16: u8 = 4u8; + pub const CS24: u8 = 5u8; + pub const CS32: u8 = 6u8; + pub const CS48: u8 = 7u8; + pub const CS64: u8 = 8u8; + pub const CS128: u8 = 9u8; + pub const CS256: u8 = 10u8; + pub const CS512: u8 = 11u8; + pub const CS1024: u8 = 12u8; + pub const CS16384: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PDCP_ParametersNR_r15Rohc_ProfilesUL_Only_r15Profile0x0006_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDCP_ParametersNR_r15Rohc_ProfilesUL_Only_r15 { + pub profile0x0006_r15: PDCP_ParametersNR_r15Rohc_ProfilesUL_Only_r15Profile0x0006_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_r15Rohc_ContextContinue_r15(pub u8); +impl PDCP_ParametersNR_r15Rohc_ContextContinue_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_r15OutOfOrderDelivery_r15(pub u8); +impl PDCP_ParametersNR_r15OutOfOrderDelivery_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_r15Sn_SizeLo_r15(pub u8); +impl PDCP_ParametersNR_r15Sn_SizeLo_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_r15Ims_VoiceOverNR_PDCP_MCG_Bearer_r15(pub u8); +impl PDCP_ParametersNR_r15Ims_VoiceOverNR_PDCP_MCG_Bearer_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_r15Ims_VoiceOverNR_PDCP_SCG_Bearer_r15(pub u8); +impl PDCP_ParametersNR_r15Ims_VoiceOverNR_PDCP_SCG_Bearer_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDCP_ParametersNR_v1560Ims_VoNR_PDCP_SCG_NGENDC_r15(pub u8); +impl PDCP_ParametersNR_v1560Ims_VoNR_PDCP_SCG_NGENDC_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "50")] +pub struct PDSCH_ConfigCommonReferenceSignalPower(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct PDSCH_ConfigCommonP_b(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDSCH_ConfigCommon_v1310Pdsch_maxNumRepetitionCEmodeA_r13(pub u8); +impl PDSCH_ConfigCommon_v1310Pdsch_maxNumRepetitionCEmodeA_r13 { + pub const R16: u8 = 0u8; + pub const R32: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PDSCH_ConfigCommon_v1310Pdsch_maxNumRepetitionCEmodeB_r13(pub u8); +impl PDSCH_ConfigCommon_v1310Pdsch_maxNumRepetitionCEmodeB_r13 { + pub const R192: u8 = 0u8; + pub const R256: u8 = 1u8; + pub const R384: u8 = 2u8; + pub const R512: u8 = 3u8; + pub const R768: u8 = 4u8; + pub const R1024: u8 = 5u8; + pub const R1536: u8 = 6u8; + pub const R2048: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PDSCH_ConfigDedicatedP_a(pub u8); +impl PDSCH_ConfigDedicatedP_a { + pub const D_B_6: u8 = 0u8; + pub const D_B_4DOT77: u8 = 1u8; + pub const D_B_3: u8 = 2u8; + pub const D_B_1DOT77: u8 = 3u8; + pub const D_B0: u8 = 4u8; + pub const D_B1: u8 = 5u8; + pub const D_B2: u8 = 6u8; + pub const D_B3: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDSCH_ConfigDedicated_v1130Qcl_Operation(pub u8); +impl PDSCH_ConfigDedicated_v1130Qcl_Operation { + pub const TYPE_A: u8 = 0u8; + pub const TYPE_B: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDSCH_ConfigDedicated_v1280TbsIndexAlt_r12(pub u8); +impl PDSCH_ConfigDedicated_v1280TbsIndexAlt_r12 { + pub const A26: u8 = 0u8; + pub const A33: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDSCH_ConfigDedicated_v1430Ce_PDSCH_MaxBandwidth_r14(pub u8); +impl PDSCH_ConfigDedicated_v1430Ce_PDSCH_MaxBandwidth_r14 { + pub const BW5: u8 = 0u8; + pub const BW20: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1430Ce_PDSCH_TenProcesses_r14(pub u8); +impl PDSCH_ConfigDedicated_v1430Ce_PDSCH_TenProcesses_r14 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1430Ce_HARQ_AckBundling_r14(pub u8); +impl PDSCH_ConfigDedicated_v1430Ce_HARQ_AckBundling_r14 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PDSCH_ConfigDedicated_v1430Ce_SchedulingEnhancement_r14(pub u8); +impl PDSCH_ConfigDedicated_v1430Ce_SchedulingEnhancement_r14 { + pub const RANGE1: u8 = 0u8; + pub const RANGE2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1430TbsIndexAlt2_r14(pub u8); +impl PDSCH_ConfigDedicated_v1430TbsIndexAlt2_r14 { + pub const B33: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1530Qcl_Operation_v1530(pub u8); +impl PDSCH_ConfigDedicated_v1530Qcl_Operation_v1530 { + pub const TYPE_C: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1530Tbs_IndexAlt3_r15(pub u8); +impl PDSCH_ConfigDedicated_v1530Tbs_IndexAlt3_r15 { + pub const A37: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1530Ce_CQI_AlternativeTableConfig_r15(pub u8); +impl PDSCH_ConfigDedicated_v1530Ce_CQI_AlternativeTableConfig_r15 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1530Ce_PDSCH_64QAM_Config_r15(pub u8); +impl PDSCH_ConfigDedicated_v1530Ce_PDSCH_64QAM_Config_r15 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1530Ce_PDSCH_FlexibleStartPRB_AllocConfig_r15(pub u8); +impl PDSCH_ConfigDedicated_v1530Ce_PDSCH_FlexibleStartPRB_AllocConfig_r15 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PDSCH_ConfigDedicated_v1530AltMCS_TableScalingConfig_r15(pub u8); +impl PDSCH_ConfigDedicated_v1530AltMCS_TableScalingConfig_r15 { + pub const O_DOT5: u8 = 0u8; + pub const O_DOT625: u8 = 1u8; + pub const O_DOT75: u8 = 2u8; + pub const O_DOT875: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDSCH_ConfigDedicated_v1610Ce_PDSCH_MultiTB_Config_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDSCH_ConfigDedicated_v1610Ce_PDSCH_MultiTB_Config_r16 { + #[asn(key = 0, extended = false)] + Release(PDSCH_ConfigDedicated_v1610Ce_PDSCH_MultiTB_Config_r16_release), + #[asn(key = 1, extended = false)] + Setup(CE_PDSCH_MultiTB_Config_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDSCH_ConfigDedicated_v1700Ce_PDSCH_14HARQ_Config_r17_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDSCH_ConfigDedicated_v1700Ce_PDSCH_14HARQ_Config_r17 { + #[asn(key = 0, extended = false)] + Release(PDSCH_ConfigDedicated_v1700Ce_PDSCH_14HARQ_Config_r17_release), + #[asn(key = 1, extended = false)] + Setup(CE_PDSCH_14HARQ_Config_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicated_v1700Ce_PDSCH_maxTBS_r17(pub u8); +impl PDSCH_ConfigDedicated_v1700Ce_PDSCH_maxTBS_r17 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PDSCH_ConfigDedicatedSCell_v1430TbsIndexAlt2_r14(pub u8); +impl PDSCH_ConfigDedicatedSCell_v1430TbsIndexAlt2_r14 { + pub const B33: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Crs_PortsCount_r11(pub u8); +impl PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Crs_PortsCount_r11 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5")] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Crs_FreqShift_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Mbsfn_SubframeConfigList_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Mbsfn_SubframeConfigList_r11_setup { + pub subframe_config_list: MBSFN_SubframeConfigList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Mbsfn_SubframeConfigList_r11 { + #[asn(key = 0, extended = false)] + Release( + PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Mbsfn_SubframeConfigList_r11_release, + ), + #[asn(key = 1, extended = false)] + Setup(PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Mbsfn_SubframeConfigList_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Pdsch_Start_r11(pub u8); +impl PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Pdsch_Start_r11 { + pub const RESERVED: u8 = 0u8; + pub const N1: u8 = 1u8; + pub const N2: u8 = 2u8; + pub const N3: u8 = 3u8; + pub const N4: u8 = 4u8; + pub const ASSIGNED: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11 { + pub crs_ports_count_r11: + PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Crs_PortsCount_r11, + pub crs_freq_shift_r11: PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Crs_FreqShift_r11, + #[asn(optional_idx = 0)] + pub mbsfn_subframe_config_list_r11: + Option, + pub pdsch_start_r11: PDSCH_RE_MappingQCL_Config_r11OptionalSetOfFields_r11Pdsch_Start_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PHICH_ConfigPhich_Duration(pub u8); +impl PHICH_ConfigPhich_Duration { + pub const NORMAL: u8 = 0u8; + pub const EXTENDED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PHICH_ConfigPhich_Resource(pub u8); +impl PHICH_ConfigPhich_Resource { + pub const ONE_SIXTH: u8 = 0u8; + pub const HALF: u8 = 1u8; + pub const ONE: u8 = 2u8; + pub const TWO: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PLMN_IdentityInfoCellReservedForOperatorUse(pub u8); +impl PLMN_IdentityInfoCellReservedForOperatorUse { + pub const RESERVED: u8 = 0u8; + pub const NOT_RESERVED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct PLMN_IdentityInfo_r15Plmn_Identity_5GC_r15_plmn_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PLMN_IdentityInfo_r15Plmn_Identity_5GC_r15 { + #[asn(key = 0, extended = false)] + Plmn_Identity_r15(PLMN_Identity), + #[asn(key = 1, extended = false)] + Plmn_Index_r15(PLMN_IdentityInfo_r15Plmn_Identity_5GC_r15_plmn_Index_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PLMN_IdentityInfo_r15CellReservedForOperatorUse_r15(pub u8); +impl PLMN_IdentityInfo_r15CellReservedForOperatorUse_r15 { + pub const RESERVED: u8 = 0u8; + pub const NOT_RESERVED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PLMN_IdentityInfo_r15CellReservedForOperatorUse_CRS_r15(pub u8); +impl PLMN_IdentityInfo_r15CellReservedForOperatorUse_CRS_r15 { + pub const RESERVED: u8 = 0u8; + pub const NOT_RESERVED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PLMN_IdentityInfo_v1530CellReservedForOperatorUse_CRS_r15(pub u8); +impl PLMN_IdentityInfo_v1530CellReservedForOperatorUse_CRS_r15 { + pub const RESERVED: u8 = 0u8; + pub const NOT_RESERVED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PLMN_IdentityInfo_v1610Cp_CIoT_5GS_Optimisation_r16(pub u8); +impl PLMN_IdentityInfo_v1610Cp_CIoT_5GS_Optimisation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PLMN_IdentityInfo_v1610Up_CIoT_5GS_Optimisation_r16(pub u8); +impl PLMN_IdentityInfo_v1610Up_CIoT_5GS_Optimisation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PLMN_IdentityInfo_v1610Iab_Support_r16(pub u8); +impl PLMN_IdentityInfo_v1610Iab_Support_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct PLMN_IdentityInfo2_r12_plmn_Index_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "22", ub = "32")] +pub struct PLMN_IdentityInfoNR_v1710GNB_ID_Length_r17(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PLMN_Info_r15UpperLayerIndication_r15(pub u8); +impl PLMN_Info_r15UpperLayerIndication_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct PLMN_Info_r16Nr_BandList_r16(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct PLMN_RAN_AreaCell_r15Ran_AreaCells_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct PLMN_RAN_AreaConfig_r15Ran_Area_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1535")] +pub struct PMCH_Config_r12Sf_AllocEnd_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "28")] +pub struct PMCH_Config_r12DataMCS_r12_normal_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "27")] +pub struct PMCH_Config_r12DataMCS_r12_higerOrder_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PMCH_Config_r12DataMCS_r12 { + #[asn(key = 0, extended = false)] + Normal_r12(PMCH_Config_r12DataMCS_r12_normal_r12), + #[asn(key = 1, extended = false)] + HigerOrder_r12(PMCH_Config_r12DataMCS_r12_higerOrder_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct PMCH_Config_r12Mch_SchedulingPeriod_r12(pub u8); +impl PMCH_Config_r12Mch_SchedulingPeriod_r12 { + pub const RF4: u8 = 0u8; + pub const RF8: u8 = 1u8; + pub const RF16: u8 = 2u8; + pub const RF32: u8 = 3u8; + pub const RF64: u8 = 4u8; + pub const RF128: u8 = 5u8; + pub const RF256: u8 = 6u8; + pub const RF512: u8 = 7u8; + pub const RF1024: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1535")] +pub struct PMCH_Config_r9Sf_AllocEnd_r9(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "28")] +pub struct PMCH_Config_r9DataMCS_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PMCH_Config_r9Mch_SchedulingPeriod_r9(pub u8); +impl PMCH_Config_r9Mch_SchedulingPeriod_r9 { + pub const RF8: u8 = 0u8; + pub const RF16: u8 = 1u8; + pub const RF32: u8 = 2u8; + pub const RF64: u8 = 3u8; + pub const RF128: u8 = 4u8; + pub const RF256: u8 = 5u8; + pub const RF512: u8 = 6u8; + pub const RF1024: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "837")] +pub struct PRACH_ConfigRootSequenceIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13(pub u8); +impl PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13 { + pub const V1: u8 = 0u8; + pub const V1DOT5: u8 = 1u8; + pub const V2: u8 = 2u8; + pub const V2DOT5: u8 = 3u8; + pub const V4: u8 = 4u8; + pub const V5: u8 = 5u8; + pub const V8: u8 = 6u8; + pub const V10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13(pub u8); +impl PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13 { + pub const V1: u8 = 0u8; + pub const V2: u8 = 1u8; + pub const V4: u8 = 2u8; + pub const V5: u8 = 3u8; + pub const V8: u8 = 4u8; + pub const V10: u8 = 5u8; + pub const V20: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13 { + #[asn(key = 0, extended = false)] + Fdd_r13(PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13), + #[asn(key = 1, extended = false)] + Tdd_r13(PRACH_Config_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct PRACH_Config_v1310Prach_HoppingOffset_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct PRACH_Config_v1310Initial_CE_level_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "837")] +pub struct PRACH_Config_v1430RootSequenceIndexHighSpeed_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "12")] +pub struct PRACH_Config_v1430ZeroCorrelationZoneConfigHighSpeed_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct PRACH_Config_v1430Prach_ConfigIndexHighSpeed_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct PRACH_Config_v1430Prach_FreqOffsetHighSpeed_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct PRACH_ConfigInfoPrach_ConfigIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PRACH_ConfigInfoHighSpeedFlag(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PRACH_ConfigInfoZeroCorrelationZoneConfig(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct PRACH_ConfigInfoPrach_FreqOffset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct PRACH_ConfigSCell_r10Prach_ConfigIndex_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "837")] +pub struct PRACH_ConfigSIBRootSequenceIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13(pub u8); +impl PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13 { + pub const V1: u8 = 0u8; + pub const V1DOT5: u8 = 1u8; + pub const V2: u8 = 2u8; + pub const V2DOT5: u8 = 3u8; + pub const V4: u8 = 4u8; + pub const V5: u8 = 5u8; + pub const V8: u8 = 6u8; + pub const V10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13(pub u8); +impl PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13 { + pub const V1: u8 = 0u8; + pub const V2: u8 = 1u8; + pub const V4: u8 = 2u8; + pub const V5: u8 = 3u8; + pub const V8: u8 = 4u8; + pub const V10: u8 = 5u8; + pub const V20: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13 { + #[asn(key = 0, extended = false)] + Fdd_r13(PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_fdd_r13), + #[asn(key = 1, extended = false)] + Tdd_r13(PRACH_ConfigSIB_v1310Mpdcch_startSF_CSS_RA_r13_tdd_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct PRACH_ConfigSIB_v1310Prach_HoppingOffset_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PRACH_ConfigSIB_v1530Edt_PRACH_ParametersListCE_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct PRACH_ParametersCE_r13Prach_ConfigIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "94")] +pub struct PRACH_ParametersCE_r13Prach_FreqOffset_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_ParametersCE_r13Prach_StartingSubframe_r13(pub u8); +impl PRACH_ParametersCE_r13Prach_StartingSubframe_r13 { + pub const SF2: u8 = 0u8; + pub const SF4: u8 = 1u8; + pub const SF8: u8 = 2u8; + pub const SF16: u8 = 3u8; + pub const SF32: u8 = 4u8; + pub const SF64: u8 = 5u8; + pub const SF128: u8 = 6u8; + pub const SF256: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct PRACH_ParametersCE_r13MaxNumPreambleAttemptCE_r13(pub u8); +impl PRACH_ParametersCE_r13MaxNumPreambleAttemptCE_r13 { + pub const N3: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N5: u8 = 2u8; + pub const N6: u8 = 3u8; + pub const N7: u8 = 4u8; + pub const N8: u8 = 5u8; + pub const N10: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_ParametersCE_r13NumRepetitionPerPreambleAttempt_r13(pub u8); +impl PRACH_ParametersCE_r13NumRepetitionPerPreambleAttempt_r13 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N16: u8 = 4u8; + pub const N32: u8 = 5u8; + pub const N64: u8 = 6u8; + pub const N128: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PRACH_ParametersCE_r13Mpdcch_NarrowbandsToMonitor_r13_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct PRACH_ParametersCE_r13Mpdcch_NarrowbandsToMonitor_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct PRACH_ParametersCE_r13Mpdcch_NumRepetition_RA_r13(pub u8); +impl PRACH_ParametersCE_r13Mpdcch_NumRepetition_RA_r13 { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const R128: u8 = 7u8; + pub const R256: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PRACH_ParametersCE_r13Prach_HoppingConfig_r13(pub u8); +impl PRACH_ParametersCE_r13Prach_HoppingConfig_r13 { + pub const ON: u8 = 0u8; + pub const OFF: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PRACH_TxDuration_r17Prach_TxDuration_r17(pub u8); +impl PRACH_TxDuration_r17Prach_TxDuration_r17 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N16: u8 = 4u8; + pub const N32: u8 = 5u8; + pub const N64: u8 = 6u8; + pub const N128: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PSCellToAddMod_r12CellIdentification_r12 { + pub phys_cell_id_r12: PhysCellId, + pub dl_carrier_freq_r12: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PUCCH_ConfigCommonDeltaPUCCH_Shift(pub u8); +impl PUCCH_ConfigCommonDeltaPUCCH_Shift { + pub const DS1: u8 = 0u8; + pub const DS2: u8 = 1u8; + pub const DS3: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "98")] +pub struct PUCCH_ConfigCommonNRB_CQI(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct PUCCH_ConfigCommonNCS_AN(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigCommonN1PUCCH_AN(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level0_r13(pub u8); +impl PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level0_r13 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level1_r13(pub u8); +impl PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level1_r13 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level2_r13(pub u8); +impl PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level2_r13 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N32: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level3_r13(pub u8); +impl PUCCH_ConfigCommon_v1310Pucch_NumRepetitionCE_Msg4_Level3_r13 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N32: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigCommon_v1430Pucch_NumRepetitionCE_Msg4_Level3_r14(pub u8); +impl PUCCH_ConfigCommon_v1430Pucch_NumRepetitionCE_Msg4_Level3_r14 { + pub const N64: u8 = 0u8; + pub const N128: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicatedAckNackRepetition_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicatedAckNackRepetition_setupRepetitionFactor(pub u8); +impl PUCCH_ConfigDedicatedAckNackRepetition_setupRepetitionFactor { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicatedAckNackRepetition_setupN1PUCCH_AN_Rep(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicatedAckNackRepetition_setup { + pub repetition_factor: PUCCH_ConfigDedicatedAckNackRepetition_setupRepetitionFactor, + pub n1pucch_an_rep: PUCCH_ConfigDedicatedAckNackRepetition_setupN1PUCCH_AN_Rep, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicatedAckNackRepetition { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicatedAckNackRepetition_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicatedAckNackRepetition_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigDedicatedTdd_AckNackFeedbackMode(pub u8); +impl PUCCH_ConfigDedicatedTdd_AckNackFeedbackMode { + pub const BUNDLING: u8 = 0u8; + pub const MULTIPLEXING: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13AckNackRepetition_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setupRepetitionFactor_r13(pub u8); +impl PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setupRepetitionFactor_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setupN1PUCCH_AN_Rep_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setup { + pub repetition_factor_r13: + PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setupRepetitionFactor_r13, + pub n1pucch_an_rep_r13: PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setupN1PUCCH_AN_Rep_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13AckNackRepetition_r13 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_r13AckNackRepetition_r13_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_r13AckNackRepetition_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigDedicated_r13Tdd_AckNackFeedbackMode_r13(pub u8); +impl PUCCH_ConfigDedicated_r13Tdd_AckNackFeedbackMode_r13 { + pub const BUNDLING: u8 = 0u8; + pub const MULTIPLEXING: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13N3PUCCH_AN_List_r13_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13N3PUCCH_AN_List_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13 (pub Vec < PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setup { pub n3pucch_an_list_p1_r13 : PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13 +{ + # [asn (key = 0 , extended = false)] Release (PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_release) , # [asn (key = 1 , extended = false)] Setup (PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setup) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13 { # [asn (optional_idx = 0 ,)] pub n3pucch_an_list_r13 : Option < PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13N3PUCCH_AN_List_r13 > , # [asn (optional_idx = 1 ,)] pub two_antenna_port_activated_pucch_format3_r13 : Option < PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13TwoAntennaPortActivatedPUCCH_Format3_r13 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupN1PUCCH_AN_CS_List_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupDummy1_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupDummy1 (pub Vec < PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupDummy1_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setup { pub n1pucch_an_cs_list_r13 : PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupN1PUCCH_AN_CS_List_r13 , pub dummy1 : PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setupDummy1 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13 { + #[asn(key = 0, extended = false)] + Release( + PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_release, + ), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13N1PUCCH_AN_CS_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13 { + #[asn(optional_idx = 0)] + pub n1pucch_an_cs_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13Format4_resourceConfiguration_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13Format4_MultiCSI_resourceConfiguration_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13 { pub format4_resource_configuration_r13 : PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13Format4_resourceConfiguration_r13 , # [asn (optional_idx = 0 ,)] pub format4_multi_csi_resource_configuration_r13 : Option < PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13Format4_MultiCSI_resourceConfiguration_r13 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format5_r13Format5_resourceConfiguration_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated_r13Pucch_Format_r13_format5_r13 { + pub format5_resource_configuration_r13: + PUCCH_ConfigDedicated_r13Pucch_Format_r13_format5_r13Format5_resourceConfiguration_r13, + #[asn(optional_idx = 0)] + pub format5_multi_csi_resource_configuration_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13Pucch_Format_r13 { + #[asn(key = 0, extended = false)] + Format3_r13(PUCCH_ConfigDedicated_r13Pucch_Format_r13_format3_r13), + #[asn(key = 1, extended = false)] + ChannelSelection_r13(PUCCH_ConfigDedicated_r13Pucch_Format_r13_channelSelection_r13), + #[asn(key = 2, extended = false)] + Format4_r13(PUCCH_ConfigDedicated_r13Pucch_Format_r13_format4_r13), + #[asn(key = 3, extended = false)] + Format5_r13(PUCCH_ConfigDedicated_r13Pucch_Format_r13_format5_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUCCH_ConfigDedicated_r13TwoAntennaPortActivatedPUCCH_Format1a1b_r13(pub u8); +impl PUCCH_ConfigDedicated_r13TwoAntennaPortActivatedPUCCH_Format1a1b_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUCCH_ConfigDedicated_r13SimultaneousPUCCH_PUSCH_r13(pub u8); +impl PUCCH_ConfigDedicated_r13SimultaneousPUCCH_PUSCH_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_r13N1PUCCH_AN_RepP1_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setupNPUCCH_Identity_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setupN1PUCCH_AN_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setup { + pub npucch_identity_r13: PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setupNPUCCH_Identity_r13, + pub n1pucch_an_r13: PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setupN1PUCCH_AN_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13NPUCCH_Param_r13 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_r13NPUCCH_Param_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_setupNkaPUCCH_AN_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_setup { + pub nka_pucch_an_r13: PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_setupNkaPUCCH_AN_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_r13NkaPUCCH_Param_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUCCH_ConfigDedicated_r13SpatialBundlingPUCCH_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUCCH_ConfigDedicated_r13SpatialBundlingPUSCH_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUCCH_ConfigDedicated_r13Harq_TimingTDD_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigDedicated_r13CodebooksizeDetermination_r13(pub u8); +impl PUCCH_ConfigDedicated_r13CodebooksizeDetermination_r13 { + pub const DAI: u8 = 0u8; + pub const CC: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct PUCCH_ConfigDedicated_r13MaximumPayloadCoderate_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format1_r13( + pub u8, +); +impl + PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format1_r13 +{ + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format2_r13( + pub u8, +); +impl + PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format2_r13 +{ + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeA { pub pucch_num_repetition_ce_format1_r13 : PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format1_r13 , pub pucch_num_repetition_ce_format2_r13 : PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeAPucch_NumRepetitionCE_format2_r13 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format1_r13( + pub u8, +); +impl + PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format1_r13 +{ + pub const R4: u8 = 0u8; + pub const R8: u8 = 1u8; + pub const R16: u8 = 2u8; + pub const R32: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format2_r13( + pub u8, +); +impl + PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format2_r13 +{ + pub const R4: u8 = 0u8; + pub const R8: u8 = 1u8; + pub const R16: u8 = 2u8; + pub const R32: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeB { pub pucch_num_repetition_ce_format1_r13 : PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format1_r13 , pub pucch_num_repetition_ce_format2_r13 : PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeBPucch_NumRepetitionCE_format2_r13 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup { + #[asn(key = 0, extended = false)] + ModeA(PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeA), + #[asn(key = 1, extended = false)] + ModeB(PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup_modeB), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_r13Pucch_NumRepetitionCE_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_setupN1PUCCH_AN_CS_List_r10( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_setup { pub n1pucch_an_cs_list_r10 : PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_setupN1PUCCH_AN_CS_List_r10 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10 { + #[asn(key = 0, extended = false)] + Release( + PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_release, + ), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10N1PUCCH_AN_CS_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10 { + #[asn(optional_idx = 0)] + pub n1pucch_an_cs_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1020Pucch_Format_r10 { + #[asn(key = 0, extended = false)] + Format3_r10(PUCCH_Format3_Conf_r13), + #[asn(key = 1, extended = false)] + ChannelSelection_r10(PUCCH_ConfigDedicated_v1020Pucch_Format_r10_channelSelection_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUCCH_ConfigDedicated_v1020TwoAntennaPortActivatedPUCCH_Format1a1b_r10(pub u8); +impl PUCCH_ConfigDedicated_v1020TwoAntennaPortActivatedPUCCH_Format1a1b_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUCCH_ConfigDedicated_v1020SimultaneousPUCCH_PUSCH_r10(pub u8); +impl PUCCH_ConfigDedicated_v1020SimultaneousPUCCH_PUSCH_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v1020N1PUCCH_AN_RepP1_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_setupN1PUCCH_AN_CS_ListP1_r11_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_setupN1PUCCH_AN_CS_ListP1_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_setup { + pub n1pucch_an_cs_list_p1_r11: + PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_setupN1PUCCH_AN_CS_ListP1_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_v1130N1PUCCH_AN_CS_v1130_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setupNPUCCH_Identity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setupN1PUCCH_AN_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setup { + pub npucch_identity_r11: PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setupNPUCCH_Identity_r11, + pub n1pucch_an_r11: PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setupN1PUCCH_AN_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_v1130NPUCCH_Param_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_setupNkaPUCCH_AN_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_setup { + pub nka_pucch_an_r12: PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_setupNkaPUCCH_AN_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_v1250NkaPUCCH_Param_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v1370Pucch_Format_v1370_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v1370Pucch_Format_v1370 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_v1370Pucch_Format_v1370_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_Format3_Conf_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setupN1PUCCH_AN_CS_ListP1_v13c0_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "4")] +pub struct PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setupN1PUCCH_AN_CS_ListP1_v13c0 (pub Vec < PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setupN1PUCCH_AN_CS_ListP1_v13c0_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setup { pub n1pucch_an_cs_list_p1_v13c0 : PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setupN1PUCCH_AN_CS_ListP1_v13c0 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0 { + #[asn(key = 0, extended = false)] + Release(PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0 { + pub n1pucch_an_cs_v13c0: PUCCH_ConfigDedicated_v13c0ChannelSelection_v13c0N1PUCCH_AN_CS_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigDedicated_v1430Pucch_NumRepetitionCE_format1_r14(pub u8); +impl PUCCH_ConfigDedicated_v1430Pucch_NumRepetitionCE_format1_r14 { + pub const R64: u8 = 0u8; + pub const R128: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUCCH_ConfigDedicated_v1530N1PUCCH_AN_SPT_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUCCH_ConfigDedicated_v1530CodebooksizeDeterminationSTTI_r15(pub u8); +impl PUCCH_ConfigDedicated_v1530CodebooksizeDeterminationSTTI_r15 { + pub const DAI: u8 = 0u8; + pub const CC: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct PUCCH_Format3_Conf_r13N3PUCCH_AN_List_r13_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PUCCH_Format3_Conf_r13N3PUCCH_AN_List_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13 (pub Vec < PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setup { + pub n3pucch_an_list_p1_r13: + PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setupN3PUCCH_AN_ListP1_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13 { + #[asn(key = 0, extended = false)] + Release(PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_release), + #[asn(key = 1, extended = false)] + Setup(PUCCH_Format3_Conf_r13TwoAntennaPortActivatedPUCCH_Format3_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct PUCCH_TxDuration_r17Pucch_TxDuration_r17(pub u8); +impl PUCCH_TxDuration_r17Pucch_TxDuration_r17 { + pub const SF2: u8 = 0u8; + pub const SF4: u8 = 1u8; + pub const SF8: u8 = 2u8; + pub const SF16: u8 = 3u8; + pub const SF32: u8 = 4u8; + pub const SF64: u8 = 5u8; + pub const SF128: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUR_Config_r16Pur_ImplicitReleaseAfter_r16(pub u8); +impl PUR_Config_r16Pur_ImplicitReleaseAfter_r16 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N8: u8 = 2u8; + pub const SPARE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct PUR_Config_r16Pur_StartTimeParameters_r16StartSFN_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct PUR_Config_r16Pur_StartTimeParameters_r16StartSubFrame_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct PUR_Config_r16Pur_StartTimeParameters_r16Hsfn_LSB_Info_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUR_Config_r16Pur_StartTimeParameters_r16 { + pub periodicity_and_offset_r16: PUR_PeriodicityAndOffset_r16, + pub start_sfn_r16: PUR_Config_r16Pur_StartTimeParameters_r16StartSFN_r16, + pub start_sub_frame_r16: PUR_Config_r16Pur_StartTimeParameters_r16StartSubFrame_r16, + pub hsfn_lsb_info_r16: PUR_Config_r16Pur_StartTimeParameters_r16Hsfn_LSB_Info_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUR_Config_r16Pur_NumOccasions_r16(pub u8); +impl PUR_Config_r16Pur_NumOccasions_r16 { + pub const ONE: u8 = 0u8; + pub const INFINITE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct PUR_Config_r16Pur_TimeAlignmentTimer_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUR_Config_r16Pur_RSRP_ChangeThreshold_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUR_Config_r16Pur_RSRP_ChangeThreshold_r16 { + #[asn(key = 0, extended = false)] + Release(PUR_Config_r16Pur_RSRP_ChangeThreshold_r16_release), + #[asn(key = 1, extended = false)] + Setup(PUR_RSRP_ChangeThreshold_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUR_Config_r16Pur_ResponseWindowTimer_r16(pub u8); +impl PUR_Config_r16Pur_ResponseWindowTimer_r16 { + pub const SF240: u8 = 0u8; + pub const SF480: u8 = 1u8; + pub const SF960: u8 = 2u8; + pub const SF1920: u8 = 3u8; + pub const SF3840: u8 = 4u8; + pub const SF5760: u8 = 5u8; + pub const SF7680: u8 = 6u8; + pub const SF10240: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_Config_r16Pur_PDSCH_FreqHopping_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_FreqHopping_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_Narrowband_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16NumberPRB_Pairs_r16(pub u8); +impl PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16NumberPRB_Pairs_r16 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16ResourceBlockAssignment_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16 { + pub number_prb_pairs_r16: PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16NumberPRB_Pairs_r16, + pub resource_block_assignment_r16: + PUR_MPDCCH_Config_r16Mpdcch_PRB_PairsConfig_r16ResourceBlockAssignment_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_NumRepetition_r16(pub u8); +impl PUR_MPDCCH_Config_r16Mpdcch_NumRepetition_r16 { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const R128: u8 = 7u8; + pub const R256: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_fdd(pub u8); +impl PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_fdd { + pub const V1: u8 = 0u8; + pub const V1DOT5: u8 = 1u8; + pub const V2: u8 = 2u8; + pub const V2DOT5: u8 = 3u8; + pub const V4: u8 = 4u8; + pub const V5: u8 = 5u8; + pub const V8: u8 = 6u8; + pub const V10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_tdd(pub u8); +impl PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_tdd { + pub const V1: u8 = 0u8; + pub const V2: u8 = 1u8; + pub const V4: u8 = 2u8; + pub const V5: u8 = 3u8; + pub const V8: u8 = 4u8; + pub const V10: u8 = 5u8; + pub const V20: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16 { + #[asn(key = 0, extended = false)] + Fdd(PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_fdd), + #[asn(key = 1, extended = false)] + Tdd(PUR_MPDCCH_Config_r16Mpdcch_StartSF_UESS_r16_tdd), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUR_MPDCCH_Config_r16Mpdcch_Offset_PUR_SS_r16(pub u8); +impl PUR_MPDCCH_Config_r16Mpdcch_Offset_PUR_SS_r16 { + pub const ZERO: u8 = 0u8; + pub const ONE_EIGHTH: u8 = 1u8; + pub const ONE_QUARTER: u8 = 2u8; + pub const THREE_EIGHTH: u8 = 3u8; + pub const ONE_HALF: u8 = 4u8; + pub const FIVE_EIGHTH: u8 = 5u8; + pub const THREE_QUARTER: u8 = 6u8; + pub const SEVEN_EIGHTH: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct PUR_PUCCH_Config_r16N1PUCCH_AN_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUR_PUCCH_Config_r16Pucch_NumRepetitionCE_Format1_r16(pub u8); +impl PUR_PUCCH_Config_r16Pucch_NumRepetitionCE_Format1_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeANumRUs_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeAPrb_AllocationInfo_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeAMcs_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeANumRepetitions_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeA { + pub num_r_us_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeANumRUs_r16, + pub prb_allocation_info_r16: + PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeAPrb_AllocationInfo_r16, + pub mcs_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeAMcs_r16, + pub num_repetitions_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeANumRepetitions_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBSubPRB_Allocation_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBNumRUs_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBPrb_AllocationInfo_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBMcs_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBNumRepetitions_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeB { + pub sub_prb_allocation_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBSubPRB_Allocation_r16, + pub num_r_us_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBNumRUs_r16, + pub prb_allocation_info_r16: + PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBPrb_AllocationInfo_r16, + pub mcs_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBMcs_r16, + pub num_repetitions_r16: PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeBNumRepetitions_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUR_PUSCH_Config_r16Pur_GrantInfo_r16 { + #[asn(key = 0, extended = false)] + Ce_ModeA(PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeA), + #[asn(key = 1, extended = false)] + Ce_ModeB(PUR_PUSCH_Config_r16Pur_GrantInfo_r16_ce_ModeB), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_PUSCH_Config_r16Pur_PUSCH_FreqHopping_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct PUR_PUSCH_Config_r16P0_UE_PUSCH_r16(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUR_PUSCH_Config_r16Pusch_CyclicShift_r16(pub u8); +impl PUR_PUSCH_Config_r16Pusch_CyclicShift_r16 { + pub const N0: u8 = 0u8; + pub const N6: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUR_PUSCH_Config_r16Pusch_NB_MaxTBS_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5")] +pub struct PUR_PUSCH_Config_r16LocationCE_ModeB_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_CP_5GC_CE_ModeA_r16(pub u8); +impl PUR_Parameters_r16Pur_CP_5GC_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_CP_5GC_CE_ModeB_r16(pub u8); +impl PUR_Parameters_r16Pur_CP_5GC_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_UP_5GC_CE_ModeA_r16(pub u8); +impl PUR_Parameters_r16Pur_UP_5GC_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_UP_5GC_CE_ModeB_r16(pub u8); +impl PUR_Parameters_r16Pur_UP_5GC_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_CP_EPC_CE_ModeA_r16(pub u8); +impl PUR_Parameters_r16Pur_CP_EPC_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_CP_EPC_CE_ModeB_r16(pub u8); +impl PUR_Parameters_r16Pur_CP_EPC_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_UP_EPC_CE_ModeA_r16(pub u8); +impl PUR_Parameters_r16Pur_UP_EPC_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_UP_EPC_CE_ModeB_r16(pub u8); +impl PUR_Parameters_r16Pur_UP_EPC_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_CP_L1Ack_r16(pub u8); +impl PUR_Parameters_r16Pur_CP_L1Ack_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_FrequencyHopping_r16(pub u8); +impl PUR_Parameters_r16Pur_FrequencyHopping_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_PUSCH_NB_MaxTBS_r16(pub u8); +impl PUR_Parameters_r16Pur_PUSCH_NB_MaxTBS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_RSRP_Validation_r16(pub u8); +impl PUR_Parameters_r16Pur_RSRP_Validation_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_SubPRB_CE_ModeA_r16(pub u8); +impl PUR_Parameters_r16Pur_SubPRB_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUR_Parameters_r16Pur_SubPRB_CE_ModeB_r16(pub u8); +impl PUR_Parameters_r16Pur_SubPRB_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "7")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity8(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "15")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "31")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity32(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "63")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity64(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "127")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity128(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "255")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity256(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "511")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity512(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "1023")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity1024(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2047")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity2048(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4095")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity4096(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8191")] +pub struct PUR_PeriodicityAndOffset_r16_periodicity8192(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PURConfigurationRequest_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PURConfigurationRequest_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + PurConfigurationRequest(PURConfigurationRequest_r16_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + PURConfigurationRequest_r16CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_ReleaseRequest; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedNumOccasions_r16( + pub u8, +); +impl + PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedNumOccasions_r16 +{ + pub const ONE: u8 = 0u8; + pub const INFINITE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "63")] +pub struct PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedTBS_r16( + pub u8, +); +impl PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedTBS_r16 { + pub const B328: u8 = 0u8; + pub const B344: u8 = 1u8; + pub const B376: u8 = 2u8; + pub const B392: u8 = 3u8; + pub const B408: u8 = 4u8; + pub const B424: u8 = 5u8; + pub const B440: u8 = 6u8; + pub const B456: u8 = 7u8; + pub const B472: u8 = 8u8; + pub const B488: u8 = 9u8; + pub const B504: u8 = 10u8; + pub const B536: u8 = 11u8; + pub const B568: u8 = 12u8; + pub const B584: u8 = 13u8; + pub const B616: u8 = 14u8; + pub const B648: u8 = 15u8; + pub const B680: u8 = 16u8; + pub const B712: u8 = 17u8; + pub const B744: u8 = 18u8; + pub const B776: u8 = 19u8; + pub const B808: u8 = 20u8; + pub const B840: u8 = 21u8; + pub const B872: u8 = 22u8; + pub const B904: u8 = 23u8; + pub const B936: u8 = 24u8; + pub const B968: u8 = 25u8; + pub const B1000: u8 = 26u8; + pub const B1032: u8 = 27u8; + pub const B1064: u8 = 28u8; + pub const B1096: u8 = 29u8; + pub const B1128: u8 = 30u8; + pub const B1160: u8 = 31u8; + pub const B1192: u8 = 32u8; + pub const B1224: u8 = 33u8; + pub const B1256: u8 = 34u8; + pub const B1288: u8 = 35u8; + pub const B1320: u8 = 36u8; + pub const B1352: u8 = 37u8; + pub const B1384: u8 = 38u8; + pub const B1416: u8 = 39u8; + pub const B1480: u8 = 40u8; + pub const B1544: u8 = 41u8; + pub const B1608: u8 = 42u8; + pub const B1672: u8 = 43u8; + pub const B1736: u8 = 44u8; + pub const B1800: u8 = 45u8; + pub const B1864: u8 = 46u8; + pub const B1928: u8 = 47u8; + pub const B1992: u8 = 48u8; + pub const B2024: u8 = 49u8; + pub const B2088: u8 = 50u8; + pub const B2152: u8 = 51u8; + pub const B2216: u8 = 52u8; + pub const B2280: u8 = 53u8; + pub const B2344: u8 = 54u8; + pub const B2408: u8 = 55u8; + pub const B2472: u8 = 56u8; + pub const B2536: u8 = 57u8; + pub const B2600: u8 = 58u8; + pub const B2664: u8 = 59u8; + pub const B2728: u8 = 60u8; + pub const B2792: u8 = 61u8; + pub const B2856: u8 = 62u8; + pub const B2984: u8 = 63u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRrc_ACK_r16(pub u8); +impl PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRrc_ACK_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequest { pub requested_num_occasions_r16 : PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedNumOccasions_r16 , # [asn (optional_idx = 0 ,)] pub requested_periodicity_and_offset_r16 : Option < PUR_PeriodicityAndOffset_r16 > , pub requested_tbs_r16 : PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRequestedTBS_r16 , # [asn (optional_idx = 1 ,)] pub rrc_ack_r16 : Option < PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequestRrc_ACK_r16 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16 { + #[asn(key = 0, extended = false)] + Pur_ReleaseRequest(PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_ReleaseRequest), + #[asn(key = 1, extended = false)] + Pur_SetupRequest(PURConfigurationRequest_r16_IEsPur_ConfigRequest_r16_pur_SetupRequest), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct PURConfigurationRequest_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PURConfigurationRequest_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct PUSCH_ConfigCommonPusch_ConfigBasicN_SB(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PUSCH_ConfigCommonPusch_ConfigBasicHoppingMode(pub u8); +impl PUSCH_ConfigCommonPusch_ConfigBasicHoppingMode { + pub const INTER_SUB_FRAME: u8 = 0u8; + pub const INTRA_AND_INTER_SUB_FRAME: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "98")] +pub struct PUSCH_ConfigCommonPusch_ConfigBasicPusch_HoppingOffset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUSCH_ConfigCommonPusch_ConfigBasicEnable64QAM(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigCommonPusch_ConfigBasic { + pub n_sb: PUSCH_ConfigCommonPusch_ConfigBasicN_SB, + pub hopping_mode: PUSCH_ConfigCommonPusch_ConfigBasicHoppingMode, + pub pusch_hopping_offset: PUSCH_ConfigCommonPusch_ConfigBasicPusch_HoppingOffset, + pub enable64_qam: PUSCH_ConfigCommonPusch_ConfigBasicEnable64QAM, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigCommon_v1270Enable64QAM_v1270(pub u8); +impl PUSCH_ConfigCommon_v1270Enable64QAM_v1270 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PUSCH_ConfigCommon_v1310Pusch_maxNumRepetitionCEmodeA_r13(pub u8); +impl PUSCH_ConfigCommon_v1310Pusch_maxNumRepetitionCEmodeA_r13 { + pub const R8: u8 = 0u8; + pub const R16: u8 = 1u8; + pub const R32: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUSCH_ConfigCommon_v1310Pusch_maxNumRepetitionCEmodeB_r13(pub u8); +impl PUSCH_ConfigCommon_v1310Pusch_maxNumRepetitionCEmodeB_r13 { + pub const R192: u8 = 0u8; + pub const R256: u8 = 1u8; + pub const R384: u8 = 2u8; + pub const R512: u8 = 3u8; + pub const R768: u8 = 4u8; + pub const R1024: u8 = 5u8; + pub const R1536: u8 = 6u8; + pub const R2048: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PUSCH_ConfigCommon_v1310Pusch_HoppingOffset_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicatedBetaOffset_ACK_Index(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicatedBetaOffset_RI_Index(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicatedBetaOffset_CQI_Index(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffset_ACK_Index_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffset2_ACK_Index_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffset_RI_Index_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffset_CQI_Index_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_ACK_Index_MC_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset2_ACK_Index_MC_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_RI_Index_MC_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_CQI_Index_MC_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_r13BetaOffsetMC_r13 { + pub beta_offset_ack_index_mc_r13: + PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_ACK_Index_MC_r13, + #[asn(optional_idx = 0)] + pub beta_offset2_ack_index_mc_r13: + Option, + pub beta_offset_ri_index_mc_r13: + PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_RI_Index_MC_r13, + pub beta_offset_cqi_index_mc_r13: + PUSCH_ConfigDedicated_r13BetaOffsetMC_r13BetaOffset_CQI_Index_MC_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_r13GroupHoppingDisabled_r13(pub u8); +impl PUSCH_ConfigDedicated_r13GroupHoppingDisabled_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_r13Dmrs_WithOCC_Activated_r13(pub u8); +impl PUSCH_ConfigDedicated_r13Dmrs_WithOCC_Activated_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "509")] +pub struct PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setupNPUSCH_Identity_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "509")] +pub struct PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setupNDMRS_CSH_Identity_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setup { + pub npusch_identity_r13: PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setupNPUSCH_Identity_r13, + pub ndmrs_csh_identity_r13: PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setupNDMRS_CSH_Identity_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_r13Pusch_DMRS_r11 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_r13Pusch_DMRS_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_ACK_Index_SubframeSet2_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset2_ACK_Index_SubframeSet2_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_RI_Index_SubframeSet2_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_CQI_Index_SubframeSet2_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_ACK_Index_MC_SubframeSet2_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset2_ACK_Index_MC_SubframeSet2_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_RI_Index_MC_SubframeSet2_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_CQI_Index_MC_SubframeSet2_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12 { pub beta_offset_ack_index_mc_subframe_set2_r13 : PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_ACK_Index_MC_SubframeSet2_r13 , # [asn (optional_idx = 0 ,)] pub beta_offset2_ack_index_mc_subframe_set2_r13 : Option < PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset2_ACK_Index_MC_SubframeSet2_r13 > , pub beta_offset_ri_index_mc_subframe_set2_r13 : PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_RI_Index_MC_SubframeSet2_r13 , pub beta_offset_cqi_index_mc_subframe_set2_r13 : PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_CQI_Index_MC_SubframeSet2_r13 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUSCH_ConfigDedicated_r13UciOnPUSCH_setup { + pub beta_offset_ack_index_subframe_set2_r13: + PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_ACK_Index_SubframeSet2_r13, + #[asn(optional_idx = 0)] + pub beta_offset2_ack_index_subframe_set2_r13: + Option, + pub beta_offset_ri_index_subframe_set2_r13: + PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_RI_Index_SubframeSet2_r13, + pub beta_offset_cqi_index_subframe_set2_r13: + PUSCH_ConfigDedicated_r13UciOnPUSCH_setupBetaOffset_CQI_Index_SubframeSet2_r13, + #[asn(optional_idx = 1)] + pub beta_offset_mc_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_r13UciOnPUSCH { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_r13UciOnPUSCH_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_r13UciOnPUSCH_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_r13Pusch_HoppingConfig_r13(pub u8); +impl PUSCH_ConfigDedicated_r13Pusch_HoppingConfig_r13 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_ACK_Index_MC_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_RI_Index_MC_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_CQI_Index_MC_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10 { + pub beta_offset_ack_index_mc_r10: + PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_ACK_Index_MC_r10, + pub beta_offset_ri_index_mc_r10: + PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_RI_Index_MC_r10, + pub beta_offset_cqi_index_mc_r10: + PUSCH_ConfigDedicated_v1020BetaOffsetMC_r10BetaOffset_CQI_Index_MC_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_v1020GroupHoppingDisabled_r10(pub u8); +impl PUSCH_ConfigDedicated_v1020GroupHoppingDisabled_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_v1020Dmrs_WithOCC_Activated_r10(pub u8); +impl PUSCH_ConfigDedicated_v1020Dmrs_WithOCC_Activated_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "509")] +pub struct PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setupNPUSCH_Identity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "509")] +pub struct PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setupNDMRS_CSH_Identity_r11(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setup { + pub npusch_identity_r11: PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setupNPUSCH_Identity_r11, + pub ndmrs_csh_identity_r11: + PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setupNDMRS_CSH_Identity_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_v1130Pusch_DMRS_r11_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_ACK_Index_SubframeSet2_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_RI_Index_SubframeSet2_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_CQI_Index_SubframeSet2_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_ACK_Index_MC_SubframeSet2_r12( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_RI_Index_MC_SubframeSet2_r12( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_CQI_Index_MC_SubframeSet2_r12( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12 { pub beta_offset_ack_index_mc_subframe_set2_r12 : PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_ACK_Index_MC_SubframeSet2_r12 , pub beta_offset_ri_index_mc_subframe_set2_r12 : PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_RI_Index_MC_SubframeSet2_r12 , pub beta_offset_cqi_index_mc_subframe_set2_r12 : PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffsetMC_r12BetaOffset_CQI_Index_MC_SubframeSet2_r12 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_v1250UciOnPUSCH_setup { + pub beta_offset_ack_index_subframe_set2_r12: + PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_ACK_Index_SubframeSet2_r12, + pub beta_offset_ri_index_subframe_set2_r12: + PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_RI_Index_SubframeSet2_r12, + pub beta_offset_cqi_index_subframe_set2_r12: + PUSCH_ConfigDedicated_v1250UciOnPUSCH_setupBetaOffset_CQI_Index_SubframeSet2_r12, + #[asn(optional_idx = 0)] + pub beta_offset_mc_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_v1250UciOnPUSCH { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_v1250UciOnPUSCH_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_v1250UciOnPUSCH_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_v1430Ce_PUSCH_NB_MaxTBS_r14(pub u8); +impl PUSCH_ConfigDedicated_v1430Ce_PUSCH_NB_MaxTBS_r14 { + pub const ON: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicated_v1430Ce_PUSCH_MaxBandwidth_r14(pub u8); +impl PUSCH_ConfigDedicated_v1430Ce_PUSCH_MaxBandwidth_r14 { + pub const BW5: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUSCH_ConfigDedicated_v1430Ul_DMRS_IFDMA_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "3")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setupOffsetCE_ModeB_r15( + pub i8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setup { # [asn (optional_idx = 0 ,)] pub offset_ce_mode_b_r15 : Option < PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setupOffsetCE_ModeB_r15 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_v1530Ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setupLocationCE_ModeB_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setupSixToneCyclicShift_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2")] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setupThreeToneCyclicShift_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setup { + #[asn(optional_idx = 0)] + pub location_ce_mode_b_r15: + Option, + pub six_tone_cyclic_shift_r15: + PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setupSixToneCyclicShift_r15, + pub three_tone_cyclic_shift_r15: + PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setupThreeToneCyclicShift_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicated_v1530Ce_PUSCH_SubPRB_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicated_v1610Ce_PUSCH_MultiTB_Config_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicated_v1610Ce_PUSCH_MultiTB_Config_r16 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicated_v1610Ce_PUSCH_MultiTB_Config_r16_release), + #[asn(key = 1, extended = false)] + Setup(CE_PUSCH_MultiTB_Config_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicatedSCell_r10GroupHoppingDisabled_r10(pub u8); +impl PUSCH_ConfigDedicatedSCell_r10GroupHoppingDisabled_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PUSCH_ConfigDedicatedSCell_r10Dmrs_WithOCC_Activated_r10(pub u8); +impl PUSCH_ConfigDedicatedSCell_r10Dmrs_WithOCC_Activated_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_setupBetaOffsetAUL_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_setup { + pub beta_offset_aul_r15: PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_setupBetaOffsetAUL_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15 { + #[asn(key = 0, extended = false)] + Release(PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_release), + #[asn(key = 1, extended = false)] + Setup(PUSCH_ConfigDedicatedScell_v1530Uci_OnPUSCH_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PUSCH_EnhancementsConfig_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct PUSCH_EnhancementsConfig_r14_setupPusch_HoppingOffsetPUSCH_Enh_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_FDD_PUSCH_Enh_r14( + pub u8, +); +impl PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_FDD_PUSCH_Enh_r14 { + pub const INT1: u8 = 0u8; + pub const INT2: u8 = 1u8; + pub const INT4: u8 = 2u8; + pub const INT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_TDD_PUSCH_Enh_r14( + pub u8, +); +impl PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_TDD_PUSCH_Enh_r14 { + pub const INT1: u8 = 0u8; + pub const INT5: u8 = 1u8; + pub const INT10: u8 = 2u8; + pub const INT20: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14 { + # [asn (key = 0 , extended = false)] Interval_FDD_PUSCH_Enh_r14 (PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_FDD_PUSCH_Enh_r14) , # [asn (key = 1 , extended = false)] Interval_TDD_PUSCH_Enh_r14 (PUSCH_EnhancementsConfig_r14_setupInterval_ULHoppingPUSCH_Enh_r14_interval_TDD_PUSCH_Enh_r14) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct PUSCH_EnhancementsConfig_r14_setup { + #[asn(optional_idx = 0)] + pub pusch_hopping_offset_pusch_enh_r14: + Option, + #[asn(optional_idx = 1)] + pub interval_ul_hopping_pusch_enh_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode1(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode2(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PUSCH_ModeConfigLAA_r15Laa_PUSCH_Mode3(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct PUSCH_TxDuration_r17Pusch_TxDuration_r17(pub u8); +impl PUSCH_TxDuration_r17Pusch_TxDuration_r17 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; + pub const N8: u8 = 2u8; + pub const N16: u8 = 3u8; + pub const N32: u8 = 4u8; + pub const N64: u8 = 5u8; + pub const N128: u8 = 6u8; + pub const N256: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PagingSystemInfoModification(pub u8); +impl PagingSystemInfoModification { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PagingEtws_Indication(pub u8); +impl PagingEtws_Indication { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v1130_IEsEab_ParamModification_r11(pub u8); +impl Paging_v1130_IEsEab_ParamModification_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v1310_IEsRedistributionIndication_r13(pub u8); +impl Paging_v1310_IEsRedistributionIndication_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v1310_IEsSystemInfoModification_eDRX_r13(pub u8); +impl Paging_v1310_IEsSystemInfoModification_eDRX_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v1530_IEsAccessType(pub u8); +impl Paging_v1530_IEsAccessType { + pub const NON3_GPP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v1610_IEsUac_ParamModification_r16(pub u8); +impl Paging_v1610_IEsUac_ParamModification_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct Paging_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct Paging_v890_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct Paging_v920_IEsCmas_Indication_r9(pub u8); +impl Paging_v920_IEsCmas_Indication_r9 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PagingRecordCn_Domain(pub u8); +impl PagingRecordCn_Domain { + pub const PS: u8 = 0u8; + pub const CS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PagingRecord_v1610AccessType_r16(pub u8); +impl PagingRecord_v1610AccessType_r16 { + pub const NON3_GPP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PagingRecord_v1610Mt_EDT_r16(pub u8); +impl PagingRecord_v1610Mt_EDT_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PagingRecord_v1700PagingCause_r17(pub u8); +impl PagingRecord_v1700PagingCause_r17 { + pub const VOICE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ParametersCDMA2000_r11SystemTimeInfo_r11_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ParametersCDMA2000_r11SystemTimeInfo_r11 { + #[asn(key = 0, extended = false)] + ExplicitValue(SystemTimeInfoCDMA2000), + #[asn(key = 1, extended = false)] + DefaultValue(ParametersCDMA2000_r11SystemTimeInfo_r11_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct ParametersCDMA2000_r11SearchWindowSize_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct ParametersCDMA2000_r11ParametersHRPD_r11 { + pub pre_registration_info_hrpd_r11: PreRegistrationInfoHRPD, + #[asn(optional_idx = 0)] + pub cell_reselection_parameters_hrpd_r11: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "42", sz_ub = "42")] +pub struct ParametersCDMA2000_r11Parameters1XRTT_r11LongCodeState1XRTT_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ParametersCDMA2000_r11Parameters1XRTT_r11Csfb_SupportForDualRxUEs_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ParametersCDMA2000_r11Parameters1XRTT_r11Csfb_DualRxTxSupport_r11(pub u8); +impl ParametersCDMA2000_r11Parameters1XRTT_r11Csfb_DualRxTxSupport_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct ParametersCDMA2000_r11Parameters1XRTT_r11 { + #[asn(optional_idx = 0)] + pub csfb_registration_param1_xrtt_r11: Option, + #[asn(optional_idx = 1)] + pub csfb_registration_param1_xrtt_ext_r11: Option, + #[asn(optional_idx = 2)] + pub long_code_state1_xrtt_r11: + Option, + #[asn(optional_idx = 3)] + pub cell_reselection_parameters1_xrtt_r11: Option, + #[asn(optional_idx = 4)] + pub ac_barring_config1_xrtt_r11: Option, + #[asn(optional_idx = 5)] + pub csfb_support_for_dual_rx_u_es_r11: + Option, + #[asn(optional_idx = 6)] + pub csfb_dual_rx_tx_support_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PerCC_GapIndication_r14GapIndication_r14(pub u8); +impl PerCC_GapIndication_r14GapIndication_r14 { + pub const GAP: u8 = 0u8; + pub const NCSG: u8 = 1u8; + pub const NOGAP_NO_NCSG: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PeriodicityStartPos_r16_periodicity10ms; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1")] +pub struct PeriodicityStartPos_r16_periodicity20ms(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct PeriodicityStartPos_r16_periodicity40ms(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct PeriodicityStartPos_r16_periodicity80ms(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct PeriodicityStartPos_r16_periodicity160ms(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PeriodicityStartPos_r16_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PeriodicityStartPos_r16_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PeriodicityStartPos_r16_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PhyLayerParametersUe_TxAntennaSelectionSupported(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PhyLayerParametersUe_SpecificRefSigsSupported(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020TwoAntennaPortsForPUCCH_r10(pub u8); +impl PhyLayerParameters_v1020TwoAntennaPortsForPUCCH_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020Tm9_With_8Tx_FDD_r10(pub u8); +impl PhyLayerParameters_v1020Tm9_With_8Tx_FDD_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020Pmi_Disabling_r10(pub u8); +impl PhyLayerParameters_v1020Pmi_Disabling_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020CrossCarrierScheduling_r10(pub u8); +impl PhyLayerParameters_v1020CrossCarrierScheduling_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020SimultaneousPUCCH_PUSCH_r10(pub u8); +impl PhyLayerParameters_v1020SimultaneousPUCCH_PUSCH_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1020MultiClusterPUSCH_WithinCC_r10(pub u8); +impl PhyLayerParameters_v1020MultiClusterPUSCH_WithinCC_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130Crs_InterfHandl_r11(pub u8); +impl PhyLayerParameters_v1130Crs_InterfHandl_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130EPDCCH_r11(pub u8); +impl PhyLayerParameters_v1130EPDCCH_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130MultiACK_CSI_Reporting_r11(pub u8); +impl PhyLayerParameters_v1130MultiACK_CSI_Reporting_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130Ss_CCH_InterfHandl_r11(pub u8); +impl PhyLayerParameters_v1130Ss_CCH_InterfHandl_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130Tdd_SpecialSubframe_r11(pub u8); +impl PhyLayerParameters_v1130Tdd_SpecialSubframe_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130TxDiv_PUCCH1b_ChSelect_r11(pub u8); +impl PhyLayerParameters_v1130TxDiv_PUCCH1b_ChSelect_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1130Ul_CoMP_r11(pub u8); +impl PhyLayerParameters_v1130Ul_CoMP_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct PhyLayerParameters_v1170InterBandTDD_CA_WithDifferentConfig_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250E_HARQ_Pattern_FDD_r12(pub u8); +impl PhyLayerParameters_v1250E_HARQ_Pattern_FDD_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Enhanced_4TxCodebook_r12(pub u8); +impl PhyLayerParameters_v1250Enhanced_4TxCodebook_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct PhyLayerParameters_v1250Tdd_FDD_CA_PCellDuplex_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Phy_TDD_ReConfig_TDD_PCell_r12(pub u8); +impl PhyLayerParameters_v1250Phy_TDD_ReConfig_TDD_PCell_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Phy_TDD_ReConfig_FDD_PCell_r12(pub u8); +impl PhyLayerParameters_v1250Phy_TDD_ReConfig_FDD_PCell_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Pusch_FeedbackMode_r12(pub u8); +impl PhyLayerParameters_v1250Pusch_FeedbackMode_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Pusch_SRS_PowerControl_SubframeSet_r12(pub u8); +impl PhyLayerParameters_v1250Pusch_SRS_PowerControl_SubframeSet_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250Csi_SubframeSet_r12(pub u8); +impl PhyLayerParameters_v1250Csi_SubframeSet_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250NoResourceRestrictionForTTIBundling_r12(pub u8); +impl PhyLayerParameters_v1250NoResourceRestrictionForTTIBundling_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1250DiscoverySignalsInDeactSCell_r12(pub u8); +impl PhyLayerParameters_v1250DiscoverySignalsInDeactSCell_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1280AlternativeTBS_Indices_r12(pub u8); +impl PhyLayerParameters_v1280AlternativeTBS_Indices_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct PhyLayerParameters_v1310AperiodicCSI_Reporting_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct PhyLayerParameters_v1310Codebook_HARQ_ACK_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310CrossCarrierScheduling_B5C_r13(pub u8); +impl PhyLayerParameters_v1310CrossCarrierScheduling_B5C_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Fdd_HARQ_TimingTDD_r13(pub u8); +impl PhyLayerParameters_v1310Fdd_HARQ_TimingTDD_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "32")] +pub struct PhyLayerParameters_v1310MaxNumberUpdatedCSI_Proc_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Pucch_Format4_r13(pub u8); +impl PhyLayerParameters_v1310Pucch_Format4_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Pucch_Format5_r13(pub u8); +impl PhyLayerParameters_v1310Pucch_Format5_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Pucch_SCell_r13(pub u8); +impl PhyLayerParameters_v1310Pucch_SCell_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310SpatialBundling_HARQ_ACK_r13(pub u8); +impl PhyLayerParameters_v1310SpatialBundling_HARQ_ACK_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1310SupportedBlindDecoding_r13MaxNumberDecoding_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310SupportedBlindDecoding_r13Pdcch_CandidateReductions_r13(pub u8); +impl PhyLayerParameters_v1310SupportedBlindDecoding_r13Pdcch_CandidateReductions_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310SupportedBlindDecoding_r13SkipMonitoringDCI_Format0_1A_r13( + pub u8, +); +impl PhyLayerParameters_v1310SupportedBlindDecoding_r13SkipMonitoringDCI_Format0_1A_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PhyLayerParameters_v1310SupportedBlindDecoding_r13 { + #[asn(optional_idx = 0)] + pub max_number_decoding_r13: + Option, + #[asn(optional_idx = 1)] + pub pdcch_candidate_reductions_r13: + Option, + #[asn(optional_idx = 2)] + pub skip_monitoring_dci_format0_1a_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Uci_PUSCH_Ext_r13(pub u8); +impl PhyLayerParameters_v1310Uci_PUSCH_Ext_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Crs_InterfMitigationTM10_r13(pub u8); +impl PhyLayerParameters_v1310Crs_InterfMitigationTM10_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1310Pdsch_CollisionHandling_r13(pub u8); +impl PhyLayerParameters_v1310Pdsch_CollisionHandling_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1330Cch_InterfMitigation_RefRecTypeA_r13(pub u8); +impl PhyLayerParameters_v1330Cch_InterfMitigation_RefRecTypeA_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1330Cch_InterfMitigation_RefRecTypeB_r13(pub u8); +impl PhyLayerParameters_v1330Cch_InterfMitigation_RefRecTypeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1330Cch_InterfMitigation_MaxNumCCs_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1330Crs_InterfMitigationTM1toTM9_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_PUSCH_NB_MaxTBS_r14(pub u8); +impl PhyLayerParameters_v1430Ce_PUSCH_NB_MaxTBS_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PhyLayerParameters_v1430Ce_PDSCH_PUSCH_MaxBandwidth_r14(pub u8); +impl PhyLayerParameters_v1430Ce_PDSCH_PUSCH_MaxBandwidth_r14 { + pub const BW5: u8 = 0u8; + pub const BW20: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_HARQ_AckBundling_r14(pub u8); +impl PhyLayerParameters_v1430Ce_HARQ_AckBundling_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_PDSCH_TenProcesses_r14(pub u8); +impl PhyLayerParameters_v1430Ce_PDSCH_TenProcesses_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct PhyLayerParameters_v1430Ce_RetuningSymbols_r14(pub u8); +impl PhyLayerParameters_v1430Ce_RetuningSymbols_r14 { + pub const N0: u8 = 0u8; + pub const N1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_PDSCH_PUSCH_Enhancement_r14(pub u8); +impl PhyLayerParameters_v1430Ce_PDSCH_PUSCH_Enhancement_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_SchedulingEnhancement_r14(pub u8); +impl PhyLayerParameters_v1430Ce_SchedulingEnhancement_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_SRS_Enhancement_r14(pub u8); +impl PhyLayerParameters_v1430Ce_SRS_Enhancement_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_PUCCH_Enhancement_r14(pub u8); +impl PhyLayerParameters_v1430Ce_PUCCH_Enhancement_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Ce_ClosedLoopTxAntennaSelection_r14(pub u8); +impl PhyLayerParameters_v1430Ce_ClosedLoopTxAntennaSelection_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Tdd_SpecialSubframe_r14(pub u8); +impl PhyLayerParameters_v1430Tdd_SpecialSubframe_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Tdd_TTI_Bundling_r14(pub u8); +impl PhyLayerParameters_v1430Tdd_TTI_Bundling_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430Dmrs_LessUpPTS_r14(pub u8); +impl PhyLayerParameters_v1430Dmrs_LessUpPTS_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1430AlternativeTBS_Index_r14(pub u8); +impl PhyLayerParameters_v1430AlternativeTBS_Index_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1450Ce_SRS_EnhancementWithoutComb4_r14(pub u8); +impl PhyLayerParameters_v1450Ce_SRS_EnhancementWithoutComb4_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1450Crs_LessDwPTS_r14(pub u8); +impl PhyLayerParameters_v1450Crs_LessDwPTS_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1470Srs_UpPTS_6sym_r14(pub u8); +impl PhyLayerParameters_v1470Srs_UpPTS_6sym_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v14a0Ssp10_TDD_Only_r14(pub u8); +impl PhyLayerParameters_v14a0Ssp10_TDD_Only_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15AperiodicCsi_ReportingSTTI_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15AperiodicCsi_ReportingSTTI_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_MBSFN_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_MBSFN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_nonMBSFN_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_nonMBSFN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_PositionPattern_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_PositionPattern_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_SharingSubslotPDSCH_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_SharingSubslotPDSCH_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_RepetitionSubslotPDSCH_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_RepetitionSubslotPDSCH_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_SPT_differentCells_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_SPT_differentCells_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_STTI_differentCells_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_STTI_differentCells_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxLayersSlotOrSubslotPUSCH_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxLayersSlotOrSubslotPUSCH_r15 { + pub const ONE_LAYER: u8 = 0u8; + pub const TWO_LAYERS: u8 = 1u8; + pub const FOUR_LAYERS: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "5", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_SPT_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb77_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb27_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb22_Set1_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb22_Set2_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "4", ub = "32")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15NumberOfBlindDecodesUSS_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Pdsch_SlotSubslotPDSCH_Decoding_r15( + pub u8, +); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Pdsch_SlotSubslotPDSCH_Decoding_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SlotPUSCH(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SlotPUSCH { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SubslotPUSCH(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SubslotPUSCH { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SlotPDSCH_TxDiv_TM9and10(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SlotPDSCH_TxDiv_TM9and10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SubslotPDSCH_TxDiv_TM9and10(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SubslotPDSCH_TxDiv_TM9and10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_differentRS_types_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_differentRS_types_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Srs_DCI7_TriggeringFS2_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Srs_DCI7_TriggeringFS2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_cyclicShift_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_cyclicShift_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_Reuse_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_Reuse_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_STTI_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_STTI_r15 { + pub const SLOT: u8 = 0u8; + pub const SUBSLOT: u8 = 1u8; + pub const SLOT_AND_SUBSLOT: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm8_slotPDSCH_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm8_slotPDSCH_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslot_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslotMBSFN_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslotMBSFN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslot_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslotMBSFN_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslotMBSFN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15TxDiv_SPUCCH_r15(pub u8); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15TxDiv_SPUCCH_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Ul_AsyncHarqSharingDiff_TTI_Lengths_r15( + pub u8, +); +impl PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Ul_AsyncHarqSharingDiff_TTI_Lengths_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 34)] +pub struct PhyLayerParameters_v1530Stti_SPT_Capabilities_r15 { # [asn (optional_idx = 0 ,)] pub aperiodic_csi_reporting_stti_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15AperiodicCsi_ReportingSTTI_r15 > , # [asn (optional_idx = 1 ,)] pub dmrs_based_spdcch_mbsfn_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_MBSFN_r15 > , # [asn (optional_idx = 2 ,)] pub dmrs_based_spdcch_non_mbsfn_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_BasedSPDCCH_nonMBSFN_r15 > , # [asn (optional_idx = 3 ,)] pub dmrs_position_pattern_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_PositionPattern_r15 > , # [asn (optional_idx = 4 ,)] pub dmrs_sharing_subslot_pdsch_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_SharingSubslotPDSCH_r15 > , # [asn (optional_idx = 5 ,)] pub dmrs_repetition_subslot_pdsch_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Dmrs_RepetitionSubslotPDSCH_r15 > , # [asn (optional_idx = 6 ,)] pub epdcch_spt_different_cells_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_SPT_differentCells_r15 > , # [asn (optional_idx = 7 ,)] pub epdcch_stti_different_cells_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Epdcch_STTI_differentCells_r15 > , # [asn (optional_idx = 8 ,)] pub max_layers_slot_or_subslot_pusch_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxLayersSlotOrSubslotPUSCH_r15 > , # [asn (optional_idx = 9 ,)] pub max_number_updated_csi_proc_spt_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_SPT_r15 > , # [asn (optional_idx = 10 ,)] pub max_number_updated_csi_proc_stti_comb77_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb77_r15 > , # [asn (optional_idx = 11 ,)] pub max_number_updated_csi_proc_stti_comb27_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb27_r15 > , # [asn (optional_idx = 12 ,)] pub max_number_updated_csi_proc_stti_comb22_set1_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb22_Set1_r15 > , # [asn (optional_idx = 13 ,)] pub max_number_updated_csi_proc_stti_comb22_set2_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15MaxNumberUpdatedCSI_Proc_STTI_Comb22_Set2_r15 > , # [asn (optional_idx = 14 ,)] pub mimo_ue_parameters_stti_r15 : Option < MIMO_UE_Parameters_r13 > , # [asn (optional_idx = 15 ,)] pub mimo_ue_parameters_stti_v1530 : Option < MIMO_UE_Parameters_v1430 > , # [asn (optional_idx = 16 ,)] pub number_of_blind_decodes_uss_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15NumberOfBlindDecodesUSS_r15 > , # [asn (optional_idx = 17 ,)] pub pdsch_slot_subslot_pdsch_decoding_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Pdsch_SlotSubslotPDSCH_Decoding_r15 > , # [asn (optional_idx = 18 ,)] pub power_uci_slot_pusch : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SlotPUSCH > , # [asn (optional_idx = 19 ,)] pub power_uci_subslot_pusch : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15PowerUCI_SubslotPUSCH > , # [asn (optional_idx = 20 ,)] pub slot_pdsch_tx_div_tm9and10 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SlotPDSCH_TxDiv_TM9and10 > , # [asn (optional_idx = 21 ,)] pub subslot_pdsch_tx_div_tm9and10 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15SubslotPDSCH_TxDiv_TM9and10 > , # [asn (optional_idx = 22 ,)] pub spdcch_different_rs_types_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_differentRS_types_r15 > , # [asn (optional_idx = 23 ,)] pub srs_dci7_triggering_fs2_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Srs_DCI7_TriggeringFS2_r15 > , # [asn (optional_idx = 24 ,)] pub sps_cyclic_shift_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_cyclicShift_r15 > , # [asn (optional_idx = 25 ,)] pub spdcch_reuse_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Spdcch_Reuse_r15 > , # [asn (optional_idx = 26 ,)] pub sps_stti_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Sps_STTI_r15 > , # [asn (optional_idx = 27 ,)] pub tm8_slot_pdsch_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm8_slotPDSCH_r15 > , # [asn (optional_idx = 28 ,)] pub tm9_slot_subslot_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslot_r15 > , # [asn (optional_idx = 29 ,)] pub tm9_slot_subslot_mbsfn_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm9_slotSubslotMBSFN_r15 > , # [asn (optional_idx = 30 ,)] pub tm10_slot_subslot_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslot_r15 > , # [asn (optional_idx = 31 ,)] pub tm10_slot_subslot_mbsfn_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Tm10_slotSubslotMBSFN_r15 > , # [asn (optional_idx = 32 ,)] pub tx_div_spucch_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15TxDiv_SPUCCH_r15 > , # [asn (optional_idx = 33 ,)] pub ul_async_harq_sharing_diff_tti_lengths_r15 : Option < PhyLayerParameters_v1530Stti_SPT_Capabilities_r15Ul_AsyncHarqSharingDiff_TTI_Lengths_r15 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_CRS_IntfMitig_r15(pub u8); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_CRS_IntfMitig_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_CQI_AlternativeTable_r15(pub u8); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_CQI_AlternativeTable_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_FlexibleStartPRB_CE_ModeA_r15( + pub u8, +); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_FlexibleStartPRB_CE_ModeA_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_FlexibleStartPRB_CE_ModeB_r15( + pub u8, +); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_FlexibleStartPRB_CE_ModeB_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_64QAM_r15(pub u8); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PDSCH_64QAM_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_FlexibleStartPRB_CE_ModeA_r15( + pub u8, +); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_FlexibleStartPRB_CE_ModeA_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_FlexibleStartPRB_CE_ModeB_r15( + pub u8, +); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_FlexibleStartPRB_CE_ModeB_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_SubPRB_Allocation_r15(pub u8); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_PUSCH_SubPRB_Allocation_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15Ce_UL_HARQ_ACK_Feedback_r15(pub u8); +impl PhyLayerParameters_v1530Ce_Capabilities_r15Ce_UL_HARQ_ACK_Feedback_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 9)] +pub struct PhyLayerParameters_v1530Ce_Capabilities_r15 { + #[asn(optional_idx = 0)] + pub ce_crs_intf_mitig_r15: + Option, + #[asn(optional_idx = 1)] + pub ce_cqi_alternative_table_r15: + Option, + #[asn(optional_idx = 2)] + pub ce_pdsch_flexible_start_prb_ce_mode_a_r15: + Option, + #[asn(optional_idx = 3)] + pub ce_pdsch_flexible_start_prb_ce_mode_b_r15: + Option, + #[asn(optional_idx = 4)] + pub ce_pdsch_64qam_r15: Option, + #[asn(optional_idx = 5)] + pub ce_pusch_flexible_start_prb_ce_mode_a_r15: + Option, + #[asn(optional_idx = 6)] + pub ce_pusch_flexible_start_prb_ce_mode_b_r15: + Option, + #[asn(optional_idx = 7)] + pub ce_pusch_sub_prb_allocation_r15: + Option, + #[asn(optional_idx = 8)] + pub ce_ul_harq_ack_feedback_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530ShortCQI_ForSCellActivation_r15(pub u8); +impl PhyLayerParameters_v1530ShortCQI_ForSCellActivation_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Mimo_CBSR_AdvancedCSI_r15(pub u8); +impl PhyLayerParameters_v1530Mimo_CBSR_AdvancedCSI_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Crs_IntfMitig_r15(pub u8); +impl PhyLayerParameters_v1530Crs_IntfMitig_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Ul_PowerControlEnhancements_r15(pub u8); +impl PhyLayerParameters_v1530Ul_PowerControlEnhancements_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSubframe_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSubframe_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSlot_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSlot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSubslot_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pdsch_RepSubslot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "6")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MultiConfigSubframe_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MaxConfigSubframe_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "6")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MultiConfigSlot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MaxConfigSlot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "6")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MultiConfigSubslot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_MaxConfigSubslot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepPCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepPCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepPSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepPSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SlotRepSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepPCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepPCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepPSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepPSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubframeRepSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepPCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepPCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepPSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepPSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepSCell_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15Pusch_SPS_SubslotRepSCell_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15SemiStaticCFI_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15SemiStaticCFI_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15SemiStaticCFI_Pattern_r15(pub u8); +impl PhyLayerParameters_v1530Urllc_Capabilities_r15SemiStaticCFI_Pattern_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 20)] +pub struct PhyLayerParameters_v1530Urllc_Capabilities_r15 { + #[asn(optional_idx = 0)] + pub pdsch_rep_subframe_r15: + Option, + #[asn(optional_idx = 1)] + pub pdsch_rep_slot_r15: Option, + #[asn(optional_idx = 2)] + pub pdsch_rep_subslot_r15: + Option, + #[asn(optional_idx = 3)] + pub pusch_sps_multi_config_subframe_r15: + Option, + #[asn(optional_idx = 4)] + pub pusch_sps_max_config_subframe_r15: + Option, + #[asn(optional_idx = 5)] + pub pusch_sps_multi_config_slot_r15: + Option, + #[asn(optional_idx = 6)] + pub pusch_sps_max_config_slot_r15: + Option, + #[asn(optional_idx = 7)] + pub pusch_sps_multi_config_subslot_r15: + Option, + #[asn(optional_idx = 8)] + pub pusch_sps_max_config_subslot_r15: + Option, + #[asn(optional_idx = 9)] + pub pusch_sps_slot_rep_p_cell_r15: + Option, + #[asn(optional_idx = 10)] + pub pusch_sps_slot_rep_ps_cell_r15: + Option, + #[asn(optional_idx = 11)] + pub pusch_sps_slot_rep_s_cell_r15: + Option, + #[asn(optional_idx = 12)] + pub pusch_sps_subframe_rep_p_cell_r15: + Option, + #[asn(optional_idx = 13)] + pub pusch_sps_subframe_rep_ps_cell_r15: + Option, + #[asn(optional_idx = 14)] + pub pusch_sps_subframe_rep_s_cell_r15: + Option, + #[asn(optional_idx = 15)] + pub pusch_sps_subslot_rep_p_cell_r15: + Option, + #[asn(optional_idx = 16)] + pub pusch_sps_subslot_rep_ps_cell_r15: + Option, + #[asn(optional_idx = 17)] + pub pusch_sps_subslot_rep_s_cell_r15: + Option, + #[asn(optional_idx = 18)] + pub semi_static_cfi_r15: + Option, + #[asn(optional_idx = 19)] + pub semi_static_cfi_pattern_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1530AltMCS_Table_r15(pub u8); +impl PhyLayerParameters_v1530AltMCS_Table_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1540Stti_SPT_Capabilities_v1540SlotPDSCH_TxDiv_TM8_r15(pub u8); +impl PhyLayerParameters_v1540Stti_SPT_Capabilities_v1540SlotPDSCH_TxDiv_TM8_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhyLayerParameters_v1540Stti_SPT_Capabilities_v1540 { + pub slot_pdsch_tx_div_tm8_r15: + PhyLayerParameters_v1540Stti_SPT_Capabilities_v1540SlotPDSCH_TxDiv_TM8_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1540Crs_IM_TM1_toTM9_OneRX_Port_v1540(pub u8); +impl PhyLayerParameters_v1540Crs_IM_TM1_toTM9_OneRX_Port_v1540 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1540Cch_IM_RefRecTypeA_OneRX_Port_v1540(pub u8); +impl PhyLayerParameters_v1540Cch_IM_RefRecTypeA_OneRX_Port_v1540 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1550Dmrs_OverheadReduction_r15(pub u8); +impl PhyLayerParameters_v1550Dmrs_OverheadReduction_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Ce_CSI_RS_Feedback_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Ce_CSI_RS_Feedback_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Ce_CSI_RS_FeedbackCodebookRestriction_r16( + pub u8, +); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Ce_CSI_RS_FeedbackCodebookRestriction_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CE_ModeA_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CE_ModeB_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CSI_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_CSI_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_ReciprocityTDD_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Crs_ChEstMPDCCH_ReciprocityTDD_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Etws_CMAS_RxInConnCE_ModeA_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Etws_CMAS_RxInConnCE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Etws_CMAS_RxInConnCE_ModeB_r16(pub u8); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Etws_CMAS_RxInConnCE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Mpdcch_InLteControlRegionCE_ModeA_r16( + pub u8, +); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Mpdcch_InLteControlRegionCE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Mpdcch_InLteControlRegionCE_ModeB_r16( + pub u8, +); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Mpdcch_InLteControlRegionCE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Pdsch_InLteControlRegionCE_ModeA_r16( + pub u8, +); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Pdsch_InLteControlRegionCE_ModeA_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610Pdsch_InLteControlRegionCE_ModeB_r16( + pub u8, +); +impl PhyLayerParameters_v1610Ce_Capabilities_v1610Pdsch_InLteControlRegionCE_ModeB_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 14)] +pub struct PhyLayerParameters_v1610Ce_Capabilities_v1610 { + #[asn(optional_idx = 0)] + pub ce_csi_rs_feedback_r16: + Option, + #[asn(optional_idx = 1)] + pub ce_csi_rs_feedback_codebook_restriction_r16: Option< + PhyLayerParameters_v1610Ce_Capabilities_v1610Ce_CSI_RS_FeedbackCodebookRestriction_r16, + >, + #[asn(optional_idx = 2)] + pub crs_ch_est_mpdcch_ce_mode_a_r16: + Option, + #[asn(optional_idx = 3)] + pub crs_ch_est_mpdcch_ce_mode_b_r16: + Option, + #[asn(optional_idx = 4)] + pub crs_ch_est_mpdcch_csi_r16: + Option, + #[asn(optional_idx = 5)] + pub crs_ch_est_mpdcch_reciprocity_tdd_r16: + Option, + #[asn(optional_idx = 6)] + pub etws_cmas_rx_in_conn_ce_mode_a_r16: + Option, + #[asn(optional_idx = 7)] + pub etws_cmas_rx_in_conn_ce_mode_b_r16: + Option, + #[asn(optional_idx = 8)] + pub mpdcch_in_lte_control_region_ce_mode_a_r16: + Option, + #[asn(optional_idx = 9)] + pub mpdcch_in_lte_control_region_ce_mode_b_r16: + Option, + #[asn(optional_idx = 10)] + pub pdsch_in_lte_control_region_ce_mode_a_r16: + Option, + #[asn(optional_idx = 11)] + pub pdsch_in_lte_control_region_ce_mode_b_r16: + Option, + #[asn(optional_idx = 12)] + pub multi_tb_parameters_r16: Option, + #[asn(optional_idx = 13)] + pub resource_resv_parameters_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610WidebandPRG_Slot_r16(pub u8); +impl PhyLayerParameters_v1610WidebandPRG_Slot_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610WidebandPRG_Subslot_r16(pub u8); +impl PhyLayerParameters_v1610WidebandPRG_Subslot_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610WidebandPRG_Subframe_r16(pub u8); +impl PhyLayerParameters_v1610WidebandPRG_Subframe_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610AddSRS_r16AddSRS_FrequencyHopping_r16(pub u8); +impl PhyLayerParameters_v1610AddSRS_r16AddSRS_FrequencyHopping_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610AddSRS_r16AddSRS_AntennaSwitching_r16(pub u8); +impl PhyLayerParameters_v1610AddSRS_r16AddSRS_AntennaSwitching_r16 { + pub const USE_BASIC: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610AddSRS_r16AddSRS_CarrierSwitching_r16(pub u8); +impl PhyLayerParameters_v1610AddSRS_r16AddSRS_CarrierSwitching_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PhyLayerParameters_v1610AddSRS_r16 { + #[asn(optional_idx = 0)] + pub add_srs_frequency_hopping_r16: + Option, + #[asn(optional_idx = 1)] + pub add_srs_antenna_switching_r16: + Option, + #[asn(optional_idx = 2)] + pub add_srs_carrier_switching_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610VirtualCellID_BasicSRS_r16(pub u8); +impl PhyLayerParameters_v1610VirtualCellID_BasicSRS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1610VirtualCellID_AddSRS_r16(pub u8); +impl PhyLayerParameters_v1610VirtualCellID_AddSRS_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_14HARQProcesses_r17(pub u8); +impl PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_14HARQProcesses_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_14HARQProcesses_Alt2_r17(pub u8); +impl PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_14HARQProcesses_Alt2_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_MaxTBS_r17(pub u8); +impl PhyLayerParameters_v1700Ce_Capabilities_v1700Ce_PDSCH_MaxTBS_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct PhyLayerParameters_v1700Ce_Capabilities_v1700 { + #[asn(optional_idx = 0)] + pub ce_pdsch_14harq_processes_r17: + Option, + #[asn(optional_idx = 1)] + pub ce_pdsch_14harq_processes_alt2_r17: + Option, + #[asn(optional_idx = 2)] + pub ce_pdsch_max_tbs_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v1730Csi_SubframeSet2ForDormantSCell_r17(pub u8); +impl PhyLayerParameters_v1730Csi_SubframeSet2ForDormantSCell_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v920EnhancedDualLayerFDD_r9(pub u8); +impl PhyLayerParameters_v920EnhancedDualLayerFDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v920EnhancedDualLayerTDD_r9(pub u8); +impl PhyLayerParameters_v920EnhancedDualLayerTDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v9d0Tm5_FDD_r9(pub u8); +impl PhyLayerParameters_v9d0Tm5_FDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PhyLayerParameters_v9d0Tm5_TDD_r9(pub u8); +impl PhyLayerParameters_v9d0Tm5_TDD_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct PhysCellIdGERANNetworkColourCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct PhysCellIdGERANBaseStationColourCode(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PhysCellIdRangeRange(pub u8); +impl PhysCellIdRangeRange { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N12: u8 = 2u8; + pub const N16: u8 = 3u8; + pub const N24: u8 = 4u8; + pub const N32: u8 = 5u8; + pub const N48: u8 = 6u8; + pub const N64: u8 = 7u8; + pub const N84: u8 = 8u8; + pub const N96: u8 = 9u8; + pub const N128: u8 = 10u8; + pub const N168: u8 = 11u8; + pub const N252: u8 = 12u8; + pub const N504: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PhysCellIdRangeNR_r16Range(pub u8); +impl PhysCellIdRangeNR_r16Range { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N12: u8 = 2u8; + pub const N16: u8 = 3u8; + pub const N24: u8 = 4u8; + pub const N32: u8 = 5u8; + pub const N48: u8 = 6u8; + pub const N64: u8 = 7u8; + pub const N84: u8 = 8u8; + pub const N96: u8 = 9u8; + pub const N128: u8 = 10u8; + pub const N168: u8 = 11u8; + pub const N252: u8 = 12u8; + pub const N504: u8 = 13u8; + pub const N1008: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "512")] +pub struct PhysCellIdRangeUTRA_FDD_r9Range_r9(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PhysicalConfigDedicatedAntennaInfo_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PhysicalConfigDedicatedAntennaInfo { + #[asn(key = 0, extended = false)] + ExplicitValue(AntennaInfoDedicated), + #[asn(key = 1, extended = false)] + DefaultValue(PhysicalConfigDedicatedAntennaInfo_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct PhysicalConfigDedicatedSCell_r10NonUL_Configuration_r10 { + #[asn(optional_idx = 0)] + pub antenna_info_r10: Option, + #[asn(optional_idx = 1)] + pub cross_carrier_scheduling_config_r10: Option, + #[asn(optional_idx = 2)] + pub csi_rs_config_r10: Option, + #[asn(optional_idx = 3)] + pub pdsch_config_dedicated_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct PhysicalConfigDedicatedSCell_r10Ul_Configuration_r10 { + #[asn(optional_idx = 0)] + pub antenna_info_ul_r10: Option, + #[asn(optional_idx = 1)] + pub pusch_config_dedicated_s_cell_r10: Option, + #[asn(optional_idx = 2)] + pub uplink_power_control_dedicated_s_cell_r10: Option, + #[asn(optional_idx = 3)] + pub cqi_report_config_s_cell_r10: Option, + #[asn(optional_idx = 4)] + pub sounding_rs_ul_config_dedicated_r10: Option, + #[asn(optional_idx = 5)] + pub sounding_rs_ul_config_dedicated_v1020: Option, + #[asn(optional_idx = 6)] + pub sounding_rs_ul_config_dedicated_aperiodic_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370_setup { + #[asn(optional_idx = 0)] + pub pucch_config_dedicated_v1370: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370 { + #[asn(key = 0, extended = false)] + Release(PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370_release), + #[asn(key = 1, extended = false)] + Setup(PhysicalConfigDedicatedSCell_v1370Pucch_SCell_v1370_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0_setup { + pub pucch_config_dedicated_v13c0: PUCCH_ConfigDedicated_v13c0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0 { + #[asn(key = 0, extended = false)] + Release(PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0_release), + #[asn(key = 1, extended = false)] + Setup(PhysicalConfigDedicatedSCell_v13c0Pucch_SCell_v13c0_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PhysicalConfigDedicatedSCell_v1730Cqi_ReportPeriodicSCell_v1730_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum PhysicalConfigDedicatedSCell_v1730Cqi_ReportPeriodicSCell_v1730 { + #[asn(key = 0, extended = false)] + Release(PhysicalConfigDedicatedSCell_v1730Cqi_ReportPeriodicSCell_v1730_release), + #[asn(key = 1, extended = false)] + Setup(CQI_ReportPeriodicSCell_v1730), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PhysicalConfigDedicatedSTTI_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PhysicalConfigDedicatedSTTI_r15_setupSemiOpenLoopSTTI_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PhysicalConfigDedicatedSTTI_r15_setupSrs_DCI7_TriggeringConfig_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PhysicalConfigDedicatedSTTI_r15_setupShortProcessingTime_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 19)] +pub struct PhysicalConfigDedicatedSTTI_r15_setup { + #[asn(optional_idx = 0)] + pub antenna_info_dedicated_stti_r15: Option, + #[asn(optional_idx = 1)] + pub antenna_info_ul_stti_r15: Option, + #[asn(optional_idx = 2)] + pub pucch_config_dedicated_v1530: Option, + #[asn(optional_idx = 3)] + pub scheduling_request_config_v1530: Option, + #[asn(optional_idx = 4)] + pub uplink_power_control_dedicated_stti_r15: Option, + #[asn(optional_idx = 5)] + pub cqi_report_config_r15: Option, + #[asn(optional_idx = 6)] + pub csi_rs_config_r15: Option, + #[asn(optional_idx = 7)] + pub csi_rs_config_nzp_to_release_list_r15: Option, + #[asn(optional_idx = 8)] + pub csi_rs_config_nzp_to_add_mod_list_r15: Option, + #[asn(optional_idx = 9)] + pub csi_rs_config_zp_to_release_list_r15: Option, + #[asn(optional_idx = 10)] + pub csi_rs_config_zp_to_add_mod_list_r11: Option, + #[asn(optional_idx = 11)] + pub csi_rs_config_zp_ap_list_r15: Option, + #[asn(optional_idx = 12)] + pub eimta_main_config_r12: Option, + #[asn(optional_idx = 13)] + pub eimta_main_config_serv_cell_r15: Option, + pub semi_open_loop_stti_r15: PhysicalConfigDedicatedSTTI_r15_setupSemiOpenLoopSTTI_r15, + #[asn(optional_idx = 14)] + pub slot_or_subslot_pdsch_config_r15: Option, + #[asn(optional_idx = 15)] + pub slot_or_subslot_pusch_config_r15: Option, + #[asn(optional_idx = 16)] + pub spdcch_config_r15: Option, + #[asn(optional_idx = 17)] + pub spucch_config_r15: Option, + pub srs_dci7_triggering_config_r15: + PhysicalConfigDedicatedSTTI_r15_setupSrs_DCI7_TriggeringConfig_r15, + pub short_processing_time_r15: PhysicalConfigDedicatedSTTI_r15_setupShortProcessingTime_r15, + #[asn(optional_idx = 18)] + pub short_tti_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct PosSIB_Type_r15Encrypted_r15(pub u8); +impl PosSIB_Type_r15Encrypted_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "26")] +pub struct PosSIB_Type_r15PosSibType_r15(pub u8); +impl PosSIB_Type_r15PosSibType_r15 { + pub const POS_SIB_TYPE1_1: u8 = 0u8; + pub const POS_SIB_TYPE1_2: u8 = 1u8; + pub const POS_SIB_TYPE1_3: u8 = 2u8; + pub const POS_SIB_TYPE1_4: u8 = 3u8; + pub const POS_SIB_TYPE1_5: u8 = 4u8; + pub const POS_SIB_TYPE1_6: u8 = 5u8; + pub const POS_SIB_TYPE1_7: u8 = 6u8; + pub const POS_SIB_TYPE2_1: u8 = 7u8; + pub const POS_SIB_TYPE2_2: u8 = 8u8; + pub const POS_SIB_TYPE2_3: u8 = 9u8; + pub const POS_SIB_TYPE2_4: u8 = 10u8; + pub const POS_SIB_TYPE2_5: u8 = 11u8; + pub const POS_SIB_TYPE2_6: u8 = 12u8; + pub const POS_SIB_TYPE2_7: u8 = 13u8; + pub const POS_SIB_TYPE2_8: u8 = 14u8; + pub const POS_SIB_TYPE2_9: u8 = 15u8; + pub const POS_SIB_TYPE2_10: u8 = 16u8; + pub const POS_SIB_TYPE2_11: u8 = 17u8; + pub const POS_SIB_TYPE2_12: u8 = 18u8; + pub const POS_SIB_TYPE2_13: u8 = 19u8; + pub const POS_SIB_TYPE2_14: u8 = 20u8; + pub const POS_SIB_TYPE2_15: u8 = 21u8; + pub const POS_SIB_TYPE2_16: u8 = 22u8; + pub const POS_SIB_TYPE2_17: u8 = 23u8; + pub const POS_SIB_TYPE2_18: u8 = 24u8; + pub const POS_SIB_TYPE2_19: u8 = 25u8; + pub const POS_SIB_TYPE3_1: u8 = 26u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct PosSchedulingInfo_r15PosSI_Periodicity_r15(pub u8); +impl PosSchedulingInfo_r15PosSI_Periodicity_r15 { + pub const RF8: u8 = 0u8; + pub const RF16: u8 = 1u8; + pub const RF32: u8 = 2u8; + pub const RF64: u8 = 3u8; + pub const RF128: u8 = 4u8; + pub const RF256: u8 = 5u8; + pub const RF512: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "26", extensible = true)] +pub enum PosSystemInformation_r15_IEsPosSIB_TypeAndInfo_r15_Entry { + #[asn(key = 0, extended = false)] + PosSib1_1_r15(SystemInformationBlockPos_r15), + #[asn(key = 1, extended = false)] + PosSib1_2_r15(SystemInformationBlockPos_r15), + #[asn(key = 2, extended = false)] + PosSib1_3_r15(SystemInformationBlockPos_r15), + #[asn(key = 3, extended = false)] + PosSib1_4_r15(SystemInformationBlockPos_r15), + #[asn(key = 4, extended = false)] + PosSib1_5_r15(SystemInformationBlockPos_r15), + #[asn(key = 5, extended = false)] + PosSib1_6_r15(SystemInformationBlockPos_r15), + #[asn(key = 6, extended = false)] + PosSib1_7_r15(SystemInformationBlockPos_r15), + #[asn(key = 7, extended = false)] + PosSib2_1_r15(SystemInformationBlockPos_r15), + #[asn(key = 8, extended = false)] + PosSib2_2_r15(SystemInformationBlockPos_r15), + #[asn(key = 9, extended = false)] + PosSib2_3_r15(SystemInformationBlockPos_r15), + #[asn(key = 10, extended = false)] + PosSib2_4_r15(SystemInformationBlockPos_r15), + #[asn(key = 11, extended = false)] + PosSib2_5_r15(SystemInformationBlockPos_r15), + #[asn(key = 12, extended = false)] + PosSib2_6_r15(SystemInformationBlockPos_r15), + #[asn(key = 13, extended = false)] + PosSib2_7_r15(SystemInformationBlockPos_r15), + #[asn(key = 14, extended = false)] + PosSib2_8_r15(SystemInformationBlockPos_r15), + #[asn(key = 15, extended = false)] + PosSib2_9_r15(SystemInformationBlockPos_r15), + #[asn(key = 16, extended = false)] + PosSib2_10_r15(SystemInformationBlockPos_r15), + #[asn(key = 17, extended = false)] + PosSib2_11_r15(SystemInformationBlockPos_r15), + #[asn(key = 18, extended = false)] + PosSib2_12_r15(SystemInformationBlockPos_r15), + #[asn(key = 19, extended = false)] + PosSib2_13_r15(SystemInformationBlockPos_r15), + #[asn(key = 20, extended = false)] + PosSib2_14_r15(SystemInformationBlockPos_r15), + #[asn(key = 21, extended = false)] + PosSib2_15_r15(SystemInformationBlockPos_r15), + #[asn(key = 22, extended = false)] + PosSib2_16_r15(SystemInformationBlockPos_r15), + #[asn(key = 23, extended = false)] + PosSib2_17_r15(SystemInformationBlockPos_r15), + #[asn(key = 24, extended = false)] + PosSib2_18_r15(SystemInformationBlockPos_r15), + #[asn(key = 25, extended = false)] + PosSib2_19_r15(SystemInformationBlockPos_r15), + #[asn(key = 26, extended = false)] + PosSib3_1_r15(SystemInformationBlockPos_r15), + #[asn(key = 0, extended = true)] + PosSib1_8_v1610(SystemInformationBlockPos_r15), + #[asn(key = 1, extended = true)] + PosSib2_20_v1610(SystemInformationBlockPos_r15), + #[asn(key = 2, extended = true)] + PosSib2_21_v1610(SystemInformationBlockPos_r15), + #[asn(key = 3, extended = true)] + PosSib2_22_v1610(SystemInformationBlockPos_r15), + #[asn(key = 4, extended = true)] + PosSib2_23_v1610(SystemInformationBlockPos_r15), + #[asn(key = 5, extended = true)] + PosSib2_24_v1610(SystemInformationBlockPos_r15), + #[asn(key = 6, extended = true)] + PosSib2_25_v1610(SystemInformationBlockPos_r15), + #[asn(key = 7, extended = true)] + PosSib4_1_v1610(SystemInformationBlockPos_r15), + #[asn(key = 8, extended = true)] + PosSib5_1_v1610(SystemInformationBlockPos_r15), + #[asn(key = 9, extended = true)] + PosSib1_9_v1700(SystemInformationBlockPos_r15), + #[asn(key = 10, extended = true)] + PosSib1_10_v1700(SystemInformationBlockPos_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct PosSystemInformation_r15_IEsPosSIB_TypeAndInfo_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct PosSystemInformation_r15_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PosSystemInformation_r15_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PowerCoordinationInfo_r12P_MeNB_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct PowerCoordinationInfo_r12P_SeNB_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct PowerCoordinationInfo_r12PowerControlMode_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct PowerPrefIndicationConfig_r11_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PowerPrefIndicationConfig_r11_setupPowerPrefIndicationTimer_r11(pub u8); +impl PowerPrefIndicationConfig_r11_setupPowerPrefIndicationTimer_r11 { + pub const S0: u8 = 0u8; + pub const S0DOT5: u8 = 1u8; + pub const S1: u8 = 2u8; + pub const S2: u8 = 3u8; + pub const S5: u8 = 4u8; + pub const S10: u8 = 5u8; + pub const S20: u8 = 6u8; + pub const S30: u8 = 7u8; + pub const S60: u8 = 8u8; + pub const S90: u8 = 9u8; + pub const S120: u8 = 10u8; + pub const S300: u8 = 11u8; + pub const S600: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct PowerPrefIndicationConfig_r11_setup { + pub power_pref_indication_timer_r11: + PowerPrefIndicationConfig_r11_setupPowerPrefIndicationTimer_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct PowerRampingParametersPowerRampingStep(pub u8); +impl PowerRampingParametersPowerRampingStep { + pub const D_B0: u8 = 0u8; + pub const D_B2: u8 = 1u8; + pub const D_B4: u8 = 2u8; + pub const D_B6: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct PowerRampingParametersPreambleInitialReceivedTargetPower(pub u8); +impl PowerRampingParametersPreambleInitialReceivedTargetPower { + pub const D_BM_120: u8 = 0u8; + pub const D_BM_118: u8 = 1u8; + pub const D_BM_116: u8 = 2u8; + pub const D_BM_114: u8 = 3u8; + pub const D_BM_112: u8 = 4u8; + pub const D_BM_110: u8 = 5u8; + pub const D_BM_108: u8 = 6u8; + pub const D_BM_106: u8 = 7u8; + pub const D_BM_104: u8 = 8u8; + pub const D_BM_102: u8 = 9u8; + pub const D_BM_100: u8 = 10u8; + pub const D_BM_98: u8 = 11u8; + pub const D_BM_96: u8 = 12u8; + pub const D_BM_94: u8 = 13u8; + pub const D_BM_92: u8 = 14u8; + pub const D_BM_90: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct PreRegistrationInfoHRPDPreRegistrationAllowed(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ProximityIndication_r9CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ProximityIndication_r9CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ProximityIndication_r9CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ProximityIndication_r9CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + ProximityIndication_r9(ProximityIndication_r9_IEs), + #[asn(key = 1, extended = false)] + Spare3(ProximityIndication_r9CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(ProximityIndication_r9CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(ProximityIndication_r9CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ProximityIndication_r9CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ProximityIndication_r9CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(ProximityIndication_r9CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(ProximityIndication_r9CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ProximityIndication_r9_IEsType_r9(pub u8); +impl ProximityIndication_r9_IEsType_r9 { + pub const ENTERING: u8 = 0u8; + pub const LEAVING: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum ProximityIndication_r9_IEsCarrierFreq_r9 { + #[asn(key = 0, extended = false)] + Eutra_r9(ARFCN_ValueEUTRA), + #[asn(key = 1, extended = false)] + Utra_r9(ARFCN_ValueUTRA), + #[asn(key = 0, extended = true)] + Eutra2_v9e0(ARFCN_ValueEUTRA_v9e0), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ProximityIndication_v930_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ProximityIndication_v930_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct QuantityConfigCDMA2000MeasQuantityCDMA2000(pub u8); +impl QuantityConfigCDMA2000MeasQuantityCDMA2000 { + pub const PILOT_STRENGTH: u8 = 0u8; + pub const PILOT_PN_PHASE_AND_PILOT_STRENGTH: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct QuantityConfigGERANMeasQuantityGERAN(pub u8); +impl QuantityConfigGERANMeasQuantityGERAN { + pub const RSSI: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct QuantityConfigUTRAMeasQuantityUTRA_FDD(pub u8); +impl QuantityConfigUTRAMeasQuantityUTRA_FDD { + pub const CPICH_RSCP: u8 = 0u8; + pub const CPICH_EC_N0: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct QuantityConfigUTRAMeasQuantityUTRA_TDD(pub u8); +impl QuantityConfigUTRAMeasQuantityUTRA_TDD { + pub const PCCPCH_RSCP: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct QuantityConfigWLAN_r13MeasQuantityWLAN_r13(pub u8); +impl QuantityConfigWLAN_r13MeasQuantityWLAN_r13 { + pub const RSSI_WLAN: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct RACH_CE_LevelInfo_r13PreambleMappingInfo_r13FirstPreamble_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct RACH_CE_LevelInfo_r13PreambleMappingInfo_r13LastPreamble_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_CE_LevelInfo_r13PreambleMappingInfo_r13 { + pub first_preamble_r13: RACH_CE_LevelInfo_r13PreambleMappingInfo_r13FirstPreamble_r13, + pub last_preamble_r13: RACH_CE_LevelInfo_r13PreambleMappingInfo_r13LastPreamble_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_CE_LevelInfo_r13Ra_ResponseWindowSize_r13(pub u8); +impl RACH_CE_LevelInfo_r13Ra_ResponseWindowSize_r13 { + pub const SF20: u8 = 0u8; + pub const SF50: u8 = 1u8; + pub const SF80: u8 = 2u8; + pub const SF120: u8 = 3u8; + pub const SF180: u8 = 4u8; + pub const SF240: u8 = 5u8; + pub const SF320: u8 = 6u8; + pub const SF400: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_CE_LevelInfo_r13Mac_ContentionResolutionTimer_r13(pub u8); +impl RACH_CE_LevelInfo_r13Mac_ContentionResolutionTimer_r13 { + pub const SF80: u8 = 0u8; + pub const SF100: u8 = 1u8; + pub const SF120: u8 = 2u8; + pub const SF160: u8 = 3u8; + pub const SF200: u8 = 4u8; + pub const SF240: u8 = 5u8; + pub const SF480: u8 = 6u8; + pub const SF960: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RACH_CE_LevelInfo_r13Rar_HoppingConfig_r13(pub u8); +impl RACH_CE_LevelInfo_r13Rar_HoppingConfig_r13 { + pub const ON: u8 = 0u8; + pub const OFF: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct RACH_ConfigCommonPreambleInfoNumberOfRA_Preambles(pub u8); +impl RACH_ConfigCommonPreambleInfoNumberOfRA_Preambles { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N12: u8 = 2u8; + pub const N16: u8 = 3u8; + pub const N20: u8 = 4u8; + pub const N24: u8 = 5u8; + pub const N28: u8 = 6u8; + pub const N32: u8 = 7u8; + pub const N36: u8 = 8u8; + pub const N40: u8 = 9u8; + pub const N44: u8 = 10u8; + pub const N48: u8 = 11u8; + pub const N52: u8 = 12u8; + pub const N56: u8 = 13u8; + pub const N60: u8 = 14u8; + pub const N64: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "14")] +pub struct RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigSizeOfRA_PreamblesGroupA(pub u8); +impl RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigSizeOfRA_PreamblesGroupA { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N12: u8 = 2u8; + pub const N16: u8 = 3u8; + pub const N20: u8 = 4u8; + pub const N24: u8 = 5u8; + pub const N28: u8 = 6u8; + pub const N32: u8 = 7u8; + pub const N36: u8 = 8u8; + pub const N40: u8 = 9u8; + pub const N44: u8 = 10u8; + pub const N48: u8 = 11u8; + pub const N52: u8 = 12u8; + pub const N56: u8 = 13u8; + pub const N60: u8 = 14u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessageSizeGroupA(pub u8); +impl RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessageSizeGroupA { + pub const B56: u8 = 0u8; + pub const B144: u8 = 1u8; + pub const B208: u8 = 2u8; + pub const B256: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessagePowerOffsetGroupB(pub u8); +impl RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessagePowerOffsetGroupB { + pub const MINUSINFINITY: u8 = 0u8; + pub const D_B0: u8 = 1u8; + pub const D_B5: u8 = 2u8; + pub const D_B8: u8 = 3u8; + pub const D_B10: u8 = 4u8; + pub const D_B12: u8 = 5u8; + pub const D_B15: u8 = 6u8; + pub const D_B18: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RACH_ConfigCommonPreambleInfoPreamblesGroupAConfig { + pub size_of_ra_preambles_group_a: + RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigSizeOfRA_PreamblesGroupA, + pub message_size_group_a: RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessageSizeGroupA, + pub message_power_offset_group_b: + RACH_ConfigCommonPreambleInfoPreamblesGroupAConfigMessagePowerOffsetGroupB, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RACH_ConfigCommonPreambleInfo { + pub number_of_ra_preambles: RACH_ConfigCommonPreambleInfoNumberOfRA_Preambles, + #[asn(optional_idx = 0)] + pub preambles_group_a_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_ConfigCommonRa_SupervisionInfoRa_ResponseWindowSize(pub u8); +impl RACH_ConfigCommonRa_SupervisionInfoRa_ResponseWindowSize { + pub const SF2: u8 = 0u8; + pub const SF3: u8 = 1u8; + pub const SF4: u8 = 2u8; + pub const SF5: u8 = 3u8; + pub const SF6: u8 = 4u8; + pub const SF7: u8 = 5u8; + pub const SF8: u8 = 6u8; + pub const SF10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_ConfigCommonRa_SupervisionInfoMac_ContentionResolutionTimer(pub u8); +impl RACH_ConfigCommonRa_SupervisionInfoMac_ContentionResolutionTimer { + pub const SF8: u8 = 0u8; + pub const SF16: u8 = 1u8; + pub const SF24: u8 = 2u8; + pub const SF32: u8 = 3u8; + pub const SF40: u8 = 4u8; + pub const SF48: u8 = 5u8; + pub const SF56: u8 = 6u8; + pub const SF64: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_ConfigCommonRa_SupervisionInfo { + pub preamble_trans_max: PreambleTransMax, + pub ra_response_window_size: RACH_ConfigCommonRa_SupervisionInfoRa_ResponseWindowSize, + pub mac_contention_resolution_timer: + RACH_ConfigCommonRa_SupervisionInfoMac_ContentionResolutionTimer, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct RACH_ConfigCommonMaxHARQ_Msg3Tx(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailCount_r12(pub u8); +impl RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailCount_r12 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailOffsetValidity_r12(pub u8); +impl RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailOffsetValidity_r12 { + pub const S30: u8 = 0u8; + pub const S60: u8 = 1u8; + pub const S120: u8 = 2u8; + pub const S240: u8 = 3u8; + pub const S300: u8 = 4u8; + pub const S420: u8 = 5u8; + pub const S600: u8 = 6u8; + pub const S900: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailOffset_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RACH_ConfigCommon_v1250TxFailParams_r12 { + pub conn_est_fail_count_r12: RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailCount_r12, + pub conn_est_fail_offset_validity_r12: + RACH_ConfigCommon_v1250TxFailParams_r12ConnEstFailOffsetValidity_r12, + #[asn(optional_idx = 0)] + pub conn_est_fail_offset_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_ConfigCommonSCell_r11Ra_SupervisionInfo_r11 { + pub preamble_trans_max_r11: PreambleTransMax, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct RACH_ConfigDedicatedRa_PreambleIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct RACH_ConfigDedicatedRa_PRACH_MaskIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RACH_Report_r16ContentionDetected_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct RACH_Report_v1610InitialCEL_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RACH_Report_v1610Edt_Fallback_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RACH_Skip_r14TargetTA_r14_ta0_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RACH_Skip_r14TargetTA_r14_mcg_PTAG_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RACH_Skip_r14TargetTA_r14_scg_PTAG_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "4", extensible = false)] +pub enum RACH_Skip_r14TargetTA_r14 { + #[asn(key = 0, extended = false)] + Ta0_r14(RACH_Skip_r14TargetTA_r14_ta0_r14), + #[asn(key = 1, extended = false)] + Mcg_PTAG_r14(RACH_Skip_r14TargetTA_r14_mcg_PTAG_r14), + #[asn(key = 2, extended = false)] + Scg_PTAG_r14(RACH_Skip_r14TargetTA_r14_scg_PTAG_r14), + #[asn(key = 3, extended = false)] + Mcg_STAG_r14(STAG_Id_r11), + #[asn(key = 4, extended = false)] + Scg_STAG_r14(STAG_Id_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct RACH_Skip_r14Ul_ConfigInfo_r14NumberOfConfUL_Processes_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct RACH_Skip_r14Ul_ConfigInfo_r14Ul_SchedInterval_r14(pub u8); +impl RACH_Skip_r14Ul_ConfigInfo_r14Ul_SchedInterval_r14 { + pub const SF2: u8 = 0u8; + pub const SF5: u8 = 1u8; + pub const SF10: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct RACH_Skip_r14Ul_ConfigInfo_r14Ul_StartSubframe_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct RACH_Skip_r14Ul_ConfigInfo_r14Ul_Grant_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RACH_Skip_r14Ul_ConfigInfo_r14 { + pub number_of_conf_ul_processes_r14: RACH_Skip_r14Ul_ConfigInfo_r14NumberOfConfUL_Processes_r14, + pub ul_sched_interval_r14: RACH_Skip_r14Ul_ConfigInfo_r14Ul_SchedInterval_r14, + pub ul_start_subframe_r14: RACH_Skip_r14Ul_ConfigInfo_r14Ul_StartSubframe_r14, + pub ul_grant_r14: RACH_Skip_r14Ul_ConfigInfo_r14Ul_Grant_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct RAN_AreaConfig_r15Ran_AreaCodeList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RCLWI_Config_r13Command_steerToWLAN_r13 { + pub mobility_config_r13: WLAN_Id_List_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RCLWI_Config_r13Command_steerToLTE_r13; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RCLWI_Config_r13Command { + #[asn(key = 0, extended = false)] + SteerToWLAN_r13(RCLWI_Config_r13Command_steerToWLAN_r13), + #[asn(key = 1, extended = false)] + SteerToLTE_r13(RCLWI_Config_r13Command_steerToLTE_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RCLWI_Configuration_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RCLWI_Configuration_r13_setup { + pub rclwi_config_r13: RCLWI_Config_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct RF_Parameters_v10f0ModifiedMPR_Behavior_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v10j0MultiNS_Pmax_r10(pub u8); +impl RF_Parameters_v10j0MultiNS_Pmax_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1180FreqBandRetrieval_r11(pub u8); +impl RF_Parameters_v1180FreqBandRetrieval_r11 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct RF_Parameters_v1180RequestedBands_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1250FreqBandPriorityAdjustment_r12(pub u8); +impl RF_Parameters_v1250FreqBandPriorityAdjustment_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v12b0MaxLayersMIMO_Indication_r12(pub u8); +impl RF_Parameters_v12b0MaxLayersMIMO_Indication_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1310ENB_RequestedParameters_r13ReducedIntNonContCombRequested_r13(pub u8); +impl RF_Parameters_v1310ENB_RequestedParameters_r13ReducedIntNonContCombRequested_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "32")] +pub struct RF_Parameters_v1310ENB_RequestedParameters_r13RequestedCCsDL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "32")] +pub struct RF_Parameters_v1310ENB_RequestedParameters_r13RequestedCCsUL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1310ENB_RequestedParameters_r13SkipFallbackCombRequested_r13(pub u8); +impl RF_Parameters_v1310ENB_RequestedParameters_r13SkipFallbackCombRequested_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RF_Parameters_v1310ENB_RequestedParameters_r13 { + #[asn(optional_idx = 0)] + pub reduced_int_non_cont_comb_requested_r13: + Option, + #[asn(optional_idx = 1)] + pub requested_c_cs_dl_r13: + Option, + #[asn(optional_idx = 2)] + pub requested_c_cs_ul_r13: + Option, + #[asn(optional_idx = 3)] + pub skip_fallback_comb_requested_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1310MaximumCCsRetrieval_r13(pub u8); +impl RF_Parameters_v1310MaximumCCsRetrieval_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1310SkipFallbackCombinations_r13(pub u8); +impl RF_Parameters_v1310SkipFallbackCombinations_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1310ReducedIntNonContComb_r13(pub u8); +impl RF_Parameters_v1310ReducedIntNonContComb_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RF_Parameters_v1430ENB_RequestedParameters_v1430 { + pub requested_diff_fallback_comb_list_r14: BandCombinationList_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1430DiffFallbackCombReport_r14(pub u8); +impl RF_Parameters_v1430DiffFallbackCombReport_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1530STTI_SPT_Supported_r15(pub u8); +impl RF_Parameters_v1530STTI_SPT_Supported_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RF_Parameters_v1530PowerClass_14dBm_r15(pub u8); +impl RF_Parameters_v1530PowerClass_14dBm_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct RF_Parameters_v1570Dl_1024QAM_ScalingFactor_r15(pub u8); +impl RF_Parameters_v1570Dl_1024QAM_ScalingFactor_r15 { + pub const V1: u8 = 0u8; + pub const V1DOT2: u8 = 1u8; + pub const V1DOT25: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct RF_Parameters_v1570Dl_1024QAM_TotalWeightedLayers_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLC_BearerConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "10")] +pub struct RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15_logicalChannelIdentity_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "32", ub = "38")] +pub struct RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15_logicalChannelIdentityExt_r15( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15 { + #[asn(key = 0, extended = false)] + LogicalChannelIdentity_r15( + RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15_logicalChannelIdentity_r15, + ), + #[asn(key = 1, extended = false)] + LogicalChannelIdentityExt_r15( + RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15_logicalChannelIdentityExt_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RLC_BearerConfig_r15_setup { + #[asn(optional_idx = 0)] + pub rlc_config_r15: Option, + pub logical_channel_identity_config_r15: + RLC_BearerConfig_r15_setupLogicalChannelIdentityConfig_r15, + #[asn(optional_idx = 1)] + pub logical_channel_config_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_am { + pub ul_am_rlc: UL_AM_RLC, + pub dl_am_rlc: DL_AM_RLC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_um_Bi_Directional { + pub ul_um_rlc: UL_UM_RLC, + pub dl_um_rlc: DL_UM_RLC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_um_Uni_Directional_UL { + pub ul_um_rlc: UL_UM_RLC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_um_Uni_Directional_DL { + pub dl_um_rlc: DL_UM_RLC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_r15Mode_r15_am_r15 { + pub ul_am_rlc_r15: UL_AM_RLC_r15, + pub dl_am_rlc_r15: DL_AM_RLC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_r15Mode_r15_um_Bi_Directional_r15 { + pub ul_um_rlc_r15: UL_UM_RLC, + pub dl_um_rlc_r15: DL_UM_RLC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_r15Mode_r15_um_Uni_Directional_UL_r15 { + pub ul_um_rlc_r15: UL_UM_RLC, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_r15Mode_r15_um_Uni_Directional_DL_r15 { + pub dl_um_rlc_r15: DL_UM_RLC_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RLC_Config_r15Mode_r15 { + #[asn(key = 0, extended = false)] + Am_r15(RLC_Config_r15Mode_r15_am_r15), + #[asn(key = 1, extended = false)] + Um_Bi_Directional_r15(RLC_Config_r15Mode_r15_um_Bi_Directional_r15), + #[asn(key = 2, extended = false)] + Um_Uni_Directional_UL_r15(RLC_Config_r15Mode_r15_um_Uni_Directional_UL_r15), + #[asn(key = 3, extended = false)] + Um_Uni_Directional_DL_r15(RLC_Config_r15Mode_r15_um_Uni_Directional_DL_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Config_r15ReestablishRLC_r15(pub u8); +impl RLC_Config_r15ReestablishRLC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Config_r15Rlc_OutOfOrderDelivery_r15(pub u8); +impl RLC_Config_r15Rlc_OutOfOrderDelivery_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RLC_Config_v1250Ul_extended_RLC_LI_Field_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RLC_Config_v1250Dl_extended_RLC_LI_Field_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RLC_Config_v1310Ul_extended_RLC_AM_SN_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RLC_Config_v1310Dl_extended_RLC_AM_SN_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLC_Config_v1430_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_v1430_setup { + pub poll_byte_r14: PollByte_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Config_v1510ReestablishRLC_r15(pub u8); +impl RLC_Config_v1510ReestablishRLC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLC_Config_v1530_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Config_v1530_setupRlc_OutOfOrderDelivery_r15(pub u8); +impl RLC_Config_v1530_setupRlc_OutOfOrderDelivery_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RLC_Config_v1530_setup { + pub rlc_out_of_order_delivery_r15: RLC_Config_v1530_setupRlc_OutOfOrderDelivery_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLC_Config_v1700T_ReorderingExt_r17_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RLC_Config_v1700T_ReorderingExt_r17 { + #[asn(key = 0, extended = false)] + Release(RLC_Config_v1700T_ReorderingExt_r17_release), + #[asn(key = 1, extended = false)] + Setup(T_ReorderingExt_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_r12Extended_RLC_LI_Field_r12(pub u8); +impl RLC_Parameters_r12Extended_RLC_LI_Field_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_v1310ExtendedRLC_SN_SO_Field_r13(pub u8); +impl RLC_Parameters_v1310ExtendedRLC_SN_SO_Field_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_v1430ExtendedPollByte_r14(pub u8); +impl RLC_Parameters_v1430ExtendedPollByte_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_v1530FlexibleUM_AM_Combinations_r15(pub u8); +impl RLC_Parameters_v1530FlexibleUM_AM_Combinations_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_v1530Rlc_AM_Ooo_Delivery_r15(pub u8); +impl RLC_Parameters_v1530Rlc_AM_Ooo_Delivery_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RLC_Parameters_v1530Rlc_UM_Ooo_Delivery_r15(pub u8); +impl RLC_Parameters_v1530Rlc_UM_Ooo_Delivery_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RLF_Report_r9MeasResultLastServCell_r9 { + pub rsrp_result_r9: RSRP_Range, + #[asn(optional_idx = 0)] + pub rsrq_result_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct RLF_Report_r9MeasResultNeighCells_r9 { + #[asn(optional_idx = 0)] + pub meas_result_list_eutra_r9: Option, + #[asn(optional_idx = 1)] + pub meas_result_list_utra_r9: Option, + #[asn(optional_idx = 2)] + pub meas_result_list_geran_r9: Option, + #[asn(optional_idx = 3)] + pub meas_results_cdma2000_r9: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLF_TimersAndConstants_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstants_r13_setupT301_v1310(pub u8); +impl RLF_TimersAndConstants_r13_setupT301_v1310 { + pub const MS2500: u8 = 0u8; + pub const MS3000: u8 = 1u8; + pub const MS3500: u8 = 2u8; + pub const MS4000: u8 = 3u8; + pub const MS5000: u8 = 4u8; + pub const MS6000: u8 = 5u8; + pub const MS8000: u8 = 6u8; + pub const MS10000: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RLF_TimersAndConstants_r13_setup { + pub t301_v1310: RLF_TimersAndConstants_r13_setupT301_v1310, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLF_TimersAndConstants_r9_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstants_r9_setupT301_r9(pub u8); +impl RLF_TimersAndConstants_r9_setupT301_r9 { + pub const MS100: u8 = 0u8; + pub const MS200: u8 = 1u8; + pub const MS300: u8 = 2u8; + pub const MS400: u8 = 3u8; + pub const MS600: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS1500: u8 = 6u8; + pub const MS2000: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct RLF_TimersAndConstants_r9_setupT310_r9(pub u8); +impl RLF_TimersAndConstants_r9_setupT310_r9 { + pub const MS0: u8 = 0u8; + pub const MS50: u8 = 1u8; + pub const MS100: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS2000: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstants_r9_setupN310_r9(pub u8); +impl RLF_TimersAndConstants_r9_setupN310_r9 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N6: u8 = 4u8; + pub const N8: u8 = 5u8; + pub const N10: u8 = 6u8; + pub const N20: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct RLF_TimersAndConstants_r9_setupT311_r9(pub u8); +impl RLF_TimersAndConstants_r9_setupT311_r9 { + pub const MS1000: u8 = 0u8; + pub const MS3000: u8 = 1u8; + pub const MS5000: u8 = 2u8; + pub const MS10000: u8 = 3u8; + pub const MS15000: u8 = 4u8; + pub const MS20000: u8 = 5u8; + pub const MS30000: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstants_r9_setupN311_r9(pub u8); +impl RLF_TimersAndConstants_r9_setupN311_r9 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N5: u8 = 4u8; + pub const N6: u8 = 5u8; + pub const N8: u8 = 6u8; + pub const N10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RLF_TimersAndConstants_r9_setup { + pub t301_r9: RLF_TimersAndConstants_r9_setupT301_r9, + pub t310_r9: RLF_TimersAndConstants_r9_setupT310_r9, + pub n310_r9: RLF_TimersAndConstants_r9_setupN310_r9, + pub t311_r9: RLF_TimersAndConstants_r9_setupT311_r9, + pub n311_r9: RLF_TimersAndConstants_r9_setupN311_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLF_TimersAndConstantsMCG_Failure_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "9")] +pub struct RLF_TimersAndConstantsMCG_Failure_r16_setupT316_r16(pub u8); +impl RLF_TimersAndConstantsMCG_Failure_r16_setupT316_r16 { + pub const MS50: u8 = 0u8; + pub const MS100: u8 = 1u8; + pub const MS200: u8 = 2u8; + pub const MS300: u8 = 3u8; + pub const MS400: u8 = 4u8; + pub const MS500: u8 = 5u8; + pub const MS600: u8 = 6u8; + pub const MS1000: u8 = 7u8; + pub const MS1500: u8 = 8u8; + pub const MS2000: u8 = 9u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RLF_TimersAndConstantsMCG_Failure_r16_setup { + pub t316_r16: RLF_TimersAndConstantsMCG_Failure_r16_setupT316_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RLF_TimersAndConstantsSCG_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct RLF_TimersAndConstantsSCG_r12_setupT313_r12(pub u8); +impl RLF_TimersAndConstantsSCG_r12_setupT313_r12 { + pub const MS0: u8 = 0u8; + pub const MS50: u8 = 1u8; + pub const MS100: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS2000: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstantsSCG_r12_setupN313_r12(pub u8); +impl RLF_TimersAndConstantsSCG_r12_setupN313_r12 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N6: u8 = 4u8; + pub const N8: u8 = 5u8; + pub const N10: u8 = 6u8; + pub const N20: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RLF_TimersAndConstantsSCG_r12_setupN314_r12(pub u8); +impl RLF_TimersAndConstantsSCG_r12_setupN314_r12 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N5: u8 = 4u8; + pub const N6: u8 = 5u8; + pub const N8: u8 = 6u8; + pub const N10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RLF_TimersAndConstantsSCG_r12_setup { + pub t313_r12: RLF_TimersAndConstantsSCG_r12_setupT313_r12, + pub n313_r12: RLF_TimersAndConstantsSCG_r12_setupN313_r12, + pub n314_r12: RLF_TimersAndConstantsSCG_r12_setupN314_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RMTC_Config_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct RMTC_Config_r13_setupRmtc_Period_r13(pub u8); +impl RMTC_Config_r13_setupRmtc_Period_r13 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS320: u8 = 3u8; + pub const MS640: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct RMTC_Config_r13_setupRmtc_SubframeOffset_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct RMTC_Config_r13_setupMeasDuration_r13(pub u8); +impl RMTC_Config_r13_setupMeasDuration_r13 { + pub const SYM1: u8 = 0u8; + pub const SYM14: u8 = 1u8; + pub const SYM28: u8 = 2u8; + pub const SYM42: u8 = 3u8; + pub const SYM70: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 1)] +pub struct RMTC_Config_r13_setup { + pub rmtc_period_r13: RMTC_Config_r13_setupRmtc_Period_r13, + #[asn(optional_idx = 0)] + pub rmtc_subframe_offset_r13: Option, + pub meas_duration_r13: RMTC_Config_r13_setupMeasDuration_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct RMTC_ConfigNR_r16Rmtc_PeriodicityNR_r16(pub u8); +impl RMTC_ConfigNR_r16Rmtc_PeriodicityNR_r16 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS320: u8 = 3u8; + pub const MS640: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct RMTC_ConfigNR_r16Rmtc_SubframeOffsetNR_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct RMTC_ConfigNR_r16MeasDurationNR_r16(pub u8); +impl RMTC_ConfigNR_r16MeasDurationNR_r16 { + pub const SYM1: u8 = 0u8; + pub const SYM14OR12: u8 = 1u8; + pub const SYM28OR24: u8 = 2u8; + pub const SYM42OR36: u8 = 3u8; + pub const SYM70OR60: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RMTC_ConfigNR_r16RefSCS_CP_NR_r16(pub u8); +impl RMTC_ConfigNR_r16RefSCS_CP_NR_r16 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ60_NCP: u8 = 2u8; + pub const K_HZ60_ECP: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct RN_SubframeConfig_r10SubframeConfigPattern_r10_subframeConfigPatternFDD_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct RN_SubframeConfig_r10SubframeConfigPattern_r10_subframeConfigPatternTDD_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RN_SubframeConfig_r10SubframeConfigPattern_r10 { + #[asn(key = 0, extended = false)] + SubframeConfigPatternFDD_r10( + RN_SubframeConfig_r10SubframeConfigPattern_r10_subframeConfigPatternFDD_r10, + ), + #[asn(key = 1, extended = false)] + SubframeConfigPatternTDD_r10( + RN_SubframeConfig_r10SubframeConfigPattern_r10_subframeConfigPatternTDD_r10, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceAllocationType_r10(pub u8); +impl RN_SubframeConfig_r10Rpdcch_Config_r10ResourceAllocationType_r10 { + pub const TYPE0: u8 = 0u8; + pub const TYPE1: u8 = 1u8; + pub const TYPE2_LOCALIZED: u8 = 2u8; + pub const TYPE2_DISTRIBUTED: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb6_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb15_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "13", sz_ub = "13")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb25_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "17", sz_ub = "17")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb50_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb75_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "25", sz_ub = "25")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb100_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10 { + #[asn(key = 0, extended = false)] + Nrb6_r10(RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb6_r10), + #[asn(key = 1, extended = false)] + Nrb15_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb15_r10, + ), + #[asn(key = 2, extended = false)] + Nrb25_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb25_r10, + ), + #[asn(key = 3, extended = false)] + Nrb50_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb50_r10, + ), + #[asn(key = 4, extended = false)] + Nrb75_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb75_r10, + ), + #[asn(key = 5, extended = false)] + Nrb100_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10_nrb100_r10, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "5", sz_ub = "5")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb6_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb15_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "9", sz_ub = "9")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb25_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "11", sz_ub = "11")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb50_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "12", sz_ub = "12")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb75_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "13", sz_ub = "13")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb100_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10 { + #[asn(key = 0, extended = false)] + Nrb6_r10(RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb6_r10), + #[asn(key = 1, extended = false)] + Nrb15_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb15_r10, + ), + #[asn(key = 2, extended = false)] + Nrb25_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb25_r10, + ), + #[asn(key = 3, extended = false)] + Nrb50_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb50_r10, + ), + #[asn(key = 4, extended = false)] + Nrb75_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb75_r10, + ), + #[asn(key = 5, extended = false)] + Nrb100_r10( + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10_nrb100_r10, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10 { + #[asn(key = 0, extended = false)] + Type01_r10(RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type01_r10), + #[asn(key = 1, extended = false)] + Type2_r10(RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10_type2_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_interleaving_r10(pub u8); +impl RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_interleaving_r10 { + pub const CRS: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_noInterleaving_r10(pub u8); +impl RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_noInterleaving_r10 { + pub const CRS: u8 = 0u8; + pub const DMRS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10 { + #[asn(key = 0, extended = false)] + Interleaving_r10(RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_interleaving_r10), + #[asn(key = 1, extended = false)] + NoInterleaving_r10(RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10_noInterleaving_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "3")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pdsch_Start_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundlingN1PUCCH_AN_List_r10_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundlingN1PUCCH_AN_List_r10 (pub Vec < RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundlingN1PUCCH_AN_List_r10_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundling { pub n1pucch_an_list_r10 : RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundlingN1PUCCH_AN_List_r10 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3N1PUCCH_AN_P0_r10( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3N1PUCCH_AN_P1_r10( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3 { pub n1pucch_an_p0_r10 : RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3N1PUCCH_AN_P0_r10 , # [asn (optional_idx = 0 ,)] pub n1pucch_an_p1_r10 : Option < RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3N1PUCCH_AN_P1_r10 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd { + # [asn (key = 0 , extended = false)] ChannelSelectionMultiplexingBundling (RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_channelSelectionMultiplexingBundling) , # [asn (key = 1 , extended = false)] FallbackForFormat3 (RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd_fallbackForFormat3) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_fddN1PUCCH_AN_P0_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_fddN1PUCCH_AN_P1_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_fdd { + pub n1pucch_an_p0_r10: + RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_fddN1PUCCH_AN_P0_r10, + #[asn(optional_idx = 0)] + pub n1pucch_an_p1_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10 { + #[asn(key = 0, extended = false)] + Tdd(RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_tdd), + #[asn(key = 1, extended = false)] + Fdd(RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10_fdd), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct RN_SubframeConfig_r10Rpdcch_Config_r10 { + pub resource_allocation_type_r10: + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceAllocationType_r10, + pub resource_block_assignment_r10: + RN_SubframeConfig_r10Rpdcch_Config_r10ResourceBlockAssignment_r10, + pub demodulation_rs_r10: RN_SubframeConfig_r10Rpdcch_Config_r10DemodulationRS_r10, + pub pdsch_start_r10: RN_SubframeConfig_r10Rpdcch_Config_r10Pdsch_Start_r10, + pub pucch_config_r10: RN_SubframeConfig_r10Rpdcch_Config_r10Pucch_Config_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RN_SystemInfo_r10SystemInformationBlockType1_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfiguration_r10CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfiguration_r10CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfiguration_r10CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RNReconfiguration_r10CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RnReconfiguration_r10(RNReconfiguration_r10_IEs), + #[asn(key = 1, extended = false)] + Spare3(RNReconfiguration_r10CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RNReconfiguration_r10CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RNReconfiguration_r10CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfiguration_r10CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RNReconfiguration_r10CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RNReconfiguration_r10CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RNReconfiguration_r10CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RNReconfiguration_r10_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfiguration_r10_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfigurationComplete_r10CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfigurationComplete_r10CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RNReconfigurationComplete_r10CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RNReconfigurationComplete_r10CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RnReconfigurationComplete_r10(RNReconfigurationComplete_r10_IEs), + #[asn(key = 1, extended = false)] + Spare3(RNReconfigurationComplete_r10CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RNReconfigurationComplete_r10CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RNReconfigurationComplete_r10CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfigurationComplete_r10CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RNReconfigurationComplete_r10CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RNReconfigurationComplete_r10CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RNReconfigurationComplete_r10CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RNReconfigurationComplete_r10_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RNReconfigurationComplete_r10_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0001_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0002_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0003_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0004_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0006_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0101_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0102_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0103_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ROHC_ProfileSupportList_r15Profile0x0104_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRC_InactiveConfig_r15Ran_PagingCycle_r15(pub u8); +impl RRC_InactiveConfig_r15Ran_PagingCycle_r15 { + pub const RF32: u8 = 0u8; + pub const RF64: u8 = 1u8; + pub const RF128: u8 = 2u8; + pub const RF256: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RRC_InactiveConfig_r15Periodic_RNAU_timer_r15(pub u8); +impl RRC_InactiveConfig_r15Periodic_RNAU_timer_r15 { + pub const MIN5: u8 = 0u8; + pub const MIN10: u8 = 1u8; + pub const MIN20: u8 = 2u8; + pub const MIN30: u8 = 3u8; + pub const MIN60: u8 = 4u8; + pub const MIN120: u8 = 5u8; + pub const MIN360: u8 = 6u8; + pub const MIN720: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRC_InactiveConfig_r15Dummy {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRC_InactiveConfig_v1610Ran_PagingCycle_v1610(pub u8); +impl RRC_InactiveConfig_v1610Ran_PagingCycle_v1610 { + pub const RF512: u8 = 0u8; + pub const RF1024: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfigurationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum RRCConnectionReconfigurationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionReconfiguration_r8(RRCConnectionReconfiguration_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(RRCConnectionReconfigurationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(RRCConnectionReconfigurationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(RRCConnectionReconfigurationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(RRCConnectionReconfigurationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(RRCConnectionReconfigurationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(RRCConnectionReconfigurationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(RRCConnectionReconfigurationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfigurationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReconfigurationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionReconfigurationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReconfigurationCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct RRCConnectionReconfiguration_r8_IEsDedicatedInfoNASList(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v10l0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1130_IEsSystemInformationBlockType1Dedicated_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_setupT350_r12(pub u8); +impl RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_setupT350_r12 { + pub const MIN5: u8 = 0u8; + pub const MIN10: u8 = 1u8; + pub const MIN20: u8 = 2u8; + pub const MIN30: u8 = 3u8; + pub const MIN60: u8 = 4u8; + pub const MIN120: u8 = 5u8; + pub const MIN180: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_setup { + pub wlan_offload_config_dedicated_r12: WLAN_OffloadConfig_r12, + #[asn(optional_idx = 0)] + pub t350_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12 { + #[asn(key = 0, extended = false)] + Release(RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_release), + #[asn(key = 1, extended = false)] + Setup(RRCConnectionReconfiguration_v1250_IEsWlan_OffloadInfo_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v12f0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfiguration_v13c0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfiguration_v1430_IEsPerCC_GapIndicationRequest_r14(pub u8); +impl RRCConnectionReconfiguration_v1430_IEsPerCC_GapIndicationRequest_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1430_IEsSystemInformationBlockType2Dedicated_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setupEndc_ReleaseAndAdd_r15( + pub bool, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setupNr_SecondaryCellGroupConfig_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setup { + pub endc_release_and_add_r15: + RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setupEndc_ReleaseAndAdd_r15, + #[asn(optional_idx = 0)] + pub nr_secondary_cell_group_config_r15: Option< + RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setupNr_SecondaryCellGroupConfig_r15, + >, + #[asn(optional_idx = 1)] + pub p_max_eutra_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReconfiguration_v1510_IEsNr_Config_r15 { + #[asn(key = 0, extended = false)] + Release(RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_release), + #[asn(key = 1, extended = false)] + Setup(RRCConnectionReconfiguration_v1510_IEsNr_Config_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct RRCConnectionReconfiguration_v1510_IEsSk_Counter_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_RadioBearerConfig1_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1510_IEsNr_RadioBearerConfig2_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct RRCConnectionReconfiguration_v1530_IEsDedicatedInfoNASList_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfiguration_v1610_IEsDaps_SourceRelease_r16(pub u8); +impl RRCConnectionReconfiguration_v1610_IEsDaps_SourceRelease_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1610_IEsSl_ConfigDedicatedForNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct RRCConnectionReconfiguration_v1610_IEsSl_SSB_PriorityEUTRA_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v1700_IEsSystemInformationBlockType31Dedicated_r17( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfiguration_v1700_IEsScg_State_r17(pub u8); +impl RRCConnectionReconfiguration_v1700_IEsScg_State_r17 { + pub const DEACTIVATED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfiguration_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v890_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfiguration_v8m0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfiguration_v920_IEsFullConfig_r9(pub u8); +impl RRCConnectionReconfiguration_v920_IEsFullConfig_r9 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfigurationCompleteCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReconfigurationCompleteCriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionReconfigurationComplete_r8(RRCConnectionReconfigurationComplete_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReconfigurationCompleteCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1020_IEsRlf_InfoAvailable_r10(pub u8); +impl RRCConnectionReconfigurationComplete_v1020_IEsRlf_InfoAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1020_IEsLogMeasAvailable_r10(pub u8); +impl RRCConnectionReconfigurationComplete_v1020_IEsLogMeasAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1130_IEsConnEstFailInfoAvailable_r11(pub u8); +impl RRCConnectionReconfigurationComplete_v1130_IEsConnEstFailInfoAvailable_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1250_IEsLogMeasAvailableMBSFN_r12(pub u8); +impl RRCConnectionReconfigurationComplete_v1250_IEsLogMeasAvailableMBSFN_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "12")] +pub struct RRCConnectionReconfigurationComplete_v1430_IEsNumFreqEffective_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "12")] +pub struct RRCConnectionReconfigurationComplete_v1430_IEsNumFreqEffectiveReduced_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfigurationComplete_v1510_IEsScg_ConfigResponseNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1530_IEsLogMeasAvailableBT_r15(pub u8); +impl RRCConnectionReconfigurationComplete_v1530_IEsLogMeasAvailableBT_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1530_IEsLogMeasAvailableWLAN_r15(pub u8); +impl RRCConnectionReconfigurationComplete_v1530_IEsLogMeasAvailableWLAN_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReconfigurationComplete_v1530_IEsFlightPathInfoAvailable_r15(pub u8); +impl RRCConnectionReconfigurationComplete_v1530_IEsFlightPathInfoAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReconfigurationComplete_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReconfigurationComplete_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReestablishmentCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum RRCConnectionReestablishmentCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishment_r8(RRCConnectionReestablishment_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(RRCConnectionReestablishmentCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(RRCConnectionReestablishmentCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(RRCConnectionReestablishmentCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(RRCConnectionReestablishmentCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(RRCConnectionReestablishmentCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(RRCConnectionReestablishmentCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(RRCConnectionReestablishmentCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReestablishmentCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionReestablishmentCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReestablishmentCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReestablishment_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishment_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentCompleteCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReestablishmentCompleteCriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishmentComplete_r8(RRCConnectionReestablishmentComplete_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReestablishmentCompleteCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1020_IEsLogMeasAvailable_r10(pub u8); +impl RRCConnectionReestablishmentComplete_v1020_IEsLogMeasAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1130_IEsConnEstFailInfoAvailable_r11(pub u8); +impl RRCConnectionReestablishmentComplete_v1130_IEsConnEstFailInfoAvailable_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1250_IEsLogMeasAvailableMBSFN_r12(pub u8); +impl RRCConnectionReestablishmentComplete_v1250_IEsLogMeasAvailableMBSFN_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1530_IEsLogMeasAvailableBT_r15(pub u8); +impl RRCConnectionReestablishmentComplete_v1530_IEsLogMeasAvailableBT_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1530_IEsLogMeasAvailableWLAN_r15(pub u8); +impl RRCConnectionReestablishmentComplete_v1530_IEsLogMeasAvailableWLAN_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v1530_IEsFlightPathInfoAvailable_r15(pub u8); +impl RRCConnectionReestablishmentComplete_v1530_IEsFlightPathInfoAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentComplete_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReestablishmentComplete_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReestablishmentComplete_v920_IEsRlf_InfoAvailable_r9(pub u8); +impl RRCConnectionReestablishmentComplete_v920_IEsRlf_InfoAvailable_r9 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentRejectCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReestablishmentRejectCriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishmentReject_r8(RRCConnectionReestablishmentReject_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReestablishmentRejectCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReestablishmentReject_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentReject_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReestablishmentRequestCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReestablishmentRequestCriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishmentRequest_r8(RRCConnectionReestablishmentRequest_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionReestablishmentRequestCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct RRCConnectionReestablishmentRequest_r8_IEsSpare( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionRejectCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionRejectCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionRejectCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RRCConnectionRejectCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionReject_r8(RRCConnectionReject_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(RRCConnectionRejectCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RRCConnectionRejectCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RRCConnectionRejectCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRejectCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionRejectCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionRejectCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCConnectionRejectCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct RRCConnectionReject_r8_IEsWaitTime(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "1800")] +pub struct RRCConnectionReject_v1020_IEsExtendedWaitTime_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationType_r11(pub u8); +impl RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationType_r11 { + pub const FREQUENCY: u8 = 0u8; + pub const E_UTRA: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationTimer_r11(pub u8); +impl RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationTimer_r11 { + pub const MIN5: u8 = 0u8; + pub const MIN10: u8 = 1u8; + pub const MIN15: u8 = 2u8; + pub const MIN30: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReject_v1130_IEsDeprioritisationReq_r11 { + pub deprioritisation_type_r11: + RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationType_r11, + pub deprioritisation_timer_r11: + RRCConnectionReject_v1130_IEsDeprioritisationReq_r11DeprioritisationTimer_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionReject_v1320_IEsRrc_SuspendIndication_r13(pub u8); +impl RRCConnectionReject_v1320_IEsRrc_SuspendIndication_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReject_v1320_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionReject_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReleaseCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReleaseCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionReleaseCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RRCConnectionReleaseCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionRelease_r8(RRCConnectionRelease_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(RRCConnectionReleaseCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RRCConnectionReleaseCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RRCConnectionReleaseCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionReleaseCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionReleaseCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionReleaseCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCConnectionReleaseCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "1800")] +pub struct RRCConnectionRelease_v1020_IEsExtendedWaitTime_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionRelease_v1530_IEsDrb_ContinueROHC_r15(pub u8); +impl RRCConnectionRelease_v1530_IEsDrb_ContinueROHC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCConnectionRelease_v1530_IEsCn_Type_r15(pub u8); +impl RRCConnectionRelease_v1530_IEsCn_Type_r15 { + pub const EPC: u8 = 0u8; + pub const FIVEGC: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct RRCConnectionRelease_v1540_IEsWaitTime(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionRelease_v15b0_IEsNoLastCellUpdate_r15(pub u8); +impl RRCConnectionRelease_v15b0_IEsNoLastCellUpdate_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionRelease_v1610_IEsPur_Config_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionRelease_v1610_IEsPur_Config_r16 { + #[asn(key = 0, extended = false)] + Release(RRCConnectionRelease_v1610_IEsPur_Config_r16_release), + #[asn(key = 1, extended = false)] + Setup(PUR_Config_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionRelease_v1610_IEsReleaseIdleMeasConfig_r16(pub u8); +impl RRCConnectionRelease_v1610_IEsReleaseIdleMeasConfig_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionRelease_v1610_IEsAltFreqPriorities_r16(pub u8); +impl RRCConnectionRelease_v1610_IEsAltFreqPriorities_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RRCConnectionRelease_v1610_IEsT323_r16(pub u8); +impl RRCConnectionRelease_v1610_IEsT323_r16 { + pub const MIN5: u8 = 0u8; + pub const MIN10: u8 = 1u8; + pub const MIN20: u8 = 2u8; + pub const MIN30: u8 = 3u8; + pub const MIN60: u8 = 4u8; + pub const MIN120: u8 = 5u8; + pub const MIN180: u8 = 6u8; + pub const MIN720: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionRelease_v1650_IEsMpsPriorityIndication_r16(pub u8); +impl RRCConnectionRelease_v1650_IEsMpsPriorityIndication_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRelease_v1650_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionRelease_v890_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = true)] +pub enum RRCConnectionRelease_v920_IEsCellInfoList_r9 { + #[asn(key = 0, extended = false)] + Geran_r9(CellInfoListGERAN_r9), + #[asn(key = 1, extended = false)] + Utra_FDD_r9(CellInfoListUTRA_FDD_r9), + #[asn(key = 2, extended = false)] + Utra_TDD_r9(CellInfoListUTRA_TDD_r9), + #[asn(key = 0, extended = true)] + Utra_TDD_r10(CellInfoListUTRA_TDD_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionRelease_v9e0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionRequestCriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionRequest_r8(RRCConnectionRequest_r8_IEs), + #[asn(key = 1, extended = false)] + RrcConnectionRequest_r15(RRCConnectionRequest_5GC_r15_IEs), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct RRCConnectionRequest_5GC_r15_IEsSpare(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct RRCConnectionRequest_r8_IEsSpare(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionResume_r13CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionResume_r13CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionResume_r13CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RRCConnectionResume_r13CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionResume_r13(RRCConnectionResume_r13_IEs), + #[asn(key = 1, extended = false)] + Spare3(RRCConnectionResume_r13CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RRCConnectionResume_r13CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RRCConnectionResume_r13CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResume_r13CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionResume_r13CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionResume_r13CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCConnectionResume_r13CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_r13_IEsDrb_ContinueROHC_r13(pub u8); +impl RRCConnectionResume_r13_IEsDrb_ContinueROHC_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResume_r13_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct RRCConnectionResume_v1510_IEsSk_Counter_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResume_v1510_IEsNr_RadioBearerConfig1_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResume_v1510_IEsNr_RadioBearerConfig2_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_v1530_IEsFullConfig_r15(pub u8); +impl RRCConnectionResume_v1530_IEsFullConfig_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_v1610_IEsIdleModeMeasurementReq_r16(pub u8); +impl RRCConnectionResume_v1610_IEsIdleModeMeasurementReq_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_v1610_IEsRestoreMCG_SCells_r16(pub u8); +impl RRCConnectionResume_v1610_IEsRestoreMCG_SCells_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_v1610_IEsRestoreSCG_r16(pub u8); +impl RRCConnectionResume_v1610_IEsRestoreSCG_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResume_v1610_IEsNr_SecondaryCellGroupConfig_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResume_v1700_IEsScg_State_r17(pub u8); +impl RRCConnectionResume_v1700_IEsScg_State_r17 { + pub const DEACTIVATED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResume_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeComplete_r13CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionResumeComplete_r13CriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionResumeComplete_r13(RRCConnectionResumeComplete_r13_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + RRCConnectionResumeComplete_r13CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct RRCConnectionResumeComplete_r13_IEsSelectedPLMN_Identity_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_r13_IEsRlf_InfoAvailable_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsRlf_InfoAvailable_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_r13_IEsLogMeasAvailable_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsLogMeasAvailable_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_r13_IEsConnEstFailInfoAvailable_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsConnEstFailInfoAvailable_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRCConnectionResumeComplete_r13_IEsMobilityState_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsMobilityState_r13 { + pub const NORMAL: u8 = 0u8; + pub const MEDIUM: u8 = 1u8; + pub const HIGH: u8 = 2u8; + pub const SPARE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_r13_IEsMobilityHistoryAvail_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsMobilityHistoryAvail_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_r13_IEsLogMeasAvailableMBSFN_r13(pub u8); +impl RRCConnectionResumeComplete_r13_IEsLogMeasAvailableMBSFN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResumeComplete_r13_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_v1530_IEsLogMeasAvailableBT_r15(pub u8); +impl RRCConnectionResumeComplete_v1530_IEsLogMeasAvailableBT_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_v1530_IEsLogMeasAvailableWLAN_r15(pub u8); +impl RRCConnectionResumeComplete_v1530_IEsLogMeasAvailableWLAN_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_v1530_IEsIdleMeasAvailable_r15(pub u8); +impl RRCConnectionResumeComplete_v1530_IEsIdleMeasAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionResumeComplete_v1530_IEsFlightPathInfoAvailable_r15(pub u8); +impl RRCConnectionResumeComplete_v1530_IEsFlightPathInfoAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionResumeComplete_v1610_IEsScg_ConfigResponseNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionResumeComplete_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionResumeRequest_5GC_r15_IEsResumeIdentity_r15 { + #[asn(key = 0, extended = false)] + FullI_RNTI_r15(I_RNTI_r15), + #[asn(key = 1, extended = false)] + ShortI_RNTI_r15(ShortI_RNTI_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct RRCConnectionResumeRequest_5GC_r15_IEsShortResumeMAC_I_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct RRCConnectionResumeRequest_5GC_r15_IEsSpare( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionResumeRequest_r13CriticalExtensions { + #[asn(key = 0, extended = false)] + RrcConnectionResumeRequest_r13(RRCConnectionResumeRequest_r13_IEs), + #[asn(key = 1, extended = false)] + RrcConnectionResumeRequest_r15(RRCConnectionResumeRequest_5GC_r15_IEs), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "24", sz_ub = "24")] +pub struct RRCConnectionResumeRequest_r13_IEsResumeIdentity_r13_truncatedResumeID_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionResumeRequest_r13_IEsResumeIdentity_r13 { + #[asn(key = 0, extended = false)] + ResumeID_r13(ResumeIdentity_r13), + #[asn(key = 1, extended = false)] + TruncatedResumeID_r13( + RRCConnectionResumeRequest_r13_IEsResumeIdentity_r13_truncatedResumeID_r13, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct RRCConnectionResumeRequest_r13_IEsShortResumeMAC_I_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct RRCConnectionResumeRequest_r13_IEsSpare( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum RRCConnectionSetupCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionSetup_r8(RRCConnectionSetup_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(RRCConnectionSetupCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(RRCConnectionSetupCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(RRCConnectionSetupCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(RRCConnectionSetupCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(RRCConnectionSetupCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(RRCConnectionSetupCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(RRCConnectionSetupCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetupCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionSetupCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionSetupCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCConnectionSetupCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetup_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionSetup_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCompleteCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCompleteCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RRCConnectionSetupCompleteCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum RRCConnectionSetupCompleteCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionSetupComplete_r8(RRCConnectionSetupComplete_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(RRCConnectionSetupCompleteCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(RRCConnectionSetupCompleteCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(RRCConnectionSetupCompleteCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetupCompleteCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionSetupCompleteCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(RRCConnectionSetupCompleteCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCConnectionSetupCompleteCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct RRCConnectionSetupComplete_r8_IEsSelectedPLMN_Identity(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCConnectionSetupComplete_v1020_IEsGummei_Type_r10(pub u8); +impl RRCConnectionSetupComplete_v1020_IEsGummei_Type_r10 { + pub const NATIVE: u8 = 0u8; + pub const MAPPED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1020_IEsRlf_InfoAvailable_r10(pub u8); +impl RRCConnectionSetupComplete_v1020_IEsRlf_InfoAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1020_IEsLogMeasAvailable_r10(pub u8); +impl RRCConnectionSetupComplete_v1020_IEsLogMeasAvailable_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCConnectionSetupComplete_v1020_IEsRn_SubframeConfigReq_r10(pub u8); +impl RRCConnectionSetupComplete_v1020_IEsRn_SubframeConfigReq_r10 { + pub const REQUIRED: u8 = 0u8; + pub const NOT_REQUIRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1130_IEsConnEstFailInfoAvailable_r11(pub u8); +impl RRCConnectionSetupComplete_v1130_IEsConnEstFailInfoAvailable_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRCConnectionSetupComplete_v1250_IEsMobilityState_r12(pub u8); +impl RRCConnectionSetupComplete_v1250_IEsMobilityState_r12 { + pub const NORMAL: u8 = 0u8; + pub const MEDIUM: u8 = 1u8; + pub const HIGH: u8 = 2u8; + pub const SPARE: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1250_IEsMobilityHistoryAvail_r12(pub u8); +impl RRCConnectionSetupComplete_v1250_IEsMobilityHistoryAvail_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1250_IEsLogMeasAvailableMBSFN_r12(pub u8); +impl RRCConnectionSetupComplete_v1250_IEsLogMeasAvailableMBSFN_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1320_IEsCe_ModeB_r13(pub u8); +impl RRCConnectionSetupComplete_v1320_IEsCe_ModeB_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1320_IEsAttachWithoutPDN_Connectivity_r13(pub u8); +impl RRCConnectionSetupComplete_v1320_IEsAttachWithoutPDN_Connectivity_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1320_IEsUp_CIoT_EPS_Optimisation_r13(pub u8); +impl RRCConnectionSetupComplete_v1320_IEsUp_CIoT_EPS_Optimisation_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1320_IEsCp_CIoT_EPS_Optimisation_r13(pub u8); +impl RRCConnectionSetupComplete_v1320_IEsCp_CIoT_EPS_Optimisation_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1330_IEsUe_CE_NeedULGaps_r13(pub u8); +impl RRCConnectionSetupComplete_v1330_IEsUe_CE_NeedULGaps_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct RRCConnectionSetupComplete_v1430_IEsDcn_ID_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1530_IEsLogMeasAvailableBT_r15(pub u8); +impl RRCConnectionSetupComplete_v1530_IEsLogMeasAvailableBT_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1530_IEsLogMeasAvailableWLAN_r15(pub u8); +impl RRCConnectionSetupComplete_v1530_IEsLogMeasAvailableWLAN_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1530_IEsIdleMeasAvailable_r15(pub u8); +impl RRCConnectionSetupComplete_v1530_IEsIdleMeasAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1530_IEsFlightPathInfoAvailable_r15(pub u8); +impl RRCConnectionSetupComplete_v1530_IEsFlightPathInfoAvailable_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1530_IEsConnectTo5GC_r15(pub u8); +impl RRCConnectionSetupComplete_v1530_IEsConnectTo5GC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct RRCConnectionSetupComplete_v1530_IEsS_NSSAI_list_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct RRCConnectionSetupComplete_v1530_IEsNg_5G_S_TMSI_Bits_r15_ng_5G_S_TMSI_Part2_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCConnectionSetupComplete_v1530_IEsNg_5G_S_TMSI_Bits_r15 { + #[asn(key = 0, extended = false)] + Ng_5G_S_TMSI_r15(NG_5G_S_TMSI_r15), + #[asn(key = 1, extended = false)] + Ng_5G_S_TMSI_Part2_r15( + RRCConnectionSetupComplete_v1530_IEsNg_5G_S_TMSI_Bits_r15_ng_5G_S_TMSI_Part2_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1540_IEsGummei_Type_v1540(pub u8); +impl RRCConnectionSetupComplete_v1540_IEsGummei_Type_v1540 { + pub const MAPPED_FROM5_G_V1540: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCConnectionSetupComplete_v1540_IEsGuami_Type_r15(pub u8); +impl RRCConnectionSetupComplete_v1540_IEsGuami_Type_r15 { + pub const NATIVE: u8 = 0u8; + pub const MAPPED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1610_IEsRlos_Request_r16(pub u8); +impl RRCConnectionSetupComplete_v1610_IEsRlos_Request_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1610_IEsCp_CIoT_5GS_Optimisation_r16(pub u8); +impl RRCConnectionSetupComplete_v1610_IEsCp_CIoT_5GS_Optimisation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1610_IEsUp_CIoT_5GS_Optimisation_r16(pub u8); +impl RRCConnectionSetupComplete_v1610_IEsUp_CIoT_5GS_Optimisation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1610_IEsLte_M_r16(pub u8); +impl RRCConnectionSetupComplete_v1610_IEsLte_M_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1610_IEsIab_NodeIndication_r16(pub u8); +impl RRCConnectionSetupComplete_v1610_IEsIab_NodeIndication_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RRCConnectionSetupComplete_v1690_IEsUl_RRC_Segmentation_r16(pub u8); +impl RRCConnectionSetupComplete_v1690_IEsUl_RRC_Segmentation_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCConnectionSetupComplete_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCConnectionSetupComplete_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataComplete_r15CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCEarlyDataComplete_r15CriticalExtensions { + #[asn(key = 0, extended = false)] + RrcEarlyDataComplete_r15(RRCEarlyDataComplete_r15_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCEarlyDataComplete_r15CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "1800")] +pub struct RRCEarlyDataComplete_r15_IEsExtendedWaitTime_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCEarlyDataComplete_v1590_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataComplete_v1590_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRCEarlyDataRequest_5GC_r16_IEsEstablishmentCause_r16(pub u8); +impl RRCEarlyDataRequest_5GC_r16_IEsEstablishmentCause_r16 { + pub const MO_DATA: u8 = 0u8; + pub const SPARE3: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCEarlyDataRequest_5GC_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataRequest_5GC_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataRequest_r15CriticalExtensions_criticalExtensionsFuture_criticalExtensionsFuture_r16 +{} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCEarlyDataRequest_r15CriticalExtensions_criticalExtensionsFuture { + # [asn (key = 0 , extended = false)] RrcEarlyDataRequest_5GC_r16 (RRCEarlyDataRequest_5GC_r16_IEs) , # [asn (key = 1 , extended = false)] CriticalExtensionsFuture_r16 (RRCEarlyDataRequest_r15CriticalExtensions_criticalExtensionsFuture_criticalExtensionsFuture_r16) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RRCEarlyDataRequest_r15CriticalExtensions { + #[asn(key = 0, extended = false)] + RrcEarlyDataRequest_r15(RRCEarlyDataRequest_r15_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(RRCEarlyDataRequest_r15CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct RRCEarlyDataRequest_r15_IEsEstablishmentCause_r15(pub u8); +impl RRCEarlyDataRequest_r15_IEsEstablishmentCause_r15 { + pub const MO_DATA: u8 = 0u8; + pub const DELAY_TOLERANT_ACCESS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct RRCEarlyDataRequest_v1590_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RRCEarlyDataRequest_v1610_IEsEstablishmentCause_v1610(pub u8); +impl RRCEarlyDataRequest_v1610_IEsEstablishmentCause_v1610 { + pub const MT_ACCESS: u8 = 0u8; + pub const SPARE3: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RRCEarlyDataRequest_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "63")] +pub struct RRM_ConfigUe_InactiveTime(pub u8); +impl RRM_ConfigUe_InactiveTime { + pub const S1: u8 = 0u8; + pub const S2: u8 = 1u8; + pub const S3: u8 = 2u8; + pub const S5: u8 = 3u8; + pub const S7: u8 = 4u8; + pub const S10: u8 = 5u8; + pub const S15: u8 = 6u8; + pub const S20: u8 = 7u8; + pub const S25: u8 = 8u8; + pub const S30: u8 = 9u8; + pub const S40: u8 = 10u8; + pub const S50: u8 = 11u8; + pub const MIN1: u8 = 12u8; + pub const MIN1S20C: u8 = 13u8; + pub const MIN1S40: u8 = 14u8; + pub const MIN2: u8 = 15u8; + pub const MIN2S30: u8 = 16u8; + pub const MIN3: u8 = 17u8; + pub const MIN3S30: u8 = 18u8; + pub const MIN4: u8 = 19u8; + pub const MIN5: u8 = 20u8; + pub const MIN6: u8 = 21u8; + pub const MIN7: u8 = 22u8; + pub const MIN8: u8 = 23u8; + pub const MIN9: u8 = 24u8; + pub const MIN10: u8 = 25u8; + pub const MIN12: u8 = 26u8; + pub const MIN14: u8 = 27u8; + pub const MIN17: u8 = 28u8; + pub const MIN20: u8 = 29u8; + pub const MIN24: u8 = 30u8; + pub const MIN28: u8 = 31u8; + pub const MIN33: u8 = 32u8; + pub const MIN38: u8 = 33u8; + pub const MIN44: u8 = 34u8; + pub const MIN50: u8 = 35u8; + pub const HR1: u8 = 36u8; + pub const HR1MIN30: u8 = 37u8; + pub const HR2: u8 = 38u8; + pub const HR2MIN30: u8 = 39u8; + pub const HR3: u8 = 40u8; + pub const HR3MIN30: u8 = 41u8; + pub const HR4: u8 = 42u8; + pub const HR5: u8 = 43u8; + pub const HR6: u8 = 44u8; + pub const HR8: u8 = 45u8; + pub const HR10: u8 = 46u8; + pub const HR13: u8 = 47u8; + pub const HR16: u8 = 48u8; + pub const HR20: u8 = 49u8; + pub const DAY1: u8 = 50u8; + pub const DAY1HR12: u8 = 51u8; + pub const DAY2: u8 = 52u8; + pub const DAY2HR12: u8 = 53u8; + pub const DAY3: u8 = 54u8; + pub const DAY4: u8 = 55u8; + pub const DAY5: u8 = 56u8; + pub const DAY7: u8 = 57u8; + pub const DAY10: u8 = 58u8; + pub const DAY14: u8 = 59u8; + pub const DAY19: u8 = 60u8; + pub const DAY24: u8 = 61u8; + pub const DAY30: u8 = 62u8; + pub const DAY_MORE_THAN30: u8 = 63u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RS_ConfigSSB_NR_r15SubcarrierSpacingSSB_r15(pub u8); +impl RS_ConfigSSB_NR_r15SubcarrierSpacingSSB_r15 { + pub const K_HZ15: u8 = 0u8; + pub const K_HZ30: u8 = 1u8; + pub const K_HZ120: u8 = 2u8; + pub const K_HZ240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RSRQ_RangeConfig_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RSRQ_Type_r12AllSymbols_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct RSRQ_Type_r12WideBand_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RSS_Config_r15Duration_r15(pub u8); +impl RSS_Config_r15Duration_r15 { + pub const SF8: u8 = 0u8; + pub const SF16: u8 = 1u8; + pub const SF32: u8 = 2u8; + pub const SF40: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "98")] +pub struct RSS_Config_r15FreqLocation_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RSS_Config_r15Periodicity_r15(pub u8); +impl RSS_Config_r15Periodicity_r15 { + pub const MS160: u8 = 0u8; + pub const MS320: u8 = 1u8; + pub const MS640: u8 = 2u8; + pub const MS1280: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct RSS_Config_r15PowerBoost_r15(pub u8); +impl RSS_Config_r15PowerBoost_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B4DOT8: u8 = 2u8; + pub const D_B6: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct RSS_Config_r15TimeOffset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "15")] +pub struct RSS_ConfigCarrierInfo_r16NarrowbandIndex_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RSS_ConfigCarrierInfo_r16TimeOffsetGranularity_r16(pub u8); +impl RSS_ConfigCarrierInfo_r16TimeOffsetGranularity_r16 { + pub const G1: u8 = 0u8; + pub const G2: u8 = 1u8; + pub const G4: u8 = 2u8; + pub const G8: u8 = 3u8; + pub const G16: u8 = 4u8; + pub const G32: u8 = 5u8; + pub const G64: u8 = 6u8; + pub const G128: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct RSTD_InterFreqInfo_r10MeasPRS_Offset_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct RadioResourceConfigCommonSCell_r10NonUL_Configuration_r10Dl_Bandwidth_r10(pub u8); +impl RadioResourceConfigCommonSCell_r10NonUL_Configuration_r10Dl_Bandwidth_r10 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RadioResourceConfigCommonSCell_r10NonUL_Configuration_r10 { + pub dl_bandwidth_r10: RadioResourceConfigCommonSCell_r10NonUL_Configuration_r10Dl_Bandwidth_r10, + pub antenna_info_common_r10: AntennaInfoCommon, + #[asn(optional_idx = 0)] + pub mbsfn_subframe_config_list_r10: Option, + pub phich_config_r10: PHICH_Config, + pub pdsch_config_common_r10: PDSCH_ConfigCommon, + #[asn(optional_idx = 1)] + pub tdd_config_r10: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct RadioResourceConfigCommonSCell_r10Ul_Configuration_r10Ul_FreqInfo_r10Ul_Bandwidth_r10( + pub u8, +); +impl RadioResourceConfigCommonSCell_r10Ul_Configuration_r10Ul_FreqInfo_r10Ul_Bandwidth_r10 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RadioResourceConfigCommonSCell_r10Ul_Configuration_r10Ul_FreqInfo_r10 { + #[asn(optional_idx = 0)] + pub ul_carrier_freq_r10: Option, + #[asn(optional_idx = 1)] + pub ul_bandwidth_r10: Option< + RadioResourceConfigCommonSCell_r10Ul_Configuration_r10Ul_FreqInfo_r10Ul_Bandwidth_r10, + >, + pub additional_spectrum_emission_s_cell_r10: AdditionalSpectrumEmission, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct RadioResourceConfigCommonSCell_r10Ul_Configuration_r10 { + pub ul_freq_info_r10: RadioResourceConfigCommonSCell_r10Ul_Configuration_r10Ul_FreqInfo_r10, + #[asn(optional_idx = 0)] + pub p_max_r10: Option, + pub uplink_power_control_common_s_cell_r10: UplinkPowerControlCommonSCell_r10, + pub sounding_rs_ul_config_common_r10: SoundingRS_UL_ConfigCommon, + pub ul_cyclic_prefix_length_r10: UL_CyclicPrefixLength, + #[asn(optional_idx = 1)] + pub prach_config_s_cell_r10: Option, + pub pusch_config_common_r10: PUSCH_ConfigCommon, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonSCell_v10l0Ul_Configuration_v10l0 { + pub additional_spectrum_emission_s_cell_v10l0: AdditionalSpectrumEmission_v10l0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonSCell_v1440Ul_Configuration_v1440Ul_FreqInfo_v1440 { + pub additional_spectrum_emission_s_cell_v1440: AdditionalSpectrumEmission_v10l0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct RadioResourceConfigCommonSCell_v1440Ul_Configuration_v1440 { + pub ul_freq_info_v1440: + RadioResourceConfigCommonSCell_v1440Ul_Configuration_v1440Ul_FreqInfo_v1440, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct RadioResourceConfigDedicatedMac_MainConfig_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum RadioResourceConfigDedicatedMac_MainConfig { + #[asn(key = 0, extended = false)] + ExplicitValue(MAC_MainConfig), + #[asn(key = 1, extended = false)] + DefaultValue(RadioResourceConfigDedicatedMac_MainConfig_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct RedistributionServingInfo_r13RedistributionFactorServing_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RedistributionServingInfo_r13RedistributionFactorCell_r13(pub u8); +impl RedistributionServingInfo_r13RedistributionFactorCell_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct RedistributionServingInfo_r13T360_r13(pub u8); +impl RedistributionServingInfo_r13T360_r13 { + pub const MIN4: u8 = 0u8; + pub const MIN8: u8 = 1u8; + pub const MIN16: u8 = 2u8; + pub const MIN32: u8 = 3u8; + pub const INFINITY: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct RedistributionServingInfo_r13RedistrOnPagingOnly_r13(pub u8); +impl RedistributionServingInfo_r13RedistrOnPagingOnly_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "72999")] +pub struct ReferenceTime_r15RefDays_r15(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "86399")] +pub struct ReferenceTime_r15RefSeconds_r15(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "999")] +pub struct ReferenceTime_r15RefMilliSeconds_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3999")] +pub struct ReferenceTime_r15RefQuarterMicroSeconds_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct RegisteredMMEMmegi(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA1 { + pub a1_threshold: ThresholdEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA2 { + pub a2_threshold: ThresholdEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "30")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA3A3_Offset(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA3ReportOnLeave(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA3 { + pub a3_offset: ReportConfigEUTRATriggerType_eventEventId_eventA3A3_Offset, + pub report_on_leave: ReportConfigEUTRATriggerType_eventEventId_eventA3ReportOnLeave, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA4 { + pub a4_threshold: ThresholdEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA5 { + pub a5_threshold1: ThresholdEUTRA, + pub a5_threshold2: ThresholdEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "30")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA6_r10A6_Offset_r10(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA6_r10A6_ReportOnLeave_r10(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventA6_r10 { + pub a6_offset_r10: ReportConfigEUTRATriggerType_eventEventId_eventA6_r10A6_Offset_r10, + pub a6_report_on_leave_r10: + ReportConfigEUTRATriggerType_eventEventId_eventA6_r10A6_ReportOnLeave_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventC1_r12C1_ReportOnLeave_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventC1_r12 { + pub c1_threshold_r12: ThresholdEUTRA_v1250, + pub c1_report_on_leave_r12: + ReportConfigEUTRATriggerType_eventEventId_eventC1_r12C1_ReportOnLeave_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-30", ub = "30")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventC2_r12C2_Offset_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventC2_r12C2_ReportOnLeave_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventC2_r12 { + pub c2_ref_csi_rs_r12: MeasCSI_RS_Id_r12, + pub c2_offset_r12: ReportConfigEUTRATriggerType_eventEventId_eventC2_r12C2_Offset_r12, + pub c2_report_on_leave_r12: + ReportConfigEUTRATriggerType_eventEventId_eventC2_r12C2_ReportOnLeave_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventV1_r14 { + pub v1_threshold_r14: SL_CBR_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventV2_r14 { + pub v2_threshold_r14: SL_CBR_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "300")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH1_r15H1_ThresholdOffset_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH1_r15H1_Hysteresis_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH1_r15 { + pub h1_threshold_offset_r15: + ReportConfigEUTRATriggerType_eventEventId_eventH1_r15H1_ThresholdOffset_r15, + pub h1_hysteresis_r15: ReportConfigEUTRATriggerType_eventEventId_eventH1_r15H1_Hysteresis_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "300")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH2_r15H2_ThresholdOffset_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH2_r15H2_Hysteresis_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_eventEventId_eventH2_r15 { + pub h2_threshold_offset_r15: + ReportConfigEUTRATriggerType_eventEventId_eventH2_r15H2_ThresholdOffset_r15, + pub h2_hysteresis_r15: ReportConfigEUTRATriggerType_eventEventId_eventH2_r15H2_Hysteresis_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "4", extensible = true)] +pub enum ReportConfigEUTRATriggerType_eventEventId { + #[asn(key = 0, extended = false)] + EventA1(ReportConfigEUTRATriggerType_eventEventId_eventA1), + #[asn(key = 1, extended = false)] + EventA2(ReportConfigEUTRATriggerType_eventEventId_eventA2), + #[asn(key = 2, extended = false)] + EventA3(ReportConfigEUTRATriggerType_eventEventId_eventA3), + #[asn(key = 3, extended = false)] + EventA4(ReportConfigEUTRATriggerType_eventEventId_eventA4), + #[asn(key = 4, extended = false)] + EventA5(ReportConfigEUTRATriggerType_eventEventId_eventA5), + #[asn(key = 0, extended = true)] + EventA6_r10(ReportConfigEUTRATriggerType_eventEventId_eventA6_r10), + #[asn(key = 1, extended = true)] + EventC1_r12(ReportConfigEUTRATriggerType_eventEventId_eventC1_r12), + #[asn(key = 2, extended = true)] + EventC2_r12(ReportConfigEUTRATriggerType_eventEventId_eventC2_r12), + #[asn(key = 3, extended = true)] + EventV1_r14(ReportConfigEUTRATriggerType_eventEventId_eventV1_r14), + #[asn(key = 4, extended = true)] + EventV2_r14(ReportConfigEUTRATriggerType_eventEventId_eventV2_r14), + #[asn(key = 5, extended = true)] + EventH1_r15(ReportConfigEUTRATriggerType_eventEventId_eventH1_r15), + #[asn(key = 6, extended = true)] + EventH2_r15(ReportConfigEUTRATriggerType_eventEventId_eventH2_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_event { + pub event_id: ReportConfigEUTRATriggerType_eventEventId, + pub hysteresis: Hysteresis, + pub time_to_trigger: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ReportConfigEUTRATriggerType_periodicalPurpose(pub u8); +impl ReportConfigEUTRATriggerType_periodicalPurpose { + pub const REPORT_STRONGEST_CELLS: u8 = 0u8; + pub const REPORT_CGI: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigEUTRATriggerType_periodical { + pub purpose: ReportConfigEUTRATriggerType_periodicalPurpose, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ReportConfigEUTRATriggerType { + #[asn(key = 0, extended = false)] + Event(ReportConfigEUTRATriggerType_event), + #[asn(key = 1, extended = false)] + Periodical(ReportConfigEUTRATriggerType_periodical), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ReportConfigEUTRATriggerQuantity(pub u8); +impl ReportConfigEUTRATriggerQuantity { + pub const RSRP: u8 = 0u8; + pub const RSRQ: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ReportConfigEUTRAReportQuantity(pub u8); +impl ReportConfigEUTRAReportQuantity { + pub const SAME_AS_TRIGGER_QUANTITY: u8 = 0u8; + pub const BOTH: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct ReportConfigEUTRAMaxReportCells(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct ReportConfigEUTRAReportAmount(pub u8); +impl ReportConfigEUTRAReportAmount { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum ReportConfigInterRATTriggerType_eventEventId_eventB1B1_Threshold { + #[asn(key = 0, extended = false)] + B1_ThresholdUTRA(ThresholdUTRA), + #[asn(key = 1, extended = false)] + B1_ThresholdGERAN(ThresholdGERAN), + #[asn(key = 2, extended = false)] + B1_ThresholdCDMA2000(ThresholdCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB1 { + pub b1_threshold: ReportConfigInterRATTriggerType_eventEventId_eventB1B1_Threshold, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum ReportConfigInterRATTriggerType_eventEventId_eventB2B2_Threshold2 { + #[asn(key = 0, extended = false)] + B2_Threshold2UTRA(ThresholdUTRA), + #[asn(key = 1, extended = false)] + B2_Threshold2GERAN(ThresholdGERAN), + #[asn(key = 2, extended = false)] + B2_Threshold2CDMA2000(ThresholdCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB2 { + pub b2_threshold1: ThresholdEUTRA, + pub b2_threshold2: ReportConfigInterRATTriggerType_eventEventId_eventB2B2_Threshold2, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventW1_r13 { + pub w1_threshold_r13: WLAN_RSSI_Range_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventW2_r13 { + pub w2_threshold1_r13: WLAN_RSSI_Range_r13, + pub w2_threshold2_r13: WLAN_RSSI_Range_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventW3_r13 { + pub w3_threshold_r13: WLAN_RSSI_Range_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB1_NR_r15ReportOnLeave_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB1_NR_r15 { + pub b1_threshold_nr_r15: ThresholdNR_r15, + pub report_on_leave_r15: + ReportConfigInterRATTriggerType_eventEventId_eventB1_NR_r15ReportOnLeave_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB2_NR_r15ReportOnLeave_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_eventEventId_eventB2_NR_r15 { + pub b2_threshold1_r15: ThresholdEUTRA, + pub b2_threshold2_nr_r15: ThresholdNR_r15, + pub report_on_leave_r15: + ReportConfigInterRATTriggerType_eventEventId_eventB2_NR_r15ReportOnLeave_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = true)] +pub enum ReportConfigInterRATTriggerType_eventEventId { + #[asn(key = 0, extended = false)] + EventB1(ReportConfigInterRATTriggerType_eventEventId_eventB1), + #[asn(key = 1, extended = false)] + EventB2(ReportConfigInterRATTriggerType_eventEventId_eventB2), + #[asn(key = 0, extended = true)] + EventW1_r13(ReportConfigInterRATTriggerType_eventEventId_eventW1_r13), + #[asn(key = 1, extended = true)] + EventW2_r13(ReportConfigInterRATTriggerType_eventEventId_eventW2_r13), + #[asn(key = 2, extended = true)] + EventW3_r13(ReportConfigInterRATTriggerType_eventEventId_eventW3_r13), + #[asn(key = 3, extended = true)] + EventB1_NR_r15(ReportConfigInterRATTriggerType_eventEventId_eventB1_NR_r15), + #[asn(key = 4, extended = true)] + EventB2_NR_r15(ReportConfigInterRATTriggerType_eventEventId_eventB2_NR_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_event { + pub event_id: ReportConfigInterRATTriggerType_eventEventId, + pub hysteresis: Hysteresis, + pub time_to_trigger: TimeToTrigger, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct ReportConfigInterRATTriggerType_periodicalPurpose(pub u8); +impl ReportConfigInterRATTriggerType_periodicalPurpose { + pub const REPORT_STRONGEST_CELLS: u8 = 0u8; + pub const REPORT_STRONGEST_CELLS_FOR_SON: u8 = 1u8; + pub const REPORT_CGI: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ReportConfigInterRATTriggerType_periodical { + pub purpose: ReportConfigInterRATTriggerType_periodicalPurpose, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ReportConfigInterRATTriggerType { + #[asn(key = 0, extended = false)] + Event(ReportConfigInterRATTriggerType_event), + #[asn(key = 1, extended = false)] + Periodical(ReportConfigInterRATTriggerType_periodical), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct ReportConfigInterRATMaxReportCells(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct ReportConfigInterRATReportAmount(pub u8); +impl ReportConfigInterRATReportAmount { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const INFINITY: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ReportConfigToAddModReportConfig { + #[asn(key = 0, extended = false)] + ReportConfigEUTRA(ReportConfigEUTRA), + #[asn(key = 1, extended = false)] + ReportConfigInterRAT(ReportConfigInterRAT), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportProximityConfig_r9ProximityIndicationEUTRA_r9(pub u8); +impl ReportProximityConfig_r9ProximityIndicationEUTRA_r9 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportProximityConfig_r9ProximityIndicationUTRA_r9(pub u8); +impl ReportProximityConfig_r9ProximityIndicationUTRA_r9 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportQuantityNR_r15Ss_rsrp(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportQuantityNR_r15Ss_rsrq(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct ReportQuantityNR_r15Ss_sinr(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13BandRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13BandRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13CarrierInfoRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13CarrierInfoRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13AvailableAdmissionCapacityRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13AvailableAdmissionCapacityRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13BackhaulDL_BandwidthRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13BackhaulDL_BandwidthRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13BackhaulUL_BandwidthRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13BackhaulUL_BandwidthRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13ChannelUtilizationRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13ChannelUtilizationRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct ReportQuantityWLAN_r13StationCountRequestWLAN_r13(pub u8); +impl ReportQuantityWLAN_r13StationCountRequestWLAN_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct ReselectionInfoRelay_r13MinHyst_r13(pub u8); +impl ReselectionInfoRelay_r13MinHyst_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; + pub const D_BINF: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap1dot4( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap3( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "13", sz_ub = "13")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap5( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "17", sz_ub = "17")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "25", sz_ub = "25")] +pub struct ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap20( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "5", extensible = false)] +pub enum ResourceReservationConfigDL_r16ResourceReservationFreq_r16 { + #[asn(key = 0, extended = false)] + Rbg_Bitmap1dot4(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap1dot4), + #[asn(key = 1, extended = false)] + Rbg_Bitmap3(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap3), + #[asn(key = 2, extended = false)] + Rbg_Bitmap5(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap5), + #[asn(key = 3, extended = false)] + Rbg_Bitmap10(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap10), + #[asn(key = 4, extended = false)] + Rbg_Bitmap15(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap15), + #[asn(key = 5, extended = false)] + Rbg_Bitmap20(ResourceReservationConfigDL_r16ResourceReservationFreq_r16_rbg_Bitmap20), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "20", sz_ub = "20")] +pub struct ResourceReservationConfigDL_r16SlotBitmap_r16_slotPattern10ms( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "80", sz_ub = "80")] +pub struct ResourceReservationConfigDL_r16SlotBitmap_r16_slotPattern40ms( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ResourceReservationConfigDL_r16SlotBitmap_r16 { + #[asn(key = 0, extended = false)] + SlotPattern10ms(ResourceReservationConfigDL_r16SlotBitmap_r16_slotPattern10ms), + #[asn(key = 1, extended = false)] + SlotPattern40ms(ResourceReservationConfigDL_r16SlotBitmap_r16_slotPattern40ms), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct ResourceReservationConfigDL_r16SymbolBitmap1_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct ResourceReservationConfigDL_r16SymbolBitmap2_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "20", sz_ub = "20")] +pub struct ResourceReservationConfigUL_r16SlotBitmap_r16_slotPattern10ms( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "80", sz_ub = "80")] +pub struct ResourceReservationConfigUL_r16SlotBitmap_r16_slotPattern40ms( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ResourceReservationConfigUL_r16SlotBitmap_r16 { + #[asn(key = 0, extended = false)] + SlotPattern10ms(ResourceReservationConfigUL_r16SlotBitmap_r16_slotPattern10ms), + #[asn(key = 1, extended = false)] + SlotPattern40ms(ResourceReservationConfigUL_r16SlotBitmap_r16_slotPattern40ms), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct ResourceReservationConfigUL_r16SymbolBitmap1_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct ResourceReservationConfigUL_r16SymbolBitmap2_r16( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct ResultsPerSSB_IndexIdle_r16Ssb_Results_r16 { + #[asn(optional_idx = 0)] + pub ssb_rsrp_result_r16: Option, + #[asn(optional_idx = 1)] + pub ssb_rsrq_result_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct S_NSSAI_r15_sst(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct S_NSSAI_r15_sst_SD(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct S_TMSIM_TMSI(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "3")] +pub struct SBAS_ID_r15Sbas_id_r15(pub u8); +impl SBAS_ID_r15Sbas_id_r15 { + pub const WAAS: u8 = 0u8; + pub const EGNOS: u8 = 1u8; + pub const MSAS: u8 = 2u8; + pub const GAGAN: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum SC_MCCH_MessageType_r13_c1 { + #[asn(key = 0, extended = false)] + ScptmConfiguration_r13(SCPTMConfiguration_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SC_MCCH_MessageType_r13_messageClassExtension_c2_spare; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SC_MCCH_MessageType_r13_messageClassExtension_c2 { + #[asn(key = 0, extended = false)] + ScptmConfiguration_BR_r14(SCPTMConfiguration_BR_r14), + #[asn(key = 1, extended = false)] + Spare(SC_MCCH_MessageType_r13_messageClassExtension_c2_spare), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SC_MCCH_MessageType_r13_messageClassExtension_messageClassExtensionFuture_r14 {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SC_MCCH_MessageType_r13_messageClassExtension { + #[asn(key = 0, extended = false)] + C2(SC_MCCH_MessageType_r13_messageClassExtension_c2), + #[asn(key = 1, extended = false)] + MessageClassExtensionFuture_r14( + SC_MCCH_MessageType_r13_messageClassExtension_messageClassExtensionFuture_r14, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SC_MCCH_SchedulingInfo_r14OnDurationTimerSCPTM_r14(pub u8); +impl SC_MCCH_SchedulingInfo_r14OnDurationTimerSCPTM_r14 { + pub const PSF10: u8 = 0u8; + pub const PSF20: u8 = 1u8; + pub const PSF100: u8 = 2u8; + pub const PSF300: u8 = 3u8; + pub const PSF500: u8 = 4u8; + pub const PSF1000: u8 = 5u8; + pub const PSF1200: u8 = 6u8; + pub const PSF1600: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SC_MCCH_SchedulingInfo_r14Drx_InactivityTimerSCPTM_r14(pub u8); +impl SC_MCCH_SchedulingInfo_r14Drx_InactivityTimerSCPTM_r14 { + pub const PSF0: u8 = 0u8; + pub const PSF1: u8 = 1u8; + pub const PSF2: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF8: u8 = 4u8; + pub const PSF16: u8 = 5u8; + pub const PSF32: u8 = 6u8; + pub const PSF64: u8 = 7u8; + pub const PSF128: u8 = 8u8; + pub const PSF256: u8 = 9u8; + pub const PS512: u8 = 10u8; + pub const PSF1024: u8 = 11u8; + pub const PSF2048: u8 = 12u8; + pub const PSF4096: u8 = 13u8; + pub const PSF8192: u8 = 14u8; + pub const PSF16384: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf20(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf32(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf40(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf64(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf80(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf128(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf160(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf256(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf320(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf512(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf640(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf1024(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf2048(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4095")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf4096(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "8191")] +pub struct SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf8192(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14 { + #[asn(key = 0, extended = false)] + Sf10(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf10), + #[asn(key = 1, extended = false)] + Sf20(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf20), + #[asn(key = 2, extended = false)] + Sf32(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf32), + #[asn(key = 3, extended = false)] + Sf40(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf40), + #[asn(key = 4, extended = false)] + Sf64(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf64), + #[asn(key = 5, extended = false)] + Sf80(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf80), + #[asn(key = 6, extended = false)] + Sf128(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf128), + #[asn(key = 7, extended = false)] + Sf160(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf160), + #[asn(key = 8, extended = false)] + Sf256(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf256), + #[asn(key = 9, extended = false)] + Sf320(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf320), + #[asn(key = 10, extended = false)] + Sf512(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf512), + #[asn(key = 11, extended = false)] + Sf640(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf640), + #[asn(key = 12, extended = false)] + Sf1024(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf1024), + #[asn(key = 13, extended = false)] + Sf2048(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf2048), + #[asn(key = 14, extended = false)] + Sf4096(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf4096), + #[asn(key = 15, extended = false)] + Sf8192(SC_MCCH_SchedulingInfo_r14SchedulingPeriodStartOffsetSCPTM_r14_sf8192), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SC_MTCH_Info_BR_r14G_RNTI_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct SC_MTCH_Info_BR_r14Sc_mtch_neighbourCell_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_Narrowband_SC_MTCH_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_NumRepetition_SC_MTCH_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_NumRepetition_SC_MTCH_r14 { + pub const R1: u8 = 0u8; + pub const R2: u8 = 1u8; + pub const R4: u8 = 2u8; + pub const R8: u8 = 3u8; + pub const R16: u8 = 4u8; + pub const R32: u8 = 5u8; + pub const R64: u8 = 6u8; + pub const R128: u8 = 7u8; + pub const R256: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_fdd_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_fdd_r14 { + pub const V1: u8 = 0u8; + pub const V1DOT5: u8 = 1u8; + pub const V2: u8 = 2u8; + pub const V2DOT5: u8 = 3u8; + pub const V4: u8 = 4u8; + pub const V5: u8 = 5u8; + pub const V8: u8 = 6u8; + pub const V10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_tdd_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_tdd_r14 { + pub const V1: u8 = 0u8; + pub const V2: u8 = 1u8; + pub const V4: u8 = 2u8; + pub const V5: u8 = 3u8; + pub const V8: u8 = 4u8; + pub const V10: u8 = 5u8; + pub const V20: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14 { + #[asn(key = 0, extended = false)] + Fdd_r14(SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_fdd_r14), + #[asn(key = 1, extended = false)] + Tdd_r14(SC_MTCH_Info_BR_r14Mpdcch_StartSF_SC_MTCH_r14_tdd_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_PDSCH_HoppingConfig_SC_MTCH_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_PDSCH_HoppingConfig_SC_MTCH_r14 { + pub const ON: u8 = 0u8; + pub const OFF: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_PDSCH_CEmodeConfig_SC_MTCH_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_PDSCH_CEmodeConfig_SC_MTCH_r14 { + pub const CE_MODE_A: u8 = 0u8; + pub const CE_MODE_B: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_PDSCH_MaxBandwidth_SC_MTCH_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_PDSCH_MaxBandwidth_SC_MTCH_r14 { + pub const BW1DOT4: u8 = 0u8; + pub const BW5: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SC_MTCH_Info_BR_r14Mpdcch_Offset_SC_MTCH_r14(pub u8); +impl SC_MTCH_Info_BR_r14Mpdcch_Offset_SC_MTCH_r14 { + pub const ZERO: u8 = 0u8; + pub const ONE_EIGHTH: u8 = 1u8; + pub const ONE_QUARTER: u8 = 2u8; + pub const THREE_EIGHTH: u8 = 3u8; + pub const ONE_HALF: u8 = 4u8; + pub const FIVE_EIGHTH: u8 = 5u8; + pub const THREE_QUARTER: u8 = 6u8; + pub const SEVEN_EIGHTH: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SC_MTCH_Info_BR_r14P_a_r14(pub u8); +impl SC_MTCH_Info_BR_r14P_a_r14 { + pub const D_B_6: u8 = 0u8; + pub const D_B_4DOT77: u8 = 1u8; + pub const D_B_3: u8 = 2u8; + pub const D_B_1DOT77: u8 = 3u8; + pub const D_B0: u8 = 4u8; + pub const D_B1: u8 = 5u8; + pub const D_B2: u8 = 6u8; + pub const D_B3: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SC_MTCH_Info_r13G_RNTI_r13(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct SC_MTCH_Info_r13Sc_mtch_neighbourCell_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SC_MTCH_SchedulingInfo_BR_r14OnDurationTimerSCPTM_r14(pub u8); +impl SC_MTCH_SchedulingInfo_BR_r14OnDurationTimerSCPTM_r14 { + pub const PSF300: u8 = 0u8; + pub const PSF400: u8 = 1u8; + pub const PSF500: u8 = 2u8; + pub const PSF600: u8 = 3u8; + pub const PSF800: u8 = 4u8; + pub const PSF1000: u8 = 5u8; + pub const PSF1200: u8 = 6u8; + pub const PSF1600: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SC_MTCH_SchedulingInfo_BR_r14Drx_InactivityTimerSCPTM_r14(pub u8); +impl SC_MTCH_SchedulingInfo_BR_r14Drx_InactivityTimerSCPTM_r14 { + pub const PSF0: u8 = 0u8; + pub const PSF1: u8 = 1u8; + pub const PSF2: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF8: u8 = 4u8; + pub const PSF16: u8 = 5u8; + pub const PSF32: u8 = 6u8; + pub const PSF64: u8 = 7u8; + pub const PSF128: u8 = 8u8; + pub const PSF256: u8 = 9u8; + pub const PS512: u8 = 10u8; + pub const PSF1024: u8 = 11u8; + pub const PSF2048: u8 = 12u8; + pub const PSF4096: u8 = 13u8; + pub const PSF8192: u8 = 14u8; + pub const PSF16384: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf20(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf32(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf40(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf64(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf80(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf128(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf160(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf256(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf320(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf512(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf640(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf1024(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf2048(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4095")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf4096(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "8191")] +pub struct SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf8192(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14 { + #[asn(key = 0, extended = false)] + Sf10(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf10), + #[asn(key = 1, extended = false)] + Sf20(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf20), + #[asn(key = 2, extended = false)] + Sf32(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf32), + #[asn(key = 3, extended = false)] + Sf40(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf40), + #[asn(key = 4, extended = false)] + Sf64(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf64), + #[asn(key = 5, extended = false)] + Sf80(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf80), + #[asn(key = 6, extended = false)] + Sf128(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf128), + #[asn(key = 7, extended = false)] + Sf160(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf160), + #[asn(key = 8, extended = false)] + Sf256(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf256), + #[asn(key = 9, extended = false)] + Sf320(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf320), + #[asn(key = 10, extended = false)] + Sf512(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf512), + #[asn(key = 11, extended = false)] + Sf640(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf640), + #[asn(key = 12, extended = false)] + Sf1024(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf1024), + #[asn(key = 13, extended = false)] + Sf2048(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf2048), + #[asn(key = 14, extended = false)] + Sf4096(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf4096), + #[asn(key = 15, extended = false)] + Sf8192(SC_MTCH_SchedulingInfo_BR_r14SchedulingPeriodStartOffsetSCPTM_r14_sf8192), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SC_MTCH_SchedulingInfo_r13OnDurationTimerSCPTM_r13(pub u8); +impl SC_MTCH_SchedulingInfo_r13OnDurationTimerSCPTM_r13 { + pub const PSF1: u8 = 0u8; + pub const PSF2: u8 = 1u8; + pub const PSF3: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF5: u8 = 4u8; + pub const PSF6: u8 = 5u8; + pub const PSF8: u8 = 6u8; + pub const PSF10: u8 = 7u8; + pub const PSF20: u8 = 8u8; + pub const PSF30: u8 = 9u8; + pub const PSF40: u8 = 10u8; + pub const PSF50: u8 = 11u8; + pub const PSF60: u8 = 12u8; + pub const PSF80: u8 = 13u8; + pub const PSF100: u8 = 14u8; + pub const PSF200: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SC_MTCH_SchedulingInfo_r13Drx_InactivityTimerSCPTM_r13(pub u8); +impl SC_MTCH_SchedulingInfo_r13Drx_InactivityTimerSCPTM_r13 { + pub const PSF0: u8 = 0u8; + pub const PSF1: u8 = 1u8; + pub const PSF2: u8 = 2u8; + pub const PSF4: u8 = 3u8; + pub const PSF8: u8 = 4u8; + pub const PSF10: u8 = 5u8; + pub const PSF20: u8 = 6u8; + pub const PSF40: u8 = 7u8; + pub const PSF80: u8 = 8u8; + pub const PSF160: u8 = 9u8; + pub const PS320: u8 = 10u8; + pub const PSF640: u8 = 11u8; + pub const PSF960: u8 = 12u8; + pub const PSF1280: u8 = 13u8; + pub const PSF1920: u8 = 14u8; + pub const PSF2560: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "19")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf20(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf32(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "39")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf40(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf64(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "79")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf80(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "127")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf128(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "159")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf160(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf256(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf320(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "511")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf512(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "639")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf640(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf1024(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2048")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf2048(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4096")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf4096(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "8192")] +pub struct SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf8192(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13 { + #[asn(key = 0, extended = false)] + Sf10(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf10), + #[asn(key = 1, extended = false)] + Sf20(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf20), + #[asn(key = 2, extended = false)] + Sf32(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf32), + #[asn(key = 3, extended = false)] + Sf40(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf40), + #[asn(key = 4, extended = false)] + Sf64(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf64), + #[asn(key = 5, extended = false)] + Sf80(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf80), + #[asn(key = 6, extended = false)] + Sf128(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf128), + #[asn(key = 7, extended = false)] + Sf160(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf160), + #[asn(key = 8, extended = false)] + Sf256(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf256), + #[asn(key = 9, extended = false)] + Sf320(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf320), + #[asn(key = 10, extended = false)] + Sf512(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf512), + #[asn(key = 11, extended = false)] + Sf640(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf640), + #[asn(key = 12, extended = false)] + Sf1024(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf1024), + #[asn(key = 13, extended = false)] + Sf2048(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf2048), + #[asn(key = 14, extended = false)] + Sf4096(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf4096), + #[asn(key = 15, extended = false)] + Sf8192(SC_MTCH_SchedulingInfo_r13SchedulingPeriodStartOffsetSCPTM_r13_sf8192), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Config_r12CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum SCG_Config_r12CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + Scg_Config_r12(SCG_Config_r12_IEs), + #[asn(key = 1, extended = false)] + Spare7(SCG_Config_r12CriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(SCG_Config_r12CriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(SCG_Config_r12CriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(SCG_Config_r12CriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(SCG_Config_r12CriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(SCG_Config_r12CriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(SCG_Config_r12CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_Config_r12CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCG_Config_r12CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SCG_Config_r12CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SCG_Config_r12CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCG_Config_v12i0a_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_Config_v12i0b_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_Config_v13c0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_ConfigInfo_r12CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum SCG_ConfigInfo_r12CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + Scg_ConfigInfo_r12(SCG_ConfigInfo_r12_IEs), + #[asn(key = 1, extended = false)] + Spare7(SCG_ConfigInfo_r12CriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(SCG_ConfigInfo_r12CriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(SCG_ConfigInfo_r12CriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(SCG_ConfigInfo_r12CriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(SCG_ConfigInfo_r12CriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(SCG_ConfigInfo_r12CriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(SCG_ConfigInfo_r12CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_ConfigInfo_r12CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCG_ConfigInfo_r12CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SCG_ConfigInfo_r12CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SCG_ConfigInfo_r12CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCG_ConfigInfo_r12_IEsEutra_CapabilityInfo_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCG_ConfigInfo_r12_IEsMbmsInterestIndication_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SCG_ConfigInfo_v1430_IEsMakeBeforeBreakSCG_Req_r14(pub u8); +impl SCG_ConfigInfo_v1430_IEsMakeBeforeBreakSCG_Req_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCG_ConfigInfo_v1530_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct SCG_ConfigRestrictInfo_r12MaxSCH_TB_BitsDL_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct SCG_ConfigRestrictInfo_r12MaxSCH_TB_BitsUL_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Configuration_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "65535")] +pub struct SCG_Configuration_r12_setupScg_ConfigPartMCG_r12Scg_Counter_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SCG_Configuration_r12_setupScg_ConfigPartMCG_r12 { + #[asn(optional_idx = 0)] + pub scg_counter_r12: Option, + #[asn(optional_idx = 1)] + pub power_coordination_info_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SCG_Configuration_r12_setup { + #[asn(optional_idx = 0)] + pub scg_config_part_mcg_r12: Option, + #[asn(optional_idx = 1)] + pub scg_config_part_scg_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Configuration_v12f0_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SCG_Configuration_v12f0_setup { + #[asn(optional_idx = 0)] + pub scg_config_part_scg_v12f0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCG_Configuration_v13c0_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SCG_Configuration_v13c0_setup { + #[asn(optional_idx = 0)] + pub scg_config_part_scg_v13c0: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SCG_DeactivationPreferenceConfig_r17Scg_DeactivationPreferenceProhibitTimer_r17(pub u8); +impl SCG_DeactivationPreferenceConfig_r17Scg_DeactivationPreferenceProhibitTimer_r17 { + pub const S0: u8 = 0u8; + pub const S1: u8 = 1u8; + pub const S2: u8 = 2u8; + pub const S4: u8 = 3u8; + pub const S8: u8 = 4u8; + pub const S10: u8 = 5u8; + pub const S20: u8 = 6u8; + pub const S30: u8 = 7u8; + pub const S60: u8 = 8u8; + pub const S120: u8 = 9u8; + pub const S180: u8 = 10u8; + pub const S240: u8 = 11u8; + pub const S300: u8 = 12u8; + pub const S600: u8 = 13u8; + pub const S900: u8 = 14u8; + pub const S1800: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformation_r12CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformation_r12CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformation_r12CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum SCGFailureInformation_r12CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + ScgFailureInformation_r12(SCGFailureInformation_r12_IEs), + #[asn(key = 1, extended = false)] + Spare3(SCGFailureInformation_r12CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(SCGFailureInformation_r12CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(SCGFailureInformation_r12CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformation_r12CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCGFailureInformation_r12CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SCGFailureInformation_r12CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SCGFailureInformation_r12CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCGFailureInformation_v12d0a_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformation_v12d0a_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformation_v12d0b_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformationNR_r15CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformationNR_r15CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SCGFailureInformationNR_r15CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum SCGFailureInformationNR_r15CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + ScgFailureInformationNR_r15(SCGFailureInformationNR_r15_IEs), + #[asn(key = 1, extended = false)] + Spare3(SCGFailureInformationNR_r15CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(SCGFailureInformationNR_r15CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(SCGFailureInformationNR_r15CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformationNR_r15CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SCGFailureInformationNR_r15CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SCGFailureInformationNR_r15CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + SCGFailureInformationNR_r15CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCGFailureInformationNR_v1590_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCGFailureInformationNR_v1590_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SCPTM_Parameters_r13Scptm_ParallelReception_r13(pub u8); +impl SCPTM_Parameters_r13Scptm_ParallelReception_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SCPTM_Parameters_r13Scptm_SCell_r13(pub u8); +impl SCPTM_Parameters_r13Scptm_SCell_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SCPTM_Parameters_r13Scptm_NonServingCell_r13(pub u8); +impl SCPTM_Parameters_r13Scptm_NonServingCell_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SCPTM_Parameters_r13Scptm_AsyncDC_r13(pub u8); +impl SCPTM_Parameters_r13Scptm_AsyncDC_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SCPTMConfiguration_BR_r14P_b_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCPTMConfiguration_BR_r14LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SCPTMConfiguration_BR_v1610MultiTB_Gap_r16(pub u8); +impl SCPTMConfiguration_BR_v1610MultiTB_Gap_r16 { + pub const SF2: u8 = 0u8; + pub const SF4: u8 = 1u8; + pub const SF8: u8 = 2u8; + pub const SF16: u8 = 3u8; + pub const SF32: u8 = 4u8; + pub const SF64: u8 = 5u8; + pub const SF128: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCPTMConfiguration_BR_v1610NonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SCPTMConfiguration_r13LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SCPTMConfiguration_v1340P_b_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCPTMConfiguration_v1340NonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCellToAddMod_r10CellIdentification_r10 { + pub phys_cell_id_r10: PhysCellId, + pub dl_carrier_freq_r10: ARFCN_ValueEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCellToAddMod_r16CellIdentification_r16 { + pub phys_cell_id_r16: PhysCellId, + pub dl_carrier_freq_r16: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SCellToAddMod_r16Srs_SwitchFromServCellIndex_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SCellToAddMod_r16SCellState_r16(pub u8); +impl SCellToAddMod_r16SCellState_r16 { + pub const ACTIVATED: u8 = 0u8; + pub const DORMANT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SCellToAddModExt_r13CellIdentification_r13 { + pub phys_cell_id_r13: PhysCellId, + pub dl_carrier_freq_r13: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SCellToAddModExt_v1430Srs_SwitchFromServCellIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct SIB8_PerPLMN_r11Plmn_Identity_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SIB8_PerPLMN_r11ParametersCDMA2000_r11_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SIB8_PerPLMN_r11ParametersCDMA2000_r11 { + #[asn(key = 0, extended = false)] + ExplicitValue(ParametersCDMA2000_r11), + #[asn(key = 1, extended = false)] + DefaultValue(SIB8_PerPLMN_r11ParametersCDMA2000_r11_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_AllowedCarrierFreqList_r15AllowedCarrierFreqSet1(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_AllowedCarrierFreqList_r15AllowedCarrierFreqSet2(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SL_CBR_CommonTxConfigList_r14Cbr_RangeCommonConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct SL_CBR_CommonTxConfigList_r14Sl_CBR_PSSCH_TxConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10000")] +pub struct SL_CBR_PSSCH_TxConfig_r14Cr_Limit_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_CBR_PreconfigTxConfigList_r14Cbr_RangeCommonConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "1", + sz_ub = "128" +)] +pub struct SL_CBR_PreconfigTxConfigList_r14Sl_CBR_PSSCH_TxConfigList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_CommConfig_r12CommTxResources_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "28")] +pub struct SL_CommConfig_r12CommTxResources_r12_setup_scheduled_r12Mcs_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CommConfig_r12CommTxResources_r12_setup_scheduled_r12 { + pub sl_rnti_r12: C_RNTI, + pub mac_main_config_r12: MAC_MainConfigSL_r12, + pub sc_comm_tx_config_r12: SL_CommResourcePool_r12, + #[asn(optional_idx = 0)] + pub mcs_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_CommConfig_r12CommTxResources_r12_setup_ue_Selected_r12CommTxPoolNormalDedicated_r12 { + #[asn(optional_idx = 0)] + pub pool_to_release_list_r12: Option, + #[asn(optional_idx = 1)] + pub pool_to_add_mod_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CommConfig_r12CommTxResources_r12_setup_ue_Selected_r12 { + pub comm_tx_pool_normal_dedicated_r12: + SL_CommConfig_r12CommTxResources_r12_setup_ue_Selected_r12CommTxPoolNormalDedicated_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_CommConfig_r12CommTxResources_r12_setup { + #[asn(key = 0, extended = false)] + Scheduled_r12(SL_CommConfig_r12CommTxResources_r12_setup_scheduled_r12), + #[asn(key = 1, extended = false)] + Ue_Selected_r12(SL_CommConfig_r12CommTxResources_r12_setup_ue_Selected_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_CommConfig_r12CommTxResources_r12 { + #[asn(key = 0, extended = false)] + Release(SL_CommConfig_r12CommTxResources_r12_release), + #[asn(key = 1, extended = false)] + Setup(SL_CommConfig_r12CommTxResources_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CommResourcePool_r12Ue_SelectedResourceConfig_r12 { + pub data_tf_resource_config_r12: SL_TF_ResourceConfig_r12, + #[asn(optional_idx = 0)] + pub trpt_subset_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_CommResourcePool_r12RxParametersNCell_r12SyncConfigIndex_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CommResourcePool_r12RxParametersNCell_r12 { + #[asn(optional_idx = 0)] + pub tdd_config_r12: Option, + pub sync_config_index_r12: SL_CommResourcePool_r12RxParametersNCell_r12SyncConfigIndex_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CommResourcePool_r12TxParameters_r12 { + pub sc_tx_parameters_r12: SL_TxParameters_r12, + pub data_tx_parameters_r12: SL_TxParameters_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_CommResourcePoolV2X_r14AdjacencyPSCCH_PSSCH_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct SL_CommResourcePoolV2X_r14SizeSubchannel_r14(pub u8); +impl SL_CommResourcePoolV2X_r14SizeSubchannel_r14 { + pub const N4: u8 = 0u8; + pub const N5: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N9: u8 = 4u8; + pub const N10: u8 = 5u8; + pub const N12: u8 = 6u8; + pub const N15: u8 = 7u8; + pub const N16: u8 = 8u8; + pub const N18: u8 = 9u8; + pub const N20: u8 = 10u8; + pub const N25: u8 = 11u8; + pub const N30: u8 = 12u8; + pub const N48: u8 = 13u8; + pub const N50: u8 = 14u8; + pub const N72: u8 = 15u8; + pub const N75: u8 = 16u8; + pub const N96: u8 = 17u8; + pub const N100: u8 = 18u8; + pub const SPARE13: u8 = 19u8; + pub const SPARE12: u8 = 20u8; + pub const SPARE11: u8 = 21u8; + pub const SPARE10: u8 = 22u8; + pub const SPARE9: u8 = 23u8; + pub const SPARE8: u8 = 24u8; + pub const SPARE7: u8 = 25u8; + pub const SPARE6: u8 = 26u8; + pub const SPARE5: u8 = 27u8; + pub const SPARE4: u8 = 28u8; + pub const SPARE3: u8 = 29u8; + pub const SPARE2: u8 = 30u8; + pub const SPARE1: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_CommResourcePoolV2X_r14NumSubchannel_r14(pub u8); +impl SL_CommResourcePoolV2X_r14NumSubchannel_r14 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N5: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N10: u8 = 4u8; + pub const N15: u8 = 5u8; + pub const N20: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_CommResourcePoolV2X_r14StartRB_Subchannel_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_CommResourcePoolV2X_r14StartRB_PSCCH_Pool_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_CommResourcePoolV2X_r14RxParametersNCell_r14SyncConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_CommResourcePoolV2X_r14RxParametersNCell_r14 { + #[asn(optional_idx = 0)] + pub tdd_config_r14: Option, + pub sync_config_index_r14: SL_CommResourcePoolV2X_r14RxParametersNCell_r14SyncConfigIndex_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SL_CommResourcePoolV2X_r14ZoneID_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "45")] +pub struct SL_CommResourcePoolV2X_r14ThreshS_RSSI_CBR_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_CommTxPoolSensingConfig_r14ProbResourceKeep_r14(pub u8); +impl SL_CommTxPoolSensingConfig_r14ProbResourceKeep_r14 { + pub const V0: u8 = 0u8; + pub const V0DOT2: u8 = 1u8; + pub const V0DOT4: u8 = 2u8; + pub const V0DOT6: u8 = 3u8; + pub const V0DOT8: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "13")] +pub struct SL_CommTxPoolSensingConfig_r14P2x_SensingConfig_r14MinNumCandidateSF_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct SL_CommTxPoolSensingConfig_r14P2x_SensingConfig_r14GapCandidateSensing_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_CommTxPoolSensingConfig_r14P2x_SensingConfig_r14 { + pub min_num_candidate_sf_r14: + SL_CommTxPoolSensingConfig_r14P2x_SensingConfig_r14MinNumCandidateSF_r14, + pub gap_candidate_sensing_r14: + SL_CommTxPoolSensingConfig_r14P2x_SensingConfig_r14GapCandidateSensing_r14, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SL_CommTxPoolSensingConfig_r14Sl_ReselectAfter_r14(pub u8); +impl SL_CommTxPoolSensingConfig_r14Sl_ReselectAfter_r14 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N5: u8 = 4u8; + pub const N6: u8 = 5u8; + pub const N7: u8 = 6u8; + pub const N8: u8 = 7u8; + pub const N9: u8 = 8u8; + pub const SPARE7: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscConfig_r12DiscTxResources_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_DiscConfig_r12DiscTxResources_r12_setup_scheduled_r12 { + #[asn(optional_idx = 0)] + pub disc_tx_config_r12: Option, + #[asn(optional_idx = 1)] + pub disc_tf_index_list_r12: Option, + #[asn(optional_idx = 2)] + pub disc_hopping_config_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_DiscConfig_r12DiscTxResources_r12_setup_ue_Selected_r12DiscTxPoolDedicated_r12 { + #[asn(optional_idx = 0)] + pub pool_to_release_list_r12: Option, + #[asn(optional_idx = 1)] + pub pool_to_add_mod_list_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_DiscConfig_r12DiscTxResources_r12_setup_ue_Selected_r12 { + #[asn(optional_idx = 0)] + pub disc_tx_pool_dedicated_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscConfig_r12DiscTxResources_r12_setup { + #[asn(key = 0, extended = false)] + Scheduled_r12(SL_DiscConfig_r12DiscTxResources_r12_setup_scheduled_r12), + #[asn(key = 1, extended = false)] + Ue_Selected_r12(SL_DiscConfig_r12DiscTxResources_r12_setup_ue_Selected_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscConfig_r12DiscTxResources_r12 { + #[asn(key = 0, extended = false)] + Release(SL_DiscConfig_r12DiscTxResources_r12_release), + #[asn(key = 1, extended = false)] + Setup(SL_DiscConfig_r12DiscTxResources_r12_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_DiscConfigOtherInterFreq_r13RefCarrierCommon_r13(pub u8); +impl SL_DiscConfigOtherInterFreq_r13RefCarrierCommon_r13 { + pub const P_CELL: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_DiscConfigRelayUE_r13HystMax_r13(pub u8); +impl SL_DiscConfigRelayUE_r13HystMax_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; + pub const D_BINF: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct SL_DiscConfigRelayUE_r13HystMin_r13(pub u8); +impl SL_DiscConfigRelayUE_r13HystMin_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct SL_DiscConfigRemoteUE_r13HystMax_r13(pub u8); +impl SL_DiscConfigRemoteUE_r13HystMax_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_DiscResourcePool_r12DiscPeriod_r12(pub u8); +impl SL_DiscResourcePool_r12DiscPeriod_r12 { + pub const RF32: u8 = 0u8; + pub const RF64: u8 = 1u8; + pub const RF128: u8 = 2u8; + pub const RF256: u8 = 3u8; + pub const RF512: u8 = 4u8; + pub const RF1024: u8 = 5u8; + pub const RF16_V1310: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SL_DiscResourcePool_r12NumRetx_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "50")] +pub struct SL_DiscResourcePool_r12NumRepetition_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12PoolSelection_r12_random_r12; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12PoolSelection_r12 { + # [asn (key = 0 , extended = false)] RsrpBased_r12 (SL_PoolSelectionConfig_r12) , # [asn (key = 1 , extended = false)] Random_r12 (SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12PoolSelection_r12_random_r12) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12TxProbability_r12( + pub u8, +); +impl SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12TxProbability_r12 { + pub const P25: u8 = 0u8; + pub const P50: u8 = 1u8; + pub const P75: u8 = 2u8; + pub const P100: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12 { + pub pool_selection_r12: + SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12PoolSelection_r12, + pub tx_probability_r12: + SL_DiscResourcePool_r12TxParameters_r12Ue_SelectedResourceConfig_r12TxProbability_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_DiscResourcePool_r12TxParameters_r12 { + pub tx_parameters_general_r12: SL_TxParameters_r12, + #[asn(optional_idx = 0)] + pub ue_selected_resource_config_r12: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_DiscResourcePool_r12RxParameters_r12SyncConfigIndex_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_DiscResourcePool_r12RxParameters_r12 { + #[asn(optional_idx = 0)] + pub tdd_config_r12: Option, + pub sync_config_index_r12: SL_DiscResourcePool_r12RxParameters_r12SyncConfigIndex_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SL_DiscSysInfoReport_r13DiscCellSelectionInfo_r13Q_RxLevMinOffset_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_DiscSysInfoReport_r13DiscCellSelectionInfo_r13 { + pub q_rx_lev_min_r13: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub q_rx_lev_min_offset_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SL_DiscSysInfoReport_r13CellReselectionInfo_r13Q_Hyst_r13(pub u8); +impl SL_DiscSysInfoReport_r13CellReselectionInfo_r13Q_Hyst_r13 { + pub const D_B0: u8 = 0u8; + pub const D_B1: u8 = 1u8; + pub const D_B2: u8 = 2u8; + pub const D_B3: u8 = 3u8; + pub const D_B4: u8 = 4u8; + pub const D_B5: u8 = 5u8; + pub const D_B6: u8 = 6u8; + pub const D_B8: u8 = 7u8; + pub const D_B10: u8 = 8u8; + pub const D_B12: u8 = 9u8; + pub const D_B14: u8 = 10u8; + pub const D_B16: u8 = 11u8; + pub const D_B18: u8 = 12u8; + pub const D_B20: u8 = 13u8; + pub const D_B22: u8 = 14u8; + pub const D_B24: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_DiscSysInfoReport_r13CellReselectionInfo_r13 { + pub q_hyst_r13: SL_DiscSysInfoReport_r13CellReselectionInfo_r13Q_Hyst_r13, + pub q_rx_lev_min_r13: Q_RxLevMin, + pub t_reselection_eutra_r13: T_Reselection, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_DiscSysInfoReport_r13FreqInfo_r13Ul_Bandwidth_r13(pub u8); +impl SL_DiscSysInfoReport_r13FreqInfo_r13Ul_Bandwidth_r13 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_DiscSysInfoReport_r13FreqInfo_r13 { + #[asn(optional_idx = 0)] + pub ul_carrier_freq_r13: Option, + #[asn(optional_idx = 1)] + pub ul_bandwidth_r13: Option, + #[asn(optional_idx = 2)] + pub additional_spectrum_emission_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-60", ub = "50")] +pub struct SL_DiscSysInfoReport_r13ReferenceSignalPower_r13(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_DiscTxInfoInterFreqListAdd_r13DiscTxFreqToAddModList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SL_DiscTxInfoInterFreqListAdd_r13DiscTxFreqToReleaseList_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscTxRefCarrierDedicated_r13_pCell; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscTxResource_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_DiscTxResource_r13_setup { + #[asn(key = 0, extended = false)] + Scheduled_r13(SL_DiscTxConfigScheduled_r13), + #[asn(key = 1, extended = false)] + Ue_Selected_r13(SL_DiscTxPoolDedicated_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SL_DiscTxResourceReq_r13CarrierFreqDiscTx_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "63")] +pub struct SL_DiscTxResourceReq_r13DiscTxResourceReq_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscTxResourcesInterFreq_r13_acquireSI_FromCarrier_r13; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscTxResourcesInterFreq_r13_requestDedicated_r13; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_DiscTxResourcesInterFreq_r13_noTxOnCarrier_r13; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "14")] +pub struct SL_GapPattern_r13GapPeriod_r13(pub u8); +impl SL_GapPattern_r13GapPeriod_r13 { + pub const SF40: u8 = 0u8; + pub const SF60: u8 = 1u8; + pub const SF70: u8 = 2u8; + pub const SF80: u8 = 3u8; + pub const SF120: u8 = 4u8; + pub const SF140: u8 = 5u8; + pub const SF160: u8 = 6u8; + pub const SF240: u8 = 7u8; + pub const SF280: u8 = 8u8; + pub const SF320: u8 = 9u8; + pub const SF640: u8 = 10u8; + pub const SF1280: u8 = 11u8; + pub const SF2560: u8 = 12u8; + pub const SF5120: u8 = 13u8; + pub const SF10240: u8 = 14u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "10240" +)] +pub struct SL_GapPattern_r13GapSubframeBitmap_r13(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "504")] +pub struct SL_HoppingConfigComm_r12HoppingParameter_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SL_HoppingConfigComm_r12NumSubbands_r12(pub u8); +impl SL_HoppingConfigComm_r12NumSubbands_r12 { + pub const NS1: u8 = 0u8; + pub const NS2: u8 = 1u8; + pub const NS4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "110")] +pub struct SL_HoppingConfigComm_r12Rb_Offset_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "200")] +pub struct SL_HoppingConfigDisc_r12A_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "10")] +pub struct SL_HoppingConfigDisc_r12B_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_HoppingConfigDisc_r12C_r12(pub u8); +impl SL_HoppingConfigDisc_r12C_r12 { + pub const N1: u8 = 0u8; + pub const N5: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_InterFreqInfoV2X_r14Sl_Bandwidth_r14(pub u8); +impl SL_InterFreqInfoV2X_r14Sl_Bandwidth_r14 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "10", ub = "20")] +pub struct SL_MinT2Value_r15MinT2Value_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "319")] +pub struct SL_OffsetIndicator_r12_small_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10239")] +pub struct SL_OffsetIndicator_r12_large_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_P2X_ResourceSelectionConfig_r14PartialSensing_r14(pub u8); +impl SL_P2X_ResourceSelectionConfig_r14PartialSensing_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_P2X_ResourceSelectionConfig_r14RandomSelection_r14(pub u8); +impl SL_P2X_ResourceSelectionConfig_r14RandomSelection_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_PPPP_TxConfigIndex_r14DefaultTxConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SL_PPPP_TxConfigIndex_r14Cbr_ConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxConfigIndex_r14Tx_ConfigIndexList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_PPPP_TxConfigIndex_r15DefaultTxConfigIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SL_PPPP_TxConfigIndex_r15Cbr_ConfigIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxConfigIndex_r15Tx_ConfigIndexList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxConfigIndex_r15Mcs_PSSCH_RangeList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxConfigIndex_v1530Mcs_PSSCH_RangeList_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SL_PPPP_TxPreconfigIndex_r14DefaultTxConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SL_PPPP_TxPreconfigIndex_r14Cbr_ConfigIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxPreconfigIndex_r14Tx_ConfigIndexList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SL_PPPP_TxPreconfigIndex_v1530Mcs_PSSCH_Range_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_PSSCH_TxConfig_r14ThresUE_Speed_r14(pub u8); +impl SL_PSSCH_TxConfig_r14ThresUE_Speed_r14 { + pub const KMPH60: u8 = 0u8; + pub const KMPH80: u8 = 1u8; + pub const KMPH100: u8 = 2u8; + pub const KMPH120: u8 = 3u8; + pub const KMPH140: u8 = 4u8; + pub const KMPH160: u8 = 5u8; + pub const KMPH180: u8 = 6u8; + pub const KMPH200: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SL_PSSCH_TxParameters_r14MinMCS_PSSCH_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SL_PSSCH_TxParameters_r14MaxMCS_PSSCH_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "20")] +pub struct SL_PSSCH_TxParameters_r14MinSubChannel_NumberPSSCH_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "20")] +pub struct SL_PSSCH_TxParameters_r14MaxSubchannel_NumberPSSCH_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SL_PSSCH_TxParameters_r14AllowedRetxNumberPSSCH_r14(pub u8); +impl SL_PSSCH_TxParameters_r14AllowedRetxNumberPSSCH_r14 { + pub const N0: u8 = 0u8; + pub const N1: u8 = 1u8; + pub const BOTH: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SL_PSSCH_TxParameters_v1530MinMCS_PSSCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SL_PSSCH_TxParameters_v1530MaxMCS_PSSCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_r12CommSimultaneousTx_r12(pub u8); +impl SL_Parameters_r12CommSimultaneousTx_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_r12DiscScheduledResourceAlloc_r12(pub u8); +impl SL_Parameters_r12DiscScheduledResourceAlloc_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_r12Disc_UE_SelectedResourceAlloc_r12(pub u8); +impl SL_Parameters_r12Disc_UE_SelectedResourceAlloc_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_r12Disc_SLSS_r12(pub u8); +impl SL_Parameters_r12Disc_SLSS_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_Parameters_r12DiscSupportedProc_r12(pub u8); +impl SL_Parameters_r12DiscSupportedProc_r12 { + pub const N50: u8 = 0u8; + pub const N400: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1310DiscSysInfoReporting_r13(pub u8); +impl SL_Parameters_v1310DiscSysInfoReporting_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1310CommMultipleTx_r13(pub u8); +impl SL_Parameters_v1310CommMultipleTx_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1310DiscInterFreqTx_r13(pub u8); +impl SL_Parameters_v1310DiscInterFreqTx_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1310DiscPeriodicSLSS_r13(pub u8); +impl SL_Parameters_v1310DiscPeriodicSLSS_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430ZoneBasedPoolSelection_r14(pub u8); +impl SL_Parameters_v1430ZoneBasedPoolSelection_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430Ue_AutonomousWithFullSensing_r14(pub u8); +impl SL_Parameters_v1430Ue_AutonomousWithFullSensing_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430Ue_AutonomousWithPartialSensing_r14(pub u8); +impl SL_Parameters_v1430Ue_AutonomousWithPartialSensing_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430Sl_CongestionControl_r14(pub u8); +impl SL_Parameters_v1430Sl_CongestionControl_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430V2x_TxWithShortResvInterval_r14(pub u8); +impl SL_Parameters_v1430V2x_TxWithShortResvInterval_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct SL_Parameters_v1430V2x_numberTxRxTiming_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430V2x_nonAdjacentPSCCH_PSSCH_r14(pub u8); +impl SL_Parameters_v1430V2x_nonAdjacentPSCCH_PSSCH_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1430Slss_TxRx_r14(pub u8); +impl SL_Parameters_v1430Slss_TxRx_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_Parameters_v1530Slss_SupportedTxFreq_r15(pub u8); +impl SL_Parameters_v1530Slss_SupportedTxFreq_r15 { + pub const SINGLE: u8 = 0u8; + pub const MULTIPLE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1530Sl_64QAM_Tx_r15(pub u8); +impl SL_Parameters_v1530Sl_64QAM_Tx_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1530Sl_TxDiversity_r15(pub u8); +impl SL_Parameters_v1530Sl_TxDiversity_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1540Sl_64QAM_Rx_r15(pub u8); +impl SL_Parameters_v1540Sl_64QAM_Rx_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1540Sl_RateMatchingTBSScaling_r15(pub u8); +impl SL_Parameters_v1540Sl_RateMatchingTBSScaling_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1540Sl_LowT2min_r15(pub u8); +impl SL_Parameters_v1540Sl_LowT2min_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_Parameters_v1540V2x_SensingReportingMode3_r15(pub u8); +impl SL_Parameters_v1540V2x_SensingReportingMode3_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SL_Parameters_v1610Sl_ParameterNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SL_PreconfigDiscPool_r13DiscPeriod_r13(pub u8); +impl SL_PreconfigDiscPool_r13DiscPeriod_r13 { + pub const RF4: u8 = 0u8; + pub const RF6: u8 = 1u8; + pub const RF7: u8 = 2u8; + pub const RF8: u8 = 3u8; + pub const RF12: u8 = 4u8; + pub const RF14: u8 = 5u8; + pub const RF16: u8 = 6u8; + pub const RF24: u8 = 7u8; + pub const RF28: u8 = 8u8; + pub const RF32: u8 = 9u8; + pub const RF64: u8 = 10u8; + pub const RF128: u8 = 11u8; + pub const RF256: u8 = 12u8; + pub const RF512: u8 = 13u8; + pub const RF1024: u8 = 14u8; + pub const SPARE: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SL_PreconfigDiscPool_r13NumRetx_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "50")] +pub struct SL_PreconfigDiscPool_r13NumRepetition_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SL_PreconfigDiscPool_r13TxParameters_r13TxProbability_r13(pub u8); +impl SL_PreconfigDiscPool_r13TxParameters_r13TxProbability_r13 { + pub const P25: u8 = 0u8; + pub const P50: u8 = 1u8; + pub const P75: u8 = 2u8; + pub const P100: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PreconfigDiscPool_r13TxParameters_r13 { + pub tx_parameters_general_r13: P0_SL_r12, + pub tx_probability_r13: SL_PreconfigDiscPool_r13TxParameters_r13TxProbability_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0001_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0002_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0004_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0006_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0101_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0102_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0104_r12(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_PreconfigGeneral_r12Rohc_Profiles_r12 { + pub profile0x0001_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0001_r12, + pub profile0x0002_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0002_r12, + pub profile0x0004_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0004_r12, + pub profile0x0006_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0006_r12, + pub profile0x0101_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0101_r12, + pub profile0x0102_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0102_r12, + pub profile0x0104_r12: SL_PreconfigGeneral_r12Rohc_Profiles_r12Profile0x0104_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_PreconfigGeneral_r12Sl_bandwidth_r12(pub u8); +impl SL_PreconfigGeneral_r12Sl_bandwidth_r12 { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct SL_PreconfigGeneral_r12Reserved_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct SL_PreconfigSync_r12SyncRefMinHyst_r12(pub u8); +impl SL_PreconfigSync_r12SyncRefMinHyst_r12 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_PreconfigSync_r12SyncRefDiffHyst_r12(pub u8); +impl SL_PreconfigSync_r12SyncRefDiffHyst_r12 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; + pub const D_BINF: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct SL_PreconfigV2X_Sync_r14SyncRefMinHyst_r14(pub u8); +impl SL_PreconfigV2X_Sync_r14SyncRefMinHyst_r14 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SL_PreconfigV2X_Sync_r14SyncRefDiffHyst_r14(pub u8); +impl SL_PreconfigV2X_Sync_r14SyncRefDiffHyst_r14 { + pub const D_B0: u8 = 0u8; + pub const D_B3: u8 = 1u8; + pub const D_B6: u8 = 2u8; + pub const D_B9: u8 = 3u8; + pub const D_B12: u8 = 4u8; + pub const D_BINF: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_SyncAllowed_r14Gnss_Sync_r14(pub u8); +impl SL_SyncAllowed_r14Gnss_Sync_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_SyncAllowed_r14Enb_Sync_r14(pub u8); +impl SL_SyncAllowed_r14Enb_Sync_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_SyncAllowed_r14Ue_Sync_r14(pub u8); +impl SL_SyncAllowed_r14Ue_Sync_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct SL_SyncConfig_r12TxParameters_r12SyncInfoReserved_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SL_SyncConfig_r12TxParameters_r12 { + pub sync_tx_parameters_r12: SL_TxParameters_r12, + pub sync_tx_thresh_ic_r12: RSRP_RangeSL_r12, + #[asn(optional_idx = 0)] + pub sync_info_reserved_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_SyncConfig_r12RxParamsNCell_r12DiscSyncWindow_r12(pub u8); +impl SL_SyncConfig_r12RxParamsNCell_r12DiscSyncWindow_r12 { + pub const W1: u8 = 0u8; + pub const W2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_SyncConfig_r12RxParamsNCell_r12 { + pub phys_cell_id_r12: PhysCellId, + pub disc_sync_window_r12: SL_SyncConfig_r12RxParamsNCell_r12DiscSyncWindow_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_SyncConfigNFreq_r13AsyncParameters_r13 { + pub sync_cp_len_r13: SL_CP_Len_r12, + pub sync_offset_indicator_r13: SL_OffsetIndicatorSync_r12, + pub slssid_r13: SLSSID_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "19", sz_ub = "19")] +pub struct SL_SyncConfigNFreq_r13TxParameters_r13SyncInfoReserved_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SL_SyncConfigNFreq_r13TxParameters_r13SyncTxPeriodic_r13(pub u8); +impl SL_SyncConfigNFreq_r13TxParameters_r13SyncTxPeriodic_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_SyncConfigNFreq_r13TxParameters_r13 { + pub sync_tx_parameters_r13: SL_TxParameters_r12, + pub sync_tx_thresh_ic_r13: RSRP_RangeSL_r12, + #[asn(optional_idx = 0)] + pub sync_info_reserved_r13: Option, + #[asn(optional_idx = 1)] + pub sync_tx_periodic_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_SyncConfigNFreq_r13RxParameters_r13DiscSyncWindow_r13(pub u8); +impl SL_SyncConfigNFreq_r13RxParameters_r13DiscSyncWindow_r13 { + pub const W1: u8 = 0u8; + pub const W2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_SyncConfigNFreq_r13RxParameters_r13 { + pub disc_sync_window_r13: SL_SyncConfigNFreq_r13RxParameters_r13DiscSyncWindow_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_SyncTxControl_r12NetworkControlledSyncTx_r12(pub u8); +impl SL_SyncTxControl_r12NetworkControlledSyncTx_r12 { + pub const ON: u8 = 0u8; + pub const OFF: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "200")] +pub struct SL_TF_IndexPair_r12DiscSF_Index_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "50")] +pub struct SL_TF_IndexPair_r12DiscPRB_Index_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "209")] +pub struct SL_TF_IndexPair_r12bDiscSF_Index_r12b(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "49")] +pub struct SL_TF_IndexPair_r12bDiscPRB_Index_r12b(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "100")] +pub struct SL_TF_ResourceConfig_r12Prb_Num_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_TF_ResourceConfig_r12Prb_Start_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_TF_ResourceConfig_r12Prb_End_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_TxPower_r14_minusinfinity_r14; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-41", ub = "31")] +pub struct SL_TxPower_r14_txPower_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SL_V2X_CommFreqList_r14_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SL_V2X_CommTxResourceReq_r14CarrierFreqCommTx_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1000")] +pub struct SL_V2X_ConfigCommon_r14OffsetDFN_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SL_V2X_ConfigDedicated_r14CommTxResources_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_scheduled_r14Mcs_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_scheduled_r14 { + pub sl_v_rnti_r14: C_RNTI, + pub mac_main_config_r14: MAC_MainConfigSL_r12, + #[asn(optional_idx = 0)] + pub v2x_scheduling_pool_r14: Option, + #[asn(optional_idx = 1)] + pub mcs_r14: Option, + pub logical_ch_group_info_list_r14: LogicalChGroupInfoList_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_ue_Selected_r14V2x_CommTxPoolNormalDedicated_r14 +{ + #[asn(optional_idx = 0)] + pub pool_to_release_list_r14: Option, + #[asn(optional_idx = 1)] + pub pool_to_add_mod_list_r14: Option, + #[asn(optional_idx = 2)] + pub v2x_comm_tx_pool_sensing_config_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_ue_Selected_r14 { pub v2x_comm_tx_pool_normal_dedicated_r14 : SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_ue_Selected_r14V2x_CommTxPoolNormalDedicated_r14 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup { + #[asn(key = 0, extended = false)] + Scheduled_r14(SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_scheduled_r14), + #[asn(key = 1, extended = false)] + Ue_Selected_r14(SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup_ue_Selected_r14), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SL_V2X_ConfigDedicated_r14CommTxResources_r14 { + #[asn(key = 0, extended = false)] + Release(SL_V2X_ConfigDedicated_r14CommTxResources_r14_release), + #[asn(key = 1, extended = false)] + Setup(SL_V2X_ConfigDedicated_r14CommTxResources_r14_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1000")] +pub struct SL_V2X_InterFreqUE_Config_r14OffsetDFN_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SL_V2X_PreconfigCommPool_r14AdjacencyPSCCH_PSSCH_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "31")] +pub struct SL_V2X_PreconfigCommPool_r14SizeSubchannel_r14(pub u8); +impl SL_V2X_PreconfigCommPool_r14SizeSubchannel_r14 { + pub const N4: u8 = 0u8; + pub const N5: u8 = 1u8; + pub const N6: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N9: u8 = 4u8; + pub const N10: u8 = 5u8; + pub const N12: u8 = 6u8; + pub const N15: u8 = 7u8; + pub const N16: u8 = 8u8; + pub const N18: u8 = 9u8; + pub const N20: u8 = 10u8; + pub const N25: u8 = 11u8; + pub const N30: u8 = 12u8; + pub const N48: u8 = 13u8; + pub const N50: u8 = 14u8; + pub const N72: u8 = 15u8; + pub const N75: u8 = 16u8; + pub const N96: u8 = 17u8; + pub const N100: u8 = 18u8; + pub const SPARE13: u8 = 19u8; + pub const SPARE12: u8 = 20u8; + pub const SPARE11: u8 = 21u8; + pub const SPARE10: u8 = 22u8; + pub const SPARE9: u8 = 23u8; + pub const SPARE8: u8 = 24u8; + pub const SPARE7: u8 = 25u8; + pub const SPARE6: u8 = 26u8; + pub const SPARE5: u8 = 27u8; + pub const SPARE4: u8 = 28u8; + pub const SPARE3: u8 = 29u8; + pub const SPARE2: u8 = 30u8; + pub const SPARE1: u8 = 31u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_V2X_PreconfigCommPool_r14NumSubchannel_r14(pub u8); +impl SL_V2X_PreconfigCommPool_r14NumSubchannel_r14 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N5: u8 = 2u8; + pub const N8: u8 = 3u8; + pub const N10: u8 = 4u8; + pub const N15: u8 = 5u8; + pub const N20: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_V2X_PreconfigCommPool_r14StartRB_Subchannel_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "99")] +pub struct SL_V2X_PreconfigCommPool_r14StartRB_PSCCH_Pool_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SL_V2X_PreconfigCommPool_r14ZoneID_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "45")] +pub struct SL_V2X_PreconfigCommPool_r14ThreshS_RSSI_CBR_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SL_V2X_PreconfigFreqInfo_r14SyncPriority_r14(pub u8); +impl SL_V2X_PreconfigFreqInfo_r14SyncPriority_r14 { + pub const GNSS: u8 = 0u8; + pub const ENB: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1000")] +pub struct SL_V2X_PreconfigFreqInfo_r14OffsetDFN_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_ZoneConfig_r14ZoneLength_r14(pub u8); +impl SL_ZoneConfig_r14ZoneLength_r14 { + pub const M5: u8 = 0u8; + pub const M10: u8 = 1u8; + pub const M20: u8 = 2u8; + pub const M50: u8 = 3u8; + pub const M100: u8 = 4u8; + pub const M200: u8 = 5u8; + pub const M500: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SL_ZoneConfig_r14ZoneWidth_r14(pub u8); +impl SL_ZoneConfig_r14ZoneWidth_r14 { + pub const M5: u8 = 0u8; + pub const M10: u8 = 1u8; + pub const M20: u8 = 2u8; + pub const M50: u8 = 3u8; + pub const M100: u8 = 4u8; + pub const M200: u8 = 5u8; + pub const M500: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SL_ZoneConfig_r14ZoneIdLongiMod_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SL_ZoneConfig_r14ZoneIdLatiMod_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SON_Parameters_r9Rach_Report_r9(pub u8); +impl SON_Parameters_r9Rach_Report_r9 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPDCCH_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SPDCCH_Config_r15_setupSpdcch_L1_ReuseIndication_r15(pub u8); +impl SPDCCH_Config_r15_setupSpdcch_L1_ReuseIndication_r15 { + pub const N0: u8 = 0u8; + pub const N1: u8 = 1u8; + pub const N2: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SPDCCH_Config_r15_setup { + #[asn(optional_idx = 0)] + pub spdcch_l1_reuse_indication_r15: + Option, + #[asn(optional_idx = 1)] + pub spdcch_set_config_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPDCCH_Elements_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SPDCCH_Elements_r15_setupSpdcch_SetConfigId_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SPDCCH_Elements_r15_setupSpdcch_SetReferenceSig_r15(pub u8); +impl SPDCCH_Elements_r15_setupSpdcch_SetReferenceSig_r15 { + pub const CRS: u8 = 0u8; + pub const DMRS: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SPDCCH_Elements_r15_setupTransmissionType_r15(pub u8); +impl SPDCCH_Elements_r15_setupTransmissionType_r15 { + pub const LOCALISED: u8 = 0u8; + pub const DISTRIBUTED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct SPDCCH_Elements_r15_setupSpdcch_NoOfSymbols_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct SPDCCH_Elements_r15_setupDmrs_ScramblingSequenceInt_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPDCCH_Elements_r15_setupDci7_CandidatesPerAL_PDCCH_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SPDCCH_Elements_r15_setupDci7_CandidateSetsPerAL_SPDCCH_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "100")] +pub struct SPDCCH_Elements_r15_setupResourceBlockAssignment_r15NumberRB_InFreq_domain_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "98", sz_ub = "98")] +pub struct SPDCCH_Elements_r15_setupResourceBlockAssignment_r15ResourceBlockAssignment_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPDCCH_Elements_r15_setupResourceBlockAssignment_r15 { + pub number_rb_in_freq_domain_r15: + SPDCCH_Elements_r15_setupResourceBlockAssignment_r15NumberRB_InFreq_domain_r15, + pub resource_block_assignment_r15: + SPDCCH_Elements_r15_setupResourceBlockAssignment_r15ResourceBlockAssignment_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "5", sz_ub = "5")] +pub struct SPDCCH_Elements_r15_setupSubslotApplicability_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "49")] +pub struct SPDCCH_Elements_r15_setupAl_StartingPointSPDCCH_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPDCCH_Elements_r15_setupAl_StartingPointSPDCCH_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SPDCCH_Elements_r15_setupSubframeType_r15(pub u8); +impl SPDCCH_Elements_r15_setupSubframeType_r15 { + pub const MBSFN: u8 = 0u8; + pub const NONMBSFN: u8 = 1u8; + pub const ALL: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SPDCCH_Elements_r15_setupRateMatchingMode_r15(pub u8); +impl SPDCCH_Elements_r15_setupRateMatchingMode_r15 { + pub const M1: u8 = 0u8; + pub const M2: u8 = 1u8; + pub const M3: u8 = 2u8; + pub const M4: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 12)] +pub struct SPDCCH_Elements_r15_setup { + #[asn(optional_idx = 0)] + pub spdcch_set_config_id_r15: Option, + #[asn(optional_idx = 1)] + pub spdcch_set_reference_sig_r15: Option, + #[asn(optional_idx = 2)] + pub transmission_type_r15: Option, + #[asn(optional_idx = 3)] + pub spdcch_no_of_symbols_r15: Option, + #[asn(optional_idx = 4)] + pub dmrs_scrambling_sequence_int_r15: + Option, + #[asn(optional_idx = 5)] + pub dci7_candidates_per_al_pdcch_r15: + Option, + #[asn(optional_idx = 6)] + pub dci7_candidate_sets_per_al_spdcch_r15: + Option, + #[asn(optional_idx = 7)] + pub resource_block_assignment_r15: Option, + #[asn(optional_idx = 8)] + pub subslot_applicability_r15: Option, + #[asn(optional_idx = 9)] + pub al_starting_point_spdcch_r15: Option, + #[asn(optional_idx = 10)] + pub subframe_type_r15: Option, + #[asn(optional_idx = 11)] + pub rate_matching_mode_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigDL_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SPS_ConfigDL_setupSemiPersistSchedIntervalDL(pub u8); +impl SPS_ConfigDL_setupSemiPersistSchedIntervalDL { + pub const SF10: u8 = 0u8; + pub const SF20: u8 = 1u8; + pub const SF32: u8 = 2u8; + pub const SF40: u8 = 3u8; + pub const SF64: u8 = 4u8; + pub const SF80: u8 = 5u8; + pub const SF128: u8 = 6u8; + pub const SF160: u8 = 7u8; + pub const SF320: u8 = 8u8; + pub const SF640: u8 = 9u8; + pub const SPARE6: u8 = 10u8; + pub const SPARE5: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SPS_ConfigDL_setupNumberOfConfSPS_Processes(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SPS_ConfigDL_setup { + pub semi_persist_sched_interval_dl: SPS_ConfigDL_setupSemiPersistSchedIntervalDL, + pub number_of_conf_sps_processes: SPS_ConfigDL_setupNumberOfConfSPS_Processes, + pub n1pucch_an_persistent_list: N1PUCCH_AN_PersistentList, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigDL_STTI_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SPS_ConfigDL_STTI_r15_setupSemiPersistSchedIntervalDL_STTI_r15(pub u8); +impl SPS_ConfigDL_STTI_r15_setupSemiPersistSchedIntervalDL_STTI_r15 { + pub const S_TTI1: u8 = 0u8; + pub const S_TTI2: u8 = 1u8; + pub const S_TTI3: u8 = 2u8; + pub const S_TTI4: u8 = 3u8; + pub const S_TTI6: u8 = 4u8; + pub const S_TTI8: u8 = 5u8; + pub const S_TTI12: u8 = 6u8; + pub const S_TTI16: u8 = 7u8; + pub const S_TTI20: u8 = 8u8; + pub const S_TTI40: u8 = 9u8; + pub const S_TTI60: u8 = 10u8; + pub const S_TTI80: u8 = 11u8; + pub const S_TTI120: u8 = 12u8; + pub const S_TTI240: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "12")] +pub struct SPS_ConfigDL_STTI_r15_setupNumberOfConfSPS_Processes_STTI_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigDL_STTI_r15_setupTwoAntennaPortActivated_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPS_ConfigDL_STTI_r15_setupTwoAntennaPortActivated_r15_setup { + pub n1spucch_an_persistent_list_p1_r15: N1SPUCCH_AN_PersistentList_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigDL_STTI_r15_setupTwoAntennaPortActivated_r15 { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigDL_STTI_r15_setupTwoAntennaPortActivated_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigDL_STTI_r15_setupTwoAntennaPortActivated_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5")] +pub struct SPS_ConfigDL_STTI_r15_setupSTTI_StartTimeDL_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SPS_ConfigDL_STTI_r15_setup { + pub semi_persist_sched_interval_dl_stti_r15: + SPS_ConfigDL_STTI_r15_setupSemiPersistSchedIntervalDL_STTI_r15, + pub number_of_conf_sps_processes_stti_r15: + SPS_ConfigDL_STTI_r15_setupNumberOfConfSPS_Processes_STTI_r15, + #[asn(optional_idx = 0)] + pub two_antenna_port_activated_r15: + Option, + pub stti_start_time_dl_r15: SPS_ConfigDL_STTI_r15_setupSTTI_StartTimeDL_r15, + #[asn(optional_idx = 1)] + pub tpc_pdcch_config_pucch_sps_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SPS_ConfigSL_r14SemiPersistSchedIntervalSL_r14(pub u8); +impl SPS_ConfigSL_r14SemiPersistSchedIntervalSL_r14 { + pub const SF20: u8 = 0u8; + pub const SF50: u8 = 1u8; + pub const SF100: u8 = 2u8; + pub const SF200: u8 = 3u8; + pub const SF300: u8 = 4u8; + pub const SF400: u8 = 5u8; + pub const SF500: u8 = 6u8; + pub const SF600: u8 = 7u8; + pub const SF700: u8 = 8u8; + pub const SF800: u8 = 9u8; + pub const SF900: u8 = 10u8; + pub const SF1000: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigUL_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SPS_ConfigUL_setupSemiPersistSchedIntervalUL(pub u8); +impl SPS_ConfigUL_setupSemiPersistSchedIntervalUL { + pub const SF10: u8 = 0u8; + pub const SF20: u8 = 1u8; + pub const SF32: u8 = 2u8; + pub const SF40: u8 = 3u8; + pub const SF64: u8 = 4u8; + pub const SF80: u8 = 5u8; + pub const SF128: u8 = 6u8; + pub const SF160: u8 = 7u8; + pub const SF320: u8 = 8u8; + pub const SF640: u8 = 9u8; + pub const SF1_V1430: u8 = 10u8; + pub const SF2_V1430: u8 = 11u8; + pub const SF3_V1430: u8 = 12u8; + pub const SF4_V1430: u8 = 13u8; + pub const SF5_V1430: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SPS_ConfigUL_setupImplicitReleaseAfter(pub u8); +impl SPS_ConfigUL_setupImplicitReleaseAfter { + pub const E2: u8 = 0u8; + pub const E3: u8 = 1u8; + pub const E4: u8 = 2u8; + pub const E8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct SPS_ConfigUL_setupP0_PersistentP0_NominalPUSCH_Persistent(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct SPS_ConfigUL_setupP0_PersistentP0_UE_PUSCH_Persistent(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPS_ConfigUL_setupP0_Persistent { + pub p0_nominal_pusch_persistent: SPS_ConfigUL_setupP0_PersistentP0_NominalPUSCH_Persistent, + pub p0_ue_pusch_persistent: SPS_ConfigUL_setupP0_PersistentP0_UE_PUSCH_Persistent, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SPS_ConfigUL_setupTwoIntervalsConfig(pub u8); +impl SPS_ConfigUL_setupTwoIntervalsConfig { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 2)] +pub struct SPS_ConfigUL_setup { + pub semi_persist_sched_interval_ul: SPS_ConfigUL_setupSemiPersistSchedIntervalUL, + pub implicit_release_after: SPS_ConfigUL_setupImplicitReleaseAfter, + #[asn(optional_idx = 0)] + pub p0_persistent: Option, + #[asn(optional_idx = 1)] + pub two_intervals_config: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigUL_STTI_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SPS_ConfigUL_STTI_r15_setupSemiPersistSchedIntervalUL_STTI_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupSemiPersistSchedIntervalUL_STTI_r15 { + pub const S_TTI1: u8 = 0u8; + pub const S_TTI2: u8 = 1u8; + pub const S_TTI3: u8 = 2u8; + pub const S_TTI4: u8 = 3u8; + pub const S_TTI6: u8 = 4u8; + pub const S_TTI8: u8 = 5u8; + pub const S_TTI12: u8 = 6u8; + pub const S_TTI16: u8 = 7u8; + pub const S_TTI20: u8 = 8u8; + pub const S_TTI40: u8 = 9u8; + pub const S_TTI60: u8 = 10u8; + pub const S_TTI80: u8 = 11u8; + pub const S_TTI120: u8 = 12u8; + pub const S_TTI240: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SPS_ConfigUL_STTI_r15_setupImplicitReleaseAfter(pub u8); +impl SPS_ConfigUL_STTI_r15_setupImplicitReleaseAfter { + pub const E2: u8 = 0u8; + pub const E3: u8 = 1u8; + pub const E4: u8 = 2u8; + pub const E8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct SPS_ConfigUL_STTI_r15_setupP0_Persistent_r15P0_NominalSPUSCH_Persistent_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct SPS_ConfigUL_STTI_r15_setupP0_Persistent_r15P0_UE_SPUSCH_Persistent_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPS_ConfigUL_STTI_r15_setupP0_Persistent_r15 { + pub p0_nominal_spusch_persistent_r15: + SPS_ConfigUL_STTI_r15_setupP0_Persistent_r15P0_NominalSPUSCH_Persistent_r15, + pub p0_ue_spusch_persistent_r15: + SPS_ConfigUL_STTI_r15_setupP0_Persistent_r15P0_UE_SPUSCH_Persistent_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SPS_ConfigUL_STTI_r15_setupTwoIntervalsConfig_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupTwoIntervalsConfig_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setupP0_NominalSPUSCH_PersistentSubframeSet2_r15( + pub i8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setupP0_UE_SPUSCH_PersistentSubframeSet2_r15( + pub i8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setup { pub p0_nominal_spusch_persistent_subframe_set2_r15 : SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setupP0_NominalSPUSCH_PersistentSubframeSet2_r15 , pub p0_ue_spusch_persistent_subframe_set2_r15 : SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setupP0_UE_SPUSCH_PersistentSubframeSet2_r15 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15 { + #[asn(key = 0, extended = false)] + Release(SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_release), + #[asn(key = 1, extended = false)] + Setup(SPS_ConfigUL_STTI_r15_setupP0_PersistentSubframeSet2_r15_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "12")] +pub struct SPS_ConfigUL_STTI_r15_setupNumberOfConfUL_SPS_Processes_STTI_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "5")] +pub struct SPS_ConfigUL_STTI_r15_setupSTTI_StartTimeUL_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SPS_ConfigUL_STTI_r15_setupCyclicShiftSPS_sTTI_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupCyclicShiftSPS_sTTI_r15 { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SPS_ConfigUL_STTI_r15_setupIfdma_Config_SPS_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SPS_ConfigUL_STTI_r15_setupHarq_ProcID_offset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SPS_ConfigUL_STTI_r15_setupRv_SPS_STTI_UL_Repetitions_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupRv_SPS_STTI_UL_Repetitions_r15 { + pub const ULRVSEQ1: u8 = 0u8; + pub const ULRVSEQ2: u8 = 1u8; + pub const ULRVSEQ3: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SPS_ConfigUL_STTI_r15_setupTbs_scalingFactorSubslotSPS_UL_Repetitions_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupTbs_scalingFactorSubslotSPS_UL_Repetitions_r15 { + pub const N6: u8 = 0u8; + pub const N12: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SPS_ConfigUL_STTI_r15_setupTotalNumberPUSCH_SPS_STTI_UL_Repetitions_r15(pub u8); +impl SPS_ConfigUL_STTI_r15_setupTotalNumberPUSCH_SPS_STTI_UL_Repetitions_r15 { + pub const N2: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N6: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 12)] +pub struct SPS_ConfigUL_STTI_r15_setup { + pub semi_persist_sched_interval_ul_stti_r15: + SPS_ConfigUL_STTI_r15_setupSemiPersistSchedIntervalUL_STTI_r15, + pub implicit_release_after: SPS_ConfigUL_STTI_r15_setupImplicitReleaseAfter, + #[asn(optional_idx = 0)] + pub p0_persistent_r15: Option, + #[asn(optional_idx = 1)] + pub two_intervals_config_r15: Option, + #[asn(optional_idx = 2)] + pub p0_persistent_subframe_set2_r15: + Option, + #[asn(optional_idx = 3)] + pub number_of_conf_ul_sps_processes_stti_r15: + Option, + pub stti_start_time_ul_r15: SPS_ConfigUL_STTI_r15_setupSTTI_StartTimeUL_r15, + #[asn(optional_idx = 4)] + pub tpc_pdcch_config_pusch_sps_r15: Option, + #[asn(optional_idx = 5)] + pub cyclic_shift_sps_s_tti_r15: Option, + #[asn(optional_idx = 6)] + pub ifdma_config_sps_r15: Option, + #[asn(optional_idx = 7)] + pub harq_proc_id_offset_r15: Option, + #[asn(optional_idx = 8)] + pub rv_sps_stti_ul_repetitions_r15: + Option, + #[asn(optional_idx = 9)] + pub sps_config_index_r15: Option, + #[asn(optional_idx = 10)] + pub tbs_scaling_factor_subslot_sps_ul_repetitions_r15: + Option, + #[asn(optional_idx = 11)] + pub total_number_pusch_sps_stti_ul_repetitions_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct SPT_Parameters_r15FrameStructureType_SPT_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "32")] +pub struct SPT_Parameters_r15MaxNumberCCs_SPT_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPUCCH_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SPUCCH_Config_r15_setupTwoAntennaPortActivatedSPUCCH_Format1a1b_r15(pub u8); +impl SPUCCH_Config_r15_setupTwoAntennaPortActivatedSPUCCH_Format1a1b_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct SPUCCH_Config_r15_setupDummyN3SPUCCH_AN_List_r15_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPUCCH_Config_r15_setupDummyN3SPUCCH_AN_List_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPUCCH_Config_r15_setupDummy { + pub n3spucch_an_list_r15: SPUCCH_Config_r15_setupDummyN3SPUCCH_AN_List_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SPUCCH_Config_r15_setup { + #[asn(optional_idx = 0)] + pub spucch_set_r15: Option, + #[asn(optional_idx = 1)] + pub two_antenna_port_activated_spucch_format1a1b_r15: + Option, + pub dummy: SPUCCH_Config_r15_setupDummy, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPUCCH_Config_v1550_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550N3SPUCCH_AN_List_v1550_Entry( + pub u16, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550N3SPUCCH_AN_List_v1550 (pub Vec < SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550N3SPUCCH_AN_List_v1550_Entry >) ; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550 { + pub n3spucch_an_list_v1550: + SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550N3SPUCCH_AN_List_v1550, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SPUCCH_Config_v1550_setup { + pub two_antenna_port_activated_spucch_format3_v1550: + SPUCCH_Config_v1550_setupTwoAntennaPortActivatedSPUCCH_Format3_v1550, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SPUCCH_Elements_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1319")] +pub struct SPUCCH_Elements_r15_setupN1SubslotSPUCCH_AN_List_r15_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SPUCCH_Elements_r15_setupN1SubslotSPUCCH_AN_List_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1319")] +pub struct SPUCCH_Elements_r15_setupN1SlotSPUCCH_FH_AN_List_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3959")] +pub struct SPUCCH_Elements_r15_setupN1SlotSPUCCH_NoFH_AN_List_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549")] +pub struct SPUCCH_Elements_r15_setupN3SPUCCH_AN_List_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SPUCCH_Elements_r15_setupN4SPUCCHSlot_Resource_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SPUCCH_Elements_r15_setupN4SPUCCHSubslot_Resource_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SPUCCH_Elements_r15_setupN4maxCoderateSlotPUCCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SPUCCH_Elements_r15_setupN4maxCoderateSubslotPUCCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SPUCCH_Elements_r15_setupN4maxCoderateMultiResourceSlotPUCCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SPUCCH_Elements_r15_setupN4maxCoderateMultiResourceSubslotPUCCH_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 10)] +pub struct SPUCCH_Elements_r15_setup { + #[asn(optional_idx = 0)] + pub n1_subslot_spucch_an_list_r15: Option, + #[asn(optional_idx = 1)] + pub n1_slot_spucch_fh_an_list_r15: Option, + #[asn(optional_idx = 2)] + pub n1_slot_spucch_no_fh_an_list_r15: + Option, + #[asn(optional_idx = 3)] + pub n3spucch_an_list_r15: Option, + #[asn(optional_idx = 4)] + pub n4spucch_slot_resource_r15: Option, + #[asn(optional_idx = 5)] + pub n4spucch_subslot_resource_r15: + Option, + #[asn(optional_idx = 6)] + pub n4max_coderate_slot_pucch_r15: Option, + #[asn(optional_idx = 7)] + pub n4max_coderate_subslot_pucch_r15: + Option, + #[asn(optional_idx = 8)] + pub n4max_coderate_multi_resource_slot_pucch_r15: + Option, + #[asn(optional_idx = 9)] + pub n4max_coderate_multi_resource_subslot_pucch_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1319")] +pub struct SR_SubslotSPUCCH_ResourceList_r15_Entry(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct SRB_ToAddModSrb_Identity(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SRB_ToAddModRlc_Config_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SRB_ToAddModRlc_Config { + #[asn(key = 0, extended = false)] + ExplicitValue(RLC_Config), + #[asn(key = 1, extended = false)] + DefaultValue(SRB_ToAddModRlc_Config_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SRB_ToAddModLogicalChannelConfig_defaultValue; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SRB_ToAddModLogicalChannelConfig { + #[asn(key = 0, extended = false)] + ExplicitValue(LogicalChannelConfig), + #[asn(key = 1, extended = false)] + DefaultValue(SRB_ToAddModLogicalChannelConfig_defaultValue), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct SRB_ToReleaseList_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SRS_CC_SetIndex_r14Cc_SetIndex_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct SRS_CC_SetIndex_r14Cc_IndexInOneCC_Set_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SRS_CapabilityPerBandPair_r14RetuningInfoRf_RetuningTimeDL_r14(pub u8); +impl SRS_CapabilityPerBandPair_r14RetuningInfoRf_RetuningTimeDL_r14 { + pub const N0: u8 = 0u8; + pub const N0DOT5: u8 = 1u8; + pub const N1: u8 = 2u8; + pub const N1DOT5: u8 = 3u8; + pub const N2: u8 = 4u8; + pub const N2DOT5: u8 = 5u8; + pub const N3: u8 = 6u8; + pub const N3DOT5: u8 = 7u8; + pub const N4: u8 = 8u8; + pub const N4DOT5: u8 = 9u8; + pub const N5: u8 = 10u8; + pub const N5DOT5: u8 = 11u8; + pub const N6: u8 = 12u8; + pub const N6DOT5: u8 = 13u8; + pub const N7: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SRS_CapabilityPerBandPair_r14RetuningInfoRf_RetuningTimeUL_r14(pub u8); +impl SRS_CapabilityPerBandPair_r14RetuningInfoRf_RetuningTimeUL_r14 { + pub const N0: u8 = 0u8; + pub const N0DOT5: u8 = 1u8; + pub const N1: u8 = 2u8; + pub const N1DOT5: u8 = 3u8; + pub const N2: u8 = 4u8; + pub const N2DOT5: u8 = 5u8; + pub const N3: u8 = 6u8; + pub const N3DOT5: u8 = 7u8; + pub const N4: u8 = 8u8; + pub const N4DOT5: u8 = 9u8; + pub const N5: u8 = 10u8; + pub const N5DOT5: u8 = 11u8; + pub const N6: u8 = 12u8; + pub const N6DOT5: u8 = 13u8; + pub const N7: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SRS_CapabilityPerBandPair_r14RetuningInfo { + #[asn(optional_idx = 0)] + pub rf_retuning_time_dl_r14: + Option, + #[asn(optional_idx = 1)] + pub rf_retuning_time_ul_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SRS_CapabilityPerBandPair_v14b0Srs_FlexibleTiming_r14(pub u8); +impl SRS_CapabilityPerBandPair_v14b0Srs_FlexibleTiming_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SRS_CapabilityPerBandPair_v14b0Srs_HARQ_ReferenceConfig_r14(pub u8); +impl SRS_CapabilityPerBandPair_v14b0Srs_HARQ_ReferenceConfig_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SRS_CapabilityPerBandPair_v1610AddSRS_CarrierSwitching_r16(pub u8); +impl SRS_CapabilityPerBandPair_v1610AddSRS_CarrierSwitching_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "9")] +pub struct SRS_ConfigAdd_r16Srs_RepNumAdd_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_RepNumAdd_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N6: u8 = 4u8; + pub const N7: u8 = 5u8; + pub const N8: u8 = 6u8; + pub const N9: u8 = 7u8; + pub const N12: u8 = 8u8; + pub const N13: u8 = 9u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_ConfigAdd_r16Srs_BandwidthAdd_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_BandwidthAdd_r16 { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_ConfigAdd_r16Srs_HoppingBandwidthAdd_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_HoppingBandwidthAdd_r16 { + pub const HBW0: u8 = 0u8; + pub const HBW1: u8 = 1u8; + pub const HBW2: u8 = 2u8; + pub const HBW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "23")] +pub struct SRS_ConfigAdd_r16Srs_FreqDomainPosAdd_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "11")] +pub struct SRS_ConfigAdd_r16Srs_CyclicShiftAdd_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_CyclicShiftAdd_r16 { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; + pub const CS8: u8 = 8u8; + pub const CS9: u8 = 9u8; + pub const CS10: u8 = 10u8; + pub const CS11: u8 = 11u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SRS_ConfigAdd_r16Srs_TransmissionCombNumAdd_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_TransmissionCombNumAdd_r16 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SRS_ConfigAdd_r16Srs_TransmissionCombAdd_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "13")] +pub struct SRS_ConfigAdd_r16Srs_StartPosAdd_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "13")] +pub struct SRS_ConfigAdd_r16Srs_DurationAdd_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SRS_ConfigAdd_r16Srs_GuardSymbolAS_Add_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_GuardSymbolAS_Add_r16 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SRS_ConfigAdd_r16Srs_GuardSymbolFH_Add_r16(pub u8); +impl SRS_ConfigAdd_r16Srs_GuardSymbolFH_Add_r16 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_ConfigAp_r10Srs_BandwidthAp_r10(pub u8); +impl SRS_ConfigAp_r10Srs_BandwidthAp_r10 { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "23")] +pub struct SRS_ConfigAp_r10FreqDomainPositionAp_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1")] +pub struct SRS_ConfigAp_r10TransmissionCombAp_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SRS_ConfigAp_r10CyclicShiftAp_r10(pub u8); +impl SRS_ConfigAp_r10CyclicShiftAp_r10 { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_ConfigAp_r13Srs_BandwidthAp_r13(pub u8); +impl SRS_ConfigAp_r13Srs_BandwidthAp_r13 { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "23")] +pub struct SRS_ConfigAp_r13FreqDomainPositionAp_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SRS_ConfigAp_r13TransmissionCombAp_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "11")] +pub struct SRS_ConfigAp_r13CyclicShiftAp_r13(pub u8); +impl SRS_ConfigAp_r13CyclicShiftAp_r13 { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; + pub const CS8: u8 = 8u8; + pub const CS9: u8 = 9u8; + pub const CS10: u8 = 10u8; + pub const CS11: u8 = 11u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SRS_ConfigAp_r13TransmissionCombNum_r13(pub u8); +impl SRS_ConfigAp_r13TransmissionCombNum_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "3")] +pub struct SRS_ConfigAp_v1310TransmissionCombAp_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SRS_ConfigAp_v1310CyclicShiftAp_v1310(pub u8); +impl SRS_ConfigAp_v1310CyclicShiftAp_v1310 { + pub const CS8: u8 = 0u8; + pub const CS9: u8 = 1u8; + pub const CS10: u8 = 2u8; + pub const CS11: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SRS_ConfigAp_v1310TransmissionCombNum_r13(pub u8); +impl SRS_ConfigAp_v1310TransmissionCombNum_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SRS_TPC_PDCCH_Config_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SRS_TPC_PDCCH_Config_r14_setupSrs_TPC_RNTI_r14( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SRS_TPC_PDCCH_Config_r14_setupStartingBitOfFormat3B_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SRS_TPC_PDCCH_Config_r14_setupFieldTypeFormat3B_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SRS_TPC_PDCCH_Config_r14_setupSrs_CC_SetIndexlist_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SRS_TPC_PDCCH_Config_r14_setup { + pub srs_tpc_rnti_r14: SRS_TPC_PDCCH_Config_r14_setupSrs_TPC_RNTI_r14, + pub starting_bit_of_format3_b_r14: SRS_TPC_PDCCH_Config_r14_setupStartingBitOfFormat3B_r14, + pub field_type_format3_b_r14: SRS_TPC_PDCCH_Config_r14_setupFieldTypeFormat3B_r14, + #[asn(optional_idx = 0)] + pub srs_cc_set_indexlist_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "80")] +pub struct SS_RSSI_Measurement_r15MeasurementSlots_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SS_RSSI_Measurement_r15EndSymbol_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct SSB_ToMeasure_r15_shortBitmap_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct SSB_ToMeasure_r15_mediumBitmap_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "64", sz_ub = "64")] +pub struct SSB_ToMeasure_r15_longBitmap_r15(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15Dl_1024QAM_Slot_r15(pub u8); +impl STTI_SPT_BandParameters_r15Dl_1024QAM_Slot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15Dl_1024QAM_SubslotTA_1_r15(pub u8); +impl STTI_SPT_BandParameters_r15Dl_1024QAM_SubslotTA_1_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15Dl_1024QAM_SubslotTA_2_r15(pub u8); +impl STTI_SPT_BandParameters_r15Dl_1024QAM_SubslotTA_2_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15SimultaneousTx_differentTx_duration_r15(pub u8); +impl STTI_SPT_BandParameters_r15SimultaneousTx_differentTx_duration_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15STTI_FD_MIMO_Coexistence(pub u8); +impl STTI_SPT_BandParameters_r15STTI_FD_MIMO_Coexistence { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct STTI_SPT_BandParameters_r15STTI_SupportedCSI_Proc_r15(pub u8); +impl STTI_SPT_BandParameters_r15STTI_SupportedCSI_Proc_r15 { + pub const N1: u8 = 0u8; + pub const N3: u8 = 1u8; + pub const N4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15Ul_256QAM_Slot_r15(pub u8); +impl STTI_SPT_BandParameters_r15Ul_256QAM_Slot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct STTI_SPT_BandParameters_r15Ul_256QAM_Subslot_r15(pub u8); +impl STTI_SPT_BandParameters_r15Ul_256QAM_Subslot_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct STTI_SupportedCombinations_r15Combination_22_27_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct STTI_SupportedCombinations_r15Combination_77_22_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct STTI_SupportedCombinations_r15Combination_77_27_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct SatelliteInfo_r17SatelliteId_r17(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SatelliteInfo_r17ServiceInfo_r17 { + #[asn(optional_idx = 0)] + pub tle_ephemeris_parameters_r17: Option, + #[asn(optional_idx = 1)] + pub t_service_start_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-131072", ub = "131071")] +pub struct SatelliteInfo_r17FootprintInfo_r17ReferencePoint_r17Longitude_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-131072", ub = "131071")] +pub struct SatelliteInfo_r17FootprintInfo_r17ReferencePoint_r17Latitude_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SatelliteInfo_r17FootprintInfo_r17ReferencePoint_r17 { + pub longitude_r17: SatelliteInfo_r17FootprintInfo_r17ReferencePoint_r17Longitude_r17, + pub latitude_r17: SatelliteInfo_r17FootprintInfo_r17ReferencePoint_r17Latitude_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-14", ub = "14")] +pub struct SatelliteInfo_r17FootprintInfo_r17ElevationAngles_r17ElevationAngleRight_r17(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-14", ub = "14")] +pub struct SatelliteInfo_r17FootprintInfo_r17ElevationAngles_r17ElevationAngleLeft_r17(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SatelliteInfo_r17FootprintInfo_r17ElevationAngles_r17 { + pub elevation_angle_right_r17: + SatelliteInfo_r17FootprintInfo_r17ElevationAngles_r17ElevationAngleRight_r17, + #[asn(optional_idx = 0)] + pub elevation_angle_left_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "256")] +pub struct SatelliteInfo_r17FootprintInfo_r17Radius_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SatelliteInfo_r17FootprintInfo_r17 { + #[asn(optional_idx = 0)] + pub reference_point_r17: Option, + #[asn(optional_idx = 1)] + pub elevation_angles_r17: Option, + #[asn(optional_idx = 2)] + pub radius_r17: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct SchedulingInfo_BR_r13Si_Narrowband_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "9")] +pub struct SchedulingInfo_BR_r13Si_TBS_r13(pub u8); +impl SchedulingInfo_BR_r13Si_TBS_r13 { + pub const B152: u8 = 0u8; + pub const B208: u8 = 1u8; + pub const B256: u8 = 2u8; + pub const B328: u8 = 3u8; + pub const B408: u8 = 4u8; + pub const B504: u8 = 5u8; + pub const B600: u8 = 6u8; + pub const B712: u8 = 7u8; + pub const B808: u8 = 8u8; + pub const B936: u8 = 9u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SchedulingInfo_MBMS_r14Si_Periodicity_r14(pub u8); +impl SchedulingInfo_MBMS_r14Si_Periodicity_r14 { + pub const RF16: u8 = 0u8; + pub const RF32: u8 = 1u8; + pub const RF64: u8 = 2u8; + pub const RF128: u8 = 3u8; + pub const RF256: u8 = 4u8; + pub const RF512: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SchedulingRequestConfig_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SchedulingRequestConfig_setupSr_PUCCH_ResourceIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "157")] +pub struct SchedulingRequestConfig_setupSr_ConfigIndex(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SchedulingRequestConfig_setupDsr_TransMax(pub u8); +impl SchedulingRequestConfig_setupDsr_TransMax { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N32: u8 = 3u8; + pub const N64: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SchedulingRequestConfig_setup { + pub sr_pucch_resource_index: SchedulingRequestConfig_setupSr_PUCCH_ResourceIndex, + pub sr_config_index: SchedulingRequestConfig_setupSr_ConfigIndex, + pub dsr_trans_max: SchedulingRequestConfig_setupDsr_TransMax, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SchedulingRequestConfig_v1020Sr_PUCCH_ResourceIndexP1_r10(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SchedulingRequestConfig_v1530_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1319")] +pub struct SchedulingRequestConfig_v1530_setupSr_SlotSPUCCH_IndexFH_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3959")] +pub struct SchedulingRequestConfig_v1530_setupSr_SlotSPUCCH_IndexNoFH_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "36")] +pub struct SchedulingRequestConfig_v1530_setupSr_ConfigIndexSlot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "122")] +pub struct SchedulingRequestConfig_v1530_setupSr_ConfigIndexSubslot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SchedulingRequestConfig_v1530_setupDssr_TransMax_r15(pub u8); +impl SchedulingRequestConfig_v1530_setupDssr_TransMax_r15 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N32: u8 = 3u8; + pub const N64: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SchedulingRequestConfig_v1530_setup { + #[asn(optional_idx = 0)] + pub sr_slot_spucch_index_fh_r15: + Option, + #[asn(optional_idx = 1)] + pub sr_slot_spucch_index_no_fh_r15: + Option, + #[asn(optional_idx = 2)] + pub sr_subslot_spucch_resource_list_r15: Option, + #[asn(optional_idx = 3)] + pub sr_config_index_slot_r15: Option, + #[asn(optional_idx = 4)] + pub sr_config_index_subslot_r15: + Option, + pub dssr_trans_max_r15: SchedulingRequestConfig_v1530_setupDssr_TransMax_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SchedulingRequestConfigSCell_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SchedulingRequestConfigSCell_r13_setupSr_PUCCH_ResourceIndex_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2047")] +pub struct SchedulingRequestConfigSCell_r13_setupSr_PUCCH_ResourceIndexP1_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "157")] +pub struct SchedulingRequestConfigSCell_r13_setupSr_ConfigIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SchedulingRequestConfigSCell_r13_setupDsr_TransMax_r13(pub u8); +impl SchedulingRequestConfigSCell_r13_setupDsr_TransMax_r13 { + pub const N4: u8 = 0u8; + pub const N8: u8 = 1u8; + pub const N16: u8 = 2u8; + pub const N32: u8 = 3u8; + pub const N64: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SchedulingRequestConfigSCell_r13_setup { + pub sr_pucch_resource_index_r13: + SchedulingRequestConfigSCell_r13_setupSr_PUCCH_ResourceIndex_r13, + #[asn(optional_idx = 0)] + pub sr_pucch_resource_index_p1_r13: + Option, + pub sr_config_index_r13: SchedulingRequestConfigSCell_r13_setupSr_ConfigIndex_r13, + pub dsr_trans_max_r13: SchedulingRequestConfigSCell_r13_setupDsr_TransMax_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "7")] +pub struct SecurityAlgorithmConfigIntegrityProtAlgorithm(pub u8); +impl SecurityAlgorithmConfigIntegrityProtAlgorithm { + pub const EIA0_V920: u8 = 0u8; + pub const EIA1: u8 = 1u8; + pub const EIA2: u8 = 2u8; + pub const EIA3_V1130: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SecurityConfigHOHandoverType_intraLTEKeyChangeIndicator(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SecurityConfigHOHandoverType_intraLTE { + #[asn(optional_idx = 0)] + pub security_algorithm_config: Option, + pub key_change_indicator: SecurityConfigHOHandoverType_intraLTEKeyChangeIndicator, + pub next_hop_chaining_count: NextHopChainingCount, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct SecurityConfigHOHandoverType_interRATNas_SecurityParamToEUTRA(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityConfigHOHandoverType_interRAT { + pub security_algorithm_config: SecurityAlgorithmConfig, + pub nas_security_param_to_eutra: SecurityConfigHOHandoverType_interRATNas_SecurityParamToEUTRA, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SecurityConfigHOHandoverType { + #[asn(key = 0, extended = false)] + IntraLTE(SecurityConfigHOHandoverType_intraLTE), + #[asn(key = 1, extended = false)] + InterRAT(SecurityConfigHOHandoverType_interRAT), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SecurityConfigHO_v1530HandoverType_v1530_intra5GCKeyChangeIndicator_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SecurityConfigHO_v1530HandoverType_v1530_intra5GCNas_Container_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SecurityConfigHO_v1530HandoverType_v1530_intra5GC { + #[asn(optional_idx = 0)] + pub security_algorithm_config_r15: Option, + pub key_change_indicator_r15: + SecurityConfigHO_v1530HandoverType_v1530_intra5GCKeyChangeIndicator_r15, + pub next_hop_chaining_count_r15: NextHopChainingCount, + #[asn(optional_idx = 1)] + pub nas_container_r15: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityConfigHO_v1530HandoverType_v1530_fivegc_ToEPC { + pub security_algorithm_config_r15: SecurityAlgorithmConfig, + pub next_hop_chaining_count_r15: NextHopChainingCount, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SecurityConfigHO_v1530HandoverType_v1530_epc_To5GCNas_Container_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityConfigHO_v1530HandoverType_v1530_epc_To5GC { + pub security_algorithm_config_r15: SecurityAlgorithmConfig, + pub nas_container_r15: SecurityConfigHO_v1530HandoverType_v1530_epc_To5GCNas_Container_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum SecurityConfigHO_v1530HandoverType_v1530 { + #[asn(key = 0, extended = false)] + Intra5GC(SecurityConfigHO_v1530HandoverType_v1530_intra5GC), + #[asn(key = 1, extended = false)] + Fivegc_ToEPC(SecurityConfigHO_v1530HandoverType_v1530_fivegc_ToEPC), + #[asn(key = 2, extended = false)] + Epc_To5GC(SecurityConfigHO_v1530HandoverType_v1530_epc_To5GC), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SecurityModeCommandCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SecurityModeCommandCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SecurityModeCommandCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum SecurityModeCommandCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + SecurityModeCommand_r8(SecurityModeCommand_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(SecurityModeCommandCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(SecurityModeCommandCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(SecurityModeCommandCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeCommandCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SecurityModeCommandCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SecurityModeCommandCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SecurityModeCommandCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SecurityModeCommand_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeCommand_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeCompleteCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SecurityModeCompleteCriticalExtensions { + #[asn(key = 0, extended = false)] + SecurityModeComplete_r8(SecurityModeComplete_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SecurityModeCompleteCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SecurityModeComplete_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeComplete_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeFailureCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SecurityModeFailureCriticalExtensions { + #[asn(key = 0, extended = false)] + SecurityModeFailure_r8(SecurityModeFailure_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SecurityModeFailureCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SecurityModeFailure_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SecurityModeFailure_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2000")] +pub struct SensingResult_r15ResourceIndex_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ServingSatelliteInfo_r17EphemerisInfo_r17 { + #[asn(key = 0, extended = false)] + StateVectors(EphemerisStateVectors_r17), + #[asn(key = 1, extended = false)] + OrbitalParameters(EphemerisOrbitalParameters_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "8316827")] +pub struct ServingSatelliteInfo_r17Nta_CommonParameters_17Nta_Common_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-261935", ub = "261935")] +pub struct ServingSatelliteInfo_r17Nta_CommonParameters_17Nta_CommonDrift_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "29479")] +pub struct ServingSatelliteInfo_r17Nta_CommonParameters_17Nta_CommonDriftVariation_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct ServingSatelliteInfo_r17Nta_CommonParameters_17 { + #[asn(optional_idx = 0)] + pub nta_common_r17: Option, + #[asn(optional_idx = 1)] + pub nta_common_drift_r17: + Option, + #[asn(optional_idx = 2)] + pub nta_common_drift_variation_r17: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct ServingSatelliteInfo_r17Ul_SyncValidityDuration_r17(pub u8); +impl ServingSatelliteInfo_r17Ul_SyncValidityDuration_r17 { + pub const S5: u8 = 0u8; + pub const S10: u8 = 1u8; + pub const S15: u8 = 2u8; + pub const S20: u8 = 3u8; + pub const S25: u8 = 4u8; + pub const S30: u8 = 5u8; + pub const S35: u8 = 6u8; + pub const S40: u8 = 7u8; + pub const S45: u8 = 8u8; + pub const S50: u8 = 9u8; + pub const S55: u8 = 10u8; + pub const S60: u8 = 11u8; + pub const S120: u8 = 12u8; + pub const S180: u8 = 13u8; + pub const S240: u8 = 14u8; + pub const S900: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct ServingSatelliteInfo_r17EpochTime_r17StartSFN_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct ServingSatelliteInfo_r17EpochTime_r17StartSubFrame_r17(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ServingSatelliteInfo_r17EpochTime_r17 { + pub start_sfn_r17: ServingSatelliteInfo_r17EpochTime_r17StartSFN_r17, + pub start_sub_frame_r17: ServingSatelliteInfo_r17EpochTime_r17StartSubFrame_r17, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct ServingSatelliteInfo_r17K_Offset_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "512")] +pub struct ServingSatelliteInfo_r17K_Mac_r17(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SharedSpectrumMeasNR_r17Nr_RSSI_ChannelOccupancyReporting_r17(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SidelinkUEInformation_r12CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SidelinkUEInformation_r12CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SidelinkUEInformation_r12CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum SidelinkUEInformation_r12CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + SidelinkUEInformation_r12(SidelinkUEInformation_r12_IEs), + #[asn(key = 1, extended = false)] + Spare3(SidelinkUEInformation_r12CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(SidelinkUEInformation_r12CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(SidelinkUEInformation_r12CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SidelinkUEInformation_r12CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SidelinkUEInformation_r12CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(SidelinkUEInformation_r12CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(SidelinkUEInformation_r12CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SidelinkUEInformation_r12_IEsDiscRxInterest_r12(pub u8); +impl SidelinkUEInformation_r12_IEsDiscRxInterest_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "63")] +pub struct SidelinkUEInformation_r12_IEsDiscTxResourceReq_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SidelinkUEInformation_r12_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SidelinkUEInformation_v1310_IEsCommTxResourceInfoReqRelay_r13Ue_Type_r13(pub u8); +impl SidelinkUEInformation_v1310_IEsCommTxResourceInfoReqRelay_r13Ue_Type_r13 { + pub const RELAY_UE: u8 = 0u8; + pub const REMOTE_UE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SidelinkUEInformation_v1310_IEsCommTxResourceInfoReqRelay_r13 { + #[asn(optional_idx = 0)] + pub comm_tx_resource_req_relay_r13: Option, + #[asn(optional_idx = 1)] + pub comm_tx_resource_req_relay_uc_r13: Option, + pub ue_type_r13: SidelinkUEInformation_v1310_IEsCommTxResourceInfoReqRelay_r13Ue_Type_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SidelinkUEInformation_v1310_IEsDiscTxResourceReq_v1310CarrierFreqDiscTx_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SidelinkUEInformation_v1310_IEsDiscTxResourceReq_v1310 { + #[asn(optional_idx = 0)] + pub carrier_freq_disc_tx_r13: + Option, + #[asn(optional_idx = 1)] + pub disc_tx_resource_req_add_freq_r13: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SidelinkUEInformation_v1430_IEsP2x_CommTxType_r14(pub u8); +impl SidelinkUEInformation_v1430_IEsP2x_CommTxType_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SidelinkUEInformation_v1530_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SkipSubframeProcessing_r15SkipProcessingDL_Slot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SkipSubframeProcessing_r15SkipProcessingDL_SubSlot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SkipSubframeProcessing_r15SkipProcessingUL_Slot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SkipSubframeProcessing_r15SkipProcessingUL_SubSlot_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SlotOrSubslotPDSCH_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupAltCQI_TableSTTI_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupAltCQI_TableSTTI_r15 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupAltCQI_Table1024QAM_STTI_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupAltCQI_Table1024QAM_STTI_r15 { + pub const ALL_SUBFRAMES: u8 = 0u8; + pub const CSI_SUBFRAME_SET1: u8 = 1u8; + pub const CSI_SUBFRAME_SET2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupResourceAllocation_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupResourceAllocation_r15 { + pub const RESOURCE_ALLOCATION_TYPE0: u8 = 0u8; + pub const RESOURCE_ALLOCATION_TYPE2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt_STTI_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt_STTI_r15 { + pub const A33: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt2_STTI_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt2_STTI_r15 { + pub const B33: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt3_STTI_r15(pub u8); +impl SlotOrSubslotPDSCH_Config_r15_setupTbsIndexAlt3_STTI_r15 { + pub const A37: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 6)] +pub struct SlotOrSubslotPDSCH_Config_r15_setup { + #[asn(optional_idx = 0)] + pub alt_cqi_table_stti_r15: Option, + #[asn(optional_idx = 1)] + pub alt_cqi_table1024_qam_stti_r15: + Option, + #[asn(optional_idx = 2)] + pub resource_allocation_r15: Option, + #[asn(optional_idx = 3)] + pub tbs_index_alt_stti_r15: Option, + #[asn(optional_idx = 4)] + pub tbs_index_alt2_stti_r15: Option, + #[asn(optional_idx = 5)] + pub tbs_index_alt3_stti_r15: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SlotOrSubslotPUSCH_Config_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSlot_ACK_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffset2Slot_ACK_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSubslot_ACK_Index_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSubslot_ACK_Index_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffset2Subslot_ACK_Index_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffset2Subslot_ACK_Index_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSlot_RI_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSubslot_RI_Index_r15_Entry(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "2")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSubslot_RI_Index_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSlot_CQI_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupBetaOffsetSubslot_CQI_Index_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupResourceAllocationOffset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SlotOrSubslotPUSCH_Config_r15_setupUl_DMRS_IFDMA_SlotOrSubslot_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true, optional_fields = 10)] +pub struct SlotOrSubslotPUSCH_Config_r15_setup { + #[asn(optional_idx = 0)] + pub beta_offset_slot_ack_index_r15: + Option, + #[asn(optional_idx = 1)] + pub beta_offset2_slot_ack_index_r15: + Option, + #[asn(optional_idx = 2)] + pub beta_offset_subslot_ack_index_r15: + Option, + #[asn(optional_idx = 3)] + pub beta_offset2_subslot_ack_index_r15: + Option, + #[asn(optional_idx = 4)] + pub beta_offset_slot_ri_index_r15: + Option, + #[asn(optional_idx = 5)] + pub beta_offset_subslot_ri_index_r15: + Option, + #[asn(optional_idx = 6)] + pub beta_offset_slot_cqi_index_r15: + Option, + #[asn(optional_idx = 7)] + pub beta_offset_subslot_cqi_index_r15: + Option, + #[asn(optional_idx = 8)] + pub enable256_qam_slot_or_subslot_r15: Option, + #[asn(optional_idx = 9)] + pub resource_allocation_offset_r15: + Option, + pub ul_dmrs_ifdma_slot_or_subslot_r15: + SlotOrSubslotPUSCH_Config_r15_setupUl_DMRS_IFDMA_SlotOrSubslot_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SoundingRS_AperiodicSet_r14Srs_CC_SetIndexList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "4")] +pub struct SoundingRS_AperiodicSetUpPTsExt_r14Srs_CC_SetIndexList_r14(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigCommon_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SoundingRS_UL_ConfigCommon_setupSrs_BandwidthConfig(pub u8); +impl SoundingRS_UL_ConfigCommon_setupSrs_BandwidthConfig { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; + pub const BW4: u8 = 4u8; + pub const BW5: u8 = 5u8; + pub const BW6: u8 = 6u8; + pub const BW7: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SoundingRS_UL_ConfigCommon_setupSrs_SubframeConfig(pub u8); +impl SoundingRS_UL_ConfigCommon_setupSrs_SubframeConfig { + pub const SC0: u8 = 0u8; + pub const SC1: u8 = 1u8; + pub const SC2: u8 = 2u8; + pub const SC3: u8 = 3u8; + pub const SC4: u8 = 4u8; + pub const SC5: u8 = 5u8; + pub const SC6: u8 = 6u8; + pub const SC7: u8 = 7u8; + pub const SC8: u8 = 8u8; + pub const SC9: u8 = 9u8; + pub const SC10: u8 = 10u8; + pub const SC11: u8 = 11u8; + pub const SC12: u8 = 12u8; + pub const SC13: u8 = 13u8; + pub const SC14: u8 = 14u8; + pub const SC15: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SoundingRS_UL_ConfigCommon_setupAckNackSRS_SimultaneousTransmission(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SoundingRS_UL_ConfigCommon_setupSrs_MaxUpPts(pub u8); +impl SoundingRS_UL_ConfigCommon_setupSrs_MaxUpPts { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SoundingRS_UL_ConfigCommon_setup { + pub srs_bandwidth_config: SoundingRS_UL_ConfigCommon_setupSrs_BandwidthConfig, + pub srs_subframe_config: SoundingRS_UL_ConfigCommon_setupSrs_SubframeConfig, + pub ack_nack_srs_simultaneous_transmission: + SoundingRS_UL_ConfigCommon_setupAckNackSRS_SimultaneousTransmission, + #[asn(optional_idx = 0)] + pub srs_max_up_pts: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicated_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicated_setupSrs_Bandwidth(pub u8); +impl SoundingRS_UL_ConfigDedicated_setupSrs_Bandwidth { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicated_setupSrs_HoppingBandwidth(pub u8); +impl SoundingRS_UL_ConfigDedicated_setupSrs_HoppingBandwidth { + pub const HBW0: u8 = 0u8; + pub const HBW1: u8 = 1u8; + pub const HBW2: u8 = 2u8; + pub const HBW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "23")] +pub struct SoundingRS_UL_ConfigDedicated_setupFreqDomainPosition(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SoundingRS_UL_ConfigDedicated_setupDuration(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct SoundingRS_UL_ConfigDedicated_setupSrs_ConfigIndex(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1")] +pub struct SoundingRS_UL_ConfigDedicated_setupTransmissionComb(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SoundingRS_UL_ConfigDedicated_setupCyclicShift(pub u8); +impl SoundingRS_UL_ConfigDedicated_setupCyclicShift { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_UL_ConfigDedicated_setup { + pub srs_bandwidth: SoundingRS_UL_ConfigDedicated_setupSrs_Bandwidth, + pub srs_hopping_bandwidth: SoundingRS_UL_ConfigDedicated_setupSrs_HoppingBandwidth, + pub freq_domain_position: SoundingRS_UL_ConfigDedicated_setupFreqDomainPosition, + pub duration: SoundingRS_UL_ConfigDedicated_setupDuration, + pub srs_config_index: SoundingRS_UL_ConfigDedicated_setupSrs_ConfigIndex, + pub transmission_comb: SoundingRS_UL_ConfigDedicated_setupTransmissionComb, + pub cyclic_shift: SoundingRS_UL_ConfigDedicated_setupCyclicShift, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicated_v1310_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicated_v1310_setupTransmissionComb_v1310(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicated_v1310_setupCyclicShift_v1310(pub u8); +impl SoundingRS_UL_ConfigDedicated_v1310_setupCyclicShift_v1310 { + pub const CS8: u8 = 0u8; + pub const CS9: u8 = 1u8; + pub const CS10: u8 = 2u8; + pub const CS11: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SoundingRS_UL_ConfigDedicated_v1310_setupTransmissionCombNum_r13(pub u8); +impl SoundingRS_UL_ConfigDedicated_v1310_setupTransmissionCombNum_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SoundingRS_UL_ConfigDedicated_v1310_setup { + #[asn(optional_idx = 0)] + pub transmission_comb_v1310: + Option, + #[asn(optional_idx = 1)] + pub cyclic_shift_v1310: Option, + #[asn(optional_idx = 2)] + pub transmission_comb_num_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ConfigIndexAp_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ConfigApDCI_Format4_r16( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ActivateAp_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ActivateAp_r13_setup { + pub srs_config_ap_dci_format0_r16: SRS_ConfigAdd_r16, + pub srs_config_ap_dci_format1a2b2c_r16: SRS_ConfigAdd_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ActivateAp_r13 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ActivateAp_r13_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAdd_r16Srs_ActivateAp_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ConfigIndexAp_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ConfigApDCI_Format4_r10( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ActivateAp_r10_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = true)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ActivateAp_r10_setup { + pub srs_config_ap_dci_format0_r10: SRS_ConfigAp_r10, + pub srs_config_ap_dci_format1a2b2c_r10: SRS_ConfigAp_r10, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ActivateAp_r10 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ActivateAp_r10_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ActivateAp_r10_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_r10_setup { + pub srs_config_index_ap_r10: + SoundingRS_UL_ConfigDedicatedAperiodic_r10_setupSrs_ConfigIndexAp_r10, + #[asn(optional_idx = 0)] + pub srs_config_ap_dci_format4_r10: + Option, + #[asn(optional_idx = 1)] + pub srs_activate_ap_r10: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1310_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ConfigApDCI_Format4_v1310( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ActivateAp_v1310_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ActivateAp_v1310_setup { + #[asn(optional_idx = 0)] + pub srs_config_ap_dci_format0_v1310: Option, + #[asn(optional_idx = 1)] + pub srs_config_ap_dci_format1a2b2c_v1310: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ActivateAp_v1310 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ActivateAp_v1310_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setupSrs_ActivateAp_v1310_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1310_setup { + #[asn(optional_idx = 0)] + pub srs_config_ap_dci_format4_v1310: + Option, + #[asn(optional_idx = 1)] + pub srs_activate_ap_v1310: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1430_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1430_setupSrs_SubframeIndication_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodic_v1430_setup { + #[asn(optional_idx = 0)] + pub srs_subframe_indication_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_UpPtsAdd_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_UpPtsAdd_r13 { + pub const SYM2: u8 = 0u8; + pub const SYM4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ConfigIndexAp_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ConfigApDCI_Format4_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ActivateAp_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ActivateAp_r13_setup { + pub srs_config_ap_dci_format0_r13: SRS_ConfigAp_r13, + pub srs_config_ap_dci_format1a2b2c_r13: SRS_ConfigAp_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ActivateAp_r13 { + #[asn(key = 0, extended = false)] + Release(SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ActivateAp_r13_release), + #[asn(key = 1, extended = false)] + Setup(SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ActivateAp_r13_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup { + pub srs_up_pts_add_r13: + SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_UpPtsAdd_r13, + pub srs_config_index_ap_r13: + SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setupSrs_ConfigIndexAp_r13, + #[asn(optional_idx = 0)] + pub srs_config_ap_dci_format4_r13: + Option, + #[asn(optional_idx = 1)] + pub srs_activate_ap_r13: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_UpPtsAdd_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_UpPtsAdd_r13 { + pub const SYM2: u8 = 0u8; + pub const SYM4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_Bandwidth_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_Bandwidth_r13 { + pub const BW0: u8 = 0u8; + pub const BW1: u8 = 1u8; + pub const BW2: u8 = 2u8; + pub const BW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_HoppingBandwidth_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_HoppingBandwidth_r13 { + pub const HBW0: u8 = 0u8; + pub const HBW1: u8 = 1u8; + pub const HBW2: u8 = 2u8; + pub const HBW3: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "23")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupFreqDomainPosition_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupDuration_r13(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_ConfigIndex_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "3")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupTransmissionComb_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "11")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupCyclicShift_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupCyclicShift_r13 { + pub const CS0: u8 = 0u8; + pub const CS1: u8 = 1u8; + pub const CS2: u8 = 2u8; + pub const CS3: u8 = 3u8; + pub const CS4: u8 = 4u8; + pub const CS5: u8 = 5u8; + pub const CS6: u8 = 6u8; + pub const CS7: u8 = 7u8; + pub const CS8: u8 = 8u8; + pub const CS9: u8 = 9u8; + pub const CS10: u8 = 10u8; + pub const CS11: u8 = 11u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupTransmissionCombNum_r13(pub u8); +impl SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupTransmissionCombNum_r13 { + pub const N2: u8 = 0u8; + pub const N4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setup { + pub srs_up_pts_add_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_UpPtsAdd_r13, + pub srs_bandwidth_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_Bandwidth_r13, + pub srs_hopping_bandwidth_r13: + SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_HoppingBandwidth_r13, + pub freq_domain_position_r13: + SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupFreqDomainPosition_r13, + pub duration_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupDuration_r13, + pub srs_config_index_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupSrs_ConfigIndex_r13, + pub transmission_comb_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupTransmissionComb_r13, + pub cyclic_shift_r13: SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupCyclicShift_r13, + pub srs_antenna_port_r13: SRS_AntennaPort, + pub transmission_comb_num_r13: + SoundingRS_UL_ConfigDedicatedUpPTsExt_r13_setupTransmissionCombNum_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "503")] +pub struct SoundingRS_VirtualCellID_r16Srs_VirtualCellID_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SoundingRS_VirtualCellID_r16Srs_VirtualCellID_AllSRS_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SpeedStateScaleFactorsSf_Medium(pub u8); +impl SpeedStateScaleFactorsSf_Medium { + pub const O_DOT25: u8 = 0u8; + pub const O_DOT5: u8 = 1u8; + pub const O_DOT75: u8 = 2u8; + pub const L_DOT0: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SpeedStateScaleFactorsSf_High(pub u8); +impl SpeedStateScaleFactorsSf_High { + pub const O_DOT25: u8 = 0u8; + pub const O_DOT5: u8 = 1u8; + pub const O_DOT75: u8 = 2u8; + pub const L_DOT0: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "4", sz_ub = "4")] +pub struct SubframeBitmapSL_r12_bs4_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "8", sz_ub = "8")] +pub struct SubframeBitmapSL_r12_bs8_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "12", sz_ub = "12")] +pub struct SubframeBitmapSL_r12_bs12_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SubframeBitmapSL_r12_bs16_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "30", sz_ub = "30")] +pub struct SubframeBitmapSL_r12_bs30_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct SubframeBitmapSL_r12_bs40_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "42", sz_ub = "42")] +pub struct SubframeBitmapSL_r12_bs42_r12(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct SubframeBitmapSL_r14_bs10_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SubframeBitmapSL_r14_bs16_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "20", sz_ub = "20")] +pub struct SubframeBitmapSL_r14_bs20_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "30", sz_ub = "30")] +pub struct SubframeBitmapSL_r14_bs30_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct SubframeBitmapSL_r14_bs40_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "50", sz_ub = "50")] +pub struct SubframeBitmapSL_r14_bs50_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "60", sz_ub = "60")] +pub struct SubframeBitmapSL_r14_bs60_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "BITSTRING", + sz_extensible = false, + sz_lb = "100", + sz_ub = "100" +)] +pub struct SubframeBitmapSL_r14_bs100_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SupportedBandEUTRAHalfDuplex(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedBandEUTRA_v1250Dl_256QAM_r12(pub u8); +impl SupportedBandEUTRA_v1250Dl_256QAM_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedBandEUTRA_v1250Ul_64QAM_r12(pub u8); +impl SupportedBandEUTRA_v1250Ul_64QAM_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedBandEUTRA_v1310Ue_PowerClass_5_r13(pub u8); +impl SupportedBandEUTRA_v1310Ue_PowerClass_5_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedBandEUTRA_v1320IntraFreq_CE_NeedForGaps_r13(pub u8); +impl SupportedBandEUTRA_v1320IntraFreq_CE_NeedForGaps_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "2")] +pub struct SupportedBandEUTRA_v1320Ue_PowerClass_N_r13(pub u8); +impl SupportedBandEUTRA_v1320Ue_PowerClass_N_r13 { + pub const CLASS1: u8 = 0u8; + pub const CLASS2: u8 = 1u8; + pub const CLASS4: u8 = 2u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedBandInfo_r12Support_r12(pub u8); +impl SupportedBandInfo_r12Support_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SupportedOperatorDic_r15VersionOfDictionary_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SupportedUDC_r15SupportedStandardDic_r15(pub u8); +impl SupportedUDC_r15SupportedStandardDic_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "23" +)] +pub struct SystemInfoListGERAN_Entry(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationCriticalExtensions_criticalExtensionsFuture_r15_criticalExtensionsFuture +{} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationCriticalExtensions_criticalExtensionsFuture_r15 { + #[asn(key = 0, extended = false)] + PosSystemInformation_r15(PosSystemInformation_r15_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + SystemInformationCriticalExtensions_criticalExtensionsFuture_r15_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + SystemInformation_r8(SystemInformation_r8_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture_r15(SystemInformationCriticalExtensions_criticalExtensionsFuture_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "9", extensible = true)] +pub enum SystemInformation_r8_IEsSib_TypeAndInfo_Entry { + #[asn(key = 0, extended = false)] + Sib2(SystemInformationBlockType2), + #[asn(key = 1, extended = false)] + Sib3(SystemInformationBlockType3), + #[asn(key = 2, extended = false)] + Sib4(SystemInformationBlockType4), + #[asn(key = 3, extended = false)] + Sib5(SystemInformationBlockType5), + #[asn(key = 4, extended = false)] + Sib6(SystemInformationBlockType6), + #[asn(key = 5, extended = false)] + Sib7(SystemInformationBlockType7), + #[asn(key = 6, extended = false)] + Sib8(SystemInformationBlockType8), + #[asn(key = 7, extended = false)] + Sib9(SystemInformationBlockType9), + #[asn(key = 8, extended = false)] + Sib10(SystemInformationBlockType10), + #[asn(key = 9, extended = false)] + Sib11(SystemInformationBlockType11), + #[asn(key = 0, extended = true)] + Sib12_v920(SystemInformationBlockType12_r9), + #[asn(key = 1, extended = true)] + Sib13_v920(SystemInformationBlockType13_r9), + #[asn(key = 2, extended = true)] + Sib14_v1130(SystemInformationBlockType14_r11), + #[asn(key = 3, extended = true)] + Sib15_v1130(SystemInformationBlockType15_r11), + #[asn(key = 4, extended = true)] + Sib16_v1130(SystemInformationBlockType16_r11), + #[asn(key = 5, extended = true)] + Sib17_v1250(SystemInformationBlockType17_r12), + #[asn(key = 6, extended = true)] + Sib18_v1250(SystemInformationBlockType18_r12), + #[asn(key = 7, extended = true)] + Sib19_v1250(SystemInformationBlockType19_r12), + #[asn(key = 8, extended = true)] + Sib20_v1310(SystemInformationBlockType20_r13), + #[asn(key = 9, extended = true)] + Sib21_v1430(SystemInformationBlockType21_r14), + #[asn(key = 10, extended = true)] + Sib24_v1530(SystemInformationBlockType24_r15), + #[asn(key = 11, extended = true)] + Sib25_v1530(SystemInformationBlockType25_r15), + #[asn(key = 12, extended = true)] + Sib26_v1530(SystemInformationBlockType26_r15), + #[asn(key = 13, extended = true)] + Sib26a_v1610(SystemInformationBlockType26a_r16), + #[asn(key = 14, extended = true)] + Sib27_v1610(SystemInformationBlockType27_r16), + #[asn(key = 15, extended = true)] + Sib28_v1610(SystemInformationBlockType28_r16), + #[asn(key = 16, extended = true)] + Sib29_v1610(SystemInformationBlockType29_r16), + #[asn(key = 17, extended = true)] + Sib30_v1700(SystemInformationBlockType30_r17), + #[asn(key = 18, extended = true)] + Sib31_v1700(SystemInformationBlockType31_r17), + #[asn(key = 19, extended = true)] + Sib32_v1700(SystemInformationBlockType32_r17), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "32")] +pub struct SystemInformation_r8_IEsSib_TypeAndInfo( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformation_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformation_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockPos_r15AssistanceDataSIB_Element_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockPos_r15LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1CellAccessRelatedInfoCellBarred(pub u8); +impl SystemInformationBlockType1CellAccessRelatedInfoCellBarred { + pub const BARRED: u8 = 0u8; + pub const NOT_BARRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1CellAccessRelatedInfoIntraFreqReselection(pub u8); +impl SystemInformationBlockType1CellAccessRelatedInfoIntraFreqReselection { + pub const ALLOWED: u8 = 0u8; + pub const NOT_ALLOWED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SystemInformationBlockType1CellAccessRelatedInfoCsg_Indication(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType1CellAccessRelatedInfo { + pub plmn_identity_list: PLMN_IdentityList, + pub tracking_area_code: TrackingAreaCode, + pub cell_identity: CellIdentity, + pub cell_barred: SystemInformationBlockType1CellAccessRelatedInfoCellBarred, + pub intra_freq_reselection: + SystemInformationBlockType1CellAccessRelatedInfoIntraFreqReselection, + pub csg_indication: SystemInformationBlockType1CellAccessRelatedInfoCsg_Indication, + #[asn(optional_idx = 0)] + pub csg_identity: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "8")] +pub struct SystemInformationBlockType1CellSelectionInfoQ_RxLevMinOffset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType1CellSelectionInfo { + pub q_rx_lev_min: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub q_rx_lev_min_offset: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct SystemInformationBlockType1Si_WindowLength(pub u8); +impl SystemInformationBlockType1Si_WindowLength { + pub const MS1: u8 = 0u8; + pub const MS2: u8 = 1u8; + pub const MS5: u8 = 2u8; + pub const MS10: u8 = 3u8; + pub const MS15: u8 = 4u8; + pub const MS20: u8 = 5u8; + pub const MS40: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SystemInformationBlockType1SystemInfoValueTag(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_MBMS_r14CellAccessRelatedInfo_r14 { + pub plmn_identity_list_r14: PLMN_IdentityList_MBMS_r14, + pub tracking_area_code_r14: TrackingAreaCode, + pub cell_identity_r14: CellIdentity, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SystemInformationBlockType1_MBMS_r14Si_WindowLength_r14(pub u8); +impl SystemInformationBlockType1_MBMS_r14Si_WindowLength_r14 { + pub const MS1: u8 = 0u8; + pub const MS2: u8 = 1u8; + pub const MS5: u8 = 2u8; + pub const MS10: u8 = 3u8; + pub const MS15: u8 = 4u8; + pub const MS20: u8 = 5u8; + pub const MS40: u8 = 6u8; + pub const MS80: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct SystemInformationBlockType1_MBMS_r14SystemInfoValueTag_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct SystemInformationBlockType1_MBMS_r14CellAccessRelatedInfoList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_MBMS_r14NonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType1_v10x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1250_IEsCellAccessRelatedInfo_v1250Category0Allowed_r12( + pub u8, +); +impl SystemInformationBlockType1_v1250_IEsCellAccessRelatedInfo_v1250Category0Allowed_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType1_v1250_IEsCellAccessRelatedInfo_v1250 { + #[asn(optional_idx = 0)] + pub category0_allowed_r12: Option< + SystemInformationBlockType1_v1250_IEsCellAccessRelatedInfo_v1250Category0Allowed_r12, + >, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1250_IEsFreqBandIndicatorPriority_r12(pub u8); +impl SystemInformationBlockType1_v1250_IEsFreqBandIndicatorPriority_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct SystemInformationBlockType1_v1310_IEsHyperSFN_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1310_IEsEDRX_Allowed_r13(pub u8); +impl SystemInformationBlockType1_v1310_IEsEDRX_Allowed_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_WindowLength_BR_r13( + pub u8, +); +impl + SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_WindowLength_BR_r13 +{ + pub const MS20: u8 = 0u8; + pub const MS40: u8 = 1u8; + pub const MS60: u8 = 2u8; + pub const MS80: u8 = 3u8; + pub const MS120: u8 = 4u8; + pub const MS160: u8 = 5u8; + pub const MS200: u8 = 6u8; + pub const SPARE: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_RepetitionPattern_r13( + pub u8, +); +impl SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_RepetitionPattern_r13 { pub const EVERY_RF : u8 = 0u8 ; pub const EVERY2ND_RF : u8 = 1u8 ; pub const EVERY4TH_RF : u8 = 2u8 ; pub const EVERY8TH_RF : u8 = 3u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13_subframePattern10_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "40", sz_ub = "40")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13_subframePattern40_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13 +{ + # [asn (key = 0 , extended = false)] SubframePattern10_r13 (SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13_subframePattern10_r13) , # [asn (key = 1 , extended = false)] SubframePattern40_r13 (SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13_subframePattern40_r13) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_UplinkSubframeBitmapBR_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13StartSymbolBR_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_HoppingConfigCommon_r13( + pub u8, +); +impl SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_HoppingConfigCommon_r13 { pub const ON : u8 = 0u8 ; pub const OFF : u8 = 1u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_ValidityTime_r13( + pub u8, +); +impl SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_ValidityTime_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 5)] +pub struct SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13 { pub si_window_length_br_r13 : SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_WindowLength_BR_r13 , pub si_repetition_pattern_r13 : SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_RepetitionPattern_r13 , # [asn (optional_idx = 0 ,)] pub scheduling_info_list_br_r13 : Option < SchedulingInfoList_BR_r13 > , # [asn (optional_idx = 1 ,)] pub fdd_downlink_or_tdd_subframe_bitmap_br_r13 : Option < SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_DownlinkOrTddSubframeBitmapBR_r13 > , # [asn (optional_idx = 2 ,)] pub fdd_uplink_subframe_bitmap_br_r13 : Option < SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Fdd_UplinkSubframeBitmapBR_r13 > , pub start_symbol_br_r13 : SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13StartSymbolBR_r13 , pub si_hopping_config_common_r13 : SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_HoppingConfigCommon_r13 , # [asn (optional_idx = 3 ,)] pub si_validity_time_r13 : Option < SystemInformationBlockType1_v1310_IEsBandwidthReducedAccessRelatedInfo_r13Si_ValidityTime_r13 > , # [asn (optional_idx = 4 ,)] pub system_info_value_tag_list_r13 : Option < SystemInfoValueTagList_r13 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Mpdcch_pdsch_HoppingNB_r13( + pub u8, +); +impl SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Mpdcch_pdsch_HoppingNB_r13 { + pub const NB2: u8 = 0u8; + pub const NB4: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_FDD_r13( + pub u8, +); +impl SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_FDD_r13 { pub const INT1 : u8 = 0u8 ; pub const INT2 : u8 = 1u8 ; pub const INT4 : u8 = 2u8 ; pub const INT8 : u8 = 3u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_TDD_r13( + pub u8, +); +impl SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_TDD_r13 { pub const INT1 : u8 = 0u8 ; pub const INT5 : u8 = 1u8 ; pub const INT10 : u8 = 2u8 ; pub const INT20 : u8 = 3u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13 +{ + # [asn (key = 0 , extended = false)] Interval_FDD_r13 (SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_FDD_r13) , # [asn (key = 1 , extended = false)] Interval_TDD_r13 (SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13_interval_TDD_r13) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_FDD_r13( + pub u8, +); +impl SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_FDD_r13 { pub const INT2 : u8 = 0u8 ; pub const INT4 : u8 = 1u8 ; pub const INT8 : u8 = 2u8 ; pub const INT16 : u8 = 3u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_TDD_r13( + pub u8, +); +impl SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_TDD_r13 { pub const INT5 : u8 = 0u8 ; pub const INT10 : u8 = 1u8 ; pub const INT20 : u8 = 2u8 ; pub const INT40 : u8 = 3u8 ; } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13 +{ + # [asn (key = 0 , extended = false)] Interval_FDD_r13 (SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_FDD_r13) , # [asn (key = 1 , extended = false)] Interval_TDD_r13 (SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13_interval_TDD_r13) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "16")] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Mpdcch_pdsch_HoppingOffset_r13( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13 { # [asn (optional_idx = 0 ,)] pub mpdcch_pdsch_hopping_nb_r13 : Option < SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Mpdcch_pdsch_HoppingNB_r13 > , # [asn (optional_idx = 1 ,)] pub interval_dl_hopping_config_common_mode_a_r13 : Option < SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeA_r13 > , # [asn (optional_idx = 2 ,)] pub interval_dl_hopping_config_common_mode_b_r13 : Option < SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Interval_DLHoppingConfigCommonModeB_r13 > , # [asn (optional_idx = 3 ,)] pub mpdcch_pdsch_hopping_offset_r13 : Option < SystemInformationBlockType1_v1320_IEsFreqHoppingParametersDL_r13Mpdcch_pdsch_HoppingOffset_r13 > , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1430_IEsECallOverIMS_Support_r14(pub u8); +impl SystemInformationBlockType1_v1430_IEsECallOverIMS_Support_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "5")] +pub struct SystemInformationBlockType1_v1430_IEsCellAccessRelatedInfoList_r14( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1530_IEsHsdn_Cell_r15(pub u8); +impl SystemInformationBlockType1_v1530_IEsHsdn_Cell_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15_crs_IntfMitigEnabled; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15_crs_IntfMitigNumPRBs( + pub u8, +); +impl SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15_crs_IntfMitigNumPRBs { + pub const N6: u8 = 0u8; + pub const N24: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15 { + #[asn(key = 0, extended = false)] + Crs_IntfMitigEnabled( + SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15_crs_IntfMitigEnabled, + ), + #[asn(key = 1, extended = false)] + Crs_IntfMitigNumPRBs( + SystemInformationBlockType1_v1530_IEsCrs_IntfMitigConfig_r15_crs_IntfMitigNumPRBs, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1530_IEsCellBarred_CRS_r15(pub u8); +impl SystemInformationBlockType1_v1530_IEsCellBarred_CRS_r15 { + pub const BARRED: u8 = 0u8; + pub const NOT_BARRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_r15( + pub u8, +); +impl SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_r15 { + pub const BARRED: u8 = 0u8; + pub const NOT_BARRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_CRS_r15( + pub u8, +); +impl SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_CRS_r15 { + pub const BARRED: u8 = 0u8; + pub const NOT_BARRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellAccessRelatedInfoList_5GC_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15 { pub cell_barred_5gc_r15 : SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_r15 , pub cell_barred_5gc_crs_r15 : SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellBarred_5GC_CRS_r15 , pub cell_access_related_info_list_5gc_r15 : SystemInformationBlockType1_v1530_IEsCellAccessRelatedInfo_5GC_r15CellAccessRelatedInfoList_5GC_r15 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1530_IEsIms_EmergencySupport5GC_r15(pub u8); +impl SystemInformationBlockType1_v1530_IEsIms_EmergencySupport5GC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1530_IEsECallOverIMS_Support5GC_r15(pub u8); +impl SystemInformationBlockType1_v1530_IEsECallOverIMS_Support5GC_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1540_IEsSi_posOffset_r15(pub u8); +impl SystemInformationBlockType1_v1540_IEsSi_posOffset_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_v15g0_IEsBandwidthReducedAccessRelatedInfo_v15g0 { + pub pos_scheduling_info_list_br_r15: SchedulingInfoList_BR_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_v15g0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1610_IEsEDRX_Allowed_5GC_r16(pub u8); +impl SystemInformationBlockType1_v1610_IEsEDRX_Allowed_5GC_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1610_IEsTransmissionInControlChRegion_r16(pub u8); +impl SystemInformationBlockType1_v1610_IEsTransmissionInControlChRegion_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v1610_IEsCampingAllowedInCE_r16(pub u8); +impl SystemInformationBlockType1_v1610_IEsCampingAllowedInCE_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType1_v1700_IEsCellAccessRelatedInfo_NTN_r17CellBarred_NTN_r17( + pub u8, +); +impl SystemInformationBlockType1_v1700_IEsCellAccessRelatedInfo_NTN_r17CellBarred_NTN_r17 { + pub const BARRED: u8 = 0u8; + pub const NOT_BARRED: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType1_v1700_IEsCellAccessRelatedInfo_NTN_r17 { + pub cell_barred_ntn_r17: + SystemInformationBlockType1_v1700_IEsCellAccessRelatedInfo_NTN_r17CellBarred_NTN_r17, + #[asn(optional_idx = 0)] + pub plmn_identity_list_v1700: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType1_v1700_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType1_v890_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType1_v920_IEsIms_EmergencySupport_r9(pub u8); +impl SystemInformationBlockType1_v920_IEsIms_EmergencySupport_r9 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType10MessageIdentifier( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType10SerialNumber( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct SystemInformationBlockType10WarningType(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "50", + sz_ub = "50" +)] +pub struct SystemInformationBlockType10Dummy(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType11MessageIdentifier( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType11SerialNumber( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType11WarningMessageSegmentType(pub u8); +impl SystemInformationBlockType11WarningMessageSegmentType { + pub const NOT_LAST_SEGMENT: u8 = 0u8; + pub const LAST_SEGMENT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SystemInformationBlockType11WarningMessageSegmentNumber(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType11WarningMessageSegment(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct SystemInformationBlockType11DataCodingScheme(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType12_r9MessageIdentifier_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct SystemInformationBlockType12_r9SerialNumber_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType12_r9WarningMessageSegmentType_r9(pub u8); +impl SystemInformationBlockType12_r9WarningMessageSegmentType_r9 { + pub const NOT_LAST_SEGMENT: u8 = 0u8; + pub const LAST_SEGMENT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SystemInformationBlockType12_r9WarningMessageSegmentNumber_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType12_r9WarningMessageSegment_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct SystemInformationBlockType12_r9DataCodingScheme_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType12_r9LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType13_r9LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SystemInformationBlockType14_r11Eab_Param_r11_eab_PerPLMN_List_r11( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType14_r11Eab_Param_r11 { + #[asn(key = 0, extended = false)] + Eab_Common_r11(EAB_Config_r11), + #[asn(key = 1, extended = false)] + Eab_PerPLMN_List_r11(SystemInformationBlockType14_r11Eab_Param_r11_eab_PerPLMN_List_r11), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType14_r11LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType15_r11LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "549755813887")] +pub struct SystemInformationBlockType16_r11TimeInfo_r11TimeInfoUTC_r11(pub u64); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct SystemInformationBlockType16_r11TimeInfo_r11DayLightSavingTime_r11( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-127", ub = "128")] +pub struct SystemInformationBlockType16_r11TimeInfo_r11LeapSeconds_r11(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-63", ub = "64")] +pub struct SystemInformationBlockType16_r11TimeInfo_r11LocalTimeOffset_r11(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType16_r11TimeInfo_r11 { + pub time_info_utc_r11: SystemInformationBlockType16_r11TimeInfo_r11TimeInfoUTC_r11, + #[asn(optional_idx = 0)] + pub day_light_saving_time_r11: + Option, + #[asn(optional_idx = 1)] + pub leap_seconds_r11: Option, + #[asn(optional_idx = 2)] + pub local_time_offset_r11: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType16_r11LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SystemInformationBlockType17_r12Wlan_OffloadInfoPerPLMN_List_r12( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType17_r12LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType18_r12CommConfig_r12 { + pub comm_rx_pool_r12: SL_CommRxPoolList_r12, + #[asn(optional_idx = 0)] + pub comm_tx_pool_normal_common_r12: Option, + #[asn(optional_idx = 1)] + pub comm_tx_pool_exceptional_r12: Option, + #[asn(optional_idx = 2)] + pub comm_sync_config_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType18_r12LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType19_r12DiscConfig_r12 { + pub disc_rx_pool_r12: SL_DiscRxPoolList_r12, + #[asn(optional_idx = 0)] + pub disc_tx_pool_common_r12: Option, + #[asn(optional_idx = 1)] + pub disc_tx_power_info_r12: Option, + #[asn(optional_idx = 2)] + pub disc_sync_config_r12: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType19_r12LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SystemInformationBlockType2Ac_BarringInfoAc_BarringForEmergency(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2Ac_BarringInfo { + pub ac_barring_for_emergency: SystemInformationBlockType2Ac_BarringInfoAc_BarringForEmergency, + #[asn(optional_idx = 0)] + pub ac_barring_for_mo_signalling: Option, + #[asn(optional_idx = 1)] + pub ac_barring_for_mo_data: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct SystemInformationBlockType2FreqInfoUl_Bandwidth(pub u8); +impl SystemInformationBlockType2FreqInfoUl_Bandwidth { + pub const N6: u8 = 0u8; + pub const N15: u8 = 1u8; + pub const N25: u8 = 2u8; + pub const N50: u8 = 3u8; + pub const N75: u8 = 4u8; + pub const N100: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct SystemInformationBlockType2FreqInfo { + #[asn(optional_idx = 0)] + pub ul_carrier_freq: Option, + #[asn(optional_idx = 1)] + pub ul_bandwidth: Option, + pub additional_spectrum_emission: AdditionalSpectrumEmission, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType2_v10m0_IEsFreqInfo_v10l0 { + pub additional_spectrum_emission_v10l0: AdditionalSpectrumEmission_v10l0, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType2_v10m0_IEsMultiBandInfoList_v10l0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType2_v10n0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType2_v13c0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType2_v8h0_IEsMultiBandInfoList( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType2_v9i0_IEsNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType2_v9i0_IEsDummy {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct SystemInformationBlockType20_r13Sc_mcch_RepetitionPeriod_r13(pub u8); +impl SystemInformationBlockType20_r13Sc_mcch_RepetitionPeriod_r13 { + pub const RF2: u8 = 0u8; + pub const RF4: u8 = 1u8; + pub const RF8: u8 = 2u8; + pub const RF16: u8 = 3u8; + pub const RF32: u8 = 4u8; + pub const RF64: u8 = 5u8; + pub const RF128: u8 = 6u8; + pub const RF256: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10")] +pub struct SystemInformationBlockType20_r13Sc_mcch_Offset_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct SystemInformationBlockType20_r13Sc_mcch_FirstSubframe_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "9")] +pub struct SystemInformationBlockType20_r13Sc_mcch_duration_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SystemInformationBlockType20_r13Sc_mcch_ModificationPeriod_r13(pub u8); +impl SystemInformationBlockType20_r13Sc_mcch_ModificationPeriod_r13 { + pub const RF2: u8 = 0u8; + pub const RF4: u8 = 1u8; + pub const RF8: u8 = 2u8; + pub const RF16: u8 = 3u8; + pub const RF32: u8 = 4u8; + pub const RF64: u8 = 5u8; + pub const RF128: u8 = 6u8; + pub const RF256: u8 = 7u8; + pub const RF512: u8 = 8u8; + pub const RF1024: u8 = 9u8; + pub const R2048: u8 = 10u8; + pub const RF4096: u8 = 11u8; + pub const RF8192: u8 = 12u8; + pub const RF16384: u8 = 13u8; + pub const RF32768: u8 = 14u8; + pub const RF65536: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType20_r13LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType21_r14LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType24_r15LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "2", sz_ub = "6")] +pub struct SystemInformationBlockType25_r15Uac_AC1_SelectAssistInfo_r15_individualPLMNList_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemInformationBlockType25_r15Uac_AC1_SelectAssistInfo_r15 { + #[asn(key = 0, extended = false)] + PlmnCommon_r15(UAC_AC1_SelectAssistInfo_r15), + #[asn(key = 1, extended = false)] + IndividualPLMNList_r15( + SystemInformationBlockType25_r15Uac_AC1_SelectAssistInfo_r15_individualPLMNList_r15, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType25_r15LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct SystemInformationBlockType26_r15Slss_TxMultiFreq_r15(pub u8); +impl SystemInformationBlockType26_r15Slss_TxMultiFreq_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "45")] +pub struct SystemInformationBlockType26_r15ThreshS_RSSI_CBR_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType26a_r16LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType27_r16LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "63")] +pub struct SystemInformationBlockType28_r16SegmentNumber_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct SystemInformationBlockType28_r16SegmentType_r16(pub u8); +impl SystemInformationBlockType28_r16SegmentType_r16 { + pub const NOT_LAST_SEGMENT: u8 = 0u8; + pub const LAST_SEGMENT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType28_r16SegmentContainer_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType28_r16LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType29_r16LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct SystemInformationBlockType3CellReselectionInfoCommonQ_Hyst(pub u8); +impl SystemInformationBlockType3CellReselectionInfoCommonQ_Hyst { + pub const D_B0: u8 = 0u8; + pub const D_B1: u8 = 1u8; + pub const D_B2: u8 = 2u8; + pub const D_B3: u8 = 3u8; + pub const D_B4: u8 = 4u8; + pub const D_B5: u8 = 5u8; + pub const D_B6: u8 = 6u8; + pub const D_B8: u8 = 7u8; + pub const D_B10: u8 = 8u8; + pub const D_B12: u8 = 9u8; + pub const D_B14: u8 = 10u8; + pub const D_B16: u8 = 11u8; + pub const D_B18: u8 = 12u8; + pub const D_B20: u8 = 13u8; + pub const D_B22: u8 = 14u8; + pub const D_B24: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_Medium( + pub u8, +); +impl + SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_Medium +{ + pub const D_B_6: u8 = 0u8; + pub const D_B_4: u8 = 1u8; + pub const D_B_2: u8 = 2u8; + pub const D_B0: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_High( + pub u8, +); +impl SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_High { + pub const D_B_6: u8 = 0u8; + pub const D_B_4: u8 = 1u8; + pub const D_B_2: u8 = 2u8; + pub const D_B0: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSF { pub sf_medium : SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_Medium , pub sf_high : SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSFSf_High , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionPars { + pub mobility_state_parameters: MobilityStateParameters, + pub q_hyst_sf: + SystemInformationBlockType3CellReselectionInfoCommonSpeedStateReselectionParsQ_HystSF, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType3CellReselectionInfoCommon { + pub q_hyst: SystemInformationBlockType3CellReselectionInfoCommonQ_Hyst, + #[asn(optional_idx = 0)] + pub speed_state_reselection_pars: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType3CellReselectionServingFreqInfo { + #[asn(optional_idx = 0)] + pub s_non_intra_search: Option, + pub thresh_serving_low: ReselectionThreshold, + pub cell_reselection_priority: CellReselectionPriority, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 4)] +pub struct SystemInformationBlockType3IntraFreqCellReselectionInfo { + pub q_rx_lev_min: Q_RxLevMin, + #[asn(optional_idx = 0)] + pub p_max: Option, + #[asn(optional_idx = 1)] + pub s_intra_search: Option, + #[asn(optional_idx = 2)] + pub allowed_meas_bandwidth: Option, + pub presence_antenna_port1: PresenceAntennaPort1, + pub neigh_cell_config: NeighCellConfig, + pub t_reselection_eutra: T_Reselection, + #[asn(optional_idx = 3)] + pub t_reselection_eutra_sf: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType3_v10l0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SystemInformationBlockType30_r17CommonPLMNsWithDisasterCondition_r17( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "6")] +pub struct SystemInformationBlockType30_r17ApplicableDisasterInfoList_r17( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType30_r17LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType31_r17LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType32_r17LateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType5_v10j0_IEsInterFreqCarrierFreqList_v10j0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType5_v10l0_IEsInterFreqCarrierFreqList_v10l0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct SystemInformationBlockType5_v13a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType5_v13a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType5_v8h0_IEsInterFreqCarrierFreqList_v8h0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct SystemInformationBlockType5_v9e0_IEsInterFreqCarrierFreqList_v9e0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct SystemInformationBlockType6_v8h0_IEsCarrierFreqListUTRA_FDD_v8h0( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct SystemInformationBlockType6_v8h0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct SystemInformationBlockType8SearchWindowSize(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct SystemInformationBlockType8ParametersHRPD { + pub pre_registration_info_hrpd: PreRegistrationInfoHRPD, + #[asn(optional_idx = 0)] + pub cell_reselection_parameters_hrpd: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "42", sz_ub = "42")] +pub struct SystemInformationBlockType8Parameters1XRTTLongCodeState1XRTT( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 3)] +pub struct SystemInformationBlockType8Parameters1XRTT { + #[asn(optional_idx = 0)] + pub csfb_registration_param1_xrtt: Option, + #[asn(optional_idx = 1)] + pub long_code_state1_xrtt: Option, + #[asn(optional_idx = 2)] + pub cell_reselection_parameters1_xrtt: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "48" +)] +pub struct SystemInformationBlockType9Hnb_Name(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct SystemTimeInfoCDMA2000Cdma_EUTRA_Synchronisation(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "39", sz_ub = "39")] +pub struct SystemTimeInfoCDMA2000Cdma_SystemTime_synchronousSystemTime( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "49", sz_ub = "49")] +pub struct SystemTimeInfoCDMA2000Cdma_SystemTime_asynchronousSystemTime( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum SystemTimeInfoCDMA2000Cdma_SystemTime { + #[asn(key = 0, extended = false)] + SynchronousSystemTime(SystemTimeInfoCDMA2000Cdma_SystemTime_synchronousSystemTime), + #[asn(key = 1, extended = false)] + AsynchronousSystemTime(SystemTimeInfoCDMA2000Cdma_SystemTime_asynchronousSystemTime), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct TDD_ConfigSubframeAssignment(pub u8); +impl TDD_ConfigSubframeAssignment { + pub const SA0: u8 = 0u8; + pub const SA1: u8 = 1u8; + pub const SA2: u8 = 2u8; + pub const SA3: u8 = 3u8; + pub const SA4: u8 = 4u8; + pub const SA5: u8 = 5u8; + pub const SA6: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "8")] +pub struct TDD_ConfigSpecialSubframePatterns(pub u8); +impl TDD_ConfigSpecialSubframePatterns { + pub const SSP0: u8 = 0u8; + pub const SSP1: u8 = 1u8; + pub const SSP2: u8 = 2u8; + pub const SSP3: u8 = 3u8; + pub const SSP4: u8 = 4u8; + pub const SSP5: u8 = 5u8; + pub const SSP6: u8 = 6u8; + pub const SSP7: u8 = 7u8; + pub const SSP8: u8 = 8u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct TDD_Config_v1130SpecialSubframePatterns_v1130(pub u8); +impl TDD_Config_v1130SpecialSubframePatterns_v1130 { + pub const SSP7: u8 = 0u8; + pub const SSP9: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct TDD_Config_v1430SpecialSubframePatterns_v1430(pub u8); +impl TDD_Config_v1430SpecialSubframePatterns_v1430 { + pub const SSP10: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct TDD_Config_v1450SpecialSubframePatterns_v1450(pub u8); +impl TDD_Config_v1450SpecialSubframePatterns_v1450 { + pub const SSP10_CRS_LESS_DW_PTS: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct TDD_ConfigSL_r12SubframeAssignmentSL_r12(pub u8); +impl TDD_ConfigSL_r12SubframeAssignmentSL_r12 { + pub const NONE: u8 = 0u8; + pub const SA0: u8 = 1u8; + pub const SA1: u8 = 2u8; + pub const SA2: u8 = 3u8; + pub const SA3: u8 = 4u8; + pub const SA4: u8 = 5u8; + pub const SA5: u8 = 6u8; + pub const SA6: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct TDD_PUSCH_UpPTS_r14_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct TDD_PUSCH_UpPTS_r14_setupSymPUSCH_UpPTS_r14(pub u8); +impl TDD_PUSCH_UpPTS_r14_setupSymPUSCH_UpPTS_r14 { + pub const SYM1: u8 = 0u8; + pub const SYM2: u8 = 1u8; + pub const SYM3: u8 = 2u8; + pub const SYM4: u8 = 3u8; + pub const SYM5: u8 = 4u8; + pub const SYM6: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct TDD_PUSCH_UpPTS_r14_setupDmrs_LessUpPTS_Config_r14(pub u8); +impl TDD_PUSCH_UpPTS_r14_setupDmrs_LessUpPTS_Config_r14 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct TDD_PUSCH_UpPTS_r14_setup { + #[asn(optional_idx = 0)] + pub sym_pusch_up_pts_r14: Option, + #[asn(optional_idx = 1)] + pub dmrs_less_up_pts_config_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_CycleLength_r11(pub u8); +impl TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_CycleLength_r11 { + pub const SF40: u8 = 0u8; + pub const SF64: u8 = 1u8; + pub const SF80: u8 = 2u8; + pub const SF128: u8 = 3u8; + pub const SF160: u8 = 4u8; + pub const SF256: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_Offset_r11(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_ActiveTime_r11(pub u8); +impl TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_ActiveTime_r11 { + pub const SF20: u8 = 0u8; + pub const SF30: u8 = 1u8; + pub const SF40: u8 = 2u8; + pub const SF60: u8 = 3u8; + pub const SF80: u8 = 4u8; + pub const SF100: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11 { + pub drx_cycle_length_r11: TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_CycleLength_r11, + #[asn(optional_idx = 0)] + pub drx_offset_r11: Option, + pub drx_active_time_r11: TDM_AssistanceInfo_r11_drx_AssistanceInfo_r11Drx_ActiveTime_r11, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct TDM_PatternConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "9")] +pub struct TDM_PatternConfig_r15_setupHarq_Offset_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TDM_PatternConfig_r15_setup { + pub subframe_assignment_r15: SubframeAssignment_r15, + pub harq_offset_r15: TDM_PatternConfig_r15_setupHarq_Offset_r15, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "2097151")] +pub struct TLE_EphemerisParameters_r17Inclination_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4194303")] +pub struct TLE_EphemerisParameters_r17ArgumentPerigee_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4194303")] +pub struct TLE_EphemerisParameters_r17RightAscension_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4194303")] +pub struct TLE_EphemerisParameters_r17MeanAnomaly_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "16777215")] +pub struct TLE_EphemerisParameters_r17Eccentricity_r17(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "17179869183")] +pub struct TLE_EphemerisParameters_r17MeanMotion_r17(pub u64); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-99999", ub = "99999")] +pub struct TLE_EphemerisParameters_r17BStarDecimal_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-9", ub = "9")] +pub struct TLE_EphemerisParameters_r17BStarExponent_r17(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1048575", ub = "1048575")] +pub struct TLE_EphemerisParameters_r17EpochStar_r17(pub i32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct TMGI_r9Plmn_Id_r9_plmn_Index_r9(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum TMGI_r9Plmn_Id_r9 { + #[asn(key = 0, extended = false)] + Plmn_Index_r9(TMGI_r9Plmn_Id_r9_plmn_Index_r9), + #[asn(key = 1, extended = false)] + ExplicitValue_r9(PLMN_Identity), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct TMGI_r9ServiceId_r9(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "15")] +pub struct TPC_Index_indexOfFormat3(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "31")] +pub struct TPC_Index_indexOfFormat3A(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct TPC_PDCCH_Config_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct TPC_PDCCH_Config_setupTpc_RNTI(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TPC_PDCCH_Config_setup { + pub tpc_rnti: TPC_PDCCH_Config_setupTpc_RNTI, + pub tpc_index: TPC_Index, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct TPC_PDCCH_ConfigSCell_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct TPC_PDCCH_ConfigSCell_r13_setup { + pub tpc_index_pucch_s_cell_r13: TPC_Index, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-5", ub = "91")] +pub struct ThresholdUTRA_utra_RSCP(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "49")] +pub struct ThresholdUTRA_utra_EcN0(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "12")] +pub struct TimeReferenceInfo_r15Uncertainty_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct TimeReferenceInfo_r15TimeInfoType_r15(pub u8); +impl TimeReferenceInfo_r15TimeInfoType_r15 { + pub const LOCAL_CLOCK: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "1023")] +pub struct TimeReferenceInfo_r15ReferenceSFN_r15(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "3", sz_ub = "3")] +pub struct TraceReference_r10TraceId_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "8")] +pub struct TrackingAreaCodeList_v1130Plmn_Identity_perTAC_List_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "11")] +pub struct TrafficPatternInfo_r14TrafficPeriodicity_r14(pub u8); +impl TrafficPatternInfo_r14TrafficPeriodicity_r14 { + pub const SF20: u8 = 0u8; + pub const SF50: u8 = 1u8; + pub const SF100: u8 = 2u8; + pub const SF200: u8 = 3u8; + pub const SF300: u8 = 4u8; + pub const SF400: u8 = 5u8; + pub const SF500: u8 = 6u8; + pub const SF600: u8 = 7u8; + pub const SF700: u8 = 8u8; + pub const SF800: u8 = 9u8; + pub const SF900: u8 = 10u8; + pub const SF1000: u8 = 11u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10239")] +pub struct TrafficPatternInfo_r14TimingOffset_r14(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "3", ub = "10")] +pub struct TrafficPatternInfo_r14LogicalChannelIdentityUL_r14(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct TrafficPatternInfo_r14MessageSize_r14(pub bitvec::vec::BitVec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct UAC_BarringInfoSet_r15Uac_BarringFactor_r15(pub u8); +impl UAC_BarringInfoSet_r15Uac_BarringFactor_r15 { + pub const P00: u8 = 0u8; + pub const P05: u8 = 1u8; + pub const P10: u8 = 2u8; + pub const P15: u8 = 3u8; + pub const P20: u8 = 4u8; + pub const P25: u8 = 5u8; + pub const P30: u8 = 6u8; + pub const P40: u8 = 7u8; + pub const P50: u8 = 8u8; + pub const P60: u8 = 9u8; + pub const P70: u8 = 10u8; + pub const P75: u8 = 11u8; + pub const P80: u8 = 12u8; + pub const P85: u8 = 13u8; + pub const P90: u8 = 14u8; + pub const P95: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UAC_BarringInfoSet_r15Uac_BarringTime_r15(pub u8); +impl UAC_BarringInfoSet_r15Uac_BarringTime_r15 { + pub const S4: u8 = 0u8; + pub const S8: u8 = 1u8; + pub const S16: u8 = 2u8; + pub const S32: u8 = 3u8; + pub const S64: u8 = 4u8; + pub const S128: u8 = 5u8; + pub const S256: u8 = 6u8; + pub const S512: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "7", sz_ub = "7")] +pub struct UAC_BarringInfoSet_r15Uac_BarringForAccessIdentity_r15( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct UAC_BarringInfoSet_v1700Uac_BarringFactorForAI3_r17(pub u8); +impl UAC_BarringInfoSet_v1700Uac_BarringFactorForAI3_r17 { + pub const P00: u8 = 0u8; + pub const P05: u8 = 1u8; + pub const P10: u8 = 2u8; + pub const P15: u8 = 3u8; + pub const P20: u8 = 4u8; + pub const P25: u8 = 5u8; + pub const P30: u8 = 6u8; + pub const P40: u8 = 7u8; + pub const P50: u8 = 8u8; + pub const P60: u8 = 9u8; + pub const P70: u8 = 10u8; + pub const P75: u8 = 11u8; + pub const P80: u8 = 12u8; + pub const P85: u8 = 13u8; + pub const P90: u8 = 14u8; + pub const P95: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "63")] +pub struct UAC_BarringPerCat_r15AccessCategory_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct UAC_BarringPerPLMN_r15Plmn_IdentityIndex_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "SEQUENCE-OF", + sz_extensible = false, + sz_lb = "63", + sz_ub = "63" +)] +pub struct UAC_BarringPerPLMN_r15Uac_AC_BarringListType_r15_uac_ImplicitAC_BarringList_r15( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UAC_BarringPerPLMN_r15Uac_AC_BarringListType_r15 { + #[asn(key = 0, extended = false)] + Uac_ImplicitAC_BarringList_r15( + UAC_BarringPerPLMN_r15Uac_AC_BarringListType_r15_uac_ImplicitAC_BarringList_r15, + ), + #[asn(key = 1, extended = false)] + Uac_ExplicitAC_BarringList_r15(UAC_BarringPerCatList_r15), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UDT_Restricting_r13Udt_Restricting_r13(pub u8); +impl UDT_Restricting_r13Udt_Restricting_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UDT_Restricting_r13Udt_RestrictingTime_r13(pub u8); +impl UDT_Restricting_r13Udt_RestrictingTime_r13 { + pub const S4: u8 = 0u8; + pub const S8: u8 = 1u8; + pub const S16: u8 = 2u8; + pub const S32: u8 = 3u8; + pub const S64: u8 = 4u8; + pub const S128: u8 = 5u8; + pub const S256: u8 = 6u8; + pub const S512: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "6")] +pub struct UDT_RestrictingPerPLMN_r13Plmn_IdentityIndex_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_r10LoggedMeasurementsIdle_r10(pub u8); +impl UE_BasedNetwPerfMeasParameters_r10LoggedMeasurementsIdle_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_r10StandaloneGNSS_Location_r10(pub u8); +impl UE_BasedNetwPerfMeasParameters_r10StandaloneGNSS_Location_r10 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1250LoggedMBSFNMeasurements_r12(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1250LoggedMBSFNMeasurements_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1430LocationReport_r14(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1430LocationReport_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1530LoggedMeasBT_r15(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1530LoggedMeasBT_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1530LoggedMeasWLAN_r15(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1530LoggedMeasWLAN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1530ImmMeasBT_r15(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1530ImmMeasBT_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1530ImmMeasWLAN_r15(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1530ImmMeasWLAN_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1610Ul_PDCP_AvgDelay_r16(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1610Ul_PDCP_AvgDelay_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1700LoggedMeasIdleEventL1_r17(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1700LoggedMeasIdleEventL1_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1700LoggedMeasIdleEventOutOfCoverage_r17(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1700LoggedMeasIdleEventOutOfCoverage_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1700LoggedMeasUncomBarPre_r17(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1700LoggedMeasUncomBarPre_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_BasedNetwPerfMeasParameters_v1700ImmMeasUncomBarPre_r17(pub u8); +impl UE_BasedNetwPerfMeasParameters_v1700ImmMeasUncomBarPre_r17 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_CapabilityRAT_ContainerUeCapabilityRAT_Container(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "5")] +pub struct UE_CategorySL_r15Ue_CategorySL_C_TX_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "4")] +pub struct UE_CategorySL_r15Ue_CategorySL_C_RX_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "5")] +pub struct UE_EUTRA_CapabilityUe_Category(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_CapabilityFeatureGroupIndicators( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 7)] +pub struct UE_EUTRA_CapabilityInterRAT_Parameters { + #[asn(optional_idx = 0)] + pub utra_fdd: Option, + #[asn(optional_idx = 1)] + pub utra_tdd128: Option, + #[asn(optional_idx = 2)] + pub utra_tdd384: Option, + #[asn(optional_idx = 3)] + pub utra_tdd768: Option, + #[asn(optional_idx = 4)] + pub geran: Option, + #[asn(optional_idx = 5)] + pub cdma2000_hrpd: Option, + #[asn(optional_idx = 6)] + pub cdma2000_1x_rtt: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "6", ub = "8")] +pub struct UE_EUTRA_Capability_v1020_IEsUe_Category_v1020(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_Capability_v1020_IEsFeatureGroupIndRel10_r10( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v10i0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_Capability_v10j0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "9", ub = "10")] +pub struct UE_EUTRA_Capability_v1170_IEsUe_Category_v1170(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "11", ub = "12")] +pub struct UE_EUTRA_Capability_v11a0_IEsUe_Category_v11a0(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v11x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "14")] +pub struct UE_EUTRA_Capability_v1250_IEsUe_CategoryDL_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "13")] +pub struct UE_EUTRA_Capability_v1250_IEsUe_CategoryUL_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "15", ub = "16")] +pub struct UE_EUTRA_Capability_v1260_IEsUe_CategoryDL_v1260(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v12x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UE_EUTRA_Capability_v1310_IEsUe_CategoryDL_v1310(pub u8); +impl UE_EUTRA_Capability_v1310_IEsUe_CategoryDL_v1310 { + pub const N17: u8 = 0u8; + pub const M1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UE_EUTRA_Capability_v1310_IEsUe_CategoryUL_v1310(pub u8); +impl UE_EUTRA_Capability_v1310_IEsUe_CategoryUL_v1310 { + pub const N14: u8 = 0u8; + pub const M1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "18", ub = "19")] +pub struct UE_EUTRA_Capability_v1330_IEsUe_CategoryDL_v1330(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1330_IEsUe_CE_NeedULGaps_r13(pub u8); +impl UE_EUTRA_Capability_v1330_IEsUe_CE_NeedULGaps_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "15", ub = "15")] +pub struct UE_EUTRA_Capability_v1340_IEsUe_CategoryUL_v1340(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1350_IEsUe_CategoryDL_v1350(pub u8); +impl UE_EUTRA_Capability_v1350_IEsUe_CategoryDL_v1350 { + pub const ONE_BIS: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1350_IEsUe_CategoryUL_v1350(pub u8); +impl UE_EUTRA_Capability_v1350_IEsUe_CategoryUL_v1350 { + pub const ONE_BIS: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v13e0a_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_Capability_v13e0b_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1430_IEsUe_CategoryDL_v1430(pub u8); +impl UE_EUTRA_Capability_v1430_IEsUe_CategoryDL_v1430 { + pub const M2: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "5")] +pub struct UE_EUTRA_Capability_v1430_IEsUe_CategoryUL_v1430(pub u8); +impl UE_EUTRA_Capability_v1430_IEsUe_CategoryUL_v1430 { + pub const N16: u8 = 0u8; + pub const N17: u8 = 1u8; + pub const N18: u8 = 2u8; + pub const N19: u8 = 3u8; + pub const N20: u8 = 4u8; + pub const M2: u8 = 5u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1430_IEsUe_CategoryUL_v1430b(pub u8); +impl UE_EUTRA_Capability_v1430_IEsUe_CategoryUL_v1430b { + pub const N21: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "20", ub = "20")] +pub struct UE_EUTRA_Capability_v1450_IEsUe_CategoryDL_v1450(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "21", ub = "21")] +pub struct UE_EUTRA_Capability_v1460_IEsUe_CategoryDL_v1460(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v14x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "22", ub = "26")] +pub struct UE_EUTRA_Capability_v1530_IEsUe_CategoryDL_v1530(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1530_IEsExtendedNumberOfDRBs_r15(pub u8); +impl UE_EUTRA_Capability_v1530_IEsExtendedNumberOfDRBs_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1530_IEsReducedCP_Latency_r15(pub u8); +impl UE_EUTRA_Capability_v1530_IEsReducedCP_Latency_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "22", ub = "26")] +pub struct UE_EUTRA_Capability_v1530_IEsUe_CategoryUL_v1530(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v1560_IEsAppliedCapabilityFilterCommon_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v15x0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1610_IEsDl_DedicatedMessageSegmentation_r16(pub u8); +impl UE_EUTRA_Capability_v1610_IEsDl_DedicatedMessageSegmentation_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1630_IEsEarlySecurityReactivation_r16(pub u8); +impl UE_EUTRA_Capability_v1630_IEsEarlySecurityReactivation_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v16c0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_Capability_v16c0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v1710_IEsSidelinkRequested_r17(pub u8); +impl UE_EUTRA_Capability_v1710_IEsSidelinkRequested_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UE_EUTRA_Capability_v1730_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_Capability_v920_IEsDeviceType_r9(pub u8); +impl UE_EUTRA_Capability_v920_IEsDeviceType_r9 { + pub const NO_BEN_FROM_BAT_CONSUMP_OPT: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v940_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_Capability_v9a0_IEsFeatureGroupIndRel9Add_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UE_EUTRA_Capability_v9h0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_r9FeatureGroupIndicators_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_r9FeatureGroupIndRel9Add_r9( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "32", sz_ub = "32")] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1060FeatureGroupIndRel10_v1060( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UE_EUTRA_CapabilityAddXDD_Mode_v1530ReducedCP_Latency_r15(pub u8); +impl UE_EUTRA_CapabilityAddXDD_Mode_v1530ReducedCP_Latency_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "0")] +pub struct UE_RadioPagingInfo_r12Ue_Category_v1250(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UE_TimersAndConstantsT300(pub u8); +impl UE_TimersAndConstantsT300 { + pub const MS100: u8 = 0u8; + pub const MS200: u8 = 1u8; + pub const MS300: u8 = 2u8; + pub const MS400: u8 = 3u8; + pub const MS600: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS1500: u8 = 6u8; + pub const MS2000: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UE_TimersAndConstantsT301(pub u8); +impl UE_TimersAndConstantsT301 { + pub const MS100: u8 = 0u8; + pub const MS200: u8 = 1u8; + pub const MS300: u8 = 2u8; + pub const MS400: u8 = 3u8; + pub const MS600: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS1500: u8 = 6u8; + pub const MS2000: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct UE_TimersAndConstantsT310(pub u8); +impl UE_TimersAndConstantsT310 { + pub const MS0: u8 = 0u8; + pub const MS50: u8 = 1u8; + pub const MS100: u8 = 2u8; + pub const MS200: u8 = 3u8; + pub const MS500: u8 = 4u8; + pub const MS1000: u8 = 5u8; + pub const MS2000: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UE_TimersAndConstantsN310(pub u8); +impl UE_TimersAndConstantsN310 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N6: u8 = 4u8; + pub const N8: u8 = 5u8; + pub const N10: u8 = 6u8; + pub const N20: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct UE_TimersAndConstantsT311(pub u8); +impl UE_TimersAndConstantsT311 { + pub const MS1000: u8 = 0u8; + pub const MS3000: u8 = 1u8; + pub const MS5000: u8 = 2u8; + pub const MS10000: u8 = 3u8; + pub const MS15000: u8 = 4u8; + pub const MS20000: u8 = 5u8; + pub const MS30000: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UE_TimersAndConstantsN311(pub u8); +impl UE_TimersAndConstantsN311 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N3: u8 = 2u8; + pub const N4: u8 = 3u8; + pub const N5: u8 = 4u8; + pub const N6: u8 = 5u8; + pub const N8: u8 = 6u8; + pub const N10: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEAssistanceInformation_r11CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEAssistanceInformation_r11CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEAssistanceInformation_r11CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum UEAssistanceInformation_r11CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeAssistanceInformation_r11(UEAssistanceInformation_r11_IEs), + #[asn(key = 1, extended = false)] + Spare3(UEAssistanceInformation_r11CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(UEAssistanceInformation_r11CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(UEAssistanceInformation_r11CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEAssistanceInformation_r11CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UEAssistanceInformation_r11CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UEAssistanceInformation_r11CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + UEAssistanceInformation_r11CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UEAssistanceInformation_r11_IEsPowerPrefIndication_r11(pub u8); +impl UEAssistanceInformation_r11_IEsPowerPrefIndication_r11 { + pub const NORMAL: u8 = 0u8; + pub const LOW_POWER_CONSUMPTION: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UEAssistanceInformation_r11_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct UEAssistanceInformation_v1430_IEsSps_AssistanceInformation_r14 { + #[asn(optional_idx = 0)] + pub traffic_pattern_info_list_sl_r14: Option, + #[asn(optional_idx = 1)] + pub traffic_pattern_info_list_ul_r14: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UEAssistanceInformation_v1430_IEsRlm_Report_r14Rlm_Event_r14(pub u8); +impl UEAssistanceInformation_v1430_IEsRlm_Report_r14Rlm_Event_r14 { + pub const EARLY_OUT_OF_SYNC: u8 = 0u8; + pub const EARLY_IN_SYNC: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UEAssistanceInformation_v1430_IEsRlm_Report_r14ExcessRep_MPDCCH_r14(pub u8); +impl UEAssistanceInformation_v1430_IEsRlm_Report_r14ExcessRep_MPDCCH_r14 { + pub const EXCESS_REP1: u8 = 0u8; + pub const EXCESS_REP2: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct UEAssistanceInformation_v1430_IEsRlm_Report_r14 { + pub rlm_event_r14: UEAssistanceInformation_v1430_IEsRlm_Report_r14Rlm_Event_r14, + #[asn(optional_idx = 0)] + pub excess_rep_mpdcch_r14: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEAssistanceInformation_v1530_IEsSps_AssistanceInformation_v1530 { + pub traffic_pattern_info_list_sl_v1530: TrafficPatternInfoList_v1530, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEAssistanceInformation_v1700_IEsUplinkData_r17(pub u8); +impl UEAssistanceInformation_v1700_IEsUplinkData_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UEAssistanceInformation_v1700_IEsScg_DeactivationPreference_r17(pub u8); +impl UEAssistanceInformation_v1700_IEsScg_DeactivationPreference_r17 { + pub const SCG_DEACTIVATION_PREFERRED: u8 = 0u8; + pub const NO_PREFERENCE: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEAssistanceInformation_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityEnquiryCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityEnquiryCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityEnquiryCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum UECapabilityEnquiryCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeCapabilityEnquiry_r8(UECapabilityEnquiry_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(UECapabilityEnquiryCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(UECapabilityEnquiryCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(UECapabilityEnquiryCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityEnquiryCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UECapabilityEnquiryCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UECapabilityEnquiryCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(UECapabilityEnquiryCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "16")] +pub struct UECapabilityEnquiry_v1180_IEsRequestedFrequencyBands_r11(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1310_IEsRequestReducedFormat_r13(pub u8); +impl UECapabilityEnquiry_v1310_IEsRequestReducedFormat_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1310_IEsRequestSkipFallbackComb_r13(pub u8); +impl UECapabilityEnquiry_v1310_IEsRequestSkipFallbackComb_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "32")] +pub struct UECapabilityEnquiry_v1310_IEsRequestedMaxCCsDL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "2", ub = "32")] +pub struct UECapabilityEnquiry_v1310_IEsRequestedMaxCCsUL_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1310_IEsRequestReducedIntNonContComb_r13(pub u8); +impl UECapabilityEnquiry_v1310_IEsRequestReducedIntNonContComb_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UECapabilityEnquiry_v1510_IEsRequestedFreqBandsNR_MRDC_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1530_IEsRequestSTTI_SPT_Capability_r15(pub u8); +impl UECapabilityEnquiry_v1530_IEsRequestSTTI_SPT_Capability_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1530_IEsEutra_nr_only_r15(pub u8); +impl UECapabilityEnquiry_v1530_IEsEutra_nr_only_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UECapabilityEnquiry_v1550_IEsRequestedCapabilityNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UECapabilityEnquiry_v1560_IEsRequestedCapabilityCommon_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1610_IEsRrc_SegAllowed_r16(pub u8); +impl UECapabilityEnquiry_v1610_IEsRrc_SegAllowed_r16 { + pub const ENABLED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UECapabilityEnquiry_v1710_IEsSidelinkRequest_r17(pub u8); +impl UECapabilityEnquiry_v1710_IEsSidelinkRequest_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityEnquiry_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UECapabilityEnquiry_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UECapabilityInformationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum UECapabilityInformationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeCapabilityInformation_r8(UECapabilityInformation_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(UECapabilityInformationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(UECapabilityInformationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(UECapabilityInformationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(UECapabilityInformationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(UECapabilityInformationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(UECapabilityInformationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(UECapabilityInformationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityInformationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UECapabilityInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UECapabilityInformationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(UECapabilityInformationCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UECapabilityInformation_v1250_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UECapabilityInformation_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationRequest_r9CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationRequest_r9CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationRequest_r9CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum UEInformationRequest_r9CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeInformationRequest_r9(UEInformationRequest_r9_IEs), + #[asn(key = 1, extended = false)] + Spare3(UEInformationRequest_r9CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(UEInformationRequest_r9CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(UEInformationRequest_r9CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationRequest_r9CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UEInformationRequest_r9CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UEInformationRequest_r9CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(UEInformationRequest_r9CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UEInformationRequest_r9_IEsRach_ReportReq_r9(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UEInformationRequest_r9_IEsRlf_ReportReq_r9(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEInformationRequest_v1020_IEsLogMeasReportReq_r10(pub u8); +impl UEInformationRequest_v1020_IEsLogMeasReportReq_r10 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEInformationRequest_v1130_IEsConnEstFailReportReq_r11(pub u8); +impl UEInformationRequest_v1130_IEsConnEstFailReportReq_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEInformationRequest_v1250_IEsMobilityHistoryReportReq_r12(pub u8); +impl UEInformationRequest_v1250_IEsMobilityHistoryReportReq_r12 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEInformationRequest_v1530_IEsIdleModeMeasurementReq_r15(pub u8); +impl UEInformationRequest_v1530_IEsIdleModeMeasurementReq_r15 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UEInformationRequest_v1710_IEsCoarseLocationReq_r17(pub u8); +impl UEInformationRequest_v1710_IEsCoarseLocationReq_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationRequest_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UEInformationRequest_v930_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationResponse_r9CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationResponse_r9CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEInformationResponse_r9CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum UEInformationResponse_r9CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeInformationResponse_r9(UEInformationResponse_r9_IEs), + #[asn(key = 1, extended = false)] + Spare3(UEInformationResponse_r9CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(UEInformationResponse_r9CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(UEInformationResponse_r9CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationResponse_r9CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UEInformationResponse_r9CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UEInformationResponse_r9CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(UEInformationResponse_r9CriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UEInformationResponse_v1710_IEsCoarseLocationInfo_r17(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationResponse_v1710_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UEInformationResponse_v930_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEInformationResponse_v9e0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UEPagingCoverageInformationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum UEPagingCoverageInformationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UePagingCoverageInformation_r13(UEPagingCoverageInformation_r13_IEs), + #[asn(key = 1, extended = false)] + Spare7(UEPagingCoverageInformationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(UEPagingCoverageInformationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(UEPagingCoverageInformationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(UEPagingCoverageInformationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(UEPagingCoverageInformationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(UEPagingCoverageInformationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(UEPagingCoverageInformationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEPagingCoverageInformationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UEPagingCoverageInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UEPagingCoverageInformationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + UEPagingCoverageInformationCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "256")] +pub struct UEPagingCoverageInformation_r13_IEsMpdcch_NumRepetition_r13(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UEPagingCoverageInformation_r13_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum UERadioAccessCapabilityInformationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeRadioAccessCapabilityInformation_r8(UERadioAccessCapabilityInformation_r8_IEs), + #[asn(key = 1, extended = false)] + Spare7(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(UERadioAccessCapabilityInformationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioAccessCapabilityInformationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UERadioAccessCapabilityInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UERadioAccessCapabilityInformationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + UERadioAccessCapabilityInformationCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UERadioAccessCapabilityInformation_r8_IEsUe_RadioAccessCapabilityInfo(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioAccessCapabilityInformation_r8_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare7; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare6; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare5; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare4; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UERadioPagingInformationCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "7", extensible = false)] +pub enum UERadioPagingInformationCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UeRadioPagingInformation_r12(UERadioPagingInformation_r12_IEs), + #[asn(key = 1, extended = false)] + Spare7(UERadioPagingInformationCriticalExtensions_c1_spare7), + #[asn(key = 2, extended = false)] + Spare6(UERadioPagingInformationCriticalExtensions_c1_spare6), + #[asn(key = 3, extended = false)] + Spare5(UERadioPagingInformationCriticalExtensions_c1_spare5), + #[asn(key = 4, extended = false)] + Spare4(UERadioPagingInformationCriticalExtensions_c1_spare4), + #[asn(key = 5, extended = false)] + Spare3(UERadioPagingInformationCriticalExtensions_c1_spare3), + #[asn(key = 6, extended = false)] + Spare2(UERadioPagingInformationCriticalExtensions_c1_spare2), + #[asn(key = 7, extended = false)] + Spare1(UERadioPagingInformationCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioPagingInformationCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UERadioPagingInformationCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(UERadioPagingInformationCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(UERadioPagingInformationCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct UERadioPagingInformation_r12_IEsUe_RadioPagingInfo_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct UERadioPagingInformation_v1310_IEsSupportedBandListEUTRAForPaging_r13( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UERadioPagingInformation_v1610_IEsAccessStratumRelease_r16(pub u8); +impl UERadioPagingInformation_v1610_IEsAccessStratumRelease_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UERadioPagingInformation_v1610_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct UL_256QAM_perCC_Info_r14Ul_256QAM_perCC_r14(pub u8); +impl UL_256QAM_perCC_Info_r14Ul_256QAM_perCC_r14 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UL_AM_RLCMaxRetxThreshold(pub u8); +impl UL_AM_RLCMaxRetxThreshold { + pub const T1: u8 = 0u8; + pub const T2: u8 = 1u8; + pub const T3: u8 = 2u8; + pub const T4: u8 = 3u8; + pub const T6: u8 = 4u8; + pub const T8: u8 = 5u8; + pub const T16: u8 = 6u8; + pub const T32: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UL_AM_RLC_r15MaxRetxThreshold_r15(pub u8); +impl UL_AM_RLC_r15MaxRetxThreshold_r15 { + pub const T1: u8 = 0u8; + pub const T2: u8 = 1u8; + pub const T3: u8 = 2u8; + pub const T4: u8 = 3u8; + pub const T6: u8 = 4u8; + pub const T8: u8 = 5u8; + pub const T16: u8 = 6u8; + pub const T32: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UL_AM_RLC_r15Extended_RLC_LI_Field_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_CCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + RrcConnectionReestablishmentRequest(RRCConnectionReestablishmentRequest), + #[asn(key = 1, extended = false)] + RrcConnectionRequest(RRCConnectionRequest), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "0", extensible = false)] +pub enum UL_CCCH_MessageType_messageClassExtension_c2 { + #[asn(key = 0, extended = false)] + RrcConnectionResumeRequest_r13(RRCConnectionResumeRequest_r13), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3 { + #[asn(key = 0, extended = false)] + RrcEarlyDataRequest_r15(RRCEarlyDataRequest_r15), + #[asn(key = 1, extended = false)] + Spare3(UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare3), + #[asn(key = 2, extended = false)] + Spare2(UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare2), + #[asn(key = 3, extended = false)] + Spare1(UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_messageClassExtensionFuture_r15 +{} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13 { + # [asn (key = 0 , extended = false)] C3 (UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_c3) , # [asn (key = 1 , extended = false)] MessageClassExtensionFuture_r15 (UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13_messageClassExtensionFuture_r15) , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_CCCH_MessageType_messageClassExtension { + #[asn(key = 0, extended = false)] + C2(UL_CCCH_MessageType_messageClassExtension_c2), + #[asn(key = 1, extended = false)] + MessageClassExtensionFuture_r13( + UL_CCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r13, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum UL_DCCH_MessageType_c1 { + #[asn(key = 0, extended = false)] + CsfbParametersRequestCDMA2000(CSFBParametersRequestCDMA2000), + #[asn(key = 1, extended = false)] + MeasurementReport(MeasurementReport), + #[asn(key = 2, extended = false)] + RrcConnectionReconfigurationComplete(RRCConnectionReconfigurationComplete), + #[asn(key = 3, extended = false)] + RrcConnectionReestablishmentComplete(RRCConnectionReestablishmentComplete), + #[asn(key = 4, extended = false)] + RrcConnectionSetupComplete(RRCConnectionSetupComplete), + #[asn(key = 5, extended = false)] + SecurityModeComplete(SecurityModeComplete), + #[asn(key = 6, extended = false)] + SecurityModeFailure(SecurityModeFailure), + #[asn(key = 7, extended = false)] + UeCapabilityInformation(UECapabilityInformation), + #[asn(key = 8, extended = false)] + UlHandoverPreparationTransfer(ULHandoverPreparationTransfer), + #[asn(key = 9, extended = false)] + UlInformationTransfer(ULInformationTransfer), + #[asn(key = 10, extended = false)] + CounterCheckResponse(CounterCheckResponse), + #[asn(key = 11, extended = false)] + UeInformationResponse_r9(UEInformationResponse_r9), + #[asn(key = 12, extended = false)] + ProximityIndication_r9(ProximityIndication_r9), + #[asn(key = 13, extended = false)] + RnReconfigurationComplete_r10(RNReconfigurationComplete_r10), + #[asn(key = 14, extended = false)] + MbmsCountingResponse_r10(MBMSCountingResponse_r10), + #[asn(key = 15, extended = false)] + InterFreqRSTDMeasurementIndication_r10(InterFreqRSTDMeasurementIndication_r10), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "15", extensible = false)] +pub enum UL_DCCH_MessageType_messageClassExtension_c2 { + #[asn(key = 0, extended = false)] + UeAssistanceInformation_r11(UEAssistanceInformation_r11), + #[asn(key = 1, extended = false)] + InDeviceCoexIndication_r11(InDeviceCoexIndication_r11), + #[asn(key = 2, extended = false)] + MbmsInterestIndication_r11(MBMSInterestIndication_r11), + #[asn(key = 3, extended = false)] + ScgFailureInformation_r12(SCGFailureInformation_r12), + #[asn(key = 4, extended = false)] + SidelinkUEInformation_r12(SidelinkUEInformation_r12), + #[asn(key = 5, extended = false)] + WlanConnectionStatusReport_r13(WLANConnectionStatusReport_r13), + #[asn(key = 6, extended = false)] + RrcConnectionResumeComplete_r13(RRCConnectionResumeComplete_r13), + #[asn(key = 7, extended = false)] + UlInformationTransferMRDC_r15(ULInformationTransferMRDC_r15), + #[asn(key = 8, extended = false)] + ScgFailureInformationNR_r15(SCGFailureInformationNR_r15), + #[asn(key = 9, extended = false)] + MeasReportAppLayer_r15(MeasReportAppLayer_r15), + #[asn(key = 10, extended = false)] + FailureInformation_r15(FailureInformation_r15), + #[asn(key = 11, extended = false)] + UlDedicatedMessageSegment_r16(ULDedicatedMessageSegment_r16), + #[asn(key = 12, extended = false)] + PurConfigurationRequest_r16(PURConfigurationRequest_r16), + #[asn(key = 13, extended = false)] + FailureInformation_r16(FailureInformation_r16), + #[asn(key = 14, extended = false)] + McgFailureInformation_r16(MCGFailureInformation_r16), + #[asn(key = 15, extended = false)] + UlInformationTransferIRAT_r16(ULInformationTransferIRAT_r16), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_DCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r11 {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UL_DCCH_MessageType_messageClassExtension { + #[asn(key = 0, extended = false)] + C2(UL_DCCH_MessageType_messageClassExtension_c2), + #[asn(key = 1, extended = false)] + MessageClassExtensionFuture_r11( + UL_DCCH_MessageType_messageClassExtension_messageClassExtensionFuture_r11, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UL_DelayConfig_r13_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "15")] +pub struct UL_DelayConfig_r13_setupDelayThreshold_r13(pub u8); +impl UL_DelayConfig_r13_setupDelayThreshold_r13 { + pub const MS30: u8 = 0u8; + pub const MS40: u8 = 1u8; + pub const MS50: u8 = 2u8; + pub const MS60: u8 = 3u8; + pub const MS70: u8 = 4u8; + pub const MS80: u8 = 5u8; + pub const MS90: u8 = 6u8; + pub const MS100: u8 = 7u8; + pub const MS150: u8 = 8u8; + pub const MS300: u8 = 9u8; + pub const MS500: u8 = 10u8; + pub const MS750: u8 = 11u8; + pub const SPARE4: u8 = 12u8; + pub const SPARE3: u8 = 13u8; + pub const SPARE2: u8 = 14u8; + pub const SPARE1: u8 = 15u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_DelayConfig_r13_setup { + pub delay_threshold_r13: UL_DelayConfig_r13_setupDelayThreshold_r13, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UL_DelayValueConfig_r16_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "11")] +pub struct UL_DelayValueConfig_r16_setupDelay_DRBlist_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UL_DelayValueConfig_r16_setup { + pub delay_dr_blist_r16: UL_DelayValueConfig_r16_setupDelay_DRBlist_r16, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UL_PDCP_DelayResult_r13Qci_Id_r13(pub u8); +impl UL_PDCP_DelayResult_r13Qci_Id_r13 { + pub const QCI1: u8 = 0u8; + pub const QCI2: u8 = 1u8; + pub const QCI3: u8 = 2u8; + pub const QCI4: u8 = 3u8; + pub const SPARE4: u8 = 4u8; + pub const SPARE3: u8 = 5u8; + pub const SPARE2: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct UL_PDCP_DelayResult_r13ExcessDelay_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "10000")] +pub struct UL_PDCP_DelayValueResult_r16AverageDelay_r16(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UL_ReferenceSignalsPUSCHGroupHoppingEnabled(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "29")] +pub struct UL_ReferenceSignalsPUSCHGroupAssignmentPUSCH(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UL_ReferenceSignalsPUSCHSequenceHoppingEnabled(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "7")] +pub struct UL_ReferenceSignalsPUSCHCyclicShift(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULDedicatedMessageSegment_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ULDedicatedMessageSegment_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + UlDedicatedMessageSegment_r16(ULDedicatedMessageSegment_r16_IEs), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + ULDedicatedMessageSegment_r16CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct ULDedicatedMessageSegment_r16_IEsSegmentNumber_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULDedicatedMessageSegment_r16_IEsRrc_MessageSegmentContainer_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct ULDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16(pub u8); +impl ULDedicatedMessageSegment_r16_IEsRrc_MessageSegmentType_r16 { + pub const NOT_LAST_SEGMENT: u8 = 0u8; + pub const LAST_SEGMENT: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULDedicatedMessageSegment_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULDedicatedMessageSegment_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULHandoverPreparationTransferCriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULHandoverPreparationTransferCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULHandoverPreparationTransferCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ULHandoverPreparationTransferCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UlHandoverPreparationTransfer_r8(ULHandoverPreparationTransfer_r8_IEs), + #[asn(key = 1, extended = false)] + Spare3(ULHandoverPreparationTransferCriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(ULHandoverPreparationTransferCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(ULHandoverPreparationTransferCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULHandoverPreparationTransferCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ULHandoverPreparationTransferCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(ULHandoverPreparationTransferCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + ULHandoverPreparationTransferCriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "56", sz_ub = "56")] +pub struct ULHandoverPreparationTransfer_r8_IEsMeid( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULHandoverPreparationTransfer_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULHandoverPreparationTransfer_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferCriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferCriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ULInformationTransferCriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UlInformationTransfer_r8(ULInformationTransfer_r8_IEs), + #[asn(key = 1, extended = false)] + UlInformationTransfer_r16(ULInformationTransfer_r16_IEs), + #[asn(key = 2, extended = false)] + Spare2(ULInformationTransferCriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(ULInformationTransferCriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferCriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ULInformationTransferCriticalExtensions { + #[asn(key = 0, extended = false)] + C1(ULInformationTransferCriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture(ULInformationTransferCriticalExtensions_criticalExtensionsFuture), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum ULInformationTransfer_r16_IEsDedicatedInfoType_r16 { + #[asn(key = 0, extended = false)] + DedicatedInfoNAS_r16(DedicatedInfoNAS), + #[asn(key = 1, extended = false)] + DedicatedInfoCDMA2000_1XRTT_r16(DedicatedInfoCDMA2000), + #[asn(key = 2, extended = false)] + DedicatedInfoCDMA2000_HRPD_r16(DedicatedInfoCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "2", extensible = false)] +pub enum ULInformationTransfer_r8_IEsDedicatedInfoType { + #[asn(key = 0, extended = false)] + DedicatedInfoNAS(DedicatedInfoNAS), + #[asn(key = 1, extended = false)] + DedicatedInfoCDMA2000_1XRTT(DedicatedInfoCDMA2000), + #[asn(key = 2, extended = false)] + DedicatedInfoCDMA2000_HRPD(DedicatedInfoCDMA2000), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULInformationTransfer_v8a0_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransfer_v8a0_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferIRAT_r16CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferIRAT_r16CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferIRAT_r16CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ULInformationTransferIRAT_r16CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UlInformationTransferIRAT_r16(ULInformationTransferIRAT_r16_IEs), + #[asn(key = 1, extended = false)] + Spare3(ULInformationTransferIRAT_r16CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(ULInformationTransferIRAT_r16CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(ULInformationTransferIRAT_r16CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferIRAT_r16CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ULInformationTransferIRAT_r16CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(ULInformationTransferIRAT_r16CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + ULInformationTransferIRAT_r16CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULInformationTransferIRAT_r16_IEsUl_DCCH_MessageNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULInformationTransferIRAT_r16_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferIRAT_r16_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferMRDC_r15CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferMRDC_r15CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ULInformationTransferMRDC_r15CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum ULInformationTransferMRDC_r15CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + UlInformationTransferMRDC_r15(ULInformationTransferMRDC_r15_IEs), + #[asn(key = 1, extended = false)] + Spare3(ULInformationTransferMRDC_r15CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(ULInformationTransferMRDC_r15CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(ULInformationTransferMRDC_r15CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferMRDC_r15CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum ULInformationTransferMRDC_r15CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(ULInformationTransferMRDC_r15CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + ULInformationTransferMRDC_r15CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULInformationTransferMRDC_r15_IEsUl_DCCH_MessageNR_r15(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct ULInformationTransferMRDC_r15_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct ULInformationTransferMRDC_r15_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPUSCH_LessPowerControlDedicated_v1430P0_UE_PeriodicSRS_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPUSCH_LessPowerControlDedicated_v1430P0_UE_AperiodicSRS_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPUSCH_LessPowerControlDedicated_v1430AccumulationEnabled_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "31")] +pub struct UplinkPowerControlAddSRS_r16StartingBitOfFormat3B_SRS_Add_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "1", ub = "2")] +pub struct UplinkPowerControlAddSRS_r16FieldTypeFormat3B_SRS_Add_r16(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-16", ub = "15")] +pub struct UplinkPowerControlAddSRS_r16P0_UE_SRS_Add_r16(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPowerControlAddSRS_r16AccumulationEnabledSRS_Add_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlCommonP0_NominalPUSCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-127", ub = "-96")] +pub struct UplinkPowerControlCommonP0_NominalPUCCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "6")] +pub struct UplinkPowerControlCommonDeltaPreambleMsg3(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format3_r10(pub u8); +impl UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format3_r10 { + pub const DELTA_F_1: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F1: u8 = 2u8; + pub const DELTA_F2: u8 = 3u8; + pub const DELTA_F3: u8 = 4u8; + pub const DELTA_F4: u8 = 5u8; + pub const DELTA_F5: u8 = 6u8; + pub const DELTA_F6: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format1bCS_r10(pub u8); +impl UplinkPowerControlCommon_v1020DeltaF_PUCCH_Format1bCS_r10 { + pub const DELTA_F1: u8 = 0u8; + pub const DELTA_F2: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommon_v1310DeltaF_PUCCH_Format4_r13(pub u8); +impl UplinkPowerControlCommon_v1310DeltaF_PUCCH_Format4_r13 { + pub const DELTA_F16: u8 = 0u8; + pub const DELTA_F15: u8 = 1u8; + pub const DELTA_F14: u8 = 2u8; + pub const DELTA_F13: u8 = 3u8; + pub const DELTA_F12: u8 = 4u8; + pub const DELTA_F11: u8 = 5u8; + pub const DELTA_F10: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommon_v1310DeltaF_PUCCH_Format5_13(pub u8); +impl UplinkPowerControlCommon_v1310DeltaF_PUCCH_Format5_13 { + pub const DELTA_F13: u8 = 0u8; + pub const DELTA_F12: u8 = 1u8; + pub const DELTA_F11: u8 = 2u8; + pub const DELTA_F10: u8 = 3u8; + pub const DELTA_F9: u8 = 4u8; + pub const DELTA_F8: u8 = 5u8; + pub const DELTA_F7: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlCommon_v1610P0_NominalSRS_Add_r16(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format3_r12(pub u8); +impl UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format3_r12 { + pub const DELTA_F_1: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F1: u8 = 2u8; + pub const DELTA_F2: u8 = 3u8; + pub const DELTA_F3: u8 = 4u8; + pub const DELTA_F4: u8 = 5u8; + pub const DELTA_F5: u8 = 6u8; + pub const DELTA_F6: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format1bCS_r12(pub u8); +impl UplinkPowerControlCommonPSCell_r12DeltaF_PUCCH_Format1bCS_r12 { + pub const DELTA_F1: u8 = 0u8; + pub const DELTA_F2: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-127", ub = "-96")] +pub struct UplinkPowerControlCommonPSCell_r12P0_NominalPUCCH_r12(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlCommonPUSCH_LessCell_v1430P0_Nominal_PeriodicSRS_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlCommonPUSCH_LessCell_v1430P0_Nominal_AperiodicSRS_r14(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlCommonSCell_r10P0_NominalPUSCH_r10(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-1", ub = "6")] +pub struct UplinkPowerControlCommonSCell_v1130DeltaPreambleMsg3_r11(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-127", ub = "-96")] +pub struct UplinkPowerControlCommonSCell_v1310P0_NominalPUCCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format3_r12(pub u8); +impl UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format3_r12 { + pub const DELTA_F_1: u8 = 0u8; + pub const DELTA_F0: u8 = 1u8; + pub const DELTA_F1: u8 = 2u8; + pub const DELTA_F2: u8 = 3u8; + pub const DELTA_F3: u8 = 4u8; + pub const DELTA_F4: u8 = 5u8; + pub const DELTA_F5: u8 = 6u8; + pub const DELTA_F6: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format1bCS_r12(pub u8); +impl UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format1bCS_r12 { + pub const DELTA_F1: u8 = 0u8; + pub const DELTA_F2: u8 = 1u8; + pub const SPARE2: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format4_r13(pub u8); +impl UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format4_r13 { + pub const DELTA_F16: u8 = 0u8; + pub const DELTA_F15: u8 = 1u8; + pub const DELTA_F14: u8 = 2u8; + pub const DELTA_F13: u8 = 3u8; + pub const DELTA_F12: u8 = 4u8; + pub const DELTA_F11: u8 = 5u8; + pub const DELTA_F10: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "7")] +pub struct UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format5_13(pub u8); +impl UplinkPowerControlCommonSCell_v1310DeltaF_PUCCH_Format5_13 { + pub const DELTA_F13: u8 = 0u8; + pub const DELTA_F12: u8 = 1u8; + pub const DELTA_F11: u8 = 2u8; + pub const DELTA_F10: u8 = 3u8; + pub const DELTA_F9: u8 = 4u8; + pub const DELTA_F8: u8 = 5u8; + pub const DELTA_F7: u8 = 6u8; + pub const SPARE1: u8 = 7u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPowerControlDedicatedP0_UE_PUSCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UplinkPowerControlDedicatedDeltaMCS_Enabled(pub u8); +impl UplinkPowerControlDedicatedDeltaMCS_Enabled { + pub const EN0: u8 = 0u8; + pub const EN1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPowerControlDedicatedAccumulationEnabled(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPowerControlDedicatedP0_UE_PUCCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct UplinkPowerControlDedicatedPSRS_Offset(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct UplinkPowerControlDedicated_v1020PSRS_OffsetAp_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "16", ub = "31")] +pub struct UplinkPowerControlDedicated_v1130PSRS_Offset_v1130(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "16", ub = "31")] +pub struct UplinkPowerControlDedicated_v1130PSRS_OffsetAp_v1130(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct UplinkPowerControlDedicated_v1250Set2PowerControlParameter_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "10", sz_ub = "10")] +pub struct UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupTpc_SubframeSet_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-126", ub = "24")] +pub struct UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupP0_NominalPUSCH_SubframeSet2_r12( + pub i8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupP0_UE_PUSCH_SubframeSet2_r12( + pub i8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setup { pub tpc_subframe_set_r12 : UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupTpc_SubframeSet_r12 , pub p0_nominal_pusch_subframe_set2_r12 : UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupP0_NominalPUSCH_SubframeSet2_r12 , pub alpha_subframe_set2_r12 : Alpha_r12 , pub p0_ue_pusch_subframe_set2_r12 : UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setupP0_UE_PUSCH_SubframeSet2_r12 , } + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum UplinkPowerControlDedicated_v1250Set2PowerControlParameter { + #[asn(key = 0, extended = false)] + Release(UplinkPowerControlDedicated_v1250Set2PowerControlParameter_release), + #[asn(key = 1, extended = false)] + Setup(UplinkPowerControlDedicated_v1250Set2PowerControlParameter_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-16", ub = "15")] +pub struct UplinkPowerControlDedicated_v1530P0_UE_PUSCH_r15(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPowerControlDedicatedSCell_r10P0_UE_PUSCH_r10(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UplinkPowerControlDedicatedSCell_r10DeltaMCS_Enabled_r10(pub u8); +impl UplinkPowerControlDedicatedSCell_r10DeltaMCS_Enabled_r10 { + pub const EN0: u8 = 0u8; + pub const EN1: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPowerControlDedicatedSCell_r10AccumulationEnabled_r10(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct UplinkPowerControlDedicatedSCell_r10PSRS_Offset_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "15")] +pub struct UplinkPowerControlDedicatedSCell_r10PSRS_OffsetAp_r10(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct UplinkPowerControlDedicatedSCell_r10PathlossReferenceLinking_r10(pub u8); +impl UplinkPowerControlDedicatedSCell_r10PathlossReferenceLinking_r10 { + pub const P_CELL: u8 = 0u8; + pub const S_CELL: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-8", ub = "7")] +pub struct UplinkPowerControlDedicatedSCell_v1310P0_UE_PUCCH(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPowerControlDedicatedSTTI_r15AccumulationEnabledSTTI_r15(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct UplinkPowerControlDedicatedSTTI_r15UplinkPower_CSIPayload(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct V2X_BandCombinationParametersEUTRA_NR_v1630BandListSidelinkEUTRA_NR_r16( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE-OF", sz_extensible = false, sz_lb = "1", sz_ub = "64")] +pub struct V2X_BandCombinationParametersEUTRA_NR_v1630BandListSidelinkEUTRA_NR_v1630( + pub Vec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct V2X_BandParameters_v1530V2x_EnhancedHighReception_r15(pub u8); +impl V2X_BandParameters_v1530V2x_EnhancedHighReception_r15 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct V2X_BandParametersEUTRA_NR_r16_eutra { + #[asn(optional_idx = 0)] + pub v2x_band_parameters1_r16: Option, + #[asn(optional_idx = 1)] + pub v2x_band_parameters2_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct V2X_BandParametersEUTRA_NR_r16_nrV2x_BandParametersNR_r16(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 1)] +pub struct V2X_BandParametersEUTRA_NR_r16_nr { + #[asn(optional_idx = 0)] + pub v2x_band_parameters_nr_r16: + Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct V2X_BandParametersEUTRA_NR_v1630_eutra; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct V2X_BandParametersEUTRA_NR_v1630_nrTx_Sidelink_r16(pub u8); +impl V2X_BandParametersEUTRA_NR_v1630_nrTx_Sidelink_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct V2X_BandParametersEUTRA_NR_v1630_nrRx_Sidelink_r16(pub u8); +impl V2X_BandParametersEUTRA_NR_v1630_nrRx_Sidelink_r16 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false, optional_fields = 2)] +pub struct V2X_BandParametersEUTRA_NR_v1630_nr { + #[asn(optional_idx = 0)] + pub tx_sidelink_r16: Option, + #[asn(optional_idx = 1)] + pub rx_sidelink_r16: Option, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct V2X_BandParametersEUTRA_NR_v1710V2x_BandParametersEUTRA_NR_v1710(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VarLogMeasConfig_r17MeasUncomBarPre_r17(pub u8); +impl VarLogMeasConfig_r17MeasUncomBarPre_r17 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct VarLogMeasReport_r10TraceRecordingSessionRef_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct VarLogMeasReport_r10Tce_Id_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "2", sz_ub = "2")] +pub struct VarLogMeasReport_r11TraceRecordingSessionRef_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct VarLogMeasReport_r11Tce_Id_r10(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "-140", ub = "-44")] +pub struct VarMeasConfigS_Measure(pub i8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct VarMeasConfigSpeedStatePars_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VarMeasConfigSpeedStatePars_setup { + pub mobility_state_parameters: MobilityStateParameters, + pub time_to_trigger_sf: SpeedStateScaleFactors, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum VarMeasConfigSpeedStatePars { + #[asn(key = 0, extended = false)] + Release(VarMeasConfigSpeedStatePars_release), + #[asn(key = 1, extended = false)] + Setup(VarMeasConfigSpeedStatePars_setup), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct VarMeasConfigAllowInterruptions_r11(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "6")] +pub struct VarMeasIdleConfig_r15MeasIdleDuration_r15(pub u8); +impl VarMeasIdleConfig_r15MeasIdleDuration_r15 { + pub const SEC10: u8 = 0u8; + pub const SEC30: u8 = 1u8; + pub const SEC60: u8 = 2u8; + pub const SEC120: u8 = 3u8; + pub const SEC180: u8 = 4u8; + pub const SEC240: u8 = 5u8; + pub const SEC300: u8 = 6u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER")] +pub struct VarMeasReportNumberOfReportsSent(pub i64); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct VarPendingRnaUpdate_r15PendingRnaUpdate(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "1", sz_ub = "1")] +pub struct VarShortResumeMAC_Input_r13ResumeDiscriminator_r13( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VarWLAN_MobilityConfigSuccessReportRequested(pub u8); +impl VarWLAN_MobilityConfigSuccessReportRequested { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Gps_r11(pub u8); +impl VictimSystemType_r11Gps_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Glonass_r11(pub u8); +impl VictimSystemType_r11Glonass_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Bds_r11(pub u8); +impl VictimSystemType_r11Bds_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Galileo_r11(pub u8); +impl VictimSystemType_r11Galileo_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Wlan_r11(pub u8); +impl VictimSystemType_r11Wlan_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_r11Bluetooth_r11(pub u8); +impl VictimSystemType_r11Bluetooth_r11 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct VictimSystemType_v1610Navic_r16(pub u8); +impl VictimSystemType_v1610Navic_r16 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct VisitedCellInfo_r12VisitedCellId_r12_pci_arfcn_r12 { + pub phys_cell_id_r12: PhysCellId, + pub carrier_freq_r12: ARFCN_ValueEUTRA_r9, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum VisitedCellInfo_r12VisitedCellId_r12 { + #[asn(key = 0, extended = false)] + CellGlobalId_r12(CellGlobalIdEUTRA), + #[asn(key = 1, extended = false)] + Pci_arfcn_r12(VisitedCellInfo_r12VisitedCellId_r12_pci_arfcn_r12), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "4095")] +pub struct VisitedCellInfo_r12TimeSpent_r12(pub u16); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_CarrierInfo_r13OperatingClass_r13(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "3")] +pub struct WLAN_CarrierInfo_r13CountryCode_r13(pub u8); +impl WLAN_CarrierInfo_r13CountryCode_r13 { + pub const UNITED_STATES: u8 = 0u8; + pub const EUROPE: u8 = 1u8; + pub const JAPAN: u8 = 2u8; + pub const GLOBAL: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct WLAN_IW_Parameters_r12Wlan_IW_RAN_Rules_r12(pub u8); +impl WLAN_IW_Parameters_r12Wlan_IW_RAN_Rules_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct WLAN_IW_Parameters_r12Wlan_IW_ANDSF_Policies_r12(pub u8); +impl WLAN_IW_Parameters_r12Wlan_IW_ANDSF_Policies_r12 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct WLAN_IW_Parameters_v1310Rclwi_r13(pub u8); +impl WLAN_IW_Parameters_v1310Rclwi_r13 { + pub const SUPPORTED: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn( + type = "OCTET-STRING", + sz_extensible = false, + sz_lb = "1", + sz_ub = "32" +)] +pub struct WLAN_Identifiers_r12Ssid_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct WLAN_Identifiers_r12Bssid_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING", sz_extensible = false, sz_lb = "6", sz_ub = "6")] +pub struct WLAN_Identifiers_r12Hessid_r12(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "4")] +pub struct WLAN_MobilityConfig_r13AssociationTimer_r13(pub u8); +impl WLAN_MobilityConfig_r13AssociationTimer_r13 { + pub const S10: u8 = 0u8; + pub const S30: u8 = 1u8; + pub const S60: u8 = 2u8; + pub const S120: u8 = 3u8; + pub const S240: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "0")] +pub struct WLAN_MobilityConfig_r13SuccessReportRequested_r13(pub u8); +impl WLAN_MobilityConfig_r13SuccessReportRequested_r13 { + pub const TRUE: u8 = 0u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct WLAN_NameListConfig_r15_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdRSRP_r12 { + pub threshold_rsrp_low_r12: RSRP_Range, + pub threshold_rsrp_high_r12: RSRP_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdRSRQ_r12 { + pub threshold_rsrq_low_r12: RSRQ_Range, + pub threshold_rsrq_high_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdRSRQ_OnAllSymbolsWithWB_r12 { + pub threshold_rsrq_on_all_symbols_with_wb_low_r12: RSRQ_Range, + pub threshold_rsrq_on_all_symbols_with_wb_high_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdRSRQ_OnAllSymbols_r12 { + pub threshold_rsrq_on_all_symbols_low_r12: RSRQ_Range, + pub threshold_rsrq_on_all_symbols_high_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdRSRQ_WB_r12 { + pub threshold_rsrq_wb_low_r12: RSRQ_Range, + pub threshold_rsrq_wb_high_r12: RSRQ_Range, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_OffloadConfig_r12ThresholdChannelUtilization_r12ThresholdChannelUtilizationLow_r12( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_OffloadConfig_r12ThresholdChannelUtilization_r12ThresholdChannelUtilizationHigh_r12( + pub u8, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdChannelUtilization_r12 { + pub threshold_channel_utilization_low_r12: + WLAN_OffloadConfig_r12ThresholdChannelUtilization_r12ThresholdChannelUtilizationLow_r12, + pub threshold_channel_utilization_high_r12: + WLAN_OffloadConfig_r12ThresholdChannelUtilization_r12ThresholdChannelUtilizationHigh_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdBackhaul_Bandwidth_r12 { + pub threshold_backhaul_dl_bandwidth_low_r12: WLAN_backhaulRate_r12, + pub threshold_backhaul_dl_bandwidth_high_r12: WLAN_backhaulRate_r12, + pub threshold_backhaul_ul_bandwidth_low_r12: WLAN_backhaulRate_r12, + pub threshold_backhaul_ul_bandwidth_high_r12: WLAN_backhaulRate_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_OffloadConfig_r12ThresholdWLAN_RSSI_r12ThresholdWLAN_RSSI_Low_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_OffloadConfig_r12ThresholdWLAN_RSSI_r12ThresholdWLAN_RSSI_High_r12(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLAN_OffloadConfig_r12ThresholdWLAN_RSSI_r12 { + pub threshold_wlan_rssi_low_r12: + WLAN_OffloadConfig_r12ThresholdWLAN_RSSI_r12ThresholdWLAN_RSSI_Low_r12, + pub threshold_wlan_rssi_high_r12: + WLAN_OffloadConfig_r12ThresholdWLAN_RSSI_r12ThresholdWLAN_RSSI_High_r12, +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct WLAN_OffloadConfig_r12OffloadPreferenceIndicator_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "16777215")] +pub struct WLAN_RTT_r15RttValue_r15(pub u32); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", extensible = true, lb = "0", ub = "4")] +pub struct WLAN_RTT_r15RttUnits_r15(pub u8); +impl WLAN_RTT_r15RttUnits_r15 { + pub const MICROSECONDS: u8 = 0u8; + pub const HUNDREDSOFNANOSECONDS: u8 = 1u8; + pub const TENSOFNANOSECONDS: u8 = 2u8; + pub const NANOSECONDS: u8 = 3u8; + pub const TENTHSOFNANOSECONDS: u8 = 4u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "255")] +pub struct WLAN_RTT_r15RttAccuracy_r15(pub u8); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct WLAN_SuspendConfig_r14Wlan_SuspendResumeAllowed_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct WLAN_SuspendConfig_r14Wlan_SuspendTriggersStatusReport_r14(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct WLANConnectionStatusReport_r13CriticalExtensions_c1_spare3; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct WLANConnectionStatusReport_r13CriticalExtensions_c1_spare2; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct WLANConnectionStatusReport_r13CriticalExtensions_c1_spare1; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "3", extensible = false)] +pub enum WLANConnectionStatusReport_r13CriticalExtensions_c1 { + #[asn(key = 0, extended = false)] + WlanConnectionStatusReport_r13(WLANConnectionStatusReport_r13_IEs), + #[asn(key = 1, extended = false)] + Spare3(WLANConnectionStatusReport_r13CriticalExtensions_c1_spare3), + #[asn(key = 2, extended = false)] + Spare2(WLANConnectionStatusReport_r13CriticalExtensions_c1_spare2), + #[asn(key = 3, extended = false)] + Spare1(WLANConnectionStatusReport_r13CriticalExtensions_c1_spare1), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLANConnectionStatusReport_r13CriticalExtensions_criticalExtensionsFuture {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "CHOICE", lb = "0", ub = "1", extensible = false)] +pub enum WLANConnectionStatusReport_r13CriticalExtensions { + #[asn(key = 0, extended = false)] + C1(WLANConnectionStatusReport_r13CriticalExtensions_c1), + #[asn(key = 1, extended = false)] + CriticalExtensionsFuture( + WLANConnectionStatusReport_r13CriticalExtensions_criticalExtensionsFuture, + ), +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "OCTET-STRING")] +pub struct WLANConnectionStatusReport_r13_IEsLateNonCriticalExtension(pub Vec); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "SEQUENCE", extensible = false)] +pub struct WLANConnectionStatusReport_v1430_IEsNonCriticalExtension {} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_r15MaxDurationFactor_r15(pub u8); +impl WUS_Config_r15MaxDurationFactor_r15 { + pub const ONE32TH: u8 = 0u8; + pub const ONE16TH: u8 = 1u8; + pub const ONE8TH: u8 = 2u8; + pub const ONE4TH: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_r15NumPOs_r15(pub u8); +impl WUS_Config_r15NumPOs_r15 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_r15FreqLocation_r15(pub u8); +impl WUS_Config_r15FreqLocation_r15 { + pub const N0: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const SPARE1: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_r15TimeOffsetDRX_r15(pub u8); +impl WUS_Config_r15TimeOffsetDRX_r15 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_r15TimeOffset_eDRX_Short_r15(pub u8); +impl WUS_Config_r15TimeOffset_eDRX_Short_r15 { + pub const MS40: u8 = 0u8; + pub const MS80: u8 = 1u8; + pub const MS160: u8 = 2u8; + pub const MS240: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "1")] +pub struct WUS_Config_r15TimeOffset_eDRX_Long_r15(pub u8); +impl WUS_Config_r15TimeOffset_eDRX_Long_r15 { + pub const MS1000: u8 = 0u8; + pub const MS2000: u8 = 1u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_v1560PowerBoost_r15(pub u8); +impl WUS_Config_v1560PowerBoost_r15 { + pub const D_B0: u8 = 0u8; + pub const D_B1DOT8: u8 = 1u8; + pub const D_B3: u8 = 2u8; + pub const D_B4DOT8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "ENUMERATED", lb = "0", ub = "3")] +pub struct WUS_Config_v1610NumDRX_CyclesRelaxed_r16(pub u8); +impl WUS_Config_v1610NumDRX_CyclesRelaxed_r16 { + pub const N1: u8 = 0u8; + pub const N2: u8 = 1u8; + pub const N4: u8 = 2u8; + pub const N8: u8 = 3u8; +} + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct WidebandPRG_r16WidebandPRG_Subframe_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BOOLEAN")] +pub struct WidebandPRG_r16WidebandPRG_SlotSubslot_r16(pub bool); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "NULL")] +pub struct ZeroTxPowerCSI_RS_Conf_r12_release; + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "BITSTRING", sz_extensible = false, sz_lb = "16", sz_ub = "16")] +pub struct ZeroTxPowerCSI_RS_r12ZeroTxPowerResourceConfigList_r12( + pub bitvec::vec::BitVec, +); + +#[derive(asn1_codecs_derive :: UperCodec, Clone, PartialEq, serde :: Serialize, Debug)] +#[asn(type = "INTEGER", lb = "0", ub = "154")] +pub struct ZeroTxPowerCSI_RS_r12ZeroTxPowerSubframeConfig_r12(pub u8); diff --git a/lte-parser/tests/lte_rrc_test.rs b/lte-parser/tests/lte_rrc_test.rs new file mode 100644 index 0000000..d19a682 --- /dev/null +++ b/lte-parser/tests/lte_rrc_test.rs @@ -0,0 +1,17 @@ +use telcom_parser::lte_rrc::BCCH_DL_SCH_Message; +use asn1_codecs::{uper::UperCodec, PerCodecData}; + +fn hex_to_bin(hex: &str) -> Vec { + (0..hex.len()) + .step_by(2) + .map(|i| u8::from_str_radix(&hex[i..i+2], 16).unwrap()) + .collect() +} + +#[test] +fn test() { + let data = hex_to_bin("484c469010600018fd1a9207e22103108ac21bdc09802292cdd20000"); + let mut asn_data = PerCodecData::from_slice_uper(&data); + let sib1 = BCCH_DL_SCH_Message::uper_decode(&mut asn_data); + dbg!(&sib1); +} From 7e4511fdde451084e8f471f20292cef50a8f6355 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Wed, 31 Jan 2024 17:49:56 -0800 Subject: [PATCH 2/5] lib: add lte-parser crate support This'll let us convert a Gsmtap message into a fully parsed LTE message. --- Cargo.lock | 333 +++--------------------------------------- lib/Cargo.toml | 1 + lib/src/lib.rs | 1 + lib/src/lte_rrc.rs | 71 +++++++++ lte-parser/Cargo.toml | 23 +-- lte-parser/README.md | 4 +- lte-parser/src/lib.rs | 16 ++ 7 files changed, 113 insertions(+), 336 deletions(-) create mode 100644 lib/src/lte_rrc.rs diff --git a/Cargo.lock b/Cargo.lock index 2e935be..3ea3490 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -59,12 +59,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - [[package]] name = "anstream" version = "0.6.11" @@ -133,7 +127,7 @@ checksum = "b1d056f38f3e98ffe9808e6a482d1527e4ded46e72b3dbe77305f5508e76c5f6" dependencies = [ "bitvec", "clap", - "env_logger 0.10.2", + "env_logger", "heck", "lazy_static", "log", @@ -168,17 +162,6 @@ dependencies = [ "syn 2.0.48", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -255,15 +238,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "basic-toml" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -316,12 +290,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - [[package]] name = "cc" version = "1.0.83" @@ -352,33 +320,6 @@ dependencies = [ "windows-targets 0.52.0", ] -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - [[package]] name = "clap" version = "4.5.0" @@ -446,73 +387,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot", - "is-terminal", - "itertools", - "num-traits", - "once_cell", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "darling" version = "0.14.4" @@ -583,25 +457,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.10.2" @@ -716,12 +571,6 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - [[package]] name = "h2" version = "0.4.2" @@ -741,16 +590,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "half" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" -dependencies = [ - "cfg-if", - "crunchy", -] - [[package]] name = "hashbrown" version = "0.14.3" @@ -767,27 +606,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - [[package]] name = "http" version = "1.0.0" @@ -939,20 +763,11 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ - "hermit-abi 0.3.4", + "hermit-abi", "rustix", "windows-sys 0.52.0", ] -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.10" @@ -961,9 +776,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -1022,12 +837,9 @@ dependencies = [ "asn1-compiler", "asn1_codecs_derive", "bitvec", - "criterion", - "env_logger 0.9.3", - "hex", "log", "serde", - "trybuild", + "thiserror", ] [[package]] @@ -1093,7 +905,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.4", + "hermit-abi", "libc", ] @@ -1112,12 +924,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - [[package]] name = "parking_lot" version = "0.12.1" @@ -1196,34 +1002,6 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" -[[package]] -name = "plotters" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" - -[[package]] -name = "plotters-svg" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" -dependencies = [ - "plotters-backend", -] - [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -1294,9 +1072,10 @@ dependencies = [ "chrono", "crc", "deku", - "env_logger 0.10.2", + "env_logger", "libc", "log", + "lte-parser", "pcap-file", "thiserror", ] @@ -1307,7 +1086,7 @@ version = "0.1.0" dependencies = [ "axum", "chrono", - "env_logger 0.10.2", + "env_logger", "futures-core", "futures-macro", "include_dir", @@ -1322,26 +1101,6 @@ dependencies = [ "toml", ] -[[package]] -name = "rayon" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "rdrand" version = "0.4.0" @@ -1443,15 +1202,6 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -1646,16 +1396,6 @@ dependencies = [ "syn 2.0.48", ] -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "tokio" version = "1.35.1" @@ -1801,21 +1541,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "trybuild" -version = "1.0.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f" -dependencies = [ - "basic-toml", - "glob", - "once_cell", - "serde", - "serde_derive", - "serde_json", - "termcolor", -] - [[package]] name = "unicase" version = "2.7.0" @@ -1849,16 +1574,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1867,9 +1582,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1877,9 +1592,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", @@ -1892,9 +1607,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1902,9 +1617,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", @@ -1915,19 +1630,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" - -[[package]] -name = "web-sys" -version = "0.3.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" -dependencies = [ - "js-sys", - "wasm-bindgen", -] +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "winapi" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index a3228a1..4ba867d 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -14,3 +14,4 @@ libc = "0.2.150" log = "0.4.20" pcap-file = "2.0.0" thiserror = "1.0.50" +lte-parser = { path = "../lte-parser" } diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 61de5e9..807585e 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -7,3 +7,4 @@ pub mod log_codes; pub mod gsmtap; pub mod gsmtap_parser; pub mod pcap; +pub mod lte_rrc; diff --git a/lib/src/lte_rrc.rs b/lib/src/lte_rrc.rs new file mode 100644 index 0000000..e40314d --- /dev/null +++ b/lib/src/lte_rrc.rs @@ -0,0 +1,71 @@ +use lte_parser::{decode, lte_rrc}; +use thiserror::Error; +use super::gsmtap::{GsmtapType, LteRrcSubtype, GsmtapMessage}; + +#[derive(Error, Debug)] +pub enum MessageParsingError { + #[error("Failed decoding")] + DecodingError(#[from] lte_parser::ParsingError), + #[error("Unknown Gsmtap message type {0:?}")] + UnknownGsmtapType(GsmtapType), + #[error("Unsupported LTE RRC subtype {0:?}")] + UnsupportedLteRrcSubtype(LteRrcSubtype), +} + +#[derive(Debug, Clone, PartialEq)] +pub enum Message { + DlCcch(lte_rrc::DL_CCCH_Message), + DlDcch(lte_rrc::DL_DCCH_Message), + UlCcch(lte_rrc::UL_CCCH_Message), + UlDcch(lte_rrc::UL_DCCH_Message), + BcchBch(lte_rrc::BCCH_BCH_Message), + BcchDlSch(lte_rrc::BCCH_DL_SCH_Message), + PCCH(lte_rrc::PCCH_Message), + MCCH(lte_rrc::MCCH_Message), + ScMcch(lte_rrc::SC_MCCH_Message_r13), + BcchBchMbms(lte_rrc::BCCH_BCH_Message_MBMS), + BcchDlSchBr(lte_rrc::BCCH_DL_SCH_Message_BR), + BcchDlSchMbms(lte_rrc::BCCH_DL_SCH_Message_MBMS), + SbcchSlBch(lte_rrc::SBCCH_SL_BCH_Message), + SbcchSlBchV2x(lte_rrc::SBCCH_SL_BCH_Message_V2X_r14), + + // FIXME: unclear which message these "NB" types map to + //DlCcchNb(), + //DlDcchNb(), + //UlCcchNb(), + //UlDcchNb(), + //BcchBchNb(), + //BcchBchTddNb(), + //BcchDlSchNb(), + //PcchNb(), + //ScMcchNb(), +} + +impl TryFrom<&GsmtapMessage> for Message { + type Error = MessageParsingError; + + fn try_from(gsmtap_msg: &GsmtapMessage) -> Result { + if let GsmtapType::LteRrc(lte_rrc_subtype) = gsmtap_msg.header.gsmtap_type { + use LteRrcSubtype as L; + use Message as R; + return match lte_rrc_subtype { + L::DlCcch => Ok(R::DlCcch(decode(&gsmtap_msg.payload)?)), + L::DlDcch => Ok(R::DlDcch(decode(&gsmtap_msg.payload)?)), + L::UlCcch => Ok(R::UlCcch(decode(&gsmtap_msg.payload)?)), + L::UlDcch => Ok(R::UlDcch(decode(&gsmtap_msg.payload)?)), + L::BcchBch => Ok(R::BcchBch(decode(&gsmtap_msg.payload)?)), + L::BcchDlSch => Ok(R::BcchDlSch(decode(&gsmtap_msg.payload)?)), + L::PCCH => Ok(R::PCCH(decode(&gsmtap_msg.payload)?)), + L::MCCH => Ok(R::MCCH(decode(&gsmtap_msg.payload)?)), + L::ScMcch => Ok(R::ScMcch(decode(&gsmtap_msg.payload)?)), + L::BcchBchMbms => Ok(R::BcchBchMbms(decode(&gsmtap_msg.payload)?)), + L::BcchDlSchBr => Ok(R::BcchDlSchBr(decode(&gsmtap_msg.payload)?)), + L::BcchDlSchMbms => Ok(R::BcchDlSchMbms(decode(&gsmtap_msg.payload)?)), + L::SbcchSlBch => Ok(R::SbcchSlBch(decode(&gsmtap_msg.payload)?)), + L::SbcchSlBchV2x => Ok(R::SbcchSlBchV2x(decode(&gsmtap_msg.payload)?)), + subtype => Err(MessageParsingError::UnsupportedLteRrcSubtype(subtype)), + }; + } + Err(MessageParsingError::UnknownGsmtapType(gsmtap_msg.header.gsmtap_type)) + } +} diff --git a/lte-parser/Cargo.toml b/lte-parser/Cargo.toml index 8946dbf..45cf572 100644 --- a/lte-parser/Cargo.toml +++ b/lte-parser/Cargo.toml @@ -5,28 +5,11 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[build-dependencies] -asn1-compiler = "0.6.1" -asn1-codecs = "0.6.1" -asn1_codecs_derive = "0.6.1" -serde = { version = "1.0" , features = ["derive"]} -trybuild = { version = "1.0" } -hex = { version = "0.4" } -bitvec = { version = "1.0" , features = ["serde"]} -log = { version = "0.4" } -criterion = { version = "0.5" , features = ["rayon"]} -env_logger = { version = "0.9" } - [dependencies] asn1-compiler = "0.6.1" asn1-codecs = "0.6.1" asn1_codecs_derive = "0.6.1" -bitvec = "1.0" -log = "0.4" - -[dev-dependencies] -asn1-compiler = "0.6.1" -asn1-codecs = "0.6.1" -asn1_codecs_derive = "0.6.1" -bitvec = "1.0" +bitvec = { version = "1.0", features = ["serde"] } log = "0.4" +thiserror = "1.0.56" +serde = { version = "1.0.196", features = ["derive"] } diff --git a/lte-parser/README.md b/lte-parser/README.md index dbc4a17..4819499 100644 --- a/lte-parser/README.md +++ b/lte-parser/README.md @@ -6,7 +6,7 @@ Rust code for parsing these messages. We're using [hampi](https://github.com/yst ## Generating the parser -To install the hampi tools, run: +To install the hampi compiler, run: ``` > cargo install asn1-compiler @@ -15,7 +15,7 @@ To install the hampi tools, run: To generate the parser, run: ``` -> ampi-rs-asn1c --codec uper --module src/lte_rrc.rs -- specs/* +> hampi-rs-asn1c --codec uper --derive clone --derive partial-eq --derive serialize --module src/lte_rrc.rs -- specs/* ``` ## Sourcing the ASN.1 files diff --git a/lte-parser/src/lib.rs b/lte-parser/src/lib.rs index 3e62906..2e59dd5 100644 --- a/lte-parser/src/lib.rs +++ b/lte-parser/src/lib.rs @@ -1,2 +1,18 @@ +use asn1_codecs::{uper::UperCodec, PerCodecData, PerCodecError}; +use thiserror::Error; #[allow(unreachable_patterns, non_camel_case_types)] pub mod lte_rrc; + +#[derive(Error, Debug)] +pub enum ParsingError { + #[error("Failed to decode UPER data: {0}")] + UperDecodeError(PerCodecError), +} + +pub fn decode(data: &[u8]) -> Result + where T: UperCodec +{ + let mut asn_data = PerCodecData::from_slice_uper(data); + T::uper_decode(&mut asn_data) + .map_err(|e| ParsingError::UperDecodeError(e)) +} From d570ad3cb1cd4d668da08e93fa0b62bf022d6c06 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Wed, 31 Jan 2024 18:47:49 -0800 Subject: [PATCH 3/5] lib: add Analyzer trait This trait will be implemented by all of our heuristics, giving us a uniform interface for collecting events and displaying them to the user. --- lib/src/analysis/analyzer.rs | 49 ++++++++++++++++++++++++++++++++++++ lib/src/analysis/mod.rs | 1 + lib/src/lib.rs | 1 + 3 files changed, 51 insertions(+) create mode 100644 lib/src/analysis/analyzer.rs create mode 100644 lib/src/analysis/mod.rs diff --git a/lib/src/analysis/analyzer.rs b/lib/src/analysis/analyzer.rs new file mode 100644 index 0000000..812ef7e --- /dev/null +++ b/lib/src/analysis/analyzer.rs @@ -0,0 +1,49 @@ +use crate::lte_rrc::Message as LteRrcMessage; + +/// Qualitative measure of how severe a Warning event type is. +/// The levels should break down like this: +/// * Low: if combined with a large number of other Warnings, user should investigate +/// * Medium: if combined with a few other Warnings, user should investigate +/// * High: user should investigate +pub enum Severity { + Low, + Medium, + High, +} + +/// `QualitativeWarning` events will always be shown to the user in some manner, +/// while `Informational` ones may be hidden based on user settings. +pub enum EventType { + Informational, + QualitativeWarning(Severity), +} + +/// Events are user-facing signals that can be emitted by an `Analyzer` upon a +/// message being received. They can be used to signifiy an IC detection +/// warning, or just to display some relevant information to the user. +pub struct Event { + pub event_type: EventType, + pub message: String, +} + +/// An `Analyzer` represents one type of heuristic for detecting an IMSI Catcher +/// (IC). While maintaining some amount of state is useful, be mindful of how +/// much memory your `Analyzer` uses at runtime, since rayhunter may run for +/// many hours at a time with dozens of `Analyzer`s working in parallel. +trait Analyzer { + /// Returns a user-friendly, concise name for your heuristic. + fn get_name(&self) -> String; + + /// Returns a user-friendly description of what your heuristic looks for, + /// the types of `Event`s it may return, as well as possible false-positive + /// conditions that may trigger an `Event`. If different `Event`s have + /// different false-positive conditions, consider including them in its + /// `message` field. + fn get_description(&self) -> String; + + /// Processes a single `LteRrcMessage`, possibly returning an `Event` if your + /// heuristic deems it relevant. Again, be mindful of any state your + /// `Analyzer` updates per message, since it may be run over hundreds or + /// thousands of them alongside many other `Analyzer`s. + fn process_lte_rrc_message(&mut self, message: &LteRrcMessage) -> Option; +} diff --git a/lib/src/analysis/mod.rs b/lib/src/analysis/mod.rs new file mode 100644 index 0000000..aaf41a3 --- /dev/null +++ b/lib/src/analysis/mod.rs @@ -0,0 +1 @@ +pub mod analyzer; diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 807585e..96dda62 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -8,3 +8,4 @@ pub mod gsmtap; pub mod gsmtap_parser; pub mod pcap; pub mod lte_rrc; +pub mod analysis; From 5d7caba1a6dab715e64668c62454db5f63d98a97 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Thu, 8 Feb 2024 15:38:36 -0800 Subject: [PATCH 4/5] Minimal version of the LTE downgrade analyzer This also renames the lte_parser crate to telcom_parser, since it'll handle any 2G or 3G parsing going forward. --- Cargo.lock | 28 +++---- Cargo.toml | 2 +- lib/Cargo.toml | 2 +- lib/src/analysis/analyzer.rs | 34 ++++---- .../information_element.rs} | 37 ++++++--- lib/src/analysis/lte_downgrade.rs | 83 +++++++++++++++++++ lib/src/analysis/mod.rs | 2 + lib/src/lib.rs | 1 - lib/src/log_codes.rs | 2 +- {lte-parser => telcom-parser}/Cargo.toml | 2 +- {lte-parser => telcom-parser}/README.md | 9 +- .../specs/EUTRA-InterNodeDefinitions.asn | 0 .../specs/EUTRA-RRC-Definitions.asn | 0 .../specs/EUTRA-Sidelink-Preconf.asn | 0 .../specs/EUTRA-UE-Variables.asn | 0 .../specs/PC5-RRC-Definitions.asn | 0 {lte-parser => telcom-parser}/src/lib.rs | 0 {lte-parser => telcom-parser}/src/lte_rrc.rs | 0 .../tests/lte_rrc_test.rs | 0 19 files changed, 150 insertions(+), 52 deletions(-) rename lib/src/{lte_rrc.rs => analysis/information_element.rs} (70%) create mode 100644 lib/src/analysis/lte_downgrade.rs rename {lte-parser => telcom-parser}/Cargo.toml (94%) rename {lte-parser => telcom-parser}/README.md (82%) rename {lte-parser => telcom-parser}/specs/EUTRA-InterNodeDefinitions.asn (100%) rename {lte-parser => telcom-parser}/specs/EUTRA-RRC-Definitions.asn (100%) rename {lte-parser => telcom-parser}/specs/EUTRA-Sidelink-Preconf.asn (100%) rename {lte-parser => telcom-parser}/specs/EUTRA-UE-Variables.asn (100%) rename {lte-parser => telcom-parser}/specs/PC5-RRC-Definitions.asn (100%) rename {lte-parser => telcom-parser}/src/lib.rs (100%) rename {lte-parser => telcom-parser}/src/lte_rrc.rs (100%) rename {lte-parser => telcom-parser}/tests/lte_rrc_test.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 3ea3490..af42c7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -829,19 +829,6 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -[[package]] -name = "lte-parser" -version = "0.1.0" -dependencies = [ - "asn1-codecs", - "asn1-compiler", - "asn1_codecs_derive", - "bitvec", - "log", - "serde", - "thiserror", -] - [[package]] name = "matchit" version = "0.7.3" @@ -1075,8 +1062,8 @@ dependencies = [ "env_logger", "libc", "log", - "lte-parser", "pcap-file", + "telcom-parser", "thiserror", ] @@ -1357,6 +1344,19 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "telcom-parser" +version = "0.1.0" +dependencies = [ + "asn1-codecs", + "asn1-compiler", + "asn1_codecs_derive", + "bitvec", + "log", + "serde", + "thiserror", +] + [[package]] name = "tempdir" version = "0.3.7" diff --git a/Cargo.toml b/Cargo.toml index 268ffcc..f078283 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,6 @@ members = [ "bin", "serial", "rootshell", - "lte-parser", + "telcom-parser", ] resolver = "2" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 4ba867d..94a30ee 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -14,4 +14,4 @@ libc = "0.2.150" log = "0.4.20" pcap-file = "2.0.0" thiserror = "1.0.50" -lte-parser = { path = "../lte-parser" } +telcom-parser = { path = "../telcom-parser" } diff --git a/lib/src/analysis/analyzer.rs b/lib/src/analysis/analyzer.rs index 812ef7e..7291996 100644 --- a/lib/src/analysis/analyzer.rs +++ b/lib/src/analysis/analyzer.rs @@ -1,4 +1,6 @@ -use crate::lte_rrc::Message as LteRrcMessage; +use std::borrow::Cow; + +use super::information_element::InformationElement; /// Qualitative measure of how severe a Warning event type is. /// The levels should break down like this: @@ -11,14 +13,14 @@ pub enum Severity { High, } -/// `QualitativeWarning` events will always be shown to the user in some manner, +/// [QualitativeWarning] events will always be shown to the user in some manner, /// while `Informational` ones may be hidden based on user settings. pub enum EventType { Informational, QualitativeWarning(Severity), } -/// Events are user-facing signals that can be emitted by an `Analyzer` upon a +/// Events are user-facing signals that can be emitted by an [Analyzer] upon a /// message being received. They can be used to signifiy an IC detection /// warning, or just to display some relevant information to the user. pub struct Event { @@ -26,24 +28,26 @@ pub struct Event { pub message: String, } -/// An `Analyzer` represents one type of heuristic for detecting an IMSI Catcher +/// An [Analyzer] represents one type of heuristic for detecting an IMSI Catcher /// (IC). While maintaining some amount of state is useful, be mindful of how -/// much memory your `Analyzer` uses at runtime, since rayhunter may run for -/// many hours at a time with dozens of `Analyzer`s working in parallel. -trait Analyzer { +/// much memory your [Analyzer] uses at runtime, since rayhunter may run for +/// many hours at a time with dozens of [Analyzers](Analyzer) working in parallel. +pub trait Analyzer { /// Returns a user-friendly, concise name for your heuristic. - fn get_name(&self) -> String; + fn get_name(&self) -> Cow; /// Returns a user-friendly description of what your heuristic looks for, - /// the types of `Event`s it may return, as well as possible false-positive - /// conditions that may trigger an `Event`. If different `Event`s have + /// the types of [Events](Event) it may return, as well as possible false-positive + /// conditions that may trigger an [Event]. If different [Events](Event) have /// different false-positive conditions, consider including them in its /// `message` field. - fn get_description(&self) -> String; + fn get_description(&self) -> Cow; - /// Processes a single `LteRrcMessage`, possibly returning an `Event` if your + /// Analyze a single [InformationElement], possibly returning an [Event] if your /// heuristic deems it relevant. Again, be mindful of any state your - /// `Analyzer` updates per message, since it may be run over hundreds or - /// thousands of them alongside many other `Analyzer`s. - fn process_lte_rrc_message(&mut self, message: &LteRrcMessage) -> Option; + /// [Analyzer] updates per message, since it may be run over hundreds or + /// thousands of them alongside many other [Analyzers](Analyzer). + fn analyze_information_element(&mut self, ie: &InformationElement) -> Option { + None + } } diff --git a/lib/src/lte_rrc.rs b/lib/src/analysis/information_element.rs similarity index 70% rename from lib/src/lte_rrc.rs rename to lib/src/analysis/information_element.rs index e40314d..d9a0494 100644 --- a/lib/src/lte_rrc.rs +++ b/lib/src/analysis/information_element.rs @@ -1,19 +1,30 @@ -use lte_parser::{decode, lte_rrc}; +//! The term "information element" is used by 3GPP to describe "structural +//! elements containing single or multiple fields" in 2G/3G/4G/5G. We use +//! the term to refer to a structured, fully parsed message in any telcom +//! standard. + +use telcom_parser::{decode, lte_rrc}; use thiserror::Error; -use super::gsmtap::{GsmtapType, LteRrcSubtype, GsmtapMessage}; +use crate::gsmtap::{GsmtapType, LteRrcSubtype, GsmtapMessage}; #[derive(Error, Debug)] -pub enum MessageParsingError { +pub enum InformationElementError { #[error("Failed decoding")] - DecodingError(#[from] lte_parser::ParsingError), - #[error("Unknown Gsmtap message type {0:?}")] - UnknownGsmtapType(GsmtapType), + DecodingError(#[from] telcom_parser::ParsingError), #[error("Unsupported LTE RRC subtype {0:?}")] - UnsupportedLteRrcSubtype(LteRrcSubtype), + UnsupportedGsmtapType(GsmtapType), +} + +#[derive(Debug, Clone, PartialEq)] +pub enum InformationElement { + GSM, + UMTS, + LTE(LteInformationElement), + FiveG, } #[derive(Debug, Clone, PartialEq)] -pub enum Message { +pub enum LteInformationElement { DlCcch(lte_rrc::DL_CCCH_Message), DlDcch(lte_rrc::DL_DCCH_Message), UlCcch(lte_rrc::UL_CCCH_Message), @@ -41,13 +52,13 @@ pub enum Message { //ScMcchNb(), } -impl TryFrom<&GsmtapMessage> for Message { - type Error = MessageParsingError; +impl TryFrom<&GsmtapMessage> for LteInformationElement { + type Error = InformationElementError; fn try_from(gsmtap_msg: &GsmtapMessage) -> Result { if let GsmtapType::LteRrc(lte_rrc_subtype) = gsmtap_msg.header.gsmtap_type { use LteRrcSubtype as L; - use Message as R; + use LteInformationElement as R; return match lte_rrc_subtype { L::DlCcch => Ok(R::DlCcch(decode(&gsmtap_msg.payload)?)), L::DlDcch => Ok(R::DlDcch(decode(&gsmtap_msg.payload)?)), @@ -63,9 +74,9 @@ impl TryFrom<&GsmtapMessage> for Message { L::BcchDlSchMbms => Ok(R::BcchDlSchMbms(decode(&gsmtap_msg.payload)?)), L::SbcchSlBch => Ok(R::SbcchSlBch(decode(&gsmtap_msg.payload)?)), L::SbcchSlBchV2x => Ok(R::SbcchSlBchV2x(decode(&gsmtap_msg.payload)?)), - subtype => Err(MessageParsingError::UnsupportedLteRrcSubtype(subtype)), + subtype => Err(InformationElementError::UnsupportedGsmtapType(gsmtap_msg.header.gsmtap_type)), }; } - Err(MessageParsingError::UnknownGsmtapType(gsmtap_msg.header.gsmtap_type)) + Err(InformationElementError::UnsupportedGsmtapType(gsmtap_msg.header.gsmtap_type)) } } diff --git a/lib/src/analysis/lte_downgrade.rs b/lib/src/analysis/lte_downgrade.rs new file mode 100644 index 0000000..9d0f4d4 --- /dev/null +++ b/lib/src/analysis/lte_downgrade.rs @@ -0,0 +1,83 @@ +use std::borrow::Cow; + +use super::analyzer::{Analyzer, Event, EventType, Severity}; +use super::information_element::{InformationElement, LteInformationElement}; +use telcom_parser::lte_rrc::{BCCH_DL_SCH_MessageType, BCCH_DL_SCH_MessageType_c1, CellReselectionPriority, SystemInformationBlockType7, SystemInformationCriticalExtensions, SystemInformation_r8_IEsSib_TypeAndInfo, SystemInformation_r8_IEsSib_TypeAndInfo_Entry}; + +/// Based on heuristic T7 from Shinjo Park's "Why We Cannot Win". +pub struct LteSib7DowngradeAnalyzer { +} + +impl LteSib7DowngradeAnalyzer { + fn unpack_system_information<'a>(&self, ie: &'a InformationElement) -> Option<&'a SystemInformation_r8_IEsSib_TypeAndInfo> { + if let InformationElement::LTE(message) = ie { + if let LteInformationElement::BcchDlSch(bcch_dl_sch_message) = message { + if let BCCH_DL_SCH_MessageType::C1(BCCH_DL_SCH_MessageType_c1::SystemInformation(system_information)) = &bcch_dl_sch_message.message { + if let SystemInformationCriticalExtensions::SystemInformation_r8(sib) = &system_information.critical_extensions { + return Some(&sib.sib_type_and_info); + } + } + } + } + None + } +} + +// TODO: keep track of SIB state to compare LTE reselection blocks w/ 2g/3g ones +impl Analyzer for LteSib7DowngradeAnalyzer { + fn get_name(&self) -> Cow { + Cow::from("LTE SIB 7 Downgrade") + } + + fn get_description(&self) -> Cow { + Cow::from("Tests for LTE cells broadcasting a SIB type 7 which include 2G/3G frequencies with higher priorities.") + } + + fn analyze_information_element(&mut self, ie: &InformationElement) -> Option { + let sibs = &self.unpack_system_information(ie)?.0; + for sib in sibs { + match sib { + SystemInformation_r8_IEsSib_TypeAndInfo_Entry::Sib6(sib6) => { + if let Some(carrier_info_list) = sib6.carrier_freq_list_utra_fdd.as_ref() { + for carrier_info in &carrier_info_list.0 { + if let Some(CellReselectionPriority(p)) = carrier_info.cell_reselection_priority { + if p == 0 { + return Some(Event { + event_type: EventType::QualitativeWarning(Severity::High), + message: "LTE cell advertised a 3G cell for priority 0 reselection".to_string(), + }); + } + } + } + } + if let Some(carrier_info_list) = sib6.carrier_freq_list_utra_tdd.as_ref() { + for carrier_info in &carrier_info_list.0 { + if let Some(CellReselectionPriority(p)) = carrier_info.cell_reselection_priority { + if p == 0 { + return Some(Event { + event_type: EventType::QualitativeWarning(Severity::High), + message: "LTE cell advertised a 3G cell for priority 0 reselection".to_string(), + }); + } + } + } + } + }, + SystemInformation_r8_IEsSib_TypeAndInfo_Entry::Sib7(SystemInformationBlockType7 { carrier_freqs_info_list: Some(carrier_info_list), .. }) => { + for carrier_info in &carrier_info_list.0 { + if let Some(CellReselectionPriority(p)) = carrier_info.common_info.cell_reselection_priority { + if p == 0 { + return Some(Event { + event_type: EventType::QualitativeWarning(Severity::High), + message: "LTE cell advertised a 2G cell for priority 0 reselection".to_string(), + }); + } + } + } + }, + _ => {}, + } + } + None + } +} diff --git a/lib/src/analysis/mod.rs b/lib/src/analysis/mod.rs index aaf41a3..d830494 100644 --- a/lib/src/analysis/mod.rs +++ b/lib/src/analysis/mod.rs @@ -1 +1,3 @@ pub mod analyzer; +pub mod information_element; +pub mod lte_downgrade; diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 96dda62..dda6d21 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -7,5 +7,4 @@ pub mod log_codes; pub mod gsmtap; pub mod gsmtap_parser; pub mod pcap; -pub mod lte_rrc; pub mod analysis; diff --git a/lib/src/log_codes.rs b/lib/src/log_codes.rs index 7e90bed..6035980 100644 --- a/lib/src/log_codes.rs +++ b/lib/src/log_codes.rs @@ -1,4 +1,4 @@ -//! Enumerates some releVant diag log codes. Copied from QCSuper +//! Enumerates some relevant diag log codes. Copied from QCSuper // These are 2G-related log types. diff --git a/lte-parser/Cargo.toml b/telcom-parser/Cargo.toml similarity index 94% rename from lte-parser/Cargo.toml rename to telcom-parser/Cargo.toml index 45cf572..9d408e4 100644 --- a/lte-parser/Cargo.toml +++ b/telcom-parser/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "lte-parser" +name = "telcom-parser" version = "0.1.0" edition = "2021" diff --git a/lte-parser/README.md b/telcom-parser/README.md similarity index 82% rename from lte-parser/README.md rename to telcom-parser/README.md index 4819499..5953170 100644 --- a/lte-parser/README.md +++ b/telcom-parser/README.md @@ -1,6 +1,6 @@ -# Autogenerated LTE-RRC packet parsing +# Autogenerated telcom packet parsing -This crate contains [ASN.1](https://en.wikipedia.org/wiki/ASN.1) specs for LTE RRC message payloads, as well as autogenerated +This crate contains [ASN.1](https://en.wikipedia.org/wiki/ASN.1) specs for various telcom message payloads, as well as autogenerated Rust code for parsing these messages. We're using [hampi](https://github.com/ystero-dev/hampi/) as a parser generator, and it seems 3GPP protocols are encoded in the unaligned Packed Encoding Rules (or uPER) codec. @@ -12,10 +12,10 @@ To install the hampi compiler, run: > cargo install asn1-compiler ``` -To generate the parser, run: +To generate the parser for LTE RRC, run: ``` -> hampi-rs-asn1c --codec uper --derive clone --derive partial-eq --derive serialize --module src/lte_rrc.rs -- specs/* +> hampi-rs-asn1c --codec uper --derive clone --derive partial-eq --derive serialize --module src/lte_rrc.rs -- specs/EUTRA* specs/PC5-RRC-Definitions.asn ``` ## Sourcing the ASN.1 files @@ -23,5 +23,4 @@ To generate the parser, run: 3GPP, who develops the standards for 4G (and all the other G's) publishes ASN.1 specs for their protocols in these horrific Microsoft Word docs (e.g. [here](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=2440)). The ASN.1 blocks are denoted by `--ASN1START` and `--ASN1STOP` text, so extracting them automatically is possible using a script like [hampi's](https://github.com/ystero-dev/hampi/blob/master/examples/specs/parse_spec.py). Instead of doing this ourselves, we just sourced ours from [these](https://obj-sys.com/products/asn1apis/lte_3gpp_apis.php#lte_4g_apis). # TODO -* document how to use them??? maybe toplevel doc comments in lib.rs? * implement proof of concept binary using this to parse QMDL, summarize the packets diff --git a/lte-parser/specs/EUTRA-InterNodeDefinitions.asn b/telcom-parser/specs/EUTRA-InterNodeDefinitions.asn similarity index 100% rename from lte-parser/specs/EUTRA-InterNodeDefinitions.asn rename to telcom-parser/specs/EUTRA-InterNodeDefinitions.asn diff --git a/lte-parser/specs/EUTRA-RRC-Definitions.asn b/telcom-parser/specs/EUTRA-RRC-Definitions.asn similarity index 100% rename from lte-parser/specs/EUTRA-RRC-Definitions.asn rename to telcom-parser/specs/EUTRA-RRC-Definitions.asn diff --git a/lte-parser/specs/EUTRA-Sidelink-Preconf.asn b/telcom-parser/specs/EUTRA-Sidelink-Preconf.asn similarity index 100% rename from lte-parser/specs/EUTRA-Sidelink-Preconf.asn rename to telcom-parser/specs/EUTRA-Sidelink-Preconf.asn diff --git a/lte-parser/specs/EUTRA-UE-Variables.asn b/telcom-parser/specs/EUTRA-UE-Variables.asn similarity index 100% rename from lte-parser/specs/EUTRA-UE-Variables.asn rename to telcom-parser/specs/EUTRA-UE-Variables.asn diff --git a/lte-parser/specs/PC5-RRC-Definitions.asn b/telcom-parser/specs/PC5-RRC-Definitions.asn similarity index 100% rename from lte-parser/specs/PC5-RRC-Definitions.asn rename to telcom-parser/specs/PC5-RRC-Definitions.asn diff --git a/lte-parser/src/lib.rs b/telcom-parser/src/lib.rs similarity index 100% rename from lte-parser/src/lib.rs rename to telcom-parser/src/lib.rs diff --git a/lte-parser/src/lte_rrc.rs b/telcom-parser/src/lte_rrc.rs similarity index 100% rename from lte-parser/src/lte_rrc.rs rename to telcom-parser/src/lte_rrc.rs diff --git a/lte-parser/tests/lte_rrc_test.rs b/telcom-parser/tests/lte_rrc_test.rs similarity index 100% rename from lte-parser/tests/lte_rrc_test.rs rename to telcom-parser/tests/lte_rrc_test.rs From d4ee48827c9ff53df1fbe4684b1c1c5cac435e40 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 14:47:41 -0800 Subject: [PATCH 5/5] lint fixes --- lib/src/analysis/analyzer.rs | 4 +--- lib/src/analysis/information_element.rs | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/src/analysis/analyzer.rs b/lib/src/analysis/analyzer.rs index 7291996..e7486d4 100644 --- a/lib/src/analysis/analyzer.rs +++ b/lib/src/analysis/analyzer.rs @@ -47,7 +47,5 @@ pub trait Analyzer { /// heuristic deems it relevant. Again, be mindful of any state your /// [Analyzer] updates per message, since it may be run over hundreds or /// thousands of them alongside many other [Analyzers](Analyzer). - fn analyze_information_element(&mut self, ie: &InformationElement) -> Option { - None - } + fn analyze_information_element(&mut self, ie: &InformationElement) -> Option; } diff --git a/lib/src/analysis/information_element.rs b/lib/src/analysis/information_element.rs index d9a0494..653b221 100644 --- a/lib/src/analysis/information_element.rs +++ b/lib/src/analysis/information_element.rs @@ -74,7 +74,7 @@ impl TryFrom<&GsmtapMessage> for LteInformationElement { L::BcchDlSchMbms => Ok(R::BcchDlSchMbms(decode(&gsmtap_msg.payload)?)), L::SbcchSlBch => Ok(R::SbcchSlBch(decode(&gsmtap_msg.payload)?)), L::SbcchSlBchV2x => Ok(R::SbcchSlBchV2x(decode(&gsmtap_msg.payload)?)), - subtype => Err(InformationElementError::UnsupportedGsmtapType(gsmtap_msg.header.gsmtap_type)), + _ => Err(InformationElementError::UnsupportedGsmtapType(gsmtap_msg.header.gsmtap_type)), }; } Err(InformationElementError::UnsupportedGsmtapType(gsmtap_msg.header.gsmtap_type))