This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/6776 host/trxcon/l1ctl.c: include DL frame info in L1CTL_DATA_CONF The l1ctl_info_dl header is expected to be a part of a L1CTL_DATA_CONF message, but was missing previously. Change-Id: Ia8dfaed924fd84395ba9ae539164eaa94f52d30b --- M src/host/trxcon/l1ctl.c M src/host/trxcon/l1ctl.h M src/host/trxcon/sched_lchan_common.c M src/host/trxcon/sched_lchan_xcch.c 4 files changed, 51 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/76/6776/1 diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c index 6585084..5303130 100644 --- a/src/host/trxcon/l1ctl.c +++ b/src/host/trxcon/l1ctl.c @@ -225,15 +225,26 @@ return l1ctl_link_send(l1l, msg); } -int l1ctl_tx_data_conf(struct l1ctl_link *l1l) +int l1ctl_tx_data_conf(struct l1ctl_link *l1l, + struct l1ctl_info_dl *data, uint8_t msg_type) { + struct l1ctl_info_dl *dl; struct msgb *msg; + size_t len; - msg = l1ctl_alloc_msg(L1CTL_DATA_CONF); + if (msg_type != L1CTL_DATA_CONF && msg_type != L1CTL_TRAFFIC_CONF) { + LOGP(DL1D, LOGL_ERROR, "Incorrect confirmation type\n"); + return -EINVAL; + } + + msg = l1ctl_alloc_msg(msg_type); if (msg == NULL) return -ENOMEM; - LOGP(DL1D, LOGL_DEBUG, "Send Data Conf\n"); + /* Copy DL frame header from source message */ + len = sizeof(struct l1ctl_info_dl); + dl = (struct l1ctl_info_dl *) msgb_put(msg, len); + memcpy(dl, data, len); return l1ctl_link_send(l1l, msg); } diff --git a/src/host/trxcon/l1ctl.h b/src/host/trxcon/l1ctl.h index 4f48aaa..91a7f0f 100644 --- a/src/host/trxcon/l1ctl.h +++ b/src/host/trxcon/l1ctl.h @@ -20,5 +20,6 @@ int l1ctl_tx_data_ind(struct l1ctl_link *l1l, struct l1ctl_info_dl *data, uint8_t msg_type); +int l1ctl_tx_data_conf(struct l1ctl_link *l1l, + struct l1ctl_info_dl *data, uint8_t msg_type); int l1ctl_tx_rach_conf(struct l1ctl_link *l1l, uint32_t fn); -int l1ctl_tx_data_conf(struct l1ctl_link *l1l); diff --git a/src/host/trxcon/sched_lchan_common.c b/src/host/trxcon/sched_lchan_common.c index 7dad750..5383ef4 100644 --- a/src/host/trxcon/sched_lchan_common.c +++ b/src/host/trxcon/sched_lchan_common.c @@ -112,3 +112,34 @@ return 0; } + +int sched_send_data_conf(struct trx_instance *trx, struct trx_ts *ts, + struct trx_lchan_state *lchan, uint32_t fn, size_t l2_len) +{ + const struct trx_lchan_desc *lchan_desc; + struct l1ctl_info_dl *data; + uint8_t conf_type; + + /* Allocate memory */ + data = talloc_zero(ts, struct l1ctl_info_dl); + if (data == NULL) + return -ENOMEM; + + /* Set up pointers */ + lchan_desc = &trx_lchan_desc[lchan->type]; + + /* Fill in known downlink info */ + data->chan_nr = lchan_desc->chan_nr | ts->index; + data->link_id = lchan_desc->link_id; + data->band_arfcn = htons(trx->band_arfcn); + data->frame_nr = htonl(fn); + + /* Choose a confirmation type */ + conf_type = l2_len == 23 ? + L1CTL_DATA_CONF : L1CTL_TRAFFIC_CONF; + + l1ctl_tx_data_conf(trx->l1l, data, conf_type); + talloc_free(data); + + return 0; +} diff --git a/src/host/trxcon/sched_lchan_xcch.c b/src/host/trxcon/sched_lchan_xcch.c index 62c44f9..dd76d0a 100644 --- a/src/host/trxcon/sched_lchan_xcch.c +++ b/src/host/trxcon/sched_lchan_xcch.c @@ -48,6 +48,9 @@ int sched_send_data_ind(struct trx_instance *trx, struct trx_ts *ts, struct trx_lchan_state *lchan, uint8_t *l2, size_t l2_len); +int sched_send_data_conf(struct trx_instance *trx, struct trx_ts *ts, + struct trx_lchan_state *lchan, uint32_t fn, size_t l2_len); + int rx_data_fn(struct trx_instance *trx, struct trx_ts *ts, struct trx_lchan_state *lchan, uint32_t fn, uint8_t bid, sbit_t *bits, int8_t rssi, float toa) @@ -221,7 +224,7 @@ *mask = 0x00; /* Confirm data sending */ - l1ctl_tx_data_conf(trx->l1l); + sched_send_data_conf(trx, ts, lchan, fn, 23); } return 0; -- To view, visit https://gerrit.osmocom.org/6776 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia8dfaed924fd84395ba9ae539164eaa94f52d30b Gerrit-PatchSet: 1 Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org>