aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-05-27 00:38:59 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2021-05-29 21:50:11 +0200
commit9c3b82f5dcd827b16921a8c08282db7b662e46e5 (patch)
tree6dc8111a8456c43fbe42223e34d301cd804d75cc
parent99b837ad09b94df531e7090cc6ebec0503001f9d (diff)
GSM_Types, bsc: add VAMOS cbits
-rw-r--r--bsc/MSC_ConnectionHandler.ttcn6
-rw-r--r--library/GSM_Types.ttcn24
2 files changed, 28 insertions, 2 deletions
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 8c44bf74..37adc18c 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -754,9 +754,15 @@ function f_ChDesc2RslChanNr(ChannelDescription2_V ch_desc, out RslChannelNr chan
if (match(inp, '00001'B)) { /* TCH/F */
chan_nr := valueof(t_RslChanNr_Bm(tn));
}
+ else if (match(inp, '11101'B)) { /* VAMOS TCH/F */
+ chan_nr := valueof(t_RslChanNr_Osmo_VAMOS_Bm(tn));
+ }
else if (match(inp, '0001?'B)) { /* TCH/H */
chan_nr := valueof(t_RslChanNr_Lm(tn, bit2int(substr(inp, 4, 1))));
}
+ else if (match(inp, '1111?'B)) { /* VAMOS TCH/H */
+ chan_nr := valueof(t_RslChanNr_Osmo_VAMOS_Lm(tn, bit2int(substr(inp, 4, 1))));
+ }
else if (match(inp, '001??'B)) { /* SDCCH/4 */
chan_nr := valueof(t_RslChanNr_SDCCH4(tn, bit2int(substr(inp, 3, 2))));
}
diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index bcd0afba..e74972fd 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -124,11 +124,12 @@ type enumerated RslChanNr0 {
RSL_CHAN_NR_PCH_AGCH ('10010'B),
RSL_CHAN_NR_OSMO_PDCH ('11000'B),
RSL_CHAN_NR_OSMO_CBCH4 ('11001'B),
- RSL_CHAN_NR_OSMO_CBCH8 ('11010'B)
+ RSL_CHAN_NR_OSMO_CBCH8 ('11010'B),
+ RSL_CHAN_NR_OSMO_VAMOS_Bm_ACCH ('11101'B)
} with { variant "FIELDLENGTH(5)" variant "FIELDORDER(msb)" };
type record RslChanNr2 {
- BIT4 tag ('0001'B),
+ BIT4 tag ('0001'B, '1111'B),
uint1_t sub_chan
} with { variant "FIELDLENGTH(5)" variant "FIELDORDER(msb)" };
@@ -149,6 +150,7 @@ type union RslChanNrU {
RslChanNr8 sdcch8
} with {
variant "TAG(lm, tag = '0001'B;
+ lm, tag = '1111'B;
sdcch4, tag = '001'B;
sdcch8, tag = '01'B;
ch0, OTHERWISE)"
@@ -185,6 +187,15 @@ template RslChannelNr t_RslChanNr_SDCCH8(template uint3_t tn, template uint3_t s
u := { sdcch8 := { tag := '01'B, sub_chan := sub_slot } },
tn := tn
}
+template RslChannelNr t_RslChanNr_Osmo_VAMOS_Bm(template uint3_t tn) := {
+ u := { ch0 := RSL_CHAN_NR_OSMO_VAMOS_Bm_ACCH },
+ tn := tn
+}
+
+template RslChannelNr t_RslChanNr_Osmo_VAMOS_Lm(template uint3_t tn, template uint1_t sub_slot) := {
+ u := { lm := { tag := '1111'B, sub_chan := sub_slot } },
+ tn := tn
+}
template (value) RslChannelNr ts_RslChanNr0(uint3_t tn, RslChanNr0 cht) := {
u := { ch0 := cht },
@@ -209,6 +220,15 @@ template (value) RslChannelNr ts_RslChanNr_SDCCH8(uint3_t tn, uint3_t sub_slot)
u := { sdcch8 := { tag := '01'B, sub_chan := sub_slot } },
tn := tn
}
+template (value) RslChannelNr ts_RslChanNr_Osmo_VAMOS_Bm(uint3_t tn) := {
+ u := { ch0 := RSL_CHAN_NR_OSMO_VAMOS_Bm_ACCH },
+ tn := tn
+}
+template (value) RslChannelNr ts_RslChanNr_Osmo_VAMOS_Lm(uint3_t tn, uint1_t sub_slot) := {
+ u := { lm := { tag := '1111'B, sub_chan := sub_slot } },
+ tn := tn
+}
+
/* TS 48.058 9.3.2 Link ID */
type enumerated RslLinkIdC {