Open Source Mobile Communications: Issueshttps://osmocom.org/https://osmocom.org/favicon.ico?16647414092024-01-24T09:43:35ZOpen Source Mobile Communications
Redmine pySim - Bug #6340 (New): exception when using osmo-smdpp with python 3.9https://osmocom.org/issues/63402024-01-24T09:43:35Zdexter
<p>There is an exception when starting osmo-smdpp with python 3.9. This exception does not occur with python 3.10.</p>
<pre>
owner@osmotest:~/git_master/pysim$ python3.9 ./osmo-smdpp.py
Traceback (most recent call last):
File "/home/owner/git_master/pysim/./osmo-smdpp.py", line 100, in <module>
class SmDppHttpServer:
File "/home/owner/git_master/pysim/./osmo-smdpp.py", line 196, in SmDppHttpServer
def initiateAutentication(self, request: IRequest, content: dict) -> dict:
TypeError: 'staticmethod' object is not callable
</pre>
<p>Commit hash: af87cd544f784e51a41cea303cb57001d9954d9c</p> OsmoMGW - Feature #6171 (In Progress): mgcp-client API: there should be a separate mgcp_codec_par...https://osmocom.org/issues/61712023-09-08T15:21:26Zdexter
<p>This was previously discussed in ticket #5723, which got deleted due to an error.</p>
<p>There is a problem we face with the mgcp_client API. mgcp_client_fsm in particular.</p>
<p>The problem is that we are not able to assign different payload type numbers for the same codec. So it is not possible to have the following configuration:</p>
<p>codec: AMR, payload-type: 112<br />codec: AMR, payload-type: 113</p>
<p>However, this would be necessary in case we want to define AMR once in octet-aligned and once in bandwith-efficient configuration, which brings us to the second problem. Since there is only one mgcp_codec_param struct member "param", which only lets us to define exactly one set of codec parameters we cannot even define two different configurations.</p>
<p>Also in some cases it would be also convenient to circumvent the SDP parsing/generation of osmo-mgcp-client and use a user defined SDP string directly.</p> OsmoBSC - Bug #6159 (New): use paging queue for PAGING messages that come from the BSC co-located...https://osmocom.org/issues/61592023-08-30T12:38:17Zdexter
<p>When a BSC co-located PCU sends a PAGING message to the BSC via PCUIF, then this message is forwarded immediately via RSL as RSL PAGING COMMAND. This illegally circumvents the paging queue of OsmoBSC. The PAGING messages from the PCU should take the route through the paging queue like any other paging does.</p> OsmoPCU - Feature #6150 (New): PCUIF: Use unique identifiers instead of the TLLI as msg_id.https://osmocom.org/issues/61502023-08-25T14:05:40Zdexter
<p>When the PCUIF sends a MAC block for PCH (or AGCH) it may request a conformation when the MAC block is sent. For the conformation an uint32_t message id (msg_id) is used. At the moment we use the TLLI as message identifier. However, on the one hand side the TLLI may not be unique, and on the other hand the TBF may not have a TLLI assigned yet. This is in particular the case when the MS is just attaching to the network and has not completed the GMM attach phase yet.</p>
<p>A solution would be to somehow generate a truly unique identifier inside the PCU and use it when sending MAC blocks through the PCUIF. When the receiving end responds with the confirmation we will have to match the identifier back to the TBF to which it belongs.</p> OsmoSGSN - Feature #6139 (New): test mobility between GERAN (OsmoPCU) and EUTRAN (Open5GS) end to...https://osmocom.org/issues/61392023-08-22T09:55:50Zdexter
<p>The mobility features that we recently added to Open5GS and OsmoPCU were developed and tested against TTCN3 testsuites, but we didn't confirm the functionality on real hardware yet.</p>
<p>To do this we need to create a setup with an OsmoBTS/OsmoPCU based GERAN cell and an appropriate EUTRAN ENB that is controlled by Open5GS. In order to be able to trigger the cell change it may be required to equip the transmittig antennas of both radios with variable attenuators.</p> OsmoBSC - Bug #6059 (New): negotiate GSM-HR RTP packet format explicitlyhttps://osmocom.org/issues/60592023-06-13T10:38:00Zdexter
<p>In <a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Bug: osmo-bts-sysmo and osmo-bts-trx use different GSM-HR RTP packet format (Resolved)" href="https://osmocom.org/issues/5688">#5688</a> we have solved the problem that, depending on the BTS model, the BTS may use a different HR-GSM format (RFC5993 vs. TS 101.318. Now the user can chose via a VTY option which format the BTS should emit. This improves the situation a lot.</p>
<p>However if conversion is still needed for some reason, OsmoMGW will still blindly convert TS 101.318 to RFC5993 and vice versa. This means that there is a problem in case there is one BTS That speaks TS 101.318 and another one that speaks RFC5993 on the same MGW. OsmoMGW can already be explicitly instructed via SDP (similar to AMR BWE/OE) which format to use. We should add a VTY option to osmo-bsc so that we can specify the format we want to use on the link pointing to the core network side. Doing so, the MGW would accept any format on the leg pointing to the BTS and emit the specified format on the leg pointing towards the core network.</p>
<p>Unfortunately osmo-mgcp-client does not yet have the API to specify the format. #5723 already deals with the problem but this also means that this ticket is blocked by #5723</p> OsmoPCU - Bug #6015 (New): osmo-pcu (with ericsson RBS) is unable to keep TRAU frames in sync https://osmocom.org/issues/60152023-04-25T08:59:55Zdexter
<p>The problem is observed with an RBS installation that uses a DUG20 but a different (presumably older, RRUS 01?) transceiver. The symptom is that the PCU is unable to get a reliable sync on the TRAU frames coming from the CCU (transceiver unit). The CCU eventually closes the channel.</p>
<p>we see the following messages:</p>
<pre>
Mon Apr 24 09:34:08 2023 <0010> trau/trau_sync.c:519 trau_sync(trau-sync){FRAME_ALIGNED}: state_chg to FRAME_ALIGNMENT_LOST
</pre>
The reasons for this could be:
<ul>
<li>Unreliable E1 connection (the setup uses icE1usb+osmo-e1d)</li>
<li>The transceiver module has a slightly different TRAU frame format (unlikely)</li>
<li>Bug in the TRAU synchronizer of libosmo-abis</li>
</ul> pySim - Feature #5976 (New): pySim-prog: do not program linked files multiple timeshttps://osmocom.org/issues/59762023-03-27T16:05:01Zdexter
<p>In the card file system there are files that exist in DF.GSM and in ADF.USIM. In case the files share the same content there may be one physical file and one that is a link to that physical file. At the momen pySim-prog does not care about this. It just programs all files or it programs the file intentionally only in one of the two locations, the latter one is a problem in case the specification of one of the files evolves so that the link has to be removed for newer card revisions and two individual files have to be created. Then one of the two is no longer programmed.</p>
<p>This can be handled smarter. The FCP should tell if the file is a linked file or not. So we should check if the file in question is a linked file and if so, we would skip programming it. In case the file is a physical file we would program it. This would mean we would have to visit all files in all locations but we would be on the safe side in case we have to break up links in future card revisions.</p>
<p>(The topic came up while fixing <a class="issue tracker-1 status-3 priority-2 priority-default closed" title="Bug: pySim-prog.py --mnclen=3 buggy / broken (Resolved)" href="https://osmocom.org/issues/5830">#5830</a>)</p> OsmoPCU - Feature #5930 (New): handle multiple BTSs with one PCUhttps://osmocom.org/issues/59302023-03-02T09:07:50Zdexter
<p>OsmoPCU has been used so far in BTS co-located scenario only. This scenario always consists of exactly one BTS instance and exactly one PCU instance. When the PCU is used on a BSC colocated scenario one PCU may serve multiple BTSs. OsmoPCU already manages a list with BTSs and the PCU socket protocol already supports multiple BTSs as well but it is unclear how mature this is. At least the code/API that is used to handle the direct PHY access is not able to distinguish between different BTSs.</p> OsmoMGW - Bug #3849 (New): race condition problem in rtp flow tests of the ttcn3 testsuitehttps://osmocom.org/issues/38492019-03-18T16:53:06Zdexter
<p>The TTCN3 tests that test actual RTP flow behavior through the MGW are prone to fail due to a race condition. The problem occurs when the RTP receiver in the test suite is switched off while at least one packet is still in the loop. When the packet eventually arrives the follwing error is generated:</p>
<pre>
RTP packets received while RX was disabled
MGCP_Test.ttcn:1424 MGCP_Test control part
MGCP_Test.ttcn:1364 TC_ts101318_rfc5993_rtp_conversion testcase
</pre>
<p>The problem is presumably more likely to occur when the test slave is under high load. Since all RTP tests are using the same API and work by the same principle all of those tests are prone to fail from time to time:</p>
<p>TC_one_crcx_loopback_rtp<br />TC_one_crcx_receive_only_rtp<br />TC_rtpem_selftest<br />TC_ts101318_rfc5993_rtp_conversion<br />TC_two_crcx_and_one_mdcx_rtp_ho<br />TC_two_crcx_and_rtp<br />TC_two_crcx_and_rtp_bidir<br />TC_two_crcx_and_unsolicited_rtp<br />TC_two_crcx_diff_pt_and_rtp<br />TC_two_crcx_diff_pt_and_rtp_bidir<br />TC_two_crcx_mdcx_and_rtp</p> OsmoBTS - Bug #3782 (New): OML bringup fails for osmo-bts-oc2g on high latency linkshttps://osmocom.org/issues/37822019-02-06T08:11:44Zdexter
<p>When osmo-bts-oc2g is used in lab setups with low latency links the OML bringup works without any problems. However, when there is a high latency link between BTS and BSC, then the OML bringup fails. The symptoms are not obvious, on the first look the bringup seems to work fine, but the BTS does not start transmitting and closer inspection of the OML related LOG output reveals that there are problems.</p> OsmoMGW - Bug #3443 (New): Check audio-payload options in osmo-mgw VTYhttps://osmocom.org/issues/34432018-08-02T14:14:54Zdexter
<p>The VTY in osmo-mgw has some strange audio-payload settings, which can set payload number, name, ptime. Normally those are parameters that are set via LCO and SDP by the call agent. Why do we need to set those information in the VTY? We need to check back if those options are still used in a meaningful way and what they are for. Maybe this is a leftover from the refactoring which requires fixing/removal.</p>
<p>Here are some examples:</p>
<p>sdp audio-payload number<br />sdp audio-payload name NAME<br />sdp audio-payload send-ptime",</p> OsmoMGW - Bug #3442 (New): fix int mgcp_codec_decide() in mgcp_codec.chttps://osmocom.org/issues/34422018-08-02T14:08:40Zdexter
<p>The function mgcp_codec_decide() selects the codec that is later returned with the MGCP response in MGCP. The response is generated from rtp->codec, which is set by mgcp_codec_decide().</p>
<p>Unfortunately, the current implementation of mgcp_codec_decide() makes no sense at all. It only causes no trouble at the moment because endp->tcfg->no_audio_transcoding is set to 0, which means that transcoding is turned on at the moment even though we do not support trans coding.</p>
<p>mgcp_codec_decide() should be revised in the following way: <br />We remove rtp->codec, because Technically an MGW does not have one selected codec, it knows about several codecs and may make choices based on its transcoding capabilities and policies. In practice this would mean that mgcp_codec_decide() removes all the unsupported codecs from rtp->codecs[]. The functions that generate the SDP will then find only the selected codecs and return them. At the moment we can only return one codec from inside the SDP because we use rtp->codec as data source.</p>
<p>Since we do not support transcoding at the moment there will not be much in mgcp_codec_decide(), endp->tcfg->no_audio_transcoding is set to 0 we can display a warning that tells the user that transcoding is not supported yet.</p> OsmoBSC - Feature #2918 (New): Implement a function to properly test connection clearing in MSC_C...https://osmocom.org/issues/29182018-02-09T17:11:45Zdexter
<p>BSC_ConnectionHandler.ttcn implements a function to test proper connection clearing: f_expect_clear()</p>
<p>We should have an inverse pendant in MSC_ConnectionHandler.ttcn for the BSC tests as well. Here we will probably have two scenarios, the first is when the BSC asks the MSC to clear the connection and the second will be when the MSC instructs the BSC to clear the connection (regular case)</p> libosmocore - Bug #2915 (Resolved): FSM: Do not terminate child FSMs earlyhttps://osmocom.org/issues/29152018-02-09T11:35:35Zdexter
<p>When an FSM is terminated _osmo_fsm_inst_term() first terminates the child FSMs and then executes the cleanup callback of the respective FSM. This prevents the FSM to perform actions on its children while it is terminated. Eventually this behavior prevents a graceful exit of the child FSMs. The parent FSM should always be able to signal last actions to its child FSMs before the final termination happens.</p>
<p>The patch that got merged recently caused unexpected fallout on the unit-tests of osmo-msc and had to be reverted:</p>
<p><a class="external" href="https://gerrit.osmocom.org/6318">https://gerrit.osmocom.org/6318</a></p>
<p>Manual tests on the test-network (includes osmo-bsc, osmo-msc, osmo-hlr, osmo-stp and osmo-mgw) did not reveal any behavioral difference. Also the TTCN3 testsuit for the BSC did not show any sign of problems caused by the patch. However, the fallout needs to be investigated and we need to check if it actually changes behavior or or if it just changes the position of some log-lines (expected, cleanup_cb now runs before the child termination).</p>
<p>Attached one finds a patch that shows the difference of the changed log-output of the test (.err).</p> OsmoBSC - Bug #2912 (Resolved): osmo-bsc configuration in docker-playground has faulty encryption...https://osmocom.org/issues/29122018-02-07T17:57:39Zdexter
<p>For me all the tests that involve encryption and an assignment pass:</p>
<p>#BSC_Tests.TC_assignment_fr_a5_0 # Pass<br />#BSC_Tests.TC_assignment_fr_a5_1_codec_missing # Pass<br />#BSC_Tests.TC_assignment_fr_a5_1 # Pass<br />#BSC_Tests.TC_assignment_fr_a5_3 # Pass<br />#BSC_Tests.TC_assignment_fr_a5_4 # Pass</p>
<p>However, the osmo-bsc.cfg I can find in docker-playground (ttcn3-bsc-test) has only A5 0 activated. For the current test set we have it should be: encryption a5 0 1 3</p> OsmoMGW - Bug #2863 (Resolved): osmo-mgw segfaults on DLCX (use-after-free in mgcp_network.c)https://osmocom.org/issues/28632018-01-23T19:23:47Zdexter
<p>In mgcp_network.c in mgcp_dispatch_rtp_bridge_cb() we use conn->priv to store the pointer to the opposite connection so we do not need to iterate through the connection list once more. When someone frees the opposite connection using a DLCX, then the pointer points to already freed memory. We need some mechanism to invalidate that information on DLCX, so that the callback function can know and prevent the use-after-free.</p> OsmoBSC - Bug #2823 (Resolved): Use bsc_subscr_conn_fsm in BSChttps://osmocom.org/issues/28232018-01-08T22:28:12Zdexter
<p>On laforge/fsm a draft FSM implementation can be found to make the handling of the subscriber connection safer and stateful.</p> OsmoMSC - Bug #2777 (Resolved): Document that DTMF signalling does not work (with internal MNCC)https://osmocom.org/issues/27772017-12-21T19:11:17Zdexter
<p>The correct transmission of DTMF tones is currently not working. I have done a series of tests, here are the results:</p>
<ul>
<li>unsuccessful_ms_to_ms_dtmf_tone_(NG40).pcapng: Mobile to mobile DTMF tone signalling Start and stop of the DTMF tone is acknowledged. This looks good to my perspective, probably the DTMF forwarding is not properly configured inside the NG40 tester, otherwise I would expect to see the MSC at least trying to deliver the DTMF tones to the other mobile.</li>
</ul>
<ul>
<li>unsuccessful_ms_to_ms_dtmf_tone_with_external_mncc.pcapng: Here I can see the start command, which gets translated into a SIP message on the osmo-sip-connector. The tone also gets acknowledged and is stopped again. But again we see no response to the other MS whatsoever. This could also still be a problem with my PBX setup, since we would expect to see another SIP-Message that triggers the DTMF tone for the other MS.</li>
</ul>
<ul>
<li>unsuccessful_ms_to_ms_dtmf_tone_with_internal_mncc.pcapng: This trace was recorded with the internal MNCC active and really looks not ok. The DTMF tone gets actively rejected.</li>
</ul>
<ul>
<li>successful_ms_to_sip_dtmf_tone.pcapng: Here I see almost the same as in unsuccessful_ms_to_ms_dtmf_tone_with_external_mncc.pcapng, but the tone gets actually played on the other side. So I think sending DTMF tones should be fine, but receiving definetly has a problem.</li>
</ul>
<ul>
<li>When I press buttons on the sip phone actually nothing, not even a sip-message is transmitted. That also confirms that there may be problems with the PBX.</li>
</ul>
<p>However. I still wonder why the DTMF tones get rejected when osmo-msc is running on its internal MNCC. Something is definetly problematic there. The DTMF tone should travel back to the other end and not get rejected. I also attached the configuration files of osmo-bsc and osmo-msc. Maybe I am just lacking the right configuration options.</p> OsmoMSC - Bug #2745 (Resolved): UMTS ciphering on GSM does not work when both 2G and 3G keys are ...https://osmocom.org/issues/27452017-12-13T16:20:57Zdexter
<p>When populating the hlr database with 3G keys (auc_3g), then 2G authentication stops working, while 3G authentication on nano3G still works fine. When the 3G keys are removed, then 2G authentication works again. At the moment we suspect that osmo-msc trys to perform 3G authentication on 2G (specified) and fails because it does not work.</p>
<p>In the attached archive one finds a trace from the connection between MSC and BSC and the complete network configuration, hlr database logs and start scripts.</p> OsmoMGW - Feature #2580 (New): implement timeout/resend mechanism for mgcp_clienthttps://osmocom.org/issues/25802017-10-17T16:28:03Zdexter
<p>At the moment mgcp_client sends the the message out and waits for the response, when the response is received, then a the result is returned through a callback. If no response is received (e.g. packet loss), then simply nothing happens. It would be very helpful if the message gets resend after some time.</p>
<p>Each mgcp_message has a unique ID-Number and osmo-mgw is able to handle resend messages. So if the message was received osmo-mgw, but the response got lost on its way to the client, a resend would not hurt. We only need to upgrade the mgcp_client to resend messages after some timeout in case no response is received.</p> OsmoSGSN - Bug #2577 (Resolved): Ensure meaningful default loglevels.https://osmocom.org/issues/25772017-10-17T09:52:24Zdexter
<p>There are some loglevels configured to LOGL_DEBUG by default in osmo-sgsn. Find meaningful defaults and also check the other products.</p>
<p>(We should also add a test that checks if some application registers odd log levels by default.)</p> OsmoMGW - Feature #2517 (Resolved): use libosmocore counters for packet/byte counting (statistics)https://osmocom.org/issues/25172017-09-22T07:37:31Zdexter
<p>use any of the libosmocore counters, rather than having hand-coded counters. A rate counter would have the benefit that it would come with free CTRL interface access to the counters.</p>
<p>(see also the SGSN/PDP-Context per direction packet and byte counting)</p> OsmoMGW - Feature #2516 (Resolved): automatic testing of osmo-mgw / jenkins integrationhttps://osmocom.org/issues/25162017-09-18T21:45:01Zdexter
<p>Currently we test osmo-mgw with unit tests. It might make sense to run some more realistic tests. The idea is to start osmo-mgw in a testrig that then makes test connections and sends test data. The testrig could be a python program or even a TTCN3 test.</p>
Some ideas:
<ul>
<li>Send command (e.g. CRCX) and inspect resulting internal states via VTY also check response for plausibility</li>
<li>Send odd command sequences, check if the expected error codes are generated.</li>
<li>Send malformed messages or incomplete messages, check if the expected error codes are generated</li>
<li>Create a full connection, send RTP packets through, check if the RTP packets take the right path</li>
<li>Create a loopback connection, send RTP packets, check if the packets are reflected correctly</li>
</ul> OsmoSGSN - Bug #2501 (In Progress): suspected problem with unanswered neighbor solicitationhttps://osmocom.org/issues/25012017-09-07T12:20:44Zdexter
<p>getting and using an IPV6 pdp context has been tested successfully using a<br />samsung galaxy S2, but tests with a Getnord ONYX fail.</p>
<p>In the failure case, the PDP-Context is opened successfully, also the following<br />interactions look good. Except that the pdp context is closed by the phone a<br />shortly after it had been established. The dactivation cause is a regular<br />deactivation.</p>
<p>When comparing the two traces it is distinctive, that the trace from the<br />getnord does contain a neighbor solicitation request. This request seems to be<br />ignored by the GGSN. It is likely that the getnord mobile interprets this as<br />a failure and then closes the pdp context.</p>
<p>The traces of the two cases are attached to this ticket.</p> OsmoMSC - Feature #2397 (Resolved): let osmo-msc record location area from location update for LA...https://osmocom.org/issues/23972017-07-24T20:13:10Zdexter
<p>The MSC is responsible to issue the paging commands to the BSS (BSC), it should know which BSC has which location area under its control in order to support LAC wide paging at some point. Since we automatically discover the BSCs we also need to discover automatically which location are is behind which MSC. The location area becomes known with the first location update a random phone is doing. We could just update a list with location areas we have got location area updates from. This list can than be used to find out which BSC, handles which location area.</p> OsmoBTS - Bug #2355 (New): optimize log output of phy specific codehttps://osmocom.org/issues/23552017-07-10T08:44:24Zdexter
<p>In osmo-bts, there is plenty of log output in the phy specific code. Some of this log output could be moved to the common code. This would unify the log output.</p> OsmoMSC - Bug #2322 (Resolved): Make osmo-msc work with external mncchttps://osmocom.org/issues/23222017-06-12T17:06:27Zdexter
<p>In its current state, osmo-msc does not work with the external mncc. This needs to be fixed.</p> libosmo-sccp + libosmo-sigtran - Bug #2259 (New): problem with local referencehttps://osmocom.org/issues/22592017-05-16T13:05:55Zdexter
<p>When a connection attemt (local reference = 2) is made, libosmo-sccp complains with "<000d> sccp_scoc.c:1528 Cannot find connection for local reference 2". Current master is at 872c6b2a8e309ca6739ef295f1fc468c189e4ec9. The problem seems to be introduced with commit 5527df78adc08b76df07c4b682263b5bdd6181d4 (libosmo-sccp.git). When the commit is reverted, the correct functionality of libosmo-sccp seems to be restored.</p>
<p>The problem can be demonstrated by using the client/server example that is shipped with libosmo-sccp. The following VTY-Commands were used to trigger the problem:</p>
<pre>
enable
sccp-user
called-addr-ssn 202
connect-req 2 hello
</pre>
<p>Note: In the good case I can see the normal CR with payload attached and the CC that with the payload that is echoed by the the echo subsystem. The bad case results in an CREF message, which contains an refusal cause code 0x0F (unqalified)</p> libosmocore - Bug #1938 (Resolved): lapd_core human readable connection IDs in debug loghttps://osmocom.org/issues/19382017-02-03T11:31:12Zdexter
<p>At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead.</p>
<p>e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3"</p>
<p>This can be implemented by adding a string member to the lapd_datalink struct. The user would set the string to a human readable identifier when the link is created. (See also osmo_fsm).</p>
<p>See also: <a class="external" href="https://gerrit.osmocom.org/#/c/1724/">https://gerrit.osmocom.org/#/c/1724/</a></p>