pespin has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35658?usp=email )
Change subject: Forward IP Address from CreateSessionresponse in GSUP EPDG Tunnel Result ......................................................................
Forward IP Address from CreateSessionresponse in GSUP EPDG Tunnel Result
Related: OS#6091 Change-Id: I2a9130d242830daa826414a287f54862752017d2 --- M rebar.config M rebar.lock M src/gsup_server.erl 3 files changed, 29 insertions(+), 5 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified pespin: Looks good to me, approved
diff --git a/rebar.config b/rebar.config index a2db3ea..19688f5 100644 --- a/rebar.config +++ b/rebar.config @@ -6,7 +6,7 @@ {lager, {git, "https://github.com/erlang-lager/lager", {tag, "3.9.2"}}}, {gtplib, "3.2.0"}, {osmo_ss7, {git, "https://gitea.osmocom.org/erlang/osmo_ss7", {ref, "9f294d3612f998860004820d1d85b4264721577b"}}}, - {osmo_gsup, {git, "https://gitea.osmocom.org/erlang/osmo_gsup", {branch, "lynxis/epdg"}}} + {osmo_gsup, {git, "https://gerrit.osmocom.org/erlang/osmo_gsup", {branch, "osmocom/epdg"}}} ]}.
{minimum_otp_vsn, "20.3"}. diff --git a/rebar.lock b/rebar.lock index 322e84d..d74d179 100644 --- a/rebar.lock +++ b/rebar.lock @@ -11,8 +11,8 @@ {ref,"459a3b2cdd9eadd29e5a7ce5c43932f5ccd6eb88"}}, 0}, {<<"osmo_gsup">>, - {git,"https://gitea.osmocom.org/erlang/osmo_gsup", - {ref,"07672d8ab1608aa9c9e50ca035521876558fcd42"}}, + {git,"https://gerrit.osmocom.org/erlang/osmo_gsup", + {ref,"1a064fa6aece492352271ae164b29262d66f6b6d"}}, 0}, {<<"osmo_ss7">>, {git,"https://gitea.osmocom.org/erlang/osmo_ss7", diff --git a/src/gsup_server.erl b/src/gsup_server.erl index 030a328..b8ed637 100644 --- a/src/gsup_server.erl +++ b/src/gsup_server.erl @@ -38,6 +38,8 @@
-include_lib("diameter_3gpp_ts29_273_swx.hrl"). -include_lib("osmo_ss7/include/ipa.hrl"). +-include_lib("osmo_gsup/include/gsup_protocol.hrl"). +-include_lib("gtplib/include/gtp_packet.hrl").
-define(IPAC_PROTO_EXT_GSUP, {osmo, 5}).
@@ -179,10 +181,22 @@ lager:info("GSUP: Rx ~p~n", [GsupMsgRx]), Result = epdg_gtpc_s2b:create_session_req(Imsi), case Result of - {ok, _} -> + {ok, #gtp{version = v2, type = create_session_response}} -> + {ok, CreateSessResp} = Result, + IEs = CreateSessResp#gtp.ie, + %%#{{v2_bearer_context,0} := BearerMap} = IEs, + #{{v2_pdn_address_allocation,0} := Paa} = IEs, + PdpAddress = #{pdp_type_org => 1, pdp_type_nr => 16#21, address => #{ ipv4 => Paa#v2_pdn_address_allocation.address}}, + PdpInfo = #{pdp_context_id => 0, + pdp_address => PdpAddress, + access_point_name => "foobar.apn", + quality_of_service => <<0, 0, 0>>, + pdp_charging => 0}, Resp = #{message_type => epdg_tunnel_result, imsi => Imsi, - message_class => 5 + message_class => 5, + pdp_info_complete => true, + pdp_info_list => [PdpInfo] }; {error, _} -> Resp = #{message_type => epdg_tunnel_error,