From 923d1c1e358ca60c83ebd27462b010e7ff92d73a Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 11:09:15 -0800 Subject: [PATCH 01/16] rename binary to rayhunter-daemon --- bin/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/Cargo.toml b/bin/Cargo.toml index 63f96d0..5a58814 100644 --- a/bin/Cargo.toml +++ b/bin/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [[bin]] -name = "rayhunter" +name = "rayhunter-daemon" path = "src/main.rs" [dependencies] From d8879c357fa4cf31922a80348de2d875fc0f78b9 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 13:48:21 -0800 Subject: [PATCH 02/16] make.sh: use updated binary name --- make.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/make.sh b/make.sh index 39483f3..98eae07 100755 --- a/make.sh +++ b/make.sh @@ -1,3 +1,10 @@ +<<<<<<< Updated upstream cargo build --release adb push target/armv7-unknown-linux-gnueabihf/release/rayhunter /data/rayhunter/rayhunter -adb shell '/bin/rootshell -c "/etc/init.d/rayhunter_daemon restart"' \ No newline at end of file +adb shell '/bin/rootshell -c "/etc/init.d/rayhunter_daemon restart"' +======= +# the "arm" profile inherits from "release", so this is an optimized build +cargo build --profile arm +adb push target/arm/rayhunter-daemon /data/rayhunter/ +adb shell '/bin/rootshell -c "/etc/init.d/rayhunter_daemon restart"' +>>>>>>> Stashed changes From dbd6063b8c4f93417bad36e2f620f9f4f633f52e Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 13:50:11 -0800 Subject: [PATCH 03/16] rayhunter_daemon: use updated rayhunter binary name --- scripts/rayhunter_daemon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/rayhunter_daemon b/scripts/rayhunter_daemon index 90704ec..44485e7 100644 --- a/scripts/rayhunter_daemon +++ b/scripts/rayhunter_daemon @@ -6,7 +6,7 @@ case "$1" in start) echo -n "Starting rayhunter: " start-stop-daemon -S -b --make-pidfile --pidfile /tmp/rayhunter.pid \ - --startas /bin/bash -- -c "exec /data/rayhunter/rayhunter /data/rayhunter/config.toml > /data/rayhunter/rayhunter.log 2>&1" + --startas /bin/bash -- -c "exec /data/rayhunter/rayhunter-daemon /data/rayhunter/config.toml > /data/rayhunter/rayhunter.log 2>&1" echo "done" ;; stop) From a644620eaac7c54862f60f883309f5a8169e859f Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 16:55:15 -0800 Subject: [PATCH 04/16] Build x86-64 by default, fix make script to build for ARM --- .cargo/config.toml | 10 +--------- make.sh | 12 +++--------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 5798c45..16df86f 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,11 +1,3 @@ -[build] -target = "armv7-unknown-linux-gnueabihf" -rustflags = ["-C", "target-feature=+crt-static"] - -[alias] -test_pc = "test --target=x86_64-unknown-linux-gnu" -build_pc = "build --target=x86_64-unknown-linux-gnu" - - [target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" +rustflags = ["-C", "target-feature=+crt-static"] diff --git a/make.sh b/make.sh index 98eae07..1a248b8 100755 --- a/make.sh +++ b/make.sh @@ -1,10 +1,4 @@ -<<<<<<< Updated upstream -cargo build --release -adb push target/armv7-unknown-linux-gnueabihf/release/rayhunter /data/rayhunter/rayhunter +#!/bin/sh +cargo build --release --target="armv7-unknown-linux-gnueabihf" --bin rayhunter-daemon +adb push target/armv7-unknown-linux-gnueabihf/release/rayhunter-daemon /data/rayhunter/ adb shell '/bin/rootshell -c "/etc/init.d/rayhunter_daemon restart"' -======= -# the "arm" profile inherits from "release", so this is an optimized build -cargo build --profile arm -adb push target/arm/rayhunter-daemon /data/rayhunter/ -adb shell '/bin/rootshell -c "/etc/init.d/rayhunter_daemon restart"' ->>>>>>> Stashed changes From 25e3d16e9fb576f5f28dcf6f9d17e71133d1b4e2 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 16:58:02 -0800 Subject: [PATCH 05/16] fix github workflows w/ new build config --- .github/workflows/rust.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d0ba238..31000a2 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -17,6 +17,6 @@ jobs: steps: - uses: actions/checkout@v3 - name: Build - run: cargo build_pc --verbose + run: cargo build --verbose - name: Run tests - run: cargo test_pc --verbose + run: cargo test --verbose From 97678bf8ca73387fc0c3094d9e5a34bae08a4008 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 30 Jan 2024 10:38:31 -0800 Subject: [PATCH 06/16] 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 = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +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", +] [[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 07/16] 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 08/16] 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 09/16] 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 Message { +pub enum InformationElement { + GSM, + UMTS, + LTE(LteInformationElement), + FiveG, +} + +#[derive(Debug, Clone, PartialEq)] +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 10/16] 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)) From de00c60c4f7b57353e866005d6832bd07457482c Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 14:48:50 -0800 Subject: [PATCH 11/16] rm vscode settings --- .vscode/settings.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 3ab5073..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.associations": { - "fcntl.h": "c" - } -} \ No newline at end of file From df651fe334242ed31841099088ed3056f16a0b47 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 16:52:40 -0800 Subject: [PATCH 12/16] qmdl_store: replace end_time with last_message_time This way, even if the program exits unexpectedly, there's a reasonable value for the "end time" of a log. --- bin/src/diag.rs | 2 +- bin/src/qmdl_store.rs | 33 +++++++++++++++++---------------- bin/static/index.html | 2 +- bin/static/js/main.js | 9 +++++++-- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/bin/src/diag.rs b/bin/src/diag.rs index 1086ec2..f318465 100644 --- a/bin/src/diag.rs +++ b/bin/src/diag.rs @@ -33,7 +33,7 @@ pub fn run_diag_read_thread(task_tracker: &TaskTracker, mut dev: DiagDevice, mut task_tracker.spawn(async move { while let Some((entry_idx, new_size)) = rx.recv().await { let mut qmdl_store = qmdl_store_lock_clone.write().await; - qmdl_store.update_entry_size(entry_idx, new_size).await + qmdl_store.update_entry(entry_idx, new_size).await .expect("failed to update qmdl file size"); } info!("QMDL store size updater thread exiting..."); diff --git a/bin/src/qmdl_store.rs b/bin/src/qmdl_store.rs index ff9c82b..0567909 100644 --- a/bin/src/qmdl_store.rs +++ b/bin/src/qmdl_store.rs @@ -37,7 +37,7 @@ pub struct Manifest { pub struct ManifestEntry { pub name: String, pub start_time: DateTime, - pub end_time: Option>, + pub last_message_time: Option>, pub size_bytes: usize, } @@ -47,7 +47,7 @@ impl ManifestEntry { ManifestEntry { name: format!("{}", now.timestamp()), start_time: now, - end_time: None, + last_message_time: None, size_bytes: 0, } } @@ -128,18 +128,21 @@ impl QmdlStore { .map_err(QmdlStoreError::ReadFileError) } - // Sets the current entry's end_time, updates the manifest, and unsets the - // current entry + // Unsets the current entry pub async fn close_current_entry(&mut self) -> Result<(), QmdlStoreError> { - let entry_index = self.current_entry.take() - .ok_or(QmdlStoreError::NoCurrentEntry)?; - self.manifest.entries[entry_index].end_time = Some(Local::now()); - self.write_manifest().await + match self.current_entry { + Some(_) => { + self.current_entry = None; + Ok(()) + }, + None => Err(QmdlStoreError::NoCurrentEntry) + } } - // Sets the given entry's size, updating the manifest - pub async fn update_entry_size(&mut self, entry_index: usize, size_bytes: usize) -> Result<(), QmdlStoreError> { + // Sets the given entry's size and updates the last_message_time to now, updating the manifest + pub async fn update_entry(&mut self, entry_index: usize, size_bytes: usize) -> Result<(), QmdlStoreError> { self.manifest.entries[entry_index].size_bytes = size_bytes; + self.manifest.entries[entry_index].last_message_time = Some(Local::now()); self.write_manifest().await } @@ -185,17 +188,15 @@ mod tests { let _ = store.new_entry().await.unwrap(); let entry_index = store.current_entry.unwrap(); assert_eq!(QmdlStore::read_manifest(dir.path()).await.unwrap(), store.manifest); + assert!(store.manifest.entries[entry_index].last_message_time.is_none()); - store.update_entry_size(entry_index, 1000).await.unwrap(); + store.update_entry(entry_index, 1000).await.unwrap(); + let entry = store.entry_for_name(&store.manifest.entries[entry_index].name).unwrap(); + assert!(entry.last_message_time.is_some()); assert_eq!(store.manifest.entries[entry_index].size_bytes, 1000); assert_eq!(QmdlStore::read_manifest(dir.path()).await.unwrap(), store.manifest); - assert!(store.manifest.entries[entry_index].end_time.is_none()); store.close_current_entry().await.unwrap(); - let entry = store.entry_for_name(&store.manifest.entries[entry_index].name).unwrap(); - assert!(entry.end_time.is_some()); - assert_eq!(QmdlStore::read_manifest(dir.path()).await.unwrap(), store.manifest); - assert!(matches!(store.close_current_entry().await, Err(QmdlStoreError::NoCurrentEntry))); } diff --git a/bin/static/index.html b/bin/static/index.html index 3ba9b67..4b1e308 100644 --- a/bin/static/index.html +++ b/bin/static/index.html @@ -23,7 +23,7 @@ Name Date Started - Date Stopped + Date of Last Message Size (bytes) PCAP QMDL diff --git a/bin/static/js/main.js b/bin/static/js/main.js index b8885dd..a6e1323 100644 --- a/bin/static/js/main.js +++ b/bin/static/js/main.js @@ -29,7 +29,7 @@ function createEntryRow(entry) { name.scope = 'row'; name.innerText = entry.name; row.appendChild(name); - for (const key of ['start_time', 'end_time', 'size_bytes']) { + for (const key of ['start_time', 'last_message_time', 'size_bytes']) { const td = document.createElement('td'); td.innerText = entry[key]; row.appendChild(td); @@ -57,10 +57,15 @@ async function getQmdlManifest() { const manifest = JSON.parse(await req('GET', '/api/qmdl-manifest')); if (manifest.current_entry) { manifest.current_entry.start_time = new Date(manifest.current_entry.start_time); + if (manifest.current_entry.last_message_time === undefined) { + manifest.current_entry.last_message_time = "N/A"; + } else { + manifest.current_entry.last_message_time = new Date(manifest.current_entry.last_message_time); + } } for (entry of manifest.entries) { entry.start_time = new Date(entry.start_time); - entry.end_time = new Date(entry.end_time); + entry.last_message_time = new Date(entry.last_message_time); } // sort them in reverse chronological order manifest.entries.reverse(); From abd3b98cffc1121bd1c570684dad463b8edfaad2 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 16:53:46 -0800 Subject: [PATCH 13/16] diag_device: remove unnecessarily public function --- lib/src/diag_device.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/diag_device.rs b/lib/src/diag_device.rs index 4e456f6..a9d5a31 100644 --- a/lib/src/diag_device.rs +++ b/lib/src/diag_device.rs @@ -123,7 +123,7 @@ impl DiagDevice { }) } - pub fn write_request(&mut self, req: &Request) -> DiagResult<()> { + fn write_request(&mut self, req: &Request) -> DiagResult<()> { let req_bytes = &req.to_bytes().expect("Failed to serialize Request"); let buf = RequestContainer { data_type: DataType::UserSpace, From 775cbcda1ee12c7592afe62308fdbb2f0ae07b8a Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Tue, 13 Feb 2024 20:23:02 -0800 Subject: [PATCH 14/16] Transition to async I/O for most things Mixing async and sync I/O leads to a multitude of complications, and generally speaking it's much more convenient to stick to one paradigm or the other. Since axum (and many other HTTP servers) use async, and since async is a convenient model for performing operations like "handle an MPSC message or file read, whichever happens first", let's commit to an async interface. --- Cargo.lock | 338 +++++++++++++++++++++++------------------ bin/Cargo.toml | 2 + bin/src/diag.rs | 119 +++++++-------- bin/src/error.rs | 2 - bin/src/main.rs | 7 +- bin/src/pcap.rs | 113 +++++--------- lib/Cargo.toml | 5 +- lib/src/diag.rs | 145 ++++++++++++++++++ lib/src/diag_device.rs | 113 +++++++------- lib/src/diag_reader.rs | 223 --------------------------- lib/src/hdlc.rs | 4 +- lib/src/lib.rs | 1 - lib/src/pcap.rs | 28 ++-- lib/src/qmdl.rs | 79 +++++----- 14 files changed, 550 insertions(+), 629 deletions(-) delete mode 100644 lib/src/diag_reader.rs diff --git a/Cargo.lock b/Cargo.lock index af42c7d..c3a5591 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" dependencies = [ "cfg-if", "once_cell", @@ -61,9 +61,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" dependencies = [ "anstyle", "anstyle-parse", @@ -159,7 +159,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -244,12 +244,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitflags" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" - [[package]] name = "bitvec" version = "1.0.1" @@ -265,9 +259,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byteorder" @@ -292,12 +286,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" [[package]] name = "cfg-if" @@ -307,9 +298,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", @@ -317,14 +308,14 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -332,9 +323,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -351,7 +342,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -476,16 +467,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "fnv" version = "1.0.7" @@ -513,6 +494,21 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.30" @@ -520,6 +516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -528,6 +525,23 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + [[package]] name = "futures-macro" version = "0.3.30" @@ -536,7 +550,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -557,9 +571,13 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures-channel", "futures-core", + "futures-io", "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", "slab", @@ -608,9 +626,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" [[package]] name = "http" @@ -666,9 +684,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ "bytes", "futures-channel", @@ -680,6 +698,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "smallvec", "tokio", ] @@ -701,9 +720,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -749,9 +768,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", "hashbrown", @@ -759,12 +778,12 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ "hermit-abi", - "rustix", + "libc", "windows-sys 0.52.0", ] @@ -776,9 +795,9 @@ 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", ] @@ -807,12 +826,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - [[package]] name = "lock_api" version = "0.4.11" @@ -859,9 +872,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -879,9 +892,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -945,6 +958,21 @@ dependencies = [ "thiserror", ] +[[package]] +name = "pcap-file-tokio" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee4f08e375f9aabbb17f4c031a2f0af1397835ce8d7909b167ada1dd8b572e6" +dependencies = [ + "async-trait", + "byteorder", + "derive-into-owned", + "pcap-file", + "thiserror", + "tokio", + "tokio-byteorder", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -968,7 +996,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -985,9 +1013,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "proc-macro-crate" @@ -1060,11 +1088,14 @@ dependencies = [ "crc", "deku", "env_logger", + "futures", + "futures-core", "libc", "log", - "pcap-file", + "pcap-file-tokio", "telcom-parser", "thiserror", + "tokio", ] [[package]] @@ -1074,6 +1105,7 @@ dependencies = [ "axum", "chrono", "env_logger", + "futures", "futures-core", "futures-macro", "include_dir", @@ -1084,6 +1116,7 @@ dependencies = [ "tempdir", "thiserror", "tokio", + "tokio-stream", "tokio-util", "toml", ] @@ -1103,7 +1136,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] @@ -1164,19 +1197,6 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" -[[package]] -name = "rustix" -version = "0.38.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" -dependencies = [ - "bitflags 2.4.2", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - [[package]] name = "rustversion" version = "1.0.14" @@ -1185,9 +1205,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "scopeguard" @@ -1197,29 +1217,29 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -1323,9 +1343,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ "proc-macro2", "quote", @@ -1378,29 +1398,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -1415,6 +1435,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "tokio-byteorder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf347e8ae1d1ffd16c8aed569172a71bd81098a001d0f4964d476c0097aba4a" +dependencies = [ + "byteorder", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.2.0" @@ -1423,7 +1453,18 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", ] [[package]] @@ -1444,14 +1485,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.1", + "toml_edit 0.22.6", ] [[package]] @@ -1471,20 +1512,20 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.2", ] [[package]] @@ -1582,9 +1623,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", @@ -1592,24 +1633,24 @@ 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", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", "wasm-bindgen-shared", ] [[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", @@ -1617,22 +1658,22 @@ 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", - "syn 2.0.48", + "syn 2.0.50", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "winapi" @@ -1671,7 +1712,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1689,7 +1730,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1709,17 +1750,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1730,9 +1771,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1742,9 +1783,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1754,9 +1795,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1766,9 +1807,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1778,9 +1819,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1790,9 +1831,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1802,15 +1843,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" -version = "0.5.36" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818ce546a11a9986bc24f93d0cdf38a8a1a400f1473ea8c82e59f6e0ffab9249" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" dependencies = [ "memchr", ] @@ -1841,5 +1891,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] diff --git a/bin/Cargo.toml b/bin/Cargo.toml index 5a58814..334f2f9 100644 --- a/bin/Cargo.toml +++ b/bin/Cargo.toml @@ -23,3 +23,5 @@ include_dir = "0.7.3" mime_guess = "2.0.4" tempdir = "0.3.7" chrono = { version = "0.4.31", features = ["serde"] } +tokio-stream = "0.1.14" +futures = "0.3.30" diff --git a/bin/src/diag.rs b/bin/src/diag.rs index f318465..4c2e43e 100644 --- a/bin/src/diag.rs +++ b/bin/src/diag.rs @@ -1,87 +1,78 @@ +use std::pin::pin; use std::sync::Arc; use axum::extract::State; use axum::http::StatusCode; +use rayhunter::diag::DataType; use rayhunter::diag_device::DiagDevice; -use rayhunter::diag_reader::DiagReader; use tokio::sync::RwLock; -use tokio::sync::mpsc::{Receiver, self}; +use tokio::sync::mpsc::Receiver; use rayhunter::qmdl::QmdlWriter; -use log::{debug, info}; -use tokio::sync::mpsc::error::TryRecvError; -use tokio::task::JoinHandle; +use log::{debug, error, info}; +use tokio::fs::File; use tokio_util::task::TaskTracker; +use futures::{StreamExt, TryStreamExt}; -use crate::error::RayhunterError; use crate::qmdl_store::QmdlStore; use crate::server::ServerState; pub enum DiagDeviceCtrlMessage { StopRecording, - StartRecording(QmdlWriter), + StartRecording(QmdlWriter), Exit, } -pub fn run_diag_read_thread(task_tracker: &TaskTracker, mut dev: DiagDevice, mut qmdl_file_rx: Receiver, qmdl_store_lock: Arc>) -> JoinHandle> { - // mpsc channel for updating QmdlStore entry filesizes. First usize is the - // index, second is the size in bytes - let (tx, mut rx) = mpsc::channel::<(usize, usize)>(1); - - // Spawn a thread to monitor the (usize, usize) channel for updates, - // triggering QmdlStore updates - let qmdl_store_lock_clone = qmdl_store_lock.clone(); +pub fn run_diag_read_thread(task_tracker: &TaskTracker, mut dev: DiagDevice, mut qmdl_file_rx: Receiver, qmdl_store_lock: Arc>) { task_tracker.spawn(async move { - while let Some((entry_idx, new_size)) = rx.recv().await { - let mut qmdl_store = qmdl_store_lock_clone.write().await; - qmdl_store.update_entry(entry_idx, new_size).await - .expect("failed to update qmdl file size"); - } - info!("QMDL store size updater thread exiting..."); - }); - - // Spawn a thread to drive the DiagDevice reading loop. Since DiagDevice - // works via synchronous I/O, we have to spawn a "blocking" thread to avoid - // gumming up tokio's event loop. - task_tracker.spawn_blocking(move || { + let initial_file = qmdl_store_lock.write().await.new_entry().await.expect("failed creating QMDL file entry"); + let mut qmdl_writer: Option> = Some(QmdlWriter::new(initial_file)); + let mut diag_stream = pin!(dev.as_stream().into_stream()); loop { - // First check if we've gotten any control meesages - match qmdl_file_rx.try_recv() { - Ok(DiagDeviceCtrlMessage::StartRecording(qmdl_writer)) => { - dev.qmdl_writer = Some(qmdl_writer); - }, - Ok(DiagDeviceCtrlMessage::StopRecording) => dev.qmdl_writer = None, - // Disconnected means all the Senders have been dropped, so it's - // time to go - Ok(DiagDeviceCtrlMessage::Exit) | Err(TryRecvError::Disconnected) => { - info!("Diag reader thread exiting..."); - return Ok(()) - }, - // empty just means there's no message for us, so continue as normal - Err(TryRecvError::Empty) => {}, - } - - // remember the QmdlStore current entry index so we can update its size later - let qmdl_store_index = qmdl_store_lock.blocking_read().current_entry; - - // TODO: once we're actually doing analysis, we'll wanna use the messages - // returned here. Until then, the DiagDevice has already written those messages - // to the QMDL file, so we can just ignore them. - debug!("reading response from diag device..."); - let _messages = dev.read_response().map_err(RayhunterError::DiagReadError)?; - debug!("got diag response ({} messages)", _messages.len()); - - // keep track of how many bytes were written to the QMDL file so we can read - // a valid block of data from it in the HTTP server - if let Some(qmdl_writer) = dev.qmdl_writer.as_ref() { - debug!("total QMDL bytes written: {}, sending update...", qmdl_writer.total_written); - let index = qmdl_store_index.expect("DiagDevice had qmdl_writer, but QmdlStore didn't have current entry???"); - tx.blocking_send((index, qmdl_writer.total_written)).unwrap(); - debug!("done!"); - } else { - debug!("no qmdl_writer set, continuing..."); + tokio::select! { + msg = qmdl_file_rx.recv() => { + match msg { + Some(DiagDeviceCtrlMessage::StartRecording(new_writer)) => { + qmdl_writer = Some(new_writer); + }, + Some(DiagDeviceCtrlMessage::StopRecording) => qmdl_writer = None, + // None means all the Senders have been dropped, so it's + // time to go + Some(DiagDeviceCtrlMessage::Exit) | None => { + info!("Diag reader thread exiting..."); + return Ok(()) + }, + } + } + maybe_container = diag_stream.next() => { + match maybe_container.unwrap() { + Ok(container) => { + if container.data_type != DataType::UserSpace { + debug!("skipping non-userspace diag messages..."); + continue; + } + // keep track of how many bytes were written to the QMDL file so we can read + // a valid block of data from it in the HTTP server + if let Some(writer) = qmdl_writer.as_mut() { + writer.write_container(&container).await.expect("failed to write to QMDL writer"); + debug!("total QMDL bytes written: {}, updating manifest...", writer.total_written); + let mut qmdl_store = qmdl_store_lock.write().await; + let index = qmdl_store.current_entry.expect("DiagDevice had qmdl_writer, but QmdlStore didn't have current entry???"); + qmdl_store.update_entry(index, writer.total_written).await + .expect("failed to update qmdl file size"); + debug!("done!"); + } else { + debug!("no qmdl_writer set, continuing..."); + } + }, + Err(err) => { + error!("error reading diag device: {}", err); + return Err(err); + } + } + } } } - }) + }); } pub async fn start_recording(State(state): State>) -> Result<(StatusCode, String), (StatusCode, String)> { @@ -91,7 +82,7 @@ pub async fn start_recording(State(state): State>) -> Result<(S let mut qmdl_store = state.qmdl_store_lock.write().await; let qmdl_file = qmdl_store.new_entry().await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("couldn't create new qmdl entry: {}", e)))?; - let qmdl_writer = QmdlWriter::new(qmdl_file.into_std().await); + let qmdl_writer = QmdlWriter::new(qmdl_file); state.diag_device_ctrl_sender.send(DiagDeviceCtrlMessage::StartRecording(qmdl_writer)).await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("couldn't send stop recording message: {}", e)))?; Ok((StatusCode::ACCEPTED, format!("ok"))) diff --git a/bin/src/error.rs b/bin/src/error.rs index 78d15a8..f7a3470 100644 --- a/bin/src/error.rs +++ b/bin/src/error.rs @@ -9,8 +9,6 @@ pub enum RayhunterError{ ConfigFileParsingError(#[from] toml::de::Error), #[error("Diag intialization error: {0}")] DiagInitError(DiagDeviceError), - #[error("Diag read error: {0}")] - DiagReadError(DiagDeviceError), #[error("Tokio error: {0}")] TokioError(#[from] tokio::io::Error), #[error("QmdlStore error: {0}")] diff --git a/bin/src/main.rs b/bin/src/main.rs index 55fab69..892e914 100644 --- a/bin/src/main.rs +++ b/bin/src/main.rs @@ -20,7 +20,6 @@ use log::{info, error}; use rayhunter::diag_device::DiagDevice; use axum::routing::{get, post}; use axum::Router; -use rayhunter::qmdl::QmdlWriter; use stats::get_qmdl_manifest; use tokio::sync::mpsc::{self, Sender}; use tokio::task::JoinHandle; @@ -127,11 +126,9 @@ async fn main() -> Result<(), RayhunterError> { let qmdl_store_lock = Arc::new(RwLock::new(init_qmdl_store(&config).await?)); let (tx, rx) = mpsc::channel::(1); if !config.readonly_mode { - let qmdl_file = qmdl_store_lock.write().await.new_entry().await?; - let qmdl_writer = QmdlWriter::new(qmdl_file.into_std().await); - let mut dev = DiagDevice::new(Some(qmdl_writer)) + let mut dev = DiagDevice::new().await .map_err(RayhunterError::DiagInitError)?; - dev.config_logs() + dev.config_logs().await .map_err(RayhunterError::DiagInitError)?; run_diag_read_thread(&task_tracker, dev, rx, qmdl_store_lock.clone()); diff --git a/bin/src/pcap.rs b/bin/src/pcap.rs index 7694c39..5dadd24 100644 --- a/bin/src/pcap.rs +++ b/bin/src/pcap.rs @@ -1,26 +1,24 @@ use crate::ServerState; +use rayhunter::diag::DataType; use rayhunter::gsmtap_parser::GsmtapParser; use rayhunter::pcap::GsmtapPcapWriter; -use rayhunter::qmdl::{QmdlReader, QmdlReaderError}; -use rayhunter::diag_reader::DiagReader; +use rayhunter::qmdl::QmdlReader; use axum::body::Body; use axum::http::header::CONTENT_TYPE; use axum::extract::{State, Path}; use axum::http::StatusCode; use axum::response::{Response, IntoResponse}; -use std::io::Write; -use std::pin::Pin; +use tokio::io::duplex; +use tokio_util::io::ReaderStream; +use std::{future, pin::pin}; use std::sync::Arc; -use std::task::{Poll, Context}; -use futures_core::Stream; use log::error; -use tokio::sync::mpsc; +use futures::TryStreamExt; // Streams a pcap file chunk-by-chunk to the client by reading the QMDL data -// written so far. This is done by spawning a blocking thread (a tokio thread -// capable of handling blocking operations) which streams chunks of pcap data to -// a channel that's piped to the client. +// written so far. This is done by spawning a thread which streams chunks of +// pcap data to a channel that's piped to the client. pub async fn get_pcap(State(state): State>, Path(qmdl_name): Path) -> Result { let qmdl_store = state.qmdl_store_lock.read().await; let entry = qmdl_store.entry_for_name(&qmdl_name) @@ -31,82 +29,39 @@ pub async fn get_pcap(State(state): State>, Path(qmdl_name): Pa "QMDL file is empty, try again in a bit!".to_string() )); } + let qmdl_file = qmdl_store.open_entry(&entry).await - .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{:?}", e)))? - .into_std().await; + .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("{:?}", e)))?; + // the QMDL reader should stop at the last successfully written data chunk + // (entry.size_bytes) + let mut gsmtap_parser = GsmtapParser::new(); + let (reader, writer) = duplex(1024); + let mut pcap_writer = GsmtapPcapWriter::new(writer).await.unwrap(); + pcap_writer.write_iface_header().await.unwrap(); - let (tx, rx) = mpsc::channel(1); - let channel_reader = ChannelReader { rx }; - let channel_writer = ChannelWriter { tx }; - tokio::task::spawn_blocking(move || { - // the QMDL reader should stop at the last successfully written data - // chunk (qmdl_bytes_written) - let mut qmdl_reader = QmdlReader::new(qmdl_file, Some(entry.size_bytes)); - - let mut gsmtap_parser = GsmtapParser::new(); - let mut pcap_writer = GsmtapPcapWriter::new(channel_writer).unwrap(); - pcap_writer.write_iface_header().unwrap(); - loop { - match qmdl_reader.read_response() { - Ok(messages) => { - for maybe_msg in messages { - match maybe_msg { - Ok(msg) => { - let maybe_gsmtap_msg = gsmtap_parser.recv_message(msg) - .expect("error parsing gsmtap message"); - if let Some((timestamp, gsmtap_msg)) = maybe_gsmtap_msg { - pcap_writer.write_gsmtap_message(gsmtap_msg, timestamp) - .expect("error writing pcap packet"); - } - }, - Err(e) => error!("error parsing message: {:?}", e), + tokio::spawn(async move { + let mut reader = QmdlReader::new(qmdl_file, Some(entry.size_bytes)); + let mut messages_stream = pin!(reader.as_stream() + .try_filter(|container| future::ready(container.data_type == DataType::UserSpace))); + + while let Some(container) = messages_stream.try_next().await.expect("failed getting QMDL container") { + for maybe_msg in container.into_messages() { + match maybe_msg { + Ok(msg) => { + let maybe_gsmtap_msg = gsmtap_parser.recv_message(msg) + .expect("error parsing gsmtap message"); + if let Some((timestamp, gsmtap_msg)) = maybe_gsmtap_msg { + pcap_writer.write_gsmtap_message(gsmtap_msg, timestamp).await + .expect("error writing pcap packet"); } - } - }, - // this is expected, and just means we've reached the end of the - // safely written QMDL data - Err(QmdlReaderError::MaxBytesReached(_)) => break, - Err(e) => { - error!("error reading qmdl file: {:?}", e); - break; - }, + }, + Err(e) => error!("error parsing message: {:?}", e), + } } } }); let headers = [(CONTENT_TYPE, "application/vnd.tcpdump.pcap")]; - let body = Body::from_stream(channel_reader); + let body = Body::from_stream(ReaderStream::new(reader)); Ok((headers, body).into_response()) } - -struct ChannelWriter { - tx: mpsc::Sender>, -} - -impl Write for ChannelWriter { - fn write(&mut self, buf: &[u8]) -> std::io::Result { - self.tx.blocking_send(buf.to_vec()) - .map_err(|_| std::io::Error::new(std::io::ErrorKind::Other, "channel closed"))?; - Ok(buf.len()) - } - - fn flush(&mut self) -> std::io::Result<()> { - Ok(()) - } -} - -struct ChannelReader { - rx: mpsc::Receiver>, -} - -impl Stream for ChannelReader { - type Item = Result, String>; - - fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { - match self.rx.poll_recv(cx) { - Poll::Ready(Some(msg)) => Poll::Ready(Some(Ok(msg))), - Poll::Ready(None) => Poll::Ready(None), - Poll::Pending => Poll::Pending, - } - } -} diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 94a30ee..88b72ac 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -12,6 +12,9 @@ deku = { version = "0.16.0", features = ["logging"] } env_logger = "0.10.1" libc = "0.2.150" log = "0.4.20" -pcap-file = "2.0.0" +pcap-file-tokio = "0.1.0" thiserror = "1.0.50" telcom-parser = { path = "../telcom-parser" } +tokio = { version = "1.35.1", features = ["full"] } +futures-core = "0.3.30" +futures = "0.3.30" diff --git a/lib/src/diag.rs b/lib/src/diag.rs index 786476d..51c7aec 100644 --- a/lib/src/diag.rs +++ b/lib/src/diag.rs @@ -1,8 +1,13 @@ //! Diag protocol serialization/deserialization use chrono::{DateTime, FixedOffset}; +use crc::{Algorithm, Crc}; use deku::prelude::*; +use crate::hdlc::{self, hdlc_decapsulate}; +use log::{warn, error}; +use thiserror::Error; + pub const MESSAGE_TERMINATOR: u8 = 0x7e; pub const MESSAGE_ESCAPE_CHAR: u8 = 0x7d; @@ -49,6 +54,28 @@ pub enum DataType { Other(u32), } +#[derive(Debug, Clone, PartialEq, Error)] +pub enum DiagParsingError { + #[error("Failed to parse Message: {0}, data: {1:?}")] + MessageParsingError(deku::DekuError, Vec), + #[error("HDLC decapsulation of message failed: {0}, data: {1:?}")] + HdlcDecapsulationError(hdlc::HdlcError, Vec), +} + +// this is sorta based on the params qcsuper uses, plus what seems to be used in +// https://github.com/fgsect/scat/blob/f1538b397721df3ab8ba12acd26716abcf21f78b/util.py#L47 +pub const CRC_CCITT_ALG: Algorithm = Algorithm { + poly: 0x1021, + init: 0xffff, + refin: true, + refout: true, + width: 16, + xorout: 0xffff, + check: 0x2189, + residue: 0x0000, +}; + +pub const CRC_CCITT: Crc = Crc::::new(&CRC_CCITT_ALG); #[derive(Debug, Clone, PartialEq, DekuRead, DekuWrite)] pub struct MessagesContainer { pub data_type: DataType, @@ -57,6 +84,29 @@ pub struct MessagesContainer { pub messages: Vec, } +impl MessagesContainer { + pub fn into_messages(self) -> Vec> { + let mut result = Vec::new(); + for msg in self.messages { + for sub_msg in msg.data.split_inclusive(|&b| b == MESSAGE_TERMINATOR) { + match hdlc_decapsulate(sub_msg, &CRC_CCITT) { + Ok(data) => match Message::from_bytes((&data, 0)) { + Ok(((leftover_bytes, _), res)) => { + if !leftover_bytes.is_empty() { + warn!("warning: {} leftover bytes when parsing Message", leftover_bytes.len()); + } + result.push(Ok(res)); + }, + Err(e) => result.push(Err(DiagParsingError::MessageParsingError(e, data))), + }, + Err(err) => result.push(Err(DiagParsingError::HdlcDecapsulationError(err, sub_msg.to_vec()))), + } + } + } + result + } +} + #[derive(Debug, Clone, PartialEq, DekuRead, DekuWrite)] pub struct HdlcEncapsulatedMessage { pub len: u32, @@ -431,4 +481,99 @@ mod test { }, }); } + + fn make_container(data_type: DataType, message: HdlcEncapsulatedMessage) -> MessagesContainer { + MessagesContainer { + data_type, + num_messages: 1, + messages: vec![message], + } + } + + // this log is based on one captured on a real device -- if it fails to + // serialize or deserialize, that's probably a problem with this mock, not + // the DiagReader implementation + fn get_test_message(payload: &[u8]) -> (HdlcEncapsulatedMessage, Message) { + let length_with_payload = 31 + payload.len() as u16; + let message = Message::Log { + pending_msgs: 0, + outer_length: length_with_payload, + inner_length: length_with_payload, + log_type: 0xb0c0, + timestamp: Timestamp { ts: 72659535985485082 }, + body: LogBody::LteRrcOtaMessage { + ext_header_version: 20, + packet: LteRrcOtaPacket::V8 { + rrc_rel_maj: 14, + rrc_rel_min: 48, + bearer_id: 0, + phy_cell_id: 160, + earfcn: 2050, + sfn_subfn: 4057, + pdu_num: 5, + sib_mask: 0, + len: payload.len() as u16, + packet: payload.to_vec(), + }, + }, + }; + let serialized = message.to_bytes().expect("failed to serialize test message"); + let encapsulated_data = hdlc::hdlc_encapsulate(&serialized, &CRC_CCITT); + let encapsulated = HdlcEncapsulatedMessage { + len: encapsulated_data.len() as u32, + data: encapsulated_data, + }; + (encapsulated, message) + } + + #[test] + fn test_containers_with_multiple_messages() { + let (encapsulated1, message1) = get_test_message(&[1]); + let (encapsulated2, message2) = get_test_message(&[2]); + let mut container = make_container(DataType::UserSpace, encapsulated1); + container.messages.push(encapsulated2); + container.num_messages += 1; + assert_eq!(container.into_messages(), vec![Ok(message1), Ok(message2)]); + } + + #[test] + fn test_containers_with_concatenated_message() { + let (mut encapsulated1, message1) = get_test_message(&[1]); + let (encapsulated2, message2) = get_test_message(&[2]); + encapsulated1.data.extend(encapsulated2.data); + encapsulated1.len += encapsulated2.len; + let container = make_container(DataType::UserSpace, encapsulated1); + assert_eq!(container.into_messages(), vec![Ok(message1), Ok(message2)]); + } + + #[test] + fn test_handles_parsing_errors() { + let (encapsulated1, message1) = get_test_message(&[1]); + let bad_message = hdlc::hdlc_encapsulate(&[0x01, 0x02, 0x03, 0x04], &CRC_CCITT); + let encapsulated2 = HdlcEncapsulatedMessage { + len: bad_message.len() as u32, + data: bad_message, + }; + let mut container = make_container(DataType::UserSpace, encapsulated1); + container.messages.push(encapsulated2); + container.num_messages += 1; + let result = container.into_messages(); + assert_eq!(result[0], Ok(message1)); + assert!(matches!(result[1], Err(DiagParsingError::MessageParsingError(_, _)))); + } + + #[test] + fn test_handles_encapsulation_errors() { + let (encapsulated1, message1) = get_test_message(&[1]); + let bad_encapsulation = HdlcEncapsulatedMessage { + len: 4, + data: vec![0x01, 0x02, 0x03, 0x04], + }; + let mut container = make_container(DataType::UserSpace, encapsulated1); + container.messages.push(bad_encapsulation); + container.num_messages += 1; + let result = container.into_messages(); + assert_eq!(result[0], Ok(message1)); + assert!(matches!(result[1], Err(DiagParsingError::HdlcDecapsulationError(_, _)))); + } } diff --git a/lib/src/diag_device.rs b/lib/src/diag_device.rs index a9d5a31..3737379 100644 --- a/lib/src/diag_device.rs +++ b/lib/src/diag_device.rs @@ -1,15 +1,15 @@ use crate::hdlc::hdlc_encapsulate; -use crate::diag::{Message, ResponsePayload, Request, LogConfigRequest, LogConfigResponse, build_log_mask_request, RequestContainer, DataType, MessagesContainer}; -use crate::diag_reader::{DiagReader, CRC_CCITT}; -use crate::qmdl::QmdlWriter; +use crate::diag::{build_log_mask_request, DataType, DiagParsingError, LogConfigRequest, LogConfigResponse, Message, MessagesContainer, Request, RequestContainer, ResponsePayload, CRC_CCITT}; use crate::log_codes; -use std::fs::File; -use std::io::Read; +use std::io::ErrorKind; use std::os::fd::AsRawFd; +use futures_core::TryStream; use thiserror::Error; use log::{info, warn, error}; use deku::prelude::*; +use tokio::fs::File; +use tokio::io::{AsyncReadExt, AsyncWriteExt}; pub type DiagResult = Result; @@ -20,7 +20,7 @@ pub enum DiagDeviceError { #[error("Failed to read diag device: {0}")] DeviceReadFailed(std::io::Error), #[error("Failed to write diag device: {0}")] - DeviceWriteFailed(String), + DeviceWriteFailed(std::io::Error), #[error("Nonzero status code {0} for diag request: {1:?}")] RequestFailed(u32, Request), #[error("Didn't receive response for request: {0:?}")] @@ -71,43 +71,18 @@ const DIAG_IOCTL_SWITCH_LOGGING: u64 = 7; pub struct DiagDevice { file: File, - pub qmdl_writer: Option>, fully_initialized: bool, read_buf: Vec, use_mdm: i32, } -impl DiagReader for DiagDevice { - type Err = DiagDeviceError; - - fn get_next_messages_container(&mut self) -> DiagResult { - let mut bytes_read = 0; - while bytes_read == 0 { - bytes_read = self.file.read(&mut self.read_buf) - .map_err(DiagDeviceError::DeviceReadFailed)?; - } - let ((leftover_bytes, _), container) = MessagesContainer::from_bytes((&self.read_buf[0..bytes_read], 0)) - .map_err(DiagDeviceError::ParseMessagesContainerError)?; - if !leftover_bytes.is_empty() { - warn!("warning: {} leftover bytes when parsing MessagesContainer", leftover_bytes.len()); - } - - if let Some(qmdl_writer) = self.qmdl_writer.as_mut() { - if self.fully_initialized { - qmdl_writer.write_container(&container) - .map_err(DiagDeviceError::QmdlFileWriteError)?; - } - } - Ok(container) - } -} - impl DiagDevice { - pub fn new(qmdl_writer: Option>) -> DiagResult { - let diag_file = std::fs::File::options() + pub async fn new() -> DiagResult { + let diag_file = File::options() .read(true) .write(true) .open("/dev/diag") + .await .map_err(DiagDeviceError::OpenDiagDeviceError)?; let fd = diag_file.as_raw_fd(); @@ -118,12 +93,32 @@ impl DiagDevice { read_buf: vec![0; BUFFER_LEN], file: diag_file, fully_initialized: false, - qmdl_writer, use_mdm, }) } - fn write_request(&mut self, req: &Request) -> DiagResult<()> { + pub fn as_stream(&mut self) -> impl TryStream + '_ { + futures::stream::try_unfold(self, |dev| async { + let container = dev.get_next_messages_container().await?; + Ok(Some((container, dev))) + }) + } + + async fn get_next_messages_container(&mut self) -> Result { + let mut bytes_read = 0; + while bytes_read == 0 { + bytes_read = self.file.read(&mut self.read_buf).await + .map_err(DiagDeviceError::DeviceReadFailed)?; + } + let ((leftover_bytes, _), container) = MessagesContainer::from_bytes((&self.read_buf[0..bytes_read], 0)) + .map_err(DiagDeviceError::ParseMessagesContainerError)?; + if !leftover_bytes.is_empty() { + warn!("warning: {} leftover bytes when parsing MessagesContainer", leftover_bytes.len()); + } + Ok(container) + } + + async fn write_request(&mut self, req: &Request) -> DiagResult<()> { let req_bytes = &req.to_bytes().expect("Failed to serialize Request"); let buf = RequestContainer { data_type: DataType::UserSpace, @@ -131,23 +126,35 @@ impl DiagDevice { mdm_field: -1, hdlc_encapsulated_request: hdlc_encapsulate(req_bytes, &CRC_CCITT), }.to_bytes().expect("Failed to serialize RequestContainer"); - unsafe { - let fd = self.file.as_raw_fd(); - let buf_ptr = buf.as_ptr() as *const libc::c_void; - let ret = libc::write(fd, buf_ptr, buf.len()); - if ret < 0 { - let msg = format!("write failed with error code {}", ret); - return Err(DiagDeviceError::DeviceWriteFailed(msg)); + if let Err(err) = self.file.write(&buf).await { + // For reasons I don't entirely understand, calls to write(2) on + // /dev/diag always return 0 bytes written, though the written + // requests end up being interpreted. As such, we're not concerned + // about WriteZero errors + if err.kind() != ErrorKind::WriteZero { + return Err(DiagDeviceError::DeviceWriteFailed(err)); } } + self.file.flush().await + .map_err(DiagDeviceError::DeviceWriteFailed)?; Ok(()) } - fn retrieve_id_ranges(&mut self) -> DiagResult<[u32; 16]> { - let req = Request::LogConfig(LogConfigRequest::RetrieveIdRanges); - self.write_request(&req)?; + async fn read_response(&mut self) -> DiagResult>> { + loop { + let container = self.get_next_messages_container().await?; + if container.data_type != DataType::UserSpace { + continue; + } + return Ok(container.into_messages()); + } + } - for msg in self.read_response()? { + async fn retrieve_id_ranges(&mut self) -> DiagResult<[u32; 16]> { + let req = Request::LogConfig(LogConfigRequest::RetrieveIdRanges); + self.write_request(&req).await?; + + for msg in self.read_response().await? { match msg { Ok(Message::Log { .. }) => info!("skipping log response..."), Ok(Message::Response { payload, status, .. }) => match payload { @@ -166,11 +173,11 @@ impl DiagDevice { Err(DiagDeviceError::NoResponse(req)) } - fn set_log_mask(&mut self, log_type: u32, log_mask_bitsize: u32) -> DiagResult<()> { + async fn set_log_mask(&mut self, log_type: u32, log_mask_bitsize: u32) -> DiagResult<()> { let req = build_log_mask_request(log_type, log_mask_bitsize, &LOG_CODES_FOR_RAW_PACKET_LOGGING); - self.write_request(&req)?; + self.write_request(&req).await?; - for msg in self.read_response()? { + for msg in self.read_response().await? { match msg { Ok(Message::Log { .. }) => info!("skipping log response..."), Ok(Message::Response { payload, status, .. }) => { @@ -188,13 +195,13 @@ impl DiagDevice { Err(DiagDeviceError::NoResponse(req)) } - pub fn config_logs(&mut self) -> DiagResult<()> { + pub async fn config_logs(&mut self) -> DiagResult<()> { info!("retrieving diag logging capabilities..."); - let log_mask_sizes = self.retrieve_id_ranges()?; + let log_mask_sizes = self.retrieve_id_ranges().await?; for (log_type, &log_mask_bitsize) in log_mask_sizes.iter().enumerate() { if log_mask_bitsize > 0 { - self.set_log_mask(log_type as u32, log_mask_bitsize)?; + self.set_log_mask(log_type as u32, log_mask_bitsize).await?; info!("enabled logging for log type {}", log_type); } } diff --git a/lib/src/diag_reader.rs b/lib/src/diag_reader.rs deleted file mode 100644 index b8ef308..0000000 --- a/lib/src/diag_reader.rs +++ /dev/null @@ -1,223 +0,0 @@ -use crate::diag; -use crate::{diag::*, hdlc::hdlc_decapsulate}; -use crate::hdlc; - -use crc::{Crc, Algorithm}; -use deku::prelude::*; -use log::{info, warn, error}; -use thiserror::Error; - -// this is sorta based on the params qcsuper uses, plus what seems to be used in -// https://github.com/fgsect/scat/blob/f1538b397721df3ab8ba12acd26716abcf21f78b/util.py#L47 -pub const CRC_CCITT_ALG: Algorithm = Algorithm { - poly: 0x1021, - init: 0xffff, - refin: true, - refout: true, - width: 16, - xorout: 0xffff, - check: 0x2189, - residue: 0x0000, -}; -pub const CRC_CCITT: Crc = Crc::::new(&CRC_CCITT_ALG); - -#[derive(Debug, PartialEq, Error)] -pub enum DiagParsingError { - #[error("Failed to parse Message: {0}, data: {1:?}")] - MessageParsingError(deku::DekuError, Vec), - #[error("HDLC decapsulation of message failed: {0}, data: {1:?}")] - HdlcDecapsulationError(hdlc::HdlcError, Vec), -} - -type MaybeMessage = Result; - -pub trait DiagReader { - type Err; - - fn get_next_messages_container(&mut self) -> Result; - - fn read_response(&mut self) -> Result, Self::Err> { - loop { - let container = self.get_next_messages_container()?; - if container.data_type == DataType::UserSpace { - return self.parse_response_container(container); - } else { - info!("skipping non-userspace message...") - } - } - } - - fn parse_response_container(&self, container: MessagesContainer) -> Result, Self::Err> { - let mut result = Vec::new(); - for msg in container.messages { - for sub_msg in msg.data.split_inclusive(|&b| b == diag::MESSAGE_TERMINATOR) { - match hdlc_decapsulate(sub_msg, &CRC_CCITT) { - Ok(data) => match Message::from_bytes((&data, 0)) { - Ok(((leftover_bytes, _), res)) => { - if !leftover_bytes.is_empty() { - warn!("warning: {} leftover bytes when parsing Message", leftover_bytes.len()); - } - result.push(Ok(res)); - }, - Err(e) => { - result.push(Err(DiagParsingError::MessageParsingError(e, data))); - }, - }, - Err(err) => { - result.push(Err(DiagParsingError::HdlcDecapsulationError(err, sub_msg.to_vec()))); - } - } - } - } - Ok(result) - } -} - -#[cfg(test)] -mod test { - use super::*; - - struct MockReader { - containers: Vec, - } - - impl DiagReader for MockReader { - type Err = (); - - fn get_next_messages_container(&mut self) -> Result { - Ok(self.containers.remove(0)) - } - } - - fn make_container(data_type: DataType, message: HdlcEncapsulatedMessage) -> MessagesContainer { - MessagesContainer { - data_type, - num_messages: 1, - messages: vec![message], - } - } - - // this log is based on one captured on a real device -- if it fails to - // serialize or deserialize, that's probably a problem with this mock, not - // the DiagReader implementation - fn get_test_message(payload: &[u8]) -> (HdlcEncapsulatedMessage, Message) { - let length_with_payload = 31 + payload.len() as u16; - let message = Message::Log { - pending_msgs: 0, - outer_length: length_with_payload, - inner_length: length_with_payload, - log_type: 0xb0c0, - timestamp: Timestamp { ts: 72659535985485082 }, - body: LogBody::LteRrcOtaMessage { - ext_header_version: 20, - packet: LteRrcOtaPacket::V8 { - rrc_rel_maj: 14, - rrc_rel_min: 48, - bearer_id: 0, - phy_cell_id: 160, - earfcn: 2050, - sfn_subfn: 4057, - pdu_num: 5, - sib_mask: 0, - len: payload.len() as u16, - packet: payload.to_vec(), - }, - }, - }; - let serialized = message.to_bytes().expect("failed to serialize test message"); - let encapsulated_data = hdlc::hdlc_encapsulate(&serialized, &CRC_CCITT); - let encapsulated = HdlcEncapsulatedMessage { - len: encapsulated_data.len() as u32, - data: encapsulated_data, - }; - (encapsulated, message) - } - - #[test] - fn test_skipping_nonuser_containers() { - let (encapsulated1, message1) = get_test_message(&[1]); - let (encapsulated2, _) = get_test_message(&[2]); - let (encapsulated3, message3) = get_test_message(&[3]); - let mut reader = MockReader { - containers: vec![ - make_container(DataType::UserSpace, encapsulated1), - make_container(DataType::Other(0), encapsulated2), - make_container(DataType::UserSpace, encapsulated3), - ], - }; - assert_eq!(reader.read_response(), Ok(vec![Ok(message1)])); - assert_eq!(reader.read_response(), Ok(vec![Ok(message3)])); - } - - #[test] - fn test_containers_with_multiple_messages() { - let (encapsulated1, message1) = get_test_message(&[1]); - let (encapsulated2, message2) = get_test_message(&[2]); - let mut container1 = make_container(DataType::UserSpace, encapsulated1); - container1.messages.push(encapsulated2); - container1.num_messages += 1; - let (encapsulated3, message3) = get_test_message(&[3]); - let mut reader = MockReader { - containers: vec![ - container1, - make_container(DataType::UserSpace, encapsulated3), - ], - }; - assert_eq!(reader.read_response(), Ok(vec![Ok(message1), Ok(message2)])); - assert_eq!(reader.read_response(), Ok(vec![Ok(message3)])); - } - - #[test] - fn test_containers_with_concatenated_message() { - let (mut encapsulated1, message1) = get_test_message(&[1]); - let (encapsulated2, message2) = get_test_message(&[2]); - encapsulated1.data.extend(encapsulated2.data); - encapsulated1.len += encapsulated2.len; - let (encapsulated3, message3) = get_test_message(&[3]); - let mut reader = MockReader { - containers: vec![ - make_container(DataType::UserSpace, encapsulated1), - make_container(DataType::UserSpace, encapsulated3), - ], - }; - assert_eq!(reader.read_response(), Ok(vec![Ok(message1), Ok(message2)])); - assert_eq!(reader.read_response(), Ok(vec![Ok(message3)])); - } - - #[test] - fn test_handles_parsing_errors() { - let (encapsulated1, message1) = get_test_message(&[1]); - let bad_message = hdlc::hdlc_encapsulate(&[0x01, 0x02, 0x03, 0x04], &CRC_CCITT); - let encapsulated2 = HdlcEncapsulatedMessage { - len: bad_message.len() as u32, - data: bad_message, - }; - let mut container = make_container(DataType::UserSpace, encapsulated1); - container.messages.push(encapsulated2); - container.num_messages += 1; - let mut reader = MockReader { - containers: vec![container], - }; - let result = reader.read_response().unwrap(); - assert_eq!(result[0], Ok(message1)); - assert!(matches!(result[1], Err(DiagParsingError::MessageParsingError(_, _)))); - } - - #[test] - fn test_handles_encapsulation_errors() { - let (encapsulated1, message1) = get_test_message(&[1]); - let bad_encapsulation = HdlcEncapsulatedMessage { - len: 4, - data: vec![0x01, 0x02, 0x03, 0x04], - }; - let mut container = make_container(DataType::UserSpace, encapsulated1); - container.messages.push(bad_encapsulation); - container.num_messages += 1; - let mut reader = MockReader { - containers: vec![container], - }; - let result = reader.read_response().unwrap(); - assert_eq!(result[0], Ok(message1)); - assert!(matches!(result[1], Err(DiagParsingError::HdlcDecapsulationError(_, _)))); - } -} diff --git a/lib/src/hdlc.rs b/lib/src/hdlc.rs index 3c99e1b..22456bd 100644 --- a/lib/src/hdlc.rs +++ b/lib/src/hdlc.rs @@ -9,7 +9,7 @@ use thiserror::Error; use crate::diag::{MESSAGE_ESCAPE_CHAR, MESSAGE_TERMINATOR, ESCAPED_MESSAGE_ESCAPE_CHAR, ESCAPED_MESSAGE_TERMINATOR}; -#[derive(Debug, Error, PartialEq)] +#[derive(Debug, Clone, Error, PartialEq)] pub enum HdlcError { #[error("Invalid checksum (expected {0}, got {1})")] InvalidChecksum(u16, u16), @@ -89,7 +89,7 @@ mod tests { #[test] fn test_hdlc_encapsulate() { - let crc = Crc::::new(&crate::diag_reader::CRC_CCITT_ALG); + let crc = Crc::::new(&crate::diag::CRC_CCITT_ALG); let data = vec![0x01, 0x02, 0x03, 0x04]; let expected = vec![1, 2, 3, 4, 145, 57, 126]; let encapsulated = hdlc_encapsulate(&data, &crc); diff --git a/lib/src/lib.rs b/lib/src/lib.rs index dda6d21..982f406 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -1,7 +1,6 @@ pub mod hdlc; pub mod diag; pub mod diag_device; -pub mod diag_reader; pub mod qmdl; pub mod log_codes; pub mod gsmtap; diff --git a/lib/src/pcap.rs b/lib/src/pcap.rs index 9ae59ca..7bd5197 100644 --- a/lib/src/pcap.rs +++ b/lib/src/pcap.rs @@ -1,14 +1,14 @@ use crate::gsmtap::GsmtapMessage; use crate::diag::Timestamp; -use std::io::Write; +use tokio::io::AsyncWrite; use std::borrow::Cow; use chrono::prelude::*; use deku::prelude::*; -use pcap_file::pcapng::blocks::enhanced_packet::EnhancedPacketBlock; -use pcap_file::pcapng::blocks::interface_description::InterfaceDescriptionBlock; -use pcap_file::pcapng::PcapNgWriter; -use pcap_file::PcapError; +use pcap_file_tokio::pcapng::blocks::enhanced_packet::EnhancedPacketBlock; +use pcap_file_tokio::pcapng::blocks::interface_description::InterfaceDescriptionBlock; +use pcap_file_tokio::pcapng::PcapNgWriter; +use pcap_file_tokio::PcapError; use thiserror::Error; #[derive(Error, Debug)] @@ -23,7 +23,7 @@ pub enum GsmtapPcapError { Deku(#[from] DekuError), } -pub struct GsmtapPcapWriter where T: Write { +pub struct GsmtapPcapWriter where T: AsyncWrite { writer: PcapNgWriter, ip_id: u16, } @@ -56,23 +56,23 @@ struct UdpHeader { checksum: u16, } -impl GsmtapPcapWriter where T: Write { - pub fn new(writer: T) -> Result { - let writer = PcapNgWriter::new(writer)?; +impl GsmtapPcapWriter where T: AsyncWrite + Unpin + Send { + pub async fn new(writer: T) -> Result { + let writer = PcapNgWriter::new(writer).await?; Ok(GsmtapPcapWriter { writer, ip_id: 0 }) } - pub fn write_iface_header(&mut self) -> Result<(), GsmtapPcapError> { + pub async fn write_iface_header(&mut self) -> Result<(), GsmtapPcapError> { let interface = InterfaceDescriptionBlock { - linktype: pcap_file::DataLink::IPV4, + linktype: pcap_file_tokio::DataLink::IPV4, snaplen: 0xffff, options: vec![], }; - self.writer.write_pcapng_block(interface)?; + self.writer.write_pcapng_block(interface).await?; Ok(()) } - pub fn write_gsmtap_message(&mut self, msg: GsmtapMessage, timestamp: Timestamp) -> Result<(), GsmtapPcapError> { + pub async fn write_gsmtap_message(&mut self, msg: GsmtapMessage, timestamp: Timestamp) -> Result<(), GsmtapPcapError> { let duration = timestamp.to_datetime() .signed_duration_since(DateTime::UNIX_EPOCH) .to_std()?; @@ -113,7 +113,7 @@ impl GsmtapPcapWriter where T: Write { data: Cow::Owned(data), options: vec![], }; - self.writer.write_pcapng_block(packet)?; + self.writer.write_pcapng_block(packet).await?; self.ip_id = self.ip_id.wrapping_add(1); Ok(()) } diff --git a/lib/src/qmdl.rs b/lib/src/qmdl.rs index c9ff5d6..e6863fc 100644 --- a/lib/src/qmdl.rs +++ b/lib/src/qmdl.rs @@ -3,19 +3,18 @@ //! QmdlReader and QmdlWriter can read and write MessagesContainers to and from //! QMDL files. -use crate::diag_reader::DiagReader; use crate::diag::{MessagesContainer, MESSAGE_TERMINATOR, HdlcEncapsulatedMessage, DataType}; -use std::io::{Write, BufReader, BufRead, Read}; -use thiserror::Error; +use futures::TryStream; +use tokio::io::{AsyncRead, AsyncWrite, AsyncWriteExt, BufReader, AsyncBufReadExt}; use log::error; -pub struct QmdlWriter where T: Write { +pub struct QmdlWriter where T: AsyncWrite + Unpin { writer: T, pub total_written: usize, } -impl QmdlWriter where T: Write { +impl QmdlWriter where T: AsyncWrite + Unpin { pub fn new(writer: T) -> Self { QmdlWriter::new_with_existing_size(writer, 0) } @@ -27,30 +26,22 @@ impl QmdlWriter where T: Write { } } - pub fn write_container(&mut self, container: &MessagesContainer) -> std::io::Result<()> { + pub async fn write_container(&mut self, container: &MessagesContainer) -> std::io::Result<()> { for msg in &container.messages { - self.writer.write_all(&msg.data)?; + self.writer.write_all(&msg.data).await?; self.total_written += msg.data.len(); } Ok(()) } } -#[derive(Debug, Error)] -pub enum QmdlReaderError { - #[error("IO error: {0}")] - IoError(#[from] std::io::Error), - #[error("Reached max_bytes count {0}")] - MaxBytesReached(usize), -} - -pub struct QmdlReader where T: Read { +pub struct QmdlReader where T: AsyncRead { reader: BufReader, bytes_read: usize, max_bytes: Option, } -impl QmdlReader where T: Read { +impl QmdlReader where T: AsyncRead + Unpin { pub fn new(reader: T, max_bytes: Option) -> Self { QmdlReader { reader: BufReader::new(reader), @@ -58,23 +49,29 @@ impl QmdlReader where T: Read { max_bytes, } } -} -impl DiagReader for QmdlReader where T: Read { - type Err = QmdlReaderError; + pub fn as_stream(&mut self) -> impl TryStream + '_ { + futures::stream::try_unfold(self, |reader| async { + let maybe_container = reader.get_next_messages_container().await?; + match maybe_container { + Some(container) => Ok(Some((container, reader))), + None => Ok(None) + } + }) + } - fn get_next_messages_container(&mut self) -> Result { + async fn get_next_messages_container(&mut self) -> Result, std::io::Error> { if let Some(max_bytes) = self.max_bytes { if self.bytes_read >= max_bytes { if self.bytes_read > max_bytes { error!("warning: {} bytes read, but max_bytes was {}", self.bytes_read, max_bytes); } - return Err(QmdlReaderError::MaxBytesReached(max_bytes)); + return Ok(None); } } let mut buf = Vec::new(); - let bytes_read = self.reader.read_until(MESSAGE_TERMINATOR, &mut buf)?; + let bytes_read = self.reader.read_until(MESSAGE_TERMINATOR, &mut buf).await?; self.bytes_read += bytes_read; // Since QMDL is just a flat list of messages, we can't actually @@ -82,7 +79,7 @@ impl DiagReader for QmdlReader where T: Read { // read. So we'll just pretend that all containers had exactly one // message. As far as I know, the number of messages per container // doesn't actually affect anything, so this should be fine. - Ok(MessagesContainer { + Ok(Some(MessagesContainer { data_type: DataType::UserSpace, num_messages: 1, messages: vec![ @@ -91,7 +88,7 @@ impl DiagReader for QmdlReader where T: Read { data: buf, }, ] - }) + })) } } @@ -100,7 +97,7 @@ mod test { use std::io::Cursor; use crate::hdlc::hdlc_encapsulate; - use crate::diag_reader::CRC_CCITT; + use crate::diag::CRC_CCITT; use super::*; @@ -140,8 +137,8 @@ mod test { ] } - #[test] - fn test_unbounded_qmdl_reader() { + #[tokio::test] + async fn test_unbounded_qmdl_reader() { let mut buf = Cursor::new(get_test_message_bytes()); let mut reader = QmdlReader::new(&mut buf, None); let expected_messages = get_test_messages(); @@ -151,12 +148,12 @@ mod test { num_messages: 1, messages: vec![message], }; - assert_eq!(expected_container, reader.get_next_messages_container().unwrap()); + assert_eq!(expected_container, reader.get_next_messages_container().await.unwrap().unwrap()); } } - #[test] - fn test_bounded_qmdl_reader() { + #[tokio::test] + async fn test_bounded_qmdl_reader() { let mut buf = Cursor::new(get_test_message_bytes()); // bound the reader to the first two messages @@ -170,30 +167,30 @@ mod test { num_messages: 1, messages: vec![message], }; - assert_eq!(expected_container, reader.get_next_messages_container().unwrap()); + assert_eq!(expected_container, reader.get_next_messages_container().await.unwrap().unwrap()); } - assert!(matches!(reader.get_next_messages_container(), Err(QmdlReaderError::MaxBytesReached(_)))); + assert!(matches!(reader.get_next_messages_container().await, Ok(None))); } - #[test] - fn test_qmdl_writer() { + #[tokio::test] + async fn test_qmdl_writer() { let mut buf = Vec::new(); let mut writer = QmdlWriter::new(&mut buf); let expected_containers = get_test_containers(); for container in &expected_containers { - writer.write_container(container).unwrap(); + writer.write_container(container).await.unwrap(); } assert_eq!(writer.total_written, buf.len()); assert_eq!(buf, get_test_message_bytes()); } - #[test] - fn test_writing_and_reading() { + #[tokio::test] + async fn test_writing_and_reading() { let mut buf = Vec::new(); let mut writer = QmdlWriter::new(&mut buf); let expected_containers = get_test_containers(); for container in &expected_containers { - writer.write_container(container).unwrap(); + writer.write_container(container).await.unwrap(); } let limit = Some(buf.len()); @@ -205,8 +202,8 @@ mod test { num_messages: 1, messages: vec![message], }; - assert_eq!(expected_container, reader.get_next_messages_container().unwrap()); + assert_eq!(expected_container, reader.get_next_messages_container().await.unwrap().unwrap()); } - assert!(matches!(reader.get_next_messages_container(), Err(QmdlReaderError::MaxBytesReached(_)))); + assert!(matches!(reader.get_next_messages_container().await, Ok(None))); } } From 0b6c06c7e66d63c5e4a59f8110ca7b15292ddd77 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Thu, 22 Feb 2024 19:29:45 -0800 Subject: [PATCH 15/16] appease clippy --- bin/src/diag.rs | 8 ++++---- bin/src/stats.rs | 4 ++-- lib/src/analysis/lte_downgrade.rs | 10 ++++------ telcom-parser/src/lib.rs | 4 ++-- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/bin/src/diag.rs b/bin/src/diag.rs index 4c2e43e..440f8be 100644 --- a/bin/src/diag.rs +++ b/bin/src/diag.rs @@ -77,7 +77,7 @@ pub fn run_diag_read_thread(task_tracker: &TaskTracker, mut dev: DiagDevice, mut pub async fn start_recording(State(state): State>) -> Result<(StatusCode, String), (StatusCode, String)> { if state.readonly_mode { - return Err((StatusCode::FORBIDDEN, format!("server is in readonly mode"))); + return Err((StatusCode::FORBIDDEN, "server is in readonly mode".to_string())); } let mut qmdl_store = state.qmdl_store_lock.write().await; let qmdl_file = qmdl_store.new_entry().await @@ -85,17 +85,17 @@ pub async fn start_recording(State(state): State>) -> Result<(S let qmdl_writer = QmdlWriter::new(qmdl_file); state.diag_device_ctrl_sender.send(DiagDeviceCtrlMessage::StartRecording(qmdl_writer)).await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("couldn't send stop recording message: {}", e)))?; - Ok((StatusCode::ACCEPTED, format!("ok"))) + Ok((StatusCode::ACCEPTED, "ok".to_string())) } pub async fn stop_recording(State(state): State>) -> Result<(StatusCode, String), (StatusCode, String)> { if state.readonly_mode { - return Err((StatusCode::FORBIDDEN, format!("server is in readonly mode"))); + return Err((StatusCode::FORBIDDEN, "server is in readonly mode".to_string())); } let mut qmdl_store = state.qmdl_store_lock.write().await; qmdl_store.close_current_entry().await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("couldn't close current qmdl entry: {}", e)))?; state.diag_device_ctrl_sender.send(DiagDeviceCtrlMessage::StopRecording).await .map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, format!("couldn't send stop recording message: {}", e)))?; - Ok((StatusCode::ACCEPTED, format!("ok"))) + Ok((StatusCode::ACCEPTED, "ok".to_string())) } diff --git a/bin/src/stats.rs b/bin/src/stats.rs index 3ddd088..28d5a81 100644 --- a/bin/src/stats.rs +++ b/bin/src/stats.rs @@ -103,10 +103,10 @@ pub async fn get_system_stats(State(state): State>) -> Result Ok(Json(stats)), Err(err) => { error!("error getting system stats: {}", err); - return Err(( + Err(( StatusCode::INTERNAL_SERVER_ERROR, "error getting system stats".to_string() - )); + )) }, } } diff --git a/lib/src/analysis/lte_downgrade.rs b/lib/src/analysis/lte_downgrade.rs index 9d0f4d4..da73c9d 100644 --- a/lib/src/analysis/lte_downgrade.rs +++ b/lib/src/analysis/lte_downgrade.rs @@ -10,12 +10,10 @@ 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); - } + if let InformationElement::LTE(LteInformationElement::BcchDlSch(bcch_dl_sch_message)) = ie { + 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); } } } diff --git a/telcom-parser/src/lib.rs b/telcom-parser/src/lib.rs index 2e59dd5..17ec14d 100644 --- a/telcom-parser/src/lib.rs +++ b/telcom-parser/src/lib.rs @@ -1,6 +1,6 @@ use asn1_codecs::{uper::UperCodec, PerCodecData, PerCodecError}; use thiserror::Error; -#[allow(unreachable_patterns, non_camel_case_types)] +#[allow(warnings, unused, unreachable_patterns, non_camel_case_types)] pub mod lte_rrc; #[derive(Error, Debug)] @@ -14,5 +14,5 @@ pub fn decode(data: &[u8]) -> Result { let mut asn_data = PerCodecData::from_slice_uper(data); T::uper_decode(&mut asn_data) - .map_err(|e| ParsingError::UperDecodeError(e)) + .map_err(ParsingError::UperDecodeError) } From 36c09e1dbc9a6d98a9feb546ede6fc72d7d9d781 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Fri, 23 Feb 2024 10:54:51 -0800 Subject: [PATCH 16/16] diag_device: rm unused initialization tracker --- lib/src/diag_device.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/src/diag_device.rs b/lib/src/diag_device.rs index 3737379..9de601f 100644 --- a/lib/src/diag_device.rs +++ b/lib/src/diag_device.rs @@ -71,7 +71,6 @@ const DIAG_IOCTL_SWITCH_LOGGING: u64 = 7; pub struct DiagDevice { file: File, - fully_initialized: bool, read_buf: Vec, use_mdm: i32, } @@ -92,7 +91,6 @@ impl DiagDevice { Ok(DiagDevice { read_buf: vec![0; BUFFER_LEN], file: diag_file, - fully_initialized: false, use_mdm, }) } @@ -206,7 +204,6 @@ impl DiagDevice { } } - self.fully_initialized = true; Ok(()) } }