aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJF Dionne <jf.dionne@nutaq.com>2016-07-26 15:16:08 -0400
committerHarald Welte <laforge@gnumonks.org>2019-03-11 13:36:44 +0000
commit1beed38b54592368d627f0cb58c655627c02ef7e (patch)
tree1ca6a8f538bd8ffa03d7fbc9455c45e4b09dd87f
parentfa3085b45e3615f0257133bd1e7953b60d69cded (diff)
encoding: Fixes TMSI vs MI bit selection in repeated page info
-rw-r--r--src/encoding.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/encoding.cpp b/src/encoding.cpp
index 4c8cdb0..019de52 100644
--- a/src/encoding.cpp
+++ b/src/encoding.cpp
@@ -1066,6 +1066,20 @@ unsigned Encoding::write_packet_paging_request(bitvec * dest)
return wp;
}
+/* 3GPP TS 44.060 ยง 11.2.10:
+ < Repeated Page info struct > ::=
+ { 0 -- Page request for TBF establishment
+ { 0 < PTMSI : bit (32) >
+ | 1 < Length of Mobile Identity contents : bit (4) >
+ < Mobile Identity : octet (val (Length of Mobile Identity contents)) > }
+ | 1 -- Page request for RR conn. establishment
+ { 0 < TMSI : bit (32) >
+ | 1 < Length of Mobile Identity contents : bit (4) >
+ < Mobile Identity : octet (val (Length of Mobile Identity contents)) > }
+ < CHANNEL_NEEDED : bit (2) >
+ { 0 | 1 < eMLPP_PRIORITY : bit (3) > }
+ }
+ */
unsigned Encoding::write_repeated_page_info(bitvec * dest, unsigned& wp, uint8_t len,
uint8_t *identity, uint8_t chan_needed)
{
@@ -1078,7 +1092,7 @@ unsigned Encoding::write_repeated_page_info(bitvec * dest, unsigned& wp, uint8_t
identity++;
len--;
} else {
- bitvec_write_field(dest, &wp,0x0,1); // MI
+ bitvec_write_field(dest, &wp,0x1,1); // MI
bitvec_write_field(dest, &wp,len,4); // MI len
}
while (len) {