Add vty check for max si2quater size
Explicitly check if added (U|E)ARFCN will fit into available si2quater
message.
diff --git a/openbsc/tests/gsm0408/gsm0408_test.c b/openbsc/tests/gsm0408/gsm0408_test.c
index 2d91b68..9262667 100644
--- a/openbsc/tests/gsm0408/gsm0408_test.c
+++ b/openbsc/tests/gsm0408/gsm0408_test.c
@@ -103,6 +103,16 @@
printf("failed to generate SI2quater: %s\n", strerror(-r));
}
+static inline void _bts_uarfcn_add(struct gsm_bts *bts, uint16_t arfcn,
+ uint16_t scramble, bool diversity)
+{
+ int r = bts_uarfcn_add(bts, arfcn, scramble, diversity);
+ if (r < 0)
+ printf("failed to add UARFCN to SI2quater: %s\n", strerror(-r));
+ else
+ gen(bts);
+}
+
static inline void test_si2q_u(void)
{
struct gsm_bts *bts;
@@ -113,37 +123,17 @@
exit(1);
bts = gsm_bts_alloc(network);
- bts_uarfcn_add(bts, 1982, 13, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 44, 0);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 61, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 89, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 113, 0);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 123, 0);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 56, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 72, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 223, 1);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 14, 0);
- gen(bts);
-
- bts_uarfcn_add(bts, 1982, 88, 0);
+ _bts_uarfcn_add(bts, 1982, 13, 1);
+ _bts_uarfcn_add(bts, 1982, 44, 0);
+ _bts_uarfcn_add(bts, 1982, 61, 1);
+ _bts_uarfcn_add(bts, 1982, 89, 1);
+ _bts_uarfcn_add(bts, 1982, 113, 0);
+ _bts_uarfcn_add(bts, 1982, 123, 0);
+ _bts_uarfcn_add(bts, 1982, 56, 1);
+ _bts_uarfcn_add(bts, 1982, 72, 1);
+ _bts_uarfcn_add(bts, 1982, 223, 1);
+ _bts_uarfcn_add(bts, 1982, 14, 0);
+ _bts_uarfcn_add(bts, 1982, 88, 0);
gen(bts);
}