lynxis lazus submitted this change.

View Change

Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve
Set Item-Number in UTRAN and GERAN vectors.

For some reason this field was only being set on E-UTRAN vectors, even though its required for all vectors.

Change-Id: I75da04b806f23452c9b4cfaad0446dceb32a0369
---
M src/server_cb.erl
1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/server_cb.erl b/src/server_cb.erl
index f51bb5c..1606085 100644
--- a/src/server_cb.erl
+++ b/src/server_cb.erl
@@ -74,13 +74,13 @@
#'E-UTRAN-Vector'{'Item-Number'=Idx, 'RAND'=Rand, 'XRES'=Res , 'AUTN'=Autn,
'KASME'=compute_kasme(Ck, Ik, Vplmn, Autn)}.

--spec gsup_tuple2dia_utran('GSUPAuthTuple'()) -> #'UTRAN-Vector'{}.
-gsup_tuple2dia_utran(#{autn:=Autn, ck:=Ck, ik:=Ik, rand:=Rand, res:=Res}) ->
- #'UTRAN-Vector'{'RAND'=Rand, 'XRES'=Res, 'AUTN'=Autn, 'Confidentiality-Key'=Ck, 'Integrity-Key'=Ik}.
+-spec gsup_tuple2dia_utran('GSUPAuthTuple'(), integer()) -> #'UTRAN-Vector'{}.
+gsup_tuple2dia_utran(#{autn:=Autn, ck:=Ck, ik:=Ik, rand:=Rand, res:=Res}, Idx) ->
+ #'UTRAN-Vector'{'Item-Number'=Idx, 'RAND'=Rand, 'XRES'=Res, 'AUTN'=Autn, 'Confidentiality-Key'=Ck, 'Integrity-Key'=Ik}.

--spec gsup_tuple2dia_geran('GSUPAuthTuple'()) -> #'GERAN-Vector'{}.
-gsup_tuple2dia_geran(#{rand:=Rand, sres:=Sres, kc:=Kc}) ->
- #'GERAN-Vector'{'RAND'=Rand, 'SRES'=Sres, 'Kc'=Kc}.
+-spec gsup_tuple2dia_geran('GSUPAuthTuple'(), integer()) -> #'GERAN-Vector'{}.
+gsup_tuple2dia_geran(#{rand:=Rand, sres:=Sres, kc:=Kc}, Idx) ->
+ #'GERAN-Vector'{'Item-Number'=Idx, 'RAND'=Rand, 'SRES'=Sres, 'Kc'=Kc}.

-spec gsup_tuples2dia_eutran(['GSUPAuthTuple'()], binary()) -> [#'E-UTRAN-Vector'{}].
gsup_tuples2dia_eutran(List, Vplmn) -> gsup_tuples2dia_eutran(List, Vplmn, [], 1).
@@ -89,6 +89,20 @@
Dia = gsup_tuple2dia_eutran(Head, Vplmn, Ctr),
gsup_tuples2dia_eutran(Tail, Vplmn, [Dia|Out], Ctr+1).

+-spec gsup_tuples2dia_utran(['GSUPAuthTuple'()]) -> [#'UTRAN-Vector'{}].
+gsup_tuples2dia_utran(List) -> gsup_tuples2dia_utran(List, [], 1).
+gsup_tuples2dia_utran([], Out, _Idx) -> Out;
+gsup_tuples2dia_utran([Head|Tail], Out, Ctr) ->
+ Dia = gsup_tuple2dia_utran(Head, Ctr),
+ gsup_tuples2dia_utran(Tail, [Dia|Out], Ctr+1).
+
+-spec gsup_tuples2dia_geran(['GSUPAuthTuple'()]) -> [#'GERAN-Vector'{}].
+gsup_tuples2dia_geran(List) -> gsup_tuples2dia_geran(List, [], 1).
+gsup_tuples2dia_geran([], Out, _Idx) -> Out;
+gsup_tuples2dia_geran([Head|Tail], Out, Ctr) ->
+ Dia = gsup_tuple2dia_geran(Head, Ctr),
+ gsup_tuples2dia_geran(Tail, [Dia|Out], Ctr+1).
+
-type int_or_false() :: false | integer().
-spec gsup_tuples2dia(['GSUPAuthTuple'()], binary(), int_or_false(), int_or_false(), int_or_false()) -> #'Authentication-Info'{}.
gsup_tuples2dia(Tuples, Vplmn, NumEutran, NumUtran, NumGeran) ->
@@ -100,12 +114,12 @@
case NumUtran of
false -> UtranVecs = [];
0 -> UtranVecs = [];
- _ -> UtranVecs = lists:map(fun gsup_tuple2dia_utran/1, lists:sublist(Tuples,NumUtran))
+ _ -> UtranVecs = gsup_tuples2dia_utran(lists:sublist(Tuples,NumUtran))
end,
case NumGeran of
false -> GeranVecs = [];
0 -> GeranVecs = [];
- _ -> GeranVecs = lists:map(fun gsup_tuple2dia_geran/1, lists:sublist(Tuples,NumGeran))
+ _ -> GeranVecs = gsup_tuples2dia_geran(lists:sublist(Tuples,NumGeran))
end,
#'Authentication-Info'{'E-UTRAN-Vector'=EutranVecs, 'UTRAN-Vector'=UtranVecs,
'GERAN-Vector'=GeranVecs}.

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

Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo_dia2gsup
Gerrit-Branch: master
Gerrit-Change-Id: I75da04b806f23452c9b4cfaad0446dceb32a0369
Gerrit-Change-Number: 43092
Gerrit-PatchSet: 2
Gerrit-Owner: theenbyperor <q@magicalcodewit.ch>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu>