diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-05-03 16:11:28 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-05-05 01:50:49 +0200 |
commit | bf7099262adf0f27e71a08387747c5cb0d459360 (patch) | |
tree | bf3316423eff6219afabc1c715efdd1300a9fcee /src/libbsc/abis_nm.c | |
parent | f28f1ef9afa4edfcbdc32e4d820d23886e0e38b2 (diff) |
dyn ts, bts_ipaccess_nanobts.c: init PDCH on Chan OPSTART ACK
Sending PDCH activation upon RSL bootstrap is too early. Introduce OPSTART ACK
handling to call dyn_ts_init() only when the dynamic timeslot is indeed ready
to receive a PDCH activation.
Related: OS#3205
Change-Id: Icf6e25ff068e8a2600562d52726ead65e864ec02
Diffstat (limited to 'src/libbsc/abis_nm.c')
-rw-r--r-- | src/libbsc/abis_nm.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libbsc/abis_nm.c b/src/libbsc/abis_nm.c index e3c440813..b2cfa531d 100644 --- a/src/libbsc/abis_nm.c +++ b/src/libbsc/abis_nm.c @@ -678,6 +678,14 @@ static int abis_nm_rx_lmt_event(struct msgb *mb) return 0; } +static int abis_nm_rx_opstart_ack(struct msgb *mb) +{ + struct abis_om_fom_hdr *foh = msgb_l3(mb); + DEBUGPFOH(DNM, foh, "Opstart ACK\n"); + osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, foh); + return 0; +} + bool all_trx_rsl_connected_unlocked(const struct gsm_bts *bts) { const struct gsm_bts_trx *trx; @@ -802,7 +810,7 @@ static int abis_nm_rcvmsg_fom(struct msgb *mb) ret = abis_nm_rx_lmt_event(mb); break; case NM_MT_OPSTART_ACK: - DEBUGPFOH(DNM, foh, "Opstart ACK\n"); + abis_nm_rx_opstart_ack(mb); break; case NM_MT_SET_CHAN_ATTR_ACK: DEBUGPFOH(DNM, foh, "Set Channel Attributes ACK\n"); @@ -1896,6 +1904,7 @@ int abis_nm_set_channel_attr(struct gsm_bts_trx_ts *ts, uint8_t chan_comb) if (bts->type == GSM_BTS_TYPE_BS11) msgb_tlv_put(msg, 0x59, 1, &zero); + DEBUGPFOH(DNM, foh, "%s(): sending %s\n", __func__, msgb_hexdump(msg)); return abis_nm_sendmsg(bts, msg); } |