diff --git a/src/tests/hnb-test-layers.h b/src/tests/hnb-test-layers.h
index ab51ca9..62369f3 100644
--- a/src/tests/hnb-test-layers.h
+++ b/src/tests/hnb-test-layers.h
@@ -6,12 +6,16 @@
 
 /* main calls RUA */
 void hnb_test_rua_dt_handle(struct hnb_test *hnb, struct ANY *in);
+void hnb_test_rua_cl_handle(struct hnb_test *hnb, struct ANY *in);
 
 /* RUA calls RANAP */
 void hnb_test_rua_dt_handle_ranap(struct hnb_test *hnb,
 				  struct ranap_message_s *ranap_msg);
+void hnb_test_rua_cl_handle_ranap(struct hnb_test *hnb,
+				  struct ranap_message_s *ranap_msg);
 
 /* RANAP calls main with actual payload*/
 void hnb_test_nas_rx_dtap(struct hnb_test *hnb, void *data, int len);
 void hnb_test_rx_secmode_cmd(struct hnb_test *hnb, long ip_alg);
 void hnb_test_rx_iu_release(struct hnb_test *hnb);
+void hnb_test_rx_paging(struct hnb_test *hnb, const char *imsi);
diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c
index a3cae29..e7c9871 100644
--- a/src/tests/hnb-test-ranap.c
+++ b/src/tests/hnb-test-ranap.c
@@ -56,3 +56,30 @@
 		return;
 	}
 }
+
+void hnb_test_rua_cl_handle_ranap(struct hnb_test *hnb,
+				  struct ranap_message_s *ranap_msg)
+{
+	char imsi[16];
+
+	printf("rx ranap_msg->procedureCode %d\n",
+	       ranap_msg->procedureCode);
+
+	switch (ranap_msg->procedureCode) {
+	case RANAP_ProcedureCode_id_Paging:
+		if (ranap_msg->msg.pagingIEs.permanentNAS_UE_ID.present == RANAP_PermanentNAS_UE_ID_PR_iMSI) {
+			ranap_bcd_decode(imsi, sizeof(imsi),
+					 ranap_msg->msg.pagingIEs.permanentNAS_UE_ID.choice.iMSI.buf,
+					 ranap_msg->msg.pagingIEs.permanentNAS_UE_ID.choice.iMSI.size);
+		} else imsi[0] = '\0';
+
+		printf("rx Paging: presence=%hx  domain=%d  IMSI=%s\n",
+		       ranap_msg->msg.pagingIEs.presenceMask,
+		       ranap_msg->msg.pagingIEs.cN_DomainIndicator,
+		       imsi
+		       );
+
+		hnb_test_rx_paging(hnb, imsi);
+		return;
+	}
+}
diff --git a/src/tests/hnb-test-rua.c b/src/tests/hnb-test-rua.c
index e3f44c5..69c41eb 100644
--- a/src/tests/hnb-test-rua.c
+++ b/src/tests/hnb-test-rua.c
@@ -21,3 +21,20 @@
 	rua_free_directtransferies(&ies);
 }
 
+void hnb_test_rua_cl_handle(struct hnb_test *hnb, ANY_t *in)
+{
+	RUA_ConnectionlessTransferIEs_t ies;
+	int rc;
+
+	rc = rua_decode_connectionlesstransferies(&ies, in);
+	if (rc < 0) {
+		printf("failed to decode RUA CL IEs\n");
+		return;
+	}
+
+	rc = ranap_cn_rx_cl(hnb_test_rua_cl_handle_ranap, hnb, ies.ranaP_Message.buf, ies.ranaP_Message.size);
+
+	/* FIXME: what to do with the asn1c-allocated memory */
+	rua_free_connectionlesstransferies(&ies);
+}
+
diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c
index 2e2baf7..7971b64 100644
--- a/src/tests/hnb-test.c
+++ b/src/tests/hnb-test.c
@@ -459,6 +459,12 @@
 	hnb_test_tx_iu_release_compl(hnb);
 }
 
+void hnb_test_rx_paging(struct hnb_test *hnb, const char *imsi)
+{
+	printf(" :) Paging Request for %s :)\n", imsi);
+	/* TODO reply */
+}
+
 int hnb_test_hnbap_rx(struct hnb_test *hnb, struct msgb *msg)
 {
 	HNBAP_PDU_t _pdu, *pdu = &_pdu;
@@ -529,6 +535,7 @@
 	switch (pdu->choice.successfulOutcome.procedureCode) {
 	case RUA_ProcedureCode_id_ConnectionlessTransfer:
 		printf("RUA rx Connectionless Transfer\n");
+		hnb_test_rua_cl_handle(hnb, &pdu->choice.successfulOutcome.value);
 		break;
 	case RUA_ProcedureCode_id_Connect:
 		printf("RUA rx Connect\n");
