aboutsummaryrefslogtreecommitdiffstats
path: root/src/abis_rsl.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-02-02 22:29:56 +0000
committerHarald Welte <laforge@gnumonks.org>2009-02-02 22:29:56 +0000
commitea280446bb7d27f13bb7adcc1c4b998002ff6276 (patch)
treeeb80590f3c3aa7dcedb69b7ddb841c07cdf2c014 /src/abis_rsl.c
parent5083b0b1f1082da59e4678051d96d9ba58f44694 (diff)
add rudimentary code to debug-print the CCCH LOAD INDICATION
Diffstat (limited to 'src/abis_rsl.c')
-rw-r--r--src/abis_rsl.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/abis_rsl.c b/src/abis_rsl.c
index 4fd849c95..374a45064 100644
--- a/src/abis_rsl.c
+++ b/src/abis_rsl.c
@@ -649,9 +649,31 @@ static int rsl_rx_chan_rqd(struct msgb *msg)
return ret;
}
+/* MS has requested a channel on the RACH */
+static int rsl_rx_ccch_load(struct msgb *msg)
+{
+ struct abis_rsl_dchan_hdr *rslh = msgb_l2(msg);
+ u_int16_t pg_buf_space;
+
+ switch (rslh->data[0]) {
+ case RSL_IE_PAGING_LOAD:
+ pg_buf_space = rslh->data[1] << 8 | rslh->data[2];
+ DEBUGP(DRSL, "CCCH LOAD IND, free paging buffer space: %u\n",
+ pg_buf_space);
+ break;
+ case RSL_IE_RACH_LOAD:
+ DEBUGP(DRSL, "CCCH LOAD IND, RACH Load\n");
+ break;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
static int abis_rsl_rx_cchan(struct msgb *msg)
{
- struct abis_rsl_dchan_hdr *rslh = msgb_l2(msg) ;
+ struct abis_rsl_dchan_hdr *rslh = msgb_l2(msg);
int rc = 0;
msg->lchan = lchan_lookup(msg->trx, rslh->chan_nr);
@@ -661,12 +683,14 @@ static int abis_rsl_rx_cchan(struct msgb *msg)
/* MS has requested a channel on the RACH */
rc = rsl_rx_chan_rqd(msg);
break;
+ case RSL_MT_CCCH_LOAD_IND:
+ /* current load on the CCCH */
+ rc = rsl_rx_ccch_load(msg);
+ break;
case RSL_MT_DELETE_IND:
/* CCCH overloaded, IMM_ASSIGN was dropped */
case RSL_MT_CBCH_LOAD_IND:
/* current load on the CBCH */
- case RSL_MT_CCCH_LOAD_IND:
- /* current load on the CCCH */
fprintf(stderr, "Unimplemented Abis RSL TRX message type 0x%02x\n",
rslh->c.msg_type);
break;