Projects
osmocom:latest
osmo-bsc
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 14
View file
osmo-bsc_1.13.1.dsc -> osmo-bsc_1.13.2.dsc
Changed
@@ -2,7 +2,7 @@ Source: osmo-bsc Binary: osmo-bsc, osmo-bsc-dbg, abisip-find, osmo-bsc-ipaccess-utils, osmo-bsc-bs11-utils, osmo-bsc-meas-utils, osmo-bsc-doc Architecture: any all -Version: 1.13.1 +Version: 1.13.2 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: https://projects.osmocom.org/projects/osmo-bsc Standards-Version: 3.9.8 @@ -18,8 +18,8 @@ osmo-bsc-ipaccess-utils deb net extra arch=any osmo-bsc-meas-utils deb net extra arch=any Checksums-Sha1: - e48e3be0a77f576aa2b1ce8784c42378f3f4fe9f 630740 osmo-bsc_1.13.1.tar.xz + 5a7db0f9ecd15b09afa08c269299ef315b554f2d 631012 osmo-bsc_1.13.2.tar.xz Checksums-Sha256: - d1cb6d2de07ed5005b3ffda204eb21432ca354e4f01953510290cfa82a805825 630740 osmo-bsc_1.13.1.tar.xz + 2d82796403213086f55de96aea952b77f6dd1c7e8865d8e52729a8db483e19fd 631012 osmo-bsc_1.13.2.tar.xz Files: - e964ff2e0029667808dad8fdde9345ea 630740 osmo-bsc_1.13.1.tar.xz + 09bf0d392731aa91e4c340be96cb9510 631012 osmo-bsc_1.13.2.tar.xz
View file
osmo-bsc_1.13.1.tar.xz/.tarball-version -> osmo-bsc_1.13.2.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -1.13.1 +1.13.2
View file
osmo-bsc_1.13.1.tar.xz/debian/changelog -> osmo-bsc_1.13.2.tar.xz/debian/changelog
Changed
@@ -1,3 +1,13 @@ +osmo-bsc (1.13.2) unstable; urgency=medium + + Keith Whyte + * Fix missing LAC/CI hashtable update upon CTRL SET + + Pau Espin Pedrol + * Fix wrong list entry derreference during bts_depend_find_entry() + + -- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 02 Sep 2025 15:54:44 +0200 + osmo-bsc (1.13.1) unstable; urgency=medium * Fix building for debian 13 armv7l
View file
osmo-bsc_1.13.1.tar.xz/include/osmocom/bsc/bts.h -> osmo-bsc_1.13.2.tar.xz/include/osmocom/bsc/bts.h
Changed
@@ -825,6 +825,9 @@ int gsm_set_bts_model(struct gsm_bts *bts, struct gsm_bts_model *model); int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type); +void gsm_bts_set_lac(struct gsm_bts *bts, uint16_t lac); +void gsm_bts_set_ci(struct gsm_bts *bts, uint16_t ci); + struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode);
View file
osmo-bsc_1.13.1.tar.xz/src/osmo-bsc/bts.c -> osmo-bsc_1.13.2.tar.xz/src/osmo-bsc/bts.c
Changed
@@ -758,6 +758,30 @@ return 0; } +void gsm_bts_set_lac(struct gsm_bts *bts, uint16_t lac) +{ + bts->location_area_code = lac; + + hash_del(&bts->node_by_lac); + hash_del(&bts->node_by_lac_ci); + hash_add(bts->network->bts_by_lac, &bts->node_by_lac, bts->location_area_code); + hash_add(bts->network->bts_by_lac_ci, &bts->node_by_lac_ci, + LAC_CI_HASHTABLE_KEY(bts->location_area_code, bts->cell_identity)); +} + +void gsm_bts_set_ci(struct gsm_bts *bts, uint16_t ci) +{ + bts->cell_identity = ci; + + hash_del(&bts->node_by_ci); + hash_add(bts->network->bts_by_ci, &bts->node_by_ci, bts->cell_identity); + if (bts->location_area_code != GSM_LAC_RESERVED_DETACHED) { + hash_del(&bts->node_by_lac_ci); + hash_add(bts->network->bts_by_lac_ci, &bts->node_by_lac_ci, + LAC_CI_HASHTABLE_KEY(bts->location_area_code, bts->cell_identity)); + } +} + int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode) { if (mode != BTS_GPRS_NONE && @@ -908,7 +932,7 @@ static struct bts_depends_on_entry *bts_depend_find_entry(const struct gsm_bts *bts, gsm_bts_nr_t dep) { struct bts_depends_on_entry *entry; - llist_for_each_entry(entry, &bts->trx_list, list) { + llist_for_each_entry(entry, &bts->depends_on, list) { if (entry->bts_nr == dep) return entry; }
View file
osmo-bsc_1.13.1.tar.xz/src/osmo-bsc/bts_ctrl.c -> osmo-bsc_1.13.2.tar.xz/src/osmo-bsc/bts_ctrl.c
Changed
@@ -21,6 +21,7 @@ #include <errno.h> #include <time.h> +#include <inttypes.h> #include <osmocom/ctrl/control_cmd.h> @@ -244,9 +245,76 @@ return 1; } +static int get_bts_lac(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + cmd->reply = talloc_asprintf(cmd, "%" PRIu16, bts->location_area_code); + if (!cmd->reply) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + return CTRL_CMD_REPLY; +} + +static int set_bts_lac(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + int lac; + + osmo_str_to_int(&lac, cmd->value, 0, 0, 0xffff); + gsm_bts_set_lac(bts, lac); + return get_bts_lac(cmd, data); +} + +static int verify_bts_lac(struct ctrl_cmd *cmd, const char *value, void *data) +{ + int lac; + + if (osmo_str_to_int(&lac, cmd->value, 0, 0, 0xffff) < 0) { + cmd->reply = "Input not within the range"; + return -1; + } + if (lac == GSM_LAC_RESERVED_DETACHED || lac == GSM_LAC_RESERVED_ALL_BTS) { + cmd->reply = talloc_asprintf(cmd, "LAC %d is reserved by GSM 04.08", lac); + return -1; + } + return 0; +} + +static int get_bts_ci(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + cmd->reply = talloc_asprintf(cmd, "%" PRIu16, bts->cell_identity); + if (!cmd->reply) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + return CTRL_CMD_REPLY; +} + +static int set_bts_ci(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + int ci; + + osmo_str_to_int(&ci, cmd->value, 0, 0, 0xffff); + gsm_bts_set_ci(bts, ci); + return get_bts_ci(cmd, data); +} + +static int verify_bts_ci(struct ctrl_cmd *cmd, const char *value, void *data) +{ + int ci; + + if (osmo_str_to_int(&ci, cmd->value, 0, 0, 0xffff) < 0) { + cmd->reply = "Input not within the range"; + return -1; + } + return 0; +} /* BTS related commands below */ -CTRL_CMD_DEFINE_RANGE(bts_lac, "location-area-code", struct gsm_bts, location_area_code, 0, 65535); -CTRL_CMD_DEFINE_RANGE(bts_ci, "cell-identity", struct gsm_bts, cell_identity, 0, 65535); +CTRL_CMD_DEFINE(bts_lac, "location-area-code"); +CTRL_CMD_DEFINE(bts_ci, "cell-identity"); CTRL_CMD_DEFINE_RANGE(bts_bsic, "bsic", struct gsm_bts, bsic, 0, 63); CTRL_CMD_DEFINE_RANGE(bts_rach_max_delay, "rach-max-delay", struct gsm_bts, rach_max_delay, 1, 127); CTRL_CMD_DEFINE_RANGE(bts_rach_expiry_timeout, "rach-expiry-timeout", struct gsm_bts, rach_expiry_timeout, 4, 64);
View file
osmo-bsc_1.13.1.tar.xz/src/osmo-bsc/bts_vty.c -> osmo-bsc_1.13.2.tar.xz/src/osmo-bsc/bts_vty.c
Changed
@@ -274,15 +274,8 @@ ci, VTY_NEWLINE); return CMD_WARNING; } - bts->cell_identity = ci; - hash_del(&bts->node_by_ci); - hash_add(bts->network->bts_by_ci, &bts->node_by_ci, bts->cell_identity); - if (bts->location_area_code != GSM_LAC_RESERVED_DETACHED) { - hash_del(&bts->node_by_lac_ci); - hash_add(bts->network->bts_by_lac_ci, &bts->node_by_lac_ci, - LAC_CI_HASHTABLE_KEY(bts->location_area_code, bts->cell_identity)); - } + gsm_bts_set_ci(bts, ci); return CMD_SUCCESS; } @@ -305,13 +298,7 @@ return CMD_WARNING; } - bts->location_area_code = lac; - hash_del(&bts->node_by_lac); - hash_del(&bts->node_by_lac_ci); - hash_add(bts->network->bts_by_lac, &bts->node_by_lac, bts->location_area_code); - hash_add(bts->network->bts_by_lac_ci, &bts->node_by_lac_ci, - LAC_CI_HASHTABLE_KEY(bts->location_area_code, bts->cell_identity)); - + gsm_bts_set_lac(bts, lac); return CMD_SUCCESS; }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.