[lac] The lac must be 16 bit. Change it in gsm_bts and vty parsing
The LAC can be 16bit of size. the generation of the LAI, struct
gsm_subsriber and the BSC<->MSC was already using it as a
16bit (short) value.
Change struct gsm_bts to parse 16bit and change the vty configuration
parsing code to deal with a short too.
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 918f307..495f741 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -301,7 +301,7 @@
/* Cell Identity */
u_int16_t cell_identity;
/* location area code of this BTS */
- u_int8_t location_area_code;
+ u_int16_t location_area_code;
/* Training Sequence Code */
u_int8_t tsc;
/* Base Station Identification Code (BSIC) */
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index b6a9dea..79124d9 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -861,14 +861,14 @@
DEFUN(cfg_bts_lac,
cfg_bts_lac_cmd,
- "location_area_code <0-255>",
+ "location_area_code <0-65535>",
"Set the Location Area Code (LAC) of this BTS\n")
{
struct gsm_bts *bts = vty->index;
int lac = atoi(argv[0]);
- if (lac < 0 || lac > 0xff) {
- vty_out(vty, "%% LAC %d is not in the valid range (0-255)%s",
+ if (lac < 0 || lac > 0xffff) {
+ vty_out(vty, "%% LAC %d is not in the valid range (0-65535)%s",
lac, VTY_NEWLINE);
return CMD_WARNING;
}