Add test function to test Sa 7 bit setting and reporting
This commit is contained in:
parent
8c195781b6
commit
de54466eb5
15
src/layer1.c
15
src/layer1.c
|
@ -11,6 +11,8 @@
|
||||||
#include "v5x_l1_fsm.h"
|
#include "v5x_l1_fsm.h"
|
||||||
#include "v5x_le_management.h"
|
#include "v5x_le_management.h"
|
||||||
|
|
||||||
|
extern int test_sa7;
|
||||||
|
|
||||||
extern struct v5x_instance *v5i;
|
extern struct v5x_instance *v5i;
|
||||||
|
|
||||||
static struct gsmtap_inst *g_gti = NULL;
|
static struct gsmtap_inst *g_gti = NULL;
|
||||||
|
@ -74,10 +76,19 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal, void __attribute
|
||||||
v5x_l1_signal_rcv(v5l, L1_SIGNAL_NO_AIS);
|
v5x_l1_signal_rcv(v5l, L1_SIGNAL_NO_AIS);
|
||||||
break;
|
break;
|
||||||
case S_L_INP_LINE_SA_BITS:
|
case S_L_INP_LINE_SA_BITS:
|
||||||
if ((isd->sa_bits & 0x40))
|
if ((isd->sa_bits & 0x40)) {
|
||||||
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_1);
|
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_1);
|
||||||
else
|
if (test_sa7) {
|
||||||
|
printf("Currently Sa 7 is set to 1, changing it to 0. (Link ID %d)\n", v5l->id);
|
||||||
|
v5x_l1_signal_snd(v5l, L1_SIGNAL_SA7_0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_0);
|
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_0);
|
||||||
|
if (test_sa7) {
|
||||||
|
printf("Currently Sa 7 is set to 0, changing it to 1. (Link ID %d)\n", v5l->id);
|
||||||
|
v5x_l1_signal_snd(v5l, L1_SIGNAL_SA7_1);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case S_L_INP_LINE_SLIP_RX:
|
case S_L_INP_LINE_SLIP_RX:
|
||||||
printf("RX slip detected on link %d.\n", v5l->id);
|
printf("RX slip detected on link %d.\n", v5l->id);
|
||||||
|
|
|
@ -72,6 +72,7 @@ void *tall_v5le_ctx = NULL;
|
||||||
struct v5x_instance *v5i = NULL;
|
struct v5x_instance *v5i = NULL;
|
||||||
|
|
||||||
static int daemonize = 0;
|
static int daemonize = 0;
|
||||||
|
int test_sa7 = 0;
|
||||||
|
|
||||||
const char *v5le_copyright =
|
const char *v5le_copyright =
|
||||||
"Copyright (C) 2022 by Harald Welte & Andreas Eversberg\r\n"
|
"Copyright (C) 2022 by Harald Welte & Andreas Eversberg\r\n"
|
||||||
|
@ -89,6 +90,7 @@ static void print_help()
|
||||||
printf(" -s --disable-color\n");
|
printf(" -s --disable-color\n");
|
||||||
printf(" -D --daemonize Fork the process into a background daemon\n");
|
printf(" -D --daemonize Fork the process into a background daemon\n");
|
||||||
printf(" -V --version Print the version number\n");
|
printf(" -V --version Print the version number\n");
|
||||||
|
printf(" -7 --rest-sa7 Continously toggle Sa7 when received. (Do loop interface.)\n");
|
||||||
|
|
||||||
printf("\nVTY reference generation:\n");
|
printf("\nVTY reference generation:\n");
|
||||||
printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n");
|
printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n");
|
||||||
|
@ -133,10 +135,11 @@ static void handle_options(int argc, char **argv)
|
||||||
{"disable-color", 0, 0, 's'},
|
{"disable-color", 0, 0, 's'},
|
||||||
{"vty-ref-mode", 1, &long_option, 1},
|
{"vty-ref-mode", 1, &long_option, 1},
|
||||||
{"vty-ref-xml", 0, &long_option, 2},
|
{"vty-ref-xml", 0, &long_option, 2},
|
||||||
|
{"test-sa7", 0, 0, '7'},
|
||||||
{0, 0, 0, 0},
|
{0, 0, 0, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
c = getopt_long(argc, argv, "hc:sVD", long_options, &option_index);
|
c = getopt_long(argc, argv, "hc:sVD7", long_options, &option_index);
|
||||||
|
|
||||||
if (c == -1)
|
if (c == -1)
|
||||||
break;
|
break;
|
||||||
|
@ -162,6 +165,9 @@ static void handle_options(int argc, char **argv)
|
||||||
case 'D':
|
case 'D':
|
||||||
daemonize = 1;
|
daemonize = 1;
|
||||||
break;
|
break;
|
||||||
|
case '7':
|
||||||
|
test_sa7 = 1;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
/* ignore */
|
/* ignore */
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue