summaryrefslogtreecommitdiffstats
path: root/tests/lapd/lapd_test.c
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2014-03-20 19:24:48 +0100
committerDaniel Willmann <daniel@totalueberwachung.de>2014-03-26 18:11:07 +0100
commit3dc4e16786d1e5723e76ad7c70ad54134957f9e5 (patch)
treec8a9609da0fff4967574b1d7af375d58a65f4788 /tests/lapd/lapd_test.c
parent09129352f99a90a784912ae3c8ff442268a35480 (diff)
gsm/lapdm: Prevent LAPD tx_queue from filling up in polling mode
If LAPDm receives an I-Frame while there already is an I-Frame in the tx_queue the code generates an additional RR (to acknowledge the received I-Frame). Instead, N(R) of the I-Frame in the tx_queue should be updated to ACK the data.
Diffstat (limited to 'tests/lapd/lapd_test.c')
-rw-r--r--tests/lapd/lapd_test.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/tests/lapd/lapd_test.c b/tests/lapd/lapd_test.c
index c8bb394d..18ea1dc3 100644
--- a/tests/lapd/lapd_test.c
+++ b/tests/lapd/lapd_test.c
@@ -621,17 +621,13 @@ const uint8_t gprs_susp[] = {
0xd2, 0x6f, 0x09, 0xf1, 0x07, 0x00, 0x01, 0x00, 0x02
};
-const uint8_t gprs_susp_ack[] = {
- 0x01, 0x41, 0x01
-};
-
const uint8_t cipher_cmd[] = {
0x06, 0x35, 0x01
};
-/* The cipher command we send to the MS */
+/* The cipher command we send to the MS after updating our N(R) */
const uint8_t cipher_cmd_out[] = {
- 0x03, 0x20, 0x0d, 0x06, 0x35, 0x01
+ 0x03, 0x40, 0x0d, 0x06, 0x35, 0x01
};
uint8_t cipher_compl[] = {
@@ -730,7 +726,7 @@ static void test_lapdm_desync()
rc = dequeue_prim(&bts_to_ms_channel.lapdm_dcch, &pp, "DCCH");
CHECK_RC(rc);
- OSMO_ASSERT(memcmp(pp.oph.msg->l2h, gprs_susp_ack, ARRAY_SIZE(gprs_susp_ack)) == 0);
+ OSMO_ASSERT(memcmp(pp.oph.msg->l2h, cipher_compl_ack, ARRAY_SIZE(cipher_compl_ack)) == 0);
printf("\nEstablishing SAPI=3\n");
send_sabm(&bts_to_ms_channel, 3, NULL, 0);
@@ -746,7 +742,7 @@ static void test_lapdm_desync()
rc = dequeue_prim(&bts_to_ms_channel.lapdm_dcch, &pp, "DCCH");
CHECK_RC(rc);
- OSMO_ASSERT(memcmp(pp.oph.msg->l2h, cipher_compl_ack, ARRAY_SIZE(cipher_compl_ack)) == 0);
+ OSMO_ASSERT(memcmp(pp.oph.msg->l2h, cp_data_1_ack, ARRAY_SIZE(cp_data_1_ack)) == 0);
/* clean up */
lapdm_channel_exit(&bts_to_ms_channel);