Drop Osmux call setup if BTS didn't provide a remote CID

We expect osmo-bts to provide us with a remote CID in order to be able
to set up MGW to send Osmux frames to it.

Related: SYS#5987
Change-Id: Ia90e8e0d18193d64c0fa0788dbd0eb242a359b61
This commit is contained in:
Pau Espin 2022-09-21 18:58:50 +02:00
parent fe5fefa4ac
commit 2627dc07ee
3 changed files with 7 additions and 0 deletions

View File

@ -303,6 +303,7 @@ struct gsm_lchan {
struct {
bool use;
uint8_t local_cid;
bool remote_cid_present;
uint8_t remote_cid;
} osmux;
} abis_ip;

View File

@ -2740,6 +2740,7 @@ static void ipac_parse_rtp(struct gsm_lchan *lchan, struct tlv_parsed *tv, const
lchan->abis_ip.connect_port = port;
}
if (TLVP_PRESENT(tv, RSL_IE_OSMO_OSMUX_CID)) {
lchan->abis_ip.osmux.remote_cid_present = true;
lchan->abis_ip.osmux.remote_cid = tlvp_val8(tv, RSL_IE_OSMO_OSMUX_CID, 0);
}

View File

@ -450,6 +450,11 @@ static void connect_mgw_endpoint_to_lchan(struct osmo_fsm_inst *fi,
struct in_addr addr;
const char *addr_str;
if (lchan->abis_ip.osmux.use && !lchan->abis_ip.osmux.remote_cid_present) {
lchan_rtp_fail("BTS didn't provide any remote Osmux CID for the call");
return;
}
mdcx_info = (struct mgcp_conn_peer){
.port = to_lchan->abis_ip.bound_port,
.ptime = 20,