Open Source Mobile Communications: Issueshttps://osmocom.org/https://osmocom.org/favicon.ico?16647414092024-03-08T15:41:35ZOpen Source Mobile Communications
Redmine osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6396 (Feedback): add support for auth failu...https://osmocom.org/issues/63962024-03-08T15:41:35Zlynxis
<p>When a phone connects and the sim sequence numbers are out of sync, the authentication will fail<br />and the phone will additional supply Rand and Auts in the failure message.<br />Similar to the 3gpp rat.<br />The sgsn already has a test for this TC_attach_usim_resync.</p>
<p>To reproduce it with a real phone, you could decrease the sequence number in the hss. (AFAIR it is a sliding window, reducing the sequence number by 1 might not be enough).</p>
<pre>
UE - strongswan
<- Auth req
-> Auth failure (reason resync, auts, rand)
(HLR will update the sequence numbers)
<- Auth req
-> Auth succeed.
</pre> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6391 (Resolved): osmo-epdg: crashs the UE f...https://osmocom.org/issues/63912024-03-05T15:33:07Zlynxis
<pre>
16:13:51.838 [info] ue_fsm state_wait_swx_maa event=rx_swx_maa, {ue_fsm_data,"901702300008931",undefined,false,false,undefined}
16:13:51.838 [info] ue_fsm received_swm_auth_response {ok,{'MAA',"epdg.localdomain;1771156376;4;nonode@nohost",1,"hss.mnc070.mcc901.3gppnetwork.org","mnc070.mcc901.3gppnetwork.org",{'Vendor-Specific-Application-Id',10415,[16777265],[]},"901702300008931",[],[],[{'Experimental-Result',10415,5001}
],[],[],[],[],[],[],[],[]}}
16:13:51.838 [info] ue_fsm state_wait_auth_resp event=received_swm_auth_response, {ue_fsm_data,<<"901702300008931">>,"internet",undefined,false,0}
16:13:51.838 [info] auth_response(<<"901702300008931">>): {ok,{'MAA',"epdg.localdomain;1771156376;4;nonode@nohost",1,"hss.mnc070.mcc901.3gppnetwork.org","mnc070.mcc901.3gppnetwork.org",{'Vendor-Specific-Application-Id',10415,[16777265],[]},"901702300008931",[],[],[{'Experimental-Result',10415,5
001}],[],[],[],[],[],[],[],[]}}
16:13:51.838 [info] auth_response for <<"901702300008931">>: {ok,{'MAA',"epdg.localdomain;1771156376;4;nonode@nohost",1,"hss.mnc070.mcc901.3gppnetwork.org","mnc070.mcc901.3gppnetwork.org",{'Vendor-Specific-Application-Id',10415,[16777265],[]},"901702300008931",[],[],[{'Experimental-Result',1041
5,5001}],[],[],[],[],[],[],[],[]}}
16:13:51.838 [info] GSUP: Tx #{auth_tuples => [],imsi => <<"901702300008931">>,message_class => 5,message_type => send_auth_info_res}
Stream 238, 24 bytes
*DBG* gsup_server got {ipa,#Port<0.44>,
{osmo,5},
#{cn_domain => 1,
current_rat_type => rat_eutran_sgs,
imsi => <<"901702300008931">>,message_class => 5,
message_type => send_auth_info_req,
num_vectors_req => 1}}
*DBG* epdg_ue_fsm_901702300008931 receive call {auth_request,33,"*"} from <0.520.0> in state state_authenticating
16:13:57.306 [info] GSUP: Rx #{cn_domain => 1,current_rat_type => rat_eutran_sgs,imsi => <<"901702300008931">>,message_class => 5,message_type => send_auth_info_req,num_vectors_req => 1}
16:13:57.306 [info] ue_fsm auth_request
16:13:57.306 [info] terminating epdg_ue_fsm with reason function_clause state=state_authenticating, {ue_fsm_data,<<"901702300008931">>,"internet",undefined,false,0}
accept returned {error,closed} - goodbye!
16:13:57.307 [error] gen_statem epdg_ue_fsm_901702300008931 in state state_authenticating terminated with reason: no function clause matching state_functions
16:13:57.308 [error] CRASH REPORT Process epdg_ue_fsm_901702300008931 with 2 neighbours crashed with reason: no function clause matching epdg_ue_fsm:state_authenticating({call,{<0.520.0>,#Ref<0.716642772.2414084098.220027>}}, {auth_request,33,"*"}, {ue_fsm_data,<<"901702300008931">>,"internet",
undefined,false,0}) line 222
16:13:57.309 [error] Supervisor osmo_epdg_sup had child gsup_server started with gsup_server:start_link("127.0.0.1", 4222, []) at <0.520.0> exit with reason no function clause matching epdg_ue_fsm:state_authenticating({call,{<0.520.0>,#Ref<0.716642772.2414084098.220027>}}, {auth_request,33,"*"}
, {ue_fsm_data,<<"901702300008931">>,"internet",undefined,false,0}) line 222 in context child_terminated
16:13:57.310 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134 in context start_error
16:13:57.310 [error] CRASH REPORT Process <0.714.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134
16:13:57.310 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134 in context start_error
16:13:57.310 [error] CRASH REPORT Process <0.716.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134
16:13:57.311 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134 in context start_error
16:13:57.312 [error] CRASH REPORT Process <0.718.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134
16:13:57.312 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134 in context start_error
16:13:57.313 [error] CRASH REPORT Process <0.720.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134
16:13:57.313 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134 in context start_error
16:13:57.313 [error] CRASH REPORT Process <0.722.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 134
16:13:57.313 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at {restarting,undefined} exit with reason reached_max_restart_intensity in context shutdown
</pre> pySim - Bug #6383 (Rejected): pysim shell: edit_decoded EF.ePDGId is missing the epdg addresshttps://osmocom.org/issues/63832024-03-01T17:57:08Zlynxis
<p>I'm trying to edit the EF.ePDGId:</p>
<pre>
select ADF.USIM
select EF.ePDGId
edit_binary_decoded
# before edit, because file is "empty"
change to
{
"e_pdg_id": {
"type_of_ePDG_address": 255,
"ePDG_address": null
}
}
{
"e_pdg_id": {
"type_of_ePDG_address": 0,
"ePDG_address": "epdg.osmocom.org"
}
}
</pre>
<p>Results into 800100.<br />The domain is completely missing.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6371 (Resolved): osmo-epdg: crash: APN reje...https://osmocom.org/issues/63712024-02-20T20:23:15Zlynxis
<p>osmo-epdg crashs when the PGW rejects the APN.</p>
<pre>
21:22:19.638 [info] ue_fsm state_authenticated_wait_swx_saa event=rx_swx_saa SAType=13 ResulCode=2001, {ue_fsm_data,"901700000009738","ims",true,false,<0.608.0>}
21:22:19.638 [debug] Rx AAA with ResultCode=2001
21:22:19.638 [info] S6b Tx to {diameter_caps,{"aaa.mnc070.mcc901.3gppnetwork.org","smf.mnc070.mcc901.3gppnetwork.org"},{"mnc070.mcc901.3gppnetwork.org","mnc070.mcc901.3gppnetwork.org"},{[{10,74,0,12}],[{10,74,0,23}]},{0,0},{"osmo-epdg-AAA","freediameter"},{[],[1708460467]},{[10415,13019,5535],[
5535,10415,13019]},{[],[4]},{[],[0]},{[],[]},{[{'diameter_base_Vendor-Specific-Application-Id',10415,[16777272],[]}],[{'diameter_base_Vendor-Specific-Application-Id',[10415],[16777238],[]},{'diameter_base_Vendor-Specific-Application-Id',[10415],[16777272],[]}]},{[],[10500]},{[],[]}}: {'AAA',"sm
f.mnc070.mcc901.3gppnetwork.org;1708460467;1;app_s6b",16777272,2,2001,"aaa.mnc070.mcc901.3gppnetwork.org","mnc070.mcc901.3gppnetwork.org",[],[],[],[],[],[],[],[],[],[],[]}
21:22:19.640 [info] S2b: Rx from IP {10,74,0,23} port 2123: <<72,33,0,14,232,74,53,12,163,3,247,0,2,0,2,0,93,0>>
21:22:19.640 [info] S2b: Rx from IP {10,74,0,23} port 2123: {gtp,v2,create_session_response,3897177356,10683383,undefined,[],#{{v2_cause,0} => {v2_cause,0,apn_access_denied___no_subscription,0,0,0,undefined}}}
accept returned {error,closed} - goodbye!
21:22:19.640 [error] gen_server epdg_gtpc_s2b terminated with reason: no match of right hand value #{{v2_cause,0} => {v2_cause,0,apn_access_denied___no_subscription,0,0,0,undefined}} in epdg_gtpc_s2b:rx_gtp/2 line 370
21:22:19.641 [error] CRASH REPORT Process epdg_gtpc_s2b with 0 neighbours crashed with reason: no match of right hand value #{{v2_cause,0} => {v2_cause,0,apn_access_denied___no_subscription,0,0,0,undefined}} in epdg_gtpc_s2b:rx_gtp/2 line 370
21:22:19.643 [error] Supervisor osmo_epdg_sup had child epdg_gtpc_s2b started with epdg_gtpc_s2b:start_link("10.74.0.12", 2123, "10.74.0.23", 2123, "10.74.0.11", []) at <0.550.0> exit with reason no match of right hand value #{{v2_cause,0} => {v2_cause,0,apn_access_denied___no_subscription,0,0,
0,undefined}} in epdg_gtpc_s2b:rx_gtp/2 line 370 in context child_terminated
21:22:19.644 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131 in context start_error
21:22:19.644 [error] CRASH REPORT Process <0.610.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131
21:22:19.644 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131 in context start_error
21:22:19.645 [error] CRASH REPORT Process <0.612.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131
21:22:19.645 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131 in context start_error
21:22:19.645 [error] CRASH REPORT Process <0.614.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131
21:22:19.645 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131 in context start_error
21:22:19.645 [error] CRASH REPORT Process <0.616.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131
21:22:19.646 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at undefined exit with reason no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131 in context start_error
21:22:19.646 [error] CRASH REPORT Process <0.618.0> with 0 neighbours crashed with reason: no match of right hand value {error,already_started} in aaa_diameter_swx:init/1 line 131
21:22:19.646 [error] Supervisor osmo_epdg_sup had child aaa_diameter_swx started with aaa_diameter_swx:start_link() at {restarting,undefined} exit with reason reached_max_restart_intensity in context shutdown
21:22:19.647 [info] Application osmo_epdg exited with reason: shutdown
</pre> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6370 (In Progress): setup ims with kamailiohttps://osmocom.org/issues/63702024-02-20T19:53:27Zlynxis
<p>Setup kamailio as IMS to allow UEs to connect</p>
<p>PLMN: 901 / 70</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6366 (New): strongswan: test if gsup_client...https://osmocom.org/issues/63662024-02-17T01:05:48Zlynxis
<p>Can gsup requests pile up, when the gsup connection was dead when the sender tried to send a packet?</p>
<p>I've seen strongswan not always sending out requests after a reconnect situation.<br />As test case, let osmo-epdg crash or ignore a GSUP Send Auth Info Request.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6365 (New): strongswan: get the PDP type ou...https://osmocom.org/issues/63652024-02-17T00:03:41Zlynxis
<p>According to 33.402 / Section 8.2.2</p>
<blockquote>
<p>The UE sends the "Configuration Payload, Sec. associations, Traffic selectors, APN info" in the first IKE_Auth Request.</p>
</blockquote>
<p>Strongswan doesn't care. It only takes the APN and UE Identity from it. But nothing else.</p>
<p>1) Use a real phone to see the request and get the wireshark decode table<br />2) Find out when those information is available to collect it with the strongswan code (osmo-epdg plugin).<br />3) Send the correct type in SendAuthInfo and/or Location Update Request towards the osmo-epdg (erlang)</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6364 (In Progress): strongswan: gsup: remov...https://osmocom.org/issues/63642024-02-16T23:51:54Zlynxis
<p>Currently the strongswan only operates a single request via GSUP.<br />Remove this limitation and allow multiple requests in flight.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6363 (New): strongswan: Catch IKEv2 disconn...https://osmocom.org/issues/63632024-02-16T23:50:23Zlynxis
<p>When the IKEv2 SA got destroy we should<br />- inform osmo-epdg via GSUP (Msg: Purge MS Request)<br />- remove internal state</p>
<p>Use listener api ike_updown() + ike_rekey() to get notified about changes in the SA.<br />The python SWu-IKEv2 doesn't seem good enough to test this. Only ike_rekey() can be tested.</p>
<p>Reducing the timeout of the ike SA might help to provoke the code path.</p> OsmoMSC - Bug #6311 (Rejected): nightly packages depends on libosmoabis.so.10 instead against https://osmocom.org/issues/63112023-12-16T21:15:59Zlynxis
<p>I'm using the obs nightly packages using the following packages.list<br /><pre>
deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/osmocom.asc] https://downloads.osmocom.org/packages/osmocom:/nightly/Debian_11/ ./
</pre></p>
<p>I've installed osmo-msc version osmo-msc 1.11.1.19.82fad.202312152026<br />And I get the following error:</p>
<pre>
Dec 16 21:13:55 osmocom osmo-msc[468490]: /usr/bin/osmo-msc: error while loading shared libraries: libosmoabis.so.10: cannot open shared object file: No such file or directory
</pre>
<p>My local installed libosmoabis is<br />libosmoabis13:amd64 1.5.0.2.247e.202312152026 amd64</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6289 (Closed): strongswan: implement intern...https://osmocom.org/issues/62892023-12-06T11:43:45Zlynxis
<p>The strongswan/osmo-epdg need to track the state of all ipsec tunnel.<br />I've created the skeleton class src/libcharon/plugins/osmo_epdg/osmo_epdg_db.c.</p>
<p>Use strongswan hashtables and refcounting to implement the following state:<br />- ref to ike_sa_t state<br />- IMSI<br />- APN<br />- assigned IP address</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6276 (Closed): document how to setup the pr...https://osmocom.org/issues/62762023-11-28T10:42:30Zlynxis
<p>Document the prototype setup in a wiki page:</p>
<p>- overall network setup<br />- document the strongswan compilation<br />- document how to setup epdg erlang code<br />- document how to setup open5gs<br />- later: document volte setup</p> OsmoDia2GSUP - Bug #6255 (New): Implement 3GPP Purge UE Requesthttps://osmocom.org/issues/62552023-11-10T13:29:45Zlynxis
<p>Open5gs is sending 3GPP Purge UE Request on which the dia2gsup doesn't answer at all.</p> OsmoDia2GSUP - Bug #6254 (In Progress): Reconnects of the ttcn3 aren't handledhttps://osmocom.org/issues/62542023-11-10T12:05:35Zlynxis
<p>When the mme drops the connection and tries to reconnect it doesn't work.<br />Same for ttcn3 tests</p> pySim - Bug #6121 (Resolved): pysim: aram_store_ref_ar_do with --pkg-ref failshttps://osmocom.org/issues/61212023-07-28T23:08:01Zlynxis
<p>Version: git/master/6c5c3f8b2b49a56b6204be83ded918bec0c5826f<br />Simcard: SysmocomSJA2</p>
<a name="unauthenticated-no-call-to-verify_adm"></a>
<h3 >unauthenticated (no call to verify_adm)<a href="#unauthenticated-no-call-to-verify_adm" class="wiki-anchor">¶</a></h3>
<pre>
pySIM-shell (MF)> set debug true
debug - was: False
now: True
pySIM-shell (MF)> select ADF.ARA-M
""
pySIM-shell (MF/ADF.ARA-M)> aram_store_ref_ar_do --aid ffffffffffff --device-app-id 550F1A164CCD48D27A5EA3B765957493CD830171 --android-permissions 0000000000000001 --pkg-ref eu.fe80.cn.carrier
Traceback (most recent call last):
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2399, in onecmd_plus_hooks
stop = self.onecmd(statement, add_to_history=add_to_history)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2852, in onecmd
stop = func(statement)
^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/decorators.py", line 382, in cmd_wrapper
return func(*args_list, **kwargs) # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 376, in do_aram_store_ref_ar_do
res_do = ADF_ARAM.store_data(self._cmd.card._scc._tp, csrado)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 289, in store_data
return ADF_ARAM.xceive_apdu_tlv(tp, '80e29000', do, StoreResponseDoCollection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 267, in xceive_apdu_tlv
cmd_do_enc = cmd_do.to_ie()
^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 189, in to_bytes
return super().to_bytes()
^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 95, in to_bytes
do = self.__class__._construct.build(self.decoded, total_len=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 336, in build
self.build_stream(obj, stream, **contextkw)
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 348, in build_stream
self._build(obj, stream, context, "(building)")
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 2133, in _build
context.update(obj)
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/lib/containers.py", line 119, in update
for k,v in seqordict:
^^^
ValueError: not enough values to unpack (expected 2, got 1)
EXCEPTION of type 'ValueError' occurred with message: not enough values to unpack (expected 2, got 1)
pySIM-shell (MF/ADF.ARA-M)>
</pre>
<a name="authenticated-verify_adm"></a>
<h3 >authenticated (verify_adm)<a href="#authenticated-verify_adm" class="wiki-anchor">¶</a></h3>
<pre>
pySIM-shell (MF)> select ADF.ARA-M
""
pySIM-shell (MF/ADF.ARA-M)> aram_store_ref_ar_do --aid ffffffffffff --device-app-id 550F1A164CCD48D27A5EA3B765957493CD830171 --android-permissions 0000000000000001 --pkg-ref eu.fe80.cn.carrier
Traceback (most recent call last):
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2399, in onecmd_plus_hooks
stop = self.onecmd(statement, add_to_history=add_to_history)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2852, in onecmd
stop = func(statement)
^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/decorators.py", line 382, in cmd_wrapper
return func(*args_list, **kwargs) # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 376, in do_aram_store_ref_ar_do
res_do = ADF_ARAM.store_data(self._cmd.card._scc._tp, csrado)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 289, in store_data
return ADF_ARAM.xceive_apdu_tlv(tp, '80e29000', do, StoreResponseDoCollection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 267, in xceive_apdu_tlv
cmd_do_enc = cmd_do.to_ie()
^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 186, in to_bytes
out += c.to_ie()
^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 230, in to_ie
return self.to_tlv()
^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 234, in to_tlv
val = self.to_bytes()
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 189, in to_bytes
return super().to_bytes()
^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 95, in to_bytes
do = self.__class__._construct.build(self.decoded, total_len=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 336, in build
self.build_stream(obj, stream, **contextkw)
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 348, in build_stream
self._build(obj, stream, context, "(building)")
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/core.py", line 2133, in _build
context.update(obj)
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/construct/lib/containers.py", line 119, in update
for k,v in seqordict:
^^^
ValueError: not enough values to unpack (expected 2, got 1)
EXCEPTION of type 'ValueError' occurred with message: not enough values to unpack (expected 2, got 1)
pySIM-shell (MF/ADF.ARA-M)>
</pre> pySim - Bug #6120 (New): select MF raise an exception after selecting ADF.ARA-Mhttps://osmocom.org/issues/61202023-07-28T23:02:32Zlynxis
<p>Steps to reproduce:<br />Version: git/master 6c5c3f8b2b49a56b6204be83ded918bec0c5826f<br />Simcard: SysmocomSJA2</p>
<pre>
Welcome to pySim-shell!
pySIM-shell (MF)> select ADF.ARA-M
""
pySIM-shell (MF/ADF.ARA-M)> select MF
EXCEPTION of type 'RuntimeError' occurred with message: 6e00: ARA-M - Invalid class
To enable full traceback, run the following command: 'set debug true'
pySIM-shell (MF/ADF.ARA-M)> set debug true
debug - was: False
now: True
pySIM-shell (MF/ADF.ARA-M)> select MF
Traceback (most recent call last):
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/runtime.py", line 347, in select
(data, sw) = self.rs.card._scc.select_file(f.fid)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/commands.py", line 144, in select_file
return self._tp.send_apdu_checksw(self.cla_byte + "a4" + self.sel_ctrl + "02" + fid)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/transport/__init__.py", line 213, in send_apdu_checksw
raise SwMatchError(rv[1], sw.lower(), self.sw_interpreter)
pySim.exceptions.SwMatchError: SW match failed! Expected 9000 and got 6e00: ARA-M - Invalid class
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2399, in onecmd_plus_hooks
stop = self.onecmd(statement, add_to_history=add_to_history)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2852, in onecmd
stop = func(statement)
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/./pySim-shell.py", line 814, in do_select
fcp_dec = self._cmd.lchan.select(path, self._cmd)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/runtime.py", line 353, in select
raise RuntimeError("%s: %s - %s" % (swm.sw_actual, k[0], k[1]))
RuntimeError: 6e00: ARA-M - Invalid class
EXCEPTION of type 'RuntimeError' occurred with message: 6e00: ARA-M - Invalid class
</pre> pySim - Bug #6119 (In Progress): aram_get_config runs into an exception on a sysmocomSJA2https://osmocom.org/issues/61192023-07-28T22:48:14Zlynxis
<ul>
<li>Use a SysmocomSJA2</li>
<li>pysim master / 791f80a44f8110f478a632cd2bcde5944ad4bd96</li>
</ul>
<pre>
pySIM-shell (MF)> select ADF.ARA-M
pySIM-shell (MF/ADF.ARA-M)> aram_get_config
EXCEPTION of type 'ValueError' occurred with message: auto_collection_DeviceConfigDO(<class 'pySim.ara_m.DeviceInterfaceVersionDO'>): Unknown TLV Class DeviceInterfaceVersionDO in [{'DeviceInterfaceVersionDO': {'major': 0, 'minor': 0, 'patch': 1}}]; expected dict_keys(['device_interface_version_do'])
To enable full traceback, run the following command: 'set debug true'
pySIM-shell (MF/ADF.ARA-M)>
pySIM-shell (MF/ADF.ARA-M)> set debug true
debug - was: False
now: True
pySIM-shell (MF/ADF.ARA-M)> aram_get_config
Traceback (most recent call last):
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2399, in onecmd_plus_hooks
stop = self.onecmd(statement, add_to_history=add_to_history)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/.local/share/virtualenvs/pysim-C216Z-pe/lib/python3.11/site-packages/cmd2/cmd2.py", line 2852, in onecmd
stop = func(statement)
^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 315, in do_aram_get_config
res_do = ADF_ARAM.get_config(self._cmd.card._scc._tp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/ara_m.py", line 298, in get_config
cmd_do.from_dict([{'DeviceInterfaceVersionDO': {
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 161, in from_dict
self.children = self.nested_collection.from_dict(decoded)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/lynxis/projects/osmocom/repos/pysim/pySim/tlv.py", line 406, in from_dict
raise ValueError('%s: Unknown TLV Class %s in %s; expected %s' %
ValueError: auto_collection_DeviceConfigDO(<class 'pySim.ara_m.DeviceInterfaceVersionDO'>): Unknown TLV Class DeviceInterfaceVersionDO in [{'DeviceInterfaceVersionDO': {'major': 0, 'minor': 0, 'patch': 1}}]; expected dict_keys(['device_interface_version_do'])
EXCEPTION of type 'ValueError' occurred with message: auto_collection_DeviceConfigDO(<class 'pySim.ara_m.DeviceInterfaceVersionDO'>): Unknown TLV Class DeviceInterfaceVersionDO in [{'DeviceInterfaceVersionDO': {'major': 0, 'minor': 0, 'patch': 1}}]; expected dict_keys(['device_interface_version_do'])
pySIM-shell (MF/ADF.ARA-M)>
pySIM-shell (MF/ADF.ARA-M)> aram_get_all
[
{
"response_all_ref_ar_do": [
{
"ref_ar_do": [
{
"ref_do": [
{
"aid_ref_do": "ffffffffffff"
},
{
"dev_app_id_ref_do": "550f1a164ccd48d27a5ea3b765957493cd830171"
}
]
},
{
"ar_do": [
{
"perm_ar_do": {
"permissions": "0000000000000001"
}
}
]
}
]
}
]
}
]
</pre> pySim - Bug #6116 (Closed): `tree` raise an exception when ARA-M is presenthttps://osmocom.org/issues/61162023-07-28T14:37:50Zlynxis
<p>Use git: 1.0-582-g90d0021fa4c8<br />Detected CardModel: SysmocomSJA2</p>
<p>```<br />EXCEPTION of type 'RuntimeError' occurred with message: 6e00: ARA-M - Invalid class<br />To enable full traceback, run the following command: 'set debug true'<br />```</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6114 (Closed): connect a real phone to the ...https://osmocom.org/issues/61142023-07-24T21:08:45Zlynxis
<p>- Provision a simcard using a phone which supports VoiceOverWifi. (there might be allow list for voice over wifi)<br />- Overwrite the DNS to route traffic to the strongswan<br />- See how far the traffic flows (no real SIP server at this point).</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6113 (Closed): SWu figure out why SWu has p...https://osmocom.org/issues/61132023-07-24T20:28:59Zlynxis
<p>Currently the python SWu project doesn't connect to strongswan. Strongswan<br />fails to find a proper peer config:</p>
<pre>
epdg charon-systemd[6345]: parsed IKE_AUTH request 1 [ IDi IDr CPRQ(ADDR DNS ADDR6 DNS6 PCSCF4 PCSCF6) SA TSi TSr N(EAP_ONLY) ]
epdg charon-systemd[6345]: looking for peer configs matching 192.168.0.2[internet]...192.168.56.51[0262421234567890@nai.epc.mnc42.mcc999.3gppnetwork.org]
epdg charon-systemd[6345]: peer config "rw", ike match: 1052 (192.168.0.2...%any IKEv2)
epdg charon-systemd[6345]: local id match: 0 (ID_FQDN: 69:6e:74:65:72:6e:65:74)
epdg charon-systemd[6345]: no matching peer config found
</pre>
<p>I would guess SWu doesn't try to get the certificate of the epdg.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6112 (Resolved): osmo-epdg: implement a sta...https://osmocom.org/issues/61122023-07-24T20:23:02Zlynxisosmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6111 (Closed): strongswan: gsup: implement ...https://osmocom.org/issues/61112023-07-24T20:21:35Zlynxis
<p>Currently the strongswan side isn't reconnecting when the GSUP server closes the connection.<br />Implement a reconnect mechanism.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6091 (Feedback): osmo-epdg: Implement CEAI ...https://osmocom.org/issues/60912023-07-10T17:09:19Zlynxis
<p>Write all relevant parts to have a gsup server module which the strongswan can connect to it.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6046 (Resolved): osmo-epdg: Implement s2b i...https://osmocom.org/issues/60462023-05-26T12:04:41Zlynxis
<ul>
<li>Related Specs:
<ul>
<li>3GPP TS 23.402 (section 7)</li>
<li>3GPP TS 29.274 (GTPv2)</li>
</ul></li>
</ul>
<p>- ePDG <> PGW<br />- valid messages:<br /> - Echo Request<br /> - Echo Response<br /> - Version not Supported</p>
<pre><code>- Create Session Request/Response<br /> - Delete Session Request/Response<br /> - Modify Bearer Request/Response<br /> - Modify Bearer Command<br /> - Modify Bearer Failure Indication<br /> - Bearer Resource Command<br /> - Bearer Resource Failure Indication<br /> - Trace Session Activation<br /> - Trace Session Deactivation<br /> - Create Bearer Request/Response<br /> - Update Bearer Request/Response<br /> - Delete Bearer Request/Response<br /> - Delete PDN Connection Set Request/Response</code></pre> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6045 (Feedback): report erlang diameter pro...https://osmocom.org/issues/60452023-05-26T11:49:29Zlynxis
<p>Somehow is the erlang diameter code not generating all AVPs. I've the feeling it doesn't have enough inherits layer. e.g. when a dia spec inherits from another spec, from another spec, .. it comes to a limit without a failure. In the end the decoding of messages fails.</p>
<p>Create a test case with github repo to report the issue.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6042 (Resolved): osmo-epdg: Implement SWx i...https://osmocom.org/issues/60422023-05-22T07:40:28Zlynxis
<p>Create a SWx diameter module to connect to open5gs-hss.</p>
SWx is defined in
<ul>
<li>3GPP TS 29.273 sec 8</li>
<li>3GPP TS 23.402 sec 12</li>
</ul> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6041 (Resolved): create diameter files for SWxhttps://osmocom.org/issues/60412023-05-21T15:10:49Zlynxis
<ul>
<li>create diameter "dia" files for SWx</li>
<li>For reference <a class="external" href="https://www.erlang.org/doc/man/diameter_dict.html">https://www.erlang.org/doc/man/diameter_dict.html</a></li>
<li>TS 29.273</li>
</ul> OsmoBSC - Bug #6018 (Resolved): vty: add command `show bts online` and `show bts offline`https://osmocom.org/issues/60182023-04-26T20:57:57Zlynxis
<p>vty: add command `show bts online` and `show bts offline`</p>
<p>`show bts online` should show a single line of all online bts.<br />Optional on the same line have an uptime.</p>
<p>`show bts offline` should show a single line of all offline bts.<br />Optional on the same line have an down since.</p> OsmoHLR - Bug #6017 (Rejected): wireshark dissector: doesn't support multiple PDP Info TLVshttps://osmocom.org/issues/60172023-04-26T17:20:29Zlynxis
<p>[This might be wrong in libosmocore, but I didn't know where to put it else]</p>
<p>The wireshark dissector doesn't support unpacking multiple PDP Info TLVs.<br />This TLV can appear multiple times within an Insert Subscriber Data Request.<br />Previous the osmo-hlr always sent a single entry.</p>
<p>See attached trace with "broken" packets.</p> OsmoBSC - Bug #6007 (New): network -> bts -> gprs nsvc will always create a nsvc nodehttps://osmocom.org/issues/60072023-04-17T16:08:54Zlynxis
<p>When starting with a minimal configuration of the gprs nsvc 1, the osmo-bsc<br />will generate new configuration for NSVC1.</p>
<p>e.g. initial configuration is<br /><pre>
network
bts 1
[...]
gprs nsvc 0 nsvci 2
gprs nsvc 0 local udp port 23000
gprs nsvc 0 remote ip 192.168.56.1
gprs nsvc 0 remote udp port 23000
# no gprs nsvc 1
</pre></p>
<p>The bsc will create such nodes on `show running-config` or when doing a `write`</p>
<pre>
gprs nsvc 0 nsvci 2
gprs nsvc 0 local udp port 23000
gprs nsvc 0 remote ip 192.168.56.1
gprs nsvc 0 remote udp port 23000
gprs nsvc 1 nsvci 0
gprs nsvc 1 local udp port 0
</pre>
<p>Please ensure that an non-existent configuration won't generate such elements.<br />The correct behaviour would be</p>
<pre>
gprs nsvc 0 nsvci 2
gprs nsvc 0 local udp port 23000
gprs nsvc 0 remote ip 192.168.56.1
gprs nsvc 0 remote udp port 23000
</pre><br />without any node describing nsvc 1.