dyn PDCH: TS flags: rename one, add three, as enum
Rename TS_F_PDCH_MODE to TS_F_PDCH_ACTIVE, to more accurately reflect the truth value's meaning. Add TS_F_PDCH_ACT_PENDING and TS_F_PDCH_DEACT_PENDING for sysmoBTS (and possibly other BTS implementations) to remember what to do when the PCU replies with a channel de/activation. Also add TS_F_PDCH_PENDING_MASK to test for both. Change from #define to an enum. Note: These flags are also used in the upcoming osmo-bts-sysmo dyn PDCH commits, so osmo-bts submission depends on this commit. Change-Id: I391a103ab599648b0c5d4f3ad613a6d7c48834b3
This commit is contained in:
parent
0fcd2e2fec
commit
2ebacce4fa
|
@ -332,7 +332,14 @@ struct gsm_lchan {
|
|||
#endif
|
||||
};
|
||||
|
||||
#define TS_F_PDCH_MODE 0x1000
|
||||
enum {
|
||||
TS_F_PDCH_ACTIVE = 0x1000,
|
||||
TS_F_PDCH_ACT_PENDING = 0x2000,
|
||||
TS_F_PDCH_DEACT_PENDING = 0x4000,
|
||||
TS_F_PDCH_PENDING_MASK = 0x6000 /*<
|
||||
TS_F_PDCH_ACT_PENDING | TS_F_PDCH_DEACT_PENDING */
|
||||
} gsm_bts_trx_ts_flags;
|
||||
|
||||
/* One Timeslot in a TRX */
|
||||
struct gsm_bts_trx_ts {
|
||||
struct gsm_bts_trx *trx;
|
||||
|
|
|
@ -472,7 +472,7 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
|
|||
|
||||
/* if channel is in PDCH mode, deactivate PDCH first */
|
||||
if (lchan->ts->pchan == GSM_PCHAN_TCH_F_PDCH
|
||||
&& (lchan->ts->flags & TS_F_PDCH_MODE)) {
|
||||
&& (lchan->ts->flags & TS_F_PDCH_ACTIVE)) {
|
||||
/* store activation type and handover reference */
|
||||
lchan->dyn_pdch.act_type = act_type;
|
||||
lchan->dyn_pdch.ho_ref = ho_ref;
|
||||
|
@ -1203,7 +1203,7 @@ static int rsl_rx_hando_det(struct msgb *msg)
|
|||
|
||||
static int rsl_rx_pdch_act_ack(struct msgb *msg)
|
||||
{
|
||||
msg->lchan->ts->flags |= TS_F_PDCH_MODE;
|
||||
msg->lchan->ts->flags |= TS_F_PDCH_ACTIVE;
|
||||
|
||||
/* We have activated PDCH, so now the channel is available again. */
|
||||
do_lchan_free(msg->lchan);
|
||||
|
@ -1213,7 +1213,7 @@ static int rsl_rx_pdch_act_ack(struct msgb *msg)
|
|||
|
||||
static int rsl_rx_pdch_deact_ack(struct msgb *msg)
|
||||
{
|
||||
msg->lchan->ts->flags &= ~TS_F_PDCH_MODE;
|
||||
msg->lchan->ts->flags &= ~TS_F_PDCH_ACTIVE;
|
||||
|
||||
rsl_chan_activate_lchan(msg->lchan, msg->lchan->dyn_pdch.act_type,
|
||||
msg->lchan->dyn_pdch.ho_ref);
|
||||
|
|
|
@ -919,7 +919,7 @@ static void ts_dump_vty(struct vty *vty, struct gsm_bts_trx_ts *ts)
|
|||
gsm_pchan_name(ts->pchan), gsm_ts_tsc(ts));
|
||||
if (ts->pchan == GSM_PCHAN_TCH_F_PDCH)
|
||||
vty_out(vty, " (%s mode)",
|
||||
ts->flags & TS_F_PDCH_MODE ? "PDCH" : "TCH/F");
|
||||
ts->flags & TS_F_PDCH_ACTIVE ? "PDCH" : "TCH/F");
|
||||
vty_out(vty, "%s", VTY_NEWLINE);
|
||||
vty_out(vty, " NM State: ");
|
||||
net_dump_nmstate(vty, &ts->mo.nm_state);
|
||||
|
|
Loading…
Reference in New Issue