fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/30628 )
Change subject: [WIP] trxcon: implement the missing TRXCON_ST_DCH_TUNING ......................................................................
[WIP] trxcon: implement the missing TRXCON_ST_DCH_TUNING
This is a transient state called 'TUNING DCH' in 3GPP TS 44.004, Figure 5.1. We may want to have it implemented in the trxcon_fsm for proper handling of the L1CTL_DM_REL_REQ (TRXCON_EV_DCH_REL_REQ) and additionally for handling DCH establishment failures.
Change-Id: I817691243d5c45f23bed1d9f8d7d16c002108a38 --- M src/host/trxcon/include/osmocom/bb/trxcon/trxcon_fsm.h M src/host/trxcon/src/trxcon_fsm.c 2 files changed, 18 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/28/30628/1
diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon_fsm.h b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon_fsm.h index ec0b2c6..75ce6f5 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon_fsm.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon_fsm.h @@ -12,6 +12,7 @@ TRXCON_ST_FULL_POWER_SCAN, TRXCON_ST_FBSB_SEARCH, TRXCON_ST_BCCH_CCCH, + TRXCON_ST_DCH_TUNING, TRXCON_ST_DEDICATED, TRXCON_ST_PACKET_DATA, }; diff --git a/src/host/trxcon/src/trxcon_fsm.c b/src/host/trxcon/src/trxcon_fsm.c index dbab84a..d272dc8 100644 --- a/src/host/trxcon/src/trxcon_fsm.c +++ b/src/host/trxcon/src/trxcon_fsm.c @@ -622,8 +622,7 @@ .name = "BCCH_CCCH", .out_state_mask = S(TRXCON_ST_RESET) | S(TRXCON_ST_FBSB_SEARCH) - | S(TRXCON_ST_DEDICATED) - | S(TRXCON_ST_PACKET_DATA), + | S(TRXCON_ST_DCH_TUNING), .in_event_mask = S(TRXCON_EV_RX_DATA_IND) | S(TRXCON_EV_SET_CCCH_MODE_REQ) | S(TRXCON_EV_TX_ACCESS_BURST_REQ) @@ -631,9 +630,24 @@ | S(TRXCON_EV_DCH_EST_REQ), .action = &trxcon_st_bcch_ccch_action, }, + [TRXCON_ST_DCH_TUNING] = { + .name = "DCH_TUNING", + .out_state_mask = S(TRXCON_ST_RESET) + | S(TRXCON_ST_FBSB_SEARCH) + | S(TRXCON_ST_DEDICATED) + | S(TRXCON_ST_PACKET_DATA), + .in_event_mask = S(TRXCON_EV_DCH_REL_REQ) + | S(TRXCON_EV_SET_TCH_MODE_REQ) + | S(TRXCON_EV_TX_DATA_REQ) + | S(TRXCON_EV_TX_DATA_CNF) + | S(TRXCON_EV_RX_DATA_IND) + | S(TRXCON_EV_CRYPTO_REQ), + .action = &trxcon_st_dch_tuning_action, + }, [TRXCON_ST_DEDICATED] = { .name = "DEDICATED", .out_state_mask = S(TRXCON_ST_RESET) + | S(TRXCON_ST_DCH_TUNING) | S(TRXCON_ST_FBSB_SEARCH) | S(TRXCON_ST_DEDICATED) | S(TRXCON_ST_PACKET_DATA), @@ -651,6 +665,7 @@ [TRXCON_ST_PACKET_DATA] = { .name = "PACKET_DATA", .out_state_mask = S(TRXCON_ST_RESET) + | S(TRXCON_ST_DCH_TUNING) | S(TRXCON_ST_FBSB_SEARCH) | S(TRXCON_ST_DEDICATED) | S(TRXCON_ST_PACKET_DATA),