pespin has uploaded this change for review.

View Change

GTPv2_Templates: Add enum for PDN Type and use it in pgw testsuite

Change-Id: I9833e998522a09a15b93c8fed0e18a5e8159d760
---
M library/GTPv2_Templates.ttcn
M pgw/PGW_Tests.ttcn
2 files changed, 44 insertions(+), 3 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/42498/1
diff --git a/library/GTPv2_Templates.ttcn b/library/GTPv2_Templates.ttcn
index 925735a..539251c 100644
--- a/library/GTPv2_Templates.ttcn
+++ b/library/GTPv2_Templates.ttcn
@@ -13,6 +13,15 @@
import from Osmocom_Types all;
import from GTPv2_Types all;

+/* 8.14 */
+type enumerated GTP2C_PDN_Type {
+ GTP2C_PDN_IPv4 ('001'B),
+ GTP2C_PDN_IPv6 ('010'B),
+ GTP2C_PDN_IPv4v6 ('011'B),
+ GTP2C_PDN_non_IP ('100'B),
+ GTP2C_PDN_Ethernet ('101'B)
+} with { variant "FIELDLENGTH(3)" encode "RAW" };
+
private function fs_GTP2C_t_bit(template (omit) OCT4 teid) return BIT1 {
if (istemplatekind(teid, "omit")) {
return '0'B;
diff --git a/pgw/PGW_Tests.ttcn b/pgw/PGW_Tests.ttcn
index 1ba58f4..fba057e 100644
--- a/pgw/PGW_Tests.ttcn
+++ b/pgw/PGW_Tests.ttcn
@@ -154,7 +154,7 @@
charstring apn,
/* Apn subscribed or non-subscribed */
boolean selection_mode,
- BIT3 pdn_type,
+ GTP2C_PDN_Type pdn_type,
/* PAA */
/* Max APN Restriction */
/* APN-AMBR */
@@ -181,7 +181,7 @@
GTP2C_RAT_Type rat_type := GTP2C_RAT_EUTRAN,
charstring apn := "internet",
boolean selection_mode := false,
- BIT3 pdn_type := '001'B) := {
+ GTP2C_PDN_Type pdn_type := GTP2C_PDN_IPv4) := {
imsi := imsi,
msisdn := msisdn,
rat_type := rat_type,
@@ -748,7 +748,7 @@
rat_type := enum2int(g_pars.rat_type),
sender_fteid := fteid_c_ie,
apn := f_enc_dns_hostname(g_pars.apn),
- pdn_type := g_pars.pdn_type,
+ pdn_type := int2bit(enum2int(g_pars.pdn_type), 3),
teid_list := { fteid_u_ie },
chg_car := '0000'O,
bearer_id := g_pars.bearer.ebi,
@@ -993,6 +993,36 @@
}
}

+/* create a session, then execute a ping command on the user plane */
+private function f_TC_createSession_ping6() runs on PGW_Session_CT {
+ f_s5s8_create_session();
+ f_ping4(mp_ping_hostname);
+ setverdict(pass);
+}
+testcase TC_createSession_ping6() runs on PGW_Test_CT {
+ var PGW_Session_CT vc_conn;
+ var SessionPars pars := valueof(t_SessionPars('001010123456789'H, "tun23"));
+ f_init();
+ vc_conn := f_start_handler(refers(f_TC_createSession_ping6), pars);
+ vc_conn.done;
+}
+testcase TC_createSession_ping6_256() runs on PGW_Test_CT {
+ var PGW_Session_CT vc_conn[256];
+ var integer i;
+
+ f_init();
+
+ for (i := 0; i < sizeof(vc_conn); i:=i+1) {
+ var charstring tundev := "ping" & int2str(i);
+ var SessionPars pars := valueof(t_SessionPars(f_gen_imsi(i), tundev));
+ vc_conn[i] := f_start_handler(refers(f_TC_createSession_ping6), pars);
+ }
+
+ for (i := 0; i < lengthof(vc_conn); i:=i+1) {
+ vc_conn[i].done;
+ }
+}
+

/* create a session, then delete it again */
private function f_TC_createSession_deleteSession() runs on PGW_Session_CT {
@@ -1126,6 +1156,8 @@
execute( TC_createSession() );
execute( TC_createSession_ping4() );
execute( TC_createSession_ping4_256() );
+ execute( TC_createSession_ping6() );
+ execute( TC_createSession_ping6_256() );
execute( TC_createSession_deleteSession() );
execute( TC_deleteSession_unknown() );
execute( TC_gy_charging_cc_time() );

To view, visit change 42498. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9833e998522a09a15b93c8fed0e18a5e8159d760
Gerrit-Change-Number: 42498
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>