diff --git a/include/openbsc/abis_nm.h b/include/openbsc/abis_nm.h
index 1108aa4..ca4de85 100644
--- a/include/openbsc/abis_nm.h
+++ b/include/openbsc/abis_nm.h
@@ -275,7 +275,7 @@
 };
 
 /* Section 9.4.1 */
-struct abis_nm_abis_channel {
+struct abis_nm_channel {
 	u_int8_t	attrib;
 	u_int8_t	bts_port;
 	u_int8_t	timeslot;
@@ -294,7 +294,7 @@
 	int (*sw_act_req)(struct msgb *);
 };
 
-extern int abis_nm_rx(struct msgb *msg);
+extern int abis_nm_rcvmsg(struct msgb *msg);
 //extern struct abis_nm_h *abis_nm_init(struct abis_nm_cfg *cfg);
 //extern void abis_nm_fini(struct abis_nm_h *nmh);
 
diff --git a/include/openbsc/abis_rsl.h b/include/openbsc/abis_rsl.h
index 9413f65..cbbb797 100644
--- a/include/openbsc/abis_rsl.h
+++ b/include/openbsc/abis_rsl.h
@@ -105,7 +105,7 @@
 	RSL_MT_PHY_CONTEXT_CONF,
 	RSL_MT_RF_CHAN_REL,
 	RSL_MT_MS_POWER_CONTROL,
-	RSL_MT_BS_POWER_CONTROL,
+	RSL_MT_BS_POWER_CONTROL,		/* 0x30 */
 	RSL_MT_PREPROC_CONFIG,
 	RSL_MT_PREPROC_MEAS_RES,
 	RSL_MT_RF_CHAN_REL_ACK,
@@ -290,14 +290,18 @@
 		      u_int8_t ta);
 int rsl_chan_activate_tch_f(struct gsm_bts_trx_ts *ts);
 int rsl_chan_activate_sdcch(struct gsm_bts_trx_ts *ts);
-int rsl_chan_release(struct gsm_bts_trx_ts *ts, u_int8_t chan_nr);
+int rsl_chan_release(struct gsm_lchan *lchan);
 int rsl_paging_cmd(struct gsm_bts *bts, u_int8_t paging_group, u_int8_t len,
 		   u_int8_t *ms_ident, u_int8_t chan_needed);
 int rsl_paging_cmd_imsi(struct gsm_bts *bts, u_int8_t chan_needed, const char *imsi_str);
 int rsl_imm_assign_cmd(struct gsm_bts *bts, u_int8_t len, u_int8_t *val);
-int rsl_data_request(struct gsm_bts *bts, struct msgb *msg);
 
-int abis_rsl_rx(struct msgb *msg);
+int rsl_data_request(struct msgb *msg, u_int8_t link_id);
+
+int abis_rsl_rcvmsg(struct msgb *msg);
+
+/* to be provided by external code */
+int abis_rsl_sendmsg(struct msgb *msg);
 
 #endif /* RSL_MT_H */
 
diff --git a/include/openbsc/chan_alloc.h b/include/openbsc/chan_alloc.h
new file mode 100644
index 0000000..0cbd03e
--- /dev/null
+++ b/include/openbsc/chan_alloc.h
@@ -0,0 +1,22 @@
+#ifndef _CHAN_ALLOC_H
+#define _CHAN_ALLOC_H
+
+/* Special allocator for C0 of BTS */
+struct gsm_bts_trx_ts *ts_c0_alloc(struct gsm_bts *bts,
+				   enum gsm_phys_chan_config pchan);
+
+/* Regular physical channel allocator */
+struct gsm_bts_trx_ts *ts_alloc(struct gsm_bts *bts,
+				enum gsm_phys_chan_config pchan);
+
+/* Regular physical channel (TS) */
+void ts_free(struct gsm_bts_trx_ts *ts);
+
+
+/* Allocate a logical channel (SDCCH, TCH, ...) */
+struct gsm_lchan *lchan_alloc(struct gsm_bts *bts, enum gsm_chan_t type);
+
+/* Free a logical channel (SDCCH, TCH, ...) */
+void lchan_free(struct gsm_lchan *lchan);
+
+#endif /* _CHAN_ALLOC_H */
diff --git a/include/openbsc/gsm_04_08.h b/include/openbsc/gsm_04_08.h
index 7c51969..dc5eba9 100644
--- a/include/openbsc/gsm_04_08.h
+++ b/include/openbsc/gsm_04_08.h
@@ -235,4 +235,11 @@
 #define GSM_MI_TYPE_TMSI	0x04
 #define GSM_MI_ODD		0x08
 
+struct msgb;
+struct gsm_bts;
+
+int gsm0408_rcvmsg(struct msgb *msg);
+enum gsm_chan_t get_ctype_by_chreq(struct gsm_bts *bts, u_int8_t ra);
+
+
 #endif
diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 51e246c..8bb219a 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -3,8 +3,11 @@
 
 #include <sys/types.h>
 
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
 #define GSM_MAX_BTS	8
 #define BTS_MAX_TRX	8
+#define TS_MAX_LCHAN	8
 
 #define HARDCODED_ARFCN 123
 
@@ -13,6 +16,35 @@
 	struct gsm_bts *bts;
 };
 
