Replace the local TRXC/TRXD implementation with libosmo-trx's shared osmo_trxc_msg/osmo_trxd_burst_{ind,req} API, including SETSLOT parsing via osmo_trxc_setslot_parse()/_build(). Take a chance to fix SETSLOT to always send a response, distinguishing bogus input from unsupported VAMOS channel combinations.
Only the TRXC/TRXD build/parse API is used here, not the osmo_trx_ep endpoint API: osmo-trx runs its socket I/O on dedicated threads that don't drive osmo_select_main(), which osmo_trx_ep depends on.