Open Source Mobile Communications: Issueshttps://projects.osmocom.org/https://projects.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://projects.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://projects.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> OsmocomBB - Bug #6200 (New): osmo-trx-ms: lots of @Received bad frame (rc=-1, ber=444/444)@https://projects.osmocom.org/issues/62002023-10-03T16:46:40Zfixeria
<p>Hi <a class="user active" href="https://projects.osmocom.org/users/52">Hoernchen</a>,</p>
<p>we had a debugging session with <a class="user active" href="https://projects.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://projects.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> osmo-ePDG - VoWifi Evolved Packet Data Gateway - Bug #6091 (Feedback): osmo-epdg: Implement CEAI ...https://projects.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://projects.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://projects.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://projects.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> gr-osmosdr - Bug #5731 (New): Install gr-osmosdr on Ubuntu 20.04https://projects.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://projects.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://projects.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://projects.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://projects.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://projects.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://projects.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://projects.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://projects.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> gr-osmosdr - Bug #5425 (New): Problem receiving samples using dual receivers with BladeRFhttps://projects.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://projects.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://projects.osmocom.org/attachments/download/4852/wireshark.png" alt="" /></p> OsmocomDECT - Bug #5396 (New): TcpDump/WireShark will not build with libpcap(dect) https://projects.osmocom.org/issues/53962022-01-09T12:56:49Z
<p>Wireshark problem:</p>
<pre>
capture-pcap-util.c:274: error: static declaration of ‘pcap_datalink_name_to_val’ follows non-static declaration
/usr/local/include/pcap/pcap.h:380: note: previous declaration of ‘pcap_datalink_name_to_val’ was here
capture-pcap-util.c:289: error: static declaration of ‘pcap_datalink_val_to_name’ follows non-static declaration
/usr/local/include/pcap/pcap.h:381: note: previous declaration of ‘pcap_datalink_val_to_name’ was here
TcpDump? problem:
./../libpcap/libpcap.a(pcap.o): In function `pcap_datalink_name_to_val':
/root/libpcap/./pcap.c:855: multiple definition of `pcap_datalink_name_to_val'
dlnames.o:dlnames.c:(.text+0x90): first defined here
./../libpcap/libpcap.a(pcap.o): In function `pcap_datalink_val_to_name':
/root/libpcap/./pcap.c:868: multiple definition of `pcap_datalink_val_to_name'
dlnames.o:dlnames.c:(.text+0x0): first defined here
./../libpcap/libpcap.a(pcap.o): In function `pcap_datalink_val_to_description':
/root/libpcap/./pcap.c:880: multiple definition of `pcap_datalink_val_to_description'
dlnames.o:dlnames.c:(.text+0x40): first defined here
./../libpcap/libpcap.a(pcap.o): In function `pcap_list_datalinks':
/root/libpcap/./pcap.c:553: multiple definition of `pcap_list_datalinks'
datalinks.o:datalinks.c:(.text+0x0): first defined here
./../libpcap/libpcap.a(sf-pcap.o): In function `pcap_dump_ftell':
/root/libpcap/./sf-pcap.c:590: multiple definition of `pcap_dump_ftell'
pcap_dump_ftell.o:pcap_dump_ftell.c:(.text+0x0): first defined here
./../libpcap/libpcap.a(pcap-dect-linux.o): In function `dect_platform_finddevs':
/root/libpcap/./pcap-dect-linux.c:79: undefined reference to `nl_dect_cell_alloc_cache'
./../libpcap/libpcap.a(pcap-dect-linux.o): In function `add_cell_cb':
/root/libpcap/./pcap-dect-linux.c:52: undefined reference to `nl_dect_cell_get_name'
</pre> OsmoSGSN - Bug #5349 (In Progress): Message for non-existing SNDCP Entity https://projects.osmocom.org/issues/53492021-12-09T20:57:14Zkeith
<p>It seems pretty easy to get into a state where the TLLI in the MM context is not matching that in the SNDCP.</p>
<pre>
MM Context for IMSI 262423203000396, IMEI 013895003719350, P-TMSI ecc8a829
MSISDN: 57057157010, TLLI: ecc8a829 HLR:
GMM State: Registered.NORMAL, Routeing Area: 334-07-1101-21, Cell ID: 0
MM State: Standby, RAN Type: GPRS/EDGE via Gb
SGSN MM Context Statistics:
Signalling Messages ( In): 45 (0/s 0/m 45/h 0/d)
Signalling Messages (Out): 21 (0/s 0/m 21/h 0/d)
User Data Messages ( In): 369 (0/s 0/m 369/h 0/d)
User Data Messages (Out): 288 (0/s 0/m 288/h 0/d)
User Data Bytes ( In): 37388 (0/s 0/m 37388/h 0/d)
User Data Bytes (Out): 56465 (0/s 0/m 56465/h 0/d)
PDP Context Activations : 1 (0/s 0/m 1/h 0/d)
SUSPEND Count : 0 (0/s 0/m 0/h 0/d)
Paging Packet Switched : 2 (0/s 0/m 2/h 0/d)
Paging Circuit Switched : 0 (0/s 0/m 0/h 0/d)
Routing Area Update : 14 (0/s 0/m 14/h 0/d)
OsmoSGSN# show snd
OsmoSGSN# show sndcp
State of SNDCP Entities
TLLI c6ada2d6 SAPI=3 NSAPI=5:
Defrag: npdu=289 highest_seg=2 seg_have=0x00000007 tot_len=1233
TLLI e9d026da SAPI=3 NSAPI=5:
Defrag: npdu=339 highest_seg=1 seg_have=0x00000003 tot_len=793
</pre>
<p>resulting in:</p>
<pre>
20211209214900128 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900148 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900149 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900170 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900170 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900188 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900210 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900210 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900230 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900231 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900248 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900248 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900267 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
20211209214900267 DSNDCP ERROR Message for non-existing SNDCP Entity (lle=0x55672ad42848, TLLI=ecc8a829, SAPI=3, NSAPI=5) (gprs_sndcp.c:812)
</pre>
<p>My apologies - Over the last year or so I've suffered a memory leak for all the GRPS workings, I'll need to read up again to further debug this myself, but in the meantime, it should be reproducible if anyone wishes to take a look.</p>
<p><del>One way to trigger it seems to be cause a GPRS suspend by making a call</del> . In fact I can't reproduce this so easily. Something else is in the mix.</p>
<p>See the notes I erroneously posted on related issue <a class="issue tracker-1 status-3 priority-3 priority-high3 closed" title="Bug: vty comand "show sndcp" can cause SEGV in vty_dump_sne() (Resolved)" href="https://projects.osmocom.org/issues/4824">#4824</a> , especially <a class="issue tracker-1 status-3 priority-3 priority-high3 closed" title="Bug: vty comand "show sndcp" can cause SEGV in vty_dump_sne() (Resolved)" href="https://projects.osmocom.org/issues/4824#note-13">#4824-13</a></p>
<p>Marking high priority as I am observing this as a show stopper in production. <br />Thanks.</p> OsmoBTS - Bug #5257 (New): support random padding in SACCH downlink messageshttps://projects.osmocom.org/issues/52572021-10-12T11:18:54Zlaforge
<p>See GP-110384 and GP-110969</p> gr-osmosdr - Bug #5144 (New): Support multiple Airspy deviceshttps://projects.osmocom.org/issues/51442021-05-08T18:58:56ZAsciiWolf
<p>Please, consider supporting multiple Airspy devices in gr-osmosdr. Currently, this is not possible and only one of my connected Airspy R2 devices is available in GNU Radio companion and Gqrx.</p>
<p>There was a patch adding this support (by being able to specify the device serial number as a value for the "airspy" argument in Airspy Source) already posted in 2016: <a class="external" href="https://lists.osmocom.org/pipermail/osmocom-sdr/2016-April/001446.html">https://lists.osmocom.org/pipermail/osmocom-sdr/2016-April/001446.html</a></p>
<p>The patch still seems to work fine on latest gr-osmosdr and adds exactly the functionality needed to make multiple Airspy devices available. Please, consider adding this patch to upstream gr-osmosdr or implementing a different approach to support multiple Airspy devices in gr-osmosdr. Thanks!</p> OsmoMSC - Bug #5057 (New): Can only send a maximum of 15 SMPP messages?https://projects.osmocom.org/issues/50572021-03-03T02:53:02Zoxenff
<p>I am currently using SMPP to send SMS messages to a device connected to my GSM Core Network ( via LTE ).</p>
<p>For some strange reason however, once the MSC sends 15 messages, they stop and I can't send anymore.</p>
<p>I've had a pretty extensive search around the code as to why this might be happening but can't for the life of me work out why.</p>
<p>This was not an issue when using the previous OpenBSC SMPP ( 0.15.0 ).</p>
<p>Any help would be greatly appreciated !</p> osmo-e1d - Bug #4916 (Stalled): USB unplug / replug renders e1d unusablehttps://projects.osmocom.org/issues/49162020-12-18T10:28:45Zlaforge
right now the behavior on USB unplug (or - god forbid - a firmware crash) is not very user friendly:
<ul>
<li>e1d keeps running</li>
<li>e1d does not re-open the device when it comes back</li>
</ul>
IMHO, we have the following options
<ol>
<li>fail fast - simply exit when the device is lost, assume systemd or some other management instance will keep respawning us until the device is back
<ul>
<li>but what about client programs like osmo-bsc / osmo-mgw ?</li>
</ul>
</li>
<li>implement re-opening of a single icE1usb device, knowing our blocking control transfers would corrupt any other ongoing communication
<ul>
<li>is it worth the effort, assuming this is only an interim solution</li>
</ul>
</li>
<li>go for a full-blown hot-plug capable architecture lined out in <a class="issue tracker-2 status-1 priority-1 priority-lowest" title="Feature: consider a one-thread-per-line architecture (New)" href="https://projects.osmocom.org/issues/4915">#4915</a>
<ul>
<li>will probably take significant effort</li>
</ul></li>
</ol>
<p>I think right now we mostly have to worry about situations with a single icE1usb, so I'm tempted to go for the fail-fast approach, assuming osmo-bsc/osmo-mgw recover in some way.</p> OsmoPCU - Bug #4879 (Stalled): endless pdch.cpp:809 Got CS-N RLC block: R=0, SI=0, TFI=0, CPS=0, ...https://projects.osmocom.org/issues/48792020-11-29T23:17:31Zfixeria
<p>I just upgraded all osmo-{ran,cni} components to the recent master, and now quite often run into a situation when the MS (at least Sony Ericsson K800i, TEMS) keeps sending the same Uplink block again and again. I am not sure what exactly causes it, but I can reproduce it more or less reliably by starting Opera Mini (<a class="external" href="http://people.osmocom.org/fixeria/j2me/opera_mini.jar">http://people.osmocom.org/fixeria/j2me/opera_mini.jar</a>). When started for the first time, Opera initiates the installation process, and this is where the problem usually shows up.</p>
<pre>
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACUL INFO pdch.cpp:809 Got CS-2 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=264
DRLCMACMEAS INFO gprs_rlcmac_meas.cpp:108 MS(TLLI=0xc5849e78, IMSI=901990000000021, TA=0, 10/0, UL DL) UL RSSI: -29 dBm
</pre>
<p>Please see the attached capture file. Some highlights:</p>
<pre>
43585 RACH!
43591 IMM ASS (single block)
43731 UL Packet Resource Request
43799 DL Packet Uplink Assignment (TS=6 USF=0)
...
43910 UL DATA (BSN=0 CV=15)
...
43915 UL DATA | TCP FIN,ACK (Opera Mini closes connection to the server)
...
43918 UL DATA (BSN=3 CV=15)
43955 UL DATA (BSN=5 CV=14) <-- 14 RLC blocks left
...
44070 UL DATA (BSN=14 CV=5)
...
44146 UL DATA (BSN=19 CV=0) <-- 0 RLC blocks left
...
44149 UL DATA (BSN=19 CV=0) <-- re-transmission
44152 UL DATA (BSN=19 CV=0) <-- re-transmission
</pre>
<p>starting from frame 44149, the MS keeps transmitting the same RLC/MAC block ('35bdc794cd2b631285b2d43513'O). Interestingly enough, after each re-transmission the PCU logs "GPRS DL CTRL: PACKET_UPLINK_ACK_NACK", but <strong>does not actually send it</strong> (dummy RLC/MAC frames are not recorded). And this goes like that unless I turn off the phone. At the same time, Downlink blocks are received and accepted by the MS on the same timeslot.</p>
<p>OsmoPCU 58cd1d2f8a0474de45112e8d6e460051494eba79<br />OsmoBTS def24f0d9af2463a5ef557d35f23abd5b4d07120</p> OsmoMSC - Bug #4830 (In Progress): LU reject when no authentication data in HLR but "authenticati...https://projects.osmocom.org/issues/48302020-10-25T18:39:40ZlaforgeOsmocomBB - Bug #4829 (Stalled): OsmocomBB Rx bit errors in dedicated modehttps://projects.osmocom.org/issues/48292020-10-24T03:09:38Zlaforge
<p>I'm observing quite a number of bit errors when receiving in dedicated mode.</p>
<p>Those bit errors are not present while in receive-only mode (CCCH/BCCH camping.</p>
<p>The bit errors can be observed on SDCCH/4, SDCCH/8 and TCH/F (didn't try TCH/H).</p>
<p>I've tried to roll back to old OsmocomBB firmware versions as old as 2012 (using old gnuarm-4.0.x toolchain) - the problem even exists in those old versions, so it doesn't look like a regression.</p>
<p>I've tested with perfect RF signals (coaxial connection via attenuators) to exclude any real-world impact.</p>
<p>I've tested both with sysmoBTS 1002 as well as with a commercial cellular network.</p>
<p>I've tested with C118, C121, C123 and C140.</p>
<p>In all situations, the problem persists and looks like this:</p>
<p>Camping with good signal level 0 BER / fire_crc = 2<br /><pre>
<000c> l1ctl.c:237 BCCH on TS0 (0301/13/02) -56 dBm 0/0: 59 06 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
<000c> l1ctl.c:237 PCH/AGCH on TS0 (0301/17/06) -56 dBm 0/0: 03 03 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
<000c> l1ctl.c:237 PCH/AGCH on TS0 (0301/23/12) -56 dBm 0/0: 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
<000c> l1ctl.c:237 PCH/AGCH on TS0 (0301/01/16) -56 dBm 0/0: 2d 06 3f 03 41 e3 67 00 68 8f 00 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
</pre></p>
<p>Once switched to dedicated channel:<br /><pre>
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/10/00) -56 dBm 0/0: 03 03 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/16/32) -56 dBm 66/2: a3 4b 33 0a 38 66 2a a4 57 cc 2e db 60 f7 e2 7e 9e cd ac d8 ee dc bd
<000c> l1ctl.c:300 Dropping frame with 66 bit errors
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/09/00) -56 dBm 74/2: a3 35 0f 0a b8 79 13 2a 6b 5e c2 da 60 f7 e2 7e 9e cd ac d8 ee dc fd
<000c> l1ctl.c:300 Dropping frame with 74 bit errors
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/08/00) -56 dBm 82/2: a3 35 0f 14 f1 f7 17 aa 57 cc 2e 12 67 f7 e2 7e 9e cd ac d8 7e 29 85
<000c> l1ctl.c:300 Dropping frame with 82 bit errors
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/14/32) -56 dBm 77/2: a3 4b 33 0a 38 66 2a a4 57 cc 2e 92 44 f8 e2 7e 9e cd ac d8 fe 85 2f
<000c> l1ctl.c:300 Dropping frame with 77 bit errors
<000c> l1ctl.c:237 SDCCH/8(0) on TS1 (0301/07/00) -56 dBm 74/2: a3 4b 33 0a 38 66 2a 24 6b 5e c2 da 60 f7 e2 7e 9e cd ac d8 fe 85 2f
<000c> l1ctl.c:300 Dropping frame with 74 bit errors
</pre></p>
<p>so as we can see, he very first block is still received well, all other blocks have massive bit errors (typically in he 70..95 erroneous bit range)</p>
<p>Playing with the source code I could narrow it down to whether or not we are enabling the PA in the <code>rffe_mode()</code> function by means of <code>tspact | PA_ENABLE</code></p>
<p>If I enable the PA only for RACH / access burst, but not for any normal bursts, the SDCCH bit errors are not reported anymore.</p>
<p>I've played a lot with l1s_tx_win_ctrl in terms of ordering, etc. but the problem persists.</p>
<p>It cannot be a general scheduling problem, as the TX window duration is not affected by whether or not we enable the PA. There are just as many TPU instructions etc. even without that one bit.</p> OsmocomDECT - Bug #5394 (New): Kernel Oops when loading com_on_air_cs (unable to handle kernel NU...https://projects.osmocom.org/issues/53942011-05-19T00:00:00Z
<p>When loading the com_on_air_cs module, either auto loaded in-kernel or using modprobe, the loading doesn't succeed and dmesg shows the following:</p>
<pre>
[ 22.718941] com_on_air_cs 0.0: DOSCH-AMAND MMAP PCMCIA MXM500 V1.00
[ 22.758791] com_on_air_cs 0.0: Radio type LMX3161
[ 22.766869] com_on_air_cs 0.0: Loading firmware ...
[ 22.767483] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 22.767599] IP: [< (null)>] (null)
[ 22.767653] *pde = 00000000
[ 22.767700] Oops: 0000 #1 SMP
[ 22.767749] last sysfs file: /sys/module/pcmcia/initstate
[ 22.767821] Modules linked in: com_on_air_cs(+) com_on_air dect_csf dect snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_rawmidi i915 snd_seq_midi_even
t pcmcia snd_seq drm_kms_helper snd_timer snd_seq_device drm snd ppdev yenta_socket parport_pc pcmcia_rsrc i2c_algo_bit soundcore intel_agp lp intel_gtt psmouse pcmcia_
core joydev video parport serio_raw dcdbas agpgart snd_page_alloc tg3 usbhid hid
[ 22.768006]
[ 22.768006] Pid: 746, comm: modprobe Not tainted 2.6.38+ #2 Dell Inc. OptiPlex? GX620 /0FH884
[ 22.768006] EIP: 0060:[<00000000>] EFLAGS: 00010246 CPU: 1
[ 22.768006] EIP is at 0x0
[ 22.768006] EAX: dd0fdddc EBX: dd0fdddc ECX: e005d39c EDX: 00000100
[ 22.768006] ESI: 00000001 EDI: 00000100 EBP: dc6c3d74 ESP: dc6c3d34
[ 22.768006] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 22.768006] Process modprobe (pid: 746, ti=dc6c2000 task=dc82cbc0 task.ti=dc6c2000)
[ 22.768006] Stack:
[ 22.768006] e005c77a ddaa9470 e005d3e7 c0406ced c0774660 c072d916 e0063534 07fd86b0
[ 22.768006] dc6c3d68 ddaa9400 0700dddc 00000004 00000020 ddaa9400 dd0fdddc 0df519bb
[ 22.768006] dc6c3dc0 e006338d ddaa9470 e00634c3 e005d422 dc5f63b0 dd7b86e0 dd7b86b8
[ 22.768006] Call Trace:
[ 22.768006] [<e005c77a>] ? sc1442x_init_device+0x35a/0x3d0 [com_on_air]
[ 22.768006] [<c0406ced>] ? dev_printk+0x3d/0x80
[ 22.768006] [<e006338d>] com_on_air_probe+0x29d/0x360 [com_on_air_cs]
[ 22.768006] [<dff2097b>] pcmcia_device_probe+0xab/0x1a0 [pcmcia]
[ 22.768006] [<c040a700>] ? driver_sysfs_add+0x20/0x90
[ 22.768006] [<c040a85f>] driver_probe_device+0x7f/0x190
[ 22.768006] [<dff21646>] ? pcmcia_bus_match+0x226/0x460 [pcmcia]
[ 22.768006] [<c040a9f1>] driver_attach+0x81/0x90
[ 22.768006] [<c0409e73>] bus_for_each_dev+0x53/0x80
[ 22.768006] [<c040a6de>] driver_attach+0x1e/0x20
[ 22.768006] [<c040a970>] ? driver_attach+0x0/0x90
[ 22.768006] [<c040a0f0>] bus_add_driver+0xc0/0x240
[ 22.768006] [<dff20780>] ? pcmcia_device_remove+0x0/0x150 [pcmcia]
[ 22.768006] [<c040acea>] driver_register+0x6a/0x130
[ 22.768006] [<c01b3ffa>] ? ftrace_process_locs+0x16a/0x270
[ 22.768006] [<dff2121e>] pcmcia_register_driver+0xae/0x130 [pcmcia]
[ 22.768006] [<c01b0c34>] ? tracepoint_module_notify+0x24/0x30
[ 22.768006] [<c05de5a3>] ? notifier_call_chain+0x43/0x60
[ 22.768006] [<e006b00d>] init_com_on_air_cs+0xd/0xf [com_on_air_cs]
[ 22.768006] [<c0101135>] do_one_initcall+0x35/0x170
[ 22.768006] [<e006b000>] ? init_com_on_air_cs+0x0/0xf [com_on_air_cs]
[ 22.768006] [<c0180da6>] sys_init_module+0x116/0x1090
[ 22.768006] [<c010301f>] sysenter_do_call+0x12/0x28
[ 22.768006] Code: Bad EIP value.
[ 22.768006] EIP: [<00000000>] 0x0 SS:ESP 0068:dc6c3d34
[ 22.768006] CR2: 0000000000000000
[ 22.814676] ---[ end trace a76f7fec01412f5e ]---
</pre>
<p>I'm using a desktop P4 with pci-to-pcmcia:<br />03:00.0 CardBus? bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)</p>
<pre>
root@persephone:/usr/src/linux-2.6# lspcmcia
Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:03:00.0)
Socket 0 Device 0: [com_on_air_cs] (bus ID: 0.0)
</pre>
<pre>
root@persephone:/usr/src/linux-2.6# pccardctl info
PRODID_1="DOSCH-AMAND"
PRODID_2="MMAP PCMCIA"
PRODID_3="MXM500"
PRODID_4="V1.00"
MANFID=0204,0000
FUNCID=254
</pre>
<p>Modules which com_on_air_cs requested internally loaded successfully, but I'm not sure if I'm missing something here.</p> OsmocomDECT - Bug #5393 (New): tipc problems while building on Ubuntu https://projects.osmocom.org/issues/53932010-10-20T00:00:00Z
<p>I have cloned the git repository, and followed this tutorial to get my new kernel built:<br />https://wiki.ubuntu.com/KernelTeam/GitKernelBuild</p>
<p>I changed all the values in .config to enable DECT functionality, and this is what I get when I try to compile the kernel:<br /><pre>
net/built-in.o: In function `dect_ccp_send_to_cluster':
ccp.c:(.text+0x95e91): undefined reference to `tipc_send_buf'
net/built-in.o: In function `dect_ccp_send_to_cell':
ccp.c:(.text+0x95f31): undefined reference to `tipc_send_buf'
net/built-in.o: In function `dect_ccp_bind_cell':
ccp.c:(.text+0x9656b): undefined reference to `tipc_attach'
ccp.c:(.text+0x965c5): undefined reference to `tipc_createport'
ccp.c:(.text+0x96635): undefined reference to `tipc_send2name'
ccp.c:(.text+0x96657): undefined reference to `tipc_deleteport'
ccp.c:(.text+0x9665f): undefined reference to `tipc_detach'
net/built-in.o: In function `dect_ccp_subscr_rcv':
ccp.c:(.text+0x966fb): undefined reference to `tipc_createport'
ccp.c:(.text+0x96731): undefined reference to `tipc_send2name'
ccp.c:(.text+0x96741): undefined reference to `tipc_deleteport'
net/built-in.o: In function `dect_ccp_cluster_init':
(.text+0x96a3f): undefined reference to `tipc_attach'
net/built-in.o: In function `dect_ccp_cluster_init':
(.text+0x96a96): undefined reference to `tipc_createport'
net/built-in.o: In function `dect_ccp_cluster_init':
(.text+0x96ac5): undefined reference to `tipc_publish'
net/built-in.o: In function `dect_ccp_cluster_init':
(.text+0x96add): undefined reference to `tipc_deleteport'
net/built-in.o: In function `dect_ccp_cluster_init':
(.text+0x96ae5): undefined reference to `tipc_detach'
net/built-in.o: In function `dect_ccp_cl_named_msg':
ccp.c:(.text+0x97235): undefined reference to `tipc_createport'
ccp.c:(.text+0x97245): undefined reference to `tipc_connect2port'
ccp.c:(.text+0x9725a): undefined reference to `tipc_send'
ccp.c:(.text+0x97273): undefined reference to `tipc_disconnect'
ccp.c:(.text+0x9727b): undefined reference to `tipc_deleteport'
net/built-in.o: In function `dect_ccp_unbind_cell':
ccp.c:(.text+0x96524): undefined reference to `tipc_detach'
net/built-in.o: In function `dect_ccp_cluster_shutdown':
(.text+0x96534): undefined reference to `tipc_detach'
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: Leaving directory `/home/wpld/dect_kernel'
make: *** [debian/stamp-build-kernel] Error 2
</pre></p>
<p>I searched for tipc.h files, and found 3 of them:</p>
<p>./include/config/tipc.h<br />./include/linux/tipc.h<br />./include/net/tipc/tipc.h</p>
<p>I found out that the linux/tipc.h isn't included in the cpp.c program, however the net/tipc/tipc.h includes it anyway. The problematic functions are all correctly defined in the latter two tipc libraries, but somehow it doesn't work for me.</p>
<p>The config/tipc.h is an empty file.</p> OsmocomDECT - Bug #5392 (New): Sliding collision errorshttps://projects.osmocom.org/issues/53922010-10-12T00:00:00Z
<p>There seems to be a bug in the sc1442x firmware causing sliding collision errors to be detected by the remote side. This is visible by continous handover attempts when making an incoming call in FP mode or the received Q1/Q2 bit settings when making an outgoing call in PP mode. Both the S-field and the Z-CRC appear to be fine however (according to the FritzBox DECT monitor). The reason for this is unknown so far, needs more debugging.</p>