Projects
osmocom:master
osmo-hnbgw
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 94
View file
commit_0d2d966c15287441681185ae817d147ca0f405ac.txt
Deleted
View file
commit_a5974d7906a333bfd3399f83cc8072b4604f49cd.txt
Added
View file
osmo-hnbgw_1.5.0.60.0d2d.dsc
Deleted
@@ -1,21 +0,0 @@ -Format: 3.0 (native) -Source: osmo-hnbgw -Binary: osmo-hnbgw, osmo-hnbgw-dbg, osmo-hnbgw-doc -Architecture: any all -Version: 1.5.0.60.0d2d -Maintainer: Osmocom team <openbsc@lists.osmocom.org> -Homepage: https://projects.osmocom.org/projects/osmo-hnbgw -Standards-Version: 3.9.8 -Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-hnbgw -Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-hnbgw -Build-Depends: debhelper (>= 10), dh-autoreconf, autotools-dev, autoconf, automake, libtool, pkg-config, python3-minimal, libtalloc-dev, libasn1c-dev (>= 0.9.30), libsctp-dev, libosmocore-dev (>= 1.9.0), libosmo-sigtran-dev (>= 1.8.0), libosmo-abis-dev (>= 1.5.0), libosmo-netif-dev (>= 1.4.0), libosmo-mgcp-client-dev (>= 1.12.0), libosmo-hnbap-dev (>= 1.5.0), libosmo-ranap-dev (>= 1.5.0), libosmo-rua-dev (>= 1.5.0), libosmo-pfcp-dev (>= 0.3.0), osmo-gsm-manuals-dev (>= 1.5.0) -Package-List: - osmo-hnbgw deb net extra arch=any - osmo-hnbgw-dbg deb debug extra arch=any - osmo-hnbgw-doc deb doc optional arch=all -Checksums-Sha1: - 21e91eee9fd416537d1b0e01fca33e1553c14801 107316 osmo-hnbgw_1.5.0.60.0d2d.tar.xz -Checksums-Sha256: - e164468a4890b5a283a6607cdd6e93aea320db73d4e7e42930cb67d97252bfa6 107316 osmo-hnbgw_1.5.0.60.0d2d.tar.xz -Files: - 9f0193ec3dc6be2f513aae04e4a42104 107316 osmo-hnbgw_1.5.0.60.0d2d.tar.xz
View file
osmo-hnbgw_1.5.0.61.a597.dsc
Added
@@ -0,0 +1,21 @@ +Format: 3.0 (native) +Source: osmo-hnbgw +Binary: osmo-hnbgw, osmo-hnbgw-dbg, osmo-hnbgw-doc +Architecture: any all +Version: 1.5.0.61.a597 +Maintainer: Osmocom team <openbsc@lists.osmocom.org> +Homepage: https://projects.osmocom.org/projects/osmo-hnbgw +Standards-Version: 3.9.8 +Vcs-Browser: https://gitea.osmocom.org/cellular-infrastructure/osmo-hnbgw +Vcs-Git: https://gitea.osmocom.org/cellular-infrastructure/osmo-hnbgw +Build-Depends: debhelper (>= 10), dh-autoreconf, autotools-dev, autoconf, automake, libtool, pkg-config, python3-minimal, libtalloc-dev, libasn1c-dev (>= 0.9.30), libsctp-dev, libosmocore-dev (>= 1.9.0), libosmo-sigtran-dev (>= 1.8.0), libosmo-abis-dev (>= 1.5.0), libosmo-netif-dev (>= 1.4.0), libosmo-mgcp-client-dev (>= 1.12.0), libosmo-hnbap-dev (>= 1.5.0), libosmo-ranap-dev (>= 1.5.0), libosmo-rua-dev (>= 1.5.0), libosmo-pfcp-dev (>= 0.3.0), osmo-gsm-manuals-dev (>= 1.5.0) +Package-List: + osmo-hnbgw deb net extra arch=any + osmo-hnbgw-dbg deb debug extra arch=any + osmo-hnbgw-doc deb doc optional arch=all +Checksums-Sha1: + a262924683d7ca4bacf861ab5b4ed456dbece87e 108008 osmo-hnbgw_1.5.0.61.a597.tar.xz +Checksums-Sha256: + 83f22d4ee6b18159a33ff482788f686ad969b88ae76e744c2e0d0d6d95588618 108008 osmo-hnbgw_1.5.0.61.a597.tar.xz +Files: + 5cdbd532714700e34f0e45f00cdab96e 108008 osmo-hnbgw_1.5.0.61.a597.tar.xz
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/.tarball-version -> osmo-hnbgw_1.5.0.61.a597.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -1.5.0.60-0d2d +1.5.0.61-a597
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/TODO-RELEASE -> osmo-hnbgw_1.5.0.61.a597.tar.xz/TODO-RELEASE
Changed
@@ -11,3 +11,4 @@ MGW MGCP CRCX osmo-hnbgw used to CRCX in loopback mode, to trigger a legacy IuUP hack. CRCX is no longer in loopback mode now, so older osmo-mgw may fail to respond to IuUP Initialization. +osmo-iuh >1.5.1 decoding of more RANAP procedures in ranap_common required for DTAP rate_counters
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/debian/changelog -> osmo-hnbgw_1.5.0.61.a597.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmo-hnbgw (1.5.0.60.0d2d) unstable; urgency=medium +osmo-hnbgw (1.5.0.61.a597) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Wed, 15 May 2024 06:52:22 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Wed, 15 May 2024 15:41:06 +0000 osmo-hnbgw (1.5.0) unstable; urgency=medium
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/include/osmocom/hnbgw/hnbgw.h -> osmo-hnbgw_1.5.0.61.a597.tar.xz/include/osmocom/hnbgw/hnbgw.h
Changed
@@ -136,6 +136,18 @@ HNB_CTR_CS_PAGING_ATTEMPTED, HNB_CTR_RAB_ACTIVE_MILLISECONDS_TOTAL, + + HNB_CTR_DTAP_CS_LU_REQ, + HNB_CTR_DTAP_CS_LU_ACC, + HNB_CTR_DTAP_CS_LU_REJ, + + HNB_CTR_DTAP_PS_ATT_REQ, + HNB_CTR_DTAP_PS_ATT_ACK, + HNB_CTR_DTAP_PS_ATT_REJ, + + HNB_CTR_DTAP_PS_RAU_REQ, + HNB_CTR_DTAP_PS_RAU_ACK, + HNB_CTR_DTAP_PS_RAU_REJ, }; enum hnb_stat {
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/include/osmocom/hnbgw/kpi.h -> osmo-hnbgw_1.5.0.61.a597.tar.xz/include/osmocom/hnbgw/kpi.h
Changed
@@ -6,3 +6,6 @@ void kpi_ranap_process_ul(struct hnbgw_context_map *map, ranap_message *ranap); void kpi_ranap_process_dl(struct hnbgw_context_map *map, ranap_message *ranap); + +void kpi_dtap_process_ul(struct hnbgw_context_map *map, const uint8_t *buf, unsigned int len, uint8_t sapi); +void kpi_dtap_process_dl(struct hnbgw_context_map *map, const uint8_t *buf, unsigned int len, uint8_t sapi);
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/src/osmo-hnbgw/Makefile.am -> osmo-hnbgw_1.5.0.61.a597.tar.xz/src/osmo-hnbgw/Makefile.am
Changed
@@ -44,6 +44,7 @@ cnlink.c \ ranap_rab_ass.c \ mgw_fsm.c \ + kpi_dtap.c \ kpi_ranap.c \ tdefs.c \ $(NULL)
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/src/osmo-hnbgw/context_map_rua.c -> osmo-hnbgw_1.5.0.61.a597.tar.xz/src/osmo-hnbgw/context_map_rua.c
Changed
@@ -220,10 +220,9 @@ switch (event) { case MAP_RUA_EV_RX_CONNECT: + /* not needed for RAB assignment scanning, but for KPI scanning */ + handle_rx_rua(fi, ranap_msg); map_rua_fsm_state_chg(MAP_RUA_ST_CONNECTED); - /* The Connect will never be a RAB Assignment response, so no need for handle_rx_rua() (which decodes - * the RANAP message to detect a RAB Assignment response). Just forward to SCCP as is. */ - map_sccp_dispatch(map, MAP_SCCP_EV_TX_DATA_REQUEST, ranap_msg); return; case MAP_RUA_EV_RX_DISCONNECT:
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/src/osmo-hnbgw/hnbgw.c -> osmo-hnbgw_1.5.0.61.a597.tar.xz/src/osmo-hnbgw/hnbgw.c
Changed
@@ -464,6 +464,18 @@ HNB_CTR_RAB_ACTIVE_MILLISECONDS_TOTAL = { "rab:cs:active_milliseconds:total", "Cumulative number of milliseconds of CS RAB activity" }, + + HNB_CTR_DTAP_CS_LU_REQ = { "dtap:cs:location_update:req", "CS Location Update Requests" }, + HNB_CTR_DTAP_CS_LU_ACC = { "dtap:cs:location_update:accept", "CS Location Update Accepts" }, + HNB_CTR_DTAP_CS_LU_REJ = { "dtap:cs:location_update:reject", "CS Location Update Rejects" }, + + HNB_CTR_DTAP_PS_ATT_REQ = { "dtap:ps:attach:req", "PS Attach Requests" }, + HNB_CTR_DTAP_PS_ATT_ACK = { "dtap:ps:attach:accept", "PS Attach Accepts" }, + HNB_CTR_DTAP_PS_ATT_REJ = { "dtap:ps:attach:reject", "PS Attach Rejects" }, + + HNB_CTR_DTAP_PS_RAU_REQ = { "dtap:ps:routing_area_update:req", "PS Routing Area Update Requests" }, + HNB_CTR_DTAP_PS_RAU_ACK = { "dtap:ps:routing_area_update:accept", "PS Routing Area Update Accepts" }, + HNB_CTR_DTAP_PS_RAU_REJ = { "dtap:ps:routing_area_update:reject", "PS Routing Area Update Rejects" }, }; const struct rate_ctr_group_desc hnb_ctrg_desc = {
View file
osmo-hnbgw_1.5.0.61.a597.tar.xz/src/osmo-hnbgw/kpi_dtap.c
Added
@@ -0,0 +1,111 @@ +/* KPI (statistics, counters) at DTAP level */ +/* (C) 2024 by Harald Welte <laforge@osmocom.org> + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include <osmocom/core/utils.h> + +#include <osmocom/ranap/ranap_common_ran.h> +#include <osmocom/gsm/protocol/gsm_04_08.h> +#include <osmocom/gsm/protocol/gsm_04_08_gprs.h> + +#include <osmocom/hnbgw/hnbgw.h> +#include <osmocom/hnbgw/context_map.h> +#include <osmocom/hnbgw/kpi.h> + +/*********************************************************************** + * DOWNLINK messages + ***********************************************************************/ + +void kpi_dtap_process_dl(struct hnbgw_context_map *map, const uint8_t *buf, unsigned int len, + uint8_t sapi) +{ + struct hnb_persistent *hnbp = map->hnb_ctx->persistent; + const struct gsm48_hdr *gh = (const struct gsm48_hdr *)buf; + if (len < sizeof(*gh)) + return; + + /* if you make use of any data beyond the fixed-size gsm48_hdr, you must make sure the underlying + * buffer length is actually long enough! */ + + if (map->is_ps) { + /* Packet Switched Domain (from SGSN) */ + switch (gsm48_hdr_msg_type(gh)) { + case GSM48_MT_GMM_ATTACH_ACK: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_ATT_ACK); + break; + case GSM48_MT_GMM_ATTACH_REJ: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_ATT_REJ); + break; + case GSM48_MT_GMM_RA_UPD_ACK: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_RAU_ACK); + break; + case GSM48_MT_GMM_RA_UPD_REJ: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_RAU_REJ); + break; + } + } else { + /* Circuit Switched Domain (from MSC) */ + switch (gsm48_hdr_msg_type(gh)) { + case GSM48_MT_MM_LOC_UPD_ACCEPT: + /* FIXME: many LU are acknwoeldged implicitly with TMSI allocation */ + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_CS_LU_ACC); + break; + case GSM48_MT_MM_LOC_UPD_REJECT: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_CS_LU_REJ); + break; + } + } +} + +/*********************************************************************** + * UPLINK messages + ***********************************************************************/ + +void kpi_dtap_process_ul(struct hnbgw_context_map *map, const uint8_t *buf, unsigned int len, + uint8_t sapi) +{ + struct hnb_persistent *hnbp = map->hnb_ctx->persistent; + const struct gsm48_hdr *gh = (const struct gsm48_hdr *)buf; + if (len < sizeof(*gh)) + return; + + /* if you make use of any data beyond the fixed-size gsm48_hdr, you must make sure the underlying + * buffer length is actually long enough! */ + + if (map->is_ps) { + /* Packet Switched Domain (to SGSN) */ + switch (gsm48_hdr_msg_type(gh)) { + case GSM48_MT_GMM_ATTACH_REQ: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_ATT_REQ); + break; + case GSM48_MT_GMM_RA_UPD_REQ: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_PS_RAU_REQ); + break; + } + } else { + /* Circuit Switched Domain (to MSC) */ + switch (gsm48_hdr_msg_type(gh)) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + HNBP_CTR_INC(hnbp, HNB_CTR_DTAP_CS_LU_REQ); + break; + } + } +}
View file
osmo-hnbgw_1.5.0.60.0d2d.tar.xz/src/osmo-hnbgw/kpi_ranap.c -> osmo-hnbgw_1.5.0.61.a597.tar.xz/src/osmo-hnbgw/kpi_ranap.c
Changed
@@ -165,6 +165,18 @@ } } +static void kpi_ranap_process_dl_direct_transfer(struct hnbgw_context_map *map, ranap_message *ranap) +{ + const RANAP_DirectTransferIEs_t *dt_ies = &ranap->msg.directTransferIEs; + uint8_t sapi = 0; + + if (dt_ies->presenceMask & DIRECTTRANSFERIES_RANAP_SAPI_PRESENT) { + if (dt_ies->sapi == RANAP_SAPI_sapi_3) + sapi = 3; + } + kpi_dtap_process_dl(map, dt_ies->nas_pdu.buf, dt_ies->nas_pdu.size, sapi); +} + void kpi_ranap_process_dl(struct hnbgw_context_map *map, ranap_message *ranap) { switch (ranap->procedureCode) { @@ -174,6 +186,9 @@ case RANAP_ProcedureCode_id_Iu_Release: kpi_ranap_process_dl_iu_rel_cmd(map, ranap); /* IU RELEASE CMD (8.5) */ break; + case RANAP_ProcedureCode_id_DirectTransfer: + kpi_ranap_process_dl_direct_transfer(map, ranap); + break; default: break; } @@ -370,6 +385,24 @@ } } +static void kpi_ranap_process_ul_initial_ue(struct hnbgw_context_map *map, ranap_message *ranap) +{ + const RANAP_InitialUE_MessageIEs_t *iue_ies = &ranap->msg.initialUE_MessageIEs; + kpi_dtap_process_ul(map, iue_ies->nas_pdu.buf, iue_ies->nas_pdu.size, 0); +} + +static void kpi_ranap_process_ul_direct_transfer(struct hnbgw_context_map *map, ranap_message *ranap) +{ + const RANAP_DirectTransferIEs_t *dt_ies = &ranap->msg.directTransferIEs; + uint8_t sapi = 0; + + if (dt_ies->presenceMask & DIRECTTRANSFERIES_RANAP_SAPI_PRESENT) { + if (dt_ies->sapi == RANAP_SAPI_sapi_3) + sapi = 3; + } + kpi_dtap_process_ul(map, dt_ies->nas_pdu.buf, dt_ies->nas_pdu.size, sapi); +} + void kpi_ranap_process_ul(struct hnbgw_context_map *map, ranap_message *ranap) { switch (ranap->procedureCode) { @@ -382,6 +415,12 @@ * processing of the downlink Iu Release Command. It's not like the RNC/HNB has any way to * refuse the release anyway. */ break; + case RANAP_ProcedureCode_id_InitialUE_Message: + kpi_ranap_process_ul_initial_ue(map, ranap); + break; + case RANAP_ProcedureCode_id_DirectTransfer: + kpi_ranap_process_ul_direct_transfer(map, ranap); + break; default: break; }
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
.