[PATCH] openbsc[master]: gsm_bts: add version and variant details

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Tue Apr 4 17:03:52 UTC 2017


Hello Neels Hofmeyr, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/2161

to look at the new patch set (#6).

gsm_bts: add version and variant details

* add version string to gsm_bts
* add PCU version string to gsm_bts
* rename GSM_BTS_TYPE_OSMO_SYSMO -> GSM_BTS_OSMOBTS to avoid confusion
  between BTS model and variant
* add variant enum to gsm_bts_model using enum with variants for each
  hw vendor of OsmoBTS
* show connected PCU version (if available) in vty via 'show bts'

This will come in handy when logging details regarding particular BTS
reported via OML, see:

Related: OS#1614

Change-Id: I6710d53115f34634a7b70969cc05fd5c72ff8ab2
---
M openbsc/include/openbsc/gsm_data.h
M openbsc/include/openbsc/gsm_data_shared.h
M openbsc/src/libbsc/abis_nm.c
M openbsc/src/libbsc/bsc_vty.c
M openbsc/src/libbsc/bts_sysmobts.c
M openbsc/src/libbsc/e1_config.c
M openbsc/src/libbsc/system_information.c
M openbsc/src/libcommon/gsm_data.c
M openbsc/src/libmsc/gsm_04_08.c
9 files changed, 38 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/61/2161/6

diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index e9ba173..02d621d 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -470,7 +470,7 @@
 {
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		return 1;
 	default:
 		break;
@@ -481,7 +481,7 @@
 static inline int is_sysmobts_v2(struct gsm_bts *bts)
 {
 	switch (bts->type) {
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		return 1;
 	default:
 		break;
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index 06fa8dd..242889a 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -64,6 +64,8 @@
 #define HARDCODED_BTS1_TS	6
 #define HARDCODED_BTS2_TS	11
 
+#define MAX_VERSION_LENGTH 64
+
 enum gsm_hooks {
 	GSM_HOOK_NM_SWLOAD,
 	GSM_HOOK_RR_PAGING,
@@ -489,8 +491,17 @@
 	GSM_BTS_TYPE_NANOBTS,
 	GSM_BTS_TYPE_RBS2000,
 	GSM_BTS_TYPE_NOKIA_SITE,
-	GSM_BTS_TYPE_OSMO_SYSMO,
+	GSM_BTS_TYPE_OSMOBTS,
 	_NUM_GSM_BTS_TYPE
+};
+
+enum gsm_bts_type_variant {
+	BTS_UNKNOWN,
+	BTS_OSMO_LITECELL15,
+	BTS_OSMO_OCTPHY,
+	BTS_OSMO_SYSMO,
+	BTS_OSMO_TRX,
+	_NUM_BTS_VARIANT
 };
 
 struct vty;
@@ -499,6 +510,7 @@
 	struct llist_head list;
 
 	enum gsm_bts_type type;
+	enum gsm_bts_type_variant variant;
 	const char *name;
 
 	bool started;
@@ -653,6 +665,11 @@
 	enum gsm_bts_type type;
 	struct gsm_bts_model *model;
 	enum gsm_band band;
+	char version[MAX_VERSION_LENGTH];
+
+	/* Connected PCU version (if any) */
+	char pcu_version[MAX_VERSION_LENGTH];
+
 	/* maximum Tx power that the MS is permitted to use in this cell */
 	int ms_max_power;
 
diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c
index 8b0eec2..394c427 100644
--- a/openbsc/src/libbsc/abis_nm.c
+++ b/openbsc/src/libbsc/abis_nm.c
@@ -661,7 +661,7 @@
 
 	switch (bts_type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		rc = abis_nm_rx_ipacc(mb);
 		abis_nm_queue_send_next(sign_link->trx->bts);
 		break;
@@ -1646,7 +1646,7 @@
 		}
 		*reason = "Unknown combination";
 		return -EINVAL;
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		/* no known restrictions */
 		return 0;
 	default:
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index b1747aa..21afd52 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -245,6 +245,9 @@
 		bts->num_trx, VTY_NEWLINE);
 	vty_out(vty, "Description: %s%s",
 		bts->description ? bts->description : "(null)", VTY_NEWLINE);
+	if (strnlen(bts->pcu_version, MAX_VERSION_LENGTH))
+		vty_out(vty, "PCU version %s connected%s", bts->pcu_version,
+			VTY_NEWLINE);
 	vty_out(vty, "MS Max power: %u dBm%s", bts->ms_max_power, VTY_NEWLINE);
 	vty_out(vty, "Minimum Rx Level for Access: %i dBm%s",
 		rxlev2dbm(bts->si_common.cell_sel_par.rxlev_acc_min),
@@ -649,7 +652,7 @@
 		bts->early_classmark_allowed ? "allowed" : "forbidden", VTY_NEWLINE);
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		vty_out(vty, "  ip.access unit_id %u %u%s",
 			bts->ip_access.site_id, bts->ip_access.bts_id, VTY_NEWLINE);
 		if (bts->ip_access.rsl_ip) {
diff --git a/openbsc/src/libbsc/bts_sysmobts.c b/openbsc/src/libbsc/bts_sysmobts.c
index e1bf661..e4b6cdc 100644
--- a/openbsc/src/libbsc/bts_sysmobts.c
+++ b/openbsc/src/libbsc/bts_sysmobts.c
@@ -46,7 +46,7 @@
 {
 	model_sysmobts = bts_model_nanobts;
 	model_sysmobts.name = "sysmobts";
-	model_sysmobts.type = GSM_BTS_TYPE_OSMO_SYSMO;
+	model_sysmobts.type = GSM_BTS_TYPE_OSMOBTS;
 
 	model_sysmobts.features.data = &model_sysmobts._features_data[0];
 	model_sysmobts.features.data_len =
diff --git a/openbsc/src/libbsc/e1_config.c b/openbsc/src/libbsc/e1_config.c
index 8910d21..d57dec5 100644
--- a/openbsc/src/libbsc/e1_config.c
+++ b/openbsc/src/libbsc/e1_config.c
@@ -179,7 +179,7 @@
 
 	/* skip signal link initialization, this is done later for these BTS. */
 	if (bts->type == GSM_BTS_TYPE_NANOBTS ||
-	    bts->type == GSM_BTS_TYPE_OSMO_SYSMO)
+	    bts->type == GSM_BTS_TYPE_OSMOBTS)
 		return e1inp_line_update(line);
 
 	/* OML link */
diff --git a/openbsc/src/libbsc/system_information.c b/openbsc/src/libbsc/system_information.c
index a2dd827..2610331 100644
--- a/openbsc/src/libbsc/system_information.c
+++ b/openbsc/src/libbsc/system_information.c
@@ -830,7 +830,7 @@
 	/* ip.access nanoBTS needs l2_plen!! */
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		*output++ = GSM48_LEN2PLEN(l2_plen);
 		l2_plen++;
 		break;
@@ -865,7 +865,7 @@
 	/* ip.access nanoBTS needs l2_plen!! */
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		*output++ = GSM48_LEN2PLEN(l2_plen);
 		l2_plen++;
 		break;
@@ -909,7 +909,7 @@
 	/* ip.access nanoBTS needs l2_plen!! */
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		*output++ = GSM48_LEN2PLEN(l2_plen);
 		l2_plen++;
 		break;
@@ -946,7 +946,7 @@
 	/* ip.access nanoBTS needs l2_plen!! */
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		*output++ = GSM48_LEN2PLEN(l2_plen);
 		l2_plen++;
 		break;
diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c
index 3e12430..fd34793 100644
--- a/openbsc/src/libcommon/gsm_data.c
+++ b/openbsc/src/libcommon/gsm_data.c
@@ -96,7 +96,7 @@
 	{ GSM_BTS_TYPE_NANOBTS,	"nanobts" },
 	{ GSM_BTS_TYPE_RBS2000,	"rbs2000" },
 	{ GSM_BTS_TYPE_NOKIA_SITE, "nokia_site" },
-	{ GSM_BTS_TYPE_OSMO_SYSMO, "sysmobts" },
+	{ GSM_BTS_TYPE_OSMOBTS,	"sysmobts" },
 	{ 0,			NULL }
 };
 
@@ -106,7 +106,7 @@
 	{ GSM_BTS_TYPE_NANOBTS,		"ip.access nanoBTS or compatible" },
 	{ GSM_BTS_TYPE_RBS2000,		"Ericsson RBS2000 Series" },
 	{ GSM_BTS_TYPE_NOKIA_SITE,	"Nokia {Metro,Ultra,In}Site" },
-	{ GSM_BTS_TYPE_OSMO_SYSMO,	"sysmocom sysmoBTS" },
+	{ GSM_BTS_TYPE_OSMOBTS,		"sysmocom sysmoBTS" },
 	{ 0,				NULL }
 };
 
@@ -274,7 +274,7 @@
 
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		/* Set the default OML Stream ID to 0xff */
 		bts->oml_tei = 0xff;
 		bts->c0->nominal_power = 23;
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index c910d71..ee4e561 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -1944,7 +1944,7 @@
 	// todo: map between different bts types
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		if (!ipacc_rtp_direct) {
 			if (!lchan->abis_ip.rtp_socket) {
 				LOGP(DHO, LOGL_ERROR, "no RTP socket for "
@@ -2035,7 +2035,7 @@
 
 	switch (bts->type) {
 	case GSM_BTS_TYPE_NANOBTS:
-	case GSM_BTS_TYPE_OSMO_SYSMO:
+	case GSM_BTS_TYPE_OSMOBTS:
 		if (ipacc_rtp_direct) {
 			LOGP(DCC, LOGL_ERROR, "Error: RTP proxy is disabled\n");
 			return -EINVAL;
@@ -3615,7 +3615,7 @@
 		bts = trans->conn->lchan->ts->trx->bts;
 		switch (bts->type) {
 		case GSM_BTS_TYPE_NANOBTS:
-		case GSM_BTS_TYPE_OSMO_SYSMO:
+		case GSM_BTS_TYPE_OSMOBTS:
 			if (!trans->conn->lchan->abis_ip.rtp_socket) {
 				DEBUGP(DMNCC, "TCH frame to lchan without RTP connection\n");
 				return 0;

-- 
To view, visit https://gerrit.osmocom.org/2161
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6710d53115f34634a7b70969cc05fd5c72ff8ab2
Gerrit-PatchSet: 6
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list