pespin has uploaded this change for review.

View Change

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
---
M include/osmocom/bsc/lchan.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/lchan_rtp_fsm.c
3 files changed, 7 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/29435/1
diff --git a/include/osmocom/bsc/lchan.h b/include/osmocom/bsc/lchan.h
index 2de1227..4fcfa20 100644
--- a/include/osmocom/bsc/lchan.h
+++ b/include/osmocom/bsc/lchan.h
@@ -303,6 +303,7 @@
struct {
bool use;
uint8_t local_cid;
+ bool remote_cid_present;
uint8_t remote_cid;
} osmux;
} abis_ip;
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 1c60405..3b83b0e 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -2740,6 +2740,7 @@
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);
}

diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c
index 916823a..b788e99 100644
--- a/src/osmo-bsc/lchan_rtp_fsm.c
+++ b/src/osmo-bsc/lchan_rtp_fsm.c
@@ -450,6 +450,11 @@
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,

To view, visit change 29435. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ia90e8e0d18193d64c0fa0788dbd0eb242a359b61
Gerrit-Change-Number: 29435
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-MessageType: newchange