pespin has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35947?usp=email )
Change subject: s2b: Use provided APN in CreateSessionReq
......................................................................
s2b: Use provided APN in CreateSessionReq
Change-Id: I9e48c531aec837aade44a8c87d61a67f6bb44ca9
---
M src/epdg_gtpc_s2b.erl
M src/epdg_ue_fsm.erl
2 files changed, 21 insertions(+), 14 deletions(-)
Approvals:
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/epdg_gtpc_s2b.erl b/src/epdg_gtpc_s2b.erl
index e3e464b..313e101 100644
--- a/src/epdg_gtpc_s2b.erl
+++ b/src/epdg_gtpc_s2b.erl
@@ -48,7 +48,7 @@
%% gen_server Function Exports
-export([init/1, handle_call/3, handle_cast/2, handle_info/2]).
-export([code_change/3]).
--export([create_session_req/1, delete_session_req/1]).
+-export([create_session_req/2, delete_session_req/1]).
%% Application Definitions
-define(SERVER, ?MODULE).
@@ -57,8 +57,6 @@
-define(CALLBACK_MOD, epdg_gtpc_s2b_cb).
-define(ENV_APP_NAME, osmo_epdg).
-%% TODO: make APN configurable? get it from HSS?
--define(APN, <<"internet">>).
-define(MCC, 901).
-define(MNC, 42).
-define(MNC_SIZE, 3).
@@ -137,14 +135,16 @@
lager:error("GTPv2C UDP socket open error: ~w~n", [Reason])
end.
-create_session_req(Imsi) ->
- gen_server:call(?SERVER, {gtpc_create_session_req, {Imsi}}).
+create_session_req(Imsi, Apn) ->
+ gen_server:call(?SERVER, {gtpc_create_session_req, {Imsi, Apn}}).
delete_session_req(Imsi) ->
gen_server:call(?SERVER, {gtpc_delete_session_req, {Imsi}}).
-handle_call({gtpc_create_session_req, {Imsi}}, {Pid, _Tag} = _From, State0) ->
- {Sess0, State1} = find_or_new_gtp_session(Imsi, Pid, State0),
+handle_call({gtpc_create_session_req, {Imsi, Apn}}, {Pid, _Tag} = _From, State0) ->
+ {Sess0, State1} = find_or_new_gtp_session(Imsi,
+ #gtp_session{pid = Pid, apn = list_to_binary(Apn)},
+ State0),
Req = gen_create_session_request(Sess0, State1),
%TODO: increment State.seq_no.
tx_gtp(Req, State1),
@@ -199,15 +199,13 @@
%% Internal Function Definitions
%% ------------------------------------------------------------------
-new_gtp_session(Imsi, Pid, State) ->
+new_gtp_session(Imsi, SessTpl, State) ->
% TODO: find non-used local TEI inside State
DefaultBearer = #gtp_bearer{
ebi = 5,
local_data_tei = State#gtp_state.next_local_data_tei
},
- Sess = #gtp_session{imsi = Imsi,
- pid = Pid,
- apn = ?APN,
+ Sess = SessTpl#gtp_session{imsi = Imsi,
local_control_tei = State#gtp_state.next_local_control_tei,
default_bearer_id = DefaultBearer#gtp_bearer.ebi,
bearers = sets:add_element(DefaultBearer, sets:new())
@@ -227,13 +225,13 @@
State#gtp_state.sessions),
Res.
-find_or_new_gtp_session(Imsi, Pid, State) ->
+find_or_new_gtp_session(Imsi, SessTpl, State) ->
Sess = find_gtp_session_by_imsi(Imsi, State),
case Sess of
#gtp_session{imsi = Imsi} ->
{Sess, State};
undefined ->
- new_gtp_session(Imsi, Pid, State)
+ new_gtp_session(Imsi, SessTpl, State)
end.
update_gtp_session(OldSess, NewSess, State) ->
diff --git a/src/epdg_ue_fsm.erl b/src/epdg_ue_fsm.erl
index 2553e3f..4b6747e 100644
--- a/src/epdg_ue_fsm.erl
+++ b/src/epdg_ue_fsm.erl
@@ -239,7 +239,7 @@
state_authenticated({call, From}, tunnel_request, Data) ->
lager:info("ue_fsm state_authenticated event=tunnel_request, ~p~n",
[Data]),
- epdg_gtpc_s2b:create_session_req(Data#ue_fsm_data.imsi),
+ epdg_gtpc_s2b:create_session_req(Data#ue_fsm_data.imsi, Data#ue_fsm_data.apn),
{keep_state, Data, [{reply,From,ok}]};
state_authenticated({call, From}, {received_gtpc_create_session_response, Result}, Data)
->
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35947?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I9e48c531aec837aade44a8c87d61a67f6bb44ca9
Gerrit-Change-Number: 35947
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged