Implement the HSL SR1.0.1 protocol

It seems HSL has fixed most of their obvious issues in the SR1.0.1
release.  However, this creates quite an incompatibility of the
protocol, and we have to adapt accordingly
diff --git a/openbsc/src/libabis/input/hsl.c b/openbsc/src/libabis/input/hsl.c
index 12e974b..360be32 100644
--- a/openbsc/src/libabis/input/hsl.c
+++ b/openbsc/src/libabis/input/hsl.c
@@ -228,7 +228,7 @@
 	}
 
 	/* HSL proprietary RSL extension */
-	if (hh->proto == 0 && msg->l2h[0] == 0x80) {
+	if (hh->proto == 0 && (msg->l2h[0] == 0x81 || msg->l2h[0] == 0x80)) {
 		ret = process_hsl_rsl(msg, line);
 		if (ret < 0) {
 			/* FIXME: close connection */
@@ -238,11 +238,11 @@
 			return 0;
 		/* else: continue... */
 	}
-
+#ifdef HSL_SR_1_0
 	/* HSL for whatever reason chose to use 0x81 instead of 0x80 for FOM */
 	if (hh->proto == 255 && msg->l2h[0] == (ABIS_OM_MDISC_FOM | 0x01))
 		msg->l2h[0] = ABIS_OM_MDISC_FOM;
-
+#endif
 	link = e1inp_lookup_sign_link(e1i_ts, hh->proto, 0);
 	if (!link) {
 		LOGP(DINP, LOGL_ERROR, "no matching signalling link for "
@@ -312,9 +312,11 @@
 	switch (sign_link->type) {
 	case E1INP_SIGN_OML:
 		proto = IPAC_PROTO_OML;
+#ifdef HSL_SR_1_0
 		/* HSL uses 0x81 for FOM for some reason */
 		if (msg->data[0] == ABIS_OM_MDISC_FOM)
 			msg->data[0] = ABIS_OM_MDISC_FOM | 0x01;
+#endif
 		break;
 	case E1INP_SIGN_RSL:
 		proto = IPAC_PROTO_RSL;
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index 58e2a7c..9a4dc5b 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -677,10 +677,11 @@
 	rc =  abis_rsl_sendmsg(msg);
 
 	/* BTS will respond by RF CHAN REL ACK */
-
+#ifdef HSL_SR_1_0
 	/* The HSL Femto seems to 'forget' sending a REL ACK for TS1...TS7 */
 	if (lchan->ts->trx->bts->type == GSM_BTS_TYPE_HSL_FEMTO && lchan->ts->nr != 0)
 		rc = rsl_rx_rf_chan_rel_ack(lchan);
+#endif
 
 	return rc;
 }
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index 0072bb6..37386d7 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -397,7 +397,7 @@
 	if (bts->network->dtx_enabled)
 		bts->si_common.cell_options.dtx = 0;
 	else
-		bts->si_common.cell_options.dtx = 2;
+		bts->si_common.cell_options.dtx = 3;
 
 	bts->si_common.cell_options.pwrc = 0; /* PWRC not set */
 
diff --git a/openbsc/src/libbsc/bts_hsl_femtocell.c b/openbsc/src/libbsc/bts_hsl_femtocell.c
index 2813195..d5834ef 100644
--- a/openbsc/src/libbsc/bts_hsl_femtocell.c
+++ b/openbsc/src/libbsc/bts_hsl_femtocell.c
@@ -61,7 +61,11 @@
 };
 
 static uint8_t oml_arfcn_bsic[] = {
+#ifdef HSL_SR_1_0
 	0x81, 0x80, 0x00, 10,
+#else
+	0x80, 0x80, 0x00, 10,
+#endif
 		NM_MT_SET_BTS_ATTR, NM_OC_BTS, 0xff, 0xff, 0xff,
 			NM_ATT_BCCH_ARFCN, 0x03, 0x67,
 			NM_ATT_BSIC, 0x00