[PATCH] osmocom-bb[master]: host/trxcon: handle L1CTL_RESET_REQ inside l1ctl.c

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.org
Thu Feb 22 15:32:40 UTC 2018


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

host/trxcon: handle L1CTL_RESET_REQ inside l1ctl.c

Change-Id: Ie5930dec800885784fb38ce6188c9c969cd2ad4e
---
M src/host/trxcon/l1ctl.c
M src/host/trxcon/trxcon.c
M src/host/trxcon/trxcon.h
3 files changed, 20 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/00/6700/1

diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c
index 4abec77..c01d372 100644
--- a/src/host/trxcon/l1ctl.c
+++ b/src/host/trxcon/l1ctl.c
@@ -245,8 +245,24 @@
 
 	LOGP(DL1C, LOGL_DEBUG, "Recv Reset Req (%u)\n", res->type);
 
-	osmo_fsm_inst_dispatch(trxcon_fsm,
-		L1CTL_EVENT_RESET_REQ, res);
+	switch (res->type) {
+	case L1CTL_RES_T_FULL:
+		/* TODO: implement trx_if_reset() */
+		trx_if_flush_ctrl(l1l->trx);
+		trx_if_cmd_poweroff(l1l->trx);
+		trx_if_cmd_echo(l1l->trx);
+
+		/* Fall through */
+	case L1CTL_RES_T_SCHED:
+		sched_trx_reset(l1l->trx);
+		break;
+	default:
+		LOGP(DL1C, LOGL_ERROR, "Unknown L1CTL_RESET_REQ type\n");
+		goto exit;
+	}
+
+	/* Confirm */
+	rc = l1ctl_tx_reset_conf(l1l, res->type);
 
 exit:
 	msgb_free(msg);
diff --git a/src/host/trxcon/trxcon.c b/src/host/trxcon/trxcon.c
index 9bc98e5..a87626f 100644
--- a/src/host/trxcon/trxcon.c
+++ b/src/host/trxcon/trxcon.c
@@ -89,18 +89,10 @@
 		osmo_fsm_inst_state_chg(trxcon_fsm, TRXCON_STATE_IDLE, 0, 0);
 
 		if (app_data.trx->fsm->state != TRX_STATE_OFFLINE) {
+			/* TODO: implement trx_if_reset() */
 			trx_if_flush_ctrl(app_data.trx);
 			trx_if_cmd_poweroff(app_data.trx);
 		}
-		break;
-	case L1CTL_EVENT_RESET_REQ:
-		trx_if_cmd_poweroff(app_data.trx);
-		trx_if_cmd_echo(app_data.trx);
-		sched_trx_reset(app_data.trx);
-		break;
-	case TRX_EVENT_RESET_IND:
-		/* TODO: send proper reset type */
-		l1ctl_tx_reset_conf(app_data.l1l, L1CTL_RES_T_BOOT);
 		break;
 	case SCH_EVENT_DATA:
 		l1ctl_tx_data_ind(app_data.l1l, (struct l1ctl_info_dl *) data);
@@ -108,6 +100,7 @@
 	case TRX_EVENT_OFFLINE:
 	case SCH_EVENT_CLCK_IND:
 	case SCH_EVENT_CLCK_LOSS:
+	case TRX_EVENT_RESET_IND:
 		/* TODO: notify L2 & L3 about that */
 		break;
 	default:
@@ -125,7 +118,6 @@
 	[TRXCON_STATE_MANAGED] = {
 		.in_event_mask = (
 			GEN_MASK(L1CTL_EVENT_DISCONNECT) |
-			GEN_MASK(L1CTL_EVENT_RESET_REQ) |
 			GEN_MASK(TRX_EVENT_RESET_IND) |
 			GEN_MASK(TRX_EVENT_RSP_ERROR) |
 			GEN_MASK(TRX_EVENT_OFFLINE) |
diff --git a/src/host/trxcon/trxcon.h b/src/host/trxcon/trxcon.h
index 7b3a232..6452f80 100644
--- a/src/host/trxcon/trxcon.h
+++ b/src/host/trxcon/trxcon.h
@@ -11,7 +11,6 @@
 	/* L1CTL specific events */
 	L1CTL_EVENT_CONNECT,
 	L1CTL_EVENT_DISCONNECT,
-	L1CTL_EVENT_RESET_REQ,
 
 	/* TRX specific events */
 	TRX_EVENT_RESET_IND,

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie5930dec800885784fb38ce6188c9c969cd2ad4e
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