aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-06-10 00:54:35 +0200
committerlaforge <laforge@osmocom.org>2021-06-25 08:19:04 +0000
commite4378b7e389ec5c20844160a66ec71d731cf4ab2 (patch)
tree9870cd1a8f5b48acaa190c93ffb83a86d7bc3150
parent8138c53a32b36ea15ade6755b2a1dd8316ed39cb (diff)
gsm0808: add Kc128 to Handover Request
-rw-r--r--include/osmocom/gsm/gsm0808.h7
-rw-r--r--src/gsm/gsm0808.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h
index 3e394601..c21ce8ac 100644
--- a/include/osmocom/gsm/gsm0808.h
+++ b/include/osmocom/gsm/gsm0808.h
@@ -218,7 +218,12 @@ struct gsm0808_handover_request {
uint8_t global_call_reference_len;
/* more items are defined in the spec and may be added later */
- bool more_items; /*!< always set this to false */
+ bool more_items; /*!< set this to true iff any fields below are used */
+
+ bool kc128_present;
+ uint8_t kc128[16];
+
+ bool more_items2; /*!< always set this to false */
};
struct msgb *gsm0808_create_handover_request(const struct gsm0808_handover_request *params);
diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c
index 4f072f73..158c4903 100644
--- a/src/gsm/gsm0808.c
+++ b/src/gsm/gsm0808.c
@@ -1005,6 +1005,9 @@ struct msgb *gsm0808_create_handover_request(const struct gsm0808_handover_reque
msgb_tv_fixed_put(msg, GSM0808_IE_CALL_ID, 4, val);
}
+ if (params->more_items && params->kc128_present)
+ gsm0808_enc_kc128(msg, params->kc128);
+
if (params->global_call_reference && params->global_call_reference_len) {
msgb_tlv_put(msg, GSM0808_IE_GLOBAL_CALL_REF,
params->global_call_reference_len, params->global_call_reference);