gsup: Add PCO IE
This commit adds a new file PCO_Types.ttcn which allows generically
encoding decoding PCOs.
Change-Id: I9a1ae74712d6e8e0cd524ccd7fc2529b1a15dd97
diff --git a/library/GSUP_Templates.ttcn b/library/GSUP_Templates.ttcn
index 10c682c..d886088 100644
--- a/library/GSUP_Templates.ttcn
+++ b/library/GSUP_Templates.ttcn
@@ -17,6 +17,7 @@
import from General_Types all;
import from Osmocom_Types all;
+import from PCO_Types all;
import from GSUP_Types all;
function f_gsup_postprocess_decoded(inout GSUP_PDU gsup) {
@@ -292,6 +293,14 @@
}
}
+template (value) GSUP_IE ts_GSUP_IE_PCO(template (value) PCO_DATA pco) := {
+ tag := OSMO_GSUP_PCO_IE,
+ len := 0,
+ val := {
+ pco := pco
+ }
+}
+
template GSUP_PDU tr_GSUP(template GSUP_MessageType msgt := ?, template GSUP_IEs ies := *) := {
msg_type := msgt,
ies := ies
@@ -496,11 +505,13 @@
/* EPDG Tunnel */
template (value) GSUP_PDU ts_GSUP_EPDGTunnel_REQ(hexstring imsi,
+ template (value) PCO_DATA pco,
GSUP_Message_Class message_class := OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG,
GSUP_CnDomain dom := OSMO_GSUP_CN_DOMAIN_PS,
template (omit) octetstring source_name := omit) :=
ts_GSUP(OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST, f_gen_ts_ies(imsi,
message_class := message_class,
+ pco := pco,
dom := dom,
source_name := source_name));
@@ -1170,6 +1181,7 @@
template (omit) boolean pdp_info_compl := omit,
template (omit) GSUP_Message_Class message_class := omit,
template (omit) hexstring imei := omit,
+ template (omit) PCO_DATA pco := omit,
template (omit) GSUP_CnDomain dom := omit,
template (omit) octetstring source_name := omit,
template (omit) octetstring destination_name := omit
@@ -1190,6 +1202,10 @@
ies := ies & { valueof(ts_GSUP_IE_IMEI(valueof(imei))) };
}
+ if (isvalue(pco)) {
+ ies := ies & { valueof(ts_GSUP_IE_PCO(valueof(pco))) };
+ }
+
if (isvalue(message_class)) {
ies := ies & { valueof(ts_GSUP_IE_Message_Class(valueof(message_class))) };
}