From d1bb0626c19b51e2acf75da43f437a5ee66c431b Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 8 Jan 2019 15:12:58 +0100 Subject: LCLS: use libosmocore function to add status * use gsm0808_create_ass_compl2() to add BSS Status IE to Assignment Complete message * drop local helpers Depends-on: (libosmocore) I547c6b8707123aa8c1ef636db88908df112d90a4 Change-Id: I6916928391667cd9c345becf00e7c8561846c295 Related: OS#2487 --- include/osmocom/bsc/osmo_bsc_lcls.h | 2 -- src/osmo-bsc/assignment_fsm.c | 11 ++++------- src/osmo-bsc/osmo_bsc_lcls.c | 32 -------------------------------- 3 files changed, 4 insertions(+), 41 deletions(-) diff --git a/include/osmocom/bsc/osmo_bsc_lcls.h b/include/osmocom/bsc/osmo_bsc_lcls.h index c8b0ebd3c..d98fe98dd 100644 --- a/include/osmocom/bsc/osmo_bsc_lcls.h +++ b/include/osmocom/bsc/osmo_bsc_lcls.h @@ -37,5 +37,3 @@ void lcls_update_config(struct gsm_subscriber_connection *conn, void lcls_apply_config(struct gsm_subscriber_connection *conn); extern struct osmo_fsm lcls_fsm; - -void bssmap_add_lcls_status_if_needed(struct gsm_subscriber_connection *conn, struct msgb *msg); diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index a24f7f904..2ad39596c 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -175,10 +175,10 @@ static void send_assignment_complete(struct gsm_subscriber_connection *conn) } } - resp = gsm0808_create_ass_compl(lchan->abis_ip.ass_compl.rr_cause, - chosen_channel, - lchan->encr.alg_id, perm_spch, - addr_local_p, sc_ptr, NULL); + resp = gsm0808_create_ass_compl2(lchan->abis_ip.ass_compl.rr_cause, + chosen_channel, + lchan->encr.alg_id, perm_spch, + addr_local_p, sc_ptr, NULL, lcls_get_status(conn)); if (!resp) { assignment_fail(GSM0808_CAUSE_EQUIPMENT_FAILURE, @@ -186,9 +186,6 @@ static void send_assignment_complete(struct gsm_subscriber_connection *conn) return; } - /* Add LCLS BSS-Status IE in case there is any LCLS status for this connection */ - bssmap_add_lcls_status_if_needed(conn, resp); - rc = gscon_sigtran_send(conn, resp); if (rc) { assignment_fail(GSM0808_CAUSE_EQUIPMENT_FAILURE, diff --git a/src/osmo-bsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c index e4459da6e..f7b84e114 100644 --- a/src/osmo-bsc/osmo_bsc_lcls.c +++ b/src/osmo-bsc/osmo_bsc_lcls.c @@ -864,35 +864,3 @@ struct osmo_fsm lcls_fsm = { .log_subsys = DLCLS, .event_names = lcls_event_names, }; - -/* Add the LCLS BSS Status IE to a BSSMAP message. We assume this is - * called on a msgb that was returned by gsm0808_create_ass_compl() */ -static void bssmap_add_lcls_status(struct msgb *msg, enum gsm0808_lcls_status status) -{ - OSMO_ASSERT(msg->l3h[0] == BSSAP_MSG_BSS_MANAGEMENT); - OSMO_ASSERT(msg->l3h[2] == BSS_MAP_MSG_ASSIGMENT_COMPLETE || - msg->l3h[2] == BSS_MAP_MSG_HANDOVER_RQST_ACKNOWLEDGE || - msg->l3h[2] == BSS_MAP_MSG_HANDOVER_COMPLETE || - msg->l3h[2] == BSS_MAP_MSG_HANDOVER_PERFORMED); - OSMO_ASSERT(msgb_tailroom(msg) >= 2); - - /* append IE to end of message */ - msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, status); - /* increment the "length" byte in the BSSAP header */ - msg->l3h[1] += 2; -} - -/* Add (append) the LCLS BSS Status IE to a BSSMAP message, if there is any LCLS - * active on the given \a conn */ -void bssmap_add_lcls_status_if_needed(struct gsm_subscriber_connection *conn, struct msgb *msg) -{ - enum gsm0808_lcls_status status = lcls_get_status(conn); - if (status != GSM0808_LCLS_STS_NA) { - LOGPFSM(conn->fi, "Adding LCLS BSS-Status (%s) to %s\n", - gsm0808_lcls_status_name(status), - gsm0808_bssmap_name(msg->l3h[2])); - bssmap_add_lcls_status(msg, status); - } -} - - -- cgit v1.2.3