diff options
Diffstat (limited to 'library/BSSMAP_Templates.ttcn')
-rw-r--r-- | library/BSSMAP_Templates.ttcn | 26 |
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; + } +} + |