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

Reply via email to