Projects
osmocom:master
osmo-bts
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 128
View file
osmo-bts.spec
Changed
@@ -14,13 +14,13 @@ Name: osmo-bts Requires: osmocom-master -Version: 1.6.0.157.1f5f +Version: 1.6.0.158.f98a5 Release: 0 Summary: Osmocom BTS-Side code (Abis, scheduling) License: AGPL-3.0-or-later AND GPL-2.0-only Group: Productivity/Telephony/Servers URL: https://osmocom.org/projects/osmobts -Source: osmo-bts_1.6.0.157.1f5f.tar.xz +Source: osmo-bts_1.6.0.158.f98a5.tar.xz Source1: rpmlintrc BuildRequires: autoconf BuildRequires: automake
View file
commit_1f5fdf8c8d7eb8b7ae33f67342803f3a0911ad18.txt
Deleted
View file
commit_f98a55b71324869096846022fa40daec4e616bdc.txt
Added
View file
osmo-bts_1.6.0.157.1f5f.dsc
Deleted
@@ -1,24 +0,0 @@ -Format: 3.0 (native) -Source: osmo-bts -Binary: osmo-bts, osmo-bts-trx, osmo-bts-trx-dbg, osmo-bts-virtual, osmo-bts-virtual-dbg, osmo-bts-doc -Architecture: any all -Version: 1.6.0.157.1f5f -Maintainer: Osmocom team <openbsc@lists.osmocom.org> -Homepage: https://projects.osmocom.org/projects/osmobts -Standards-Version: 3.9.8 -Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-bts -Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-bts -Build-Depends: debhelper (>= 10), pkg-config, dh-autoreconf, autotools-dev, libosmocore-dev (>= 1.8.0), libosmo-abis-dev (>= 1.4.0), libosmo-netif-dev (>= 1.3.0), libgps-dev, txt2man, osmo-gsm-manuals-dev (>= 1.4.0) -Package-List: - osmo-bts deb net optional arch=any - osmo-bts-doc deb doc optional arch=all - osmo-bts-trx deb net optional arch=any - osmo-bts-trx-dbg deb debug extra arch=any - osmo-bts-virtual deb net optional arch=any - osmo-bts-virtual-dbg deb debug extra arch=any -Checksums-Sha1: - 0e7c26e79c2b035f54b6831ff17362c2136f1d21 474804 osmo-bts_1.6.0.157.1f5f.tar.xz -Checksums-Sha256: - 0073ee0bb8b36fa0673c061b52841f1de05b4fdcc441d7edc4e854a8e3c80d44 474804 osmo-bts_1.6.0.157.1f5f.tar.xz -Files: - 8394bb90e92547829054abe47b6b1999 474804 osmo-bts_1.6.0.157.1f5f.tar.xz
View file
osmo-bts_1.6.0.158.f98a5.dsc
Added
@@ -0,0 +1,24 @@ +Format: 3.0 (native) +Source: osmo-bts +Binary: osmo-bts, osmo-bts-trx, osmo-bts-trx-dbg, osmo-bts-virtual, osmo-bts-virtual-dbg, osmo-bts-doc +Architecture: any all +Version: 1.6.0.158.f98a5 +Maintainer: Osmocom team <openbsc@lists.osmocom.org> +Homepage: https://projects.osmocom.org/projects/osmobts +Standards-Version: 3.9.8 +Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-bts +Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-bts +Build-Depends: debhelper (>= 10), pkg-config, dh-autoreconf, autotools-dev, libosmocore-dev (>= 1.8.0), libosmo-abis-dev (>= 1.4.0), libosmo-netif-dev (>= 1.3.0), libgps-dev, txt2man, osmo-gsm-manuals-dev (>= 1.4.0) +Package-List: + osmo-bts deb net optional arch=any + osmo-bts-doc deb doc optional arch=all + osmo-bts-trx deb net optional arch=any + osmo-bts-trx-dbg deb debug extra arch=any + osmo-bts-virtual deb net optional arch=any + osmo-bts-virtual-dbg deb debug extra arch=any +Checksums-Sha1: + 75e3ea74b9bcefb8bb5d19fb2aea97df335f91af 474640 osmo-bts_1.6.0.158.f98a5.tar.xz +Checksums-Sha256: + 184f0f303ad30e2fae83d45a1cc3d1ab94c05d07774c928740fe5c50f8e973a7 474640 osmo-bts_1.6.0.158.f98a5.tar.xz +Files: + 02644b8901b4b46b817b4a388a91a0ca 474640 osmo-bts_1.6.0.158.f98a5.tar.xz
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/.tarball-version -> osmo-bts_1.6.0.158.f98a5.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -1.6.0.157-1f5f +1.6.0.158-f98a5
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/debian/changelog -> osmo-bts_1.6.0.158.f98a5.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmo-bts (1.6.0.157.1f5f) unstable; urgency=medium +osmo-bts (1.6.0.158.f98a5) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Thu, 06 Jul 2023 11:36:32 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Mon, 10 Jul 2023 12:11:50 +0000 osmo-bts (1.6.0) unstable; urgency=medium
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/include/osmo-bts/paging.h -> osmo-bts_1.6.0.158.f98a5.tar.xz/include/osmo-bts/paging.h
Changed
@@ -37,7 +37,7 @@ /* Add a ready formatted MAC block message to the paging queue, this can be an IMMEDIATE ASSIGNMENT, or a * PAGING COMMAND (from the PCU) */ -int paging_add_macblock(struct paging_state *ps, const char *imsi, bool confirm, const uint8_t *macblock); +int paging_add_macblock(struct paging_state *ps, uint32_t tlli, const char *imsi, bool confirm, const uint8_t *macblock); /* generate paging message for given gsm time */ int paging_gen_msg(struct paging_state *ps, uint8_t *out_buf, struct gsm_time *gt,
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/include/osmo-bts/pcu_if.h -> osmo-bts_1.6.0.158.f98a5.tar.xz/include/osmo-bts/pcu_if.h
Changed
@@ -23,7 +23,7 @@ int pcu_tx_time_ind(uint32_t fn); int pcu_tx_interf_ind(const struct gsm_bts_trx *trx, uint32_t fn); int pcu_tx_pag_req(const uint8_t *identity_lv, uint8_t chan_needed); -int pcu_tx_pch_data_cnf(uint32_t fn, uint8_t *data, uint8_t len); +int pcu_tx_pch_data_cnf(uint32_t fn, uint32_t tlli); int pcu_tx_susp_req(struct gsm_lchan *lchan, uint32_t tlli, const uint8_t *ra_id, uint8_t cause); int pcu_sock_send(struct msgb *msg);
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/include/osmo-bts/pcuif_proto.h -> osmo-bts_1.6.0.158.f98a5.tar.xz/include/osmo-bts/pcuif_proto.h
Changed
@@ -3,10 +3,11 @@ #include <osmocom/gsm/l1sap.h> #include <arpa/inet.h> +#include <osmocom/gsm/protocol/gsm_23_003.h> #define PCU_SOCK_DEFAULT "/tmp/pcu_bts" -#define PCU_IF_VERSION 0x0a +#define PCU_IF_VERSION 0x0b #define TXT_MAX_LEN 128 /* msg_type */ @@ -34,7 +35,7 @@ #define PCU_IF_SAPI_PDTCH 0x05 /* packet data/control/ccch block */ #define PCU_IF_SAPI_PRACH 0x06 /* packet random access channel */ #define PCU_IF_SAPI_PTCCH 0x07 /* packet TA control channel */ -#define PCU_IF_SAPI_AGCH_DT 0x08 /* assignment on AGCH but with additional TLLI */ +#define PCU_IF_SAPI_PCH_DT 0x08 /* assignment on PCH (confirmed using TLLI) */ /* flags */ #define PCU_IF_FLAG_ACTIVE (1 << 0)/* BTS is active */ @@ -229,6 +230,17 @@ uint8_t data0; } __attribute__ ((packed)); +/* Struct to send a (confirmed) IMMEDIATE ASSIGNMENT message via PCH. The struct is sent as a data request + * (data_req) under SAPI PCU_IF_SAPI_PCH_DT. */ +struct gsm_pcu_if_pch_dt { + /* TLLI as reference for confirmation */ + uint32_t tlli; + /* IMSI (to derive paging group) */ + char imsiOSMO_IMSI_BUF_SIZE; + /* GSM mac-block (with immediate assignment message) */ + uint8_t dataGSM_MACBLOCK_LEN; +} __attribute__((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/src/common/paging.c -> osmo-bts_1.6.0.158.f98a5.tar.xz/src/common/paging.c
Changed
@@ -64,6 +64,7 @@ struct { uint8_t msgGSM_MACBLOCK_LEN; bool confirm; + uint32_t tlli; /* used as identifier for confirmation */ } macblock; } u; }; @@ -270,7 +271,7 @@ /* Add a ready formatted MAC block message to the paging queue, this can be an IMMEDIATE ASSIGNMENT, or a * PAGING COMMAND (from the PCU) */ -int paging_add_macblock(struct paging_state *ps, const char *imsi, bool confirm, const uint8_t *macblock) +int paging_add_macblock(struct paging_state *ps, uint32_t tlli, const char *imsi, bool confirm, const uint8_t *macblock) { struct llist_head *group_q; struct paging_record *pr; @@ -308,6 +309,7 @@ paging_group); memcpy(pr->u.macblock.msg, macblock, GSM_MACBLOCK_LEN); pr->u.macblock.confirm = confirm; + pr->u.macblock.tlli = tlli; /* enqueue the new message to the HEAD of the queue */ llist_add(&pr->list, group_q); @@ -627,7 +629,7 @@ num_imsi++; } - /* if we have a MAC block (from the PCU), we send a conformation back */ + /* Handle MAC block (from the PCU) */ if (macblock) { /* re-add normal paging records */ for (i = 0; i < num_pr; i++) @@ -636,10 +638,9 @@ /* get MAC block message and free record */ memcpy(out_buf, prnum_pr->u.macblock.msg, GSM_MACBLOCK_LEN); - if (prnum_pr->u.macblock.confirm) { - pcu_tx_pch_data_cnf(gt->fn, prnum_pr->u.macblock.msg, - GSM_MACBLOCK_LEN); - } + /* send a confirmation back (if required) */ + if (prnum_pr->u.macblock.confirm) + pcu_tx_pch_data_cnf(gt->fn, prnum_pr->u.macblock.tlli); talloc_free(prnum_pr); return GSM_MACBLOCK_LEN; }
View file
osmo-bts_1.6.0.157.1f5f.tar.xz/src/common/pcu_sock.c -> osmo-bts_1.6.0.158.f98a5.tar.xz/src/common/pcu_sock.c
Changed
@@ -59,6 +59,7 @@ PCU_IF_SAPI_PDTCH = "PDTCH", PCU_IF_SAPI_PRACH = "PRACH", PCU_IF_SAPI_PTCCH = "PTCCH", + PCU_IF_SAPI_PCH_DT = "PCH_DT", }; /* @@ -617,28 +618,26 @@ return pcu_sock_send(msg); } -int pcu_tx_pch_data_cnf(uint32_t fn, uint8_t *data, uint8_t len) +int pcu_tx_pch_data_cnf(uint32_t fn, uint32_t tlli) { struct gsm_bts *bts; struct msgb *msg; struct gsm_pcu_if *pcu_prim; - struct gsm_pcu_if_data *data_cnf; /* FIXME: allow multiple BTS */ bts = llist_entry(g_bts_sm->bts_list.next, struct gsm_bts, list); LOGP(DPCU, LOGL_DEBUG, "Sending PCH confirm\n"); - msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_CNF, bts->nr); + msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_CNF_DT, bts->nr); if (!msg) return -ENOMEM; pcu_prim = (struct gsm_pcu_if *) msg->data; - data_cnf = &pcu_prim->u.data_cnf; - - data_cnf->sapi = PCU_IF_SAPI_PCH; - data_cnf->fn = fn; - memcpy(data_cnf->data, data, len); - data_cnf->len = len; + pcu_prim->u.data_cnf_dt = (struct gsm_pcu_if_data_cnf_dt) { + .sapi = PCU_IF_SAPI_PCH_DT, + .tlli = tlli, + .fn = fn, + }; return pcu_sock_send(msg); } @@ -675,21 +674,23 @@ osmo_hexdump(data_req->data, data_req->len)); switch (data_req->sapi) { - case PCU_IF_SAPI_PCH: + case PCU_IF_SAPI_PCH_DT: { + const struct gsm_pcu_if_pch_dt *gsm_pcu_if_pch_dt; const struct gsm48_imm_ass *gsm48_imm_ass; bool confirm; - char imsi4; - OSMO_STRLCPY_ARRAY(imsi, (char *)data_req->data); - if (data_req->len-3 != GSM_MACBLOCK_LEN) { - LOGP(DPCU, LOGL_ERROR, "MAC block with invalid length %d (expecting GSM_MACBLOCK_LEN = %d)\n", - data_req->len-3, GSM_MACBLOCK_LEN); - rc = -ENOMEM; + + if (OSMO_UNLIKELY(data_req->len != sizeof(*gsm_pcu_if_pch_dt))) { + LOGP(DPCU, LOGL_ERROR, "Rx malformed DATA.req for PCH\n"); + rc = -EINVAL; break; } - gsm48_imm_ass = (struct gsm48_imm_ass *)(data_req->data + 3); + + gsm_pcu_if_pch_dt = (struct gsm_pcu_if_pch_dt *)data_req->data; + gsm48_imm_ass = (struct gsm48_imm_ass *)gsm_pcu_if_pch_dt->data; confirm = (gsm48_imm_ass->msg_type == GSM48_MT_RR_IMM_ASS); - paging_add_macblock(bts->paging_state, imsi, confirm, data_req->data + 3); + rc = paging_add_macblock(bts->paging_state, gsm_pcu_if_pch_dt->tlli, + gsm_pcu_if_pch_dt->imsi, confirm, gsm_pcu_if_pch_dt->data); break; } case PCU_IF_SAPI_AGCH:
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
.