library: fix Repeated Page Info IE in PacketPagingReq

Change-Id: I39e8e3991cc248602460b7f162a0b57c2925315f
Related: OS#4838
diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index e6406b7..3778b2f 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -917,11 +917,25 @@
 
 function f_pkt_paging_match_tmsi(in PacketPagingReq req, template GsmTmsi tmsi)
 runs on MS_BTS_IFACE_CT {
-	if (not match(req.repeated_pageinfo.cs.tmsi, tmsi)) {
-		setverdict(fail, "Mobile Identity (TMSI/P-TMSI) mismatch: ",
-			   "expected: ", tmsi, "got: ", req.repeated_pageinfo.cs.tmsi);
+	if (not ispresent(req.repeated_pageinfo)) {
+		setverdict(fail, "Packet Paging Request without MIs?!?");
 		f_shutdown(__BFILE__, __LINE__);
 	}
+
+	for (var integer i := 0; i < lengthof(req.repeated_pageinfo); i := i + 1) {
+		var PageInfo info := req.repeated_pageinfo[i].item;
+		if (not ischosen(info.cs))
+			{ continue; }
+
+		if (match(info.cs.tmsi, tmsi)) {
+			setverdict(pass);
+			return;
+		}
+	}
+
+	setverdict(fail, "Mobile Identity (TMSI/P-TMSI) ", tmsi,
+		   " is not present in ", req.repeated_pageinfo);
+	f_shutdown(__BFILE__, __LINE__);
 }
 
 }
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index df075bc..411890c 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -1702,7 +1702,8 @@
 
 private function f_pkt_paging_match_imsi(in PacketPagingReq req, hexstring imsi)
 runs on RAW_PCU_Test_CT {
-	var MobileIdentityLV_Paging mi_lv := req.repeated_pageinfo.cs.mobile_identity;
+	var PageInfo info := req.repeated_pageinfo[0].item;
+	var MobileIdentityLV_Paging mi_lv := info.cs.mobile_identity;
 	var MobileIdentityV mi := dec_MobileIdentityV(mi_lv.mobile_id);
 
 	if (mi_lv.len != 8) { /* 8 octets: type of ID (3 bits) + even/odd flag (1 bit) + 15 BCD-encoded digits (60 bits) */