Log AGCH and PCH blocks using GSMTAP

Change-Id: I4d62f98801af1b0a290d3dd35bd213ccf3151035
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index 8901ce6..ac04663 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -207,16 +207,22 @@
 
 void pcu_l1if_tx_agch(bitvec * block, int plen)
 {
+	struct gprs_rlcmac_bts *bts = bts_main_data();
 	uint8_t data[23]; /* prefix PLEN */
 	
 	/* FIXME: why does OpenBTS has no PLEN and no fill in message? */
 	bitvec_pack(block, data + 1);
 	data[0] = (plen << 2) | 0x01;
+
+	if (bts->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_AGCH))
+		gsmtap_send(bts->gsmtap, 0, 0, GSMTAP_CHANNEL_AGCH, 0, 0, 0, 0, data, 23);
+
 	pcu_tx_data_req(0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, 23);
 }
 
 void pcu_l1if_tx_pch(bitvec * block, int plen, const char *imsi)
 {
+	struct gprs_rlcmac_bts *bts = bts_main_data();
 	uint8_t data[3+1+23]; /* prefix PLEN */
 
 	/* paging group */
@@ -230,6 +236,10 @@
 	OSMO_ASSERT(block->data_len <= sizeof(data) - (3+1));
 	bitvec_pack(block, data + 3+1);
 	data[3] = (plen << 2) | 0x01;
+
+	if (bts->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_PCH))
+		gsmtap_send(bts->gsmtap, 0, 0, GSMTAP_CHANNEL_PCH, 0, 0, 0, 0, data + 4, 23);
+
 	pcu_tx_data_req(0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, 23+3);
 }