summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2011-11-22 18:10:23 +0100
committerSteve Markgraf <steve@steve-m.de>2011-11-22 18:10:23 +0100
commit50d58f9dd911ce84ed184e3aff1fdd630c70eb22 (patch)
tree35e056153c5bd47b9fe73069badda8fca2bb0513 /src/host/layer23/src
parent4300e89ba82238a9a791544dc54547ffc29766a3 (diff)
layer23/ccch_scan: Print Paging Requests of type 3
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Diffstat (limited to 'src/host/layer23/src')
-rw-r--r--src/host/layer23/src/misc/app_ccch_scan.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/host/layer23/src/misc/app_ccch_scan.c b/src/host/layer23/src/misc/app_ccch_scan.c
index d5bea62c..3b46b559 100644
--- a/src/host/layer23/src/misc/app_ccch_scan.c
+++ b/src/host/layer23/src/misc/app_ccch_scan.c
@@ -379,6 +379,32 @@ static int gsm48_rx_paging_p2(struct msgb *msg, struct osmocom_ms *ms)
return 0;
}
+static int gsm48_rx_paging_p3(struct msgb *msg, struct osmocom_ms *ms)
+{
+ struct gsm48_paging3 *pag;
+
+ if (msgb_l3len(msg) < sizeof(*pag)) {
+ LOGP(DRR, LOGL_ERROR, "Paging3 message is too small.\n");
+ return -1;
+ }
+
+ pag = msgb_l3(msg);
+ LOGP(DRR, LOGL_NOTICE, "Paging1: %s chan %s to TMSI M(0x%x) \n",
+ pag_print_mode(pag->pag_mode),
+ chan_need(pag->cneed1), pag->tmsi1);
+ LOGP(DRR, LOGL_NOTICE, "Paging2: %s chan %s to TMSI M(0x%x) \n",
+ pag_print_mode(pag->pag_mode),
+ chan_need(pag->cneed2), pag->tmsi2);
+ LOGP(DRR, LOGL_NOTICE, "Paging3: %s chan %s to TMSI M(0x%x) \n",
+ pag_print_mode(pag->pag_mode),
+ "n/a ", pag->tmsi3);
+ LOGP(DRR, LOGL_NOTICE, "Paging4: %s chan %s to TMSI M(0x%x) \n",
+ pag_print_mode(pag->pag_mode),
+ "n/a ", pag->tmsi4);
+
+ return 0;
+}
+
int gsm48_rx_ccch(struct msgb *msg, struct osmocom_ms *ms)
{
struct gsm48_system_information_type_header *sih = msgb_l3(msg);
@@ -395,7 +421,7 @@ int gsm48_rx_ccch(struct msgb *msg, struct osmocom_ms *ms)
gsm48_rx_paging_p2(msg, ms);
break;
case GSM48_MT_RR_PAG_REQ_3:
- LOGP(DRR, LOGL_ERROR, "PAGING of type 3 is not implemented.\n");
+ gsm48_rx_paging_p3(msg, ms);
break;
case GSM48_MT_RR_IMM_ASS:
gsm48_rx_imm_ass(msg, ms);