support for Ericsson RBS E1 CCU

Ericsson RBS series BTSs do not have a built in PCU. Rather than having
the PCU on board the PCU is co-located to the BSC in those cases. Just
like the MGW the PCU would connect to the CCU (Channel Coding Unit) via
E1 line. The PCU is connected via an unix domain socket (pcu_sock) to
the BSC to receive RACH requests and to control Paging and TBF assignment.

This patch adds all the required functionality to run an Ercisson RBS in
GPRS/EGPRS mode. It supports 16k I.460 E1 subslots and full 64k E1
timeslots (recommended)

Change-Id: I5c0a76667339ca984a12cbd2052f5d9e5b0f9c4d
Related: OS#5198
diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h
index 1827d84..d3d70e4 100644
--- a/src/pcu_l1_if.h
+++ b/src/pcu_l1_if.h
@@ -178,6 +178,17 @@
 void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no);
 uint16_t imsi2paging_group(const char* imsi);
 
+struct e1_conn_pars {
+	/* Number of E1 line */
+	uint8_t e1_nr;
+	/* Number of E1 timeslot */
+	uint8_t e1_ts;
+	/* Number of I.460 subslot inside E1 timeslot */
+	uint8_t e1_ts_ss;
+};
+
+int pcu_l1if_get_e1_ccu_conn_pars(struct e1_conn_pars **e1_conn_pars, uint8_t bts_nr, uint8_t trx_nr, uint8_t ts_nr);
+
 #define PCUIF_HDR_SIZE ( sizeof(struct gsm_pcu_if) - sizeof(((struct gsm_pcu_if *)0)->u) )
 
 #ifdef __cplusplus