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

January 2024

  • 1 participants
  • 1559 discussions
[S] Change in libosmocore[master]: Prevent poll() in select.c to timeout too early
by jolly 24 Jan '24

24 Jan '24
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/35672?usp=email ) Change subject: Prevent poll() in select.c to timeout too early ...................................................................... Prevent poll() in select.c to timeout too early Adjust osmo_timers_nearest_ms() to round up the remaining time. Note that poll() has a granularity of 1 millisecond. Previously, when rounding down the remaining time, osmo_select_main() would return too early, before the nearest timer timed out. Consequently, the main loop repeatedly called osmo_select_main() until the timer actually timed out, resulting in excessive CPU usage. By modifying osmo_timers_nearest_ms() to round up the remaining time, we ensure accurate timeout calculations, preventing unnecessary CPU consumption during the main loop. Related: OS#6339 Change-Id: I79de77c79af4d50d1eb9ca0c5417123ff760dca3 --- M src/core/timer.c 1 file changed, 28 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/35672/1 diff --git a/src/core/timer.c b/src/core/timer.c index 20d87a0..4229c5a 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -190,8 +190,13 @@ if (!nearest_p) return -1; + /* By adding 999 milliseconds, we ensure rounding up to the nearest + * whole millisecond. This approach prevents the return of 0 when the + * timer is still active, and it guarantees that the calling process + * does not wait for a duration shorter than the time remaining on the + * timer. */ nearest_ms = nearest_p->tv_sec * 1000; - nearest_ms += nearest_p->tv_usec / 1000; + nearest_ms += (nearest_p->tv_usec + 999) / 1000; return nearest_ms; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35672?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79de77c79af4d50d1eb9ca0c5417123ff760dca3 Gerrit-Change-Number: 35672 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmo-sgsn[master]: gsup: Use new libosmogsm struct osmo_gsup_pdp_info fields
by fixeria 24 Jan '24

24 Jan '24
Attention is currently required from: lynxis lazus, neels, pespin. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/35632?usp=email ) Change subject: gsup: Use new libosmogsm struct osmo_gsup_pdp_info fields ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/35632?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0d03d368e73ab62ec631420769f6af91f2ff9987 Gerrit-Change-Number: 35632 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Wed, 24 Jan 2024 15:29:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-msc[master]: vlr: Use new libosmogsm struct osmo_gsup_pdp_info fields
by pespin 24 Jan '24

24 Jan '24
Attention is currently required from: lynxis lazus, neels. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/35631?usp=email ) Change subject: vlr: Use new libosmogsm struct osmo_gsup_pdp_info fields ...................................................................... Patch Set 1: (1 comment) Patchset: PS1: ping -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/35631?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ia002fd6e0334d56de34d352a0bf1a8604e2e9fd3 Gerrit-Change-Number: 35631 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Wed, 24 Jan 2024 15:17:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-sgsn[master]: gsup: Use new libosmogsm struct osmo_gsup_pdp_info fields
by pespin 24 Jan '24

24 Jan '24
Attention is currently required from: fixeria, lynxis lazus, neels. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/35632?usp=email ) Change subject: gsup: Use new libosmogsm struct osmo_gsup_pdp_info fields ...................................................................... Patch Set 1: (1 comment) Patchset: PS1: ping -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/35632?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0d03d368e73ab62ec631420769f6af91f2ff9987 Gerrit-Change-Number: 35632 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Wed, 24 Jan 2024 15:17:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[L] Change in osmo-ttcn3-hacks[master]: DIAMETER: Split Gy and Gx messages to their own TS files
by pespin 24 Jan '24

24 Jan '24
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35671?usp=email ) Change subject: DIAMETER: Split Gy and Gx messages to their own TS files ...................................................................... DIAMETER: Split Gy and Gx messages to their own TS files Those interfaces reuse messages from other Diameter RFCs, but changing the contents of the messages, eg some Mandatory fields like Service-Context-Id which are mandatory in RFC5006, doesn't even appear in Gx CCR in TS 29.212. Keeping them well separated helps in avoiding confusion on users fo the messages. Change-Id: Ibe0d5f263813d5083e020c942283f214983162b4 --- M ggsn_tests/GGSN_Tests.ttcn M ggsn_tests/gen_links.sh M library/DIAMETER_Templates.ttcn A library/DIAMETER_ts29_212_Templates.ttcn A library/DIAMETER_ts32_299_Templates.ttcn M pgw/PGW_Tests.ttcn M pgw/gen_links.sh 7 files changed, 262 insertions(+), 187 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/35671/1 diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn index a1aab9b..d7de443 100644 --- a/ggsn_tests/GGSN_Tests.ttcn +++ b/ggsn_tests/GGSN_Tests.ttcn @@ -34,7 +34,9 @@ import from DIAMETER_Types all; import from DIAMETER_Templates all; + import from DIAMETER_ts29_212_Templates all; import from DIAMETER_ts29_272_Templates all; + import from DIAMETER_ts32_299_Templates all; import from DIAMETER_Emulation all; const integer GTP0_PORT := 3386; diff --git a/ggsn_tests/gen_links.sh b/ggsn_tests/gen_links.sh index b51620e..4981e64 100755 --- a/ggsn_tests/gen_links.sh +++ b/ggsn_tests/gen_links.sh @@ -61,7 +61,7 @@ FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn PAP_Types.ttcn " FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Templates.ttcn Osmocom_Gb_Types.ttcn " FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn " -FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_272_Templates.ttcn " +FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_212_Templates.ttcn DIAMETER_ts29_272_Templates.ttcn DIAMETER_ts32_299_Templates.ttcn " FILES+="Osmocom_VTY_Functions.ttcn " gen_links $DIR $FILES diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn index 05b63d2..82a433c 100644 --- a/library/DIAMETER_Templates.ttcn +++ b/library/DIAMETER_Templates.ttcn @@ -102,10 +102,9 @@ DIAMETER_ERROR_EAP_CODE_UNKNOWN (5048) }; -/* Gy : 3GPP TS 32.299 7.1.6, RFC4006 3.1 */ +/* RFC4006 3.1 */ const uint32_t c_DIAMETER_CREDIT_CONTROL_AID := 4; -const uint32_t c_DIAMETER_3GPP_Gx_AID := 16777238; const uint32_t c_DIAMETER_3GPP_S7_AID := 16777308; const octetstring c_def_sess_id := char2oct("ttcn3.session"); @@ -1215,142 +1214,6 @@ return diam_pdu; } -/* RFC 4006 3.1. Credit-Control-Request (CCR) Command */ -template (present) PDU_DIAMETER -tr_DIA_Gx_CCR(template (present) DCC_NONE_CC_Request_Type req_type := INITIAL_REQUEST) -:= tr_DIAMETER(flags:='11000000'B, cmd_code:=Credit_Control, - avps := superset( - tr_AVP_SessionId, - tr_AVP_OriginHost, - tr_AVP_OriginRealm, - tr_AVP_DestinationRealm, - tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)), - tr_AVP_CcReqType(req_type), - tr_AVP_CcReqNum(?) - )); -template (present) PDU_DIAMETER -tr_DIA_Gy_CCR(template (present) DCC_NONE_CC_Request_Type req_type := INITIAL_REQUEST) -:= tr_DIAMETER(flags:='11000000'B, cmd_code:=Credit_Control, - avps := superset( - tr_AVP_SessionId, - tr_AVP_OriginHost, - tr_AVP_OriginRealm, - tr_AVP_DestinationRealm, - tr_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), - tr_AVP_CcReqType(req_type), - tr_AVP_CcReqNum(?) - )); - - - -/* RFC 4006 3.2. Credit-Control-Answer (CCA) Command */ -template (value) PDU_DIAMETER -ts_DIA_Gx_CCA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, - template (value) octetstring sess_id, - template (value) DCC_NONE_CC_Request_Type req_type, - template (value) AVP_Unsigned32 req_num) -:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, - app_id:=int2oct(c_DIAMETER_3GPP_Gx_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_OriginHost("pcrf.localdomain"), - ts_AVP_OriginRealm("localdomain"), - ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)), - ts_AVP_CcReqType(req_type), - ts_AVP_CcReqNum(req_num), - ts_AVP_PCC_3GPP_QoS_Information({ - ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL(33554432), - ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL(52428800) - }), - ts_AVP_PCC_3GPP_Default_EPS_Bearer_QoS({ - ts_AVP_PCC_3GPP_QoS_Class_Identifier(9), - ts_AVP_PCC_3GPP_AllocRetenPrio(2) - }) - // supported features - // origin - }); -template (value) PDU_DIAMETER -ts_DIA_Gy_CCA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, - template (value) octetstring sess_id, - template (value) DCC_NONE_CC_Request_Type req_type, - template (value) AVP_Unsigned32 req_num) -:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, - app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_OriginHost("ocs.localdomain"), - ts_AVP_OriginRealm("localdomain"), - ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), - ts_AVP_CcReqType(req_type), - ts_AVP_CcReqNum(req_num)//, - // qos - // default eps bearer qos - // supported features - // origin - }); -/* Same as ts_DIA_Gy_CCA, but with extra AVP to grant access for limited amount of seconds */ -template (value) PDU_DIAMETER -ts_DIA_Gy_CCA_ValidityTime(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, - template (value) octetstring sess_id, - template (value) DCC_NONE_CC_Request_Type req_type, - template (value) AVP_Unsigned32 req_num, - uint32_t validity_time) -:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, - app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_OriginHost("ocs.localdomain"), - ts_AVP_OriginRealm("localdomain"), - ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), - ts_AVP_CcReqType(req_type), - ts_AVP_CcReqNum(req_num), - ts_AVP_Multiple_Services_Credit_Control({ - ts_AVP_Validity_Time(validity_time), - ts_AVP_Granted_Service_Unit({ - //ts_AVP_CC_Time(validity_time*2), - ts_AVP_CC_Total_Octets(1000) - }) - }) - //, - // qos - // default eps bearer qos - // supported features - // origin - }); -/* Same as ts_DIA_Gy_CCA_ValidityTime, but with extra AVP to grant access for limited amount of octets */ -template (value) PDU_DIAMETER -ts_DIA_Gy_CCA_ValidityTimeVolumeThreshold(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, - template (value) octetstring sess_id, - template (value) DCC_NONE_CC_Request_Type req_type, - template (value) AVP_Unsigned32 req_num, - uint32_t validity_time, uint32_t volume_threhsold) -:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, - app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_OriginHost("ocs.localdomain"), - ts_AVP_OriginRealm("localdomain"), - ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), - ts_AVP_CcReqType(req_type), - ts_AVP_CcReqNum(req_num), - ts_AVP_Multiple_Services_Credit_Control({ - ts_AVP_Validity_Time(validity_time), - ts_AVP_Granted_Service_Unit({ - ts_AVP_CC_Total_Octets(volume_threhsold*100) - }), - ts_AVP_3GPP_VolumeQuotaThreshold(volume_threhsold) - }) - //, - // qos - // default eps bearer qos - // supported features - // origin - }); - /* RFC 6733, section 5.5.1 "Device-Watchdog-Request" */ template (value) PDU_DIAMETER ts_DIA_DWR(template (value) OCTET4 state_id := '00000000'O, @@ -1477,53 +1340,6 @@ return valueof(avp); } -function f_validate_gy_cc_report(PDU_DIAMETER rx_dia, template (present) DCA_3GPP_Reporting_Reason repreason_exp := ?, - template (present) integer cc_time_exp := ?, - template (present) integer cc_in_oct_exp := ?, - template (present) integer cc_out_oct_exp := ?) -{ - var AVP multi_services_cc, used_service_unit; - var AVP_Grouped multi_services_cc_data, used_service_unit_data; - var template (omit) AVP repreason_tpl; - var AVP repreason, cc_time, cc_in_oct, cc_out_oct; - - multi_services_cc := f_DIAMETER_get_avp_or_fail(rx_dia, c_AVP_Code_DCC_NONE_Multiple_Services_Credit_Control); - multi_services_cc_data := valueof(multi_services_cc.avp_data.avp_DCC_NONE_Multiple_Services_Credit_Control); - - used_service_unit := f_AVP_Grouped_get_avp_or_fail(multi_services_cc_data, c_AVP_Code_DCC_NONE_Used_Service_Unit); - used_service_unit_data := valueof(used_service_unit.avp_data.avp_DCC_NONE_Used_Service_Unit); - - /* Reporting-Reason can be either inside Multiple-Services-Credit-Control or inside Used-Service-Unit */ - repreason_tpl := f_AVP_Grouped_get_avp(multi_services_cc_data, c_AVP_Code_DCA_3GPP_Reporting_Reason); - if (istemplatekind(repreason_tpl, "omit")) { - repreason := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCA_3GPP_Reporting_Reason); - } else { - repreason := valueof(repreason_tpl); - } - if (not match(repreason.avp_data.avp_DCA_3GPP_Reporting_Reason, repreason_exp)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - log2str("3GPP-Reporting-Reason mismatch ", repreason, " vs exp ", repreason_exp)); - } - - cc_time := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Time); - if (not match(oct2int(cc_time.avp_data.avp_DCC_NONE_CC_Time), cc_time_exp)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - log2str("3GPP-CC-Time mismatch ", cc_time, " vs exp ", cc_time_exp)); - } - - cc_in_oct := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Input_Octets); - if (not match(oct2int(cc_in_oct.avp_data.avp_DCC_NONE_CC_Input_Octets), cc_in_oct_exp)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - log2str("3GPP-CC-Input-Octets mismatch ", cc_in_oct, " vs exp ", cc_in_oct_exp)); - } - - cc_out_oct := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Output_Octets); - if (not match(oct2int(cc_out_oct.avp_data.avp_DCC_NONE_CC_Output_Octets), cc_out_oct_exp)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - log2str("3GPP-CC-Output-Octets mismatch ", cc_out_oct, " vs exp ", cc_out_oct_exp)); - } -} - /***************************** * Cx, Dx, 3GPP TS 29.229 diff --git a/library/DIAMETER_ts29_212_Templates.ttcn b/library/DIAMETER_ts29_212_Templates.ttcn new file mode 100644 index 0000000..209ac10 --- /dev/null +++ b/library/DIAMETER_ts29_212_Templates.ttcn @@ -0,0 +1,69 @@ +module DIAMETER_ts29_212_Templates { + +/* (C) 2023 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Templates for AVPs and messages for TS 29.212 + */ + +import from General_Types all; +import from DIAMETER_Types all; +import from DIAMETER_Templates all; +import from Osmocom_Types all; +import from Misc_Helpers all; + +/******************************* + * S6a 3GPP TS 29.212 section 7 + *******************************/ + +/* 3GPP TS 29.212 Section 5.1 */ +const uint32_t c_DIAMETER_3GPP_Gx_AID := 16777238; + +/* 3GPP TS 29.212 5.6.2 Credit-Control-Request (CC-Request, CCR) Command */ +template (present) PDU_DIAMETER +tr_DIA_Gx_CCR(template (present) DCC_NONE_CC_Request_Type req_type := INITIAL_REQUEST) +:= tr_DIAMETER(flags:='11000000'B, cmd_code:=Credit_Control, + avps := superset( + tr_AVP_SessionId, + tr_AVP_OriginHost, + tr_AVP_OriginRealm, + tr_AVP_DestinationRealm, + tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)), + tr_AVP_CcReqType(req_type), + tr_AVP_CcReqNum(?) + )); + +/* 3GPP TS 29.212 5.6.3 Credit-Control-Answer (CC-Answer, CCA) Command */ +template (value) PDU_DIAMETER +ts_DIA_Gx_CCA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, + template (value) octetstring sess_id, + template (value) DCC_NONE_CC_Request_Type req_type, + template (value) AVP_Unsigned32 req_num) +:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, + app_id:=int2oct(c_DIAMETER_3GPP_Gx_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_OriginHost("pcrf.localdomain"), + ts_AVP_OriginRealm("localdomain"), + ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)), + ts_AVP_CcReqType(req_type), + ts_AVP_CcReqNum(req_num), + ts_AVP_PCC_3GPP_QoS_Information({ + ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL(33554432), + ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL(52428800) + }), + ts_AVP_PCC_3GPP_Default_EPS_Bearer_QoS({ + ts_AVP_PCC_3GPP_QoS_Class_Identifier(9), + ts_AVP_PCC_3GPP_AllocRetenPrio(2) + }) + // supported features + // origin + }); + +} /* module */ diff --git a/library/DIAMETER_ts32_299_Templates.ttcn b/library/DIAMETER_ts32_299_Templates.ttcn new file mode 100644 index 0000000..af8f514 --- /dev/null +++ b/library/DIAMETER_ts32_299_Templates.ttcn @@ -0,0 +1,169 @@ +module DIAMETER_ts32_299_Templates { + +/* (C) 2023 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Templates for AVPs and messages for TS 32.299 + */ + +import from General_Types all; +import from DIAMETER_Types all; +import from DIAMETER_Templates all; +import from Osmocom_Types all; +import from Misc_Helpers all; + +/******************************* + * S6a 3GPP TS 32.299 section 7 + *******************************/ + +/* Gy AID : 3GPP TS 32.299 7.1.6, RFC4006 3.1: c_DIAMETER_CREDIT_CONTROL_AID */ + +/* 3GPP TS 32.299 6.4.2 Credit-Control-Request */ +template (present) PDU_DIAMETER +tr_DIA_Gy_CCR(template (present) DCC_NONE_CC_Request_Type req_type := INITIAL_REQUEST) +:= tr_DIAMETER(flags:='11000000'B, cmd_code:=Credit_Control, + avps := superset( + tr_AVP_SessionId, + tr_AVP_OriginHost, + tr_AVP_OriginRealm, + tr_AVP_DestinationRealm, + tr_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), + tr_AVP_CcReqType(req_type), + tr_AVP_CcReqNum(?) + )); + +/* 3GPP TS 32.299 6.4.3 Credit-Control-Answer message */ +template (value) PDU_DIAMETER +ts_DIA_Gy_CCA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, + template (value) octetstring sess_id, + template (value) DCC_NONE_CC_Request_Type req_type, + template (value) AVP_Unsigned32 req_num) +:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, + app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_OriginHost("ocs.localdomain"), + ts_AVP_OriginRealm("localdomain"), + ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), + ts_AVP_CcReqType(req_type), + ts_AVP_CcReqNum(req_num)//, + // qos + // default eps bearer qos + // supported features + // origin + }); +/* Same as ts_DIA_Gy_CCA, but with extra AVP to grant access for limited amount of seconds */ +template (value) PDU_DIAMETER +ts_DIA_Gy_CCA_ValidityTime(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, + template (value) octetstring sess_id, + template (value) DCC_NONE_CC_Request_Type req_type, + template (value) AVP_Unsigned32 req_num, + uint32_t validity_time) +:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, + app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_OriginHost("ocs.localdomain"), + ts_AVP_OriginRealm("localdomain"), + ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), + ts_AVP_CcReqType(req_type), + ts_AVP_CcReqNum(req_num), + ts_AVP_Multiple_Services_Credit_Control({ + ts_AVP_Validity_Time(validity_time), + ts_AVP_Granted_Service_Unit({ + //ts_AVP_CC_Time(validity_time*2), + ts_AVP_CC_Total_Octets(1000) + }) + }) + //, + // qos + // default eps bearer qos + // supported features + // origin + }); +/* Same as ts_DIA_Gy_CCA_ValidityTime, but with extra AVP to grant access for limited amount of octets */ +template (value) PDU_DIAMETER +ts_DIA_Gy_CCA_ValidityTimeVolumeThreshold(template (value) UINT32 hbh_id, template (value) UINT32 ete_id, + template (value) octetstring sess_id, + template (value) DCC_NONE_CC_Request_Type req_type, + template (value) AVP_Unsigned32 req_num, + uint32_t validity_time, uint32_t volume_threhsold) +:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control, + app_id:=int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_OriginHost("ocs.localdomain"), + ts_AVP_OriginRealm("localdomain"), + ts_AVP_AuthAppId(int2oct(c_DIAMETER_CREDIT_CONTROL_AID, 4)), + ts_AVP_CcReqType(req_type), + ts_AVP_CcReqNum(req_num), + ts_AVP_Multiple_Services_Credit_Control({ + ts_AVP_Validity_Time(validity_time), + ts_AVP_Granted_Service_Unit({ + ts_AVP_CC_Total_Octets(volume_threhsold*100) + }), + ts_AVP_3GPP_VolumeQuotaThreshold(volume_threhsold) + }) + //, + // qos + // default eps bearer qos + // supported features + // origin + }); + +function f_validate_gy_cc_report(PDU_DIAMETER rx_dia, template (present) DCA_3GPP_Reporting_Reason repreason_exp := ?, + template (present) integer cc_time_exp := ?, + template (present) integer cc_in_oct_exp := ?, + template (present) integer cc_out_oct_exp := ?) +{ + var AVP multi_services_cc, used_service_unit; + var AVP_Grouped multi_services_cc_data, used_service_unit_data; + var template (omit) AVP repreason_tpl; + var AVP repreason, cc_time, cc_in_oct, cc_out_oct; + + multi_services_cc := f_DIAMETER_get_avp_or_fail(rx_dia, c_AVP_Code_DCC_NONE_Multiple_Services_Credit_Control); + multi_services_cc_data := valueof(multi_services_cc.avp_data.avp_DCC_NONE_Multiple_Services_Credit_Control); + + used_service_unit := f_AVP_Grouped_get_avp_or_fail(multi_services_cc_data, c_AVP_Code_DCC_NONE_Used_Service_Unit); + used_service_unit_data := valueof(used_service_unit.avp_data.avp_DCC_NONE_Used_Service_Unit); + + /* Reporting-Reason can be either inside Multiple-Services-Credit-Control or inside Used-Service-Unit */ + repreason_tpl := f_AVP_Grouped_get_avp(multi_services_cc_data, c_AVP_Code_DCA_3GPP_Reporting_Reason); + if (istemplatekind(repreason_tpl, "omit")) { + repreason := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCA_3GPP_Reporting_Reason); + } else { + repreason := valueof(repreason_tpl); + } + if (not match(repreason.avp_data.avp_DCA_3GPP_Reporting_Reason, repreason_exp)) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("3GPP-Reporting-Reason mismatch ", repreason, " vs exp ", repreason_exp)); + } + + cc_time := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Time); + if (not match(oct2int(cc_time.avp_data.avp_DCC_NONE_CC_Time), cc_time_exp)) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("3GPP-CC-Time mismatch ", cc_time, " vs exp ", cc_time_exp)); + } + + cc_in_oct := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Input_Octets); + if (not match(oct2int(cc_in_oct.avp_data.avp_DCC_NONE_CC_Input_Octets), cc_in_oct_exp)) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("3GPP-CC-Input-Octets mismatch ", cc_in_oct, " vs exp ", cc_in_oct_exp)); + } + + cc_out_oct := f_AVP_Grouped_get_avp_or_fail(used_service_unit_data, c_AVP_Code_DCC_NONE_CC_Output_Octets); + if (not match(oct2int(cc_out_oct.avp_data.avp_DCC_NONE_CC_Output_Octets), cc_out_oct_exp)) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("3GPP-CC-Output-Octets mismatch ", cc_out_oct, " vs exp ", cc_out_oct_exp)); + } +} + +} /* module */ diff --git a/pgw/PGW_Tests.ttcn b/pgw/PGW_Tests.ttcn index fa7be47..81fea12 100644 --- a/pgw/PGW_Tests.ttcn +++ b/pgw/PGW_Tests.ttcn @@ -18,7 +18,9 @@ import from DIAMETER_Types all; import from DIAMETER_Templates all; +import from DIAMETER_ts29_212_Templates all; import from DIAMETER_ts29_272_Templates all; +import from DIAMETER_ts32_299_Templates all; import from DIAMETER_Emulation all; diff --git a/pgw/gen_links.sh b/pgw/gen_links.sh index 0bf264a..9aebfc2 100755 --- a/pgw/gen_links.sh +++ b/pgw/gen_links.sh @@ -64,7 +64,7 @@ FILES+="GTPv2_CodecPort.ttcn GTPv2_CodecPort_CtrlFunctDef.cc GTPv2_CodecPort_CtrlFunct.ttcn GTPv2_Emulation.ttcn " FILES+="DNS_Helpers.ttcn " FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn " -FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_272_Templates.ttcn " +FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_212_Templates.ttcn DIAMETER_ts29_272_Templates.ttcn DIAMETER_ts32_299_Templates.ttcn " gen_links $DIR $FILES ignore_pp_results -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35671?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibe0d5f263813d5083e020c942283f214983162b4 Gerrit-Change-Number: 35671 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: GSUP: Fix build of IEs in f_gen_tr_ies(), add PdpInfo(Compl) IEs to it
by pespin 24 Jan '24

