laforge submitted this change.
paging: Add support for generating NLN/NLN-Status in P1 Rest Octets
The NLN + NLN-Status are optional parts of P1 rest octets; they can
be used to support the "Reduced NCH monitoring mechanism" as described
in Section 3.3.3.3 of TS 48.018.
The patch just adds encoder capability but doesn't yet make use of it.
Change-Id: I961842c3fec151e149f72a4f36279ce4b979795e
Related: OS#5781
---
M src/common/paging.c
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/common/paging.c b/src/common/paging.c
index 0ea7de7..b3d5d8b 100644
--- a/src/common/paging.c
+++ b/src/common/paging.c
@@ -321,6 +321,11 @@
/* abstract representation of P1 rest octets; we only implement those parts we need for now */
struct p1_rest_octets {
+ struct {
+ bool present;
+ uint8_t nln;
+ uint8_t nln_status;
+ } nln_pch;
bool packet_page_ind[2];
bool r8_present;
struct {
@@ -364,7 +369,13 @@
static void append_p1_rest_octets(struct bitvec *bv, const struct p1_rest_octets *p1ro)
{
/* Paging 1 RO (at least 10 bits before ETWS struct) */
- bitvec_set_bit(bv, L); /* no NLN */
+ if (p1ro->nln_pch.present) {
+ bitvec_set_bit(bv, H);
+ bitvec_set_uint(bv, p1ro->nln_pch.nln, 2);
+ bitvec_set_uint(bv, p1ro->nln_pch.nln_status, 1);
+ } else {
+ bitvec_set_bit(bv, L); /* no NLN */
+ }
bitvec_set_bit(bv, L); /* no Priority1 */
bitvec_set_bit(bv, L); /* no Priority2 */
bitvec_set_bit(bv, L); /* no Group Call Info */
@@ -543,6 +554,7 @@
static void build_p1_rest_octets(struct p1_rest_octets *p1ro, struct gsm_bts *bts)
{
memset(p1ro, 0, sizeof(*p1ro));
+ p1ro->nln_pch.present = false;
p1ro->packet_page_ind[0] = false;
p1ro->packet_page_ind[1] = false;
p1ro->r8_present = true;
To view, visit change 33287. To unsubscribe, or for help writing mail filters, visit settings.