fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27497 )
Change subject: library/LAPDm_Types: add 'padding' field to the LapdmFrameAB
record
......................................................................
library/LAPDm_Types: add 'padding' field to the LapdmFrameAB record
TTCN-3 offers a very convinient way of matching an octetstring
against a record template (decoding target) on the fly, so that
there is no need to attempt decoding it manually beforehand.
This can be done by using the 'decmatch' keyword (see B.1.2.9).
Unfortunately, decmatch fails if an octetstring is longer than
the encoded variant of the decoding target (e.g. has padding).
Let's work this around by adding a 'padding' field, so during
decoding all remaining octets will be stored in it.
Change-Id: I0151adf7790127617f7cb57c9a9ec6c28721e95a
Related: SYS#5838
---
M bts/BTS_Tests.ttcn
M library/LAPDm_Types.ttcn
2 files changed, 36 insertions(+), 18 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/97/27497/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 27b004a..9447c40 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -1914,7 +1914,8 @@
len := 0, /* overwritten */
m := false,
el := 1,
- payload := enc_GsmRrL3Message(valueof(l3))
+ payload := enc_GsmRrL3Message(valueof(l3)),
+ padding := ''O
}
/* handle incoming downlink SACCH and respond with uplink SACCH (meas res) */
diff --git a/library/LAPDm_Types.ttcn b/library/LAPDm_Types.ttcn
index 5ef953d..baa2b7e 100644
--- a/library/LAPDm_Types.ttcn
+++ b/library/LAPDm_Types.ttcn
@@ -180,7 +180,8 @@
uint6_t len,
boolean m,
uint1_t el,
- octetstring payload /* zero-length in Frame A */
+ octetstring payload, /* zero-length in Frame A */
+ octetstring padding
} with { variant (len) "LENGTHTO(payload)"
variant "FIELDORDER(msb)" };
@@ -230,7 +231,8 @@
len := 0, /* overwritten in encoder */
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ''O
}
}
template LapdmFrame tr_LAPDm_SABM(template LapdmSapi sapi, template boolean c_r,
@@ -241,7 +243,8 @@
len := ?,
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ?
}
}
@@ -253,7 +256,8 @@
len := 0, /* overwritten in encoder */
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ''O
}
}
template LapdmFrame tr_LAPDm_UA(template LapdmSapi sapi, template boolean c_r,
@@ -264,7 +268,8 @@
len := ?,
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ?
}
}
@@ -275,7 +280,8 @@
len := 0, /* overwritten in encoder */
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ''O
}
}
template LapdmFrame tr_LAPDm_DM(template LapdmSapi sapi, template boolean c_r,
@@ -286,7 +292,8 @@
len := ?,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ?
}
}
@@ -297,7 +304,8 @@
len := 0,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ''O
}
}
template LapdmFrame tr_LAPDm_DISC(template LapdmSapi sapi, template boolean c_r,
@@ -308,7 +316,8 @@
len := ?,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ?
}
}
@@ -319,7 +328,8 @@
len := 0,
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ''O
}
}
template LapdmFrame tr_LAPDm_UI(template LapdmSapi sapi, template boolean c_r,
@@ -330,7 +340,8 @@
len := ?,
m := false,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ?
}
}
@@ -360,7 +371,8 @@
len := ?,
m := m,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ?
}
}
template (value) LapdmFrame ts_LAPDm_I(LapdmSapi sapi, boolean c_r, boolean p, uint3_t
nr,
@@ -371,7 +383,8 @@
len := 0,
m := m,
el := 1,
- payload := l3
+ payload := l3,
+ padding := ''O
}
}
@@ -383,7 +396,8 @@
len := 0,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ?
}
}
template (value) LapdmFrame ts_LAPDm_RR(LapdmSapi sapi, boolean c_r,
@@ -394,7 +408,8 @@
len := 0,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ''O
}
}
@@ -406,7 +421,8 @@
len := 0,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ?
}
}
template (value) LapdmFrame ts_LAPDm_REJ(LapdmSapi sapi, boolean c_r,
@@ -417,7 +433,8 @@
len := 0,
m := false,
el := 1,
- payload := ''O
+ payload := ''O,
+ padding := ''O
}
}
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27497
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I0151adf7790127617f7cb57c9a9ec6c28721e95a
Gerrit-Change-Number: 27497
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange