summaryrefslogtreecommitdiffstats
path: root/src/host/virt_phy/src/l1ctl_sap.c
diff options
context:
space:
mode:
authorSebastian Stumpf <sebastian.stumpf87@googlemail.com>2017-03-07 17:59:54 +0100
committerHarald Welte <laforge@gnumonks.org>2017-07-12 23:26:26 +0200
commit7ea7b8ac050b1d52f175e70446b2bd8eb768bb39 (patch)
tree5d51ddf585f998bbe1674f5ff42067a77a862f45 /src/host/virt_phy/src/l1ctl_sap.c
parentc1705d53db746551a12fe85229bda41a4d5b508a (diff)
VIRT-PHY: Add downlink filter for msg on dedicated channels.
Messages incoming on dedicated channel (SDCCH/8, SDCCH/4) are no longer forwarded to l23 if their timeslot/subchannel is not fitting the ones configured by l23 via L1CTL_DM_EST_REQ. Change-Id: I6112b20e31c25636e53d3a6cda6f7443a94ff9c3
Diffstat (limited to 'src/host/virt_phy/src/l1ctl_sap.c')
-rw-r--r--src/host/virt_phy/src/l1ctl_sap.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/host/virt_phy/src/l1ctl_sap.c b/src/host/virt_phy/src/l1ctl_sap.c
index bd6051be..b6c4508f 100644
--- a/src/host/virt_phy/src/l1ctl_sap.c
+++ b/src/host/virt_phy/src/l1ctl_sap.c
@@ -244,7 +244,6 @@ void l1ctl_sap_handler(struct msgb *msg)
*
* Handle state change from idle to dedicated mode.
*
- * TODO: Implement this handler routine!
*/
void l1ctl_rx_dm_est_req(struct msgb *msg)
{
@@ -257,12 +256,12 @@ void l1ctl_rx_dm_est_req(struct msgb *msg)
rsl_dec_chan_nr(ul->chan_nr, &rsl_chantype, &subslot, &timeslot);
DEBUGP(DL1C,
- "Received and handled from l23 - L1CTL_DM_EST_REQ (chan_nr=0x%02x, tn=%u)\n",
- ul->chan_nr, timeslot);
+ "Received and handled from l23 - L1CTL_DM_EST_REQ (chan_nr=0x%02x, tn=%u, ss=%u)\n",
+ ul->chan_nr, timeslot, subslot);
l1_model_ms->state->dedicated.chan_type = rsl_chantype;
l1_model_ms->state->dedicated.tn = timeslot;
-
+ l1_model_ms->state->dedicated.subslot = subslot;
/* TCH config */
if (rsl_chantype == RSL_CHAN_Bm_ACCHs
|| rsl_chantype == RSL_CHAN_Lm_ACCHs) {
@@ -348,6 +347,8 @@ void l1ctl_rx_dm_rel_req(struct msgb *msg)
DEBUGP(DL1C, "Received and handled from l23 - L1CTL_DM_REL_REQ\n");
l1_model_ms->state->dedicated.chan_type = 0;
+ l1_model_ms->state->dedicated.tn = 0;
+ l1_model_ms->state->dedicated.subslot = 0;
l1_model_ms->state->tch_mode = GSM48_CMODE_SIGN;
// TODO: disable ciphering