Open Source Mobile Communications: Issueshttps://osmocom.org/https://osmocom.org/favicon.ico?16647414092024-03-26T14:00:15ZOpen Source Mobile Communications
Redmine OsmoMGW - Bug #6424 (In Progress): TC_one_crcx_loopback_rtp_implicit consistently failing in mast...https://osmocom.org/issues/64242024-03-26T14:00:15Zlaforge
<p>`TC_one_crcx_loopback_rtp_implicit` appears to be failing consistently in master for 30+ consecutive builds. Meanwhile, the same test is passing just fine in latest. So there seems to be some (long-standing) regression in master?</p> OsmocomBB - Bug #6337 (New): bad fr audio with gapk/ms-sdrhttps://osmocom.org/issues/63372024-01-22T21:21:06ZHoernchen
<p>The audio sounds <em>kinda</em> choppy, but not really - one half are apparently decoding issues, the other one.. well.. hard to tell, bad timing doing blocking audio calls?<br />It does not appear to be cpu related.<br />Another problem is is that the (very large!) wq used by l1ctl_client_send keeps filling up, which obviously adds latency, until it overflows. At that point random messages get dropped, which is kinda bad...<br />Sometimes the audio improves after some time - I don't understand why/how.</p>
<p>This might affect phone setups, too.</p> OsmoSGSN - Feature #6294 (New): Support GN/Gp interoperation procedures between SGSN and MMEhttps://osmocom.org/issues/62942023-12-07T14:48:04Zdaniel
<p>In an Inter-RAT setup a UE could perform a RAU coming from a 4G network. In that case the UE/MS is unknown to the SGSN and it should request the SGSN context from the MME.<br />Similarly the MME needs to request the SGSN context from the SGSN if it receives a Tracking Area Update from an unknown UE.</p>
<p>If this succeeds then the PDP context at the pgw needs to be modified. <br />See diagrams TS 23.401 D 3.5-1 and D 3.6-1 for details.</p> Osmocom Conferences (OsmoDevCon, OsmoCon, OsmoDevCall) - Feature #6290 (In Progress): Organize Os...https://osmocom.org/issues/62902023-12-06T14:17:47Zlaforge
<p>We already wanted to re-start 2023 but somehow I didn't manage to ever find the time and energy to do it. But let's make sure we definitely have an OsmoDevCon in 2024 again.</p>
<p>The date and venue are still TBD, as is pretty much anything else.</p> OsmoGGSN (former OpenGGSN) - Feature #6223 (In Progress): TTCN3 unit test[s] for GTPv1U with exte...https://osmocom.org/issues/62232023-10-18T15:03:43Zlaforge
<p>Let's generate GTPv1U trffic with one or even multiple extension headers and see if osmo-ggsn (in both kernel and userspace case) pass the user data as normally expected.</p> OsmocomBB - Bug #6200 (New): osmo-trx-ms: lots of @Received bad frame (rc=-1, ber=444/444)@https://osmocom.org/issues/62002023-10-03T16:46:40Zfixeria
<p>Hi <a class="user active" href="https://osmocom.org/users/52">Hoernchen</a>,</p>
<p>we had a debugging session with <a class="user active" href="https://osmocom.org/users/30187">pespin</a> today and we got the mssdr-ms side to work more or less reliably. But we noticed a weird problem:</p>
<pre>
20231003152951965 DL1C NOTICE trxcon(0)[0x5579a42900]{BCCH_CCCH}: L1CTL_DM_EST_REQ indicates single ARFCN GSM900 979 (l1ctl.c:572)
20231003152951965 DSCH NOTICE trxcon(0)[0x5579a42900]: Reset scheduler (sched_trx.c:190)
20231003152951965 DSCH NOTICE trxcon(0)[0x5579a42900]: Delete TDMA timeslot #0 (sched_trx.c:226)
20231003152951965 DSCH NOTICE trxcon(0)[0x5579a42900]: Add a new TDMA timeslot #4 (sched_trx.c:207)
20231003152951965 DSCH NOTICE trxcon(0)[0x5579a42900]: (Re)configure TDMA timeslot #4 as PDCH (sched_trx.c:276)
20231003152951966 DSCH NOTICE trxcon(0)[0x5579a42900]: TS4-PDTCH activating (sched_trx.c:476)
20231003152951966 DSCH NOTICE trxcon(0)[0x5579a42900]: TS4-PTCCH activating (sched_trx.c:476)
20231003152953364 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=86/456) at fn=513573 (sched_lchan_pdtch.c:94)
20231003152954366 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=87/456) at fn=513790 (sched_lchan_pdtch.c:94)
20231003152954804 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513885 (sched_lchan_pdtch.c:94)
20231003152954827 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513890 (sched_lchan_pdtch.c:94)
20231003152954846 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513894 (sched_lchan_pdtch.c:94)
20231003152954864 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513898 (sched_lchan_pdtch.c:94)
20231003152954887 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513903 (sched_lchan_pdtch.c:94)
20231003152954906 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513907 (sched_lchan_pdtch.c:94)
20231003152954924 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513911 (sched_lchan_pdtch.c:94)
20231003152954947 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513916 (sched_lchan_pdtch.c:94)
20231003152954966 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513920 (sched_lchan_pdtch.c:94)
20231003152954984 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513924 (sched_lchan_pdtch.c:94)
20231003152955007 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513929 (sched_lchan_pdtch.c:94)
20231003152955025 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513933 (sched_lchan_pdtch.c:94)
20231003152955044 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513937 (sched_lchan_pdtch.c:94)
20231003152955067 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513942 (sched_lchan_pdtch.c:94)
20231003152955085 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513946 (sched_lchan_pdtch.c:94)
20231003152955104 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513950 (sched_lchan_pdtch.c:94)
20231003152955127 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513955 (sched_lchan_pdtch.c:94)
20231003152955145 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513959 (sched_lchan_pdtch.c:94)
20231003152955164 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513963 (sched_lchan_pdtch.c:94)
20231003152955188 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513968 (sched_lchan_pdtch.c:94)
20231003152955205 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513972 (sched_lchan_pdtch.c:94)
20231003152955224 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513976 (sched_lchan_pdtch.c:94)
20231003152955248 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513981 (sched_lchan_pdtch.c:94)
20231003152955265 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513985 (sched_lchan_pdtch.c:94)
20231003152955284 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513989 (sched_lchan_pdtch.c:94)
20231003152955308 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513994 (sched_lchan_pdtch.c:94)
20231003152955325 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=513998 (sched_lchan_pdtch.c:94)
20231003152955344 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=514002 (sched_lchan_pdtch.c:94)
20231003152955368 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=514007 (sched_lchan_pdtch.c:94)
20231003152955385 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=514011 (sched_lchan_pdtch.c:94)
20231003152955404 DSCHD ERROR trxcon(0)[0x5579a42900]: TS4-PDTCH Received bad frame (rc=-1, ber=444/444) at fn=514015 (sched_lchan_pdtch.c:94)
</pre>
<p>It's not seen during the GMM ATTACH and SM PDP CTX ACT procedures, but only when we tried sending some data (ICMP ping) over the tun interface.<br />As can be seen, quite a lot of Downlink PDCH blocks not being decoded. The <code>BER=444/444</code> makes me think that received bursts were all 0 (neither -127 nor 127).<br />This is enlarging the ping delays significantly (from ~600ms to ~5000ms ==> ~10 times):</p>
<pre>
PING 176.16.222.1 (176.16.222.1) 56(84) bytes of data.
64 bytes from 176.16.222.1: icmp_seq=1 ttl=64 time=681 ms
64 bytes from 176.16.222.1: icmp_seq=2 ttl=64 time=803 ms
64 bytes from 176.16.222.1: icmp_seq=3 ttl=64 time=625 ms
64 bytes from 176.16.222.1: icmp_seq=4 ttl=64 time=525 ms
64 bytes from 176.16.222.1: icmp_seq=5 ttl=64 time=5646 ms
64 bytes from 176.16.222.1: icmp_seq=6 ttl=64 time=4678 ms
64 bytes from 176.16.222.1: icmp_seq=7 ttl=64 time=3911 ms
64 bytes from 176.16.222.1: icmp_seq=8 ttl=64 time=2948 ms
64 bytes from 176.16.222.1: icmp_seq=9 ttl=64 time=1984 ms
64 bytes from 176.16.222.1: icmp_seq=10 ttl=64 time=1020 ms
64 bytes from 176.16.222.1: icmp_seq=11 ttl=64 time=602 ms
64 bytes from 176.16.222.1: icmp_seq=12 ttl=64 time=742 ms
64 bytes from 176.16.222.1: icmp_seq=13 ttl=64 time=5741 ms
64 bytes from 176.16.222.1: icmp_seq=14 ttl=64 time=4769 ms
64 bytes from 176.16.222.1: icmp_seq=15 ttl=64 time=3824 ms
64 bytes from 176.16.222.1: icmp_seq=16 ttl=64 time=2860 ms
64 bytes from 176.16.222.1: icmp_seq=17 ttl=64 time=1896 ms
64 bytes from 176.16.222.1: icmp_seq=18 ttl=64 time=932 ms
64 bytes from 176.16.222.1: icmp_seq=19 ttl=64 time=813 ms
64 bytes from 176.16.222.1: icmp_seq=20 ttl=64 time=653 ms
64 bytes from 176.16.222.1: icmp_seq=21 ttl=64 time=5630 ms
64 bytes from 176.16.222.1: icmp_seq=22 ttl=64 time=4658 ms
64 bytes from 176.16.222.1: icmp_seq=23 ttl=64 time=3893 ms
64 bytes from 176.16.222.1: icmp_seq=24 ttl=64 time=2929 ms
64 bytes from 176.16.222.1: icmp_seq=25 ttl=64 time=1969 ms
64 bytes from 176.16.222.1: icmp_seq=26 ttl=64 time=1005 ms
64 bytes from 176.16.222.1: icmp_seq=27 ttl=64 time=546 ms
64 bytes from 176.16.222.1: icmp_seq=28 ttl=64 time=686 ms
</pre>
<p>This looks like a PHY problem to me, so assigning to you.</p> osmo-e1d - Bug #6169 (New): Frame masking against network frame ordering, not frame numbershttps://osmocom.org/issues/61692023-09-06T08:33:34Zmanawyrm
<p>The osmo-e1d code includes functionality to save bandwidth by not transmitting timeslots, which haven't changed since the last frame.</p>
<p><a class="external" href="https://gitea.osmocom.org/Manawyrm/osmo-e1d/src/branch/master/src/octoi/e1oip.c#L263">https://gitea.osmocom.org/Manawyrm/osmo-e1d/src/branch/master/src/octoi/e1oip.c#L263</a></p>
<p>Later in development, the frame_rifo was introduced to combat packet reordering in real-world networks (like DOCSIS).<br />The code unpacking the timeslots into full E1 frames is currently unpacking against the last frame in the incoming buffer, not the last frame in the RIFO (random in, first out) buffer.<br />This means that frames will get filled with random data from other frames in the event of a re-ordering.</p>
<p>Unpacking/Unmasking should be done after the RIFO mechanism.</p> OsmoGGSN (former OpenGGSN) - Feature #6096 (In Progress): add support for kernel-GTP IPv6https://osmocom.org/issues/60962023-07-12T20:37:17Zlaforge
<p><a class="user active" href="https://osmocom.org/users/21027">pablo</a> has implemented [inner] IPv6 support in the kernel GTP driver and libgtpnl, see <a class="issue tracker-1 status-2 priority-3 priority-high3" title="Bug: IPv6 support for inner (user) IP layer missing (In Progress)" href="https://osmocom.org/issues/1952">#1952</a></p>
<p>In order to end-to-end test it in our TTCN3 test suite (which already tests ipv6 when used with userspace GTP), we would need to add supprot for it to osmo-ggsn</p>
<p>I think <a class="user active" href="https://osmocom.org/users/30187">pespin</a> is currently too busy to look at this, hence assigned to <a class="user active" href="https://osmocom.org/users/301771">osmith</a>, but that's not mandatory. Feel free to pass around as needed.</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> libosmo-netif - Bug #5931 (New): heap-use-after-free when osmo_stream_srv_destroy() is called ins...https://osmocom.org/issues/59312023-03-02T11:03:22Zdaniel
<p>This can happen in the ipa-stream-server example if the client disconnects unexpectedly (i.e. if there is still data the server wants to send).</p>
<pre>
<0003> stream.c:1542 message received
<0000> ipa-stream-server.c:53 received message from stream
<0003> stream.c:1864 connection closed with client
<0000> ipa-stream-server.c:61 cannot receive message
=================================================================
==2103936==ERROR: AddressSanitizer: heap-use-after-free on address 0x611000000d58 at pc 0x7f2196d84d24 bp 0x7ffe1b9f4330 sp 0x7ffe1b9f4328
READ of size 8 at 0x611000000d58 thread T0
#0 0x7f2196d84d23 in llist_empty /home/daniel/local/osmo-master/include/osmocom/core/linuxlist.h:171
#1 0x7f2196d84d23 in osmo_stream_srv_write /home/daniel/scm/osmo/libosmo-netif/src/stream.c:1563
#2 0x7f2196d859f7 in osmo_stream_srv_cb /home/daniel/scm/osmo/libosmo-netif/src/stream.c:1629
#3 0x7f219658cbfd in poll_disp_fds /home/daniel/scm/osmo/libosmocore/src/core/select.c:361
#4 0x7f219658ccfd in _osmo_select_main /home/daniel/scm/osmo/libosmocore/src/core/select.c:399
#5 0x7f219658cda6 in osmo_select_main /home/daniel/scm/osmo/libosmocore/src/core/select.c:438
#6 0x5584fc1c390c in main /home/daniel/scm/osmo/libosmo-netif/examples/ipa-stream-server.c:130
#7 0x7f2195a46189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#8 0x7f2195a46244 in __libc_start_main_impl ../csu/libc-start.c:381
#9 0x5584fc1c3240 in _start (/home/daniel/scm/osmo/libosmo-netif/examples/.libs/ipa-stream-server+0x2240)
0x611000000d58 is located 152 bytes inside of 200-byte region [0x611000000cc0,0x611000000d88)
freed by thread T0 here:
#0 0x7f2196eb76a8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
#1 0x7f21974fa5b1 (/lib/x86_64-linux-gnu/libtalloc.so.2+0x45b1)
#2 0x5584fc1c34c7 in read_cb /home/daniel/scm/osmo/libosmo-netif/examples/ipa-stream-server.c:62
#3 0x7f2196d78877 in osmo_stream_srv_read /home/daniel/scm/osmo/libosmo-netif/src/stream.c:1550
#4 0x7f2196d859df in osmo_stream_srv_cb /home/daniel/scm/osmo/libosmo-netif/src/stream.c:1627
#5 0x7f219658cbfd in poll_disp_fds /home/daniel/scm/osmo/libosmocore/src/core/select.c:361
#6 0x7f219658ccfd in _osmo_select_main /home/daniel/scm/osmo/libosmocore/src/core/select.c:399
#7 0x7f219658cda6 in osmo_select_main /home/daniel/scm/osmo/libosmocore/src/core/select.c:438
#8 0x5584fc1c390c in main /home/daniel/scm/osmo/libosmo-netif/examples/ipa-stream-server.c:130
#9 0x7f2195a46189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
previously allocated by thread T0 here:
#0 0x7f2196eb89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
#1 0x7f21974fbe3d (/lib/x86_64-linux-gnu/libtalloc.so.2+0x5e3d)
SUMMARY: AddressSanitizer: heap-use-after-free /home/daniel/local/osmo-master/include/osmocom/core/linuxlist.h:171 in llist_empty
</pre>
<p>osmo_stream_srv_destroy() frees the complete conn but osmo_stream_srv_cb() could still call osmo_stream_srv_write(conn) after osmo_stream_srv_read() (and by extension the read_cb()) returns.</p>
<p>We need to guard this and delay actually freeing the conn if we are currently in a callback.</p> SIMtrace 2 - Bug #5921 (In Progress): simtrace2 cardem vs. Linux kernel USB autosuspendhttps://osmocom.org/issues/59212023-02-23T17:40:01Zlaforge
<p>(at least) after the following patch was merged, simtrace2-cardem doesn't work with Linux kernels' USB autosuspend anymore:<br /><pre>
commit a5d537973db9359804e82a506057f3dd6d53fab9
Author: Harald Welte <laforge@osmocom.org>
Date: Mon Jul 25 19:59:08 2022 +0200
cardem: reset the uC in case of USB disconnect
</pre></p>
<p>The problem is that the USB kernel notices the simtrace2 device is not in use (no application using it), which in turn means it will power-down the device after 5s. The device then recognizes this as USB disconnect, and we use that to reset the firmware:</p>
<pre>
=============================================================================
SIMtrace2 firmware 0.8.1.58-773d, BOARD=simtrace, APP=cardem
(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon
=============================================================================
-I- Chip ID: 0x299b0a60 (Ext 0x00000000)
-I- Serial Nr. 44203020-48574336-30303931-32323032
-I- Reset Cause: software reset (processor reset required by the software)
-I- USB init...
USBD_Init
SetAddr(22) -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _ SetCfg(1) cfgChanged1 -I- calling configure of all configurations...
-I- calling init of config 1...
-I- Modem 0: physical SIM
-I- 0: Use local/physical SIM
-I- entering main loop...
-I- USB is now configured
-I- Resetting uC on USB disconnect
=============================================================================
SIMtrace2 firmware 0.8.1.58-773d, BOARD=simtrace, APP=cardem
(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon
=============================================================================
-I- Chip ID: 0x299b0a60 (Ext 0x00000000)
-I- Serial Nr. 44203020-48574336-30303931-32323032
-I- Reset Cause: software reset (processor reset required by the software)
-I- USB init...
USBD_Init
SetAddr(23) -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _ SetCfg(1) cfgChanged1 -I- calling configure of all configurations...
-I- calling init of config 1...
-I- Modem 0: physical SIM
-I- 0: Use local/physical SIM
-I- entering main loop...
-I- USB is now configured
-I- Resetting uC on USB disconnect
</pre>
<p>This in turn will make the device enumerate and re-enumerate in 5s cycles:</p>
<pre>
[585591.174222] usb 1-1: new full-speed USB device number 84 using xhci_hcd
[585591.330180] usb 1-1: New USB device found, idVendor=1d50, idProduct=60e3, bcdDevice= 0.02
[585591.330216] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=11
[585591.330231] usb 1-1: Product: SIMtrace 2
[585591.330242] usb 1-1: Manufacturer: sysmocom - s.f.m.c. GmbH
[585591.330253] usb 1-1: SerialNumber: 44203020485743363030393132323032
[585594.759881] usb 1-1: USB disconnect, device number 84
[585595.530214] usb 1-1: new full-speed USB device number 85 using xhci_hcd
[585595.682690] usb 1-1: New USB device found, idVendor=1d50, idProduct=60e3, bcdDevice= 0.02
[585595.682697] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=11
[585595.682701] usb 1-1: Product: SIMtrace 2
[585595.682704] usb 1-1: Manufacturer: sysmocom - s.f.m.c. GmbH
[585595.682706] usb 1-1: SerialNumber: 44203020485743363030393132323032
[585598.802549] usb 1-1: USB disconnect, device number 85
[585602.158170] usb 1-1: new full-speed USB device number 86 using xhci_hcd
[585602.313720] usb 1-1: New USB device found, idVendor=1d50, idProduct=60e3, bcdDevice= 0.02
[585602.313757] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=11
[585602.313772] usb 1-1: Product: SIMtrace 2
[585602.313784] usb 1-1: Manufacturer: sysmocom - s.f.m.c. GmbH
[585602.313795] usb 1-1: SerialNumber: 44203020485743363030393132323032
[585606.602416] usb 1-1: USB disconnect, device number 86
</pre> OsmoSGSN - Bug #5880 (In Progress): User Manual sections 11.1.1-2 document non-existing (removed?...https://osmocom.org/issues/58802023-01-27T12:08:58Zfixeria
<p>This problem was reported by a user in the IRC:</p>
<pre>
18:55 < PJHarvy> i can't understand: in osmo sgsn manual we use:
18:55 < PJHarvy> encapsulation udp local-ip 127.0.0.1 1
18:55 < PJHarvy> encapsulation udp local-port 23000. but my version doesn't support this commands
</pre>
<p>The current <a class="external" href="https://downloads.osmocom.org/docs/latest/osmosgsn-usermanual.pdf">https://downloads.osmocom.org/docs/latest/osmosgsn-usermanual.pdf</a> indeed lists these commands, which do not exist.</p> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Feature #5861 (In Progress): extend charon with ...https://osmocom.org/issues/58612023-01-17T15:53:09Zlaforge
<p>right now there's a charon plugin for eap-aka. It uses a local CSV file for storage of K/OP values, and it assumes it can synchronously access that and use it to derive AUTN challenges. so basically it includes a mini-hss/hlr.</p>
<p>We need to modify/replace that with a system where we get an asynchronous request for authentication over some external interface (currently called CEAI in my diagram at <a class="wiki-page" href="https://osmocom.org/projects/osmo-epdg/wiki/EPDG_implementation_plan">EPDG_implementation_plan</a>), like a unix domain socket. Charon then needs to wait until whatever external application has obtained auth tuples, and proceed with EAP-AKA only once a tuple has been received.</p>
<p>This can be developed and tested independent of the actual ePDG by implementing a small stub program that for example reas key material from a local CSV file (again), or possibly even by asking osmo-hlr via GSUP (we do have all the related libraries in place for C and python, AFAIR). So the latter might actually be easier than the CSV approach, where again one needs to do key derviation etc.</p> OsmoBSC - Feature #5755 (In Progress): io_uring support in osmo-bschttps://osmocom.org/issues/57552022-11-09T12:56:54Zlaforge
<p>Once libosmocore provides the new API for the upcoming io_uring backend (<a class="issue tracker-2 status-3 priority-3 priority-high3 closed" title="Feature: io_uring support in libosmocore (Resolved)" href="https://osmocom.org/issues/5751">#5751</a>) we will need to port osmo-bsc over to this new API.</p>
<p>Some I/O is done directly by osmo-bsc, while other I/O is done via libaries such as libosmo-sigtran, libosmo-netif, libosmo-mgcp-client. There are separate tickets for porting over those libraries. Once that has happened, there might also be API changes for osmo-bsc to catch up with.</p>
<p>Currently we're using the following code-paths for I/O</p>
<table>
<tr>
<th>osmo-bsc function</th>
<th>I/O function</th>
<th>provided by</th>
</tr>
<tr>
<td>bsc_sccplite_mgcp_proxy_cb</td>
<td>recv</td>
<td>-</td>
</tr>
<tr>
<td>bsc_sccplite_rx_mgcp</td>
<td>send</td>
<td>-</td>
</tr>
<tr>
<td>cbsp_srv_cb/cbsp_client_read_cb</td>
<td>osmo_cbsp_recv_buffered</td>
<td>libosmocore</td>
</tr>
<tr>
<td>cbsp_tx_decoded</td>
<td>osmo_stream_{cli,srv}_send</td>
<td>libosmo-netif</td>
</tr>
<tr>
<td>Abis interface</td>
<td>-</td>
<td>libosmo-abis</td>
</tr>
<tr>
<td>A+Lb interface</td>
<td>-</td>
<td>libosmo-sigtran</td>
</tr>
<tr>
<td>VTY interface</td>
<td>-</td>
<td>libosmo-vty</td>
</tr>
<tr>
<td>CTRL interface</td>
<td>-</td>
<td>libosmo-ctrl</td>
</tr>
</table>
<p>We need to analyze each of those and migrate, if possible.</p>
<p>There is also some other I/O like meas_feed, pcu_sock rf_ctrl which are not performance critical and hence can stay like they are and are not further discussed here.</p> gr-osmosdr - Bug #5731 (New): Install gr-osmosdr on Ubuntu 20.04https://osmocom.org/issues/57312022-10-27T13:39:25ZOjunbamO
<p>Hi Osmocom Team,</p>
<p>in our company we wanna use gnuradio in combination with the gr-osmosdr tools. I tried to install it directly via the debian packages. But in combination with the gnuradio 3.10 version it is incompatible and fails constantly on the <i>init</i>.py in line 21 when trying to import osmosdr python packages. But it also is dropping the same error if we use gnuradio 3.9 or 3.7.</p>
<p>After that I tried to build the gr-osmosdr from source. By the way here is your documentation outdated on every documentation says git.osmocom.org: <a class="external" href="https://osmocom.org/projects/gr-osmosdr/wiki">https://osmocom.org/projects/gr-osmosdr/wiki</a>. After some time I found the synced github project but also your gittea instance. Then finally I cloned the repository, tried to build it and now facing this error:</p>
<pre><code class="shell syntaxhl">root@CL25CA052:/tmp/gr-osmosdr/build# make
Scanning dependencies of target gnuradio-osmosdr
<span class="o">[</span> 2%] Building CXX object lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o
/tmp/gr-osmosdr/lib/source_impl.cc: In static member <span class="k">function</span> ‘static osmosdr::source::sptr osmosdr::source::make<span class="o">(</span>const string&<span class="o">)</span>’:
/tmp/gr-osmosdr/lib/source_impl.cc:105:36: error: could not convert ‘gnuradio::get_initial_sptr<span class="o">(</span>T<span class="k">*</span><span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> source_impl]<span class="o">()</span>’ from ‘boost::shared_ptr<source_impl>’ to ‘osmosdr::source::sptr’ <span class="o">{</span>aka ‘std::shared_ptr<osmosdr::source>’<span class="o">}</span>
105 | <span class="k">return </span>gnuradio::get_initial_sptr<span class="o">(</span> new source_impl<span class="o">(</span>args<span class="o">)</span> <span class="o">)</span><span class="p">;</span>
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
| |
| boost::shared_ptr<source_impl>
/tmp/gr-osmosdr/lib/source_impl.cc: In constructor ‘source_impl::source_impl<span class="o">(</span>const string&<span class="o">)</span>’:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: error: no match <span class="k">for</span> ‘operator<span class="o">=</span>’ <span class="o">(</span>operand types are ‘gr::basic_block_sptr’ <span class="o">{</span>aka ‘boost::shared_ptr<gr::basic_block>’<span class="o">}</span> and ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">})</span>
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<T>&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:48: note: no known conversion <span class="k">for </span>argument 1 from ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> to ‘const boost::shared_ptr<gr::basic_block>&’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<Y>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
556 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span>shared_ptr<Y> const & r<span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> is not derived from ‘const boost::shared_ptr<X>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
567 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> & r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
576 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::unique_ptr<_Up, _Ep>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
598 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::unique_ptr<Y, D> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> is not derived from ‘std::unique_ptr<_Tp, _Dp>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::movelib::unique_ptr<Y, D><span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
607 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::movelib::unique_ptr<Y, D> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘std::shared_ptr<file_source_c>’ is not derived from ‘boost::movelib::unique_ptr<Y, D>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<T>&&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:43: note: no known conversion <span class="k">for </span>argument 1 from ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> to ‘boost::shared_ptr<gr::basic_block>&&’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<Y>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
665 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr<Y> <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:280:15: note: ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> is not derived from ‘boost::shared_ptr<X>’
280 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::detail::sp_nullptr_t<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block<span class="p">;</span> boost::detail::sp_nullptr_t <span class="o">=</span> std::nullptr_t]’
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:29: note: no known conversion <span class="k">for </span>argument 1 from ‘file_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<file_source_c>’<span class="o">}</span> to ‘boost::detail::sp_nullptr_t’ <span class="o">{</span>aka ‘std::nullptr_t’<span class="o">}</span>
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: error: no match <span class="k">for</span> ‘operator<span class="o">=</span>’ <span class="o">(</span>operand types are ‘gr::basic_block_sptr’ <span class="o">{</span>aka ‘boost::shared_ptr<gr::basic_block>’<span class="o">}</span> and ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">})</span>
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<T>&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:48: note: no known conversion <span class="k">for </span>argument 1 from ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> to ‘const boost::shared_ptr<gr::basic_block>&’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<Y>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
556 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span>shared_ptr<Y> const & r<span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> is not derived from ‘const boost::shared_ptr<X>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
567 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> & r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
576 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::unique_ptr<_Up, _Ep>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
598 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::unique_ptr<Y, D> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> is not derived from ‘std::unique_ptr<_Tp, _Dp>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::movelib::unique_ptr<Y, D><span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
607 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::movelib::unique_ptr<Y, D> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘std::shared_ptr<rtl_tcp_source_c>’ is not derived from ‘boost::movelib::unique_ptr<Y, D>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<T>&&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:43: note: no known conversion <span class="k">for </span>argument 1 from ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> to ‘boost::shared_ptr<gr::basic_block>&&’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<Y>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
665 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr<Y> <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:294:15: note: ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> is not derived from ‘boost::shared_ptr<X>’
294 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::detail::sp_nullptr_t<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block<span class="p">;</span> boost::detail::sp_nullptr_t <span class="o">=</span> std::nullptr_t]’
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:29: note: no known conversion <span class="k">for </span>argument 1 from ‘rtl_tcp_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rtl_tcp_source_c>’<span class="o">}</span> to ‘boost::detail::sp_nullptr_t’ <span class="o">{</span>aka ‘std::nullptr_t’<span class="o">}</span>
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: error: no match <span class="k">for</span> ‘operator<span class="o">=</span>’ <span class="o">(</span>operand types are ‘gr::basic_block_sptr’ <span class="o">{</span>aka ‘boost::shared_ptr<gr::basic_block>’<span class="o">}</span> and ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">})</span>
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<T>&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:48: note: no known conversion <span class="k">for </span>argument 1 from ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> to ‘const boost::shared_ptr<gr::basic_block>&’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<Y>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
556 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span>shared_ptr<Y> const & r<span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> is not derived from ‘const boost::shared_ptr<X>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
567 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> & r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
576 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::unique_ptr<_Up, _Ep>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
598 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::unique_ptr<Y, D> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> is not derived from ‘std::unique_ptr<_Tp, _Dp>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::movelib::unique_ptr<Y, D><span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
607 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::movelib::unique_ptr<Y, D> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘std::shared_ptr<rfspace_source_c>’ is not derived from ‘boost::movelib::unique_ptr<Y, D>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<T>&&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:43: note: no known conversion <span class="k">for </span>argument 1 from ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> to ‘boost::shared_ptr<gr::basic_block>&&’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<Y>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
665 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr<Y> <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:333:15: note: ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> is not derived from ‘boost::shared_ptr<X>’
333 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::detail::sp_nullptr_t<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block<span class="p">;</span> boost::detail::sp_nullptr_t <span class="o">=</span> std::nullptr_t]’
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:29: note: no known conversion <span class="k">for </span>argument 1 from ‘rfspace_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<rfspace_source_c>’<span class="o">}</span> to ‘boost::detail::sp_nullptr_t’ <span class="o">{</span>aka ‘std::nullptr_t’<span class="o">}</span>
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: error: no match <span class="k">for</span> ‘operator<span class="o">=</span>’ <span class="o">(</span>operand types are ‘gr::basic_block_sptr’ <span class="o">{</span>aka ‘boost::shared_ptr<gr::basic_block>’<span class="o">}</span> and ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">})</span>
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<T>&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:48: note: no known conversion <span class="k">for </span>argument 1 from ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> to ‘const boost::shared_ptr<gr::basic_block>&’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<Y>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
556 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span>shared_ptr<Y> const & r<span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> is not derived from ‘const boost::shared_ptr<X>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
567 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> & r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
576 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::unique_ptr<_Up, _Ep>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
598 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::unique_ptr<Y, D> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> is not derived from ‘std::unique_ptr<_Tp, _Dp>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::movelib::unique_ptr<Y, D><span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
607 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::movelib::unique_ptr<Y, D> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘std::shared_ptr<soapy_source_c>’ is not derived from ‘boost::movelib::unique_ptr<Y, D>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<T>&&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:43: note: no known conversion <span class="k">for </span>argument 1 from ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> to ‘boost::shared_ptr<gr::basic_block>&&’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<Y>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
665 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr<Y> <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:354:15: note: ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> is not derived from ‘boost::shared_ptr<X>’
354 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::detail::sp_nullptr_t<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block<span class="p">;</span> boost::detail::sp_nullptr_t <span class="o">=</span> std::nullptr_t]’
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:29: note: no known conversion <span class="k">for </span>argument 1 from ‘soapy_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<soapy_source_c>’<span class="o">}</span> to ‘boost::detail::sp_nullptr_t’ <span class="o">{</span>aka ‘std::nullptr_t’<span class="o">}</span>
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: error: no match <span class="k">for</span> ‘operator<span class="o">=</span>’ <span class="o">(</span>operand types are ‘gr::basic_block_sptr’ <span class="o">{</span>aka ‘boost::shared_ptr<gr::basic_block>’<span class="o">}</span> and ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">})</span>
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<T>&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:547:48: note: no known conversion <span class="k">for </span>argument 1 from ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> to ‘const boost::shared_ptr<gr::basic_block>&’
547 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr const & r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>const boost::shared_ptr<Y>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
556 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span>shared_ptr<Y> const & r<span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:556:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> is not derived from ‘const boost::shared_ptr<X>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
567 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> & r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:567:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::auto_ptr<_Up>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
576 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::auto_ptr<Y> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:576:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> is not derived from ‘std::auto_ptr<Y>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>std::unique_ptr<_Up, _Ep>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
598 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> std::unique_ptr<Y, D> <span class="o">&&</span> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:598:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> is not derived from ‘std::unique_ptr<_Tp, _Dp>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: candidate: ‘template<class Y, class D> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::movelib::unique_ptr<Y, D><span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> D <span class="o">=</span> D<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
607 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::movelib::unique_ptr<Y, D> r <span class="o">)</span>
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:607:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘std::shared_ptr<redpitaya_source_c>’ is not derived from ‘boost::movelib::unique_ptr<Y, D>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<T>&&<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block]’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:658:43: note: no known conversion <span class="k">for </span>argument 1 from ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> to ‘boost::shared_ptr<gr::basic_block>&&’
658 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ~~~~~~~~~~~~~~^
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: candidate: ‘template<class Y> boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::shared_ptr<Y>&&<span class="o">)</span> <span class="o">[</span>with Y <span class="o">=</span> Y<span class="p">;</span> T <span class="o">=</span> gr::basic_block]’
665 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> shared_ptr<Y> <span class="o">&&</span> r <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:665:18: note: template argument deduction/substitution failed:
/tmp/gr-osmosdr/lib/source_impl.cc:361:15: note: ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> is not derived from ‘boost::shared_ptr<X>’
361 | block <span class="o">=</span> src<span class="p">;</span> iface <span class="o">=</span> src.get<span class="o">()</span><span class="p">;</span>
| ^~~
In file included from /usr/include/boost/shared_ptr.hpp:17,
from /usr/local/include/gnuradio/types.h:28,
from /usr/local/include/gnuradio/runtime_types.h:27,
from /usr/local/include/gnuradio/io_signature.h:27,
from /tmp/gr-osmosdr/lib/source_impl.cc:30:
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:18: note: candidate: ‘boost::shared_ptr<T>& boost::shared_ptr<T>::operator<span class="o">=(</span>boost::detail::sp_nullptr_t<span class="o">)</span> <span class="o">[</span>with T <span class="o">=</span> gr::basic_block<span class="p">;</span> boost::detail::sp_nullptr_t <span class="o">=</span> std::nullptr_t]’
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:683:29: note: no known conversion <span class="k">for </span>argument 1 from ‘redpitaya_source_c_sptr’ <span class="o">{</span>aka ‘std::shared_ptr<redpitaya_source_c>’<span class="o">}</span> to ‘boost::detail::sp_nullptr_t’ <span class="o">{</span>aka ‘std::nullptr_t’<span class="o">}</span>
683 | shared_ptr & <span class="nv">operator</span><span class="o">=(</span> boost::detail::sp_nullptr_t <span class="o">)</span> BOOST_SP_NOEXCEPT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: <span class="k">***</span> <span class="o">[</span>lib/CMakeFiles/gnuradio-osmosdr.dir/build.make:63: lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o] Error 1
make[1]: <span class="k">***</span> <span class="o">[</span>CMakeFiles/Makefile2:375: lib/CMakeFiles/gnuradio-osmosdr.dir/all] Error 2
make: <span class="k">***</span> <span class="o">[</span>Makefile:141: all] Error 2
root@CL25CA052:/tmp/gr-osmosdr/build#
</code></pre>
<p>I think I have all relevant dev packages and librarys installed. So I can't find the problem with trying to run osmosdr tools with gnuradio.</p>
<p>Thank you very much in advance! Would be great to have this fixed.</p>
<p>Regards<br />Tobias</p> Osmocom Libraries - Bug #5683 (New): How to install osmocom in Chinahttps://osmocom.org/issues/56832022-09-18T10:18:56Z914068469@qq.com
<p>Is it necessary to <a class="external" href="ftp://sources.redhat.com/pub/newlib">ftp://sources.redhat.com/pub/newlib</a> Download newlib-1.19.0.tar.gz</p> OsmoBSCNAT - Bug #5574 (New): OsmoBSCNAT testsuite running in jenkinshttps://osmocom.org/issues/55742022-06-01T10:38:54Zosmith
<p>As discussed earlier, OsmoBSCNAT ttcn3 tests should be running in jenkins, like for other Osmocom projects.</p> Ericsson RBS 6xxx - Bug #5571 (New): DUG can come up, but with Avail: "Power Off"https://osmocom.org/issues/55712022-05-24T01:48:54Zkeith
<p>Sometimes, after starting osmo-bsc, The BTS will transmit, we even start to get Channel requests, but this is the status: <br /><pre>
OsmoBSC# show trx
TRX 0 of BTS 0 is on ARFCN 251
RF Nominal Power: 37 dBm, reduced by 0 dB, resulting BS power: 37 dBm
Radio Carrier NM State: Oper 'NULL', Admin 'Unlocked', Avail 'Power off'
RSL State: connected
Baseband Transceiver NM State: Oper 'NULL', Admin 'Locked', Avail 'Power off'
E1 Signalling Link:
E1 Line 0, Type e1d: Timeslot 1, Mode RSL
E1 TEI 0, SAPI 0
</pre></p>
<p>and of course we get such as this:</p>
<pre>
DRSL NOTICE <0003> abis_rsl.c:2193 (bts=0) CHAN RQD[Location updating]: no resources for SDCCH 0x4, retrying with TCH_F
DRLL DEBUG <0000> lchan_select.c:299 (bts=0) lchan_select_by_type(TCH_F)
DRLL DEBUG <0000> lchan_select.c:233 (bts=0) lchan_avail_by_type(TCH_F)
DRLL DEBUG <0000> lchan_select.c:65 looking for lchan TCH/F: (bts=0,trx=0) trx not usable
DRLL DEBUG <0000> lchan_select.c:65 looking for lchan TCH/F_PDCH as TCH/F without pchan switch: (bts=0,trx=0) trx not usable
DRLL DEBUG <0000> lchan_select.c:65 looking for lchan TCH/F_PDCH as TCH/F: (bts=0,trx=0) trx not usable
DRLL DEBUG <0000> lchan_select.c:65 looking for lchan TCH/F_TCH/H_SDCCH8_PDCH as TCH/F without pchan switch: (bts=0,trx=0) trx not usable
DRLL DEBUG <0000> lchan_select.c:65 looking for lchan TCH/F_TCH/H_SDCCH8_PDCH as TCH/F: (bts=0,trx=0) trx not usable
DRLL NOTICE <0000> lchan_select.c:305 (bts=0) Failed to select TCH_F channel
</pre>
<p>Stopping and restarting osmo-bsc will sooner ( or later :-/ ) get the TRX up....</p>
<p>Attached is osmo-bsc.log of the bring-up and pcap of same.</p>
<p>I suspect there is something happening in a certain order sometimes that causes this?</p> OsmoMSC - Bug #5564 (Stalled): blocking database I/O by SMS databasehttps://osmocom.org/issues/55642022-05-15T14:18:42Zlaforge
<p>when OsmoMSC was split from OsmoNITB, we externalized the HLR database and removed the database-stored counters. This leaves the internal SMS queue / database code as the only remaining part of code which performs potentailly blocking disk I/O.</p>
<p>As seen in <a class="issue tracker-1 status-7 priority-3 priority-high3" title="Bug: OsmoMSC sometimes stalls for dozens of seconds in a production deployment (Stalled)" href="https://osmocom.org/issues/5563">#5563</a> this is a real issue.</p>
I spent half a day on reviewing the code in detail and playing with different ideas, including
<ol>
<li>ripping out the sms_queue.c / db.c code completely into an external osmo-smsc which then uses GSUP</li>
<li>just moving db.c into a separate thread; make DB operations asynchronous</li>
<li>move sms_queue + db.c into a separate thread</li>
</ol>
<a name="moving-sms_queue-DB-code-to-new-osmo-smsc-intrfaced-via-GSUP"></a>
<h2 >moving sms_queue + DB code to new osmo-smsc, intrfaced via GSUP<a href="#moving-sms_queue-DB-code-to-new-osmo-smsc-intrfaced-via-GSUP" class="wiki-anchor">¶</a></h2>
<p>osmo-msc already contains code to do SMS via GSUP, so there's no mandatory modification to osm-msc expected in this approach.</p>
the major disadvantages of this appraoch are:
<ul>
<li>SMPP code would have to move to SMSC, and it is more tied into the MSC/VLR codebase -> extra effort</li>
<li>GSUP SMS interface is at a lower level than current sms_queue intrface -> extra effort of migrating/reimplementing that stuff in SMSC</li>
</ul>
<a name="SMS-related-VTY-commands-not-an-issue-SMSC-would-have-its-own-VTY"></a>
<h3 >SMS related VTY commands (not an issue, SMSC would have its own VTY)<a href="#SMS-related-VTY-commands-not-an-issue-SMSC-would-have-its-own-VTY" class="wiki-anchor">¶</a></h3>
<p>this would cover the following API parts</p>
<ul>
<li>sms_queue_clear</li>
<li>sms_queue_set_max_failure</li>
<li>sms_queue_set_max_pending</li>
<li>sms_queue_stats</li>
<li>sms_queue_sms_is_pending</li>
<li>sms_queue_trigger</li>
<li>vty_out</li>
</ul>
<a name="incoming-signals-into-sms_queue"></a>
<h3 >incoming signals into sms_queue<a href="#incoming-signals-into-sms_queue" class="wiki-anchor">¶</a></h3>
<ul>
<li>SS_SUBSCR / S_SUBSCR_ATTACHED
<ul>
<li>FIXME: unclear how this is handled in the GSUP case?</li>
</ul>
</li>
<li>SS_SMS / S_SMS_DELIVERED
<ul>
<li>-> gsm411_gsup_mt_fwd_sm_res()</li>
</ul>
</li>
<li>SS_SMS / S_SMS_MEM_EXCEEDED
<ul>
<li>-> gsm411_gsup_mt_fwd_sm_err()</li>
</ul>
</li>
<li>SS_SMS / S_SMS_UNKNOWN_ERROR
<ul>
<li>-> gsm411_gsup_mt_fwd_sm_err()</li>
</ul>
</li>
<li>SS_SMS / S_SMS_SUBMITTED
<ul>
<li>-> gsm411_gsup_mo_fwd_sm_req()</li>
</ul>
</li>
<li>SS_SMS / S_SMS_SMMA
<ul>
<li>-> gsm411_gsup_mo_ready_for_sm_req()</li>
</ul></li>
</ul>
<a name="DB-not-an-issue-DB-code-would-then-run-in-SMSC"></a>
<h3 >DB (not an issue, DB code would then run in SMSC)<a href="#DB-not-an-issue-DB-code-would-then-run-in-SMSC" class="wiki-anchor">¶</a></h3>
<ul>
<li>db_sms_delete_oldest_expired_message</li>
<li>db_sms_delete_sent_message_by_id</li>
<li>db_sms_get</li>
<li>db_sms_get_next_unsent_rr_msisdn</li>
<li>db_sms_get_unsent_for_subscr</li>
<li>db_sms_inc_deliver_attempts</li>
</ul>
<a name="SMS-transmission"></a>
<h3 >SMS transmission<a href="#SMS-transmission" class="wiki-anchor">¶</a></h3>
<ul>
<li>gsm411_send_sms calls by sms_queue
<ul>
<li>would have to be mapped to OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST</li>
</ul>
</li>
<li>sms_free
<ul>
<li>FIXME: what about vsub pointer/references?</li>
</ul>
</li>
<li>vlr_subscr_msisdn_or_name
<ul>
<li>just for logging, can be avoided</li>
</ul></li>
</ul>
<a name="making-just-the-DB-code-async-run-in-separate-thread"></a>
<h2 > making just the DB code async / run in separate thread<a href="#making-just-the-DB-code-async-run-in-separate-thread" class="wiki-anchor">¶</a></h2>
Is not easy as all of the call sites are assuming synchronous return/results<br />db_sms_get
<ul>
<li>sms_resend_pending
<ul>
<li>resend_pending timer
<ul>
<li>sms_queue_start
<ul>
<li>=> can be executed from separate thread</li>
</ul></li>
</ul></li>
</ul></li>
</ul>
db_sms_get_next_unsent_rr_msisdn
<ul>
<li>smsq_take_next_sms
<ul>
<li>sms_submit_pending
<ul>
<li>sms_send_next
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED
<ul>
<li>=> happens from the send_next it_Q completion handler</li>
</ul>
</li>
</ul>
</li>
<li>push_queue_timer
<ul>
<li>sms_queue_start
<ul>
<li>=> can be executed from separate thread</li>
</ul></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
db_sms_get_unsent_for_subscr
<ul>
<li>sms_send_next
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED
<ul>
<li>=> request to it_Q; completion then might add SMS to pending + gsm411_send_sms</li>
</ul>
</li>
</ul>
</li>
<li>sub_ready_for_sm
<ul>
<li>sms_subscr_cb / S_SUBSCR_ATTACHED
<ul>
<li>=> request to it_Q; completion then might add SMS to pending + gsm411_send_sms</li>
</ul></li>
</ul></li>
</ul>
db_sms_delete_sent_message_by_id
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED
<ul>
<li>=> no return value, no success check: async it_Q</li>
</ul></li>
</ul>
db_sms_inc_deliver_attempts
<ul>
<li>sms_sms_cb / S_SMS_UNKNOWN_ERROR
<ul>
<li>=> no return value, no success check: async it_Q</li>
</ul></li>
</ul>
db_sms_delete_oldest_expired_message
<ul>
<li>sms_sms_cb / any signal
<ul>
<li>=> no return value, no success check: async it_Q</li>
</ul></li>
</ul>
<a name="moving-sms_queue-DB-code-to-separate-thread"></a>
<h2 >moving sms_queue + DB code to separate thread<a href="#moving-sms_queue-DB-code-to-separate-thread" class="wiki-anchor">¶</a></h2>
<a name="access-to-pending_sms-linked-list"></a>
<h3 >access to pending_sms linked list<a href="#access-to-pending_sms-linked-list" class="wiki-anchor">¶</a></h3>
<p>There are quite a number of accesses to the pending_sms linked list. Given most ar read, and only some are write, we might use a rwlock?</p>
<ul>
<li>sms_find_pending [R]
<ul>
<li>sms_sms_cb</li>
<li>sms_queue_sms_is_pending</li>
</ul></li>
</ul>
<ul>
<li>sms_queue_sms_is_pending [R]
<ul>
<li>sms_submit_pending
<ul>
<li>timer</li>
</ul>
</li>
<li>vty</li>
</ul></li>
</ul>
<ul>
<li>sms_subscriber_find_pending [R]
<ul>
<li>sub_ready_for_sm
<ul>
<li>SS_SUBSCR / S_SUBSCR_ATTACHED</li>
</ul>
</li>
<li>sms_subscriber_is_pending
<ul>
<li>sms_submit_pending
<ul>
<li>timer</li>
</ul>
</li>
<li>sms_send_next
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED</li>
</ul></li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>sms_pending_from [R]
<ul>
<li>sms_submit_pending
<ul>
<li>timer</li>
</ul>
</li>
<li>sms_send_next
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>sms_pending_free [W]
<ul>
<li>sms_pending_failed
<ul>
<li>sms_sms_cb / S_SMS_UNKNOWN_ERROR</li>
</ul>
</li>
<li>sms_resend_pending
<ul>
<li>sms_sms_cb / S_SMS_DELIVERED</li>
<li>sms_sms_cb / S_SMS_MEM_EXCEEDED</li>
</ul>
</li>
<li>sms_queue_clear
<ul>
<li>vty</li>
</ul></li>
</ul></li>
</ul>
<ul>
<li>sms_resend_pending [R]
<ul>
<li>timer</li>
</ul></li>
</ul>
<ul>
<li>sms_queue_stats [R]
<ul>
<li>vty</li>
</ul></li>
</ul>
<ul>
<li>sms_queue_clear [W]
<ul>
<li>vty</li>
</ul></li>
</ul>
<a name="Conclusion"></a>
<h2 >Conclusion<a href="#Conclusion" class="wiki-anchor">¶</a></h2>
I think the following approach is best:
<ul>
<li>have a separate "SMS" thread</li>
<li>all database access happens <strong>from that thread only</strong></li>
<li>inter-thread message queues (libosmocore it_q) between main thread and SMS thread</li>
<li>sms_queue timers (push_queue_timer, resend_pending_timer) run in that thread</li>
<li>other input (mainly signals today) are serialized via it_q in main -> SMS direction</li>
<li>other output (mainly gsm411_send_sms) are serialized via it_q in SMS -> main direction</li>
</ul>
<a name="Serialize-SS_SMS-signals"></a>
<h3 >Serialize SS_SMS signals<a href="#Serialize-SS_SMS-signals" class="wiki-anchor">¶</a></h3>
<ul>
<li>we really only need to serialize paging_result and sms->id</li>
<li>submit them into it_q to SMS thread</li>
</ul>
<a name="serialize-SS_SUBSCR-signal"></a>
<h3 >serialize SS_SUBSCR signal<a href="#serialize-SS_SUBSCR-signal" class="wiki-anchor">¶</a></h3>
<ul>
<li>sms_subscriber_find_pending() can be done in main thread before serialization</li>
<li>check for vsub->lu_complete and zero MSISDN before serialization</li>
<li>we really only need to serialize the MSISDN</li>
<li>db_sms_get_unsent_for_subscr() then happens from SMS thread</li>
</ul>
<a name="move-push_queue_timer-resend_pending_timer-to-SMS-thread"></a>
<h3 >move push_queue_timer + resend_pending_timer to SMS thread<a href="#move-push_queue_timer-resend_pending_timer-to-SMS-thread" class="wiki-anchor">¶</a></h3>
<a name="serialize-db_sms_store-MO-SMS-SMPP"></a>
<h3 >serialize db_sms_store() (MO-SMS, SMPP)<a href="#serialize-db_sms_store-MO-SMS-SMPP" class="wiki-anchor">¶</a></h3>
<ul>
<li>failure to store in database would only be known asynchronously!</li>
<li>we can probably just ignore that.</li>
</ul>
<a name="serialize-db_sms_mark_delivered"></a>
<h3 >serialize db_sms_mark_delivered()<a href="#serialize-db_sms_mark_delivered" class="wiki-anchor">¶</a></h3>
<ul>
<li>we don't care about success right now anyway, so async is no problem</li>
</ul>
<a name="VTY"></a>
<h3 >VTY<a href="#VTY" class="wiki-anchor">¶</a></h3>
<ul>
<li>remove 'sms send pending' or implement different command via it_Q</li>
<li>remove 'sms delete expired' or implement different command via it_Q</li>
<li>serialize 'subscriber ... sms ...' via it_Q</li>
</ul> OsmoMSC - Bug #5563 (Stalled): OsmoMSC sometimes stalls for dozens of seconds in a production dep...https://osmocom.org/issues/55632022-05-14T07:02:28Zlaforge
<p>When we take a long-term (8 hours) bpftrace showing us the delay between subsequent calls to <code>poll()</code> (by libosmocore/src/select.c) in osmo-msc, we get the following histogram (units in milli-seconds):</p>
<pre>
@poll:
[0] 532245 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[1] 13088 |@ |
[2, 4) 5621 | |
[4, 8) 5566 | |
[8, 16) 2746 | |
[16, 32) 5282 | |
[32, 64) 5262 | |
[64, 128) 6139 | |
[128, 256) 14273 |@ |
[256, 512) 18357 |@ |
[512, 1K) 13806 |@ |
[1K, 2K) 4222 | |
[2K, 4K) 1331 | |
[4K, 8K) 450 | |
[8K, 16K) 0 | |
[16K, 32K) 0 | |
[32K, 64K) 5 | |
[64K, 128K) 17 | |
[128K, 256K) 2 | |
</pre>
So as we can see
<ul>
<li>the majority is very low (sub-second to 128ms)</li>
<li>there is a smaller peak in the order of 128ms to 1s (surprisingly long)</li>
<li>there are still several thousand of instances where the delay isn the 1s..4s. interval (too long!)</li>
<li>there ar rare occasions where we don't return to poll for 32, 64, or evne more than 128 seconds (crazy!)</li>
</ul>
<p>If we contrast this with the amount of time we spent in <code>dbi_conn_queryf</code>, this is clearly not the culprit:</p>
<pre>
@dbi_query:
[0] 37008 |@ |
[1] 1640233 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[2, 4) 1245771 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
[4, 8) 21406 | |
[8, 16) 325 | |
[16, 32) 71 | |
[32, 64) 17 | |
</pre>
<p>So the longest duration DB query was in the order of 32..63 ms. Not good, but not a problem either with all the MSC (MM, CC, SMS, BSSAP, SCCP, ...) time-outs being in the multiple-second range.</p>
<p>So now we have to find out if the stalls are</p>
<ol>
<li>due to excessive system load (like I/O) outside of osmo-msc, or</li>
<li>due to something osmo-msc is doing by itself (like calling thousands of database queries of several milli-seconds each) without going through the libosmocore poll main loop.</li>
</ol> OsmoMSC - Bug #5559 (Stalled): OsmoMSC at 100% CPU and unresponsive for up to several minutes!https://osmocom.org/issues/55592022-05-12T23:22:09Zkeith
<p>Not much more to say than the title I'm afraid.</p>
<p>So far, I've actually only noticed it on a system using the RBS and osmo-e1d. But I do not have conclusive proof that it is exclusively happening here.</p>
<p>I'm assuming a culprit might be the sms queue, but I'm not convinced because I'm not seeing it on other systems with more messages in the queue in the sqlite db - and this can be upwards of 1,000 SMS queued.</p> osmo-remsim - Bug #5527 (Stalled): warn on duplicate client (id) connectionshttps://osmocom.org/issues/55272022-04-12T17:37:27Zlaforge
<p>Every client must have its own unique tuple of (client_id/slot_nr).</p>
<p>If a remsim-server receives a duplicate connection, it should pring a clear warning message to the log.</p>
<p>This might not always be a bug, as in csae of network outages / restarts a new connection might arrive before the old one is closed.</p>
<p>The same should apply to remsim-bankd.</p> OsmoTRX - Feature #5516 (In Progress): BladeRF 2.0 Supporthttps://osmocom.org/issues/55162022-04-07T08:12:04Zakibsayyed
<p>Dear OSMOCOM Community</p>
<p>I was looking to purchase LimeSDR/Mini but it's been discontinued and coming up with a newer 2.0 version</p>
<p>Can we put efforts in adding support for bladerf as well.</p>
<p>Link for new LimeSDR Mini Page<br /><a class="external" href="https://www.crowdsupply.com/lime-micro/limesdr-mini-2-0">https://www.crowdsupply.com/lime-micro/limesdr-mini-2-0</a></p> Open Source IMS Client - Feature #5481 (New): SIM card interface for doubangohttps://osmocom.org/issues/54812022-03-07T10:53:16Zlaforge
<p>The pre-existing <a class="wiki-page" href="https://osmocom.org/projects/foss-ims-client/wiki/Doubango">doubango</a> library code assumes that the IMS client has knowledge of the secret key material (K + OP/OPc) in order to perform the authentication and IPsec key establoshment to the P-CSCF.</p>
<p>This may be the case in <em>some</em> testing/lab setups, but in general this key material is stored on the ISIM or USIM application of a SIM card.</p>
<p>If we want to use doubango with such standard cards, we need some kind of interface how doubango can perform authentication via ISIM/USIM.</p>
The interface should be rather generic, as the detailed interface for SIM access will be highly platform specific:
<ul>
<li>For development on a normal Linux laptop, a pcsc-lite based interface to a smart card reader will be used.</li>
<li>For execution inside a specific phone, phone specific interfaces for SIM card access may be used (QMI, AT+CSIM, ...)</li>
</ul> Open Source IMS Client - Feature #5480 (In Progress): Linux kernel IPsec plugin for doubangohttps://osmocom.org/issues/54802022-03-07T10:49:03Zlaforge
<p>This task is about creating an IPsec plugin for the <a class="wiki-page" href="https://osmocom.org/projects/foss-ims-client/wiki/Doubango">doubango</a> library, allowing doubango to control IPsec policies and security associations in the kernel IPsec stack.</p>
<p>Doubango already has a related plugin architecture and a sample plugin for Windows 10</p> gr-osmosdr - Bug #5425 (New): Problem receiving samples using dual receivers with BladeRFhttps://osmocom.org/issues/54252022-01-28T18:34:18Zaoweis
<p>When using the gr-osmosdr block with BladeRF 2.0 dual receive modes, the receiver misses every other buffer. The detailed experiment is shown here:<br /><a class="external" href="https://github.com/Abdob/FRS-Transceiver/blob/master/README_PART1.md">https://github.com/Abdob/FRS-Transceiver/blob/master/README_PART1.md</a></p>
<p>To fix the problem, the file bladerf_source_c.cc needs to be modified. The modified file is attached. The fix is also explained here:<br /><a class="external" href="https://github.com/Abdob/FRS-Transceiver/">https://github.com/Abdob/FRS-Transceiver/</a></p> SIMtrace 2 - Bug #5419 (Stalled): cardem errors with higher baud ratehttps://osmocom.org/issues/54192022-01-25T18:27:00Zlaforge
Setup is as follows:
<ul>
<li>sysmoISIM-SJA2 in built-in CCID reader of my Thinkpad x260</li>
<li>SIMtrace2 with cardem firmware 'master' (0.8.1.7-ea9a) hooked up via FPC to</li>
<li>CCID reader "Identive CLOUD 2700 F" </li>
<li><code>simtrace2-cardem-pcsc</code> to forward request from IdentiveCCID -> SIMtrace -> st2-cardem-pcsc -> builtin-CCID</li>
</ul>
<p>This works fine with F/D ratio 372, and also works fine in most cases with F/D ratio 16.</p>
<p>However, sometimes with ratio 16, things break down at some point.</p>
<a name="log-output-of-cardem-firmware"></a>
<h2 >log output of cardem firmware<a href="#log-output-of-cardem-firmware" class="wiki-anchor">¶</a></h2>
<pre>
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 b2 9d 04 22
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 a4 00 04 02
-I- 0: flush_rx_buffer (5)
-I- 0: flush_rx_buffer (2)
-I- 0: send_tpdu_header: 00 c0 00 00 23
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 b2 9e 04 22
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 a4 00 04 02
-I- 0: flush_rx_buffer (5)
-I- 0: flush_rx_buffer (2)
-I- 0: send_tpdu_header: 00 c0 00 00 23
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 b2 9f 04 22
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 a4 00 04 02
-I- 0: flush_rx_buffer (5)
-I- 0: flush_rx_buffer (2)
-I- 0: send_tpdu_header: 00 c0 00 00 23
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 b2 a0 04 22
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 a4 00 04 02
-I- 0: flush_rx_buffer (5)
-I- 0: flush_rx_buffer (2)
-I- 0: send_tpdu_header: 00 c0 00 00 23
-I- 0: flush_rx_buffer (5)
N-I- 0: send_tpdu_header: 00 b2 a1 04 22
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 00 a4 00 04 02
-I- 0: flush_rx_buffer (5)
-I- 0: flush_rx_buffer (2)
N-I- 0: send_tpdu_header: 00 c0 00 00 60
-I- 0: flush_rx_buffer (5)
-I- 0: send_tpdu_header: 02 00 a4 00 04
-I- 0: flush_rx_buffer (5)
</pre>
two things noticable:
<ul>
<li>the 'N' being printed by card_emu as waiting time extension</li>
<li>the last TPDU header <code>02 00 a4 00 04</code> doesn't look like a TPDU header: The 02 seems wrong, the TPDU likely starts with <code>00 a4</code>.</li>
</ul>
<a name="situation-on-Identive-CCID-reader-side"></a>
<h2 >situation on "Identive CCID reader" side<a href="#situation-on-Identive-CCID-reader-side" class="wiki-anchor">¶</a></h2>
<p>pySim-shell "export" shows:<br /><pre>
update_record 159 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
update_record 160 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
update_record 161 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
# bad file: MF/DF.TELECOM/EF.ADN, Failed to transmit with protocol T0. Transaction failed.
EXCEPTION of type 'RuntimeError' occurred with message: '6881: Functions in CLA not supported - Logical channel not supported'
To enable full traceback, run the following command: 'set debug true'
</pre></p>
<a name="simtrace2-cardem-pcsc"></a>
<h2 >simtrace2-cardem-pcsc<a href="#simtrace2-cardem-pcsc" class="wiki-anchor">¶</a></h2>
<pre>
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 23
=> DATA: flags=1, 00 c0 00 00 23 : SW=0x9000, len_rx=35
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 b2 9d 04 22
=> DATA: flags=1, 00 b2 9d 04 22 : SW=0x9000, len_rx=34
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 a4 00 04 02
=> DATA: flags=1, 00 a4 00 04 02 : -> 01 06 00 00 00 00 10 00 02 00 00 00 02 00 6f 3a
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 23
=> DATA: flags=1, 00 c0 00 00 23 : SW=0x9000, len_rx=35
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 b2 9e 04 22
=> DATA: flags=1, 00 b2 9e 04 22 : SW=0x9000, len_rx=34
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 a4 00 04 02
=> DATA: flags=1, 00 a4 00 04 02 : -> 01 06 00 00 00 00 10 00 02 00 00 00 02 00 6f 3a
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 23
=> DATA: flags=1, 00 c0 00 00 23 : SW=0x9000, len_rx=35
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 b2 9f 04 22
=> DATA: flags=1, 00 b2 9f 04 22 : SW=0x9000, len_rx=34
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 a4 00 04 02
=> DATA: flags=1, 00 a4 00 04 02 : -> 01 06 00 00 00 00 10 00 02 00 00 00 02 00 6f 3a
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 23
=> DATA: flags=1, 00 c0 00 00 23 : SW=0x9000, len_rx=35
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 b2 a0 04 22
=> DATA: flags=1, 00 b2 a0 04 22 : SW=0x9000, len_rx=34
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 a4 00 04 02
=> DATA: flags=1, 00 a4 00 04 02 : -> 01 06 00 00 00 00 10 00 02 00 00 00 02 00 6f 3a
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 23
=> DATA: flags=1, 00 c0 00 00 23 : SW=0x9000, len_rx=35
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 b2 a1 04 22
=> DATA: flags=1, 00 b2 a1 04 22 : SW=0x9000, len_rx=34
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 a4 00 04 02
=> DATA: flags=1, 00 a4 00 04 02 : -> 01 06 00 00 00 00 10 00 02 00 00 00 02 00 6f 3a
=> DATA: flags=2, 6f 3a : SW=0x6123, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 00 c0 00 00 60
=> DATA: flags=1, 00 c0 00 00 60 : SW=0x6c23, len_rx=0
-> 01 06 00 00 00 00 13 00 01 00 00 00 05 00 02 00 a4 00 04
<0000> apdu_dispatch.c:112 Unknown APDU case 0
=> DATA: flags=1, 02 00 a4 00 04 : SW=0x6881, len_rx=0
</pre>
<p>it also agrees that this last APDU is somehow wrong and cannot determine the APDU case.</p>
<a name="USB-communication"></a>
<h2 >USB communication<a href="#USB-communication" class="wiki-anchor">¶</a></h2>
<p>last message from SIMtrace to host is "RX DATA" with header flag set and 0200a40004. The card still responds with SW 6881 to that, as obviously the APDU header is invalid.</p>
<p><img src="https://osmocom.org/attachments/download/4852/wireshark.png" alt="" /></p> OsmoBSC - Feature #5106 (Feedback): Watchdog that would try to un-BORKE BORKen timeslotshttps://osmocom.org/issues/51062021-04-04T20:21:26Zkeith
<p>In <a class="issue tracker-1 status-3 priority-2 priority-default closed behind-schedule" title="Bug: rbs2000 ALL BORKEN Channels (Resolved)" href="https://osmocom.org/issues/5096">#5096</a> that discussed lchans ending up borken on a busy ericsson bts:</p>
<p>"What would probably make sense is some kind of watchdog that would try to un-BORKE BORKen timeslots after a certain time. This can be done by activating a broken sub-slot and releasing it immediately. If the BTS still refuses to activate it, then it's completely BORKen and the second attempt to un-BORKE can be postponed further."</p>
<p>(<a class="external" href="https://osmocom.org/issues/5096#note-12">https://osmocom.org/issues/5096#note-12</a>)</p> Qualcomm Linux Modems by Quectel & Co - Support #4206 (New): Unbrick cpe router without web ui in...https://osmocom.org/issues/42062019-09-16T10:41:38Zjahcultura
<p>I have a router 4G cpe modem with linux embedded without web access and terminal does anyone know how to recover? I checked on the board has the points RX, TX, DLOAD, RESET_N, so I saw here only have SMD components so the only way to rewrite the firmware would be for these communication points. Note: I tried access via serial but stops at bootloader.</p>
<p>SERIAL LOG:<br />Format: Log Type - Time(microsec) - Message - Optional Info<br />Log Type: B - Since Boot(Power On Reset), D - Delta, S - Statistic<br />S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.1.2-00075<br />S - IMAGE_VARIANT_STRING=LAATANAZA<br />S - OEM_IMAGE_VERSION_STRING=ubuntu<br />S - Boot Config, 0x000002e0<br />B - 1216 - PBL, Start<br />B - 3723 - bootable_media_detect_entry, Start<br />B - 4454 - bootable_media_detect_success, Start<br />B - 4458 - elf_loader_entry, Start<br />B - 6701 - auth_hash_seg_entry, Start<br />B - 6923 - auth_hash_seg_exit, Start<br />B - 59917 - elf_segs_hash_verify_entry, Start<br />B - 107892 - PBL, End<br />B - 97478 - SBL1, Start<br />B - 146003 - pm_device_init, Start<br />B - 163114 - PM_SET_VAL:Skip<br />D - 15890 - pm_device_init, Delta<br />B - 164120 - boot_config_data_table_init, Start<br />D - 174948 - boot_config_data_table_init, Delta - (420 Bytes)<br />B - 342576 - CDT version:3,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0<br />B - 348767 - sbl1_ddr_set_params, Start<br />B - 352580 - Pre_DDR_clock_init, Start<br />D - 244 - Pre_DDR_clock_init, Delta<br />D - 0 - sbl1_ddr_set_params, Delta<br />B - 365237 - pm_driver_init, Start<br />D - 4544 - pm_driver_init, Delta<br />B - 371642 - cpr_init, Start<br />D - 91 - cpr_init, Delta<br />B - 376156 - cpr_cx_mx_apc_vol_update, Start<br />D - 91 - cpr_cx_mx_apc_vol_update, Delta<br />B - 391071 - sbl1_qhsusb_al_do_fast_enum, Start<br />D - 0 - sbl1_qhsusb_al_do_fast_enum, Delta<br />B - 394060 - clock_init, Start<br />D - 152 - clock_init, Delta<br />B - 399855 - boot_flash_init, Start<br />D - 28670 - boot_flash_init, Delta<br />B - 500230 - Image Load, Start<br />D - 78172 - QSEE Image Loaded, Delta - (490820 Bytes)<br />B - 580049 - sbl1_efs_handle_cookies, Start<br />D - 0 - sbl1_efs_handle_cookies, Delta<br />B - 585661 - Devcfg Partition does not exist<br />B - 589839 - Image Load, Start<br />D - 518 - SEC Image Loaded, Delta - (2048 Bytes)<br />B - 597800 - Image Load, Start<br />D - 31994 - RPM Image Loaded, Delta - (152400 Bytes)<br />B - 629825 - Image Load, Start<br />D - 58804 - APPSBL Image Loaded, Delta - (367664 Bytes)<br />B - 688690 - QSEE Execution, Start<br />D - 152 - QSEE Execution, Delta<br />B - 694393 - SBL1, End<br />D - 599203 - SBL1, Delta<br />S - Throughput, 3000 KB/s (1013352 Bytes, 321860 us)<br />S - DDR Frequency, 240 MHz<br />Android Bootloader - UART_DM Initialized!!!<br />[0] welcome to lk<br />-----------------------------------------------------------------------<br />DMESG PART :</p>
<p>[ 0.000000] Booting Linux on physical CPU 0x0<br />[ 0.000000] Initializing cgroup subsys cpu<br />[ 0.000000] Initializing cgroup subsys cpuacct<br />[ 0.000000] Linux version 3.18.20 (wangshihong@ubuntu-238) (gcc version 4.9.2 (GCC) ) <a class="issue tracker-2 status-5 priority-5 priority-highest closed" title="Feature: port Dieter's windows code to mISDN (Closed)" href="https://osmocom.org/issues/1">#1</a> PREEMPT Mon Oct 22 19:35:14 CST 2018<br />[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d<br />[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache<br />[ 0.000000] Machine model: Qualcomm Technologies, Inc. MDM <br />------------------------------------------------------------------------------------------------<br />Technical Specifications</p>
<p>LTE Support Bands FDD Band 1/3/5/7/8/28<br />WCDMA 850Mhz and 2100MHz<br />CPU frequency 533MHz<br />Flash + Memory 4Gb + 2 Gb DDR2<br />WIFI<br />2T2R 2.4GHz<br />802.11b/g/n, 300Mbps<br />Interface<br />1 x Power DC Port :<br />DC12V/1A<br />1 x RJ11<br />1x RJ45<br />10Mbps/100Mbps/1000<br />Mbps WAN/LAN Port<br />1x Power Button<br />1x Reset Button<br />1x WPS Button<br />1x 2FF Standard SIM card slot<br />1x USB port</p> gr-osmosdr - Support #3819 (New): OSMO SDR blocks for GNUradiohttps://osmocom.org/issues/38192019-02-28T18:00:07Zchesir
<p>I installed GNUradio, and its GUI, gnuradio-companion, using pybombs. The use of pybombs for installation requires that one set up a prefix point, or directory, so that all installation files are under that directory. When I use the method outlined in <a class="external" href="https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR">https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR</a>, many files, including the RTL SDR Source block file, are installed, but I do not know which files, aside from (obviously) the block file, should be copied from the default installation locations to a directory under my prefix point for the blocks to actually work. Having copied only the RTL SDR Source block file, and attempting to execute the GRC flowgraph (which contains that one block), I am greeted with the error "Import Error: No module named osmosdr" What do I do?</p>