diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-14 21:27:31 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-19 10:55:43 +0200 |
commit | 1b625cb13469cb3094bedcc36d9e1ec4f83d8957 (patch) | |
tree | bd45b63d8a490c84d59133d6553c8b6caa619fff | |
parent | e731a7da05750098f6e87c42abea07b268bc1c85 (diff) |
gsm: Support Sending Last EUTRAN PLMN Id in Handover Required
Related: SYS#5337
Change-Id: I6280ce1abc283f1491bc6f391b2dd952df33a16b
-rw-r--r-- | TODO-RELEASE | 1 | ||||
-rw-r--r-- | include/osmocom/gsm/gsm0808.h | 3 | ||||
-rw-r--r-- | src/gsm/gsm0808.c | 5 |
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; } |