pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42498?usp=email )


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

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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42498?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

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 <[email protected]>

Reply via email to