summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2020-05-04 21:22:41 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2020-05-05 00:16:38 +0700
commitb7bc2e67465199a4310c6ec75a95e297a76674a2 (patch)
treedd8ebe8b30f5278cb1cdb064598be0deb72ed897
parent135b45eed9871ad8cb5f794908811fdcdf9b5506 (diff)
library: relax length constraints applied to SI Rest Octets
As it turned out, the length constraints introduced in [1] were too strict. In particular, the use of FIELDLENGTH attribute made it impossible to assign an octetstring of a smaller size and then pad the remaining octets with '2B'O. TITAN would just use '00'O instead, ignoring all my attempts to talk some sense into it. [1] I183d3ba9000e3ced8ecce74a4390b80075ddf25d Change-Id: Ie1b6d4100c064b6ae08ed55cd797b9416c6faf14 Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
-rw-r--r--library/GSM_SystemInformation.ttcn32
1 files changed, 11 insertions, 21 deletions
diff --git a/library/GSM_SystemInformation.ttcn b/library/GSM_SystemInformation.ttcn
index 07ca8e6..de1fcf7 100644
--- a/library/GSM_SystemInformation.ttcn
+++ b/library/GSM_SystemInformation.ttcn
@@ -119,10 +119,8 @@ module GSM_SystemInformation {
type record SystemInformationType1 {
CellChannelDescription cell_chan_desc,
RachControlParameters rach_control,
- RestOctets rest_octets
- } with {
- variant (rest_octets) "FIELDLENGTH(1)"
- };
+ RestOctets rest_octets length(0..1)
+ } with { variant "" };
/* 44.018 9.1.32 */
type record SystemInformationType2 {
@@ -135,18 +133,14 @@ module GSM_SystemInformation {
type record SystemInformationType2bis {
NeighbourCellDescription extd_bcch_freq_list,
RachControlParameters rach_control,
- RestOctets rest_octets
- } with {
- variant (rest_octets) "FIELDLENGTH(1)"
- };
+ RestOctets rest_octets length(0..1)
+ } with { variant "" };
/* 44.018 9.1.34 */
type record SystemInformationType2ter {
NeighbourCellDescription2 extd_bcch_freq_list,
- RestOctets rest_octets
- } with {
- variant (rest_octets) "FIELDLENGTH(4)"
- };
+ RestOctets rest_octets length(0..4)
+ } with { variant "" };
/* 44.018 9.1.35 */
type record SystemInformationType3 {
@@ -156,10 +150,8 @@ module GSM_SystemInformation {
CellOptions cell_options,
CellSelectionParameters cell_sel_par,
RachControlParameters rach_control,
- RestOctets rest_octets
- } with {
- variant (rest_octets) "FIELDLENGTH(4)"
- };
+ RestOctets rest_octets length(0..4)
+ } with { variant "" };
template SystemInformationType3 t_SI3 := {
cell_id := ?,
@@ -179,7 +171,7 @@ module GSM_SystemInformation {
RachControlParameters rach_control,
ChannelDescriptionTV cbch_chan_desc optional,
MobileAllocationT cbch_mobile_alloc optional,
- RestOctets rest_octets /* 0 .. 10 octets (see 10.5.2.35) */
+ RestOctets rest_octets length(0..10) /* see 10.5.2.35 */
} with { variant "TAG(cbch_chan_desc, iei = '64'O; cbch_mobile_alloc, iei = '72'O)" };
/* 44.018 9.1.37 */
@@ -203,10 +195,8 @@ module GSM_SystemInformation {
LocationAreaIdentification lai,
CellOptionsSacch cell_options,
BIT8 ncc_permitted,
- RestOctets rest_octets
- } with {
- variant (rest_octets) "FIELDLENGTH(7)"
- };
+ RestOctets rest_octets length(0..7)
+ } with { variant "" };
type union SystemInformationUnion {
SystemInformationType1 si1,