the actual config file code (not just config files)

this was missing from commit a08a9acdb6bff0ee4fdf0f58b78b6525017a1f9f
diff --git a/openbsc/include/openbsc/e1_input.h b/openbsc/include/openbsc/e1_input.h
index 1326723..1e8da56 100644
--- a/openbsc/include/openbsc/e1_input.h
+++ b/openbsc/include/openbsc/e1_input.h
@@ -113,6 +113,9 @@
 /* register a line with the E1 core */
 int e1inp_line_register(struct e1inp_line *line);
 
+/* ensure a certain line exists, return pointer to it */
+struct e1inp_line *e1inp_line_get_create(u_int8_t e1_nr);
+
 /* find a sign_link for given TEI and SAPI in a TS */
 struct e1inp_sign_link *
 e1inp_lookup_sign_link(struct e1inp_ts *ts, u_int8_t tei,
@@ -148,8 +151,12 @@
 /* called by TRAU muxer to obtain the destination mux entity */
 struct subch_mux *e1inp_get_mux(u_int8_t e1_nr, u_int8_t ts_nr);
 
+
 /* e1_config.c */
-int e1_config(struct gsm_bts *bts, int cardnr, int release_l2);
+int e1_reconfig_ts(struct gsm_bts_trx_ts *ts);
+int e1_reconfig_trx(struct gsm_bts_trx *trx);
+int e1_reconfig_bts(struct gsm_bts *bts);
+
 int ia_config_connect(struct gsm_bts *bts, struct sockaddr_in *sin);
 int ipaccess_setup(struct gsm_network *gsmnet);
 
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 663c869..8af0781 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -200,7 +200,10 @@
 	/* number of this TRX in the BTS */
 	u_int8_t nr;
 	/* how do we talk RSL with this TRX? */
+	struct gsm_e1_subslot rsl_e1_link;
+	u_int8_t rsl_tei;
 	struct e1inp_sign_link *rsl_link;
+
 	struct gsm_nm_state nm_state;
 	struct tlv_parsed nm_attr;
 	struct {
@@ -293,6 +296,8 @@
 	enum gsm_bts_type type;
 	enum gsm_band band;
 	/* how do we talk OML with this TRX? */
+	struct gsm_e1_subslot oml_e1_link;
+	u_int8_t oml_tei;
 	struct e1inp_sign_link *oml_link;
 
 	/* Abis network management O&M handle */
@@ -404,7 +409,7 @@
 				struct gsm_bts *start_bts);
 
 char *gsm_band_name(enum gsm_band band);
-enum gsm_band gsm_band_parse(int mhz);
+enum gsm_band gsm_band_parse(const char *mhz);
 
 extern void *tall_bsc_ctx;
 
diff --git a/openbsc/include/openbsc/talloc.h b/openbsc/include/openbsc/talloc.h
index a4b33c3..f7f7643 100644
--- a/openbsc/include/openbsc/talloc.h
+++ b/openbsc/include/openbsc/talloc.h
@@ -29,6 +29,8 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+#define HAVE_VA_COPY
+
 /* this is only needed for compatibility with the old talloc */
 typedef void TALLOC_CTX;
 
diff --git a/openbsc/include/vty/command.h b/openbsc/include/vty/command.h
index 1be05aa..21fb6a1 100644
--- a/openbsc/include/vty/command.h
+++ b/openbsc/include/vty/command.h
@@ -61,12 +61,6 @@
 
 /* There are some command levels which called from command node. */
 enum node_type {
-	GSMNET_NODE,
-	BTS_NODE,
-	TRX_NODE,
-	TS_NODE,
-	SUBSCR_NODE,
-
 	AUTH_NODE,		/* Authentication mode of vty interface. */
 	VIEW_NODE,		/* View node. Default mode of vty interface. */
 	AUTH_ENABLE_NODE,	/* Authentication mode for change enable. */
@@ -74,6 +68,7 @@
 	CONFIG_NODE,		/* Config node. Default mode of config file. */
 	SERVICE_NODE,		/* Service node. */
 	DEBUG_NODE,		/* Debug node. */
+#if 0
 	AAA_NODE,		/* AAA node. */
 	KEYCHAIN_NODE,		/* Key-chain node. */
 	KEYCHAIN_KEY_NODE,	/* Key-chain key node. */
@@ -103,7 +98,14 @@
 	SMUX_NODE,		/* SNMP configuration node. */
 	DUMP_NODE,		/* Packet dump node. */
 	FORWARDING_NODE,	/* IP forwarding node. */
-	VTY_NODE		/* Vty node. */
+#endif
+	VTY_NODE,		/* Vty node. */
+
+	GSMNET_NODE,
+	BTS_NODE,
+	TRX_NODE,
+	TS_NODE,
+	SUBSCR_NODE,
 };
 
 /* Node which has some commands and prompt string and configuration