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 <vyanits...@sysmocom.de> Gerrit-MessageType: newchange