pespin has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35697?usp=email )
Change subject: s6b: Trigger SAR towards HSS when receiving AAR from PGW ......................................................................
s6b: Trigger SAR towards HSS when receiving AAR from PGW
As described in 3GPP TS 29.273 9.1.2.2.3 mentioning procedure from clause 8.1.2.2.2 (SAR/SAA).
Change-Id: I7e0bf449ac6cae550a5934d9d518bb3f2bf64d5b --- M src/aaa_diameter_s6b_cb.erl 1 file changed, 24 insertions(+), 4 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved
diff --git a/src/aaa_diameter_s6b_cb.erl b/src/aaa_diameter_s6b_cb.erl index 81757a9..8651383 100644 --- a/src/aaa_diameter_s6b_cb.erl +++ b/src/aaa_diameter_s6b_cb.erl @@ -49,6 +49,7 @@ lager:error("Request error: ~p~n", [Reason]), ?UNEXPECTED.
+% 3GPP TS 29.273 9.1.2.2 handle_request(#diameter_packet{msg = Req, errors = []}, _SvcName, {_, Caps}) when is_record(Req, 'AAR') -> lager:info("S6b Rx from ~p: ~p~n", [Caps, Req]), % extract relevant fields from DIAMETER AAR @@ -56,13 +57,20 @@ #'AAR'{'Session-Id' = SessionId, 'Auth-Application-Id' = AuthAppId, 'Auth-Request-Type' = AuthReqType, - 'User-Name' = _UserName} = Req, + 'User-Name' = UserName} = Req, + Result = aaa_diameter_swx:server_assignment_request(UserName, 1, "internet"), + case Result of + {ok, _} -> + ResultCode = 2001; + {error, _Err} -> + ResultCode = ?'RULE-FAILURE-CODE_CM_AUTHORIZATION_REJECTED' + end, Resp = #'AAA'{'Session-Id'=SessionId, 'Auth-Application-Id' = AuthAppId, 'Auth-Request-Type' = AuthReqType, - 'Result-Code'=2001, - 'Origin-Host'=OH, - 'Origin-Realm'=OR}, + 'Result-Code' = ResultCode, + 'Origin-Host' = OH, + 'Origin-Realm' = OR}, lager:info("S6b Tx to ~p: ~p~n", [Caps, Resp]), {reply, Resp};