aboutsummaryrefslogtreecommitdiffstats
path: root/library/BSSMAP_Templates.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'library/BSSMAP_Templates.ttcn')
-rw-r--r--library/BSSMAP_Templates.ttcn26
1 files changed, 26 insertions, 0 deletions
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index d4e278bc..cd94ad1a 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -921,6 +921,32 @@ modifies tr_BSSAP_BSSMAP := {
}
}
+/* return Layer3 octetstring inside BSSAP PDU */
+function f_bssap_extract_l3(PDU_BSSAP bssap) return template octetstring {
+ if (ischosen(bssap.pdu.bssmap)) {
+ var PDU_BSSMAP bssmap := bssap.pdu.bssmap;
+ if (ischosen(bssmap.completeLayer3Information)) {
+ return bssmap.completeLayer3Information.layer3Information.layer3info;
+ } else if (ischosen(bssmap.handoverRequestAck)) {
+ return bssmap.handoverRequestAck.layer3Information.layer3info;
+ } else if (ischosen(bssmap.handoverCommand)) {
+ return bssmap.handoverCommand.layer3Information.layer3info;
+ } else if (ischosen(bssmap.uplinkRequest)) {
+ return bssmap.uplinkRequest.layer3Information.layer3info;
+ } else if (ischosen(bssmap.uplinkRequestConfirmation)) {
+ return bssmap.uplinkRequestConfirmation.layer3Information.layer3info;
+ } else if (ischosen(bssmap.uplinkApplicationData)) {
+ return bssmap.uplinkApplicationData.layer3Information.layer3info;
+ } else if (ischosen(bssmap.rerouteCommand)) {
+ return bssmap.rerouteCommand.initialLayer3Information.layer3info;
+ } else {
+ return omit;
+ }
+ } else {
+ return bssap.pdu.dtap;
+ }
+}
+