pespin has uploaded this change for review.

View Change

Expect NAI instead of Imsi in S6b AAR

Change-Id: I6599b84c2a0e1a758cb63bb9e419fa4c3cf4f4a6
---
M src/aaa_diameter_s6b_cb.erl
M src/conv.erl
2 files changed, 28 insertions(+), 2 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/31/35931/1
diff --git a/src/aaa_diameter_s6b_cb.erl b/src/aaa_diameter_s6b_cb.erl
index 7e3915d..ab15bd6 100644
--- a/src/aaa_diameter_s6b_cb.erl
+++ b/src/aaa_diameter_s6b_cb.erl
@@ -59,7 +59,8 @@
'Auth-Request-Type' = AuthReqType,
'User-Name' = [UserName],
'Service-Selection' = [Apn]} = Req,
- PidRes = aaa_ue_fsm:get_pid_by_imsi(UserName),
+ Imsi = conv:nai_to_imsi(UserName),
+ PidRes = aaa_ue_fsm:get_pid_by_imsi(Imsi),
case PidRes of
PidRes when is_pid(PidRes) ->
ok = aaa_ue_fsm:ev_rx_s6b_aar(PidRes, Apn),
@@ -67,7 +68,7 @@
receive
{aaa, ResultCode} -> lager:debug("Rx AAA with ResultCode=~p~n", [ResultCode])
end;
- undefined -> lager:error("Error looking up FSM for IMSI~n", [UserName]),
+ undefined -> lager:error("Error looking up FSM for IMSI~n", [Imsi]),
ResultCode = ?'RULE-FAILURE-CODE_CM_AUTHORIZATION_REJECTED'
end,
Resp = #'AAA'{'Session-Id'= SessionId,
diff --git a/src/conv.erl b/src/conv.erl
index 95e103d..15d6aa0 100644
--- a/src/conv.erl
+++ b/src/conv.erl
@@ -41,6 +41,7 @@
-export([ip_to_bin/1, bin_to_ip/1]).
-export([cause_gtp2gsup/1]).
-export([gtp2_paa_to_epdg_eua/1, epdg_eua_to_gsup_pdp_address/1]).
+-export([nai_to_imsi/1]).

% ergw_aaa/src/ergw_aaa_3gpp_dict.erl
% under GPLv2+
@@ -93,3 +94,18 @@
pdp_type_nr => ?GTP_PDP_ADDR_TYPE_NR_IPv6,
address => #{ ipv6 => Addr}}.
%TODO: IPv4v6
+
+% 3GPP TS 23.003 clause 19
+% Input: "<IMSI>@nai.epc.mnc<MNC>.mcc<MCC>.3gppnetwork.org"
+% % TODO: lead number prefix
+nai_to_imsi(NAI) ->
+ lager:error("PESPIN: NAI: ~p~n", [NAI]),
+ NAIRev = string:reverse(NAI),
+ lager:error("PESPIN: NAI Reversed: ~p~n", [NAIRev]),
+ ImsiRev = string:find(NAIRev, "@", trailing),
+ lager:error("PESPIN: Imsi Reversed: ~p~n", [ImsiRev]),
+ ImsiRev2 = string:trim(ImsiRev, leading, "@"),
+ lager:error("PESPIN: Imsi Reversed2: ~p~n", [ImsiRev2]),
+ Imsi = string:reverse(ImsiRev2),
+ lager:error("PESPIN: Imsi: ~p~n", [Imsi]),
+ Imsi.

To view, visit change 35931. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: I6599b84c2a0e1a758cb63bb9e419fa4c3cf4f4a6
Gerrit-Change-Number: 35931
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-MessageType: newchange