Open Source Mobile Communications: Issueshttps://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092023-09-06T08:33:34ZOpen Source Mobile Communications
Redmine 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> 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 #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> 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> 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> osmo-qcdiag - Bug #4781 (New): get hoernchen/gsmtap branch mergedhttps://projects.osmocom.org/issues/47812020-10-06T15:09:14Zlaforge
<p>I had no idea that this work from May had not undergone some patch submission to gerrit so far.</p>
<p>It should go without saying that we always want to make sure that our work ends up in the master branch, as far as possible.</p>
Please split up in per-feature patches and push them to gerrit. Looking at the code, that could fore xample be:
<ul>
<li>support for LTE RRC</li>
<li>getopt parsing</li>
<li>SIGINT/SIGTERM handling to close gracefully</li>
<li>UMTS RRM gsmtap support (possibly including cell_id tracking)</li>
<li>UMTS NAS gsmtap support</li>
<li>introduction of diag_instance as first parameter to handle_* functions</li>
<li>GSM RR gsmtap support</li>
<li>GSM GMM gsmtap support</li>
<li>GPRS MAC gsmtap support</li>
<li>DIAG I/O fies</li>
</ul>
<p>In the end, the customer/usage/application specific patch could consist of mainly adding some #ifdefs to disable/enable handling of specific features. That patch can stay in a branch, but all of the general improvements should be merged master.</p>
<p>Thanks!</p> OsmoBTS - Bug #4771 (Stalled): Don't log NOTICE messages on missing uplink burstshttps://projects.osmocom.org/issues/47712020-10-01T12:05:51ZlaforgeCellular Network Infrastructure - Bug #4578 (New): Updated slides / presentations / videos on set...https://projects.osmocom.org/issues/45782020-06-03T14:56:52Zlaforge
<p>I just realized that since OsmoCon was discontinued after 2018 didn't result in sufficient turn-out, and only the 2017 incarnation contained some entry-level talks, we actually only have introductory level presentations / videos about a setup that still covers OsmoNITB. (<a class="external" href="https://media.ccc.de/v/osmocon17-4002-running_a_basic_circuit_switched_osmocom_gsm_network">https://media.ccc.de/v/osmocon17-4002-running_a_basic_circuit_switched_osmocom_gsm_network</a>)</p>
<p>This may or may not be a reason why some people still want to set up OsmoNITB in 2020. While our wiki and user manuals all have deprecated OsmoNITB years ago, people who only look for videos might be mislead.</p>
<p>Also, I'm sure that several other presentation (like the one about 3G / osmo-iuh before the CNI split) would similarly benefit from an update.</p>
<p>So I think we should try to create/update some slide decks and record related lectures / tutorials at some point this year. I wouldn't bother setting up a virtual conference or some kind of remote interaction at this point. Recording some talks and/or screencasts allows us to create and release them one-by-one.</p>
<p>Let's use this issue to first collect a list of topics that we think either need an update, or topics that never have been covered so far.</p> Core testing infrastructure - Bug #4576 (Stalled): ttcn3-hlr-tests need to route multicast traffi...https://projects.osmocom.org/issues/45762020-06-02T22:29:38Zneelsnhofmeyr@sysmocom.de
<p>The MSLookup tests in the ttcn3-hlr-test send out multicast-DNS queries,<br />and these should be answered by osmo-hlr running in the osmo-hlr-master container.</p>
<p>Running wireshark on the docker-hosting machine on 'any', the DNS queries are visible:</p>
<pre>
No. Time Arrival Time Source Source Port Destination Destination Port Info
102721 4919.259341 Jun 3, 2020 00:16:05.287612000 CEST 172.18.10.103 4266 239.192.23.42 4266 Standard query 0x5ca3 ANY sip.voice.491618327224.msisdn.mdns.osmocom.org
102722 4919.259341 Jun 3, 2020 00:16:05.287612000 CEST 172.18.10.103 4266 239.192.23.42 4266 Standard query 0x5ca3 ANY sip.voice.491618327224.msisdn.mdns.osmocom.org
</pre>
<p>Running tcpdump in the osmo-hlr-master container shows no such activity.</p>
<p>When running the osmo-mslookup-client commandline tool with the same query, osmo-hlr does receive it and responds in the way that the test expects it:</p>
<pre>
# osmo-mslookup-client sip.voice.262422543586245.imsi
query result last age v4_ip v4_port v6_ip v6_port
sip.voice.262422543586245.imsi result last 257 66.66.66.66 5060
</pre>
<p>But also, the tester does not receive that response<br />(as I found out by "infinitely" looping the MSLookup send and receive in HLR_Tests.ttcn).</p>
<p>I am not sure how <a class="user active" href="https://projects.osmocom.org/users/301771">osmith</a> managed to test the MSLookup tests successfully,<br />there must be some way to get the multicast traffic to pass through the containers.</p> gr-osmosdr - Bug #3734 (New): Cannot compile gr-osmocomhttps://projects.osmocom.org/issues/37342018-12-16T00:22:26Zbwah
<p>Linux comp 4.14.0-41-generic #42~16.04.1-Ubuntu SMP Mon Nov 19 13:02:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux</p>
<p>As of commit 4d83c6067f059b0c5015c3f59f8117bbd361e877:</p>
<pre><code class="text syntaxhl">user@comp:~/code/gr-osmosdr/build$ make
Scanning dependencies of target gnuradio-osmosdr
[ 2%] Building CXX object lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o
In file included from /usr/local/include/gnuradio/rpcregisterhelpers.h:30:0,
from /usr/local/include/gnuradio/basic_block.h:42,
from /usr/local/include/gnuradio/block.h:28,
from /usr/local/include/gnuradio/sync_block.h:27,
from /usr/local/include/gnuradio/blocks/null_source.h:27,
from /home/user/code/gr-osmosdr/lib/source_impl.cc:31:
/usr/local/include/gnuradio/rpcmanager.h:57:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
static std::unique_ptr<rpcserver_booter_base> boot;
^
/usr/local/include/gnuradio/rpcmanager.h:58:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
static std::unique_ptr<rpcserver_booter_aggregator> aggregator;
^
In file included from /usr/local/include/gnuradio/block.h:28:0,
from /usr/local/include/gnuradio/sync_block.h:27,
from /usr/local/include/gnuradio/blocks/null_source.h:27,
from /home/user/code/gr-osmosdr/lib/source_impl.cc:31:
/usr/local/include/gnuradio/basic_block.h: In member function ‘std::__cxx11::string gr::basic_block::identifier() const’:
/usr/local/include/gnuradio/basic_block.h:156:66: error: ‘to_string’ is not a member of ‘std’
std::string identifier() const { return this->name() + "(" + std::to_string
^
lib/CMakeFiles/gnuradio-osmosdr.dir/build.make:62: recipe for target 'lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o' failed
make[2]: *** [lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o] Error 1
CMakeFiles/Makefile2:135: recipe for target 'lib/CMakeFiles/gnuradio-osmosdr.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-osmosdr.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
paul@macbook:~/Documents/gnuradio$
paul@macbook:~/Documents/gnuradio$
paul@macbook:~/Documents/gnuradio$ cat osmocom_err.txt
user@macbook:~/code/gr-osmosdr/build$ make
Scanning dependencies of target gnuradio-osmosdr
[ 2%] Building CXX object lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o
In file included from /usr/local/include/gnuradio/rpcregisterhelpers.h:30:0,
from /usr/local/include/gnuradio/basic_block.h:42,
from /usr/local/include/gnuradio/block.h:28,
from /usr/local/include/gnuradio/sync_block.h:27,
from /usr/local/include/gnuradio/blocks/null_source.h:27,
from /home/user/code/gr-osmosdr/lib/source_impl.cc:31:
/usr/local/include/gnuradio/rpcmanager.h:57:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
static std::unique_ptr<rpcserver_booter_base> boot;
^
/usr/local/include/gnuradio/rpcmanager.h:58:15: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type
static std::unique_ptr<rpcserver_booter_aggregator> aggregator;
^
In file included from /usr/local/include/gnuradio/block.h:28:0,
from /usr/local/include/gnuradio/sync_block.h:27,
from /usr/local/include/gnuradio/blocks/null_source.h:27,
from /home/user/code/gr-osmosdr/lib/source_impl.cc:31:
/usr/local/include/gnuradio/basic_block.h: In member function ‘std::__cxx11::string gr::basic_block::identifier() const’:
/usr/local/include/gnuradio/basic_block.h:156:66: error: ‘to_string’ is not a member of ‘std’
std::string identifier() const { return this->name() + "(" + std::to_string
^
lib/CMakeFiles/gnuradio-osmosdr.dir/build.make:62: recipe for target 'lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o' failed
make[2]: *** [lib/CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o] Error 1
CMakeFiles/Makefile2:135: recipe for target 'lib/CMakeFiles/gnuradio-osmosdr.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-osmosdr.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
</code></pre>
<p>The compiler doesn't believe "to_string" is a member of stdlib. The CMakeLists.txt appears to be missing a specification for std=c++11, as per this error: <a class="external" href="https://stackoverflow.com/questions/19122574/to-string-isnt-a-member-of-std/19122592">https://stackoverflow.com/questions/19122574/to-string-isnt-a-member-of-std/19122592</a></p>
<p>I am not sure how to fix this.</p> gr-osmosdr - Bug #2824 (New): Corrupted double-linked for Raspbian Stretch when running osmocom_f...https://projects.osmocom.org/issues/28242018-01-10T17:51:21Zrrr6399
<p>I have been trying to get osmocom to work on a fully upgraded Raspberry Pi. The same hardware worked fine with the Jessie OS.</p>
<p>I'm getting the following error when I run osmocom_fft:</p>
<p>osmocom_fft<br />linux; GNU C++ version 6.2.0 20161010; Boost_106100; UHD_003.009.005-0-unknown</p>
Warning: failed to XInitThreads()<br />gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.10<br />built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy soapy redpitaya
<ul>
<li>Error in `/usr/bin/python': corrupted double-linked list: 0x0240e048 ***</li>
</ul>
<p>It appears that it happens during this call osmosdr.source(options,args).</p>
<p>Here is some other info in case it helps:</p>
<p>$lsusb<br />Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T</p>
<p>$ sudo rtl_test -t<br />Found 1 device(s):<br /> 0: Realtek, RTL2838UHIDIR, SN: 00001126</p>
<p>Using device 0: Generic RTL2832U OEM<br />Found Elonics E4000 tuner<br />Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0<br />Sampling at 2048000 S/s.<br />Benchmarking E4000 PLL...<br />[E4K] PLL not locked for 51000000 Hz!<br />[E4K] PLL not locked for 2205000000 Hz!<br />[E4K] PLL not locked for 1103000000 Hz!<br />[E4K] PLL not locked for 1241000000 Hz!<br />E4K range: 52 to 2204 MHz<br />E4K L-band gap: 1103 to 1241 MHz</p>
<p>$ uname -a<br />Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux</p>
<p>Any ideas whey I'm seeing this error now?</p> OP25 - Bug #2172 (New): HDU often missing in captureshttps://projects.osmocom.org/issues/21722017-04-22T16:04:15Z
<p>When the centre frequency of the captured channel is offset from the centre frequency of the channel its often the case that the HDU is not captured. It appears that the demodulator is having trouble recognizing that a signal is present.</p> OP25 - Bug #2170 (New): Implement forward error-correction code, remove IT++ dependencyhttps://projects.osmocom.org/issues/21702017-04-22T16:04:15Zmatt
<p>There are four forward error-correction codes needed: BCH, extended Golay, Hamming and Reed/Solomon and some of these are used in shortened form as well.</p>
<p>The dependency on IT++ is unsatisfactory as we depend on a small part and this requires additional bit_vector to bvec swabbing. Incorporating these codes into the decoder means we remove that dependency on IT++.</p> OP25 - Bug #2169 (New): First-cut of trunking supporthttps://projects.osmocom.org/issues/21692017-04-22T16:04:15Z
<p>There is no decoding whatsoever of trunking at present. Add basic support.</p> OP25 - Bug #2168 (New): Implement Forward error correction for LDU1/2https://projects.osmocom.org/issues/21682017-04-22T16:04:15Zmatt
<p>Implement Forward error correction for LDU1/2</p> OP25 - Bug #2162 (New): Fix bit-ordering in output for VC55.https://projects.osmocom.org/issues/21622017-04-22T16:04:15Z
<p>VC55 output needs to be changed and verified using the VC55 hardware.</p> Linux Kernel GTP-U - Bug #1952 (In Progress): IPv6 support for inner (user) IP layer missinghttps://projects.osmocom.org/issues/19522017-02-18T12:29:29Zlaforge
<p>The 3GPP specs permit for both IPv4 and IPv6, but we only implement IPv4. This is embarrassing and should be changed. Contribution welcome!</p> Mobile (in)Security - Bug #1483 (New): USSD state is not reset when switching cellshttps://projects.osmocom.org/issues/14832016-02-19T22:51:58Z
<p>USSD support on a phone can be disabled by sending ussdNotify and not sending a releaseComplete. Other USSD commands will not be processed by the phone until the releaseComplete command is send.</p>
<p>The Phone Stack assumes that all USSD operations originate/termate from/at its HLR.</p> Mobile (in)Security - Bug #1481 (New): Random LAPDm MAC-block padding is not deployed yethttps://projects.osmocom.org/issues/14812016-02-19T22:51:58Zlaforge
<p>Recent versions of TS 44.006 (Version >= 6.7.0 from October 2008) specify that the BTS shall use randomized padding (fill bits) in its Layer2 frames.</p>
<p>This will help to combat the known passive A5/1 cracking attacks that rely on a small portion of known plaintext.</p>
<p>By using randomized padding, the amount of known plaintext can be reduced.</p>
<p>However, as of 07/2010, no network has been found to use this randomized padding.</p> Mobile (in)Security - Bug #1480 (New): A5/3 is not deployed in GSM networkshttps://projects.osmocom.org/issues/14802016-02-19T22:51:58Zlaforge
<p>The 3GPP has specified the Kasumi-derived A5/3 cipher for use in GSM networks. This would significantly increase the confidentiality and security of the GSM network, since it avoids the known-weak and known-broken A5/1 cipher. The passive A5/1 key-cracking attacks would no longer work.</p>
<p>In order to use A5/3, both the MS and the BTS will have to implement the A5/3 cipher, and the BSC will have to configure the BTSs to actually use it.</p>
<p>Many modern phones (whether 3G or not) support A5/3 operation on GSM and indicate this capability in their CLASSMARK.</p>
<p>However, none of the networks we have seen are using A5/3 on GSM.</p>
<p>Thus, the operators and/or equipment manufacturers are actively preventing a higher level of security and confidentiality.</p> Mobile (in)Security - Bug #1478 (New): IMSI DETACH DoShttps://projects.osmocom.org/issues/14782016-02-19T22:51:57Zadmin
<p>In GSM networks that use the IMSI ATTACH/DETACH procedure, the IMSI DETACH message is not authenticated.</p>
<p>A malicious attacker knowing the IMSI or TMSI of a victim can thus send hand-crafted IMSI DETACH messages to a cell, causing the network to assume the MS is no longer present in the network.</p>
<p>This will effectively prevent the delivery of all mobile-terminated (MT) services, such as SMS, voice calls, CSD, ...</p>
<p>This flaw was first discovered in May 2010 by Sylvain Munaut.</p> Mobile (in)Security - Bug #1477 (New): RACH flood DoShttps://projects.osmocom.org/issues/14772016-02-19T22:51:57Zlaforge
<p>On the RACH (part of the CCCH/BCCH), the number of RACH slots per unit of time is fixed. The maximum possible number of RACH slots with a single-timeslot CCCH is 200.</p>
<p>Furthermore, the number of available dedicated (control and traffic) channels is limited in any given cell.</p>
<p>As per the GSM specification, any newly-assigned dedicated channel has to stay assigned for 2 seconds, waiting for the MS to establish the radio link layer. Only after 2 seconds, the channel can be closed and re-used for other purposes.</p>
<p>If anyone can send more RACH requests (in 2 seconds) than the cell has dedicated channels, permanent resource exhaustion of dedicated channels will happen (in other words, a DoS).</p>
<p>As the RACH request can be hand-crafted by the attacker and sent at a timing chosen by the attacker, there is no possibility for the BTS to differentiate real from malicious RACH bursts.</p>
<p>This attack has been implemented in 2009 by Dieter Spaar, and has been publicly demonstrated at the Deepsec 2009 conference in Vienna.</p>
<p>Slides are available from <a class="external" href="http://www.mirider.com/GSM-DoS-Attack_Dieter_Spaar.pdf">http://www.mirider.com/GSM-DoS-Attack_Dieter_Spaar.pdf</a></p>