Projects
osmocom:master
osmo-sgsn
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 81
View file
commit_34182d28a43abebbfffefc52a9e9ef8b85b2aa03.txt
Added
View file
commit_944b6dfb8da079b58805b285cae0cf543d8b1ee8.txt
Deleted
View file
osmo-sgsn_1.12.0.37.944b.dsc -> osmo-sgsn_1.12.0.39.3418.dsc
Changed
@@ -2,7 +2,7 @@ Source: osmo-sgsn Binary: osmo-sgsn, osmo-sgsn-dbg, osmo-gtphub, osmo-gtphub-dbg, osmo-sgsn-doc Architecture: any all -Version: 1.12.0.37.944b +Version: 1.12.0.39.3418 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: https://projects.osmocom.org/projects/osmo-sgsn Standards-Version: 3.9.8 @@ -16,8 +16,8 @@ osmo-sgsn-dbg deb debug extra arch=any osmo-sgsn-doc deb doc optional arch=all Checksums-Sha1: - a439a236b61d40639e6a85c3dda25abc8e8fccf7 237408 osmo-sgsn_1.12.0.37.944b.tar.xz + 66ae2cb7c4bb0db1406148b6c3ee378518c359db 237816 osmo-sgsn_1.12.0.39.3418.tar.xz Checksums-Sha256: - 41be284e26aebc5c0ed4729dda3f96f9dd6eddd92b8f32459178ff6670ab399c 237408 osmo-sgsn_1.12.0.37.944b.tar.xz + e8a4475c154b4bd819fc7de641568a52cbaac29ad1310c225058881ad0916e4f 237816 osmo-sgsn_1.12.0.39.3418.tar.xz Files: - 28d0d93aa15a90e097d6324f6bd40e5a 237408 osmo-sgsn_1.12.0.37.944b.tar.xz + 4cee8e002dbd29573d0da16623fc3a99 237816 osmo-sgsn_1.12.0.39.3418.tar.xz
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/.tarball-version -> osmo-sgsn_1.12.0.39.3418.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -1.12.0.37-944b +1.12.0.39-3418
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/debian/changelog -> osmo-sgsn_1.12.0.39.3418.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -osmo-sgsn (1.12.0.37.944b) unstable; urgency=medium +osmo-sgsn (1.12.0.39.3418) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Fri, 07 Feb 2025 09:54:05 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Wed, 05 Mar 2025 15:34:01 +0000 osmo-sgsn (1.12.0) unstable; urgency=medium
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/include/osmocom/sgsn/gtp_mme.h -> osmo-sgsn_1.12.0.39.3418.tar.xz/include/osmocom/sgsn/gtp_mme.h
Changed
@@ -5,6 +5,7 @@ #include <osmocom/core/linuxlist.h> #include <osmocom/core/timer.h> #include <osmocom/gprs/protocol/gsm_24_301.h> +#include <osmocom/gsm/gsm23003.h> struct gsn_t; @@ -20,6 +21,9 @@ char *name; struct in_addr remote_addr; + struct osmo_gummei gummei; + bool gummei_valid; + /* is it the default route for outgoing message? are all incoming messages accepted? */ bool default_route; }; @@ -30,6 +34,7 @@ struct sgsn_mme_ctx *sgsn_mme_ctx_by_name(const struct sgsn_instance *sgsn, const char *name); struct sgsn_mme_ctx *sgsn_mme_ctx_by_addr(const struct sgsn_instance *sgsn, const struct in_addr *addr); struct sgsn_mme_ctx *sgsn_mme_ctx_by_route(const struct sgsn_instance *sgsn, const struct osmo_eutran_tai *tai); +struct sgsn_mme_ctx *sgsn_mme_ctx_by_gummei(const struct sgsn_instance *sgsn, const struct osmo_gummei *gummei); struct sgsn_mme_ctx *sgsn_mme_ctx_by_default_route(const struct sgsn_instance *sgsn); void sgsn_mme_ctx_route_add(struct sgsn_mme_ctx *mme, const struct osmo_eutran_tai *tai);
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/src/sgsn/gprs_gmm.c -> osmo-sgsn_1.12.0.39.3418.tar.xz/src/sgsn/gprs_gmm.c
Changed
@@ -637,6 +637,7 @@ { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); struct gsm48_auth_ciph_resp *acr = (struct gsm48_auth_ciph_resp *)gh->data; + struct osmo_mobile_identity mi; struct tlv_parsed tp; struct gsm_auth_tuple *at; const char *res_name = "(no response)"; @@ -673,6 +674,28 @@ return -EINVAL; } + /* IMEI SV parsing */ + if (TLVP_LEN(&tp, GSM48_IE_GMM_IMEISV) != 9) { + LOGMMCTXP(LOGL_ERROR, ctx, "-> GMM AUTH AND CIPH RESPONSE: Invalid IMEISV\n"); + return -EINVAL; + } + + /* FIXME: should we allow invalid IMEI SV? Are there phones which have broken SV in hex? */ + if (osmo_mobile_identity_decode(&mi, + TLVP_VAL(&tp, GSM48_IE_GMM_IMEISV), + TLVP_LEN(&tp, GSM48_IE_GMM_IMEISV), + false)) { + LOGMMCTXP(LOGL_ERROR, ctx, "-> GMM AUTH AND CIPH RESPONSE: Cannot decode IMEISV\n"); + return -EINVAL; + } + + if (mi.type != GSM_MI_TYPE_IMEISV) { + LOGMMCTXP(LOGL_ERROR, ctx, "-> GMM AUTH AND CIPH RESPONSE: Invalid MI type found in IMEISV %d\n", mi.type); + return -EINVAL; + } + + memcpy(&ctx->imei, mi.imeisv, ARRAY_SIZE(ctx->imei)); + /* Start with the good old 4-byte SRES */ memcpy(res, TLVP_VAL(&tp, GSM48_IE_GMM_AUTH_SRES), 4); res_len = 4;
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/src/sgsn/gtp_mme.c -> osmo-sgsn_1.12.0.39.3418.tar.xz/src/sgsn/gtp_mme.c
Changed
@@ -131,6 +131,16 @@ return NULL; } +struct sgsn_mme_ctx *sgsn_mme_ctx_by_gummei(const struct sgsn_instance *sgsn, const struct osmo_gummei *gummei) +{ + struct sgsn_mme_ctx *mme; + llist_for_each_entry(mme, &sgsn->mme_list, list) { + if (mme->gummei_valid && !osmo_gummei_cmp(&mme->gummei, gummei)) + return mme; + } + return NULL; +} + struct sgsn_mme_ctx *sgsn_mme_ctx_by_default_route(const struct sgsn_instance *sgsn) { struct sgsn_mme_ctx *mme;
View file
osmo-sgsn_1.12.0.37.944b.tar.xz/src/sgsn/sgsn_vty.c -> osmo-sgsn_1.12.0.39.3418.tar.xz/src/sgsn/sgsn_vty.c
Changed
@@ -235,6 +235,12 @@ osmo_mcc_name(rt->tai.mcc), osmo_mnc_name(rt->tai.mnc, rt->tai.mnc_3_digits), rt->tai.tac, VTY_NEWLINE); } + if (mme->gummei_valid) + vty_out(vty, "%s gummei %s %s %d %d%s", + prefix, + osmo_mcc_name(mme->gummei.plmn.mcc), + osmo_mnc_name(mme->gummei.plmn.mnc, mme->gummei.plmn.mnc_3_digits), + mme->gummei.mme.group_id, mme->gummei.mme.code, VTY_NEWLINE); } static int config_write_sgsn(struct vty *vty) @@ -1781,6 +1787,44 @@ return CMD_SUCCESS; } +DEFUN(cfg_mme_mmei, cfg_mme_mmei_cmd, + "gummei <0-999> <0-999> <0-65535> <0-254>", + "Configure the mme\n" "MCC\n" "MNC\n" "MME GroupId\n" "MME Code") +{ + struct sgsn_mme_ctx *mme = (struct sgsn_mme_ctx *) vty->index; + + const char *mcc = argv0; + const char *mnc = argv1; + const char *group_id = argv2; + const char *code = argv3; + + if (osmo_mcc_from_str(mcc, &mme->gummei.plmn.mcc)) { + vty_out(vty, "%% Error decoding MCC: %s%s", mcc, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_mnc_from_str(mnc, &mme->gummei.plmn.mnc, &mme->gummei.plmn.mnc_3_digits)) { + vty_out(vty, "%% Error decoding MNC: %s%s", mnc, VTY_NEWLINE); + return CMD_WARNING; + } + + mme->gummei.mme.code = atoi(code); + mme->gummei.mme.group_id = atoi(group_id); + mme->gummei_valid = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_mme_mmei, cfg_no_mme_mmei_cmd, + "no gummei", + NO_STR "Remove gummei") +{ + struct sgsn_mme_ctx *mme = (struct sgsn_mme_ctx *) vty->index; + mme->gummei_valid = false; + + return CMD_SUCCESS; +} + int sgsn_vty_init(struct sgsn_config *cfg) { g_cfg = cfg; @@ -1857,6 +1901,8 @@ install_element(MME_NODE, &cfg_mme_remote_ip_cmd); install_element(MME_NODE, &cfg_mme_ran_info_relay_default_cmd); install_element(MME_NODE, &cfg_mme_no_ran_info_relay_default_cmd); + install_element(MME_NODE, &cfg_mme_mmei_cmd); + install_element(MME_NODE, &cfg_no_mme_mmei_cmd); install_element(MME_NODE, &cfg_mme_ran_info_relay_tai_cmd); install_element(MME_NODE, &cfg_mme_no_ran_info_relay_tai_cmd);
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
.