epdg: Make sure PCO is forwarded from strongswan to PGW and back
Related: OS#6369
Change-Id: Ie01d6e88b3ccc55fecc97c2ba75bb31bba5b9ef7
diff --git a/library/PCO_Types.ttcn b/library/PCO_Types.ttcn
index 22b475a..0eaa45e 100644
--- a/library/PCO_Types.ttcn
+++ b/library/PCO_Types.ttcn
@@ -48,6 +48,10 @@
} with { variant "FIELDLENGTH(16)";
variant "BYTEORDER(last)" };
+function PCO_P_to_OCT2(PCO_P p) return OCT2 {
+ return int2oct(enum2int(p), 2);
+}
+
/* RFC 1332 IP Control Protocol options, extensions in RFC 1877 */
type enumerated IPCP_OPT {
IPCP_OPT_IPADDR (3), /* RFC 1332 3.3 */
@@ -108,15 +112,23 @@
template (value) ProtocolElement ts_PCO_P_DNS_IPv4(template (value) octetstring dns4 := ''O) :=
ts_PCO_P_OCTSTR(PCO_P_DNS_IPv4_ADDR, protoIDContents := dns4);
+template (present) ProtocolElement tr_PCO_P_DNS_IPv4(template (present) octetstring dns4 := ?) :=
+ tr_PCO_P_OCTSTR(PCO_P_DNS_IPv4_ADDR, protoIDContents := dns4);
template (value) ProtocolElement ts_PCO_P_DNS_IPv6(template (value) octetstring dns6 := ''O) :=
ts_PCO_P_OCTSTR(PCO_P_DNS_IPv6_ADDR, protoIDContents := dns6);
+template (present) ProtocolElement tr_PCO_P_DNS_IPv6(template (present) octetstring dns6 := ?) :=
+ tr_PCO_P_OCTSTR(PCO_P_DNS_IPv6_ADDR, protoIDContents := dns6);
template (value) ProtocolElement ts_PCO_P_PCSCF_IPv4(template (value) octetstring pcscf4 := ''O) :=
ts_PCO_P_OCTSTR(PCO_P_PCSCF_IPv4_ADDR, protoIDContents := pcscf4);
+template (present) ProtocolElement tr_PCO_P_PCSCF_IPv4(template (present) octetstring pcscf4 := ?) :=
+ tr_PCO_P_OCTSTR(PCO_P_PCSCF_IPv4_ADDR, protoIDContents := pcscf4);
template (value) ProtocolElement ts_PCO_P_PCSCF_IPv6(template (value) octetstring pcscf6 := ''O) :=
ts_PCO_P_OCTSTR(PCO_P_PCSCF_ADDR, protoIDContents := pcscf6);
+template (present) ProtocolElement tr_PCO_P_PCSCF_IPv6(template (present) octetstring pcscf6 := ?) :=
+ tr_PCO_P_OCTSTR(PCO_P_PCSCF_ADDR, protoIDContents := pcscf6);
/* PCO send base template */
template (value) PCO_DATA ts_PCO(template (value) ProtocolIDList protocols := {}) := {