aboutsummaryrefslogtreecommitdiffstats
path: root/tests/types/TypesTest.cpp
diff options
context:
space:
mode:
authoraravind sirsikar <arvind.sirsikar@radisys.com>2016-11-09 16:27:00 +0530
committeraravind sirsikar <arvind.sirsikar@radisys.com>2016-11-09 16:27:00 +0530
commitc0c3afd0794c217e6fc33b18eb9366c8cfe8b020 (patch)
treebc4f133a852deb15453eff0969be95d4be95ed8a /tests/types/TypesTest.cpp
parentae4838101a58feb512e88325efcae79f46af8e32 (diff)
Handle Immediate assignment reject
When RACH is received, PCU will generate the Immediate assignment reject message if no resources are present. The encoding is done based on section 9.1.20 of 44.018 version 11.7.0 Release 11. This patch also includes the test case to validate the generated Immediate assignment reject message. This patch is integration tested on Osmo-trx setup with Ettus B210 board and LG F70 MS with some simulation code changes in Osmo-pcu. Change-Id: I3d33e2b9746fa4f338fad0e6b63b1c5f07de6f9b
Diffstat (limited to 'tests/types/TypesTest.cpp')
-rw-r--r--tests/types/TypesTest.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp
index 8b3cfd1c..ee1c817c 100644
--- a/tests/types/TypesTest.cpp
+++ b/tests/types/TypesTest.cpp
@@ -427,6 +427,42 @@ static void test_rlc_dl_ul_basic()
}
}
+void test_immediate_assign_rej()
+{
+ uint8_t plen;
+ bitvec *immediate_assignment_rej = bitvec_alloc(22);
+
+ bitvec_unhex(immediate_assignment_rej,
+ "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b");
+ plen = Encoding::write_immediate_assignment_reject(
+ immediate_assignment_rej, 112, 100,
+ GSM_L1_BURST_TYPE_ACCESS_1);
+
+ printf("assignment reject: %s\n",
+ osmo_hexdump(immediate_assignment_rej->data, 22));
+
+ OSMO_ASSERT(plen == 19);
+ /* RA value */
+ OSMO_ASSERT(immediate_assignment_rej->data[3] == 0x7f);
+ /* Extended RA value */
+ OSMO_ASSERT(immediate_assignment_rej->data[19] == 0xc0);
+
+ bitvec_unhex(immediate_assignment_rej,
+ "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b");
+
+ plen = Encoding::write_immediate_assignment_reject(
+ immediate_assignment_rej, 112, 100,
+ GSM_L1_BURST_TYPE_ACCESS_0);
+
+ printf("assignment reject: %s\n",
+ osmo_hexdump(immediate_assignment_rej->data, 22));
+
+ OSMO_ASSERT(plen == 19);
+ /* RA value */
+ OSMO_ASSERT(immediate_assignment_rej->data[3] == 0x70);
+
+}
+
int main(int argc, char **argv)
{
osmo_init_logging(&gprs_log_info);
@@ -439,6 +475,7 @@ int main(int argc, char **argv)
test_rlc_v_b();
test_rlc_v_n();
test_rlc_dl_ul_basic();
+ test_immediate_assign_rej();
return EXIT_SUCCESS;
}