Projects
osmocom:master
open5gs
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 272
View file
commit_84ed9a0dd32253c1664d25967e4381a016af1d66.txt
Deleted
View file
commit_93e05f481b67657d3f2d3840a6fc93120ceb610c.txt
Added
View file
open5gs_2.6.4.69.84ed9.dsc -> open5gs_2.6.4.70.93e0.dsc
Changed
@@ -2,7 +2,7 @@ Source: open5gs Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg Architecture: any -Version: 2.6.4.69.84ed9 +Version: 2.6.4.70.93e0 Maintainer: Harald Welte <laforge@gnumonks.org> Uploaders: Sukchan Lee <acetcom@gmail.com> Homepage: https://open5gs.org @@ -31,8 +31,8 @@ open5gs-udr deb net optional arch=any open5gs-upf deb net optional arch=any Checksums-Sha1: - dce6e6be11e3c252242d06afd342f7d4c887c02d 14241360 open5gs_2.6.4.69.84ed9.tar.xz + 1374ac78bc33fdd7883ff030f7d3e82508087691 14240792 open5gs_2.6.4.70.93e0.tar.xz Checksums-Sha256: - a73bd5b222956c9fb0877028bf7ff6ae2341ad1b62b89dd39e719a20c3ae4292 14241360 open5gs_2.6.4.69.84ed9.tar.xz + 225a8b57ea9f840aabea9ffd1dc6a4874c8da92c40bdcd3061f414030f2d6db4 14240792 open5gs_2.6.4.70.93e0.tar.xz Files: - ce74c668b25b3e9b5aaf1f90cfd5aa89 14241360 open5gs_2.6.4.69.84ed9.tar.xz + ce668bf2fba18fbf9ca0994c08cd04c0 14240792 open5gs_2.6.4.70.93e0.tar.xz
View file
open5gs_2.6.4.69.84ed9.tar.xz/.tarball-version -> open5gs_2.6.4.70.93e0.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.6.4.69-84ed9 +2.6.4.70-93e0
View file
open5gs_2.6.4.69.84ed9.tar.xz/debian/changelog -> open5gs_2.6.4.70.93e0.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -open5gs (2.6.4.69.84ed9) unstable; urgency=medium +open5gs (2.6.4.70.93e0) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Wed, 09 Aug 2023 07:36:02 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Thu, 10 Aug 2023 06:52:49 +0000 open5gs (2.6.4) unstable; urgency=medium
View file
open5gs_2.6.4.69.84ed9.tar.xz/src/amf/context.h -> open5gs_2.6.4.70.93e0.tar.xz/src/amf/context.h
Changed
@@ -130,6 +130,7 @@ ogs_fsm_t sm; /* A state machine */ uint32_t gnb_id; /* gNB_ID received from gNB */ + ogs_plmn_id_t plmn_id; /* gNB PLMN-ID received from gNB */ ogs_sctp_sock_t sctp; /* SCTP socket */ struct {
View file
open5gs_2.6.4.69.84ed9.tar.xz/src/amf/ngap-handler.c -> open5gs_2.6.4.70.93e0.tar.xz/src/amf/ngap-handler.c
Changed
@@ -22,6 +22,36 @@ #include "sbi-path.h" #include "nas-path.h" +static bool maximum_number_of_gnbs_is_reached(void) +{ + amf_gnb_t *gnb = NULL, *next_gnb = NULL; + int number_of_gnbs_online = 0; + + ogs_list_for_each_safe(&amf_self()->gnb_list, next_gnb, gnb) { + if (gnb->state.ng_setup_success) { + number_of_gnbs_online++; + } + } + + return number_of_gnbs_online >= ogs_app()->max.peer; +} + +static bool gnb_plmn_id_is_foreign(amf_gnb_t *gnb) +{ + int i, j; + + for (i = 0; i < gnb->num_of_supported_ta_list; i++) { + for (j = 0; j < gnb->supported_ta_listi.num_of_bplmn_list; j++) { + if (memcmp(&gnb->plmn_id, + &gnb->supported_ta_listi.bplmn_listj.plmn_id, + OGS_PLMN_ID_LEN) == 0) + return false; + } + } + + return true; +} + static bool served_tai_is_found(amf_gnb_t *gnb) { int i, j; @@ -83,20 +113,6 @@ return false; } -static bool maximum_number_of_gnbs_is_reached(void) -{ - amf_gnb_t *gnb = NULL, *next_gnb = NULL; - int number_of_gnbs_online = 0; - - ogs_list_for_each_safe(&amf_self()->gnb_list, next_gnb, gnb) { - if (gnb->state.ng_setup_success) { - number_of_gnbs_online++; - } - } - - return number_of_gnbs_online >= ogs_app()->max.peer; -} - void ngap_handle_ng_setup_request(amf_gnb_t *gnb, ogs_ngap_message_t *message) { char bufOGS_ADDRSTRLEN; @@ -178,6 +194,11 @@ ogs_ngap_GNB_ID_to_uint32(&globalGNB_ID->gNB_ID, &gnb_id); ogs_debug(" IP%s GNB_ID0x%x", OGS_ADDR(gnb->sctp.addr, buf), gnb_id); + memcpy(&gnb->plmn_id, + globalGNB_ID->pLMNIdentity.buf, sizeof(gnb->plmn_id)); + ogs_debug(" PLMN_IDMCC:%d MNC:%d", + ogs_plmn_id_mcc(&gnb->plmn_id), ogs_plmn_id_mnc(&gnb->plmn_id)); + if (PagingDRX) ogs_debug(" PagingDRX%ld", *PagingDRX); @@ -293,6 +314,18 @@ r = ngap_send_ng_setup_failure(gnb, group, cause); ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + return; + } + + if (gnb_plmn_id_is_foreign(gnb)) { + ogs_warn("NG-Setup failure:"); + ogs_warn(" globalGNB_ID PLMN-ID is foreign"); + group = NGAP_Cause_PR_protocol; + cause = NGAP_CauseProtocol_message_not_compatible_with_receiver_state; + + r = ngap_send_ng_setup_failure(gnb, group, cause); + ogs_expect(r == OGS_OK); ogs_assert(r != OGS_ERROR); return; }
View file
open5gs_2.6.4.69.84ed9.tar.xz/src/mme/mme-context.h -> open5gs_2.6.4.70.93e0.tar.xz/src/mme/mme-context.h
Changed
@@ -277,6 +277,7 @@ ogs_fsm_t sm; /* A state machine */ uint32_t enb_id; /* eNB_ID received from eNB */ + ogs_plmn_id_t plmn_id; /* eNB PLMN-ID received from eNB */ ogs_sctp_sock_t sctp; /* SCTP socket */ struct {
View file
open5gs_2.6.4.69.84ed9.tar.xz/src/mme/s1ap-handler.c -> open5gs_2.6.4.70.93e0.tar.xz/src/mme/s1ap-handler.c
Changed
@@ -34,6 +34,33 @@ #include "mme-path.h" #include "mme-sm.h" +static bool maximum_number_of_enbs_is_reached(void) +{ + mme_enb_t *enb = NULL, *next_enb = NULL; + int number_of_enbs_online = 0; + + ogs_list_for_each_safe(&mme_self()->enb_list, next_enb, enb) { + if (enb->state.s1_setup_success) { + number_of_enbs_online++; + } + } + + return number_of_enbs_online >= ogs_app()->max.peer; +} + +static bool enb_plmn_id_is_foreign(mme_enb_t *enb) +{ + int i; + + for (i = 0; i < enb->num_of_supported_ta_list; i++) { + if (memcmp(&enb->plmn_id, &enb->supported_ta_listi.plmn_id, + OGS_PLMN_ID_LEN) == 0) + return false; + } + + return true; +} + static bool served_tai_is_found(mme_enb_t *enb) { int i; @@ -51,20 +78,6 @@ return false; } -static bool maximum_number_of_enbs_is_reached(void) -{ - mme_enb_t *enb = NULL, *next_enb = NULL; - int number_of_enbs_online = 0; - - ogs_list_for_each_safe(&mme_self()->enb_list, next_enb, enb) { - if (enb->state.s1_setup_success) { - number_of_enbs_online++; - } - } - - return number_of_enbs_online >= ogs_app()->max.peer; -} - void s1ap_handle_s1_setup_request(mme_enb_t *enb, ogs_s1ap_message_t *message) { char bufOGS_ADDRSTRLEN; @@ -110,17 +123,41 @@ } } - ogs_assert(Global_ENB_ID); + if (!Global_ENB_ID) { + ogs_error("No Global_ENB_ID"); + group = S1AP_Cause_PR_misc; + cause = S1AP_CauseProtocol_semantic_error; + + r = s1ap_send_s1_setup_failure(enb, group, cause); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + return; + } + + if (!SupportedTAs) { + ogs_error("No SupportedTAs"); + group = S1AP_Cause_PR_misc; + cause = S1AP_CauseProtocol_semantic_error; + + r = s1ap_send_s1_setup_failure(enb, group, cause); + ogs_expect(r == OGS_OK); + ogs_assert(r != OGS_ERROR); + return; + } ogs_s1ap_ENB_ID_to_uint32(&Global_ENB_ID->eNB_ID, &enb_id); ogs_debug(" IP%s ENB_ID%d", OGS_ADDR(enb->sctp.addr, buf), enb_id); + mme_enb_set_enb_id(enb, enb_id); + + memcpy(&enb->plmn_id, + Global_ENB_ID->pLMNidentity.buf, sizeof(enb->plmn_id)); + ogs_debug(" PLMN_IDMCC:%d MNC:%d", + ogs_plmn_id_mcc(&enb->plmn_id), ogs_plmn_id_mnc(&enb->plmn_id)); + if (PagingDRX) ogs_debug(" PagingDRX%ld", *PagingDRX); - mme_enb_set_enb_id(enb, enb_id); - - ogs_assert(SupportedTAs); /* Parse Supported TA */ enb->num_of_supported_ta_list = 0; for (i = 0; i < SupportedTAs->list.count; i++) { @@ -169,11 +206,11 @@ return; } - if (enb->num_of_supported_ta_list == 0) { + if (enb_plmn_id_is_foreign(enb)) { ogs_warn("S1-Setup failure:"); - ogs_warn(" No supported TA exist in S1-Setup request"); + ogs_warn(" Global-ENB-ID PLMN-ID is foreign"); group = S1AP_Cause_PR_misc; - cause = S1AP_CauseMisc_unspecified; + cause = S1AP_CauseProtocol_semantic_error; r = s1ap_send_s1_setup_failure(enb, group, cause); ogs_expect(r == OGS_OK);
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
.