VTY: dynamically create BTS "type" command syntax
diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c
index 5c58bf3..e3a6ba3 100644
--- a/openbsc/src/libcommon/gsm_data.c
+++ b/openbsc/src/libcommon/gsm_data.c
@@ -182,7 +182,7 @@
 	return NULL;
 }
 
-static const struct value_string bts_types[] = {
+const struct value_string bts_type_names[_NUM_GSM_BTS_TYPE+1] = {
 	{ GSM_BTS_TYPE_UNKNOWN,	"unknown" },
 	{ GSM_BTS_TYPE_BS11,	"bs11" },
 	{ GSM_BTS_TYPE_NANOBTS,	"nanobts" },
@@ -193,14 +193,25 @@
 	{ 0,			NULL }
 };
 
+const struct value_string bts_type_descs[_NUM_GSM_BTS_TYPE+1] = {
+	{ GSM_BTS_TYPE_UNKNOWN,		"Unknown BTS Type" },
+	{ GSM_BTS_TYPE_BS11,		"Siemens BTS (BS-11 or compatible)" },
+	{ GSM_BTS_TYPE_NANOBTS,		"ip.access nanoBTS or compatible" },
+	{ GSM_BTS_TYPE_RBS2000,		"Ericsson RBS2000 Series" },
+	{ GSM_BTS_TYPE_HSL_FEMTO,	"HSL 2.75G femto" },
+	{ GSM_BTS_TYPE_NOKIA_SITE,	"Nokia {Metro,Ultra,In}Site" },
+	{ GSM_BTS_TYPE_OSMO_SYSMO,	"sysmocom sysmoBTS" },
+	{ 0,				NULL }
+};
+
 enum gsm_bts_type parse_btstype(const char *arg)
 {
-	return get_string_value(bts_types, arg);
+	return get_string_value(bts_type_names, arg);
 }
 
 const char *btstype2str(enum gsm_bts_type type)
 {
-	return get_value_string(bts_types, type);
+	return get_value_string(bts_type_names, type);
 }
 
 struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr)