pespin has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/36333?usp=email )
Change subject: Rename code paths Tx/Rx of Diameter Swm DER/DEA ......................................................................
Rename code paths Tx/Rx of Diameter Swm DER/DEA
Rename all related code paths related to Tx/Rx of DER and DEA messages, so that it becomes easier to match code to spec references.
Change-Id: I4f4219ab04dce4ca7aac3a0410ac94a41080949f --- M src/aaa_diameter_swm.erl M src/aaa_ue_fsm.erl M src/epdg_diameter_swm.erl M src/epdg_ue_fsm.erl 4 files changed, 84 insertions(+), 71 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved
diff --git a/src/aaa_diameter_swm.erl b/src/aaa_diameter_swm.erl index c7c87a5..fadff7e 100644 --- a/src/aaa_diameter_swm.erl +++ b/src/aaa_diameter_swm.erl @@ -14,13 +14,13 @@ -export([init/1, handle_call/3, handle_cast/2, handle_info/2]). -export([code_change/3, terminate/2]).
--export([rx_auth_request/4, - rx_auth_compl_request/2, +-export([rx_der_auth_request/4, + rx_der_auth_compl_request/2, rx_reauth_answer/2, rx_session_termination_request/1, rx_abort_session_answer/1]). --export([tx_auth_response/2, - tx_auth_compl_response/2, +-export([tx_dea_auth_response/2, + tx_dea_auth_compl_response/2, tx_reauth_request/1, tx_session_termination_answer/2, tx_as_request/1]). @@ -38,11 +38,11 @@ % Tx over emulated SWm wire: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-tx_auth_response(Imsi, Result) -> - _Result = gen_server:call(?SERVER, {epdg_auth_resp, Imsi, Result}). +tx_dea_auth_response(Imsi, Result) -> + _Result = gen_server:call(?SERVER, {dea_auth_resp, Imsi, Result}).
-tx_auth_compl_response(Imsi, Result) -> - _Result = gen_server:call(?SERVER, {epdg_auth_compl_resp, Imsi, Result}). +tx_dea_auth_compl_response(Imsi, Result) -> + _Result = gen_server:call(?SERVER, {dea_auth_compl_resp, Imsi, Result}).
tx_reauth_request(Imsi) -> _Result = gen_server:call(?SERVER, {rar, Imsi}). @@ -56,11 +56,11 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Rx from emulated SWm wire: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -rx_auth_request(Imsi, PdpTypeNr, Apn, EAP) -> - gen_server:cast(?SERVER, {epdg_auth_req, Imsi, PdpTypeNr, Apn, EAP}). +rx_der_auth_request(Imsi, PdpTypeNr, Apn, EAP) -> + gen_server:cast(?SERVER, {der_auth_req, Imsi, PdpTypeNr, Apn, EAP}).
-rx_auth_compl_request(Imsi, Apn) -> - gen_server:cast(?SERVER, {epdg_auth_compl_req, Imsi, Apn}). +rx_der_auth_compl_request(Imsi, Apn) -> + gen_server:cast(?SERVER, {der_auth_compl_req, Imsi, Apn}).
rx_reauth_answer(Imsi, Result) -> gen_server:cast(?SERVER, {raa, Imsi, Result}). @@ -73,21 +73,21 @@
%% handle_cast: Rx side
-handle_cast({epdg_auth_req, Imsi, PdpTypeNr, Apn, EAP}, State) -> +handle_cast({der_auth_req, Imsi, PdpTypeNr, Apn, EAP}, State) -> case aaa_ue_fsm:get_pid_by_imsi(Imsi) of undefined -> {ok, Pid} = aaa_ue_fsm:start(Imsi); Pid -> Pid end, - aaa_ue_fsm:ev_rx_swm_auth_req(Pid, {PdpTypeNr, Apn, EAP}), + aaa_ue_fsm:ev_rx_swm_der_auth_req(Pid, {PdpTypeNr, Apn, EAP}), {noreply, State};
-handle_cast({epdg_auth_compl_req, Imsi, Apn}, State) -> +handle_cast({der_auth_compl_req, Imsi, Apn}, State) -> case aaa_ue_fsm:get_pid_by_imsi(Imsi) of Pid when is_pid(Pid) -> - aaa_ue_fsm:ev_rx_swm_auth_compl(Pid, Apn); + aaa_ue_fsm:ev_rx_swm_der_auth_compl(Pid, Apn); undefined -> RC_USER_UNKNOWN=5030, - epdg_diameter_swm:rx_auth_compl_response(Imsi, {error, RC_USER_UNKNOWN}) + epdg_diameter_swm:rx_dea_auth_compl_response(Imsi, {error, RC_USER_UNKNOWN}) end, {noreply, State};
@@ -133,12 +133,12 @@ {noreply, S}.
%% handle_call: Tx side -handle_call({epdg_auth_resp, Imsi, Result}, _From, State) -> - epdg_diameter_swm:rx_auth_response(Imsi, Result), +handle_call({dea_auth_resp, Imsi, Result}, _From, State) -> + epdg_diameter_swm:rx_dea_auth_response(Imsi, Result), {reply, ok, State};
-handle_call({epdg_auth_compl_resp, Imsi, Result}, _From, State) -> - epdg_diameter_swm:rx_auth_compl_response(Imsi, Result), +handle_call({dea_auth_compl_resp, Imsi, Result}, _From, State) -> + epdg_diameter_swm:rx_dea_auth_compl_response(Imsi, Result), {reply, ok, State};
handle_call({rar, Imsi}, _From, State) -> diff --git a/src/aaa_ue_fsm.erl b/src/aaa_ue_fsm.erl index d2e4aad..abbe40e 100644 --- a/src/aaa_ue_fsm.erl +++ b/src/aaa_ue_fsm.erl @@ -42,7 +42,8 @@ -export([start/1, stop/1]). -export([init/1,callback_mode/0,terminate/3]). -export([get_server_name_by_imsi/1, get_pid_by_imsi/1]). --export([ev_rx_swm_auth_req/2, ev_rx_swm_reauth_answer/2, ev_rx_swm_auth_compl/2, ev_rx_swm_str/1, ev_rx_swm_asa/1, +-export([ev_rx_swm_der_auth_req/2, ev_rx_swm_der_auth_compl/2, + ev_rx_swm_reauth_answer/2, ev_rx_swm_str/1, ev_rx_swm_asa/1, ev_rx_swx_maa/2, ev_rx_swx_saa/2, ev_rx_swx_ppr/2, ev_rx_swx_rtr/1, ev_rx_s6b_aar/2, ev_rx_s6b_str/1, ev_rx_s6b_raa/2, ev_rx_s6b_asa/2]). -export([state_new/3, @@ -86,10 +87,10 @@ {error, Err} end.
-ev_rx_swm_auth_req(Pid, {PdpTypeNr, Apn, EAP}) -> - lager:info("ue_fsm ev_rx_swm_auth_req~n", []), +ev_rx_swm_der_auth_req(Pid, {PdpTypeNr, Apn, EAP}) -> + lager:info("ue_fsm ev_rx_swm_der_auth_req~n", []), try - gen_statem:call(Pid, {rx_swm_auth_req, PdpTypeNr, Apn, EAP}) + gen_statem:call(Pid, {rx_swm_der_auth_req, PdpTypeNr, Apn, EAP}) catch exit:Err -> {error, Err} @@ -103,10 +104,10 @@ {error, Err} end.
-ev_rx_swm_auth_compl(Pid, Apn) -> - lager:info("ue_fsm ev_rx_swm_auth_compl~n", []), +ev_rx_swm_der_auth_compl(Pid, Apn) -> + lager:info("ue_fsm ev_rx_swm_der_auth_compl~n", []), try - gen_statem:call(Pid, {rx_swm_auth_compl, Apn}) + gen_statem:call(Pid, {rx_swm_der_auth_compl, Apn}) catch exit:Err -> {error, Err} @@ -229,8 +230,8 @@ state_new(enter, _OldState, Data) -> {keep_state, Data};
-state_new({call, From}, {rx_swm_auth_req, PdpTypeNr, Apn, EAP}, Data) -> - lager:info("ue_fsm state_new event=rx_swm_auth_req {~p, ~p, ~p}, ~p~n", [PdpTypeNr, Apn, EAP, Data]), +state_new({call, From}, {rx_swm_der_auth_req, PdpTypeNr, Apn, EAP}, Data) -> + lager:info("ue_fsm state_new event=rx_swm_der_auth_req {~p, ~p, ~p}, ~p~n", [PdpTypeNr, Apn, EAP, Data]), case maps:find(authorization, EAP) of {ok, Authorization} when is_binary(Authorization) -> Authorization; error -> Authorization = [] @@ -240,8 +241,8 @@ {error, Err} -> {keep_state, Data, [{reply,From,{error, Err}}]} end;
-state_new({call, From}, {rx_swm_auth_compl, Apn}, Data) -> - lager:info("ue_fsm state_new event=rx_swm_auth_compl, ~p~n", [Data]), +state_new({call, From}, {rx_swm_der_auth_compl, Apn}, Data) -> + lager:info("ue_fsm state_new event=rx_swm_der_auth_compl, ~p~n", [Data]), case aaa_diameter_swx:server_assignment_request(Data#ue_fsm_data.imsi, 1, Apn, []) of ok -> {next_state, state_wait_swx_saa, Data, [{reply,From,ok}]}; {error, Err} -> {keep_state, Data, [{reply,From,{error, Err}}]} @@ -256,7 +257,7 @@
state_wait_swx_maa({call, From}, {rx_swx_maa, Result}, Data) -> lager:info("ue_fsm state_wait_swx_maa event=rx_swx_maa, ~p~n", [Data]), - aaa_diameter_swm:tx_auth_response(Data#ue_fsm_data.imsi, Result), + aaa_diameter_swm:tx_dea_auth_response(Data#ue_fsm_data.imsi, Result), {next_state, state_new, Data, [{reply,From,ok}]}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -270,10 +271,10 @@ lager:info("ue_fsm state_wait_swx_saa event=rx_swx_saa ~p, ~p~n", [Result, Data]), case Result of {error, _SAType, DiaRC} -> - aaa_diameter_swm:tx_auth_compl_response(Data#ue_fsm_data.imsi, {error, DiaRC}), + aaa_diameter_swm:tx_dea_auth_compl_response(Data#ue_fsm_data.imsi, {error, DiaRC}), {next_state, state_new, Data, [{reply,From,ok}]}; {ok, _SAType, ResInfo} -> - aaa_diameter_swm:tx_auth_compl_response(Data#ue_fsm_data.imsi, {ok, ResInfo}), + aaa_diameter_swm:tx_dea_auth_compl_response(Data#ue_fsm_data.imsi, {ok, ResInfo}), {next_state, state_authenticated, Data, [{reply,From,ok}]} end.
@@ -350,8 +351,8 @@ end end;
-state_authenticated({call, _From}, {rx_swm_auth_req, PdpTypeNr, Apn, EAP}, Data) -> - lager:info("ue_fsm state_authenticated event=rx_swm_auth_req {~p, ~p, ~p}, ~p~n", [PdpTypeNr, Apn, EAP, Data]), +state_authenticated({call, _From}, {rx_swm_der_auth_req, PdpTypeNr, Apn, EAP}, Data) -> + lager:info("ue_fsm state_authenticated event=rx_swm_der_auth_req {~p, ~p, ~p}, ~p~n", [PdpTypeNr, Apn, EAP, Data]), {next_state, state_new, Data, [postpone]};
state_authenticated({call, From}, {rx_swx_ppr, _PGWAddresses}, Data) -> diff --git a/src/epdg_diameter_swm.erl b/src/epdg_diameter_swm.erl index 5d7ffe2..05fb87b 100644 --- a/src/epdg_diameter_swm.erl +++ b/src/epdg_diameter_swm.erl @@ -14,13 +14,13 @@ -export([init/1, handle_call/3, handle_cast/2, handle_info/2]). -export([code_change/3, terminate/2]).
--export([tx_auth_request/4, +-export([tx_der_auth_request/4, tx_reauth_answer/2, - tx_auth_compl_request/2, + tx_der_auth_compl_request/2, tx_session_termination_request/1, tx_abort_session_answer/1]). --export([rx_auth_response/2, - rx_auth_compl_response/2, +-export([rx_dea_auth_response/2, + rx_dea_auth_compl_response/2, rx_reauth_request/1, rx_session_termination_answer/2, rx_abort_session_request/1]). @@ -37,16 +37,16 @@
%% Swm Diameter message Diameter-EAP-Request, 3GPP TS 29.273 Table 7.1.2.1.1 -tx_auth_request(Imsi, PdpTypeNr, Apn, EAP) -> +tx_der_auth_request(Imsi, PdpTypeNr, Apn, EAP) -> % In Diameter we use Imsi as strings, as done by diameter module. ImsiStr = binary_to_list(Imsi), % PdpTypeNr: SWm Diameter AVP "UE-Local-IP-Address" % Apn: SWm Diameter AVP "Service-Selection" % EAP: SWm Diameter AVP EAP-Payload - Result = gen_server:call(?SERVER, {epdg_auth_req, ImsiStr, PdpTypeNr, Apn, EAP}), + Result = gen_server:call(?SERVER, {der_auth_req, ImsiStr, PdpTypeNr, Apn, EAP}), case Result of {ok, _AuthTuples} -> - epdg_ue_fsm:received_swm_auth_response(self(), Result), + epdg_ue_fsm:received_swm_dea_auth_response(self(), Result), ok; _ -> Result end. @@ -57,13 +57,13 @@ _Result = gen_server:call(?SERVER, {raa, ImsiStr, DiaRC}).
% Rx "GSUP CEAI LU Req" is our way of saying Rx "Swm Diameter-EAP REQ (DER) with EAP AVP containing successuful auth": -tx_auth_compl_request(Imsi, Apn) -> +tx_der_auth_compl_request(Imsi, Apn) -> % In Diameter we use Imsi as strings, as done by diameter module. ImsiStr = binary_to_list(Imsi), - Result = gen_server:call(?SERVER, {epdg_auth_compl_req, ImsiStr, Apn}), + Result = gen_server:call(?SERVER, {der_auth_compl_req, ImsiStr, Apn}), case Result of {ok, _Mar} -> - epdg_ue_fsm:received_swm_auth_compl_response(self(), Result), + epdg_ue_fsm:received_swm_dea_auth_compl_response(self(), Result), ok; _ -> Result end. @@ -91,9 +91,9 @@ _ -> Result end.
-handle_call({epdg_auth_req, Imsi, PdpTypeNr, Apn, EAP}, _From, State) -> +handle_call({der_auth_req, Imsi, PdpTypeNr, Apn, EAP}, _From, State) -> % we yet don't implement the Diameter SWm interface on the wire, we process the call internally: - ok = aaa_diameter_swm:rx_auth_request(Imsi, PdpTypeNr, Apn, EAP), + ok = aaa_diameter_swm:rx_der_auth_request(Imsi, PdpTypeNr, Apn, EAP), {reply, ok, State};
handle_call({raa, Imsi, DiaRC}, _From, State) -> @@ -101,9 +101,9 @@ aaa_diameter_swm:rx_reauth_answer(Imsi, DiaRC#epdg_dia_rc.result_code), {reply, ok, State};
-handle_call({epdg_auth_compl_req, Imsi, Apn}, _From, State) -> +handle_call({der_auth_compl_req, Imsi, Apn}, _From, State) -> % we yet don't implement the Diameter SWm interface on the wire, we process the call internally: - Reply = aaa_diameter_swm:rx_auth_compl_request(Imsi, Apn), + Reply = aaa_diameter_swm:rx_der_auth_compl_request(Imsi, Apn), {reply, Reply, State};
handle_call({str, Imsi}, _From, State) -> @@ -116,21 +116,21 @@ Reply = aaa_diameter_swm:rx_abort_session_answer(Imsi), {reply, Reply, State}.
-handle_cast({epdg_auth_resp, ImsiStr, Result}, State) -> +handle_cast({dea_auth_resp, ImsiStr, Result}, State) -> Imsi = list_to_binary(ImsiStr), case epdg_ue_fsm:get_pid_by_imsi(Imsi) of Pid when is_pid(Pid) -> - epdg_ue_fsm:received_swm_auth_response(Pid, Result); + epdg_ue_fsm:received_swm_dea_auth_response(Pid, Result); undefined -> error_logger:error_report(["unknown swm_session", {module, ?MODULE}, {imsi, Imsi}, {state, State}]) end, {noreply, State};
-handle_cast({epdg_auth_compl_resp, ImsiStr, Result}, State) -> +handle_cast({dea_auth_compl_resp, ImsiStr, Result}, State) -> Imsi = list_to_binary(ImsiStr), case epdg_ue_fsm:get_pid_by_imsi(Imsi) of Pid when is_pid(Pid) -> - epdg_ue_fsm:received_swm_auth_compl_response(Pid, Result); + epdg_ue_fsm:received_swm_dea_auth_compl_response(Pid, Result); undefined -> error_logger:error_report(["unknown swm_session", {module, ?MODULE}, {imsi, Imsi}, {state, State}]) end, @@ -197,13 +197,13 @@ ok = gen_server:cast(?SERVER, {rar, Imsi}).
%% Emulation from the wire (DIAMETER SWm), called from internal AAA Server: -rx_auth_response(Imsi, Result) -> - ok = gen_server:cast(?SERVER, {epdg_auth_resp, Imsi, Result}). +rx_dea_auth_response(Imsi, Result) -> + ok = gen_server:cast(?SERVER, {dea_auth_resp, Imsi, Result}).
%Rx Swm Diameter-EAP Answer (DEA) containing APN-Configuration, triggered by %earlier Tx DER EAP AVP containing successuful auth": -rx_auth_compl_response(Imsi, Result) -> - ok = gen_server:cast(?SERVER, {epdg_auth_compl_resp, Imsi, Result}). +rx_dea_auth_compl_response(Imsi, Result) -> + ok = gen_server:cast(?SERVER, {dea_auth_compl_resp, Imsi, Result}).
% Rx SWm Diameter STA: rx_session_termination_answer(Imsi, Result) -> diff --git a/src/epdg_ue_fsm.erl b/src/epdg_ue_fsm.erl index b75a865..660323b 100644 --- a/src/epdg_ue_fsm.erl +++ b/src/epdg_ue_fsm.erl @@ -44,7 +44,7 @@ -export([get_server_name_by_imsi/1, get_pid_by_imsi/1]). -export([auth_request/2, lu_request/1, tunnel_request/2, purge_ms_request/1, cancel_location_result/1]). --export([received_swm_reauth_request/1, received_swm_auth_response/2, received_swm_auth_compl_response/2, +-export([received_swm_reauth_request/1, received_swm_dea_auth_response/2, received_swm_dea_auth_compl_response/2, received_swm_session_termination_answer/2, received_swm_abort_session_request/1]). -export([received_gtpc_create_session_response/2, received_gtpc_delete_session_response/2, received_gtpc_delete_bearer_request/1]). -export([state_new/3, @@ -146,19 +146,19 @@ {error, Err} end.
-received_swm_auth_response(Pid, Result) -> - lager:info("ue_fsm received_swm_auth_response ~p~n", [Result]), +received_swm_dea_auth_response(Pid, Result) -> + lager:info("ue_fsm received_swm_dea_auth_response ~p~n", [Result]), try - gen_statem:call(Pid, {received_swm_auth_response, Result}) + gen_statem:call(Pid, {received_swm_dea_auth_response, Result}) catch exit:Err -> {error, Err} end.
-received_swm_auth_compl_response(Pid, Result) -> - lager:info("ue_fsm received_swm_auth_compl_response ~p~n", [Result]), +received_swm_dea_auth_compl_response(Pid, Result) -> + lager:info("ue_fsm received_swm_dea_auth_compl_response ~p~n", [Result]), try - gen_statem:call(Pid, {received_swm_auth_compl_response, Result}) + gen_statem:call(Pid, {received_swm_dea_auth_compl_response, Result}) catch exit:Err -> {error, Err} @@ -215,7 +215,7 @@ %% ------------------------------------------------------------------
ev_handle({call, From}, {auth_request, PdpTypeNr, Apn, EAP}, Data) -> - case epdg_diameter_swm:tx_auth_request(Data#ue_fsm_data.imsi, PdpTypeNr, Apn, EAP) of + case epdg_diameter_swm:tx_der_auth_request(Data#ue_fsm_data.imsi, PdpTypeNr, Apn, EAP) of ok -> {next_state, state_wait_auth_resp, Data, [{reply,From,ok}]}; {error, Err} -> {stop_and_reply, Err, [{reply,From,{error,Err}}], Data} end. @@ -262,8 +262,8 @@ state_wait_auth_resp(enter, _OldState, Data) -> {keep_state, Data};
-state_wait_auth_resp({call, From}, {received_swm_auth_response, Result}, Data) -> - lager:info("ue_fsm state_wait_auth_resp event=received_swm_auth_response Result=~p, ~p~n", [Result, Data]), +state_wait_auth_resp({call, From}, {received_swm_dea_auth_response, Result}, Data) -> + lager:info("ue_fsm state_wait_auth_resp event=received_swm_dea_auth_response Result=~p, ~p~n", [Result, Data]), case Result of {ok, _AuthTuples} -> gsup_server:auth_response(Data#ue_fsm_data.imsi, Result), @@ -290,14 +290,14 @@ state_authenticating({call, From}, lu_request, Data) -> lager:info("ue_fsm state_authenticating event=lu_request, ~p~n", [Data]), % Rx "GSUP CEAI LU Req" is our way of saying Rx "Swm Diameter-EAP REQ (DER) with EAP AVP containing successuful auth": - case epdg_diameter_swm:tx_auth_compl_request(Data#ue_fsm_data.imsi, Data#ue_fsm_data.apn) of + case epdg_diameter_swm:tx_der_auth_compl_request(Data#ue_fsm_data.imsi, Data#ue_fsm_data.apn) of ok -> {keep_state, Data, [{reply,From,ok}]}; {error, Err} -> {stop_and_reply, Err, [{reply,From,{error,Err}}], Data} end;
% Rx Swm Diameter-EAP Answer (DEA) containing APN-Configuration, triggered by % earlier Tx DER EAP AVP containing successuful auth", when we received GSUP LU Req: -state_authenticating({call, From}, {received_swm_auth_compl_response, Result}, Data) -> +state_authenticating({call, From}, {received_swm_dea_auth_compl_response, Result}, Data) -> lager:info("ue_fsm state_authenticating event=lu_request, ~p, ~p~n", [Result, Data]), % Rx "GSUP CEAI LU Req" is our way of saying Rx "Swm Diameter-EAP REQ (DER) with EAP AVP containing successuful auth": case Result of