<p>fixeria would like lynxis lazus to <strong>review</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16936">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add optional NUM_VECTORS_REQ IE to send_auth_info_req<br><br>Change-Id: Ifb338cb849c0c9b2ce338eaa8ead6ac307188d3b<br>---<br>M include/gsup_protocol.hrl<br>M src/gsup_protocol.erl<br>M test/gsup_encode_decode_test.erl<br>3 files changed, 21 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/erlang/osmo_gsup refs/changes/36/16936/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/gsup_protocol.hrl b/include/gsup_protocol.hrl</span><br><span>index 3f04ece..a08b934 100644</span><br><span>--- a/include/gsup_protocol.hrl</span><br><span>+++ b/include/gsup_protocol.hrl</span><br><span>@@ -107,6 +107,7 @@</span><br><span>   sm_alert_reason => integer(),</span><br><span>   imei => binary(),</span><br><span>   imei_check_result => integer(),</span><br><span style="color: hsl(120, 100%, 40%);">+  num_vectors_req => integer(),</span><br><span>   message_class => integer(),</span><br><span>   source_name => binary(),</span><br><span>   destination_name => binary(),</span><br><span>@@ -158,6 +159,7 @@</span><br><span> -define(SM_ALERT_REASON, 16#46).</span><br><span> -define(IMEI, 16#50).</span><br><span> -define(IMEI_CHECK_RESULT, 16#51).</span><br><span style="color: hsl(120, 100%, 40%);">+-define(NUM_VECTORS_REQ, 16#52).</span><br><span> -define(SOURCE_NAME, 16#60).</span><br><span> -define(DESTINATION_NAME, 16#61).</span><br><span> -define(AN_APDU, 16#62).</span><br><span>@@ -173,7 +175,7 @@</span><br><span>   16#04 => #{message_type => location_upd_req, mandatory => [], optional => [cn_domain]},</span><br><span>   16#05 => #{message_type => location_upd_err, mandatory => [cause]},</span><br><span>   16#06 => #{message_type => location_upd_res, mandatory => [], optional => [msisdn, hlr_number, pdp_info_complete, pdp_info_list, pdp_charging]},</span><br><span style="color: hsl(0, 100%, 40%);">-  16#08 => #{message_type => send_auth_info_req, mandatory => [], optional => [cn_domain, auts, rand, supported_rat_types, current_rat_type]},</span><br><span style="color: hsl(120, 100%, 40%);">+  16#08 => #{message_type => send_auth_info_req, mandatory => [], optional => [cn_domain, auts, rand, supported_rat_types, current_rat_type, num_vectors_req]},</span><br><span>   16#09 => #{message_type => send_auth_info_err, mandatory => [cause]},</span><br><span>   16#0a => #{message_type => send_auth_info_res, mandatory => [], optional => [auth_tuples, auts, rand]},</span><br><span>   16#0b => #{message_type => auth_failure_report, mandatory => [], optional => [cn_domain]},</span><br><span>diff --git a/src/gsup_protocol.erl b/src/gsup_protocol.erl</span><br><span>index 30d5574..5dd4bda 100644</span><br><span>--- a/src/gsup_protocol.erl</span><br><span>+++ b/src/gsup_protocol.erl</span><br><span>@@ -159,6 +159,10 @@</span><br><span>   ?CHECK_LEN(imei_check_result, Len, 1, 1),</span><br><span>   decode_ie(Tail, Map#{imei_check_result => IMEIResult});</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+decode_ie(<<?NUM_VECTORS_REQ, Len, NumVectorsRequest:Len/unit:8, Tail/binary>>, Map) -></span><br><span style="color: hsl(120, 100%, 40%);">+  ?CHECK_LEN(num_vectors_req, Len, 1, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+  decode_ie(Tail, Map#{num_vectors_req => NumVectorsRequest});</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> decode_ie(<<?SOURCE_NAME, Len, SourceName:Len/binary, Tail/binary>>, Map) -></span><br><span>   decode_ie(Tail, Map#{source_name => SourceName});</span><br><span> </span><br><span>@@ -467,6 +471,11 @@</span><br><span>   ?CHECK_SIZE(imei_check_result, Len, Value),</span><br><span>   encode_ie(maps:without([imei_check_result], GSUPMessage), <<Head/binary, ?IMEI_CHECK_RESULT, Len, Value:Len/unit:8>>);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+encode_ie(#{num_vectors_req := Value} = GSUPMessage, Head) -></span><br><span style="color: hsl(120, 100%, 40%);">+  Len = 1,</span><br><span style="color: hsl(120, 100%, 40%);">+  ?CHECK_SIZE(num_vectors_req, Len, Value),</span><br><span style="color: hsl(120, 100%, 40%);">+  encode_ie(maps:without([num_vectors_req], GSUPMessage), <<Head/binary, ?NUM_VECTORS_REQ, Len, Value:Len/unit:8>>);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> encode_ie(#{source_name := Value} = GSUPMessage, Head) -></span><br><span>   Len = size(Value),</span><br><span>   encode_ie(maps:without([source_name], GSUPMessage), <<Head/binary, ?SOURCE_NAME, Len, Value/binary>>);</span><br><span>diff --git a/test/gsup_encode_decode_test.erl b/test/gsup_encode_decode_test.erl</span><br><span>index c0d3a21..2153707 100644</span><br><span>--- a/test/gsup_encode_decode_test.erl</span><br><span>+++ b/test/gsup_encode_decode_test.erl</span><br><span>@@ -44,6 +44,15 @@</span><br><span>   ?assertEqual(Map, gsup_protocol:decode(Bin)),</span><br><span>   ?assertEqual(Bin, gsup_protocol:encode(Map)).</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+sai_req_num_test() -></span><br><span style="color: hsl(120, 100%, 40%);">+  Bin = <<16#08, ?TEST_IMSI_IE, ?TEST_CLASS_SUBSCR_IE, 16#52, 16#01, 16#02>>,</span><br><span style="color: hsl(120, 100%, 40%);">+  Map = #{imsi => <<"123456789012345">>,</span><br><span style="color: hsl(120, 100%, 40%);">+          message_class => 1,</span><br><span style="color: hsl(120, 100%, 40%);">+          message_type => send_auth_info_req,</span><br><span style="color: hsl(120, 100%, 40%);">+          num_vectors_req => 2},</span><br><span style="color: hsl(120, 100%, 40%);">+  ?assertEqual(Map, gsup_protocol:decode(Bin)),</span><br><span style="color: hsl(120, 100%, 40%);">+  ?assertEqual(Bin, gsup_protocol:encode(Map)).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> sai_req_eps_test() -></span><br><span>   Bin = <<16#08, ?TEST_IMSI_IE, ?TEST_CLASS_SUBSCR_IE, ?TEST_SUPP_RAT_TYPES_IE, ?TEST_CURR_RAT_TYPE_LTE_IE>>,</span><br><span>   Map = #{imsi => <<"123456789012345">>, message_class => 1, message_type => send_auth_info_req,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16936">change 16936</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/erlang/osmo_gsup/+/16936"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: erlang/osmo_gsup </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ifb338cb849c0c9b2ce338eaa8ead6ac307188d3b </div>
<div style="display:none"> Gerrit-Change-Number: 16936 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>