For quite some time we've been hacking away on a project called osmo-bts.
You can find it source code as usual on git.osmocom.org, for occasional web browsing we offer cgit access.
osmo-bts is a BTS-side Layer3 and Layer2 protocol implementation, including Abis/IP, TS 08.58 RSL, TS 12.21 OML, TS 04.06 LAPDm and various other bits and pieces required to run a BTS.
Specifcally, it does not include a GSM Um Layer1. Rather, the idea is to port osmo-bts to a variety of L1 implementations.
So far, hardware support only exists for an upcoming BTS product which is not available yet, the sysmocom femtobts. However, there is active work being done un hacking some OsmocomBB phones into using them as a BTS, as well as support for other L1/hardware, too.
We are also planning to implement a 'virtual layer1', that can be used to run a BTS without any radio layer, interfacing the OsmocomBB stack via TCP/IP for netwokr simulation and software testing.