This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgPau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/13925
Change subject: bssap: Parse Osmux CID on ASSIG REQ recv
......................................................................
bssap: Parse Osmux CID on ASSIG REQ recv
Change-Id: I86e7e13fc7921e3209fb764c0e7797e7ec09b79e
---
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/osmo_bsc_bssap.c
2 files changed, 31 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/13925/1
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index dc686c3..68c95e1 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -33,6 +33,7 @@
#include <osmocom/bsc/bsc_msg_filter.h>
#include <osmocom/bsc/acc_ramp.h>
#include <osmocom/bsc/neighbor_ident.h>
+#include <osmocom/bsc/osmux.h>
#define GSM_T3122_DEFAULT 10
@@ -120,6 +121,8 @@
char msc_rtp_addr[INET_ADDRSTRLEN];
uint16_t msc_rtp_port;
+ bool use_osmux;
+ uint8_t osmux_cid;
/* Rate/codec setting in preference order (need at least 1 !) */
int n_ch_mode_rate;
diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c
index 014a9b8..9bbd5e4 100644
--- a/src/osmo-bsc/osmo_bsc_bssap.c
+++ b/src/osmo-bsc/osmo_bsc_bssap.c
@@ -780,6 +780,8 @@
struct tlv_parsed tp;
uint16_t cic = 0;
bool aoip = false;
+ bool use_osmux = false;
+ uint8_t osmux_cid = 0;
struct sockaddr_storage rtp_addr;
struct gsm0808_channel_type ct;
uint8_t cause;
@@ -857,6 +859,30 @@
goto reject;
}
+ if (TLVP_PRESENT(&tp, GSM0808_IE_OSMO_OSMUX_CID)) {
+ if (conn->sccp.msc->use_osmux == OSMUX_USAGE_OFF) {
+ LOGP(DMSC, LOGL_ERROR, "MSC using Osmux but we have it disabled.\n");
+ cause = GSM0808_CAUSE_INCORRECT_VALUE;
+ goto reject;
+ }
+ use_osmux = true;
+ rc = gsm0808_dec_osmux_cid(&osmux_cid,
+ TLVP_VAL(&tp, GSM0808_IE_OSMO_OSMUX_CID),
+ TLVP_LEN(&tp, GSM0808_IE_OSMO_OSMUX_CID));
+ if (rc < 0) {
+ LOGP(DMSC, LOGL_ERROR, "Unable to decode Osmux CID.\n");
+ cause = GSM0808_CAUSE_INCORRECT_VALUE;
+ goto reject;
+ }
+ } else {
+ if (conn->sccp.msc->use_osmux == OSMUX_USAGE_ONLY) {
+ LOGP(DMSC, LOGL_ERROR, "MSC not using Osmux but we are forced to use it.\n");
+ cause = GSM0808_CAUSE_INCORRECT_VALUE;
+ goto reject;
+ } else if (conn->sccp.msc->use_osmux == OSMUX_USAGE_ON)
+ LOGP(DMSC, LOGL_NOTICE, "MSC not using Osmux but we have Osmux enabled.\n");
+ }
+
/* Decode speech codec list. First set len = 0. */
conn->codec_list = (struct gsm0808_speech_codec_list){};
/* Check for speech codec list element */
@@ -882,6 +908,8 @@
req = (struct assignment_request){
.aoip = aoip,
.msc_assigned_cic = cic,
+ .use_osmux = use_osmux,
+ .osmux_cid = osmux_cid,
};
/* Match codec information from the assignment command against the
--
To view, visit https://gerrit.osmocom.org/13925
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I86e7e13fc7921e3209fb764c0e7797e7ec09b79e
Gerrit-Change-Number: 13925
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190508/3b598585/attachment.htm>