Attention is currently required from: fixeria.
pespin has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42126?usp=email )
Change subject: Makefile: clean-logs: also remove *.merged
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42126?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I6efe839ae2d527387b533fd110965335c0f850c9
Gerrit-Change-Number: 42126
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 16 Feb 2026 14:37:32 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42127?usp=email )
Change subject: bts: as_rsl_meas_res(): tolerate low RxLev in early reports
......................................................................
bts: as_rsl_meas_res(): tolerate low RxLev in early reports
The MS is not guaranteed to begin transmitting immediately after
activation of the respective logical channel. There is typically a
short interval during which the BTS receives no bursts. Consequently,
the initial RSL measurement reports are expected to indicate poor
RxLev/RxQual values.
We already tolerate bad RxQual values; however, sporadic failures
still occur due to low RxLev in the very first report. Extend the
logic in f_build_meas_res_tmpl() to tolerate low RxLev as well.
Change-Id: Ic632917d429ec597dba524bf79749944cf1fc628
Related: 8ce558dd ("bts: as_rsl_meas_res(): tolerate bad RxQual in early reports")
Related: OS#6933
---
M bts/BTS_Tests.ttcn
1 file changed, 4 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/42127/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 9646df4..54238f5 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -2315,9 +2315,11 @@
rxq_s_u := f_tolerance(l1p.meas_ul.sub.rxqual, 0, 7, mp_tolerance_rxqual),
supp_meas_info := omit
};
- /* Bit errors are expected during early stage of channel establishment.
- * Ignore bad RxQual in the very first reports (4 * 0.480s = 1.92s). */
+ /* Low signal and bit errors are expected during early stage of channel establishment.
+ * Ignore bad RxLev/RxQual in the very first reports (4 * 0.480s = 1.92s). */
if (g_rsl_meas_res_nr < 4) {
+ ul_meas.rxlev_f_u := ?;
+ ul_meas.rxlev_s_u := ?;
ul_meas.rxq_f_u := ?;
ul_meas.rxq_s_u := ?;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42127?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ic632917d429ec597dba524bf79749944cf1fc628
Gerrit-Change-Number: 42127
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Attention is currently required from: fixeria, laforge, neels.
pespin has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email )
Change subject: cp_peer: Implement local originated heartbeat procedure
......................................................................
Patch Set 2:
(1 comment)
File src/libosmo-pfcp/pfcp_cp_peer.c:
https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120/comment/68d81be7_635a7a43… :
PS1, Line 112: unsigned int tval_rx_heartbeat_s =
: osmo_tdef_get(cp_peer->ep->cfg.tdefs, OSMO_PFCP_TIMER_HEARTBEAT_RESP, OSMO_TDEF_S, -1);
: o
> Where this expectation is coming from? Is this stated in the specs. somewhere?
As mentioned, unfortunately the PFCP spec doesn't provide with detailed information on how the hearbeat procedure is expected to work.
I simply took the existing timers in the code base and implemented it.
> Even though the 2nd HEARTBEAT Rsp was received only 3.0s after the 2nd HEARTBEAT Req (less than the timeout of 15.0s),
Because that's not what the timeout is expected to express. The timeout doesn't express "how much time should it take to receive a response for a given Req", but simply "How much time without receiving a Heartbeat Response is acceptable", which is totally decoupled from the config of "how frequently to transmit Heartbeat Request" (but of course there's a relation to that).
This is iirc how IT (Tias and Tiar) work in SCCP for instance, see eg. https://osmocom.org/issues/4343
--
To view, visit https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmo-pfcp
Gerrit-Branch: master
Gerrit-Change-Id: I7efc0961e1ea39dd7f4cc6ba96be4cf5ce9a2d6c
Gerrit-Change-Number: 42120
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 16 Feb 2026 11:27:55 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, neels, pespin.
fixeria has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email )
Change subject: cp_peer: Implement local originated heartbeat procedure
......................................................................
Patch Set 1:
(1 comment)
File src/libosmo-pfcp/pfcp_cp_peer.c:
https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120/comment/bea3416e_9b85baad… :
PS1, Line 112: unsigned int tval_rx_heartbeat_s =
: osmo_tdef_get(cp_peer->ep->cfg.tdefs, OSMO_PFCP_TIMER_HEARTBEAT_RESP, OSMO_TDEF_S, -1);
: o
> Yes, because you are expected to set "HB response timeout" to be > "HB interval".
Where this expectation is coming from? Is this stated in the specs. somewhere?
Anyway, I still see a problem here:
* `tval_tx_heartbeat_s` (HB interval) = 10s
* `tval_rx_heartbeat_s` (HB response timeout) = 15s
Scenario:
* [0.0s] Tx HEARTBEAT Req (initial)
* re-schedule `heartbeat_tx_timer` (+10s, triggers @ 10.0s)
* re-schedule `heartbeat_rx_timer` (+12s, triggers @ 12.0s)
* [0.5s] Rx HEARTBEAT Rsp
* re-schedule `heartbeat_rx_timer` (+12s, triggers @ 12.5s)
* [10.0s] Tx HEARTBEAT Req
* re-schedule `heartbeat_tx_timer` (+10s, triggers @ 20.0s)
* [12.5s] `heartbeat_rx_timer` expires, `PFCP_CP_PEER_EV_HEARTBEAT_TIMEOUT`
* [13.0s] Rx HEARTBEAT Rsp (late?)
Even though the 2nd `HEARTBEAT Rsp` was received only 3.0s after the 2nd `HEARTBEAT Req` (less than the timeout of 15.0s), the timeout condition was already declared. This is why I believe the `heartbeat_rx_timer` needs to be re-scheduled when sending the `HEARTBEAT Req`.
--
To view, visit https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmo-pfcp
Gerrit-Branch: master
Gerrit-Change-Id: I7efc0961e1ea39dd7f4cc6ba96be4cf5ce9a2d6c
Gerrit-Change-Number: 42120
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 16 Feb 2026 11:18:31 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Attention is currently required from: fixeria, laforge, neels.
Hello Jenkins Builder, laforge, neels,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Verified+1 by Jenkins Builder
Change subject: cp_peer: Implement local originated heartbeat procedure
......................................................................
cp_peer: Implement local originated heartbeat procedure
Submit PFCP Hearbeat Request with configured interval,
and timeout after no PFCP Hearbeat Response received based on
configuration.
Upon timeout, the cp_peer assoc_cb() is called to notify the user that
the peer is considered not associated anymore. It will then try to
keep associating again automatically.
Default value for OSMO_PFCP_TIMER_HEARTBEAT_RESP is increased to 35s to
allow for a single Heartbeat Request packet loss.
Related: SYS#7294
Change-Id: I7efc0961e1ea39dd7f4cc6ba96be4cf5ce9a2d6c
---
M include/osmocom/pfcp/pfcp_cp_peer_private.h
M src/libosmo-pfcp/pfcp_cp_peer.c
M src/libosmo-pfcp/pfcp_endpoint.c
3 files changed, 104 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-pfcp refs/changes/20/42120/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-pfcp/+/42120?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmo-pfcp
Gerrit-Branch: master
Gerrit-Change-Id: I7efc0961e1ea39dd7f4cc6ba96be4cf5ce9a2d6c
Gerrit-Change-Number: 42120
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-pfcp/+/42125?usp=email )
Change subject: Move struct osmo_pfcp_endpoint to pfcp_endpoint_private.h
......................................................................
Move struct osmo_pfcp_endpoint to pfcp_endpoint_private.h
Similar to what we have with pfcp_cp_peer_private.h.
Change-Id: Id3dcd1c2e086d40bbc7060d5e89aed5ee18249e1
---
M include/osmocom/pfcp/Makefile.am
A include/osmocom/pfcp/pfcp_endpoint_private.h
M src/libosmo-pfcp/pfcp_cp_peer.c
M src/libosmo-pfcp/pfcp_endpoint.c
4 files changed, 60 insertions(+), 25 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-pfcp refs/changes/25/42125/1
diff --git a/include/osmocom/pfcp/Makefile.am b/include/osmocom/pfcp/Makefile.am
index 21b3aeb..b4a2305 100644
--- a/include/osmocom/pfcp/Makefile.am
+++ b/include/osmocom/pfcp/Makefile.am
@@ -1,4 +1,5 @@
noinst_HEADERS = \
+ pfcp_endpoint_private.h \
pfcp_cp_peer_private.h \
$(NULL)
diff --git a/include/osmocom/pfcp/pfcp_endpoint_private.h b/include/osmocom/pfcp/pfcp_endpoint_private.h
new file mode 100644
index 0000000..2b1b52b
--- /dev/null
+++ b/include/osmocom/pfcp/pfcp_endpoint_private.h
@@ -0,0 +1,57 @@
+/*
+ * (C) 2021-2025 by sysmocom - s.f.m.c. GmbH <info(a)sysmocom.de>
+ * All Rights Reserved.
+ *
+ * Author: Neels Janosch Hofmeyr <nhofmeyr(a)sysmocom.de>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+#include <osmocom/core/hashtable.h>
+#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/osmo_io.h>
+#include <osmocom/pfcp/pfcp_endpoint.h>
+
+
+/* Send/receive PFCP messages to/from remote PFCP endpoints. */
+struct osmo_pfcp_endpoint {
+ struct osmo_pfcp_endpoint_cfg cfg;
+
+ /* PFCP socket */
+ struct osmo_io_fd *iofd;
+
+ /* The time at which this endpoint last restarted, as seconds since unix epoch. */
+ uint32_t recovery_time_stamp;
+
+ /* State for determining the next sequence number for transmitting a request message */
+ uint32_t seq_nr_state;
+
+ /* All transmitted PFCP Request messages, list of osmo_pfcp_queue_entry.
+ * For a transmitted Request message, wait for a matching Response from a remote peer; if none arrives,
+ * retransmit (see n1 and t1_ms). */
+ struct llist_head sent_requests;
+ DECLARE_HASHTABLE(sent_requests_by_seq_nr, 12);
+ /* All transmitted PFCP Response messages, list of osmo_pfcp_queue_entry.
+ * For a transmitted Response message, keep it in the queue for a fixed amount of time. If the peer retransmits
+ * the original Request, do not dispatch the Request, but respond with the queued message directly. */
+ struct llist_head sent_responses;
+ DECLARE_HASHTABLE(sent_responses_by_seq_nr, 12);
+};
diff --git a/src/libosmo-pfcp/pfcp_cp_peer.c b/src/libosmo-pfcp/pfcp_cp_peer.c
index 403a474..0c29df7 100644
--- a/src/libosmo-pfcp/pfcp_cp_peer.c
+++ b/src/libosmo-pfcp/pfcp_cp_peer.c
@@ -27,7 +27,7 @@
#include <osmocom/core/fsm.h>
#include <osmocom/core/tdef.h>
-#include <osmocom/pfcp/pfcp_endpoint.h>
+#include <osmocom/pfcp/pfcp_endpoint_private.h>
#include <osmocom/pfcp/pfcp_cp_peer_private.h>
#define LOG_CP_PEER(CP_PEER, LOGLEVEL, FMT, ARGS...) \
diff --git a/src/libosmo-pfcp/pfcp_endpoint.c b/src/libosmo-pfcp/pfcp_endpoint.c
index 64ea347..bb7fbf3 100644
--- a/src/libosmo-pfcp/pfcp_endpoint.c
+++ b/src/libosmo-pfcp/pfcp_endpoint.c
@@ -33,32 +33,9 @@
#include <osmocom/core/osmo_io.h>
#include <osmocom/pfcp/pfcp_endpoint.h>
+#include <osmocom/pfcp/pfcp_endpoint_private.h>
#include <osmocom/pfcp/pfcp_msg.h>
-/* Send/receive PFCP messages to/from remote PFCP endpoints. */
-struct osmo_pfcp_endpoint {
- struct osmo_pfcp_endpoint_cfg cfg;
-
- /* PFCP socket */
- struct osmo_io_fd *iofd;
-
- /* The time at which this endpoint last restarted, as seconds since unix epoch. */
- uint32_t recovery_time_stamp;
-
- /* State for determining the next sequence number for transmitting a request message */
- uint32_t seq_nr_state;
-
- /* All transmitted PFCP Request messages, list of osmo_pfcp_queue_entry.
- * For a transmitted Request message, wait for a matching Response from a remote peer; if none arrives,
- * retransmit (see n1 and t1_ms). */
- struct llist_head sent_requests;
- DECLARE_HASHTABLE(sent_requests_by_seq_nr, 12);
- /* All transmitted PFCP Response messages, list of osmo_pfcp_queue_entry.
- * For a transmitted Response message, keep it in the queue for a fixed amount of time. If the peer retransmits
- * the original Request, do not dispatch the Request, but respond with the queued message directly. */
- struct llist_head sent_responses;
- DECLARE_HASHTABLE(sent_responses_by_seq_nr, 12);
-};
/*! Entry of pfcp_endpoint message queue of PFCP messages, for re-transsions. */
struct osmo_pfcp_queue_entry {
--
To view, visit https://gerrit.osmocom.org/c/libosmo-pfcp/+/42125?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-pfcp
Gerrit-Branch: master
Gerrit-Change-Id: Id3dcd1c2e086d40bbc7060d5e89aed5ee18249e1
Gerrit-Change-Number: 42125
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42119?usp=email )
Change subject: xua_asp_fsm: Validate remote ASP Id matching config in SG role
......................................................................
xua_asp_fsm: Validate remote ASP Id matching config in SG role
The node in SG role really doesn't have an ASP Id of its own (it is
never sent over the wire). Hence, use the "asp-identifier <N>" VTY
config in SG role to require the ASP to identify itself with a given
ASP identifier.
Related: OS#6953
Change-Id: I3e22439aa7e22f7a6113b093c44ace6745c808b9
---
M src/xua_asp_fsm.c
1 file changed, 27 insertions(+), 1 deletion(-)
Approvals:
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
osmith: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c
index 26247cb..913f0e8 100644
--- a/src/xua_asp_fsm.c
+++ b/src/xua_asp_fsm.c
@@ -556,15 +556,41 @@
case XUA_ASP_E_ASPSM_ASPUP:
ENSURE_SG_OR_IPSP(fi, event);
/* Optional ASP Identifier */
- if ((asp_id_ie = xua_msg_find_tag(data, SUA_IEI_ASP_ID))) {
+ asp_id_ie = xua_msg_find_tag(data, SUA_IEI_ASP_ID);
+
+ if (asp_id_ie) {
asp_id = xua_msg_part_get_u32(asp_id_ie);
if (!ss7_asp_check_remote_asp_id_unique(asp, asp_id)) {
peer_send_error(fi, M3UA_ERR_INVAL_ASP_ID);
return;
}
+ /* Expect specific ASP Id from ASP in SG role to match local config.
+ * In IPSP, each side can have its own local different ASP Identifier. */
+ if (asp->cfg.role == OSMO_SS7_ASP_ROLE_SG) {
+ if (asp->cfg.local_asp_id_present &&
+ asp->cfg.local_asp_id != asp_id) {
+ LOGPFSML(fi, LOGL_NOTICE, "ASPUP: Received asp_id %" PRIu32
+ " doesn't match configured 'asp-identifier %" PRIu32"'\n",
+ asp_id, asp->cfg.local_asp_id);
+ peer_send_error(fi, M3UA_ERR_INVAL_ASP_ID);
+ return;
+ }
+ }
/* Store for NTFY */
asp->remote_asp_id = asp_id;
asp->remote_asp_id_present = true;
+ } else if (asp->cfg.role == OSMO_SS7_ASP_ROLE_SG &&
+ asp->cfg.local_asp_id_present) {
+ /* If configured in role SG, expect the ASP to send us an ASP Identifier.
+ * RFC4666 3.8.1: 'The "ASP Identifier Required" error is sent by an SGP in
+ * response to an ASP Up message that does not contain an ASP Identifier
+ * parameter when the SGP requires one. The ASP SHOULD resend the ASP Up
+ * message with an ASP Identifier.'*/
+ LOGPFSML(fi, LOGL_NOTICE, "ASPUP: Received no asp_id "
+ "while expecting 'asp-identifier %" PRIu32"'\n",
+ asp->cfg.local_asp_id);
+ peer_send_error(fi, M3UA_ERR_ASP_ID_REQD);
+ return;
}
/* send ACK */
peer_send(fi, XUA_ASP_E_ASPSM_ASPUP_ACK, NULL);
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42119?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I3e22439aa7e22f7a6113b093c44ace6745c808b9
Gerrit-Change-Number: 42119
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
pespin has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42119?usp=email )
Change subject: xua_asp_fsm: Validate remote ASP Id matching config in SG role
......................................................................
Patch Set 4: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42119?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I3e22439aa7e22f7a6113b093c44ace6745c808b9
Gerrit-Change-Number: 42119
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 16 Feb 2026 10:54:26 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42113?usp=email )
(
2 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
)Change subject: xua_default_lm_fsm: Submit RKM REG REQ for all AS in ASP
......................................................................
xua_default_lm_fsm: Submit RKM REG REQ for all AS in ASP
So far only the first rctx (AS) was being registered.
This fixes RKM for ASPs serving multiple AS in ASP/IPSP role.
Relted: OS#6943
Change-Id: I932c1b05dfd37fd7b89adea0d1ea59a5dc6138b4
---
M src/xua_default_lm_fsm.c
1 file changed, 15 insertions(+), 14 deletions(-)
Approvals:
osmith: Looks good to me, but someone else must approve
laforge: Looks good to me, but someone else must approve
Jenkins Builder: Verified
pespin: Looks good to me, approved
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 1c8df3e..d526f74 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -174,6 +174,20 @@
return 0;
}
+static void reg_req_all_assoc_as(struct osmo_ss7_asp *asp)
+{
+ struct ss7_as_asp_assoc *assoc;
+ llist_for_each_entry(assoc, &asp->assoc_as_list, asp_entry) {
+ struct osmo_ss7_as *as = assoc->as;
+ struct osmo_xlm_prim *prim;
+ prim = xua_xlm_prim_alloc(OSMO_XLM_PRIM_M_RK_REG, PRIM_OP_REQUEST);
+ OSMO_ASSERT(prim);
+ prim->u.rk_reg.key = as->cfg.routing_key;
+ prim->u.rk_reg.traf_mode = as->cfg.mode;
+ osmo_xlm_sap_down(asp, &prim->oph);
+ }
+}
+
static void lm_idle(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
struct xua_layer_manager_default_priv *lmp = fi->priv;
@@ -319,8 +333,6 @@
static int lm_timer_cb(struct osmo_fsm_inst *fi)
{
struct xua_layer_manager_default_priv *lmp = fi->priv;
- struct osmo_xlm_prim *prim;
- struct osmo_ss7_as *as;
switch (fi->T) {
case SS7_ASP_LM_T_WAIT_ASP_UP:
@@ -341,18 +353,7 @@
* (statically) configured at the SG for this ASP, so
* let's dynamically register */
lm_fsm_state_chg(fi, S_RKM_REG);
- prim = xua_xlm_prim_alloc(OSMO_XLM_PRIM_M_RK_REG, PRIM_OP_REQUEST);
- OSMO_ASSERT(prim);
- as = ss7_asp_get_first_as(lmp->asp);
- if (!as) {
- LOGPFSML(fi, LOGL_ERROR, "Unable to find AS!\n");
- ss7_asp_disconnect_stream(lmp->asp);
- return 0;
- }
- /* Fill in settings from first AS (TODO: multiple AS support) */
- prim->u.rk_reg.key = as->cfg.routing_key;
- prim->u.rk_reg.traf_mode = as->cfg.mode;
- osmo_xlm_sap_down(lmp->asp, &prim->oph);
+ reg_req_all_assoc_as(lmp->asp);
break;
case SS7_ASP_LM_T_WAIT_NOTIY_RKM:
/* No AS has reported via NOTIFY even after dynamic RKM
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42113?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I932c1b05dfd37fd7b89adea0d1ea59a5dc6138b4
Gerrit-Change-Number: 42113
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>