diff options
-rw-r--r-- | include/osmocom/bsc/osmo_bsc_lcls.h | 2 | ||||
-rw-r--r-- | src/osmo-bsc/assignment_fsm.c | 11 | ||||
-rw-r--r-- | 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); - } -} - - |