Projects
osmocom:master
osmo-pcu
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 59
View file
osmo-pcu.spec
Changed
@@ -14,13 +14,13 @@ Name: osmo-pcu Requires: osmocom-master -Version: 1.2.0.13.c82c9 +Version: 1.2.0.14.2353 Release: 0 Summary: Osmocom GPRS Packet Control Unit (PCU) License: GPL-2.0-only Group: Productivity/Telephony/Servers URL: https://osmocom.org/projects/osmopcu -Source: osmo-pcu_1.2.0.13.c82c9.tar.xz +Source: osmo-pcu_1.2.0.14.2353.tar.xz Source1: rpmlintrc BuildRequires: autoconf BuildRequires: automake
View file
commit_2353ed403fe7bc2b3796c43b953163175189d015.txt
Added
View file
commit_c82c948e99d379220a2179b29a26f67473c363b4.txt
Deleted
View file
osmo-pcu_1.2.0.13.c82c9.dsc -> osmo-pcu_1.2.0.14.2353.dsc
Changed
@@ -2,7 +2,7 @@ Source: osmo-pcu Binary: osmo-pcu, osmo-pcu-dbg, osmo-pcu-doc Architecture: any all -Version: 1.2.0.13.c82c9 +Version: 1.2.0.14.2353 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: http://osmocom.org/projects/osmopcu Standards-Version: 3.9.8 @@ -14,8 +14,8 @@ osmo-pcu-dbg deb debug extra arch=any osmo-pcu-doc deb doc optional arch=all Checksums-Sha1: - 031470d6681154570361a66ec072a67dfa03042b 409276 osmo-pcu_1.2.0.13.c82c9.tar.xz + 3af8b78a07fcfb392a67cef370a39109e7f07282 409720 osmo-pcu_1.2.0.14.2353.tar.xz Checksums-Sha256: - 2d67edc34b20fabd3ff39ac39316c16f176999de716b1eb3d5390356f3157c88 409276 osmo-pcu_1.2.0.13.c82c9.tar.xz + ec66932b14845066a33d63ff1f013eebe7f832bfcdbbe93c6bfe7e5a4b48361a 409720 osmo-pcu_1.2.0.14.2353.tar.xz Files: - fd1fa75716fe32d1ede45b524b6aa8a9 409276 osmo-pcu_1.2.0.13.c82c9.tar.xz + 0e96608f182279444b5ad62c6eeb6118 409720 osmo-pcu_1.2.0.14.2353.tar.xz
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/.tarball-version -> osmo-pcu_1.2.0.14.2353.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -1.2.0.13-c82c9 +1.2.0.14-2353
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/debian/changelog -> osmo-pcu_1.2.0.14.2353.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmo-pcu (1.2.0.13.c82c9) unstable; urgency=medium +osmo-pcu (1.2.0.14.2353) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Mon, 06 Mar 2023 20:31:09 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Tue, 07 Mar 2023 14:49:00 +0000 osmo-pcu (1.2.0) unstable; urgency=medium
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/include/osmocom/pcu/pcuif_proto.h -> osmo-pcu_1.2.0.14.2353.tar.xz/include/osmocom/pcu/pcuif_proto.h
Changed
@@ -3,10 +3,12 @@ #include <osmocom/gsm/l1sap.h> #include <arpa/inet.h> +#include <osmocom/gsm/protocol/gsm_04_08.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 */ @@ -269,6 +271,17 @@ } cgi_ps; } __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-pcu_1.2.0.13.c82c9.tar.xz/src/bts.cpp -> osmo-pcu_1.2.0.14.2353.tar.xz/src/bts.cpp
Changed
@@ -1103,7 +1103,6 @@ void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, const struct gprs_rlcmac_dl_tbf *tbf) { - uint16_t pgroup = ms_paging_group(tbf_ms(tbf)); int plen; const struct gprs_rlcmac_pdch *pdch; @@ -1129,7 +1128,10 @@ GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_DL_TBF); - pcu_l1if_tx_pch(bts, immediate_assignment, plen, pgroup); + if (the_pcu->pcu_if_version >= 0x0b) + pcu_l1if_tx_pch_dt(bts, immediate_assignment, plen, tbf->imsi(), tbf->tlli()); + else + pcu_l1if_tx_pch(bts, immediate_assignment, plen, ms_paging_group(tbf_ms(tbf))); } bitvec_free(immediate_assignment);
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/src/gprs_pcu.h -> osmo-pcu_1.2.0.14.2353.tar.xz/src/gprs_pcu.h
Changed
@@ -134,6 +134,8 @@ struct si_cache *si_cache; /* ARFC+BSIC -> CGI PS cache */ struct osmo_timer_list update_stats_timer; /* Used to update some time_cc stats periodically */ + + uint8_t pcu_if_version; };
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/src/pcu_l1_if.cpp -> osmo-pcu_1.2.0.14.2353.tar.xz/src/pcu_l1_if.cpp
Changed
@@ -294,6 +294,24 @@ pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, sizeof(data)); } +/* Send a block via the paging channel and require a confirmation by the receiving end */ +void pcu_l1if_tx_pch_dt(struct gprs_rlcmac_bts *bts, bitvec *block, int plen, const char *imsi, uint32_t tlli) +{ + /* NOTE: This is in practice only used to transmit IMMEDIATE ASSIGNMENT messages through the paging channel and + * it is not guaranteed to work with other message types. The prepended TLLI will be used as an identifier in + * the confirmation message. */ + + struct gsm_pcu_if_pch_dt pch_dt; + + pch_dt.tlli = tlli; + strcpy(pch_dt.imsi, imsi); + + pch_dt.data0 = (plen << 2) | 0x01; + bitvec_pack(block, pch_dt.data + 1); + + pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH_DT, 0, 0, 0, (uint8_t*)&pch_dt, sizeof(pch_dt)); +} + int pcu_tx_neigh_addr_res_req(struct gprs_rlcmac_bts *bts, const struct neigh_cache_entry_key *neigh_key) { struct msgb *msg; @@ -734,14 +752,22 @@ if (llist_count(&the_pcu->bts_list) > 1) LOGP(DL1IF, LOGL_ERROR, "more than one BTS regsitered at this PCU. This PCU has only been tested with one BTS! OS#5930\n"); - if (info_ind->version != PCU_IF_VERSION) { - fprintf(stderr, "PCU interface version number of BTS (%u) is " - "different (%u).\nPlease re-compile!\n", + LOGP(DL1IF, LOGL_DEBUG, "Info indication received:\n"); + + /* NOTE: The classic way to confirm an IMMEDIATE assignment is to send the whole MAC block payload back to the + * PCU. So it is the MAC block itsself that serves a reference for the confirmation. This method has certain + * disadvantages so it was replaced with a method that uses the TLLI as a reference ("Direct TLLI"). This new + * method will replace the old one. The code that handles the old method will be removed in the foreseeable + * future. (see also OS#5927) */ + if (info_ind->version == 0x0a) { + LOGP(DL1IF, LOGL_NOTICE, "PCUIF version 10 is deprecated. OS#5927\n"); + } else if (info_ind->version != PCU_IF_VERSION) { + fprintf(stderr, "PCU interface version number of BTS/BSC (%u) is different (%u).\nPlease use a BTS/BSC with a compatble interface!\n", info_ind->version, PCU_IF_VERSION); exit(-1); } - LOGP(DL1IF, LOGL_DEBUG, "Info indication received:\n"); + the_pcu->pcu_if_version = info_ind->version; if (!(info_ind->flags & PCU_IF_FLAG_ACTIVE)) { LOGP(DL1IF, LOGL_NOTICE, "BTS not available\n");
View file
osmo-pcu_1.2.0.13.c82c9.tar.xz/src/pcu_l1_if.h -> osmo-pcu_1.2.0.14.2353.tar.xz/src/pcu_l1_if.h
Changed
@@ -149,6 +149,7 @@ void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec *block, int len); void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec *block, int plen, uint16_t pgroup); +void pcu_l1if_tx_pch_dt(struct gprs_rlcmac_bts *bts, bitvec *block, int plen, const char *imsi, uint32_t tlli); #endif #ifdef __cplusplus
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
.