24 Jan '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35653?usp=email ) Change subject: GSUP: Fix build of IEs in f_gen_tr_ies(), add PdpInfo(Compl) IEs to it ...................................................................... GSUP: Fix build of IEs in f_gen_tr_ies(), add PdpInfo(Compl) IEs to it The previous conditions "isvalue()" were wrong. Passing an array of templates to isvalue() returns false, which is unexpected here. Change-Id: Iaad47b1ec7e2a7477fa554df9caeb866ffa594eb --- M epdg/EPDG_Tests.ttcn M library/GSUP_Templates.ttcn 2 files changed, 117 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index 554dd07..0e9cbed 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -506,8 +506,15 @@ GSUP.send(ts_GSUP_EPDGTunnel_REQ(g_pars.imsi)); f_GTP2C_CreateSession_success(); /* Expect a positive response back to the translator; */ + var template (present) GSUP_IEs pdp_info := { + tr_GSUP_IE_PDP_CONTEXT_ID(?), + tr_GSUP_IE_PDP_ADDRESS(?), + tr_GSUP_IE_APN(?), + tr_GSUP_IE_PDP_QOS(?), + tr_GSUP_IE_Charging_Characteristics(?) + }; alt { - [] GSUP.receive(tr_GSUP_EPDGTunnel_RES(g_pars.imsi)); + [] GSUP.receive(tr_GSUP_EPDGTunnel_RES(g_pars.imsi, pdp_info)); [] GSUP.receive(GSUP_PDU:?) -> value rx_gsup { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Unexpected GSUP msg rx: ", rx_gsup)); } diff --git a/library/GSUP_Templates.ttcn b/library/GSUP_Templates.ttcn index ea2b489..68e4fd1 100644 --- a/library/GSUP_Templates.ttcn +++ b/library/GSUP_Templates.ttcn @@ -190,6 +190,34 @@ } } } +template (value) GSUP_IE ts_GSUP_IE_PdpInfo_ie(template (value) GSUP_IEs pdp_info) := { + tag := OSMO_GSUP_PDP_INFO_IE, + len := 0, /* overwritten */ + val := { + pdp_info := pdp_info + } +} + +template (present) GSUP_IE tr_GSUP_IE_PdpInfo(template (present) OCT1 ctx_id, + template (present) octetstring apn, + template (present) GSUP_PDP_Address pdp_address) := { + tag := OSMO_GSUP_PDP_INFO_IE, + len := ?, + val := { + pdp_info := { + tr_GSUP_IE_PDP_CONTEXT_ID(ctx_id), + tr_GSUP_IE_PDP_ADDRESS(pdp_address), + tr_GSUP_IE_APN(apn) + } + } +} +template (present) GSUP_IE tr_GSUP_IE_PdpInfo_ie(template (present) GSUP_IEs pdp_info := ?) := { + tag := OSMO_GSUP_PDP_INFO_IE, + len := ?, + val := { + pdp_info := pdp_info + } +} template (value) GSUP_IE ts_GSUP_IE_PDP_CONTEXT_ID(template (value) OCT1 ctx_id) := { tag := OSMO_GSUP_PDP_CONTEXT_ID_IE, @@ -207,7 +235,6 @@ } } - template (value) GSUP_IE ts_GSUP_IE_PDP_ADDRESS(template (value) GSUP_PDP_Address pdp_address) := { tag := OSMO_GSUP_PDP_ADDRESS_IE, len := 0, @@ -216,6 +243,14 @@ } } +template (present) GSUP_IE tr_GSUP_IE_PDP_ADDRESS(template (present) GSUP_PDP_Address pdp_address := ?) := { + tag := OSMO_GSUP_PDP_ADDRESS_IE, + len := ?, + val := { + pdp_address := pdp_address + } +} + template (value) GSUP_IE ts_GSUP_IE_PDP_QOS(template (value) octetstring pdp_qos) := { tag := OSMO_GSUP_PDP_QOS_IE, len := 0, @@ -224,6 +259,29 @@ } } +template (present) GSUP_IE tr_GSUP_IE_PDP_QOS(template (present) octetstring pdp_qos := ?) := { + tag := OSMO_GSUP_PDP_QOS_IE, + len := ?, + val := { + pdp_qos := pdp_qos + } +} + +template (value) GSUP_IE ts_GSUP_IE_Charging_Characteristics(template (value) octetstring charg_char) := { + tag := OSMO_GSUP_CHARG_CHAR_IE, + len := 0, + val := { + charg_char := charg_char + } +} + +template (present) GSUP_IE tr_GSUP_IE_Charging_Characteristics(template (present) octetstring charg_char := ?) := { + tag := OSMO_GSUP_CHARG_CHAR_IE, + len := ?, + val := { + charg_char := charg_char + } +} template GSUP_PDU tr_GSUP(template GSUP_MessageType msgt := ?, template GSUP_IEs ies := *) := { msg_type := msgt, @@ -428,19 +486,25 @@ template (value) GSUP_PDU ts_GSUP_EPDGTunnel_RES(hexstring imsi, + template (value) GSUP_IEs pdp_info, GSUP_Message_Class message_class := OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG, octetstring destination_name := ''O) := ts_GSUP(OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT, { valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_PdpInfoCompl), + valueof(ts_GSUP_IE_PdpInfo_ie(pdp_info)), valueof(ts_GSUP_IE_Message_Class(message_class)), valueof(ts_GSUP_IE_Destination_Name(destination_name)) }); template (present) GSUP_PDU tr_GSUP_EPDGTunnel_RES(template (present) hexstring imsi, + template (present) GSUP_IEs pdp_info, template (present) GSUP_Message_Class message_class := OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG, template octetstring destination_name := omit) := tr_GSUP(OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT, f_gen_tr_ies(imsi, + pdp_info_compl := true, + pdp_info := pdp_info, message_class := message_class, destination_name := destination_name)); @@ -1077,6 +1141,7 @@ } private function f_gen_ts_ies(hexstring imsi, + template (omit) boolean pdp_info_compl := omit, template (omit) GSUP_Message_Class message_class := omit, template (omit) hexstring imei := omit, template (omit) GSUP_CnDomain dom := omit, @@ -1091,6 +1156,10 @@ ies := ies & { valueof(ts_GSUP_IE_CnDomain(dom)) }; } + if (isvalue(pdp_info_compl) and valueof(pdp_info_compl)) { + ies := ies & { valueof(ts_GSUP_IE_PdpInfoCompl) }; + } + if (isvalue(imei)) { ies := ies & { valueof(ts_GSUP_IE_IMEI(valueof(imei))) }; } @@ -1111,6 +1180,8 @@ } private function f_gen_tr_ies(template hexstring imsi, + template boolean pdp_info_compl := omit, + template GSUP_IEs pdp_info := omit, template GSUP_Message_Class message_class := omit, template integer cause := omit, template hexstring msisdn := omit, @@ -1123,27 +1194,37 @@ }; var integer idx := 1; - if (isvalue(cause)) { - ies[idx] := tr_GSUP_IE_Cause(cause); - idx := idx + 1; - } - - if (isvalue(msisdn)) { + if (not istemplatekind(msisdn, "omit")) { ies[idx] := tr_GSUP_IE_MSISDN(msisdn); idx := idx + 1; } - if (isvalue(imei_result)) { + if (not istemplatekind(cause, "omit")) { + ies[idx] := tr_GSUP_IE_Cause(cause); + idx := idx + 1; + } + + if (not istemplatekind(pdp_info_compl, "omit")) { + ies[idx] := tr_GSUP_IE_PdpInfoCompl; + idx := idx + 1; + } + + if (not istemplatekind(pdp_info, "omit")) { + ies[idx] := tr_GSUP_IE_PdpInfo_ie(pdp_info); + idx := idx + 1; + } + + if (not istemplatekind(imei_result, "omit")) { ies[idx] := tr_GSUP_IE_IMEI_Result(imei_result); idx := idx + 1; } - if (isvalue(message_class)) { + if (not istemplatekind(message_class, "omit")) { ies[idx] := tr_GSUP_IE_Message_Class(message_class); idx := idx + 1; } - if (isvalue(source_name)) { + if (not istemplatekind(source_name, "omit")) { ies[idx] := tr_GSUP_IE_Source_Name(source_name); idx := idx + 1; } @@ -1151,8 +1232,12 @@ ies[idx] := *; idx := idx + 1; - if (isvalue(destination_name)) { - ies[idx] := tr_GSUP_IE_Destination_Name(destination_name); + if (not istemplatekind(destination_name, "omit")) { + if (istemplatekind(destination_name, "*")) { + ies[idx] := *; + } else { + ies[idx] := tr_GSUP_IE_Destination_Name(destination_name); + } idx := idx + 1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35653?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaad47b1ec7e2a7477fa554df9caeb866ffa594eb Gerrit-Change-Number: 35653 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: GSUP: Fix build of IEs in f_gen_tr_ies(), add PdpInfo(Compl) IEs to it
by fixeria 24 Jan '24

24 Jan '24
Attention is currently required from: pespin. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35653?usp=email ) Change subject: GSUP: Fix build of IEs in f_gen_tr_ies(), add PdpInfo(Compl) IEs to it ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35653?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaad47b1ec7e2a7477fa554df9caeb866ffa594eb Gerrit-Change-Number: 35653 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 24 Jan 2024 14:07:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: GSUP: Fix missing and wrongly sorted IEs in ts_GSUP_IE_PdpInfo
by fixeria 24 Jan '24

24 Jan '24
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35652?usp=email ) Change subject: GSUP: Fix missing and wrongly sorted IEs in ts_GSUP_IE_PdpInfo ...................................................................... Patch Set 2: (1 comment) Patchset: PS2: > I don't think so. Proof of it is that TTCN3, erlang and libosmocore all used different orders. […] Not sure about Erlang projects, but the current TTCN-3 implementation definitely requires specific ordering of TLVs; otherwise the templates won't match. We could change definition of `GSUP_IEs` as follows: ``` -type record of GSUP_IE GSUP_IEs; +type set of GSUP_IE GSUP_IEs; ``` This would simplify things a bit. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35652?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I65e586187d7230f122644c101f8467becae6e204 Gerrit-Change-Number: 35652 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 24 Jan 2024 14:01:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge <laforge(a)osmocom.org> Comment-In-Reply-To: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmocom-bb[master]: mobile: VTY: use 'enum gsm48_bcap_transp' from libosmogsm
by fixeria 24 Jan '24

24 Jan '24
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/35661?usp=email ) Change subject: mobile: VTY: use 'enum gsm48_bcap_transp' from libosmogsm ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/35661?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Iebc0692f17a5a5d04e57d74a720db52775937bdd Gerrit-Change-Number: 35661 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 24 Jan 2024 13:55:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmocom-bb[master]: mobile: VTY: make soft-UART parameters configurable
by fixeria 24 Jan '24

24 Jan '24
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/35662?usp=email ) Change subject: mobile: VTY: make soft-UART parameters configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/35662?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I48bb58aaf1101fbc0e58db3fb1100927e506ede2 Gerrit-Change-Number: 35662 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Wed, 24 Jan 2024 13:55:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • ...
  • 156
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.