RBS2000: re-establish any lost signalling links

Contrary to standard A-bis, in the RBS2000 case the BSC connects
the signalling data links (LAPD) to the BTS.  In case one of them
drop, we need to attempt to re-establish them.

This requires libosmo-abis with Change-Id I07f0f79e0cda09766f357032ffb4e7ad643d448a

Change-Id: I710b5af5d0acbdd3febd314849340f2adb7abd80
diff --git a/openbsc/src/libbsc/bts_ericsson_rbs2000.c b/openbsc/src/libbsc/bts_ericsson_rbs2000.c
index a828937..1d122ec 100644
--- a/openbsc/src/libbsc/bts_ericsson_rbs2000.c
+++ b/openbsc/src/libbsc/bts_ericsson_rbs2000.c
@@ -104,6 +104,7 @@
 		      void *handler_data, void *signal_data)
 {
 	struct input_signal_data *isd = signal_data;
+	struct e1inp_ts *e1i_ts;
 
 	if (subsys != SS_L_INPUT)
 		return 0;
@@ -121,6 +122,17 @@
 			break;
 		}
 		break;
+	case S_L_INP_TEI_DN:
+		if (isd->trx->bts->type != GSM_BTS_TYPE_RBS2000)
+			break;
+		LOGP(DNM, LOGL_NOTICE, "Line-%u TS-%u TEI-%u SAPI-%u: Link "
+		     "Lost for Ericsson RBS2000. Re-starting DL Establishment\n",
+		     isd->line->num, isd->ts_nr, isd->tei, isd->sapi);
+		/* Some datalink for a given TEI/SAPI went down, try to re-start it */
+		e1i_ts = &isd->line->ts[isd->ts_nr-1];
+		OSMO_ASSERT(e1i_ts->type == E1INP_TS_TYPE_SIGN);
+		lapd_sap_start(e1i_ts->lapd, isd->tei, isd->sapi);
+		break;
 	case S_L_INP_LINE_INIT:
 	case S_L_INP_LINE_NOALARM:
 		if (strcasecmp(isd->line->driver->name, "DAHDI")