bsc_api: The rr_cause is optional, pass it as a pointer
diff --git a/openbsc/include/openbsc/bsc_api.h b/openbsc/include/openbsc/bsc_api.h
index 844e2aa..2062752 100644
--- a/openbsc/include/openbsc/bsc_api.h
+++ b/openbsc/include/openbsc/bsc_api.h
@@ -20,7 +20,7 @@
uint8_t rr_cause, uint8_t chosen_channel,
uint8_t encr_alg_id, uint8_t speech_mode);
void (*assign_fail)(struct gsm_subscriber_connection *conn,
- uint16_t rr_cause);
+ uint8_t cause, uint8_t *rr_cause);
int (*clear_request)(struct gsm_subscriber_connection *conn,
uint32_t cause);
};
diff --git a/openbsc/src/bsc/osmo_bsc_api.c b/openbsc/src/bsc/osmo_bsc_api.c
index 537a9b4..f4b3148 100644
--- a/openbsc/src/bsc/osmo_bsc_api.c
+++ b/openbsc/src/bsc/osmo_bsc_api.c
@@ -45,7 +45,8 @@
{
}
-static void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint32_t cause)
+static void bsc_assign_fail(struct gsm_subscriber_connection *conn,
+ uint8_t cause, uint8_t *rr_cause)
{
}
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 3abf4ba..c8ef4f4 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -203,7 +203,7 @@
struct bsc_api *api;
api = conn->bts->network->bsc_api;
- api->assign_fail(conn, 0);
+ api->assign_fail(conn, 0, NULL);
return 0;
}
@@ -263,10 +263,11 @@
break;
case GSM48_MT_RR_CHAN_MODE_MODIF_ACK:
rc = gsm48_rx_rr_modif_ack(msg);
- if (rc < 0 && api->assign_fail)
+ if (rc < 0 && api->assign_fail) {
api->assign_fail(conn,
- GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE);
- else if (rc >= 0 && api->assign_compl)
+ GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE,
+ NULL);
+ } else if (rc >= 0 && api->assign_compl)
api->assign_compl(conn, 0,
lchan_to_chosen_channel(conn->lchan),
conn->lchan->encr.alg_id,