On Mon, Jul 8, 2013 at 4:01 PM, Andreas Eversberg andreas@eversberg.eu wrote:
oops, i did a mistake. even single trx support never supported poweroff. the reason why it worked for me is that i send "SETTSC" and "SETBSIC" commands to the transceiver. (calypso-bts requires "SETBSIC" because it generates SCH itself). because one of these commands will fail, osmo-bts ignores the response, so it does for "SETTSC".
i think it is not a clean solution to send both commands and ignore the result. the "POWEROFF" should shutdown transmitter, stop receiving and allow "SETTSC" (even with different value) again.
Agreed. The larger issue isn't that the POWEROFF command isn't implemented, it's that the transceiver was written without explicit state management. Thread deallocation is the most annoying issue. We can't shutdown threads right now because we don't know what threads are running.
https://github.com/ttsou/openbts-multi-arfcn/commit/0cbdb59b61 https://github.com/ttsou/openbts-multi-arfcn/commit/8f2d863485
IMO, the preferred solution is to replace thread abstraction or make the signals work. I think the latter was the original intention with shutdown triggering on pthread_cancel(), but for whatever reason that was never implemented.
Thomas