aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/osmo_bsc_bssap.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-12-18 18:27:43 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-19 18:58:51 +0100
commitea0c3203db95518c75258bf5c6bb350a3ffb56fc (patch)
treea67cdbb7c4faa862f1467ef98a28ddc78e63f2d0 /src/osmo-bsc/osmo_bsc_bssap.c
parentca494f385e2f71475c7f4dd04383939729fed9d6 (diff)
osmo-bsc: Move user plane/voice related bits into sub-structure
This clarifies which members of the struct are for what. Change-Id: I618822e6f2d48adce25f9df5c25acbce7c858412
Diffstat (limited to 'src/osmo-bsc/osmo_bsc_bssap.c')
-rw-r--r--src/osmo-bsc/osmo_bsc_bssap.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c
index aea3994ee..6f2d0f4a0 100644
--- a/src/osmo-bsc/osmo_bsc_bssap.c
+++ b/src/osmo-bsc/osmo_bsc_bssap.c
@@ -361,13 +361,13 @@ static int bssmap_handle_clear_command(struct osmo_bsc_sccp_con *conn,
return -1;
}
- if (conn->mgcp_ctx) {
+ if (conn->user_plane.mgcp_ctx) {
/* NOTE: This is the AoIP case, osmo-bsc has to negotiate with
* the MGCP-GW. For this an mgcp_ctx should be created that
* contains the FSM and some system data. When the connection
* is removed from the MGCP-GW, then osmo_bsc_sigtran_send()
* calls osmo_bsc_sigtran_send(). */
- mgcp_clear_complete(conn->mgcp_ctx, resp);
+ mgcp_clear_complete(conn->user_plane.mgcp_ctx, resp);
} else {
/* NOTE: This is the SCCP-Lite case, since we do not handle
* the MGCP-GW switching ourselves, we may skip everything
@@ -535,11 +535,9 @@ static int bssmap_handle_assignm_req(struct osmo_bsc_sccp_con *conn,
/* Detect if a CIC code is present, if so, we use the classic ip.access
* method to calculate the RTP port */
if (TLVP_PRESENT(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE)) {
- conn->cic =
- osmo_load16be(TLVP_VAL
- (&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE));
- timeslot = conn->cic & 0x1f;
- multiplex = (conn->cic & ~0x1f) >> 5;
+ conn->user_plane.cic = osmo_load16be(TLVP_VAL(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE));
+ timeslot = conn->user_plane.cic & 0x1f;
+ multiplex = (conn->user_plane.cic & ~0x1f) >> 5;
} else if (TLVP_PRESENT(&tp, GSM0808_IE_AOIP_TRASP_ADDR)) {
/* Decode AoIP transport address element */
data = TLVP_VAL(&tp, GSM0808_IE_AOIP_TRASP_ADDR);
@@ -621,15 +619,16 @@ static int bssmap_handle_assignm_req(struct osmo_bsc_sccp_con *conn,
* reasons, functional wise it would not matter when exactly
* the network side RTP connection is made, as long it is made
* before we return with the assignment complete message. */
- memcpy(&conn->aoip_rtp_addr_remote, &rtp_addr, sizeof(rtp_addr));
+ memcpy(&conn->user_plane.aoip_rtp_addr_remote, &rtp_addr, sizeof(rtp_addr));
/* Create an assignment request using the MGCP fsm. This FSM
* is directly started when its created (now) and will also
* take care about the further processing (creating RTP
* endpoints, calling gsm0808_assign_req(), responding to
* the assignment request etc... */
- conn->mgcp_ctx = mgcp_assignm_req(msc->network, msc->network->mgw.client, conn, chan_mode, full_rate);
- if (!conn->mgcp_ctx) {
+ conn->user_plane.mgcp_ctx = mgcp_assignm_req(msc->network, msc->network->mgw.client,
+ conn, chan_mode, full_rate);
+ if (!conn->user_plane.mgcp_ctx) {
LOGP(DMSC, LOGL_ERROR, "MGCP GW failure, rejecting assignment... (id=%i)\n", conn->conn_id);
goto reject;
}
@@ -641,8 +640,8 @@ static int bssmap_handle_assignm_req(struct osmo_bsc_sccp_con *conn,
* (the MSC does that for us). We set conn->rtp_ip to 0 and check
* on this later. By this we know that we have to behave accordingly
* to sccp-lite. */
- conn->rtp_port = mgcp_timeslot_to_port(multiplex, timeslot, msc->rtp_base);
- conn->rtp_ip = 0;
+ conn->user_plane.rtp_port = mgcp_timeslot_to_port(multiplex, timeslot, msc->rtp_base);
+ conn->user_plane.rtp_ip = 0;
return gsm0808_assign_req(conn->conn, chan_mode, full_rate);
}
@@ -849,7 +848,7 @@ int bssmap_send_aoip_ass_compl(struct gsm_lchan *lchan)
lchan->abis_ip.ass_compl.chosen_channel,
lchan->abis_ip.ass_compl.encr_alg_id,
lchan->abis_ip.ass_compl.speech_mode,
- &conn->sccp_con->aoip_rtp_addr_local,
+ &conn->sccp_con->user_plane.aoip_rtp_addr_local,
&sc,
NULL);