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 -----
  • November
  • 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

September 2023

  • 1 participants
  • 1947 discussions
[M] Change in osmo-ttcn3-hacks[master]: hlr: implement str2apn() to convert an apn as string into octetstring
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34288?usp=email ) Change subject: hlr: implement str2apn() to convert an apn as string into octetstring ...................................................................... hlr: implement str2apn() to convert an apn as string into octetstring APN are encoded by splitting each domain part by the dot and prefix each element by a 8bit length. E.g. internet -> \x08internet and internet.foo -> \x08internet\x03foo Change-Id: I607969cd58110d4d5ff1b828e64cf2b5031868ac --- M hlr/HLR_Tests.ttcn 1 file changed, 72 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 959c680..e10aae4 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -1917,6 +1917,65 @@ } } + +/* strchr similar to C's/posix strchr but returns the position of the first matching. + * if the char c isn't found it returns -1. + */ +function strchr(in charstring s, in charstring c) return integer { + for (var integer i := 0; i < lengthof(s); i := i+1) { + if (s[i] == c) { + return i; + } + } + return -1; +} + +/* str2apn returns octetstring + * internet -> '08'O & char2oct("internet") + * internet.foo -> '08'O & char2oct("internet") & '03'O & char2oct("foo") + * internet.-> '08'O & char2oct("internet") + */ +function str2apn(in charstring apn) return octetstring { + var octetstring result := ''O; + var charstring remain := apn; + var integer pos := strchr(remain, "."); + + while (pos != -1) { + /* ends on a dot. e.g. "internet.", we must ignore the ending dot and this is then the last element */ + if (pos == 0) { + /* it's not allowed to start with a dot. */ + return ''O; + } + + if (pos + 1 == lengthof(remain)) { + /* remove the dot */ + remain := substr(remain, 0, pos) + break; + } + + result := result & int2oct(pos, 1) & char2oct(substr(remain, 0, pos)); + remain := substr(remain, pos + 1, lengthof(remain) - pos - 1); + pos := strchr(remain, "."); + } + /* last element */ + var integer len := lengthof(remain); + result := result & int2oct(len, 1) & char2oct(remain); + return result; +} + +private function test_assert(boolean term) { + if (term == false) { + setverdict(fail, "Values mismatch"); + } +} + +private function test_str2apn() { + test_assert(str2apn("internet") == '08'O & char2oct("internet")); + test_assert(str2apn("internet.") == '08'O & char2oct("internet")); + test_assert(str2apn("internet.foo") == '08'O & char2oct("internet") & '03'O & char2oct("foo")); + test_assert(str2apn(".internet.foo") == ''O); +} + /* TODO: * UL with ISD error * UL with ISD timeout -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34288?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: I607969cd58110d4d5ff1b828e64cf2b5031868ac Gerrit-Change-Number: 34288 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)gnumonks.org> 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]: HLR_Tests: add testcase for multiple APNs in subscriber data
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32510?usp=email ) Change subject: HLR_Tests: add testcase for multiple APNs in subscriber data ...................................................................... HLR_Tests: add testcase for multiple APNs in subscriber data With a new HLR version there are multiple APN possible in the Subscriber Data (PDP Info). Related: SYS#6391 Change-Id: I8d0c08272bc239370e800d6014ab9c68087b8989 --- M hlr/HLR_Tests.ttcn M hlr/expected-results.xml M library/GSUP_Types.ttcn 3 files changed, 159 insertions(+), 21 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index e10aae4..e99011d 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -535,12 +535,15 @@ return ret; } +/* return_isd -> return the Insert Subscriber Data instead of the Update Location Result */ function f_perform_UL(hexstring imsi, template hexstring msisdn, template (omit) integer exp_err_cause := omit, GSUP_CnDomain dom := OSMO_GSUP_CN_DOMAIN_PS, template (omit) octetstring source_name := omit) -runs on HLR_ConnHdlr return GSUP_PDU { - var GSUP_PDU ret; +runs on HLR_ConnHdlr return GSUP_PDUs { + var GSUP_PDU pdu; + var GSUP_PDU isd; + var GSUP_PDUs ret; timer T := 3.0; var boolean exp_fail := false; var boolean isd_done := false; @@ -551,31 +554,31 @@ GSUP.send(valueof(ts_GSUP_UL_REQ(imsi, dom, source_name := source_name))); T.start; alt { - [exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, exp_err_cause, destination_name := source_name)) -> value ret { + [exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, exp_err_cause, destination_name := source_name)) -> value pdu { setverdict(pass); } - [exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, ?, destination_name := source_name)) -> value ret { + [exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, ?, destination_name := source_name)) -> value pdu { setverdict(fail, "Unexpected UL ERROR Cause"); mtc.stop; } - [exp_fail] GSUP.receive(tr_GSUP_UL_RES(imsi, destination_name := source_name)) -> value ret { + [exp_fail] GSUP.receive(tr_GSUP_UL_RES(imsi, destination_name := source_name)) -> value pdu { setverdict(fail, "Unexpected UL.res for unknown IMSI"); mtc.stop; } - [exp_fail] GSUP.receive(tr_GSUP_ISD_REQ(imsi, destination_name := source_name)) -> value ret { + [exp_fail] GSUP.receive(tr_GSUP_ISD_REQ(imsi, destination_name := source_name)) -> value pdu { setverdict(fail, "Unexpected ISD.req in error case"); mtc.stop; } - [not exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, ?, destination_name := source_name)) -> value ret { + [not exp_fail] GSUP.receive(tr_GSUP_UL_ERR(imsi, ?, destination_name := source_name)) -> value pdu { setverdict(fail, "Unexpected UL ERROR"); mtc.stop; } - [not exp_fail and not isd_done] GSUP.receive(tr_GSUP_ISD_REQ(imsi, msisdn, destination_name := source_name)) -> value ret { + [not exp_fail and not isd_done] GSUP.receive(tr_GSUP_ISD_REQ(imsi, msisdn, destination_name := source_name)) -> value isd { GSUP.send(ts_GSUP_ISD_RES(imsi, source_name := source_name)); isd_done := true; repeat; } - [not exp_fail and isd_done] GSUP.receive(tr_GSUP_UL_RES(imsi, destination_name := source_name)) -> value ret { + [not exp_fail and isd_done] GSUP.receive(tr_GSUP_UL_RES(imsi, destination_name := source_name)) -> value pdu { setverdict(pass); } [] GSUP.receive { repeat; } @@ -584,6 +587,12 @@ mtc.stop; } } + + ret := { pdu }; + if (isd_done) { + ret := ret & { isd }; + } + return ret; } @@ -990,13 +999,14 @@ /* test UL for a number of different subscriber cases (algo, 2g/3g, ...) */ private function f_TC_gsup_ul() runs on HLR_ConnHdlr { - var GSUP_PDU res; + var GSUP_PDUs res; res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn, source_name := g_pars.source_name); setverdict(pass); } + testcase TC_gsup_ul() runs on test_CT { var HlrSubscriberList sl; - var GSUP_PDU res; + var GSUP_PDUs res; f_init(false); sl := f_gen_subs(); @@ -1015,6 +1025,72 @@ setverdict(pass); } +private function f_TC_gsup_ul_subscriber_data() runs on HLR_ConnHdlr { + var GSUP_PDUs pdus; + var GSUP_PDU isd; + log("GSUP ul subscriber_data", isd); + pdus := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn, source_name := g_pars.source_name); + isd := pdus[1]; + + template GSUP_IEs tr_pdp_info_internet := { + tr_GSUP_IE_PDP_CONTEXT_ID('01'O), + tr_GSUP_IE_APN(str2apn("internet")) + } + template GSUP_IEs tr_pdp_info_wildcard := { + tr_GSUP_IE_PDP_CONTEXT_ID('02'O), + tr_GSUP_IE_APN(str2apn("*")) + } + + /* Search for PDP info 'internet', '*' */ + var boolean found := false; + var GSUP_IeValue ievalue; + var GSUP_IEs pdp_info; + found := f_gsup_find_nested_ie_multiple(isd.ies, OSMO_GSUP_PDP_INFO_IE, 0, ievalue); + if (not found) { + setverdict(fail, "Multiple APNs: Coulnd't find first PDP Info IE in: ", isd); + return; + } + pdp_info := ievalue.pdp_info; + if (not match(pdp_info, tr_pdp_info_internet)) { + setverdict(fail, "Multiple APNs: first PDP Info doesn't match: ", pdp_info, "on Template: ", tr_pdp_info_internet); + return; + } + + /* wildcard '*' */ + found := f_gsup_find_nested_ie_multiple(isd.ies, OSMO_GSUP_PDP_INFO_IE, 1, ievalue); + if (not found) { + setverdict(fail, "Multiple APNs: Coulnd't find second PDP Info IE in: ", isd); + return; + } + pdp_info := ievalue.pdp_info; + if (not match(pdp_info, tr_pdp_info_wildcard)) { + setverdict(fail, "Multiple APNs: second PDP Info doesn't match: ", pdp_info, "on Template: ", tr_pdp_info_wildcard); + return; + } + + setverdict(pass); +} + +testcase TC_gsup_ul_subscriber_data() runs on test_CT { + /* Do a GSUP Update Location Request to get a Insert Subscriber Data Request (ISD). + * Check for multiple APN in the ISD: + * SGSN -> HLR: Update Location Request + * SGSN <- HLR: Insert Subscriber Data Request (Check the TLV) + * SGSN -> HLR: Insert Subscriber Data Result + * SGSN <- HLR: Update Location Result + */ + var HlrSubscriberList sl; + + f_init(false); + f_vty_config2(VTY, {"hlr", "ps"} , "no pdp-profiles default"); + f_vty_config2(VTY, {"hlr", "ps", "pdp-profiles default", "profile 1"}, "apn internet"); + f_vty_config2(VTY, {"hlr", "ps", "pdp-profiles default", "profile 2"}, "apn *"); + sl := f_gen_subs(); + f_start_handler_per_sub(refers(f_TC_gsup_ul_subscriber_data), sl); + + setverdict(pass); +} + /* Test only the VTY commands */ testcase TC_vty() runs on test_CT { var HlrSubscriber sub; @@ -1046,7 +1122,7 @@ /* VTY changes to MSISDN should result in ISD to current VLR */ private function f_TC_vty_msisdn_isd() runs on HLR_ConnHdlr { var hexstring new_msisdn; - var GSUP_PDU res; + var GSUP_PDUs res; timer T := 5.0; /* Create Subscriber */ @@ -1091,9 +1167,10 @@ /* Test PURGE MS for CS services */ private function f_TC_gsup_purge_cs() runs on HLR_ConnHdlr { - var GSUP_PDU res; + var GSUP_PDUs res; + var GSUP_PDU pdu; res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); - res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); + pdu := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); } testcase TC_gsup_purge_cs() runs on test_CT { var HlrSubscriberList sl; @@ -1108,9 +1185,10 @@ /* Test PURGE MS for PS services */ private function f_TC_gsup_purge_ps() runs on HLR_ConnHdlr { - var GSUP_PDU res; + var GSUP_PDUs res; + var GSUP_PDU pdu; res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); - res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); + pdu := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); } testcase TC_gsup_purge_ps() runs on test_CT { var HlrSubscriberList sl; @@ -1540,7 +1618,7 @@ /* Test create-subscriber-on-demand during Check IMEI (OsmoMSC would be set to "check-imei-rqd early") */ private function f_TC_subscr_create_on_demand_check_imei_early() runs on HLR_ConnHdlr { - var GSUP_PDU res; /* save various return values to prevent ttcn3 compiler warnings */ + var GSUP_PDUs res; /* save various return values to prevent ttcn3 compiler warnings */ var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*"; /* Random MSISDN and CS+PS NAM (LU must pass) */ @@ -1613,7 +1691,7 @@ /* Test create-subscriber-on-demand during LU (Location Update) */ private function f_TC_subscr_create_on_demand_ul() runs on HLR_ConnHdlr { - var GSUP_PDU res; + var GSUP_PDUs res; var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*"; /* Random MSISDN and CS+PS NAM (LU must pass) */ @@ -1680,13 +1758,14 @@ /* Test create-subscriber-on-demand during SAI (SendAuthInfo) */ private function f_TC_subscr_create_on_demand_sai() runs on HLR_ConnHdlr { - var GSUP_PDU res; + var GSUP_PDUs res; + var GSUP_PDU pdu; var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*"; /* HLR creates the subscriber on demand. Then the IMSI is known, but there is no auth data, so the HLR returns * the "slightly inaccurate cause 'IMSI Unknown' via GSUP". The MS is able to do a LU afterwards. */ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs+ps"); - res := f_perform_SAI(g_pars.sub.imsi, 2 /* IMSI Unknown */ ); + pdu := f_perform_SAI(g_pars.sub.imsi, 2 /* IMSI Unknown */ ); /* Verify that it was created before the LU */ f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern); @@ -2000,6 +2079,7 @@ execute( TC_gsup_sai_err_unknown_imsi() ); execute( TC_gsup_ul() ); execute( TC_gsup_ul_via_proxy() ); + execute( TC_gsup_ul_subscriber_data() ); execute( TC_vty() ); execute( TC_vty_msisdn_isd() ); execute( TC_gsup_purge_cs() ); diff --git a/hlr/expected-results.xml b/hlr/expected-results.xml index 391dcef..2175a81 100644 --- a/hlr/expected-results.xml +++ b/hlr/expected-results.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<testsuite name='Titan' tests='36' failures='5' errors='0' skipped='0' inconc='0' time='MASKED'> +<testsuite name='Titan' tests='37' failures='5' errors='0' skipped='0' inconc='0' time='MASKED'> <testcase classname='HLR_Tests' name='TC_gsup_sai_err_invalid_imsi' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_gsup_sai' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_gsup_sai_num_auth_vectors' time='MASKED'/> @@ -9,6 +9,7 @@ <testcase classname='HLR_Tests' name='TC_gsup_sai_err_unknown_imsi' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_gsup_ul' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_gsup_ul_via_proxy' time='MASKED'/> + <testcase classname='HLR_Tests' name='TC_gsup_ul_subscriber_data' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_vty' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_vty_msisdn_isd' time='MASKED'/> <testcase classname='HLR_Tests' name='TC_gsup_purge_cs' time='MASKED'/> diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index 41181e8..818f830 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -216,6 +216,7 @@ pdp_qos, tag = OSMO_GSUP_PDP_QOS_IE; pdp_type, tag = OSMO_GSUP_PDP_TYPE_IE; charg_char, tag = OSMO_GSUP_CHARG_CHAR_IE; + pdp_ctx_id, tag = OSMO_GSUP_PDP_CONTEXT_ID_IE; session_state, tag = OSMO_GSUP_SESSION_STATE_IE; session_id, tag = OSMO_GSUP_SESSION_ID_IE; ss_info, tag = OSMO_GSUP_SS_INFO_IE; @@ -272,6 +273,7 @@ GSUP_CnDomain cn_domain, /* PDP context + nested IEs */ GSUP_IEs pdp_info, + OCT1 pdp_ctx_id, octetstring apn, octetstring pdp_qos, OCT2 pdp_type, @@ -314,6 +316,8 @@ GSUP_IEs ies }; +type record of GSUP_PDU GSUP_PDUs; + external function enc_GSUP_PDU(in GSUP_PDU msg) return octetstring with { extension "prototype(convert) encode(RAW)" }; @@ -406,6 +410,23 @@ } } +template (value) GSUP_IE ts_GSUP_IE_PDP_CONTEXT_ID(OCT1 ctx_id) := { + tag := OSMO_GSUP_PDP_CONTEXT_ID_IE, + len := 0, + val := { + pdp_ctx_id := ctx_id + } +} + +template GSUP_IE tr_GSUP_IE_PDP_CONTEXT_ID(template OCT1 ctx_id) := { + tag := OSMO_GSUP_PDP_CONTEXT_ID_IE, + len := ?, + val := { + pdp_ctx_id := ctx_id + } +} + + template (value) GSUP_IE ts_GSUP_IE_PDP_TYPE(OCT2 pdp_type) := { tag := OSMO_GSUP_PDP_TYPE_IE, len := 0, @@ -764,6 +785,14 @@ } } +template GSUP_IE tr_GSUP_IE_APN(template octetstring apn) := { + tag := OSMO_GSUP_ACCESS_POINT_NAME_IE, + len := ?, + val := { + apn := apn + } +} + template GSUP_IE ts_GSUP_IE_CnDomain(template GSUP_CnDomain dom) := { tag := OSMO_GSUP_CN_DOMAIN_IE, len := 0, /* overwritten */ @@ -1689,6 +1718,21 @@ } ); +function f_gsup_find_nested_ie_multiple(GSUP_IEs ies, GSUP_IEI iei, integer nth, out GSUP_IeValue ret) return boolean { + var integer current := 0; + for (var integer i := 0; i < sizeof(ies); i := i+1) { + if (ies[i].tag == iei) { + if (current == nth) { + ret := ies[i].val; + return true; + } else { + current := current + 1; + } + } + } + return false; +} + function f_gsup_find_nested_ie(GSUP_IEs ies, GSUP_IEI iei, out GSUP_IeValue ret) return boolean { for (var integer i := 0; i < sizeof(ies); i := i+1) { if (ies[i].tag == iei) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32510?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: I8d0c08272bc239370e800d6014ab9c68087b8989 Gerrit-Change-Number: 32510 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last"
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email ) Change subject: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" ...................................................................... Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" This reverts commit 46f199271ef77a5143d95894801eb0c86c51a565. Crashing the IUT is no longer the case, so return these back. Change-Id: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 --- M bts/BTS_Tests.ttcn M bts/expected-results.xml 2 files changed, 17 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 3fe6120..df18403 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -9335,6 +9335,8 @@ execute( TC_dyn_osmo_pdch_tchf_act() ); execute( TC_dyn_osmo_pdch_tchh_act() ); execute( TC_dyn_osmo_pdch_sdcch8_act() ); + execute( TC_dyn_osmo_pdch_tchh_race_act() ); + execute( TC_dyn_osmo_pdch_sdcch8_race_act() ); execute( TC_dyn_ipa_pdch_tchf_act() ); execute( TC_dyn_ipa_pdch_tchf_act_pdch_act_nack() ); @@ -9396,11 +9398,6 @@ execute( TC_acch_overpower_always_on_facch() ); execute( TC_acch_overpower_always_on_sacch() ); execute( TC_acch_overpower_limit() ); - - /* BEWARE: these test cases can potentially break the IUT or cause - * weird/unexpected behavior. Ensure that they are executed last. */ - execute( TC_dyn_osmo_pdch_tchh_race_act() ); - execute( TC_dyn_osmo_pdch_sdcch8_race_act() ); } diff --git a/bts/expected-results.xml b/bts/expected-results.xml index 61c0b60..a856fca 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -137,6 +137,8 @@ <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchf_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_act' time='MASKED'/> + <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_race_act' time='MASKED'/> + <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_race_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_ipa_pdch_tchf_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_ipa_pdch_tchf_act_pdch_act_nack' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_rll_est_ind' time='MASKED'/> @@ -192,8 +194,6 @@ <testcase classname='BTS_Tests' name='TC_acch_overpower_always_on_facch' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_acch_overpower_always_on_sacch' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_acch_overpower_limit' time='MASKED'/> - <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_race_act' time='MASKED'/> - <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_race_act' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_cbch_load_idle_no_cbch' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_sms_cb_cmd_sdcch4_1block' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_sms_cb_cmd_sdcch4_2block' time='MASKED'/> -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?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: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 Gerrit-Change-Number: 34314 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last"
by laforge 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email ) Change subject: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?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: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 Gerrit-Change-Number: 34314 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 18:43:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmocore[master]: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email ) Change subject: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES ...................................................................... gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES Change-Id: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 --- M include/osmocom/gsm/protocol/gsm_12_21.h M src/gsm/abis_nm.c M src/gsm/libosmogsm.map 3 files changed, 203 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h index 9cc0aa8..1339362 100644 --- a/include/osmocom/gsm/protocol/gsm_12_21.h +++ b/include/osmocom/gsm/protocol/gsm_12_21.h @@ -775,6 +775,98 @@ NM_IPAC_EIE_BTS_ID = 0x25, }; +/*! ip.access support flags for NM_IPAC_EIE_FREQ_BANDS */ +#define NM_IPAC_F_FREQ_BAND_PGSM (1 << 0) +#define NM_IPAC_F_FREQ_BAND_EGSM (1 << 1) +#define NM_IPAC_F_FREQ_BAND_RGSM (1 << 2) +#define NM_IPAC_F_FREQ_BAND_DCS (1 << 3) +#define NM_IPAC_F_FREQ_BAND_PCS (1 << 4) +#define NM_IPAC_F_FREQ_BAND_850 (1 << 5) +#define NM_IPAC_F_FREQ_BAND_480 (1 << 6) +#define NM_IPAC_F_FREQ_BAND_450 (1 << 7) + +/*! ip.access support flags for NM_IPAC_EIE_CIPH_ALGOS */ +#define NM_IPAC_F_CIPH_ALGO_A51 (1 << 0) +#define NM_IPAC_F_CIPH_ALGO_A52 (1 << 1) +#define NM_IPAC_F_CIPH_ALGO_A53 (1 << 2) +#define NM_IPAC_F_CIPH_ALGO_A54 (1 << 3) +#define NM_IPAC_F_CIPH_ALGO_A55 (1 << 4) +#define NM_IPAC_F_CIPH_ALGO_A56 (1 << 5) +#define NM_IPAC_F_CIPH_ALGO_A57 (1 << 6) +#define NM_IPAC_F_CIPH_ALGO_A58 (1 << 7) + +/*! ip.access support flags for NM_IPAC_EIE_CHAN_TYPES (1st octet) */ +#define NM_IPAC_F_CHANT_TCHF (1 << 0) +#define NM_IPAC_F_CHANT_TCHH (1 << 1) +#define NM_IPAC_F_CHANT_SDCCH8 (1 << 2) +#define NM_IPAC_F_CHANT_BCCH (1 << 3) +#define NM_IPAC_F_CHANT_BCCH_SDCCH4 (1 << 4) +#define NM_IPAC_F_CHANT_BCH (1 << 5) +#define NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH (1 << 6) +#define NM_IPAC_F_CHANT_SDCCH8_CBCH (1 << 7) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_TYPES (2nd octet) */ +#define NM_IPAC_F_CHANT_PCCHF (1 << 8) +#define NM_IPAC_F_CHANT_TCHF_PDCHF (1 << 9) +#define NM_IPAC_F_CHANT_TCHH_PDCHH (1 << 10) +#define NM_IPAC_F_CHANT_TCHF_TCHH (1 << 11) + +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (speech codecs) */ +#define NM_IPAC_F_CHANM_SPEECH_FS (1 << 0) +#define NM_IPAC_F_CHANM_SPEECH_EFS (1 << 1) +#define NM_IPAC_F_CHANM_SPEECH_AFS (1 << 2) +#define NM_IPAC_F_CHANM_SPEECH_HS (1 << 3) +#define NM_IPAC_F_CHANM_SPEECH_AHS (1 << 4) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (CSD non-transparent) */ +#define NM_IPAC_F_CHANM_CSD_NT_4k8 (1 << 8) +#define NM_IPAC_F_CHANM_CSD_NT_9k6 (1 << 9) +#define NM_IPAC_F_CHANM_CSD_NT_14k4 (1 << 10) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (CSD transparent) */ +#define NM_IPAC_F_CHANM_CSD_T_1200_75 (1 << 16) +#define NM_IPAC_F_CHANM_CSD_T_600 (1 << 17) +#define NM_IPAC_F_CHANM_CSD_T_1k2 (1 << 18) +#define NM_IPAC_F_CHANM_CSD_T_2k4 (1 << 19) +#define NM_IPAC_F_CHANM_CSD_T_4k8 (1 << 20) +#define NM_IPAC_F_CHANM_CSD_T_9k6 (1 << 21) +#define NM_IPAC_F_CHANM_CSD_T_14k4 (1 << 22) + +/*! ip.access support flags for NM_IPAC_EIE_GPRS_CODING (GPRS) */ +#define NM_IPAC_F_GPRS_CODING_CS1 (1 << 0) +#define NM_IPAC_F_GPRS_CODING_CS2 (1 << 1) +#define NM_IPAC_F_GPRS_CODING_CS3 (1 << 2) +#define NM_IPAC_F_GPRS_CODING_CS4 (1 << 3) +/*! ip.access support flags for NM_IPAC_EIE_GPRS_CODING (EGPRS) */ +#define NM_IPAC_F_GPRS_CODING_MCS1 (1 << 7) +#define NM_IPAC_F_GPRS_CODING_MCS2 (1 << 8) +#define NM_IPAC_F_GPRS_CODING_MCS3 (1 << 9) +#define NM_IPAC_F_GPRS_CODING_MCS4 (1 << 10) +#define NM_IPAC_F_GPRS_CODING_MCS5 (1 << 11) +#define NM_IPAC_F_GPRS_CODING_MCS6 (1 << 12) +#define NM_IPAC_F_GPRS_CODING_MCS7 (1 << 13) +#define NM_IPAC_F_GPRS_CODING_MCS8 (1 << 14) +#define NM_IPAC_F_GPRS_CODING_MCS9 (1 << 15) + +/*! ip.access support flags for NM_IPAC_EIE_RTP_FEATURES */ +#define NM_IPAC_F_RTP_FEAT_COMPR_CONTROL (1 << 0) /* RTP Compression Control */ +#define NM_IPAC_F_RTP_FEAT_IR_8k (1 << 1) /* IR 8 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_16k (1 << 2) /* IR 16 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_32k (1 << 3) /* IR 32 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_64k (1 << 4) /* IR 64 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_MULTIPLEX_RTP (1 << 6) /* RTP Multiplexing */ +#define NM_IPAC_F_RTP_FEAT_MULTIPLEX_SRTP (1 << 7) /* SRTP Multiplexing */ + +/*! ip.access support flags for NM_IPAC_EIE_RSL_FEATURES */ +#define NM_IPAC_F_RSL_FEAT_PHYSICAL_CONTEXT (1 << 0) +#define NM_IPAC_F_RSL_FEAT_DYN_PDCH_ACT (1 << 1) +#define NM_IPAC_F_RSL_FEAT_RTP_PT2 (1 << 2) + +extern const struct value_string abis_nm_ipacc_freq_band_desc[]; +extern const struct value_string abis_nm_ipacc_ciph_algo_desc[]; +extern const struct value_string abis_nm_ipacc_chant_desc[]; +extern const struct value_string abis_nm_ipacc_chanm_desc[]; +extern const struct value_string abis_nm_ipacc_gprs_coding_desc[]; +extern const struct value_string abis_nm_ipacc_rtp_feat_desc[]; +extern const struct value_string abis_nm_ipacc_rsl_feat_desc[]; + /*! ip.access NWL BCCH information type */ enum ipac_bcch_info_type { IPAC_BINF_RXLEV = (1 << 8), diff --git a/src/gsm/abis_nm.c b/src/gsm/abis_nm.c index 38cd194..8059fc8 100644 --- a/src/gsm/abis_nm.c +++ b/src/gsm/abis_nm.c @@ -707,6 +707,100 @@ /* FIXME: bounds check */ }; +const struct value_string abis_nm_ipacc_freq_band_desc[] = { + { NM_IPAC_F_FREQ_BAND_PGSM, "P-GSM" }, + { NM_IPAC_F_FREQ_BAND_EGSM, "E-GSM" }, + { NM_IPAC_F_FREQ_BAND_RGSM, "R-GSM" }, + { NM_IPAC_F_FREQ_BAND_DCS, "DCS-1800" }, + { NM_IPAC_F_FREQ_BAND_PCS, "PCS-1900" }, + { NM_IPAC_F_FREQ_BAND_850, "850" }, + { NM_IPAC_F_FREQ_BAND_480, "480" }, + { NM_IPAC_F_FREQ_BAND_450, "450" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_ciph_algo_desc[] = { + { NM_IPAC_F_CIPH_ALGO_A51, "A5/1" }, + { NM_IPAC_F_CIPH_ALGO_A52, "A5/2" }, + { NM_IPAC_F_CIPH_ALGO_A53, "A5/3" }, + { NM_IPAC_F_CIPH_ALGO_A54, "A5/4" }, + { NM_IPAC_F_CIPH_ALGO_A55, "A5/5" }, + { NM_IPAC_F_CIPH_ALGO_A56, "A5/6" }, + { NM_IPAC_F_CIPH_ALGO_A57, "A5/7" }, + { NM_IPAC_F_CIPH_ALGO_A58, "A5/8" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_chant_desc[] = { + { NM_IPAC_F_CHANT_TCHF, "TCH/F" }, + { NM_IPAC_F_CHANT_TCHH, "TCH/H" }, + { NM_IPAC_F_CHANT_SDCCH8, "SDCCH/8" }, + { NM_IPAC_F_CHANT_BCCH, "BCCH" }, + { NM_IPAC_F_CHANT_BCCH_SDCCH4, "BCCH+SDCCH/4" }, + { NM_IPAC_F_CHANT_BCH, "BCH" }, + { NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH, "BCCH+SDCCH/4+CBCH" }, + { NM_IPAC_F_CHANT_SDCCH8_CBCH, "SDCCH/8+CBCH" }, + { NM_IPAC_F_CHANT_PCCHF, "PDCH/F" }, + { NM_IPAC_F_CHANT_TCHF_PDCHF, "TCH/F or PDCH/F" }, + { NM_IPAC_F_CHANT_TCHH_PDCHH, "TCH/H+PDCH/H" }, + { NM_IPAC_F_CHANT_TCHF_TCHH, "TCH/F or TCH/H" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_chanm_desc[] = { + { NM_IPAC_F_CHANM_SPEECH_FS, "FR1/FS" }, + { NM_IPAC_F_CHANM_SPEECH_EFS, "FR2/EFS" }, + { NM_IPAC_F_CHANM_SPEECH_AFS, "FR3/AFS" }, + { NM_IPAC_F_CHANM_SPEECH_HS, "HR1/HS" }, + { NM_IPAC_F_CHANM_SPEECH_AHS, "HR3/AHS" }, + { NM_IPAC_F_CHANM_CSD_NT_4k8, "CSD NT 4.8 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_NT_9k6, "CSD NT 9.6 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_NT_14k4, "CSD NT 14.4 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_1200_75, "CSD T 1200/75 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_600, "CSD T 600 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_1k2, "CSD T 1k2 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_2k4, "CSD T 2.4 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_4k8, "CSD T 4.8 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_9k6, "CSD T 9.6 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_14k4, "CSD T 14.4 kbit/s" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_gprs_coding_desc[] = { + { NM_IPAC_F_GPRS_CODING_CS1, "CS1" }, + { NM_IPAC_F_GPRS_CODING_CS2, "CS2" }, + { NM_IPAC_F_GPRS_CODING_CS3, "CS3" }, + { NM_IPAC_F_GPRS_CODING_CS4, "CS4" }, + { NM_IPAC_F_GPRS_CODING_MCS1, "MCS1" }, + { NM_IPAC_F_GPRS_CODING_MCS2, "MCS2" }, + { NM_IPAC_F_GPRS_CODING_MCS3, "MCS3" }, + { NM_IPAC_F_GPRS_CODING_MCS4, "MCS4" }, + { NM_IPAC_F_GPRS_CODING_MCS5, "MCS5" }, + { NM_IPAC_F_GPRS_CODING_MCS6, "MCS6" }, + { NM_IPAC_F_GPRS_CODING_MCS7, "MCS7" }, + { NM_IPAC_F_GPRS_CODING_MCS8, "MCS8" }, + { NM_IPAC_F_GPRS_CODING_MCS9, "MCS9" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_rtp_feat_desc[] = { + { NM_IPAC_F_RTP_FEAT_COMPR_CONTROL, "Compression Control" }, + { NM_IPAC_F_RTP_FEAT_IR_8k, "Intermediate Rate 8 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_16k, "Intermediate Rate 16 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_32k, "Intermediate Rate 32 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_64k, "Intermediate Rate 64 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_MULTIPLEX_RTP, "RTP Multiplex" }, + { NM_IPAC_F_RTP_FEAT_MULTIPLEX_SRTP, "SRTP Multiplex" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_rsl_feat_desc[] = { + { NM_IPAC_F_RSL_FEAT_PHYSICAL_CONTEXT, "Physical Context" }, + { NM_IPAC_F_RSL_FEAT_DYN_PDCH_ACT, "Dynamic PDCH Activation" }, + { NM_IPAC_F_RSL_FEAT_RTP_PT2, "RTP Payload Type 2" }, + { 0, NULL } +}; + /*! Pack 3GPP TS 12.21 ยง 8.8.2 Failure Event Report into msgb */ struct msgb *abis_nm_fail_evt_rep(enum abis_nm_event_type t, enum abis_nm_severity s, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 49db282..056d320 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -40,6 +40,14 @@ abis_nm_get_sw_conf; abis_nm_get_sw_desc_len; +abis_nm_ipacc_freq_band_desc; +abis_nm_ipacc_ciph_algo_desc; +abis_nm_ipacc_chant_desc; +abis_nm_ipacc_chanm_desc; +abis_nm_ipacc_gprs_coding_desc; +abis_nm_ipacc_rtp_feat_desc; +abis_nm_ipacc_rsl_feat_desc; + osmo_sitype_strs; osmo_c4; osmo_get_rand_id; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/34315?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: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 Gerrit-Change-Number: 34315 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in libosmocore[master]: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES
by laforge 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email ) Change subject: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/34315?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: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 Gerrit-Change-Number: 34315 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 18:43:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmocom-bb[master]: trxcon: handle_tbf_cfg_req(): properly set TSC for lchans
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34318?usp=email ) Change subject: trxcon: handle_tbf_cfg_req(): properly set TSC for lchans ...................................................................... trxcon: handle_tbf_cfg_req(): properly set TSC for lchans Before this patch all Uplink PDCH bursts were using TSC=0. Change-Id: I58b2da0d285b9a3e444374a30276fbaab3b784ac Related: OS#5500 --- M src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h M src/host/trxcon/src/trxcon_fsm.c 2 files changed, 24 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h index 3d85d59..ff54e78 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h @@ -34,6 +34,7 @@ struct { uint16_t band_arfcn; uint8_t tx_power; + uint8_t tsc; /* only valid for DCCH/PDCH */ int8_t ta; } l1p; diff --git a/src/host/trxcon/src/trxcon_fsm.c b/src/host/trxcon/src/trxcon_fsm.c index 29caeef..f6c9a05 100644 --- a/src/host/trxcon/src/trxcon_fsm.c +++ b/src/host/trxcon/src/trxcon_fsm.c @@ -369,6 +369,9 @@ return; } + /* Store TSC for subsequent PDCH timeslot activation(s) */ + trxcon->l1p.tsc = req->tsc; + if (config == GSM_PCHAN_PDCH) osmo_fsm_inst_state_chg(fi, TRXCON_ST_PACKET_DATA, 0, 0); else @@ -522,15 +525,20 @@ struct l1sched_state *sched = trxcon->sched; if (active) { + struct l1sched_lchan_state *lchan; + struct l1sched_ts *ts; + if (sched->ts[tn] != NULL) /* already enabled */ return; if (l1sched_configure_ts(sched, tn, GSM_PCHAN_PDCH) != 0) return; OSMO_ASSERT(sched->ts[tn] != NULL); + ts = sched->ts[tn]; - l1sched_activate_lchan(sched->ts[tn], L1SCHED_PDTCH); - l1sched_activate_lchan(sched->ts[tn], L1SCHED_PTCCH); - /* FIXME: set TSC for both lchans */ + l1sched_activate_lchan(ts, L1SCHED_PDTCH); + l1sched_activate_lchan(ts, L1SCHED_PTCCH); + llist_for_each_entry(lchan, &ts->lchans, list) + lchan->tsc = trxcon->l1p.tsc; } else { l1sched_del_ts(sched, tn); } -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34318?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: I58b2da0d285b9a3e444374a30276fbaab3b784ac Gerrit-Change-Number: 34318 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmocom-bb[master]: trxcon: handle_tbf_cfg_req(): properly set TSC for lchans
by laforge 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34318?usp=email ) Change subject: trxcon: handle_tbf_cfg_req(): properly set TSC for lchans ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34318?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: I58b2da0d285b9a3e444374a30276fbaab3b784ac Gerrit-Change-Number: 34318 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 18:42:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmocom-bb[master]: virt_phy: fix wrong pointer being checked
by laforge 05 Sep '23

05 Sep '23
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34319?usp=email ) Change subject: virt_phy: fix wrong pointer being checked ...................................................................... virt_phy: fix wrong pointer being checked Change-Id: I2f845b0335d2d9818aa15c30f8621acd120e82d4 Fixes: fa833e40 "l1gprs/l1ctl: Decouple RTS.ind from DL_BLOCK.ind" Fixes: CID#323121 --- M src/host/virt_phy/src/virt_prim_pdch.c 1 file changed, 12 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/host/virt_phy/src/virt_prim_pdch.c b/src/host/virt_phy/src/virt_prim_pdch.c index 6825ced..3fa7977 100644 --- a/src/host/virt_phy/src/virt_prim_pdch.c +++ b/src/host/virt_phy/src/virt_prim_pdch.c @@ -103,6 +103,6 @@ * resulting value is first fn of the next block. */ const uint32_t rts_fn = GSM_TDMA_FN_SUM(fn, (fn % 13 == 8) ? 5 : 4); nmsg = l1gprs_handle_rts_ind(ms->gprs, rts_fn, tn, usf); - if (msg != NULL) + if (nmsg != NULL) l1ctl_sap_tx_to_l23_inst(ms, nmsg); } -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34319?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: I2f845b0335d2d9818aa15c30f8621acd120e82d4 Gerrit-Change-Number: 34319 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmocom-bb[master]: virt_phy: fix wrong pointer being checked
by laforge 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria, pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34319?usp=email ) Change subject: virt_phy: fix wrong pointer being checked ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/34319?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: I2f845b0335d2d9818aa15c30f8621acd120e82d4 Gerrit-Change-Number: 34319 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 18:41:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • ...
  • 195
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.