mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-04 05:53:26 +00:00
bssap: Move cipher mode complete to libosmocore
This commit is contained in:
@@ -401,7 +401,7 @@ static int handle_cipher_m_complete(struct msgb *msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
LOGP(DMSC, LOGL_DEBUG, "CIPHER MODE COMPLETE from MS, forwarding to MSC\n");
|
LOGP(DMSC, LOGL_DEBUG, "CIPHER MODE COMPLETE from MS, forwarding to MSC\n");
|
||||||
resp = bssmap_create_cipher_complete(msg);
|
resp = gsm0808_create_cipher_complete(msg, msg->lchan->encr.alg_id);
|
||||||
if (!resp) {
|
if (!resp) {
|
||||||
LOGP(DMSC, LOGL_ERROR, "Creating MSC response failed.\n");
|
LOGP(DMSC, LOGL_ERROR, "Creating MSC response failed.\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -781,37 +781,6 @@ struct msgb *bssmap_create_layer3(struct msgb *msg_l3)
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct msgb *bssmap_create_cipher_complete(struct msgb *layer3)
|
|
||||||
{
|
|
||||||
struct msgb *msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM,
|
|
||||||
"cipher-complete");
|
|
||||||
if (!msg)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* send response with BSS override for A5/1... cheating */
|
|
||||||
msg->l3h = msgb_put(msg, 3);
|
|
||||||
msg->l3h[0] = BSSAP_MSG_BSS_MANAGEMENT;
|
|
||||||
msg->l3h[1] = 0xff;
|
|
||||||
msg->l3h[2] = BSS_MAP_MSG_CIPHER_MODE_COMPLETE;
|
|
||||||
|
|
||||||
/* include layer3 in case we have at least two octets */
|
|
||||||
if (layer3 && msgb_l3len(layer3) > 2) {
|
|
||||||
msg->l4h = msgb_put(msg, msgb_l3len(layer3) + 2);
|
|
||||||
msg->l4h[0] = GSM0808_IE_LAYER_3_MESSAGE_CONTENTS;
|
|
||||||
msg->l4h[1] = msgb_l3len(layer3);
|
|
||||||
memcpy(&msg->l4h[2], layer3->l3h, msgb_l3len(layer3));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* and the optional BSS message */
|
|
||||||
msg->l4h = msgb_put(msg, 2);
|
|
||||||
msg->l4h[0] = GSM0808_IE_CHOSEN_ENCR_ALG;
|
|
||||||
msg->l4h[1] = layer3->lchan->encr.alg_id;
|
|
||||||
|
|
||||||
/* update the size */
|
|
||||||
msg->l3h[1] = msgb_l3len(msg) - 2;
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u_int8_t chan_mode_to_speech(struct gsm_lchan *lchan)
|
static u_int8_t chan_mode_to_speech(struct gsm_lchan *lchan)
|
||||||
{
|
{
|
||||||
int mode = 0;
|
int mode = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user