+enum gsm_phys_chan_config {
+	GSM_PCHAN_NONE,
+	GSM_PCHAN_CCCH,
+	GSM_PCHAN_CCCH_SDCCH4,
+	GSM_PCHAN_TCH_F,
+	GSM_PCHAN_TCH_H,
+	GSM_PCHAN_SDCCH8_SACCH8C,
+	GSM_PCHAN_UNKNOWN,
+};
+
+enum gsm_chan_t {
+	GSM_LCHAN_NONE,
+	GSM_LCHAN_SDCCH,
+	GSM_LCHAN_TCH_F,
+	GSM_LCHAN_TCH_H,
+	GSM_LCHAN_UNKNOWN,
+};
+
+struct gsm_lchan {
+	/* The TS that we're part of */
+	struct gsm_bts_trx_ts *ts;
+	/* The logical subslot number in the TS */
+	u_int8_t nr;
+	/* The lotical channel type */
+	enum gsm_chan_t type;
+	/* To whom we are allocated at the moment */
+	struct gsm_subscriber *subscr;
+};
+
 #define BTS_TRX_F_ACTIVATED	0x0001
 /* One Timeslot in a TRX */
 struct gsm_bts_trx_ts {
@@ -20,7 +52,11 @@
 	/* number of this timeslot at the TRX */
 	u_int8_t nr;
 
+	enum gsm_phys_chan_config pchan;
+
 	unsigned int flags;
+
+	struct gsm_lchan lchan[TS_MAX_LCHAN];
 };
 
 /* One TRX in a BTS */
@@ -71,4 +107,24 @@
 
 struct gsm_network *gsm_network_init(unsigned int num_bts, u_int8_t country_code,
 				     u_int8_t network_code);
+
+enum gsm_call_type {
+	GSM_CT_NONE,
+	GSM_CT_MO,
+	GSM_CT_MT,
+};
+
+enum gsm_call_state {
+	GSM_CSTATE_NONE,
+};
+
+/* One end of a call */
+struct gsm_call {
+	enum gsm_call_type type;
+	enum gsm_call_state state;
+
+	/* the 'local' subscriber */
+	struct gsm_subscriber *subscr;
+};
+	
 #endif
diff --git a/include/openbsc/gsm_subscriber.h b/include/openbsc/gsm_subscriber.h
index d5c6eff..5bdf579 100644
--- a/include/openbsc/gsm_subscriber.h
+++ b/include/openbsc/gsm_subscriber.h
@@ -5,7 +5,7 @@
 #include "gsm_data.h"
 
 struct gsm_subscriber {
-	u_int8_t *name;
+	char *name;
 	u_int8_t tmsi[4];
 };
 
diff --git a/include/openbsc/msgb.h b/include/openbsc/msgb.h
index b0740ed..13631e7 100644
--- a/include/openbsc/msgb.h
+++ b/include/openbsc/msgb.h
@@ -20,12 +20,20 @@
  *
  */
 
+#include <openbsc/linuxlist.h>
+
 struct bts_link;
 
 struct msgb {
-	/* ptr to the incoming (RX) or outgoing (TX) BTS link */
+	struct llist_head list;
+
+	/* ptr to the physical E1 link to the BTS(s) */
 	struct gsm_bts_link *bts_link;
 
+	/* Part of which TRX logical channel we were received / transmitted */
+	struct gsm_bts_trx *trx;
+	struct gsm_lchan *lchan;
+
 	u_int8_t l2_off;
 	u_int8_t l3_off;
 
@@ -40,6 +48,8 @@
 
 extern struct msgb *msgb_alloc(u_int16_t size);
 extern void msgb_free(struct msgb *m);
+extern void msgb_enqueue(struct llist_head *queue, struct msgb *msg);
+extern struct msgb *msgb_dequeue(struct llist_head *queue);
 
 #define msgb_l2(m)	((void *)(m->data + m->l2_off))
 #define msgb_l3(m)	((void *)(m->data + m->l3_off))
@@ -71,4 +81,19 @@
 	return (msgb->data + msgb->data_len) - msgb->tail;
 }
 
+/* increase the headroom of an empty msgb, reducing the tailroom */
+static inline void msgb_reserve(struct msgb *msg, int len)
+{
+	msg->data += len;
+	msg->tail += len;
+}
+
+static inline struct msgb *msgb_alloc_headroom(int size, int headroom)
+{
+	struct msgb *msg = msgb_alloc(size);
+	if (msg)
+		msgb_reserve(msg, headroom);
+	return msg;
+}
+
 #endif /* _MSGB_H */
diff --git a/include/openbsc/select.h b/include/openbsc/select.h
index f98f72c..b677162 100644
--- a/include/openbsc/select.h
+++ b/include/openbsc/select.h
@@ -1,6 +1,8 @@
 #ifndef _BSC_SELECT_H
 #define _BSC_SELECT_H
 
+#include <openbsc/linuxlist.h>
+
 #define BSC_FD_READ	0x0001
 #define BSC_FD_WRITE	0x0002
 #define BSC_FD_EXCEPT	0x0004
@@ -14,4 +16,7 @@
 	unsigned int priv_nr;
 };
 
+int bsc_register_fd(struct bsc_fd *fd);
+void bsc_unregister_fd(struct bsc_fd *fd);
+int bsc_select_main(void);
 #endif /* _BSC_SELECT_H */
