We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 583
open5gs_2.7.0.66.dcdfc.202401242026.dsc -> open5gs_2.7.0.70.3886.202401252026.dsc
Changed
x
1
2
Source: open5gs
3
Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
Architecture: any
5
-Version: 2.7.0.66.dcdfc.202401242026
6
+Version: 2.7.0.70.3886.202401252026
7
Maintainer: Harald Welte <laforge@gnumonks.org>
8
Uploaders: Sukchan Lee <acetcom@gmail.com>
9
Homepage: https://open5gs.org
10
11
open5gs-udr deb net optional arch=any
12
open5gs-upf deb net optional arch=any
13
Checksums-Sha1:
14
- a70ac2edd1aeddc5da7f989e8e8c411acc543a65 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz
15
+ ce67d1e43c28a014e219e95e57e36ccd44f6d84d 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz
16
Checksums-Sha256:
17
- 0be063d1a73e3fd45b373a2a816db5317604452956435fef1b238d1fb94746b7 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz
18
+ 6cbffa27324151b8ef59753503d8a6c5c926b150c38acb420283417dde7ca403 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz
19
Files:
20
- 3e1c2fd0bbfa2cccc9f3b7fa969f956a 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz
21
+ a4e341af9195cb3686ccbeec0d533892 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz
22
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/.tarball-version -> open5gs_2.7.0.70.3886.202401252026.tar.xz/.tarball-version
Changed
4
1
2
-2.7.0.66-dcdfc.202401242026
3
+2.7.0.70-3886.202401252026
4
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/debian/changelog -> open5gs_2.7.0.70.3886.202401252026.tar.xz/debian/changelog
Changed
12
1
2
-open5gs (2.7.0.66.dcdfc.202401242026) unstable; urgency=medium
3
+open5gs (2.7.0.70.3886.202401252026) unstable; urgency=medium
4
5
* Automatically generated changelog entry for building the Osmocom nightly feed
6
7
- -- Osmocom OBS scripts <info@osmocom.org> Wed, 24 Jan 2024 20:27:40 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org> Thu, 25 Jan 2024 20:27:32 +0000
9
10
open5gs (2.7.0) unstable; urgency=medium
11
12
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/core/ogs-timer.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/core/ogs-timer.c
Changed
9
1
2
manager = timer->manager;
3
ogs_assert(manager);
4
timer = ogs_timer_cycle(manager, timer);
5
- ogs_assert(timer);
6
if (!timer) {
7
ogs_fatal("ogs_timer_stop() failed in %s", file_line);
8
ogs_assert_if_reached();
9
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/message.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/message.c
Changed
7
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/message.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/message.h
Changed
7
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/ogs-diameter-gx.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/ogs-diameter-gx.h
Changed
7
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/message.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/message.c
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/message.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/message.h
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/ogs-diameter-gy.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/ogs-diameter-gy.h
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/mme/mme-sm.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/mme/mme-sm.c
Changed
66
1
2
break;
3
4
case MME_EVENT_S6A_MESSAGE:
5
- mme_ue = e->mme_ue;
6
- ogs_assert(mme_ue);
7
+ /*
8
+ * A race condition can occur in the following situations.
9
+ * In conclusion, we can use this situation to determine
10
+ * whether or not the UE Context has been removed and avoiding a crash.
11
+ *
12
+ * For example, suppose a UE Context is removed in the followings.
13
+ *
14
+ * 1. Attach Request
15
+ * 2. Authentication-Information-Request
16
+ * 3. Authentication-Information-Answer
17
+ * 4. Authentication Request
18
+ * 5. Authentication Response(MAC Failed)
19
+ * 6. Authentication Reject
20
+ * 7. UEContextReleaseCommand
21
+ * 8. UEContextReleaseComplete
22
+ *
23
+ * The MME then sends a Purge-UE-request to the HSS and deletes
24
+ * the UE context as soon as it receives a Purge-UE-Answer.
25
+ *
26
+ * Suppose an Attach Request is received from the same UE
27
+ * between Purge-UE-Request/Answer, then the MME and HSS start
28
+ * the Authentication-Information-Request/Answer process.
29
+ *
30
+ * This can lead to the following situations.
31
+ *
32
+ * 1. Purge-UE-Request
33
+ * 2. Attach Request
34
+ * 3. Authentication-Information-Request
35
+ * 4. Purge-UE-Answer
36
+ * 5. UE Context Removed
37
+ * 6. Authentication-Information-Answer
38
+ *
39
+ * Since the UE Context has already been deleted
40
+ * when the Authentication-Information-Answer is received,
41
+ * it cannot be processed properly.
42
+ *
43
+ * Therefore, mme_ue_cycle() is used to check
44
+ * whether the UE Context has been deleted and
45
+ * decide whether to process or
46
+ * ignore the Authentication-Information-Answer as shown below.
47
+ */
48
+ mme_ue = mme_ue_cycle(e->mme_ue);
49
+ if (!mme_ue) {
50
+ ogs_error("UE(mme-ue) context has already been removed");
51
+ goto cleanup;
52
+ }
53
+
54
s6a_message = e->s6a_message;
55
ogs_assert(s6a_message);
56
57
58
ogs_error("Invalid Type%d", s6a_message->cmd_code);
59
break;
60
}
61
+
62
+cleanup:
63
ogs_subscription_data_free(&s6a_message->idr_message.subscription_data);
64
ogs_subscription_data_free(&s6a_message->ula_message.subscription_data);
65
ogs_free(s6a_message);
66
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/mme/s1ap-build.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/mme/s1ap-build.c
Changed
31
1
2
emmbuf = NULL;
3
}
4
5
- ogs_assert(E_RABToBeSetupListCtxtSUReq->list.count);
6
+ if (!E_RABToBeSetupListCtxtSUReq->list.count) {
7
+ ogs_error(" IMSI%s NAS-EPS Type%d "
8
+ "ENB_UE_S1AP_ID%d MME_UE_S1AP_ID%d",
9
+ mme_ue->imsi_bcd, mme_ue->nas_eps.type,
10
+ enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
11
+ ogs_list_for_each(&mme_ue->sess_list, sess) {
12
+ ogs_error(" APN%s",
13
+ sess->session ? sess->session->name : "Unknown");
14
+ ogs_list_for_each(&sess->bearer_list, bearer) {
15
+ if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive))
16
+ ogs_error(" IN-ACTIVE");
17
+ else if (OGS_FSM_CHECK(&bearer->sm, esm_state_active))
18
+ ogs_error(" ACTIVE");
19
+ else
20
+ ogs_error(" OTHER STATE");
21
+
22
+ ogs_error(" EBI%d QCI%d SGW-S1U-TEID%d",
23
+ bearer->ebi, bearer->qos.index, bearer->sgw_s1u_teid);
24
+ }
25
+ }
26
+ return NULL;
27
+ }
28
29
ie = CALLOC(1, sizeof(S1AP_InitialContextSetupRequestIEs_t));
30
ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
31
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/pcrf/pcrf-gx-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/pcrf/pcrf-gx-path.c
Changed
201
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
8
static ogs_thread_mutex_t sess_state_mutex;
9
10
static struct session_handler *pcrf_gx_reg = NULL;
11
-static struct disp_hdl *hdl_gx_fb = NULL;
12
-static struct disp_hdl *hdl_gx_ccr = NULL;
13
+static struct disp_hdl *hdl_gx_fb = NULL;
14
+static struct disp_hdl *hdl_gx_ccr = NULL;
15
16
static void pcrf_gx_raa_cb(void *data, struct msg **msg);
17
18
19
20
ogs_assert(gx);
21
ogs_assert(sid);
22
-
23
+
24
ogs_list_for_each(&gx->rx_list, rx_sess_data) {
25
if (!strcmp((char *)rx_sess_data->sid, (char *)sid))
26
return rx_sess_data;
27
28
ogs_free(sess_data->sid);
29
30
remove_rx_state_all(sess_data);
31
-
32
+
33
ogs_thread_mutex_lock(&sess_state_mutex);
34
ogs_pool_free(&sess_state_pool, sess_data);
35
ogs_thread_mutex_unlock(&sess_state_mutex);
36
}
37
38
-static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp,
39
+static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp,
40
struct session *sess, void *opaque, enum disp_action *act)
41
{
42
/* This CB should never be called */
43
44
return ENOTSUP;
45
}
46
47
-static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
48
+static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
49
struct session *sess, void *opaque, enum disp_action *act)
50
{
51
int rv;
52
53
ret = fd_msg_avp_add (avp, MSG_BRW_LAST_CHILD, avpch1);
54
ogs_assert(ret == 0);
55
}
56
-
57
+
58
if (gx_message.session_data.session.ambr.downlink) {
59
ret = fd_msg_avp_new(
60
ogs_diam_gx_apn_aggregate_max_bitrate_dl, 0, &avpch1);
61
62
rx_message->result_code = OGS_DIAM_INVALID_AVP_VALUE;
63
goto out;
64
}
65
-
66
+
67
for (j = 0; j < gx_message.session_data.num_of_pcc_rule; j++) {
68
if (gx_message.session_data.pcc_rulej.qos.index ==
69
qos_index) {
70
71
ogs_error("CHECK WEBUI : No PCC Rule in DB QoS Index:%d",
72
qos_index);
73
ogs_error("Please add PCC Rule using WEBUI");
74
- rx_message->result_code =
75
+ rx_message->result_code =
76
OGS_DIAM_RX_DIAMETER_REQUESTED_SERVICE_NOT_AUTHORIZED;
77
goto out;
78
}
79
80
}
81
82
if (!pcc_rule) {
83
- pcc_rule =
84
+ pcc_rule =
85
&rx_sess_data->pcc_rulerx_sess_data->num_of_pcc_rule;
86
87
/* Device PCC Rule Info from DB Profile */
88
89
rv = ogs_pcc_rule_install_flow_from_media(
90
pcc_rule, media_component);
91
if (rv != OGS_OK) {
92
- rx_message->result_code =
93
+ rx_message->result_code =
94
OGS_DIAM_RX_DIAMETER_FILTER_RESTRICTIONS;
95
ogs_error("install_flow() failed");
96
goto out;
97
98
99
ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts);
100
ogs_assert(ret == 0);
101
-
102
- /* Keep a pointer to the session data for debug purpose,
103
+
104
+ /* Keep a pointer to the session data for debug purpose,
105
* in real life we would not need it */
106
svg = sess_data;
107
-
108
+
109
/* Store this value in the session */
110
ret = fd_sess_state_store(pcrf_gx_reg, session, &sess_data);
111
ogs_assert(ret == 0);
112
ogs_assert(sess_data == NULL);
113
-
114
+
115
/* Send the request */
116
ret = fd_msg_send(&req, pcrf_gx_raa_cb, svg);
117
ogs_assert(ret == 0);
118
119
unsigned long dur;
120
int error = 0;
121
int new;
122
-
123
+
124
uint32_t result_code;
125
126
ogs_debug("PCRF Re-Auth-Answer");
127
128
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
129
ogs_assert(ret == 0);
130
ogs_assert(new == 0);
131
-
132
+
133
ret = fd_sess_state_retrieve(pcrf_gx_reg, session, &sess_data);
134
ogs_assert(ret == 0);
135
ogs_assert(sess_data);
136
137
138
/* Free the message */
139
ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
140
- dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
141
+ dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
142
((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
143
if (ogs_diam_logger_self()->stats.nb_recv) {
144
/* Ponderate in the avg */
145
- ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg *
146
+ ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg *
147
ogs_diam_logger_self()->stats.nb_recv + dur) /
148
(ogs_diam_logger_self()->stats.nb_recv + 1);
149
/* Min, max */
150
151
}
152
if (error)
153
ogs_diam_logger_self()->stats.nb_errs++;
154
- else
155
+ else
156
ogs_diam_logger_self()->stats.nb_recv++;
157
158
ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
159
-
160
+
161
/* Display how long it took */
162
if (ts.tv_nsec > sess_data->ts.tv_nsec)
163
- ogs_trace("in %d.%06ld sec",
164
+ ogs_trace("in %d.%06ld sec",
165
(int)(ts.tv_sec - sess_data->ts.tv_sec),
166
(long)(ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
167
else
168
- ogs_trace("in %d.%06ld sec",
169
+ ogs_trace("in %d.%06ld sec",
170
(int)(ts.tv_sec + 1 - sess_data->ts.tv_sec),
171
(long)(1000000000 + ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
172
173
174
ret = fd_msg_free(*msg);
175
ogs_assert(ret == 0);
176
*msg = NULL;
177
-
178
+
179
return;
180
}
181
182
183
int ret;
184
185
ret = fd_sess_handler_destroy(&pcrf_gx_reg, NULL);
186
- ogs_assert(ret == 0);
187
+ ogs_assert(ret == 0);
188
189
if (hdl_gx_fb)
190
(void) fd_disp_unregister(&hdl_gx_fb, NULL);
191
192
ret = fd_msg_avp_new(ogs_diam_gx_flow_information, 0, &avpch2);
193
ogs_assert(ret == 0);
194
195
- ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3);
196
+ ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3);
197
ogs_assert(ret == 0);
198
val.i32 = flow->direction;
199
ret = fd_msg_avp_setvalue(avpch3, &val);
200
201
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-handler.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-handler.c
Changed
7
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-handler.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-handler.h
Changed
7
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-path.c
Changed
23
1
2
-/*
3
+/* Gx Interface, 3GPP TS 29.212 section 4
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
*
6
* This file is part of Open5GS.
7
8
ogs_thread_mutex_unlock(&sess_state_mutex);
9
}
10
11
+/* 3GPP TS 29.212 5.6.2 Credit-Control-Request */
12
void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact,
13
uint32_t cc_request_type)
14
{
15
16
ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
17
}
18
19
+/* 3GPP TS 29.212 5b.6.5 Credit-Control-Answer */
20
static void smf_gx_cca_cb(void *data, struct msg **msg)
21
{
22
int rv;
23
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-handler.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-handler.c
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-handler.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-handler.h
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-path.c
Changed
7
1
2
-/*
3
+/* Gy Interface, 3GPP TS 32.299
4
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
5
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
6
*
7