fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmocom-bb/+/29848 )
Change subject: trxcon: add new trxcon_fsm state - TRXCON_ST_PACKET_DATA
......................................................................
trxcon: add new trxcon_fsm state - TRXCON_ST_PACKET_DATA
Change-Id: I7706d677c8966a6a7c6d452ae97eda84d4282ef5
---
M src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h
M src/host/trxcon/src/trxcon_fsm.c
2 files changed, 42 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/48/29848/1
diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h
b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h
index 910d37f..9aa5e55 100644
--- a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h
+++ b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h
@@ -10,6 +10,7 @@
TRXCON_ST_FBSB_SEARCH,
TRXCON_ST_BCCH_CCCH,
TRXCON_ST_DEDICATED,
+ TRXCON_ST_PACKET_DATA,
};
enum trxcon_fsm_events {
diff --git a/src/host/trxcon/src/trxcon_fsm.c b/src/host/trxcon/src/trxcon_fsm.c
index 4116291..1b10bab 100644
--- a/src/host/trxcon/src/trxcon_fsm.c
+++ b/src/host/trxcon/src/trxcon_fsm.c
@@ -294,7 +294,10 @@
return;
}
- osmo_fsm_inst_state_chg(fi, TRXCON_ST_DEDICATED, 0, 0);
+ if (config == GSM_PCHAN_PDCH)
+ osmo_fsm_inst_state_chg(fi, TRXCON_ST_PACKET_DATA, 0, 0);
+ else
+ osmo_fsm_inst_state_chg(fi, TRXCON_ST_DEDICATED, 0, 0);
break;
}
case TRXCON_EV_RX_DATA_IND:
@@ -441,6 +444,30 @@
}
}
+static void trxcon_st_packet_data_action(struct osmo_fsm_inst *fi,
+ uint32_t event, void *data)
+{
+ struct trxcon_inst *trxcon = fi->priv;
+
+ switch (event) {
+ case TRXCON_EV_TX_ACCESS_BURST_REQ:
+ handle_tx_access_burst_req(fi, data);
+ break;
+ case TRXCON_EV_RX_TRAFFIC_IND:
+ LOGPFSML(fi, LOGL_NOTICE, "Rx PDTCH/D message\n");
+ break;
+ case TRXCON_EV_RX_DATA_IND:
+ LOGPFSML(fi, LOGL_NOTICE, "Rx PTCCH/D message\n");
+ break;
+ case TRXCON_EV_DEDICATED_RELEASE_REQ:
+ l1sched_reset(trxcon->sched, false);
+ osmo_fsm_inst_state_chg(fi, TRXCON_ST_RESET, 0, 0);
+ break;
+ default:
+ OSMO_ASSERT(0);
+ }
+}
+
static void trxcon_fsm_pre_term_cb(struct osmo_fsm_inst *fi,
enum osmo_fsm_term_cause cause)
{
@@ -493,7 +520,8 @@
.name = "BCCH_CCCH",
.out_state_mask = S(TRXCON_ST_RESET)
| S(TRXCON_ST_FBSB_SEARCH)
- | S(TRXCON_ST_DEDICATED),
+ | S(TRXCON_ST_DEDICATED)
+ | S(TRXCON_ST_PACKET_DATA),
.in_event_mask = S(TRXCON_EV_RX_DATA_IND)
| S(TRXCON_EV_SET_CCCH_MODE_REQ)
| S(TRXCON_EV_TX_ACCESS_BURST_REQ)
@@ -515,6 +543,17 @@
| S(TRXCON_EV_CRYPTO_REQ),
.action = &trxcon_st_dedicated_action,
},
+ [TRXCON_ST_PACKET_DATA] = {
+ .name = "PACKET_DATA",
+ .out_state_mask = S(TRXCON_ST_RESET)
+ | S(TRXCON_ST_FBSB_SEARCH)
+ | S(TRXCON_ST_BCCH_CCCH),
+ .in_event_mask = S(TRXCON_EV_DEDICATED_RELEASE_REQ)
+ | S(TRXCON_EV_TX_ACCESS_BURST_REQ)
+ | S(TRXCON_EV_RX_TRAFFIC_IND)
+ | S(TRXCON_EV_RX_DATA_IND),
+ .action = &trxcon_st_packet_data_action,
+ },
};
static const struct value_string trxcon_fsm_event_names[] = {
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/29848
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I7706d677c8966a6a7c6d452ae97eda84d4282ef5
Gerrit-Change-Number: 29848
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange