sgsn: GTP Create PDP: Include missing required "Charging ID" IE
Change-Id: I7e4b71d7ca6e75f759f77fb47abc9816c0aa716d
diff --git a/library/GTP_Templates.ttcn b/library/GTP_Templates.ttcn
index b64289b..f071d04 100644
--- a/library/GTP_Templates.ttcn
+++ b/library/GTP_Templates.ttcn
@@ -295,7 +295,7 @@
template GTPC_PDUs ts_CreatePdpRespPDU(OCT1 cause, OCT4 teid_data, OCT4 teid_ctrl, BIT4 nsapi,
octetstring ggsn_ip_sign, octetstring ggsn_ip_data,
- template EndUserAddress eua := omit,
+ OCT4 chg_id, template EndUserAddress eua := omit,
template ProtConfigOptions pco := omit) := {
createPDPContextResponse := {
cause := { '00'O, cause },
@@ -310,7 +310,10 @@
teidControlPlane := teid_ctrl
},
nsapi := ts_NSAPI(nsapi),
- chargingID := omit,
+ chargingID := {
+ type_gtpc := '7F'O,
+ chargingID := chg_id
+ },
endUserAddress := eua,
protConfigOptions := pco,
ggsn_addr_controlPlane := ts_GsnAddr(ggsn_ip_sign),
@@ -335,13 +338,13 @@
OCT1 cause,
OCT4 teid_ctrl, OCT4 teid_data,
BIT4 nsapi, octetstring ggsn_ip_sign,
- octetstring ggsn_ip_data,
+ octetstring ggsn_ip_data, OCT4 chg_id,
template EndUserAddress eua := omit,
template ProtConfigOptions pco := omit) := {
peer := peer,
gtpc := ts_GTP1C_PDU(createPDPContextResponse, teid,
valueof(ts_CreatePdpRespPDU(cause, teid_data, teid_ctrl, nsapi,
- ggsn_ip_sign, ggsn_ip_data,
+ ggsn_ip_sign, ggsn_ip_data, chg_id,
eua, pco)), seq)
}
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 6b36bc2..3a9db69 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -763,6 +763,7 @@
octetstring apn optional,
ProtocolConfigOptionsV pco optional,
OCT1 exp_rej_cause optional,
+ OCT4 chg_id,
OCT4 ggsn_tei_c,
OCT4 ggsn_tei_u,
@@ -794,7 +795,7 @@
apars.sgsn_tei_c, cause,
apars.ggsn_tei_c, apars.ggsn_tei_u,
apars.nsapi,
- apars.ggsn_ip_c, apars.ggsn_ip_u));
+ apars.ggsn_ip_c, apars.ggsn_ip_u, apars.chg_id));
}
}
alt {
@@ -871,6 +872,7 @@
apn := omit,
pco := omit,
exp_rej_cause := omit,
+ chg_id := '00000001'O,
/* FIXME: make below dynamic !! */
ggsn_tei_c := '00010000'O,