aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-04-14 21:27:31 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2021-04-19 10:55:43 +0200
commit1b625cb13469cb3094bedcc36d9e1ec4f83d8957 (patch)
treebd45b63d8a490c84d59133d6553c8b6caa619fff
parente731a7da05750098f6e87c42abea07b268bc1c85 (diff)
gsm: Support Sending Last EUTRAN PLMN Id in Handover Required
-rw-r--r--TODO-RELEASE1
-rw-r--r--include/osmocom/gsm/gsm0808.h3
-rw-r--r--src/gsm/gsm0808.c5
3 files changed, 9 insertions, 0 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE
index bc157bd2..53401ec6 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -8,3 +8,4 @@
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE
+libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size)
diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h
index b921eda8..ecb9827e 100644
--- a/include/osmocom/gsm/gsm0808.h
+++ b/include/osmocom/gsm/gsm0808.h
@@ -126,6 +126,9 @@ struct gsm0808_old_bss_to_new_bss_info {
uint8_t field;
} current_channel_type_2;
+ bool last_eutran_plmn_id_present;
+ struct osmo_plmn_id last_eutran_plmn_id;
+
/* more items are defined in the spec and may be added later */
bool more_items; /*< always set this to false */
};
diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c
index 6070ef3c..01c3cee5 100644
--- a/src/gsm/gsm0808.c
+++ b/src/gsm/gsm0808.c
@@ -833,6 +833,11 @@ static uint8_t put_old_bss_to_new_bss_information(struct msgb *msg,
msgb_tlv_put(msg, GSM0808_FE_IE_CURRENT_CHANNEL_TYPE_2, 2, val);
}
+ if (i->last_eutran_plmn_id_present) {
+ msgb_put_u8(msg, GSM0808_FE_IE_LAST_USED_EUTRAN_PLMN_ID);
+ osmo_plmn_to_bcd(msgb_put(msg, 3), &i->last_eutran_plmn_id);
+ }
+
*tlv_len = (uint8_t) (msg->tail - old_tail);
return *tlv_len + 2;
}