lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

October 2026

  • 1 participants
  • 1245 discussions
[S] Change in osmo-ttcn3-hacks[master]: GTPv2_Templates: Allow passing servingNetwork IE
by pespin 15 Oct '26

15 Oct '26
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43894?usp=email ) Change subject: GTPv2_Templates: Allow passing servingNetwork IE ...................................................................... GTPv2_Templates: Allow passing servingNetwork IE Change-Id: I627652f5c08db1de4d541ba3dfc950b7e75d865b --- M library/GTPv2_Templates.ttcn M pgw/PGW_Session_CT.ttcn M smf/SMF_Session_CT_4G.ttcn 3 files changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/43894/1 diff --git a/library/GTPv2_Templates.ttcn b/library/GTPv2_Templates.ttcn index 6f8b0cb..8a1d3b4 100644 --- a/library/GTPv2_Templates.ttcn +++ b/library/GTPv2_Templates.ttcn @@ -956,12 +956,17 @@ } template (present) PDU_GTPCv2 -ts_GTP2C_CreateSessionReq(template (value) hexstring imsi, template (omit) hexstring msisdn, - integer rat_type, template (value) FullyQualifiedTEID sender_fteid, - template (value) octetstring apn, template (value) BIT3 pdn_type, +ts_GTP2C_CreateSessionReq(template (value) hexstring imsi, + template (omit) hexstring msisdn, + integer rat_type, + template (value) FullyQualifiedTEID sender_fteid, + template (value) octetstring apn, + template (value) BIT3 pdn_type, template (omit) FullyQualifiedTEID_List teid_list, - template (value) OCT2 chg_car, template (value) uint4_t bearer_id, + template (value) OCT2 chg_car, + template (value) uint4_t bearer_id, template (omit) UserLocationInfo uli := omit, + template (omit) ServingNetwork := omit, template (value) Bearer_QoS qos := ts_GTP2C_BearerQos('09'O, 0,0,0,0), template (omit) APCO apco := omit) := ts_PDU_GTP2C('00000000'O, '000000'O, '20'O, { @@ -970,7 +975,7 @@ mSISDN := fs_GTP2C_msisdn(msisdn), mEI := omit, userLocationInfo := uli, - servingNetwork := omit, + servingNetwork := servingNetwork, rAT_Type := ts_GTP2C_RatType(rat_type), indication := omit, fullyQualifiedTEID := { sender_fteid }, diff --git a/pgw/PGW_Session_CT.ttcn b/pgw/PGW_Session_CT.ttcn index 74aadfb..146c3f2 100644 --- a/pgw/PGW_Session_CT.ttcn +++ b/pgw/PGW_Session_CT.ttcn @@ -367,8 +367,8 @@ chg_car := '0000'O, bearer_id := g_pars.bearer.ebi, uli := uli_ie, + servingNetwork := ts_GTP2C_ServingNetwork('001'H, '01F'H), apco := apco); - g2c.gtpcv2_pdu.createSessionRequest.servingNetwork := ts_GTP2C_ServingNetwork('001'H, '01F'H); GTP2.send(g2c); if (do_s6b and DIAMETER[DIA_S6b].checkstate("Connected")) { diff --git a/smf/SMF_Session_CT_4G.ttcn b/smf/SMF_Session_CT_4G.ttcn index 9ea12f8..dbde8f4 100644 --- a/smf/SMF_Session_CT_4G.ttcn +++ b/smf/SMF_Session_CT_4G.ttcn @@ -237,8 +237,8 @@ chg_car := '0000'O, bearer_id := g_pars.bearer.ebi, uli := uli_ie, + servingNetwork := ts_GTP2C_ServingNetwork('001'H, '01F'H), apco := apco); - g2c.gtpcv2_pdu.createSessionRequest.servingNetwork := ts_GTP2C_ServingNetwork('001'H, '01F'H); /////////// START MUTUAL EXCLUSION ZONE //////////// /* This code block cannot be executed by more than one component at a time because -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43894?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I627652f5c08db1de4d541ba3dfc950b7e75d865b Gerrit-Change-Number: 43894 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: HTTP2_Adapter: Add func helper f_http2_adapter_next_stream_id()
by pespin 15 Oct '26

15 Oct '26
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43893?usp=email ) Change subject: HTTP2_Adapter: Add func helper f_http2_adapter_next_stream_id() ...................................................................... HTTP2_Adapter: Add func helper f_http2_adapter_next_stream_id() Change-Id: I6a881a1d5bbce832cb8da5a6371fb1e46b920b56 --- M library/HTTP2_Adapter.ttcn M smf/SMF_Session_CT_5G.ttcn 2 files changed, 25 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/43893/1 diff --git a/library/HTTP2_Adapter.ttcn b/library/HTTP2_Adapter.ttcn index 7ce7eef..b35b4f4 100644 --- a/library/HTTP2_Adapter.ttcn +++ b/library/HTTP2_Adapter.ttcn @@ -1,6 +1,6 @@ module HTTP2_Adapter { -/* HTTP2 Adapter component +/* HTTP2 Adapter component (RFC9113) * (C) 2019 by Harald Welte <laforge(a)gnumonks.org> * (C) 2026 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de> * All rights reserved. @@ -28,6 +28,7 @@ import from Misc_Helpers all; const integer HTTP2_MAX_NUM_CLIENTS := 4; +const integer HTTP2_ADATER_INITIAL_STREAM_ID := 1; type component HTTP2_CT { port HTTP2_CODEC_PT HTTP2[HTTP2_MAX_NUM_CLIENTS]; @@ -37,6 +38,9 @@ /* Connection identifier of the client / server itself */ var IPL4asp_Types.ConnectionId g_self_conn_id[HTTP2_MAX_NUM_CLIENTS]; + /* stream_id to use for next stream opened. */ + var IPL4asp_Types.ConnectionId g_http2_next_stream_id[HTTP2_MAX_NUM_CLIENTS]; + /* Header block compress enc/dec: */ var HTTP2_comp_context g_http2_ctx_dec[HTTP2_MAX_NUM_CLIENTS]; var HTTP2_comp_context g_http2_ctx_enc[HTTP2_MAX_NUM_CLIENTS]; @@ -69,6 +73,7 @@ function f_http2_adapter_init() runs on HTTP2_CT { for(var integer i := 0; i < HTTP2_MAX_NUM_CLIENTS; i := i + 1) { map(self:HTTP2[i], system:HTTP2_CODEC_PT); + g_http2_next_stream_id[i] := HTTP2_ADATER_INITIAL_STREAM_ID; g_self_conn_id[i] := -1; } } @@ -99,6 +104,18 @@ return -1; } +/* RFC 9913 5.1.1. Stream Identifiers: + * "Streams initiated by a client MUST use odd-numbered stream identifiers". + * "The identifier of a newly established stream MUST be numerically greater + * than all streams that the initiating endpoint has opened or reserved." + */ +function f_http2_adapter_next_stream_id(integer idx := 0) +runs on HTTP2_CT return integer { + var integer stream_id := g_http2_next_stream_id[idx]; + g_http2_next_stream_id[idx] := g_http2_next_stream_id[idx] + 2; + return stream_id; +} + private function f_http2_adapter_header_block_encode(HTTP2_header_block hb, integer idx := 0) runs on HTTP2_CT return octetstring { @@ -169,6 +186,7 @@ var IPL4asp_Types.Result res; res := HTTP2_CodecPort_CtrlFunct.f_IPL4_close(HTTP2[idx], g_self_conn_id[idx], {tcp := {}}); g_self_conn_id[idx] := -1; + g_http2_next_stream_id[idx] := HTTP2_ADATER_INITIAL_STREAM_ID; HTTP2_comp_context_free(g_http2_ctx_dec[idx]); HTTP2_comp_context_free(g_http2_ctx_enc[idx]); } diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn index 493b031..ab35f03 100644 --- a/smf/SMF_Session_CT_5G.ttcn +++ b/smf/SMF_Session_CT_5G.ttcn @@ -135,7 +135,7 @@ var template (value) octetstring body_enc; var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var integer http2_idx; - var integer http2_stream_id := 3; + var integer http2_stream_id; var HTTP2_multipart_part_list parts; var template (value) HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; @@ -156,6 +156,7 @@ body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); http2_idx := f_http2_adapter_find_free_idx(); + http2_stream_id := f_http2_adapter_next_stream_id(http2_idx); http2_tx := ts_HTTP2_Msg(http2_idx, http2_stream_id, hb := { @@ -282,7 +283,7 @@ var template (value) octetstring body_enc; var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var integer http2_idx; - var integer http2_stream_id := 3; + var integer http2_stream_id; var HTTP2_multipart_part_list parts; var template (value) HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; @@ -303,6 +304,7 @@ body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); http2_idx := f_http2_adapter_find_free_idx(); + http2_stream_id := f_http2_adapter_next_stream_id(http2_idx); http2_tx := ts_HTTP2_Msg(http2_idx, http2_stream_id, hb := { @@ -360,7 +362,7 @@ var template (value) octetstring body_enc; var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var integer http2_idx; - var integer http2_stream_id := 3; + var integer http2_stream_id; var HTTP2_multipart_part_list parts; var template (value) HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; @@ -376,6 +378,7 @@ body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); http2_idx := f_http2_adapter_find_free_idx(); + http2_stream_id := f_http2_adapter_next_stream_id(http2_idx); http2_tx := ts_HTTP2_Msg(http2_idx, http2_stream_id, hb := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43893?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a881a1d5bbce832cb8da5a6371fb1e46b920b56 Gerrit-Change-Number: 43893 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: ngap: Add dec/enc functions for PDUSessionResourceRelease{Command,Res...
by pespin 15 Oct '26

15 Oct '26
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43891?usp=email ) Change subject: ngap: Add dec/enc functions for PDUSessionResourceRelease{Command,Response} ...................................................................... ngap: Add dec/enc functions for PDUSessionResourceRelease{Command,Response} Change-Id: I1d3709ae160d0b2be9cbdf8cc5dd98042c38f3cc --- M library/ngap/NGAP_EncDec.cc M library/ngap/NGAP_Types.ttcn 2 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/43891/1 diff --git a/library/ngap/NGAP_EncDec.cc b/library/ngap/NGAP_EncDec.cc index ae2f34f..d15cab6 100644 --- a/library/ngap/NGAP_EncDec.cc +++ b/library/ngap/NGAP_EncDec.cc @@ -129,6 +129,46 @@ return ret; } +OCTETSTRING enc__NGAP__PDUSessionResourceReleaseCommandTransfer(const NGAP__IEs::PDUSessionResourceReleaseCommandTransfer &p) +{ + TTCN_Buffer TTCN_buf; + TTCN_buf.clear(); + p.encode(NGAP__IEs::PDUSessionResourceReleaseCommandTransfer_descr_, TTCN_buf, + TTCN_EncDec::CT_PER, PER_ALIGNED); + return OCTETSTRING(TTCN_buf.get_len(), TTCN_buf.get_data()); +} + +NGAP__IEs::PDUSessionResourceReleaseCommandTransfer dec__NGAP__PDUSessionResourceReleaseCommandTransfer(const OCTETSTRING &stream) +{ + NGAP__IEs::PDUSessionResourceReleaseCommandTransfer ret; + TTCN_Buffer TTCN_buf; + TTCN_buf.clear(); + TTCN_buf.put_os(stream); + ret.decode(NGAP__IEs::PDUSessionResourceReleaseCommandTransfer_descr_, TTCN_buf, + TTCN_EncDec::CT_PER, PER_ALIGNED); + return ret; +} + +OCTETSTRING enc__NGAP__PDUSessionResourceReleaseResponseTransfer(const NGAP__IEs::PDUSessionResourceReleaseResponseTransfer &p) +{ + TTCN_Buffer TTCN_buf; + TTCN_buf.clear(); + p.encode(NGAP__IEs::PDUSessionResourceReleaseResponseTransfer_descr_, TTCN_buf, + TTCN_EncDec::CT_PER, PER_ALIGNED); + return OCTETSTRING(TTCN_buf.get_len(), TTCN_buf.get_data()); +} + +NGAP__IEs::PDUSessionResourceReleaseResponseTransfer dec__NGAP__PDUSessionResourceReleaseResponseTransfer(const OCTETSTRING &stream) +{ + NGAP__IEs::PDUSessionResourceReleaseResponseTransfer ret; + TTCN_Buffer TTCN_buf; + TTCN_buf.clear(); + TTCN_buf.put_os(stream); + ret.decode(NGAP__IEs::PDUSessionResourceReleaseResponseTransfer_descr_, TTCN_buf, + TTCN_EncDec::CT_PER, PER_ALIGNED); + return ret; +} + OCTETSTRING enc__NGAP__UEContextSuspendRequestTransfer(const NGAP__IEs::UEContextSuspendRequestTransfer &p) { TTCN_Buffer TTCN_buf; diff --git a/library/ngap/NGAP_Types.ttcn b/library/ngap/NGAP_Types.ttcn index 78054bc..08d0f22 100644 --- a/library/ngap/NGAP_Types.ttcn +++ b/library/ngap/NGAP_Types.ttcn @@ -21,6 +21,12 @@ external function enc_NGAP_PDUSessionResourceModifyIndicationTransfer(NGAP_IEs.PDUSessionResourceModifyIndicationTransfer p) return octetstring; external function dec_NGAP_PDUSessionResourceModifyIndicationTransfer(in octetstring pdu) return NGAP_IEs.PDUSessionResourceModifyIndicationTransfer; + external function enc_NGAP_PDUSessionResourceReleaseCommandTransfer(NGAP_IEs.PDUSessionResourceReleaseCommandTransfer p) return octetstring; + external function dec_NGAP_PDUSessionResourceReleaseCommandTransfer(in octetstring pdu) return NGAP_IEs.PDUSessionResourceReleaseCommandTransfer; + + external function enc_NGAP_PDUSessionResourceReleaseResponseTransfer(NGAP_IEs.PDUSessionResourceReleaseResponseTransfer p) return octetstring; + external function dec_NGAP_PDUSessionResourceReleaseResponseTransfer(in octetstring pdu) return NGAP_IEs.PDUSessionResourceReleaseResponseTransfer; + external function enc_NGAP_UEContextSuspendRequestTransfer(NGAP_IEs.UEContextSuspendRequestTransfer p) return octetstring; external function dec_NGAP_UEContextSuspendRequestTransfer(in octetstring pdu) return NGAP_IEs.UEContextSuspendRequestTransfer; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43891?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1d3709ae160d0b2be9cbdf8cc5dd98042c38f3cc Gerrit-Change-Number: 43891 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: smf: Split enc/dec of multipart http2 messages into more generic helpers
by pespin 15 Oct '26

15 Oct '26
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43892?usp=email ) Change subject: smf: Split enc/dec of multipart http2 messages into more generic helpers ...................................................................... smf: Split enc/dec of multipart http2 messages into more generic helpers Add function helpers for: * Tx Create/Update/Release SM Context(SmContextUpdateData, ngap_enc, ngnas_enc). * Rx N1N2MessageTransfer(N1N2MessageTransferReqData, ngap_enc, ngnas_enc). These helpers will be reused in follow-up commits for other procedures, like PDU Session release. Change-Id: I5684cf0a5e955d9415e07e27b2a8d3478202e5fd --- M smf/SMF_Session_CT_5G.ttcn 1 file changed, 141 insertions(+), 99 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/43892/1 diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn index 61dfc0a..493b031 100644 --- a/smf/SMF_Session_CT_5G.ttcn +++ b/smf/SMF_Session_CT_5G.ttcn @@ -33,6 +33,7 @@ import from NAS_CommonTypeDefs all; import from NG_NAS_TypeDefs all; import from NG_NAS_MsgContainers all; +import from NG_NAS_Templates all; import from NG_NAS_Osmo_Types all; import from NG_NAS_Osmo_Templates all; import from NG_NAS_Functions all; @@ -125,34 +126,54 @@ amfId := "020040")); } -function f_http2_encode_body_multipart_json_5gnas(octetstring json_encoded, - octetstring nas_ecnoded, - charstring boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==") return octetstring -{ - var template (value) HTTP2_multipart_part_list parts; - parts := { - ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_type("application/json") }, - json_encoded), - ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id("5gnas-sm"), - ts_HTTP2_Hdr_content_type("application/vnd.3gpp.5gnas") }, - nas_ecnoded) - }; - return f_HTTP2_multipart_msg_encode(parts, boundary); -} +/* 3GPP TS 29.502 5.2.2.2 Create SM Context service operation */ +private function f_n11_prepare_create_sm_context(SmContextCreateData sm_ctx_create, + template (omit) octetstring ngap_enc := omit, + template (omit) octetstring ngnas_enc := omit) +runs on SMF_Session_CT return HTTP2_Msg { + var octetstring sm_ctx_create_enc; + var template (value) octetstring body_enc; + var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" + var integer http2_idx; + var integer http2_stream_id := 3; + var HTTP2_multipart_part_list parts; + var template (value) HTTP2_Msg http2_tx; + var HTTP2_Msg http2_rx; -function f_http2_encode_body_multipart_json_ngap(octetstring json_encoded, - octetstring ngap_ecnoded, - charstring boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==") return octetstring -{ - var template (value) HTTP2_multipart_part_list parts; - parts := { - ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_type("application/json") }, - json_encoded), - ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id("N2SmInfo"), - ts_HTTP2_Hdr_content_type("application/vnd.3gpp.ngap") }, - ngap_ecnoded) - }; - return f_HTTP2_multipart_msg_encode(parts, boundary); + sm_ctx_create_enc := f_enc_SmContextCreateData(sm_ctx_create); + + parts := { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_type("application/json") }, sm_ctx_create_enc)) }; + if (ispresent(sm_ctx_create.n1SmMsg)) { + parts := parts & { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id(sm_ctx_create.n1SmMsg.contentId), + ts_HTTP2_Hdr_content_type("application/vnd.3gpp.5gnas") }, + valueof(ngnas_enc))) }; + } + if (ispresent(sm_ctx_create.n2SmInfo)) { + parts := parts & { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id(sm_ctx_create.n2SmInfo.contentId), + ts_HTTP2_Hdr_content_type("application/vnd.3gpp.ngap") }, + valueof(ngap_enc))) }; + } + + body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); + http2_idx := f_http2_adapter_find_free_idx(); + http2_tx := ts_HTTP2_Msg(http2_idx, + http2_stream_id, + hb := { + pseudo_headers := ts_HTTP2_pseudo_headers_Req(method := "POST", + scheme := "http", + authority := Nsmf_uri_hostport, + path := Nsmf_PDUSession_path_sm_contexts), + headers := { + ts_HTTP2_Hdr_content_type_multipart(http2_boundary), + ts_HTTP2_Hdr_accept("application/json,application/vnd.3gpp.ngap,application/problem+json"), + ts_HTTP2_Hdr_user_agent("ttcn3-amf"), + ts_HTTP2_Hdr_accept_encoding("gzip") + } + }, + body := ts_HTTP2_Data_frame(http2_stream_id, + end_stream_flag := true, + data := body_enc)); + return valueof(http2_tx); } /* Nsmf_PDUSession_CreateSMContext Request/response @@ -160,15 +181,11 @@ * 3GPP TS 29.502 6.1.3.2 */ function f_n11_create_session() runs on SMF_Session_CT { - var template (value) octetstring body; - var integer http2_idx; - var integer http2_stream_id := 3; - var template (value) HTTP2_Msg http2_tx; + var HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; var template (present) HTTP2_Msg http2_exp_rx; - var template (value) SmContextCreateData sm_contexts; - var octetstring sm_contexts_enc; + sm_contexts := ts_SmContextCreateData(supi := "imsi-" & g_pars.imsi_str, pei := "imeisv-0790219824011594", pduSessionId := g_pars.namf.pdu_sess_id, @@ -182,33 +199,11 @@ ratType := ts_RatType(NR), ueLocation := f_ts_UserLocation(), smContextStatusUri := ts_Namf_Callback_uri_imsi_sm_context_status_id(g_pars.imsi_str, int2str(g_pars.namf.pdu_sess_id))); - sm_contexts_enc := f_enc_SmContextCreateData(valueof(sm_contexts)); - - var charstring boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var octetstring nas_enc := f_ng_nas_gen_session_establishment_request(); + http2_tx := f_n11_prepare_create_sm_context(valueof(sm_contexts), omit, nas_enc); - body := f_http2_encode_body_multipart_json_5gnas(sm_contexts_enc, nas_enc, boundary); - http2_idx := f_http2_adapter_find_free_idx(); - http2_tx := ts_HTTP2_Msg(http2_idx, - http2_stream_id, - hb := { - pseudo_headers := ts_HTTP2_pseudo_headers_Req(method := "POST", - scheme := "http", - authority := Nsmf_uri_hostport, - path := Nsmf_PDUSession_path_sm_contexts), - headers := { - ts_HTTP2_Hdr_content_type_multipart(boundary), - ts_HTTP2_Hdr_accept("application/json,application/vnd.3gpp.ngap,application/problem+json"), - ts_HTTP2_Hdr_user_agent("ttcn3-amf"), - ts_HTTP2_Hdr_accept_encoding("gzip") - } - }, - body := ts_HTTP2_Data_frame(http2_stream_id, - end_stream_flag := true, - data := body)); - - f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_idx); + f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id); /////////// START MUTUAL EXCLUSION ZONE //////////// /* This code block cannot be executed by more than one component at a time because @@ -235,14 +230,14 @@ as_nudm_sdm_post_sdm_subscriptions(); /* Expect to receive "201 Created body={}" answer to our Nsmf sm-contexts request: */ - http2_exp_rx := tr_HTTP2_Msg(http2_idx, - http2_stream_id, + http2_exp_rx := tr_HTTP2_Msg(http2_tx.conn_id, + http2_tx.stream_id, tr_HTTP2_header_block(pseudo_headers := tr_HTTP2_pseudo_headers_Resp(201), headers := {*, tr_HTTP2_Hdr_location(tr_Nsmf_PDUSession_uri_sm_contexts), *}), - tr_HTTP2_Data_frame(stream_id := http2_stream_id, + tr_HTTP2_Data_frame(stream_id := http2_tx.stream_id, end_stream_flag := true, data := char2oct("{}"))); - as_http2_adapter_receive(http2_rx, http2_exp_rx, idx := http2_idx); + as_http2_adapter_receive(http2_rx, http2_exp_rx, idx := http2_tx.conn_id); /* Store obtained smContextRef:*/ var charstring created_location := valueof(f_HTTP2_header_list_find_header(http2_rx.hb.headers, c_HTTP2_HDR_location)); g_pars.nsmf.smContextRef := regexp(created_location, Nsmf_uri_prefix & Nsmf_PDUSession_path_sm_contexts & "/(?+)", 0); @@ -250,7 +245,7 @@ f_http2_server_emu_register(valueof(ts_Nsmf_PDUSession_path_sm_contexts(g_pars.nsmf.smContextRef)), idx := HTTP2_CONN_SCP); /* Close HTTP2 conn: */ - f_http2_adapter_close(idx := http2_idx); + f_http2_adapter_close(idx := http2_tx.conn_id); /* Expect PCF to receive POST sm-policies: */ as_npcf_smpolicycontrol_post_sm_policies(); @@ -267,9 +262,8 @@ f_Mutex_unlock(__BFILE__, __LINE__); /////////// END MUTUAL EXCLUSION ZONE //////////// - as_namf_comm_post_n1n2_messages(); - - f_n11_update_sm_context(); + as_namf_comm_post_n1n2_messages_pdu_sess_establishment(); + f_n11_update_sm_context_pdu_sess_establishment(); if (g_pars.pdn_type == c_PFCP_PDN_Type_IPv6 or g_pars.pdn_type == c_PFCP_PDN_Type_IPv4v6) { @@ -280,26 +274,34 @@ /* 3GPP TS 29.502 5.2.2.3 Update SM Context service operation */ -function f_n11_update_sm_context() -runs on SMF_Session_CT { - var template (value) SmContextUpdateData sm_ctx_update; +private function f_n11_prepare_update_sm_context(SmContextUpdateData sm_ctx_update, + template (omit) octetstring ngap_enc := omit, + template (omit) octetstring ngnas_enc := omit) +runs on SMF_Session_CT return HTTP2_Msg { var octetstring sm_ctx_update_enc; var template (value) octetstring body_enc; var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var integer http2_idx; var integer http2_stream_id := 3; + var HTTP2_multipart_part_list parts; var template (value) HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; - sm_ctx_update := ts_SmContextUpdateData(ueLocation := f_ts_UserLocation(), - n2SmInfo := TS29502_Nsmf_PDUSession_Templates.ts_RefToBinaryData("N2SmInfo"), - n2SmInfoType := ts_N2SmInfoType(PDU_RES_SETUP_RSP)); - sm_ctx_update_enc := f_enc_SmContextUpdateData(valueof(sm_ctx_update)); + sm_ctx_update_enc := f_enc_SmContextUpdateData(sm_ctx_update); - /* TODO: generate and encode ngap: */ - var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer(); + parts := { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_type("application/json") }, sm_ctx_update_enc)) }; + if (ispresent(sm_ctx_update.n1SmMsg)) { + parts := parts & { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id(sm_ctx_update.n1SmMsg.contentId), + ts_HTTP2_Hdr_content_type("application/vnd.3gpp.5gnas") }, + valueof(ngnas_enc))) }; + } + if (ispresent(sm_ctx_update.n2SmInfo)) { + parts := parts & { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id(sm_ctx_update.n2SmInfo.contentId), + ts_HTTP2_Hdr_content_type("application/vnd.3gpp.ngap") }, + valueof(ngap_enc))) }; + } - body_enc := f_http2_encode_body_multipart_json_ngap(sm_ctx_update_enc, ngap_enc, http2_boundary); + body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); http2_idx := f_http2_adapter_find_free_idx(); http2_tx := ts_HTTP2_Msg(http2_idx, http2_stream_id, @@ -318,8 +320,24 @@ body := ts_HTTP2_Data_frame(http2_stream_id, end_stream_flag := true, data := body_enc)); + return valueof(http2_tx); +} - f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_idx); +function f_n11_update_sm_context_pdu_sess_establishment() +runs on SMF_Session_CT { + var template (value) SmContextUpdateData sm_ctx_update; + var template (value) octetstring body_enc; + var HTTP2_Msg http2_tx; + var HTTP2_Msg http2_rx; + + sm_ctx_update := ts_SmContextUpdateData(ueLocation := f_ts_UserLocation(), + n2SmInfo := TS29502_Nsmf_PDUSession_Templates.ts_RefToBinaryData("ngap-sm"), + n2SmInfoType := ts_N2SmInfoType(PDU_RES_SETUP_RSP)); + var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer(); + + http2_tx := f_n11_prepare_update_sm_context(valueof(sm_ctx_update), ngap_enc); + + f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id); f_http2_adapter_send(http2_tx); /* SMF updates RAN GTPU IP addr+TEID info on UPF: */ @@ -329,32 +347,34 @@ as_nudm_uecm_put_IndividualSmfRegistration(); /* Successful answer with no content: */ - as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_idx); - f_http2_adapter_close(idx := http2_idx); + as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_tx.conn_id); + f_http2_adapter_close(idx := http2_tx.conn_id); setverdict(pass); } -/* 5.2.2.4 Release SM Context service operation */ -function f_n11_delete_session() -runs on SMF_Session_CT { - var template (value) SmContextReleaseData sm_ctx_rel; +/* 3GPP TS 29.502 5.2.2.4 Release SM Context service operation */ +private function f_n11_prepare_release_sm_context(SmContextReleaseData sm_ctx_rel, + template (omit) octetstring ngap_enc := omit) +runs on SMF_Session_CT return HTTP2_Msg { var octetstring sm_ctx_rel_enc; var template (value) octetstring body_enc; var charstring http2_boundary := "=-0EVVjxcWWFYNd1JXh1OQEg==" var integer http2_idx; var integer http2_stream_id := 3; + var HTTP2_multipart_part_list parts; var template (value) HTTP2_Msg http2_tx; var HTTP2_Msg http2_rx; - sm_ctx_rel := ts_SmContextReleaseData(ueLocation := f_ts_UserLocation(), - n2SmInfo := TS29502_Nsmf_PDUSession_Templates.ts_RefToBinaryData("N2SmInfo"), - n2SmInfoType := ts_N2SmInfoType(PDU_RES_SETUP_RSP)); - sm_ctx_rel_enc := f_enc_SmContextReleaseData(valueof(sm_ctx_rel)); + sm_ctx_rel_enc := f_enc_SmContextReleaseData(sm_ctx_rel); - /* TODO: generate and encode ngap: */ - var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer(); + parts := { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_type("application/json") }, sm_ctx_rel_enc)) }; + if (ispresent(sm_ctx_rel.n2SmInfo)) { + parts := parts & { valueof(ts_HTTP2_multipart_part({ ts_HTTP2_Hdr_content_id(sm_ctx_rel.n2SmInfo.contentId), + ts_HTTP2_Hdr_content_type("application/vnd.3gpp.ngap") }, + valueof(ngap_enc))) }; + } - body_enc := f_http2_encode_body_multipart_json_ngap(sm_ctx_rel_enc, ngap_enc, http2_boundary); + body_enc := f_HTTP2_multipart_msg_encode(parts, http2_boundary); http2_idx := f_http2_adapter_find_free_idx(); http2_tx := ts_HTTP2_Msg(http2_idx, http2_stream_id, @@ -373,8 +393,23 @@ body := ts_HTTP2_Data_frame(http2_stream_id, end_stream_flag := true, data := body_enc)); + return valueof(http2_tx); +} - f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_idx); +/* 5.2.2.4 Release SM Context service operation */ +function f_n11_delete_session() +runs on SMF_Session_CT { + var template (value) SmContextReleaseData sm_ctx_rel; + var HTTP2_Msg http2_tx; + var HTTP2_Msg http2_rx; + + sm_ctx_rel := ts_SmContextReleaseData(ueLocation := f_ts_UserLocation(), + n2SmInfo := TS29502_Nsmf_PDUSession_Templates.ts_RefToBinaryData("N2SmInfo"), + n2SmInfoType := ts_N2SmInfoType(PDU_RES_SETUP_RSP)); + var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer(); + + http2_tx := f_n11_prepare_release_sm_context(valueof(sm_ctx_rel), ngap_enc); + f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id); f_http2_adapter_send(http2_tx); /* SMF deletes PDU Session on UPF: */ @@ -388,10 +423,10 @@ as_nudm_uecm_delete_IndividualSmfRegistration(); /* Successful answer with no content: */ - as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_idx); + as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_tx.conn_id); f_http2_server_emu_unregister(valueof(ts_Nsmf_PDUSession_path_sm_contexts(g_pars.nsmf.smContextRef)), idx := HTTP2_CONN_SCP); - f_http2_adapter_close(idx := http2_idx); + f_http2_adapter_close(idx := http2_tx.conn_id); setverdict(pass); } @@ -435,10 +470,22 @@ } /* 5.2.2.3.1 N1N2MessageTransfer */ -private altstep as_namf_comm_post_n1n2_messages() +private altstep as_namf_comm_post_n1n2_messages(out HTTP2_Msg http2_rx, out HTTP2_multipart_part_list parts) +runs on SMF_Session_CT { + [] HTTP2_CONN[HTTP2_CONN_SCP].receive(f_tr_Namf_Communication_post_n1n2_messages()) -> value http2_rx { + /* Split http2_rx.body.data into chunks since it is a multipart message: */ + var charstring content_type_val := valueof(f_HTTP2_header_list_find_header(http2_rx.hb.headers, c_HTTP2_HDR_content_type)); + var charstring boundary := f_HTTP2_header_content_type_multipart_val_get_boundary(content_type_val) + parts := f_HTTP2_multipart_msg_parse(http2_rx.body.data, boundary); + } +} + +/* 5.2.2.3.1 N1N2MessageTransfer, PDU Session establishment (see clause 4.3.2 of 3GPP TS 23.502) */ +private altstep as_namf_comm_post_n1n2_messages_pdu_sess_establishment() runs on SMF_Session_CT { var HTTP2_Msg http2_rx; - [] HTTP2_CONN[HTTP2_CONN_SCP].receive(f_tr_Namf_Communication_post_n1n2_messages()) -> value http2_rx { + var HTTP2_multipart_part_list parts; + [] as_namf_comm_post_n1n2_messages(http2_rx, parts) { var N1N2MessageTransferReqData n1n2msg_req; var NGAP_IEs.PDUSessionResourceSetupRequestTransfer setup_req_transf; var template (value) N1N2MessageTransferRspData n1n2msg_rsp; @@ -446,11 +493,6 @@ var template (value) HTTP2_Msg http2_tx; var octetstring body_enc; - /* Split http2_rx.body.data into chunks since it is a multipart message: */ - var charstring content_type_val := valueof(f_HTTP2_header_list_find_header(http2_rx.hb.headers, c_HTTP2_HDR_content_type)); - var charstring boundary := f_HTTP2_header_content_type_multipart_val_get_boundary(content_type_val) - var HTTP2_multipart_part_list parts := f_HTTP2_multipart_msg_parse(http2_rx.body.data, boundary); - /* Decode 1st part: SBI json: */ f_dec_N1N2MessageTransferReqData(parts[0].data, n1n2msg_req); // TODO: check returned integer. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43892?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5684cf0a5e955d9415e07e27b2a8d3478202e5fd Gerrit-Change-Number: 43892 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in pysim[master]: personalization: SUCI: ff-pad remaining file size
by laforge 15 Oct '26

15 Oct '26
Attention is currently required from: neels. laforge has posted comments on this change by neels. ( https://gerrit.osmocom.org/c/pysim/+/43866?usp=email ) Change subject: personalization: SUCI: ff-pad remaining file size ...................................................................... Patch Set 1: (1 comment) File pySim/esim/saip/personalization.py: https://gerrit.osmocom.org/c/pysim/+/43866/comment/10ddcd69_ae21cd4e?usp=em… : PS1, Line 1340: is_size = f_sucici.file_size : pad_n = is_size - len(body) : if pad_n > 0: : body = body + b'\xff' * pad_n I'm rather certain we have implemented ff-padding a number of times in pysim and/or pyosmocom already. We have the osmocom.construct.Rpad(Adapter) for construct, we have osmocom.utils.rpad() for hex-strings, we have various padding methods in pySim.ota as well as pySim.esim.bsp. Let's please not add an hand-rolled, open-coding padding here. Either we can somehow use or generalize an existing function/method, or we introduce a new one that is used here (and potentially elswehwere) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/43866?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9465eac9269e3f76dddd467109f547489a0feb93 Gerrit-Change-Number: 43866 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Comment-Date: Thu, 15 Oct 2026 08:11:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No
1 0
0 0
[L] Change in pysim[master]: saip/personalization: add SUCI parameters for SAIP 2.3
by laforge 15 Oct '26

15 Oct '26
Attention is currently required from: neels. laforge has posted comments on this change by neels. ( https://gerrit.osmocom.org/c/pysim/+/43865?usp=email ) Change subject: saip/personalization: add SUCI parameters for SAIP 2.3 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/43865?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7c727b10a850651a631211e4f168df5fec1600e5 Gerrit-Change-Number: 43865 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Comment-Date: Thu, 15 Oct 2026 08:08:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[M] Change in pysim[master]: personalization: EnumParam: implement as value_map, not enum.IntEnum
by laforge 15 Oct '26

15 Oct '26
Attention is currently required from: neels. laforge has posted comments on this change by neels. ( https://gerrit.osmocom.org/c/pysim/+/43864?usp=email ) Change subject: personalization: EnumParam: implement as value_map, not enum.IntEnum ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/43864?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I690ceccf0ec7ef7067bcaa5cec1303cdaf0f78a4 Gerrit-Change-Number: 43864 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Comment-Date: Thu, 15 Oct 2026 08:07:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[S] Change in libosmocore[master]: Gb: ensure a BSSGP Tx Status don't overflow on too big messages
by pespin 14 Oct '26

14 Oct '26
Attention is currently required from: lynxis lazus. pespin has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email ) Change subject: Gb: ensure a BSSGP Tx Status don't overflow on too big messages ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I427d23887dcc05705228b553428d14fda086b06f Gerrit-Change-Number: 43890 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Wed, 14 Oct 2026 18:10:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[S] Change in libosmocore[master]: Gb: ensure a BSSGP Tx Status don't overflow on too big messages
by lynxis lazus 14 Oct '26

14 Oct '26
Attention is currently required from: pespin. lynxis lazus has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email ) Change subject: Gb: ensure a BSSGP Tx Status don't overflow on too big messages ...................................................................... Patch Set 2: (3 comments) Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/43890/comment/9d141899_87f17cdd?… : PS1, Line 11: TS 48.018 specifies the BSSGP layer should taken the lower layer > should take Done File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/43890/comment/247c423a_50f64036?… : PS1, Line 587: OSMO_MIN(msgb_bssgp_len(orig_msg), msgb_tailroom(msg) - 3), > is the 3 for T + L? Do you mind writing it in a comment? Done File tests/gb/gprs_bssgp_test.c: https://gerrit.osmocom.org/c/libosmocore/+/43890/comment/54d24768_8590a5c6?… : PS1, Line 293: static bool _test_bssgp_tx_status_too_big_rx = false; > This variable seems unused, only set to true and nothing more. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I427d23887dcc05705228b553428d14fda086b06f Gerrit-Change-Number: 43890 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 14 Oct 2026 17:17:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in libosmocore[master]: Gb: ensure a BSSGP Tx Status don't overflow on too big messages
by lynxis lazus 14 Oct '26

14 Oct '26
Attention is currently required from: lynxis lazus. Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email to look at the new patch set (#2). The following approvals got outdated and were removed: Verified+1 by Jenkins Builder Change subject: Gb: ensure a BSSGP Tx Status don't overflow on too big messages ...................................................................... Gb: ensure a BSSGP Tx Status don't overflow on too big messages When sending a BSSGP Status, ensure the containing message don't overflow the new message. TS 48.018 specifies the BSSGP layer should take the lower layer MTU into account. However this is the legacy code, keep it simple and ensure it doesn't try to overflow the new message. The newer BSSGP code already handles this in a better way. Reported-by: tsato Fixes: OS#7096 Change-Id: I427d23887dcc05705228b553428d14fda086b06f --- M src/gb/gprs_bssgp_util.c M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 3 files changed, 48 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/90/43890/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/43890?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I427d23887dcc05705228b553428d14fda086b06f Gerrit-Change-Number: 43890 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • ...
  • 125
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.