[PATCH] osmocom-bb[master]: trxcon/scheduler: preprocess UL bursts before sending

Harald Welte gerrit-no-reply at lists.osmocom.org
Thu Feb 22 15:33:35 UTC 2018


Review at  https://gerrit.osmocom.org/6811

trxcon/scheduler: preprocess UL bursts before sending

Having a possibility to preprocess UL burst before sending to
transceiver is required for the further ciphering support
integration and probably some other tasks.

Change-Id: Ia6eead5d4f51d7c0bf277b9d5ebb0a74676df567
---
M src/host/trxcon/sched_lchan_rach.c
M src/host/trxcon/sched_lchan_tchf.c
M src/host/trxcon/sched_lchan_xcch.c
M src/host/trxcon/sched_trx.c
M src/host/trxcon/sched_trx.h
5 files changed, 27 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/11/6811/1

diff --git a/src/host/trxcon/sched_lchan_rach.c b/src/host/trxcon/sched_lchan_rach.c
index b26e279..2a09a37 100644
--- a/src/host/trxcon/sched_lchan_rach.c
+++ b/src/host/trxcon/sched_lchan_rach.c
@@ -86,11 +86,9 @@
 
 	LOGP(DSCHD, LOGL_DEBUG, "Transmitting RACH fn=%u\n", fn);
 
-	/* Send burst to transceiver */
-	rc = trx_if_tx_burst(trx, ts->index, fn, trx->tx_power, burst);
+	/* Forward burst to scheduler */
+	rc = sched_trx_handle_tx_burst(trx, ts, lchan, fn, burst);
 	if (rc) {
-		LOGP(DSCHD, LOGL_ERROR, "Could not send burst to transceiver\n");
-
 		/* Forget this primitive */
 		sched_prim_drop(lchan);
 
diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c
index e562a49..45fa1c2 100644
--- a/src/host/trxcon/sched_lchan_tchf.c
+++ b/src/host/trxcon/sched_lchan_tchf.c
@@ -258,11 +258,9 @@
 	LOGP(DSCHD, LOGL_DEBUG, "Transmitting %s fn=%u ts=%u burst=%u\n",
 		lchan_desc->name, fn, ts->index, bid);
 
-	/* Send burst to transceiver */
-	rc = trx_if_tx_burst(trx, ts->index, fn, trx->tx_power, burst);
+	/* Forward burst to scheduler */
+	rc = sched_trx_handle_tx_burst(trx, ts, lchan, fn, burst);
 	if (rc) {
-		LOGP(DSCHD, LOGL_ERROR, "Could not send burst to transceiver\n");
-
 		/* Forget this primitive */
 		sched_prim_drop(lchan);
 
diff --git a/src/host/trxcon/sched_lchan_xcch.c b/src/host/trxcon/sched_lchan_xcch.c
index d395b1d..c71b10f 100644
--- a/src/host/trxcon/sched_lchan_xcch.c
+++ b/src/host/trxcon/sched_lchan_xcch.c
@@ -170,11 +170,9 @@
 	LOGP(DSCHD, LOGL_DEBUG, "Transmitting %s fn=%u ts=%u burst=%u\n",
 		lchan_desc->name, fn, ts->index, bid);
 
-	/* Send burst to transceiver */
-	rc = trx_if_tx_burst(trx, ts->index, fn, trx->tx_power, burst);
+	/* Forward burst to scheduler */
+	rc = sched_trx_handle_tx_burst(trx, ts, lchan, fn, burst);
 	if (rc) {
-		LOGP(DSCHD, LOGL_ERROR, "Could not send burst to transceiver\n");
-
 		/* Forget this primitive */
 		sched_prim_drop(lchan);
 
diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index ee62e70..fba9ee4 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -531,3 +531,21 @@
 
 	return 0;
 }
+
+int sched_trx_handle_tx_burst(struct trx_instance *trx,
+	struct trx_ts *ts, struct trx_lchan_state *lchan,
+	uint32_t fn, ubit_t *bits)
+{
+	int rc;
+
+	/* TODO: perform A5/X burst encryption if required */
+
+	/* Forward burst to transceiver */
+	rc = trx_if_tx_burst(trx, ts->index, fn, trx->tx_power, bits);
+	if (rc) {
+		LOGP(DSCHD, LOGL_ERROR, "Could not send burst to transceiver\n");
+		return rc;
+	}
+
+	return 0;
+}
diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h
index c857601..54dbc85 100644
--- a/src/host/trxcon/sched_trx.h
+++ b/src/host/trxcon/sched_trx.h
@@ -279,6 +279,9 @@
 
 int sched_trx_handle_rx_burst(struct trx_instance *trx, uint8_t tn,
 	uint32_t burst_fn, sbit_t *bits, uint16_t nbits, int8_t rssi, float toa);
+int sched_trx_handle_tx_burst(struct trx_instance *trx,
+	struct trx_ts *ts, struct trx_lchan_state *lchan,
+	uint32_t fn, ubit_t *bits);
 
 /* Shared declarations for lchan handlers */
 extern const uint8_t sched_nb_training_bits[8][26];

-- 
To view, visit https://gerrit.osmocom.org/6811
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia6eead5d4f51d7c0bf277b9d5ebb0a74676df567
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>


More information about the gerrit-log mailing list