<p>Vadim Yanitskiy has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18616">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Split GSM_BTS_TYPE_OSMOBTS to individual BTS types<br><br>Change-Id: I00a815cfa6daab126742d27843e700c07c1db183<br>---<br>M doc/examples/osmo-bsc/osmo-bsc-minimal.cfg<br>M doc/examples/osmo-bsc/osmo-bsc.cfg<br>M doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg<br>M doc/manuals/vty/bsc_vty_reference.xml<br>M include/osmocom/bsc/bss.h<br>M include/osmocom/bsc/gsm_data.h<br>M src/osmo-bsc/Makefile.am<br>M src/osmo-bsc/abis_nm.c<br>M src/osmo-bsc/abis_rsl.c<br>M src/osmo-bsc/bsc_vty.c<br>M src/osmo-bsc/bts_init.c<br>A src/osmo-bsc/bts_osmobts.c<br>D src/osmo-bsc/bts_sysmobts.c<br>M src/osmo-bsc/e1_config.c<br>M src/osmo-bsc/gsm_data.c<br>M src/osmo-bsc/system_information.c<br>M tests/neighbor_ident.vty<br>17 files changed, 160 insertions(+), 155 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/16/18616/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg</span><br><span>index b8cd78d..30eadcc 100644</span><br><span>--- a/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg</span><br><span>+++ b/doc/examples/osmo-bsc/osmo-bsc-minimal.cfg</span><br><span>@@ -2,7 +2,8 @@</span><br><span> network country code 901</span><br><span> mobile network code 70</span><br><span> bts 0</span><br><span style="color: hsl(0, 100%, 40%);">- type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+ ! Change this to your specific model (e.g. osmo-bts-sysmo)</span><br><span style="color: hsl(120, 100%, 40%);">+ type osmo-bts</span><br><span> band GSM-1800</span><br><span> location_area_code 23</span><br><span> ipa unit-id 1800 0</span><br><span>diff --git a/doc/examples/osmo-bsc/osmo-bsc.cfg b/doc/examples/osmo-bsc/osmo-bsc.cfg</span><br><span>index 57000ae..7b3438a 100644</span><br><span>--- a/doc/examples/osmo-bsc/osmo-bsc.cfg</span><br><span>+++ b/doc/examples/osmo-bsc/osmo-bsc.cfg</span><br><span>@@ -20,7 +20,8 @@</span><br><span> dyn_ts_allow_tch_f 0</span><br><span> periodic location update 30</span><br><span> bts 0</span><br><span style="color: hsl(0, 100%, 40%);">- type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+ ! Change this to your specific model (e.g. osmo-bts-sysmo)</span><br><span style="color: hsl(120, 100%, 40%);">+ type osmo-bts</span><br><span> band DCS1800</span><br><span> cell_identity 6969</span><br><span> location_area_code 1</span><br><span>diff --git a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg</span><br><span>index c250fac..e6977f2 100644</span><br><span>--- a/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg</span><br><span>+++ b/doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg</span><br><span>@@ -19,7 +19,8 @@</span><br><span> dyn_ts_allow_tch_f 0</span><br><span> periodic location update 30</span><br><span> bts 0</span><br><span style="color: hsl(0, 100%, 40%);">- type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+ ! Change this to your specific model (e.g. osmo-bts-sysmo)</span><br><span style="color: hsl(120, 100%, 40%);">+ type osmo-bts</span><br><span> band DCS1800</span><br><span> cell_identity 0</span><br><span> location_area_code 1</span><br><span>diff --git a/doc/manuals/vty/bsc_vty_reference.xml b/doc/manuals/vty/bsc_vty_reference.xml</span><br><span>index 8f3edf9..f3f67c6 100644</span><br><span>--- a/doc/manuals/vty/bsc_vty_reference.xml</span><br><span>+++ b/doc/manuals/vty/bsc_vty_reference.xml</span><br><span>@@ -3025,7 +3025,7 @@</span><br><span> </node></span><br><span> <node id='config-net-bts'></span><br><span> <name>config-net-bts</name></span><br><span style="color: hsl(0, 100%, 40%);">- <command id='type (unknown|bs11|nanobts|rbs2000|nokia_site|sysmobts)'></span><br><span style="color: hsl(120, 100%, 40%);">+ <command id='type (unknown|bs11|nanobts|rbs2000|nokia_site|osmo-bts|osmo-bts-lc15|osmo-bts-octphy|osmo-bts-sysmo|osmo-bts-trx)'></span><br><span> <params></span><br><span> <param name='type' doc='BTS Vendor/Type' /></span><br><span> <param name='unknown' doc='Unknown BTS Type' /></span><br><span>@@ -3033,7 +3033,11 @@</span><br><span> <param name='nanobts' doc='ip.access nanoBTS or compatible' /></span><br><span> <param name='rbs2000' doc='Ericsson RBS2000 Series' /></span><br><span> <param name='nokia_site' doc='Nokia {Metro,Ultra,In}Site' /></span><br><span style="color: hsl(0, 100%, 40%);">- <param name='sysmobts' doc='sysmocom sysmoBTS' /></span><br><span style="color: hsl(120, 100%, 40%);">+ <param name='osmo-bts' doc='Osmocom family (generic profile)' /></span><br><span style="color: hsl(120, 100%, 40%);">+ <param name='osmo-bts-lc15' doc='Osmocom family (NuRAN LiteCell15 PHY)' /></span><br><span style="color: hsl(120, 100%, 40%);">+ <param name='osmo-bts-octphy' doc='Osmocom family (Octasic OCTSDR PHY)' /></span><br><span style="color: hsl(120, 100%, 40%);">+ <param name='osmo-bts-sysmo' doc='Osmocom family (Sysmocom sysmoBTS PHY)' /></span><br><span style="color: hsl(120, 100%, 40%);">+ <param name='osmo-bts-trx' doc='Osmocom family (OsmoTRX SDR PHY)' /></span><br><span> </params></span><br><span> </command></span><br><span> <command id='description .TEXT'></span><br><span>diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h</span><br><span>index b8945db..0de4423 100644</span><br><span>--- a/include/osmocom/bsc/bss.h</span><br><span>+++ b/include/osmocom/bsc/bss.h</span><br><span>@@ -16,5 +16,5 @@</span><br><span> extern int bts_model_rbs2k_init(void);</span><br><span> extern int bts_model_nanobts_init(void);</span><br><span> extern int bts_model_nokia_site_init(void);</span><br><span style="color: hsl(0, 100%, 40%);">-extern int bts_model_sysmobts_init(void);</span><br><span style="color: hsl(120, 100%, 40%);">+extern int osmo_bts_model_init(enum gsm_bts_type type);</span><br><span> #endif</span><br><span>diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h</span><br><span>index 1e7e88f..6f6c279 100644</span><br><span>--- a/include/osmocom/bsc/gsm_data.h</span><br><span>+++ b/include/osmocom/bsc/gsm_data.h</span><br><span>@@ -782,19 +782,14 @@</span><br><span> GSM_BTS_TYPE_NANOBTS,</span><br><span> GSM_BTS_TYPE_RBS2000,</span><br><span> GSM_BTS_TYPE_NOKIA_SITE,</span><br><span style="color: hsl(0, 100%, 40%);">- GSM_BTS_TYPE_OSMOBTS,</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_BTS_TYPE_OSMOBTS_GENERIC, /* osmo-bts-{virtual,omldummy} */</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_BTS_TYPE_OSMOBTS_LC15,</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_BTS_TYPE_OSMOBTS_OCTPHY,</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_BTS_TYPE_OSMOBTS_SYSMO,</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_BTS_TYPE_OSMOBTS_TRX,</span><br><span> _NUM_GSM_BTS_TYPE</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-enum gsm_bts_type_variant {</span><br><span style="color: hsl(0, 100%, 40%);">- BTS_UNKNOWN,</span><br><span style="color: hsl(0, 100%, 40%);">- BTS_OSMO_LITECELL15,</span><br><span style="color: hsl(0, 100%, 40%);">- BTS_OSMO_OCTPHY,</span><br><span style="color: hsl(0, 100%, 40%);">- BTS_OSMO_SYSMO,</span><br><span style="color: hsl(0, 100%, 40%);">- BTS_OSMO_TRX,</span><br><span style="color: hsl(0, 100%, 40%);">- _NUM_BTS_VARIANT</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Used by OML layer for BTS Attribute reporting */</span><br><span> enum bts_attribute {</span><br><span> BTS_TYPE_VARIANT,</span><br><span>@@ -808,7 +803,6 @@</span><br><span> struct llist_head list;</span><br><span> </span><br><span> enum gsm_bts_type type;</span><br><span style="color: hsl(0, 100%, 40%);">- enum gsm_bts_type_variant variant;</span><br><span> const char *name;</span><br><span> </span><br><span> bool started;</span><br><span>@@ -1024,7 +1018,6 @@</span><br><span> uint8_t bsic;</span><br><span> /* type of BTS */</span><br><span> enum gsm_bts_type type;</span><br><span style="color: hsl(0, 100%, 40%);">- enum gsm_bts_type_variant variant;</span><br><span> struct gsm_bts_model *model;</span><br><span> enum gsm_band band;</span><br><span> char version[MAX_VERSION_LENGTH];</span><br><span>@@ -1309,9 +1302,6 @@</span><br><span> enum bts_attribute str2btsattr(const char *s);</span><br><span> const char *btsatttr2str(enum bts_attribute v);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-enum gsm_bts_type_variant str2btsvariant(const char *arg);</span><br><span style="color: hsl(0, 100%, 40%);">-const char *btsvariant2str(enum gsm_bts_type_variant v);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> extern const struct value_string gsm_chreq_descs[];</span><br><span> extern const struct value_string gsm_pchant_names[];</span><br><span> extern const struct value_string gsm_pchant_descs[];</span><br><span>@@ -1726,12 +1716,31 @@</span><br><span> </span><br><span> extern void *tall_bsc_ctx;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static inline int is_osmo_bts(const struct gsm_bts *bts)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (bts->type) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_GENERIC:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_LC15:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_OCTPHY:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_SYSMO:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_TRX:</span><br><span style="color: hsl(120, 100%, 40%);">+ return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ default:</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* this actually refers to the IPA transport, not the BTS model */</span><br><span> static inline int is_ipaccess_bts(const struct gsm_bts *bts)</span><br><span> {</span><br><span> switch (bts->type) {</span><br><span> case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_GENERIC:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_LC15:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_OCTPHY:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_SYSMO:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_TRX:</span><br><span> return 1;</span><br><span> default:</span><br><span> break;</span><br><span>@@ -1742,7 +1751,7 @@</span><br><span> static inline int is_sysmobts_v2(const struct gsm_bts *bts)</span><br><span> {</span><br><span> switch (bts->type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_SYSMO:</span><br><span> return 1;</span><br><span> default:</span><br><span> break;</span><br><span>diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am</span><br><span>index 51e0e7f9..fe9eef1 100644</span><br><span>--- a/src/osmo-bsc/Makefile.am</span><br><span>+++ b/src/osmo-bsc/Makefile.am</span><br><span>@@ -49,7 +49,7 @@</span><br><span> bts_ipaccess_nanobts_omlattr.c \</span><br><span> bts_nokia_site.c \</span><br><span> bts_siemens_bs11.c \</span><br><span style="color: hsl(0, 100%, 40%);">- bts_sysmobts.c \</span><br><span style="color: hsl(120, 100%, 40%);">+ bts_osmobts.c \</span><br><span> bts_unknown.c \</span><br><span> chan_alloc.c \</span><br><span> codec_pref.c \</span><br><span>diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c</span><br><span>index 4ed0602..d1c4046 100644</span><br><span>--- a/src/osmo-bsc/abis_nm.c</span><br><span>+++ b/src/osmo-bsc/abis_nm.c</span><br><span>@@ -981,19 +981,15 @@</span><br><span> {</span><br><span> int rc;</span><br><span> struct e1inp_sign_link *sign_link = mb->dst;</span><br><span style="color: hsl(0, 100%, 40%);">- int bts_type = sign_link->trx->bts->type;</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gsm_bts *bts = sign_link->trx->bts;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- switch (bts_type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (is_ipaccess_bts(bts)) {</span><br><span> rc = abis_nm_rx_ipacc(mb);</span><br><span> abis_nm_queue_send_next(sign_link->trx->bts);</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span> LOGP(DNM, LOGL_ERROR, "don't know how to parse OML for this "</span><br><span style="color: hsl(0, 100%, 40%);">- "BTS type (%u)\n", bts_type);</span><br><span style="color: hsl(120, 100%, 40%);">+ "BTS type (%u)\n", bts->type); /* TODO: use btstype2str() */</span><br><span> rc = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span> }</span><br><span> </span><br><span> return rc;</span><br><span>@@ -1760,7 +1756,7 @@</span><br><span> struct abis_om_hdr *oh;</span><br><span> struct msgb *msg;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (bts->type != GSM_BTS_TYPE_OSMOBTS && bts->type != GSM_BTS_TYPE_NANOBTS) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!is_osmo_bts(bts) && bts->type != GSM_BTS_TYPE_NANOBTS) {</span><br><span> LOGPC(DNM, LOGL_NOTICE, "Getting attributes from BTS%d type %s is not supported.\n",</span><br><span> bts->nr, btstype2str(bts->type));</span><br><span> return -EINVAL;</span><br><span>@@ -1974,9 +1970,6 @@</span><br><span> }</span><br><span> *reason = "Unknown combination";</span><br><span> return -EINVAL;</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- /* no known restrictions */</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span> default:</span><br><span> /* unknown BTS type */</span><br><span> return 0;</span><br><span>diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c</span><br><span>index 4a1d314..c0311ff 100644</span><br><span>--- a/src/osmo-bsc/abis_rsl.c</span><br><span>+++ b/src/osmo-bsc/abis_rsl.c</span><br><span>@@ -313,7 +313,7 @@</span><br><span> </span><br><span> msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power);</span><br><span> /* indicate MS power control to be performed by BTS: */</span><br><span style="color: hsl(0, 100%, 40%);">- if (bts->type == GSM_BTS_TYPE_OSMOBTS)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (is_osmo_bts(bts))</span><br><span> msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM);</span><br><span> /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not</span><br><span> known if non-osmocom BTS models will support an empty IE, so let's</span><br><span>@@ -546,7 +546,7 @@</span><br><span> msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power);</span><br><span> msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta);</span><br><span> /* indicate MS power control to be performed by BTS: */</span><br><span style="color: hsl(0, 100%, 40%);">- if (bts->type == GSM_BTS_TYPE_OSMOBTS)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (is_osmo_bts(bts))</span><br><span> msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM);</span><br><span> /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not</span><br><span> known if non-osmocom BTS models will support an empty IE, so let's</span><br><span>diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c</span><br><span>index 80658ec..eb28e48 100644</span><br><span>--- a/src/osmo-bsc/bsc_vty.c</span><br><span>+++ b/src/osmo-bsc/bsc_vty.c</span><br><span>@@ -970,9 +970,14 @@</span><br><span> bts->early_classmark_allowed ? "allowed" : "forbidden", VTY_NEWLINE);</span><br><span> vty_out(vty, " early-classmark-sending-3g %s%s",</span><br><span> bts->early_classmark_allowed_3g ? "allowed" : "forbidden", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> switch (bts->type) {</span><br><span> case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_GENERIC:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_LC15:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_OCTPHY:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_SYSMO:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_TRX:</span><br><span> vty_out(vty, " ipa unit-id %u %u%s",</span><br><span> bts->ip_access.site_id, bts->ip_access.bts_id, VTY_NEWLINE);</span><br><span> if (bts->ip_access.rsl_ip) {</span><br><span>@@ -2099,6 +2104,24 @@</span><br><span> return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_DEPRECATED(cfg_bts_type_sysmo,</span><br><span style="color: hsl(120, 100%, 40%);">+ cfg_bts_type_sysmo_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "type sysmobts",</span><br><span style="color: hsl(120, 100%, 40%);">+ ".HIDDEN\n" "Obsolete\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_bts *bts = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+ int rc;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ vty_out(vty, "%% Command 'type sysmobts' is deprecated, use "</span><br><span style="color: hsl(120, 100%, 40%);">+ "'type osmo-bts-sysmo' instead%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ rc = gsm_set_bts_type(bts, GSM_BTS_TYPE_OSMOBTS_SYSMO);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (rc < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> DEFUN(cfg_bts_type,</span><br><span> cfg_bts_type_cmd,</span><br><span> "type TYPE", /* dynamically created */</span><br><span>@@ -2826,7 +2849,7 @@</span><br><span> {</span><br><span> struct gsm_bts *bts = vty->index;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (bts->type != GSM_BTS_TYPE_OSMOBTS) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!is_osmo_bts(bts)) {</span><br><span> vty_out(vty, "%% infinite radio link timeout not supported by this BTS%s", VTY_NEWLINE);</span><br><span> return CMD_WARNING;</span><br><span> }</span><br><span>@@ -5404,6 +5427,7 @@</span><br><span> install_element(GSMNET_NODE, &cfg_bts_cmd);</span><br><span> install_node(&bts_node, config_write_bts);</span><br><span> install_element(BTS_NODE, &cfg_bts_type_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+ install_element(BTS_NODE, &cfg_bts_type_sysmo_cmd);</span><br><span> install_element(BTS_NODE, &cfg_description_cmd);</span><br><span> install_element(BTS_NODE, &cfg_no_description_cmd);</span><br><span> install_element(BTS_NODE, &cfg_bts_band_cmd);</span><br><span>diff --git a/src/osmo-bsc/bts_init.c b/src/osmo-bsc/bts_init.c</span><br><span>index 18f1ed4..6c6a081 100644</span><br><span>--- a/src/osmo-bsc/bts_init.c</span><br><span>+++ b/src/osmo-bsc/bts_init.c</span><br><span>@@ -24,7 +24,14 @@</span><br><span> bts_model_rbs2k_init();</span><br><span> bts_model_nanobts_init();</span><br><span> bts_model_nokia_site_init();</span><br><span style="color: hsl(0, 100%, 40%);">- bts_model_sysmobts_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Osmocom family (see https://osmocom.org/projects/osmobts/wiki#Backends-Hardware-support) */</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_model_init(GSM_BTS_TYPE_OSMOBTS_GENERIC);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_model_init(GSM_BTS_TYPE_OSMOBTS_LC15);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_model_init(GSM_BTS_TYPE_OSMOBTS_OCTPHY);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_model_init(GSM_BTS_TYPE_OSMOBTS_SYSMO);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_model_init(GSM_BTS_TYPE_OSMOBTS_TRX);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Your new BTS here. */</span><br><span> return 0;</span><br><span> }</span><br><span>diff --git a/src/osmo-bsc/bts_osmobts.c b/src/osmo-bsc/bts_osmobts.c</span><br><span>new file mode 100644</span><br><span>index 0000000..5aaa1af</span><br><span>--- /dev/null</span><br><span>+++ b/src/osmo-bsc/bts_osmobts.c</span><br><span>@@ -0,0 +1,56 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* Osmocom family BTS model definition */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* (C) 2010-2012 by Harald Welte <laforge@gnumonks.org></span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * All Rights Reserved</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU Affero General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; either version 3 of the License, or</span><br><span style="color: hsl(120, 100%, 40%);">+ * (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU Affero General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * You should have received a copy of the GNU Affero General Public License</span><br><span style="color: hsl(120, 100%, 40%);">+ * along with this program. If not, see <http://www.gnu.org/licenses/>.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gsm/bts_features.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/gsm_data.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+extern struct gsm_bts_model bts_model_nanobts;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_bts_model_init(enum gsm_bts_type type)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_bts_model *model;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Allocate a new BTS model on heap */</span><br><span style="color: hsl(120, 100%, 40%);">+ model = talloc(tall_bsc_ctx, struct gsm_bts_model);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!model)</span><br><span style="color: hsl(120, 100%, 40%);">+ return -ENOMEM;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Inherit a new model from nanoBTS */</span><br><span style="color: hsl(120, 100%, 40%);">+ *model = bts_model_nanobts;</span><br><span style="color: hsl(120, 100%, 40%);">+ model->name = btstype2str(type);</span><br><span style="color: hsl(120, 100%, 40%);">+ model->type = type;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Unlike nanoBTS, osmo-bts supports SI2bis and SI2ter fine */</span><br><span style="color: hsl(120, 100%, 40%);">+ model->force_combined_si = false;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Initialize the vector of supported features */</span><br><span style="color: hsl(120, 100%, 40%);">+ memset(&model->_features_data[0], 0, sizeof(model->_features_data));</span><br><span style="color: hsl(120, 100%, 40%);">+ model->features = (struct bitvec) {</span><br><span style="color: hsl(120, 100%, 40%);">+ .data_len = sizeof(model->_features_data),</span><br><span style="color: hsl(120, 100%, 40%);">+ .data = &model->_features_data[0],</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* The following features are common to all osmo-bts-* models */</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_set_feature(&model->features, BTS_FEAT_GPRS);</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_bts_set_feature(&model->features, BTS_FEAT_EGPRS);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return gsm_bts_model_register(model);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c</span><br><span>deleted file mode 100644</span><br><span>index ad12733..0000000</span><br><span>--- a/src/osmo-bsc/bts_sysmobts.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,63 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* sysmocom sysmoBTS specific code */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* (C) 2010-2012 by Harald Welte <laforge@gnumonks.org></span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * All Rights Reserved</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(0, 100%, 40%);">- * it under the terms of the GNU Affero General Public License as published by</span><br><span style="color: hsl(0, 100%, 40%);">- * the Free Software Foundation; either version 3 of the License, or</span><br><span style="color: hsl(0, 100%, 40%);">- * (at your option) any later version.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(0, 100%, 40%);">- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(0, 100%, 40%);">- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><br><span style="color: hsl(0, 100%, 40%);">- * GNU Affero General Public License for more details.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * You should have received a copy of the GNU Affero General Public License</span><br><span style="color: hsl(0, 100%, 40%);">- * along with this program. If not, see <http://www.gnu.org/licenses/>.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <arpa/inet.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/tlv.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/gsm_data.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/signal.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/abis_nm.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/abis/e1_input.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/tlv.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/msgb.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/talloc.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/gsm_data.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/abis_nm.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/abis_rsl.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/bsc/debug.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/abis/subchan_demux.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/abis/ipaccess.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/logging.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-extern struct gsm_bts_model bts_model_nanobts;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct gsm_bts_model model_sysmobts;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int bts_model_sysmobts_init(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts = bts_model_nanobts;</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts.name = "sysmobts";</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts.type = GSM_BTS_TYPE_OSMOBTS;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Unlike nanoBTS, sysmoBTS supports SI2bis and SI2ter fine */</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts.force_combined_si = false;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts.features.data = &model_sysmobts._features_data[0];</span><br><span style="color: hsl(0, 100%, 40%);">- model_sysmobts.features.data_len =</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(model_sysmobts._features_data);</span><br><span style="color: hsl(0, 100%, 40%);">- memset(model_sysmobts.features.data, 0, model_sysmobts.features.data_len);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS);</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return gsm_bts_model_register(&model_sysmobts);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/src/osmo-bsc/e1_config.c b/src/osmo-bsc/e1_config.c</span><br><span>index 4389f66..8e90a54 100644</span><br><span>--- a/src/osmo-bsc/e1_config.c</span><br><span>+++ b/src/osmo-bsc/e1_config.c</span><br><span>@@ -174,8 +174,7 @@</span><br><span> bts->model->e1line_bind_ops(line);</span><br><span> </span><br><span> /* skip signal link initialization, this is done later for these BTS. */</span><br><span style="color: hsl(0, 100%, 40%);">- if (bts->type == GSM_BTS_TYPE_NANOBTS ||</span><br><span style="color: hsl(0, 100%, 40%);">- bts->type == GSM_BTS_TYPE_OSMOBTS)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (bts->type == GSM_BTS_TYPE_NANOBTS || is_osmo_bts(bts))</span><br><span> return e1inp_line_update(line);</span><br><span> </span><br><span> /* OML link */</span><br><span>diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c</span><br><span>index 46e26ac..08e8ccb 100644</span><br><span>--- a/src/osmo-bsc/gsm_data.c</span><br><span>+++ b/src/osmo-bsc/gsm_data.c</span><br><span>@@ -85,7 +85,11 @@</span><br><span> { GSM_BTS_TYPE_NANOBTS, "ip.access nanoBTS or compatible" },</span><br><span> { GSM_BTS_TYPE_RBS2000, "Ericsson RBS2000 Series" },</span><br><span> { GSM_BTS_TYPE_NOKIA_SITE, "Nokia {Metro,Ultra,In}Site" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GSM_BTS_TYPE_OSMOBTS, "sysmocom sysmoBTS" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_GENERIC, "Osmocom family (generic profile)" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_LC15, "Osmocom family (NuRAN LiteCell15 PHY)" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_OCTPHY, "Osmocom family (Octasic OCTSDR PHY)" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_SYSMO, "Osmocom family (Sysmocom sysmoBTS PHY)" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_TRX, "Osmocom family (OsmoTRX SDR PHY)" },</span><br><span> { 0, NULL }</span><br><span> };</span><br><span> </span><br><span>@@ -184,7 +188,11 @@</span><br><span> </span><br><span> switch (bts->type) {</span><br><span> case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_GENERIC:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_LC15:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_OCTPHY:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_SYSMO:</span><br><span style="color: hsl(120, 100%, 40%);">+ case GSM_BTS_TYPE_OSMOBTS_TRX:</span><br><span> /* Set the default OML Stream ID to 0xff */</span><br><span> bts->oml_tei = 0xff;</span><br><span> bts->c0->nominal_power = 23;</span><br><span>@@ -413,32 +421,17 @@</span><br><span> return get_value_string(bts_attribute_names, v);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-const struct value_string osmo_bts_variant_names[_NUM_BTS_VARIANT + 1] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { BTS_UNKNOWN, "unknown" },</span><br><span style="color: hsl(0, 100%, 40%);">- { BTS_OSMO_LITECELL15, "osmo-bts-lc15" },</span><br><span style="color: hsl(0, 100%, 40%);">- { BTS_OSMO_OCTPHY, "osmo-bts-octphy" },</span><br><span style="color: hsl(0, 100%, 40%);">- { BTS_OSMO_SYSMO, "osmo-bts-sysmo" },</span><br><span style="color: hsl(0, 100%, 40%);">- { BTS_OSMO_TRX, "omso-bts-trx" },</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, NULL }</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-enum gsm_bts_type_variant str2btsvariant(const char *arg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- return get_string_value(osmo_bts_variant_names, arg);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-const char *btsvariant2str(enum gsm_bts_type_variant v)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- return get_value_string(osmo_bts_variant_names, v);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> const struct value_string bts_type_names[_NUM_GSM_BTS_TYPE + 1] = {</span><br><span> { GSM_BTS_TYPE_UNKNOWN, "unknown" },</span><br><span> { GSM_BTS_TYPE_BS11, "bs11" },</span><br><span> { GSM_BTS_TYPE_NANOBTS, "nanobts" },</span><br><span> { GSM_BTS_TYPE_RBS2000, "rbs2000" },</span><br><span> { GSM_BTS_TYPE_NOKIA_SITE, "nokia_site" },</span><br><span style="color: hsl(0, 100%, 40%);">- { GSM_BTS_TYPE_OSMOBTS, "sysmobts" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_GENERIC, "osmo-bts" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_LC15, "osmo-bts-lc15" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_OCTPHY, "osmo-bts-octphy" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_SYSMO, "osmo-bts-sysmo" },</span><br><span style="color: hsl(120, 100%, 40%);">+ { GSM_BTS_TYPE_OSMOBTS_TRX, "osmo-bts-trx" },</span><br><span> { 0, NULL }</span><br><span> };</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c</span><br><span>index d5be3f2..4ee73fa 100644</span><br><span>--- a/src/osmo-bsc/system_information.c</span><br><span>+++ b/src/osmo-bsc/system_information.c</span><br><span>@@ -995,14 +995,9 @@</span><br><span> memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);</span><br><span> </span><br><span> /* ip.access nanoBTS needs l2_plen!! */</span><br><span style="color: hsl(0, 100%, 40%);">- switch (bts->type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (bts->type == GSM_BTS_TYPE_NANOBTS || is_osmo_bts(bts)) {</span><br><span> *output++ = GSM48_LEN2PLEN(l2_plen);</span><br><span> l2_plen++;</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span> }</span><br><span> </span><br><span> si5 = (struct gsm48_system_information_type_5 *) output;</span><br><span>@@ -1031,14 +1026,9 @@</span><br><span> memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);</span><br><span> </span><br><span> /* ip.access nanoBTS needs l2_plen!! */</span><br><span style="color: hsl(0, 100%, 40%);">- switch (bts->type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (bts->type == GSM_BTS_TYPE_NANOBTS || is_osmo_bts(bts)) {</span><br><span> *output++ = GSM48_LEN2PLEN(l2_plen);</span><br><span> l2_plen++;</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span> }</span><br><span> </span><br><span> si5b = (struct gsm48_system_information_type_5bis *) output;</span><br><span>@@ -1075,14 +1065,9 @@</span><br><span> memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);</span><br><span> </span><br><span> /* ip.access nanoBTS needs l2_plen!! */</span><br><span style="color: hsl(0, 100%, 40%);">- switch (bts->type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (bts->type == GSM_BTS_TYPE_NANOBTS || is_osmo_bts(bts)) {</span><br><span> *output++ = GSM48_LEN2PLEN(l2_plen);</span><br><span> l2_plen++;</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span> }</span><br><span> </span><br><span> si5t = (struct gsm48_system_information_type_5ter *) output;</span><br><span>@@ -1113,14 +1098,9 @@</span><br><span> memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);</span><br><span> </span><br><span> /* ip.access nanoBTS needs l2_plen!! */</span><br><span style="color: hsl(0, 100%, 40%);">- switch (bts->type) {</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_NANOBTS:</span><br><span style="color: hsl(0, 100%, 40%);">- case GSM_BTS_TYPE_OSMOBTS:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (bts->type == GSM_BTS_TYPE_NANOBTS || is_osmo_bts(bts)) {</span><br><span> *output++ = GSM48_LEN2PLEN(l2_plen);</span><br><span> l2_plen++;</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span> }</span><br><span> </span><br><span> si6 = (struct gsm48_system_information_type_6 *) output;</span><br><span>diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty</span><br><span>index ce414e1..250da89 100644</span><br><span>--- a/tests/neighbor_ident.vty</span><br><span>+++ b/tests/neighbor_ident.vty</span><br><span>@@ -15,7 +15,7 @@</span><br><span> OsmoBSC(config)# network</span><br><span> </span><br><span> OsmoBSC(config-net)# bts 0</span><br><span style="color: hsl(0, 100%, 40%);">-OsmoBSC(config-net-bts)# type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# type osmo-bts</span><br><span> OsmoBSC(config-net-bts)# base_station_id_code 10</span><br><span> OsmoBSC(config-net-bts)# location_area_code 20</span><br><span> OsmoBSC(config-net-bts)# cell_identity 30</span><br><span>@@ -25,7 +25,7 @@</span><br><span> OsmoBSC(config-net-bts)# exit</span><br><span> </span><br><span> OsmoBSC(config-net)# bts 1</span><br><span style="color: hsl(0, 100%, 40%);">-OsmoBSC(config-net-bts)# type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# type osmo-bts</span><br><span> OsmoBSC(config-net-bts)# base_station_id_code 11</span><br><span> OsmoBSC(config-net-bts)# location_area_code 21</span><br><span> OsmoBSC(config-net-bts)# cell_identity 31</span><br><span>@@ -35,7 +35,7 @@</span><br><span> OsmoBSC(config-net-bts)# exit</span><br><span> </span><br><span> OsmoBSC(config-net)# bts 2</span><br><span style="color: hsl(0, 100%, 40%);">-OsmoBSC(config-net-bts)# type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+OsmoBSC(config-net-bts)# type osmo-bts</span><br><span> OsmoBSC(config-net-bts)# base_station_id_code 12</span><br><span> OsmoBSC(config-net-bts)# location_area_code 22</span><br><span> OsmoBSC(config-net-bts)# cell_identity 65535</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18616">change 18616</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bsc/+/18616"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I00a815cfa6daab126742d27843e700c07c1db183 </div>
<div style="display:none"> Gerrit-Change-Number: 18616 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>