pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/41303?usp=email )
Change subject: aaa_diameter_swx: Avoid answering RTR with Success if already deregistering
......................................................................
aaa_diameter_swx: Avoid answering RTR with Success if already deregistering
When receiving an SWx RTR on our osmo-epdg (epdg+AAA), we initiate the
deregistration against peer nodes on other interfaces and answer with SWx RTA.
If a subsequent RTR for the subscriber arrives on the interface while
the deregistration is in progress, we'd answer with RTA Result-Code 2001
SUCCESS. Let's instead answer already as if we didn't know about the
subscriber, since it will end up being freed in a short span of time and
nothing can be done about it.
Related: OS#6796
Change-Id: I0ed13e9503ec380ce4331c662ca3eb966ccbda92
---
M src/aaa_diameter_swx_cb.erl
M src/aaa_ue_fsm.erl
2 files changed, 21 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/03/41303/1
diff --git a/src/aaa_diameter_swx_cb.erl b/src/aaa_diameter_swx_cb.erl
index 3ae11f0..f8ebd08 100644
--- a/src/aaa_diameter_swx_cb.erl
+++ b/src/aaa_diameter_swx_cb.erl
@@ -149,14 +149,26 @@
case DeregReason of
#'Deregistration-Reason'{'Reason-Code' = ?'REASON-CODE_PERMANENT_TERMINATION'} ->
case aaa_ue_fsm:ev_rx_swx_rtr(Pid) of
- {error, _} -> aaa_ue_fsm:stop(Pid);
- _ -> ok
+ {error, dereg_in_progress} ->
+ Res = [],
+ %% TS 29.229 6.2.2.1 DIAMETER_ERROR_USER_UNKNOWN
+ ERes = #'Experimental-Result'{'Vendor-Id' = ?VENDOR_ID_3GPP,
+ 'Experimental-Result-Code' = 5001};
+ {error, _} ->
+ aaa_ue_fsm:stop(Pid), % unknown error, make sure we tear down.
+ Res = [],
+ %% TS 29.229 6.2.2.1 DIAMETER_ERROR_USER_UNKNOWN
+ ERes = #'Experimental-Result'{'Vendor-Id' = ?VENDOR_ID_3GPP,
+ 'Experimental-Result-Code' = 5001};
+ _ ->
+ Res = 2001, %% Success
+ ERes = []
end;
_ ->
- aaa_ue_fsm:stop(Pid)
- end,
- Res = 2001, %% Success
- ERes = [];
+ aaa_ue_fsm:stop(Pid),
+ Res = 2001, %% Success
+ ERes = []
+ end;
undefined ->
Res = [],
%% TS 29.229 6.2.2.1 DIAMETER_ERROR_USER_UNKNOWN
diff --git a/src/aaa_ue_fsm.erl b/src/aaa_ue_fsm.erl
index fa1c807..91830d9 100644
--- a/src/aaa_ue_fsm.erl
+++ b/src/aaa_ue_fsm.erl
@@ -451,7 +451,7 @@
state_authenticated_wait_swx_saa({call, From}, rx_swx_rtr, Data) ->
lager:info("ue_fsm state_authenticated_wait_swx_saa event=rx_swx_rtr ~p~n", [Data]),
%% We are already tearing down in an ordered manner, accept and do nothing.
- {keep_state, Data, [{reply,From,ok}]};
+ {keep_state, Data, [{reply,From,{error,dereg_in_progress}}]}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% state_dereg_net_initiated_wait_s6b_asa:
@@ -469,7 +469,7 @@
state_dereg_net_initiated_wait_s6b_asa({call, From}, rx_swx_rtr, Data) ->
lager:info("ue_fsm state_dereg_net_initiated_wait_s6b_asa event=rx_swx_rtr ~p~n", [Data]),
%% We are already tearing down in an ordered manner, accept and do nothing.
- {keep_state, Data, [{reply,From,ok}]};
+ {keep_state, Data, [{reply,From,{error,dereg_in_progress}}]};
state_dereg_net_initiated_wait_s6b_asa({call, From}, Ev, Data) ->
lager:notice("ue_fsm state_dereg_net_initiated_wait_s6b_asa: Unexpected call event ~p, ~p~n", [Ev, Data]),
@@ -494,7 +494,7 @@
state_dereg_net_initiated_wait_swm_asa({call, From}, rx_swx_rtr, Data) ->
lager:info("ue_fsm state_dereg_net_initiated_wait_swm_asa event=rx_swx_rtr ~p~n", [Data]),
%% We are already tearing down in an ordered manner, accept and do nothing.
- {keep_state, Data, [{reply,From,ok}]};
+ {keep_state, Data, [{reply,From,{error,dereg_in_progress}}]};
state_dereg_net_initiated_wait_swm_asa({call, From}, Ev, Data) ->
lager:notice("ue_fsm state_dereg_net_initiated_wait_swm_asa: Unexpected call event ~p, ~p~n", [Ev, Data]),
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/41303?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I0ed13e9503ec380ce4331c662ca3eb966ccbda92
Gerrit-Change-Number: 41303
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/41301?usp=email )
Change subject: cosmetic: Fix typo in code documentation
......................................................................
cosmetic: Fix typo in code documentation
Change-Id: I41da3bcc3b5f982901baa8162d7fd55f35d70485
---
M src/aaa_ue_fsm.erl
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/01/41301/1
diff --git a/src/aaa_ue_fsm.erl b/src/aaa_ue_fsm.erl
index c73f636..64f6cb3 100644
--- a/src/aaa_ue_fsm.erl
+++ b/src/aaa_ue_fsm.erl
@@ -454,7 +454,7 @@
{next_state, state_dereg_net_initiated_wait_swm_asa, Data}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% state_dereg_net_initiated_wait_s6b_asa:
+%% state_dereg_net_initiated_wait_swm_asa:
%% HSS asked us to do deregistration towards the user.
%% S6b (PGW) was already torn down. Now transmit SWm ASR towards ePDG and wait for ASA back.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/41301?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I41da3bcc3b5f982901baa8162d7fd55f35d70485
Gerrit-Change-Number: 41301
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Attention is currently required from: jolly, pespin.
fixeria has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmocore/+/41300?usp=email )
Change subject: io_uring: Avoid extra reads if iofd becomes unregistered by user
......................................................................
Patch Set 1: Code-Review+1
(1 comment)
Patchset:
PS1:
Letting @andreas@eversberg.eu a chance to take a look.
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/41300?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I231d5a16768b730f67089090c244bcc10dc69c3a
Gerrit-Change-Number: 41300
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 05 Nov 2025 12:01:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Attention is currently required from: jolly, pespin.
laforge has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmocore/+/41300?usp=email )
Change subject: io_uring: Avoid extra reads if iofd becomes unregistered by user
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/41300?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I231d5a16768b730f67089090c244bcc10dc69c3a
Gerrit-Change-Number: 41300
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: Jenkins Builder
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 05 Nov 2025 11:01:44 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes