fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27510 )
Change subject: fixup: gsm48_make_ho_cmd(): optionally add Synchronization Indication IE
......................................................................
fixup: gsm48_make_ho_cmd(): optionally add Synchronization Indication IE
This was overlooked during the code review. GCC does not complain
because internally both 'enum handover_scope' and 'bool' are
interpreted as 'int'. Found this while running my WIP testcase
TC_srvcc_eutran_to_geran_a5_3. This change makes it pass.
Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Fixes: I4e5b1163a71443d706f14ce4bfd5c2294c320432
Related: SYS#5838
---
M src/osmo-bsc/handover_fsm.c
1 file changed, 1 insertion(+), 1 deletion(-)
Approvals:
pespin: Looks good to me, but someone else must approve
fixeria: Looks good to me, approved; Verified
Jenkins Builder: Verified
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 5ae3787..488f370 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -1216,7 +1216,7 @@
struct handover *ho = &conn->ho;
struct msgb *rr_ho_cmd = gsm48_make_ho_cmd(ho->new_lchan,
- ho->async, ho->scope,
+ ho->scope, ho->async,
ho->new_lchan->ms_power,
ho->ho_ref);
if (!rr_ho_cmd) {
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27510
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Gerrit-Change-Number: 27510
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27511 )
Change subject: BSC_Tests: add new testcase TC_srvcc_eutran_to_geran_a5_3
......................................................................
BSC_Tests: add new testcase TC_srvcc_eutran_to_geran_a5_3
According to 3GPP TS 44.018, section 9.1.15, the RR Handover Command
message may optionally contain the Cipher Mode Setting IE (10.5.2.9).
Section 9.1.15.10 states that this IE may be omitted in case of the
intra-RAT GERAN-to-GERAN handover, however in case of the inter-RAT
handover (e.g. EUTRAN-to-GERAN), this IE *shall* always be included.
In f_ho_into_this_bsc(), check presence and correctness of the Cipher
Mode Setting IE. Add TC_srvcc_eutran_to_geran_a5_3, which is similar
to TC_srvcc_eutran_to_geran, but enables ciphering on the target channel.
This patch makes all SRVCC relates test cases fail, until [1] is merged.
Change-Id: Ic3dfc4e31a7ed078cdfdaced9986ee9551c5aa7c
Related: [1] osmo-bsc.git I1d270e82d0a9b12897fc94dae4e8999aa132a22f
Related: SYS#5838
---
M bsc/BSC_Tests.ttcn
M bsc/expected-results.xml
2 files changed, 37 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/27511/1
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 8f70452..bc791ad 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -6115,6 +6115,27 @@
log("handoverCommand: verified TSC = ", got_tsc);
}
+ /* Check the Cipher Mode Setting IE (shall be present during inter-RAT handover) */
+ if (ispresent(ho_command.msgs.rrm.handoverCommand.cipherModeSetting)) {
+ var CipherModeSetting_TV cms := ho_command.msgs.rrm.handoverCommand.cipherModeSetting;
+ var template (present) CipherModeSetting_TV tr_cms := {
+ sC := '0'B, /* no ciphering by default */
+ algorithmIdentifier := '000'B,
+ elementIdentifier := ?
+ };
+ if (ispresent(g_pars.encr) and g_pars.encr.enc_alg_expect != '00'O) { /* A5/N */
+ var integer a5_n := oct2int(g_pars.encr.enc_alg_expect) - 1;
+ tr_cms.algorithmIdentifier := int2bit(a5_n, 3);
+ tr_cms.sC := '1'B;
+ }
+ if (not match(cms, tr_cms)) {
+ setverdict(fail, "RR Handover Command: unexpected Cipher Mode Setting IE: ",
+ cms, ", expected: ", tr_cms);
+ }
+ } else {
+ setverdict(fail, "RR Handover Command: Cipher Mode Setting IE is not present");
+ }
+
/* Now the MSC forwards the RR Handover Command to the other BSC, which
* tells the MS to handover to the new lchan. Here comes the new MS on
* the new lchan with a Handover RACH: */
@@ -6260,6 +6281,20 @@
f_shutdown_helper();
}
+/* Same as TC_srvcc_eutran_to_geran, but enables ciphering on the target channel. */
+testcase TC_srvcc_eutran_to_geran_a5_3() runs on test_CT {
+ var TestHdlrParams pars := f_gen_test_hdlr_pars();
+ pars.encr := valueof(t_EncrParams('08'O, '03'O, f_rnd_octstring(8))); /* A5/3 */
+ pars.last_used_eutran_plmn := '323454'O;
+ pars.exp_fast_return := true;
+ f_tc_ho_into_this_bsc_main(pars);
+
+ f_ctrs_bsc_and_bts_add(0, "srvcc:attempted");
+ f_ctrs_bsc_and_bts_add(0, "srvcc:completed");
+ f_ctrs_bsc_and_bts_verify();
+ f_shutdown_helper();
+}
+
/* Same as TC_srvcc_eutran_to_geran, but test explicitly forbiding fast return
on the BTS. As a result, RR Release shouldn't contain the EUTRAN neighbor
list when the channel is released. */
@@ -11367,6 +11402,7 @@
execute( TC_ho_into_this_bsc_tla_v6() );
}
execute( TC_srvcc_eutran_to_geran() );
+ execute( TC_srvcc_eutran_to_geran_a5_3() );
execute( TC_srvcc_eutran_to_geran_src_sai() );
execute( TC_srvcc_eutran_to_geran_ho_out() );
execute( TC_srvcc_eutran_to_geran_forbid_fast_return() );
diff --git a/bsc/expected-results.xml b/bsc/expected-results.xml
index f9f022e..572c657 100644
--- a/bsc/expected-results.xml
+++ b/bsc/expected-results.xml
@@ -157,6 +157,7 @@
<testcase classname='BSC_Tests' name='TC_ho_into_this_bsc_a5_4' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_ho_into_this_bsc_tla_v6' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_srvcc_eutran_to_geran' time='MASKED'/>
+ <testcase classname='BSC_Tests' name='TC_srvcc_eutran_to_geran_a5_3' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_srvcc_eutran_to_geran_ho_out' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_srvcc_eutran_to_geran_forbid_fast_return' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_srvcc_eutran_to_geran_ho_out_forbid_fast_return' time='MASKED'/>
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27511
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: Ic3dfc4e31a7ed078cdfdaced9986ee9551c5aa7c
Gerrit-Change-Number: 27511
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange
fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/27510 )
Change subject: fixup: gsm48_make_ho_cmd(): optionally add Synchronization Indication IE
......................................................................
fixup: gsm48_make_ho_cmd(): optionally add Synchronization Indication IE
This was overlooked during the code review. GCC does not complain
because internally both 'enum handover_scope' and 'bool' are
interpreted as 'int'. Found this while running my WIP testcase
TC_srvcc_eutran_to_geran_a5_3. This change makes it pass.
Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Fixes: I4e5b1163a71443d706f14ce4bfd5c2294c320432
Related: SYS#5838
---
M src/osmo-bsc/handover_fsm.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/10/27510/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27510
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Gerrit-Change-Number: 27510
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-MessageType: newpatchset
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27510 )
Change subject: fixup: gsm48_make_ho_cmd(): optionally add Cipher Mode Setting IE
......................................................................
fixup: gsm48_make_ho_cmd(): optionally add Cipher Mode Setting IE
This was overlooked during the code review. GCC does not complain
because internally both 'enum handover_scope' and 'bool' are
interpreted as 'int'. Found this while running my WIP testcase
TC_srvcc_eutran_to_geran_a5_3. This change makes it pass.
Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Fixes: I1d270e82d0a9b12897fc94dae4e8999aa132a22f
---
M src/osmo-bsc/handover_fsm.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/10/27510/1
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index 5ae3787..488f370 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -1216,7 +1216,7 @@
struct handover *ho = &conn->ho;
struct msgb *rr_ho_cmd = gsm48_make_ho_cmd(ho->new_lchan,
- ho->async, ho->scope,
+ ho->scope, ho->async,
ho->new_lchan->ms_power,
ho->ho_ref);
if (!rr_ho_cmd) {
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27510
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I807fd4a0e700e54c67ca3547d9c0c1b442dd1c54
Gerrit-Change-Number: 27510
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange