[PATCH] osmocom-bb[fixeria/trx]: trxcon/scheduler: introduce a new CBTX lchan flag
Review at https://gerrit.osmocom.org/7205 trxcon/scheduler: introduce a new CBTX lchan flag This new flag is intended to indicate that continuous burst transmission is assumed on particular logical channel. In other words, if a logical channel has this flag, but there is nothing to transmit in a TX buffer, then either a dummy LAPDm frame or a silence frame shall be sent. Change-Id: I25fcf9eeb787ffe5378d92532439e67d7d42fa65 --- M src/host/trxcon/sched_lchan_desc.c M src/host/trxcon/sched_trx.h 2 files changed, 32 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/05/7205/1 diff --git a/src/host/trxcon/sched_lchan_desc.c b/src/host/trxcon/sched_lchan_desc.c index e0617a5..e94a208 100644 --- a/src/host/trxcon/sched_lchan_desc.c +++ b/src/host/trxcon/sched_lchan_desc.c @@ -109,181 +109,181 @@ { TRXC_TCHF, "TCH/F", 0x08, LID_DEDIC, - 8 * GSM_BURST_PL_LEN, 0x00, + 8 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_tchf_fn, tx_tchf_fn, }, { TRXC_TCHH_0,"TCH/H(0)", 0x10, LID_DEDIC, - 6 * GSM_BURST_PL_LEN, 0x00, + 6 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_tchh_fn, tx_tchh_fn, }, { TRXC_TCHH_1,"TCH/H(1)", 0x18, LID_DEDIC, - 6 * GSM_BURST_PL_LEN, 0x00, + 6 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_tchh_fn, tx_tchh_fn, }, { TRXC_SDCCH4_0, "SDCCH/4(0)", 0x20, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH4_1, "SDCCH/4(1)", 0x28, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH4_2, "SDCCH/4(2)", 0x30, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH4_3, "SDCCH/4(3)", 0x38, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_0, "SDCCH/8(0)", 0x40, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_1, "SDCCH/8(1)", 0x48, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_2, "SDCCH/8(2)", 0x50, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_3, "SDCCH/8(3)", 0x58, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_4, "SDCCH/8(4)", 0x60, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_5, "SDCCH/8(5)", 0x68, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_6, "SDCCH/8(6)", 0x70, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX, rx_data_fn, tx_data_fn, }, { TRXC_SDCCH8_7, "SDCCH/8(7)", 0x78, LID_DEDIC, - 4 * GSM_BURST_PL_LEN, 0x00, + 4 * GSM_BURST_PL_LEN,
[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.c: fix: omit inactive logical channels
Review at https://gerrit.osmocom.org/7203 trxcon/sched_trx.c: fix: omit inactive logical channels The sched_frame_clck_cb() is responsible for UL burst transmission. Iterating over each timeslot, it chooses a proper lchan handler according to a current frame number and a multiframe layout in use, takes a L2 UL frame from a TX buffer, and finally calls the chosen handler in order to to encode and transmit a taken frame. A handler should be called only for activated logical channels... but for some long time, there was a bug, so each lchan was processed, including inactive ones. It's time to fix this. Change-Id: I33e3ecc14be3ae64dfd02789c7f0970c945582c9 --- M src/host/trxcon/sched_trx.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/03/7203/1 diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c index 1197f2c..4ee6e61 100644 --- a/src/host/trxcon/sched_trx.c +++ b/src/host/trxcon/sched_trx.c @@ -86,6 +86,10 @@ if (lchan == NULL) continue; + /* Omit inactive lchans */ + if (!lchans->active) + continue; + /** * If we aren't processing any primitive yet, * attempt to obtain a new one from queue -- To view, visit https://gerrit.osmocom.org/7203 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I33e3ecc14be3ae64dfd02789c7f0970c945582c9 Gerrit-PatchSet: 1 Gerrit-Project: osmocom-bb Gerrit-Branch: fixeria/trx Gerrit-Owner: Vadim Yanitskiy
[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.c: fix: properly deallocate lchans
Review at https://gerrit.osmocom.org/7202 trxcon/sched_trx.c: fix: properly deallocate lchans The llist_for_each_entry_safe() should be used instead of the llist_for_each_entry(), because it's safe against removal of llist entry. Found using Valgrind's memcheck tool. Change-Id: I65234971ec152df038c5388da537a503060c215b --- M src/host/trxcon/sched_trx.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/02/7202/1 diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c index 9ae5a8f..1197f2c 100644 --- a/src/host/trxcon/sched_trx.c +++ b/src/host/trxcon/sched_trx.c @@ -185,7 +185,7 @@ void sched_trx_del_ts(struct trx_instance *trx, int tn) { - struct trx_lchan_state *lchan; + struct trx_lchan_state *lchan, *lchan_next; struct trx_ts *ts; /* Find ts in list */ @@ -199,8 +199,10 @@ sched_trx_deactivate_all_lchans(ts); /* Free channel states */ - llist_for_each_entry(lchan, >lchans, list) + llist_for_each_entry_safe(lchan, lchan_next, >lchans, list) { + llist_del(>list); talloc_free(lchan); + } /* Flush queue primitives for TX */ sched_prim_flush_queue(>tx_prims); -- To view, visit https://gerrit.osmocom.org/7202 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I65234971ec152df038c5388da537a503060c215b Gerrit-PatchSet: 1 Gerrit-Project: osmocom-bb Gerrit-Branch: fixeria/trx Gerrit-Owner: Vadim Yanitskiy
[PATCH] osmocom-bb[fixeria/trx]: trxcon/sched_trx.h: clarify lchan flags meaning
Review at https://gerrit.osmocom.org/7204 trxcon/sched_trx.h: clarify lchan flags meaning Change-Id: I51b663dd16e46a4523488c3d3000922a7c3640d1 --- M src/host/trxcon/sched_trx.h 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/04/7204/1 diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h index 856566c..78f458d 100644 --- a/src/host/trxcon/sched_trx.h +++ b/src/host/trxcon/sched_trx.h @@ -17,11 +17,13 @@ #define GPRS_BURST_LEN GSM_BURST_LEN #define EDGE_BURST_LEN 444 +/* Is a channel related to PDCH (GPRS) */ #define TRX_CH_FLAG_PDCH (1 << 0) +/* Should a channel be activated automatically */ #define TRX_CH_FLAG_AUTO (1 << 1) -#define TRX_TS_COUNT 8 #define MAX_A5_KEY_LEN (128 / 8) +#define TRX_TS_COUNT 8 /* Forward declaration to avoid mutual include */ struct trx_lchan_state; -- To view, visit https://gerrit.osmocom.org/7204 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I51b663dd16e46a4523488c3d3000922a7c3640d1 Gerrit-PatchSet: 1 Gerrit-Project: osmocom-bb Gerrit-Branch: fixeria/trx Gerrit-Owner: Vadim Yanitskiy
[PATCH] osmocom-bb[fixeria/trx]: trxcon/configure.ac: add --enable-sanitize option
Review at https://gerrit.osmocom.org/7201 trxcon/configure.ac: add --enable-sanitize option Change-Id: I099de726f9d67213c56d996039b4207f80a727c6 --- M src/host/trxcon/configure.ac 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/01/7201/1 diff --git a/src/host/trxcon/configure.ac b/src/host/trxcon/configure.ac index a94859b..1f24260 100644 --- a/src/host/trxcon/configure.ac +++ b/src/host/trxcon/configure.ac @@ -18,6 +18,17 @@ dnl checks for header files AC_HEADER_STDC +AC_ARG_ENABLE(sanitize, + [AS_HELP_STRING( + [--enable-sanitize], + [Compile with address sanitizer enabled], + )], [sanitize=$enableval], [sanitize="no"]) +if test x"$sanitize" = x"yes" +then + CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined" + CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined" +fi + dnl Checks for typedefs, structures and compiler characteristics AC_OUTPUT( -- To view, visit https://gerrit.osmocom.org/7201 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I099de726f9d67213c56d996039b4207f80a727c6 Gerrit-PatchSet: 1 Gerrit-Project: osmocom-bb Gerrit-Branch: fixeria/trx Gerrit-Owner: Vadim Yanitskiy
osmo-bsc[master]: pcu_if: implement support for 3-digit MNC
Patch Set 8: I have verified the pcuif_proto.h changes to work when osmo-bts and osmo-pcu communicate (on a sysmobts), and this pcuif_proto.h patch matches the bts and pcu ones exactly. -- To view, visit https://gerrit.osmocom.org/6669 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 Gerrit-PatchSet: 8 Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-pcu[master]: implement support for 3-digit MNC with leading zeros
Patch Set 3: -Code-Review Verified+1 verified to work on a sysmoBST, accompanied by osmo-bts and osmo-sgsn patches. NOTE: In order to get a reliable test environment, I also applied the reverts as listed in https://osmocom.org/issues/3013#note-2 -- To view, visit https://gerrit.osmocom.org/ To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I787fed84a7b613158a5618dd5cffafe4e4927234 Gerrit-PatchSet: 3 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-bts[master]: implement support for 3-digit MNC with leading zeros
Patch Set 4: -Code-Review Verified+1 verified to work on sysmoBTS, accompanied by the osmo-pcu patch -- To view, visit https://gerrit.osmocom.org/6665 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
[PATCH] osmo-bsc[master]: pcu_if: implement support for 3-digit MNC
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/6669 to look at the new patch set (#8). pcu_if: implement support for 3-digit MNC Add the mnc_3_digits member to the info_ind. Instead of changing to e.g. osmo_plmn_id, add the flag separately, and instead of bool use a uint8_t, to not raise any struct packing issues and clarify the flag's size beyond any doubt. Bump the PCU interface version to 9. This is one part of the three identical pcuif_proto.h patches: - I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 (osmo-bts) - I787fed84a7b613158a5618dd5cffafe4e4927234 (osmo-pcu) - I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 (osmo-bsc) Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore) Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 --- M include/osmocom/bsc/pcuif_proto.h M src/libbsc/pcu_sock.c 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/6669/8 diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h index ced783e..b9f61b6 100644 --- a/include/osmocom/bsc/pcuif_proto.h +++ b/include/osmocom/bsc/pcuif_proto.h @@ -3,7 +3,7 @@ #include -#define PCU_IF_VERSION 0x08 +#define PCU_IF_VERSION 0x09 #define TXT_MAX_LEN128 /* msg_type */ @@ -120,7 +120,9 @@ struct gsm_pcu_if_info_trx trx[8]; /* TRX infos per BTS */ uint8_t bsic; /* RAI */ - uint16_tmcc, mnc, lac, rac; + uint16_tmcc, mnc; + uint8_t mnc_3_digits; + uint16_tlac, rac; /* NSE */ uint16_tnsei; uint8_t nse_timer[7]; diff --git a/src/libbsc/pcu_sock.c b/src/libbsc/pcu_sock.c index 85af598..caec40d 100644 --- a/src/libbsc/pcu_sock.c +++ b/src/libbsc/pcu_sock.c @@ -154,7 +154,7 @@ /* RAI */ info_ind->mcc = bts->network->plmn.mcc; info_ind->mnc = bts->network->plmn.mnc; - /* TODO: plmn.mnc_3_digits */ + info_ind->mnc_3_digits = bts->network->plmn.mnc_3_digits; info_ind->lac = bts->location_area_code; info_ind->rac = bts->gprs.rac; -- To view, visit https://gerrit.osmocom.org/6669 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 Gerrit-PatchSet: 8 Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr
[PATCH] osmo-bts[master]: implement support for 3-digit MNC with leading zeros
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/6665 to look at the new patch set (#4). implement support for 3-digit MNC with leading zeros Record the mnc_3_digits flag from SI and pass on via the PCU interface. Instead of changing to e.g. osmo_plmn_id, add the flag separately, and instead of bool use a uint8_t, to not raise any struct packing issues and clarify the flag's size beyond any doubt. Bump the PCU interface version to 9. This is one part of the three identical pcuif_proto.h patches: - I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 (osmo-bts) - I787fed84a7b613158a5618dd5cffafe4e4927234 (osmo-pcu) - I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 (osmo-bsc) Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore) Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/pcuif_proto.h M src/common/pcu_sock.c 3 files changed, 11 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/6665/4 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 10c9d04..1652104 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -29,7 +30,7 @@ struct gsm_network { struct llist_head bts_list; unsigned int num_bts; - uint16_t mcc, mnc; + struct osmo_plmn_id plmn; struct pcu_sock_state *pcu_state; }; diff --git a/include/osmo-bts/pcuif_proto.h b/include/osmo-bts/pcuif_proto.h index 00b7bd5..b06077c 100644 --- a/include/osmo-bts/pcuif_proto.h +++ b/include/osmo-bts/pcuif_proto.h @@ -5,7 +5,7 @@ #define PCU_SOCK_DEFAULT "/tmp/pcu_bts" -#define PCU_IF_VERSION 0x08 +#define PCU_IF_VERSION 0x09 #define TXT_MAX_LEN128 /* msg_type */ @@ -122,7 +122,9 @@ struct gsm_pcu_if_info_trx trx[8]; /* TRX infos per BTS */ uint8_t bsic; /* RAI */ - uint16_tmcc, mnc, lac, rac; + uint16_tmcc, mnc; + uint8_t mnc_3_digits; + uint16_tlac, rac; /* NSE */ uint16_tnsei; uint8_t nse_timer[7]; diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 0f4c053..949a5fa 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -143,8 +144,9 @@ info_ind->flags |= PCU_IF_FLAG_SYSMO; /* RAI */ - info_ind->mcc = net->mcc; - info_ind->mnc = net->mnc; + info_ind->mcc = net->plmn.mcc; + info_ind->mnc = net->plmn.mnc; + info_ind->mnc_3_digits = net->plmn.mnc_3_digits; info_ind->lac = bts->location_area_code; info_ind->rac = bts->gprs.rac; @@ -254,14 +256,7 @@ break; si3 = (struct gsm48_system_information_type_3 *) bts->si_buf[SYSINFO_TYPE_3]; - net->mcc = ((si3->lai.digits[0] & 0x0f) << 8) - | (si3->lai.digits[0] & 0xf0) - | (si3->lai.digits[1] & 0x0f); - net->mnc = ((si3->lai.digits[2] & 0x0f) << 8) - | (si3->lai.digits[2] & 0xf0) - | ((si3->lai.digits[1] & 0xf0) >> 4); - if ((net->mnc & 0x00f) == 0x00f) - net->mnc >>= 4; + osmo_plmn_from_bcd(si3->lai.digits, >plmn); bts->location_area_code = ntohs(si3->lai.lac); bts->cell_identity = si3->cell_identity; avail_lai = 1; -- To view, visit https://gerrit.osmocom.org/6665 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr
[ABANDON] osmo-ttcn3-hacks[master]: .gitignore: aggressively ignore everything
Neels Hofmeyr has abandoned this change. Change subject: .gitignore: aggressively ignore everything .. Abandoned the other topic:gitignore patches actually work well for me now, no idea why I couldn't get symlinks ignored before. -- To view, visit https://gerrit.osmocom.org/7045 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: abandon Gerrit-Change-Id: If18921f245f2026df0a9b44b5f503fed08bb614a Gerrit-PatchSet: 1 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr
[PATCH] osmo-ttcn3-hacks[master]: gitignore final 'make' generated files
Review at https://gerrit.osmocom.org/7200 gitignore final 'make' generated files Change-Id: If38aea67a45b4e5fe22d5fac301f06239e2265a2 --- M .gitignore 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/7200/1 diff --git a/.gitignore b/.gitignore index 72e486b..27a51ae 100644 --- a/.gitignore +++ b/.gitignore @@ -1512,3 +1512,17 @@ sysinfo/TELNETasp_PortType.hh sysinfo/Test.cc sysinfo/Test.hh + +# 'make' generated files +bsc-nat/IPA_Test +bsc/BSC_Tests +bts/BTS_Tests +ggsn_tests/GGSN_Tests +gprs_gb/Test +hlr/HLR_Tests +lapdm/L1CTL_Test +mgw/MGCP_Test +msc/MSC_Tests +selftest/Selftest +sgsn/SGSN_Tests +sysinfo/Test -- To view, visit https://gerrit.osmocom.org/7200 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If38aea67a45b4e5fe22d5fac301f06239e2265a2 Gerrit-PatchSet: 1 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr
[PATCH] osmo-ttcn3-hacks[master]: gitignore 'make compile' generated files
Review at https://gerrit.osmocom.org/7199 gitignore 'make compile' generated files Change-Id: I6e4b9b4526d6e0af0f5325e2df97b0ec7c93d9ae --- M .gitignore 1 file changed, 897 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/7199/1 diff --git a/.gitignore b/.gitignore index a60e273..72e486b 100644 --- a/.gitignore +++ b/.gitignore @@ -615,3 +615,900 @@ sysinfo/TELNETasp_PT.cc sysinfo/TELNETasp_PT.hh sysinfo/TELNETasp_PortType.ttcn + +# 'make compile' generated files +bsc-nat/BSC_MS_ConnectionHandler.cc +bsc-nat/BSC_MS_ConnectionHandler.hh +bsc-nat/BSC_MS_Simulation.cc +bsc-nat/BSC_MS_Simulation.hh +bsc-nat/BSSAP_CodecPort.cc +bsc-nat/BSSAP_CodecPort.hh +bsc-nat/BSSAP_Types.cc +bsc-nat/BSSAP_Types.hh +bsc-nat/BSSMAP_Emulation.cc +bsc-nat/BSSMAP_Emulation.hh +bsc-nat/BSSMAP_Templates.cc +bsc-nat/BSSMAP_Templates.hh +bsc-nat/GSM_Types.cc +bsc-nat/GSM_Types.hh +bsc-nat/General_Types.cc +bsc-nat/General_Types.hh +bsc-nat/IPA_CodecPort.cc +bsc-nat/IPA_CodecPort.hh +bsc-nat/IPA_CodecPort_CtrlFunct.cc +bsc-nat/IPA_CodecPort_CtrlFunct.hh +bsc-nat/IPA_Emulation.cc +bsc-nat/IPA_Emulation.hh +bsc-nat/IPA_Emulation.ttcn +bsc-nat/IPA_Test.cc +bsc-nat/IPA_Test.hh +bsc-nat/IPA_Types.cc +bsc-nat/IPA_Types.hh +bsc-nat/IPL4asp_Functions.cc +bsc-nat/IPL4asp_Functions.hh +bsc-nat/IPL4asp_PortType.cc +bsc-nat/IPL4asp_PortType.hh +bsc-nat/IPL4asp_Types.cc +bsc-nat/IPL4asp_Types.hh +bsc-nat/L3_Templates.cc +bsc-nat/L3_Templates.hh +bsc-nat/MGCP_Adapter.cc +bsc-nat/MGCP_Adapter.hh +bsc-nat/MGCP_CodecPort.cc +bsc-nat/MGCP_CodecPort.hh +bsc-nat/MGCP_CodecPort_CtrlFunct.cc +bsc-nat/MGCP_CodecPort_CtrlFunct.hh +bsc-nat/MGCP_Templates.cc +bsc-nat/MGCP_Templates.hh +bsc-nat/MGCP_Types.cc +bsc-nat/MGCP_Types.hh +bsc-nat/MSC_ConnectionHandler.cc +bsc-nat/MSC_ConnectionHandler.hh +bsc-nat/MSC_Simulation.cc +bsc-nat/MSC_Simulation.hh +bsc-nat/MTP3asp_PortType.cc +bsc-nat/MTP3asp_PortType.hh +bsc-nat/MTP3asp_Types.cc +bsc-nat/MTP3asp_Types.hh +bsc-nat/Makefile +bsc-nat/MobileL3_CC_Types.cc +bsc-nat/MobileL3_CC_Types.hh +bsc-nat/MobileL3_CommonIE_Types.cc +bsc-nat/MobileL3_CommonIE_Types.hh +bsc-nat/MobileL3_GMM_SM_Types.cc +bsc-nat/MobileL3_GMM_SM_Types.hh +bsc-nat/MobileL3_MM_Types.cc +bsc-nat/MobileL3_MM_Types.hh +bsc-nat/MobileL3_RRM_Types.cc +bsc-nat/MobileL3_RRM_Types.hh +bsc-nat/MobileL3_SMS_Types.cc +bsc-nat/MobileL3_SMS_Types.hh +bsc-nat/MobileL3_SS_Types.cc +bsc-nat/MobileL3_SS_Types.hh +bsc-nat/MobileL3_Types.cc +bsc-nat/MobileL3_Types.hh +bsc-nat/Osmocom_CTRL_Functions.cc +bsc-nat/Osmocom_CTRL_Functions.hh +bsc-nat/Osmocom_CTRL_Types.cc +bsc-nat/Osmocom_CTRL_Types.hh +bsc-nat/Osmocom_Types.cc +bsc-nat/Osmocom_Types.hh +bsc-nat/RTP_Types.cc +bsc-nat/RTP_Types.hh +bsc-nat/SCCP_Emulation.cc +bsc-nat/SCCP_Emulation.hh +bsc-nat/SCCP_Mapping.cc +bsc-nat/SCCP_Mapping.hh +bsc-nat/SCCP_Types.cc +bsc-nat/SCCP_Types.hh +bsc-nat/SCCPasp_Types.cc +bsc-nat/SCCPasp_Types.hh +bsc-nat/SDP_Types.cc +bsc-nat/SDP_Types.hh +bsc-nat/Socket_API_Definitions.cc +bsc-nat/Socket_API_Definitions.hh +bsc-nat/TCCConversion_Functions.cc +bsc-nat/TCCConversion_Functions.hh +bsc-nat/TCCInterface_Functions.cc +bsc-nat/TCCInterface_Functions.hh +bsc/BSC_Tests.cc +bsc/BSC_Tests.hh +bsc/BSSAP_Adapter.cc +bsc/BSSAP_Adapter.hh +bsc/BSSAP_CodecPort.cc +bsc/BSSAP_CodecPort.hh +bsc/BSSAP_Types.cc +bsc/BSSAP_Types.hh +bsc/BSSMAP_Emulation.cc +bsc/BSSMAP_Emulation.hh +bsc/BSSMAP_Templates.cc +bsc/BSSMAP_Templates.hh +bsc/GSM_RR_Types.cc +bsc/GSM_RR_Types.hh +bsc/GSM_Types.cc +bsc/GSM_Types.hh +bsc/General_Types.cc +bsc/General_Types.hh +bsc/IPA_CodecPort.cc +bsc/IPA_CodecPort.hh +bsc/IPA_CodecPort_CtrlFunct.cc +bsc/IPA_CodecPort_CtrlFunct.hh +bsc/IPA_Emulation.cc +bsc/IPA_Emulation.hh +bsc/IPA_Emulation.ttcn +bsc/IPA_Types.cc +bsc/IPA_Types.hh +bsc/IPL4asp_Functions.cc +bsc/IPL4asp_Functions.hh +bsc/IPL4asp_PortType.cc +bsc/IPL4asp_PortType.hh +bsc/IPL4asp_Types.cc +bsc/IPL4asp_Types.hh +bsc/IuUP_Emulation.cc +bsc/IuUP_Emulation.hh +bsc/IuUP_Types.cc +bsc/IuUP_Types.hh +bsc/L3_Templates.cc +bsc/L3_Templates.hh +bsc/M3UA_Emulation.cc +bsc/M3UA_Emulation.hh +bsc/M3UA_Types.cc +bsc/M3UA_Types.hh +bsc/MGCP_CodecPort.cc +bsc/MGCP_CodecPort.hh +bsc/MGCP_CodecPort_CtrlFunct.cc +bsc/MGCP_CodecPort_CtrlFunct.hh +bsc/MGCP_Emulation.cc +bsc/MGCP_Emulation.hh +bsc/MGCP_Templates.cc +bsc/MGCP_Templates.hh +bsc/MGCP_Types.cc +bsc/MGCP_Types.hh +bsc/MSC_ConnectionHandler.cc +bsc/MSC_ConnectionHandler.hh +bsc/MTP3asp_PortType.cc +bsc/MTP3asp_PortType.hh +bsc/MTP3asp_Types.cc +bsc/MTP3asp_Types.hh +bsc/Makefile +bsc/MobileL3_CC_Types.cc +bsc/MobileL3_CC_Types.hh +bsc/MobileL3_CommonIE_Types.cc +bsc/MobileL3_CommonIE_Types.hh +bsc/MobileL3_GMM_SM_Types.cc +bsc/MobileL3_GMM_SM_Types.hh +bsc/MobileL3_MM_Types.cc +bsc/MobileL3_MM_Types.hh +bsc/MobileL3_RRM_Types.cc +bsc/MobileL3_RRM_Types.hh +bsc/MobileL3_SMS_Types.cc +bsc/MobileL3_SMS_Types.hh +bsc/MobileL3_SS_Types.cc +bsc/MobileL3_SS_Types.hh +bsc/MobileL3_Types.cc
[PATCH] osmo-ttcn3-hacks[master]: gitignore symlinks
Review at https://gerrit.osmocom.org/7198 gitignore symlinks Change-Id: I5f9fe17c20e2dd72b654fb6d919e7ec1289b4f88 --- M .gitignore 1 file changed, 610 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/7198/1 diff --git a/.gitignore b/.gitignore index d8c3ab3..a60e273 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,613 @@ *.log *.so compile + +# symlinks +M3UA_CNL113537/src/src +MTP3asp_CNL113337/src/src +SCCP_CNL113341/src/src +bsc-nat/BSSAP_CodecPort.ttcn +bsc-nat/BSSAP_Types.ttcn +bsc-nat/BSSMAP_Emulation.ttcn +bsc-nat/BSSMAP_Templates.ttcn +bsc-nat/GSM_Types.ttcn +bsc-nat/General_Types.ttcn +bsc-nat/IPA_CodecPort.ttcn +bsc-nat/IPA_CodecPort_CtrlFunct.ttcn +bsc-nat/IPA_CodecPort_CtrlFunctDef.cc +bsc-nat/IPA_Emulation.ttcnpp +bsc-nat/IPA_Types.ttcn +bsc-nat/IPL4asp_Functions.ttcn +bsc-nat/IPL4asp_PT.cc +bsc-nat/IPL4asp_PT.hh +bsc-nat/IPL4asp_PortType.ttcn +bsc-nat/IPL4asp_Types.ttcn +bsc-nat/IPL4asp_discovery.cc +bsc-nat/IPL4asp_protocol_L234.hh +bsc-nat/L3_Templates.ttcn +bsc-nat/MGCP_CodecPort.ttcn +bsc-nat/MGCP_CodecPort_CtrlFunct.ttcn +bsc-nat/MGCP_CodecPort_CtrlFunctDef.cc +bsc-nat/MGCP_Templates.ttcn +bsc-nat/MGCP_Types.ttcn +bsc-nat/MTP3asp_PortType.ttcn +bsc-nat/MTP3asp_Types.ttcn +bsc-nat/MobileL3_CC_Types.ttcn +bsc-nat/MobileL3_CommonIE_Types.ttcn +bsc-nat/MobileL3_GMM_SM_Types.ttcn +bsc-nat/MobileL3_MM_Types.ttcn +bsc-nat/MobileL3_RRM_Types.ttcn +bsc-nat/MobileL3_SMS_Types.ttcn +bsc-nat/MobileL3_SS_Types.ttcn +bsc-nat/MobileL3_Types.ttcn +bsc-nat/Osmocom_CTRL_Functions.ttcn +bsc-nat/Osmocom_CTRL_Types.ttcn +bsc-nat/Osmocom_Types.ttcn +bsc-nat/RTP_EncDec.cc +bsc-nat/RTP_Types.ttcn +bsc-nat/SCCP_Emulation.ttcn +bsc-nat/SCCP_EncDec.cc +bsc-nat/SCCP_Mapping.ttcn +bsc-nat/SCCP_Mapping.ttcnpp +bsc-nat/SCCP_Types.ttcn +bsc-nat/SCCPasp_Types.ttcn +bsc-nat/SDP_EncDec.cc +bsc-nat/SDP_Types.ttcn +bsc-nat/SDP_parse_.tab.c +bsc-nat/SDP_parse_.tab.h +bsc-nat/SDP_parse_parser.h +bsc-nat/SDP_parser.l +bsc-nat/SDP_parser.y +bsc-nat/Socket_API_Definitions.ttcn +bsc-nat/TCCConversion.cc +bsc-nat/TCCConversion_Functions.ttcn +bsc-nat/TCCInterface.cc +bsc-nat/TCCInterface_Functions.ttcn +bsc-nat/TCCInterface_ip.h +bsc-nat/lex.SDP_parse_.c +bsc/BSSAP_Adapter.ttcn +bsc/BSSAP_CodecPort.ttcn +bsc/BSSAP_Types.ttcn +bsc/BSSMAP_Emulation.ttcn +bsc/BSSMAP_Templates.ttcn +bsc/GSM_RR_Types.ttcn +bsc/GSM_Types.ttcn +bsc/General_Types.ttcn +bsc/IPA_CodecPort.ttcn +bsc/IPA_CodecPort_CtrlFunct.ttcn +bsc/IPA_CodecPort_CtrlFunctDef.cc +bsc/IPA_Emulation.ttcnpp +bsc/IPA_Types.ttcn +bsc/IPL4asp_Functions.ttcn +bsc/IPL4asp_PT.cc +bsc/IPL4asp_PT.hh +bsc/IPL4asp_PortType.ttcn +bsc/IPL4asp_Types.ttcn +bsc/IPL4asp_discovery.cc +bsc/IPL4asp_protocol_L234.hh +bsc/IuUP_Emulation.ttcn +bsc/IuUP_EncDec.cc +bsc/IuUP_Types.ttcn +bsc/L3_Templates.ttcn +bsc/M3UA_Emulation.ttcn +bsc/M3UA_Types.ttcn +bsc/MGCP_CodecPort.ttcn +bsc/MGCP_CodecPort_CtrlFunct.ttcn +bsc/MGCP_CodecPort_CtrlFunctDef.cc +bsc/MGCP_Emulation.ttcn +bsc/MGCP_Templates.ttcn +bsc/MGCP_Types.ttcn +bsc/MTP3asp_PortType.ttcn +bsc/MTP3asp_Types.ttcn +bsc/MobileL3_CC_Types.ttcn +bsc/MobileL3_CommonIE_Types.ttcn +bsc/MobileL3_GMM_SM_Types.ttcn +bsc/MobileL3_MM_Types.ttcn +bsc/MobileL3_RRM_Types.ttcn +bsc/MobileL3_SMS_Types.ttcn +bsc/MobileL3_SS_Types.ttcn +bsc/MobileL3_Types.ttcn +bsc/Native_FunctionDefs.cc +bsc/Native_Functions.ttcn +bsc/Osmocom_CTRL_Adapter.ttcn +bsc/Osmocom_CTRL_Functions.ttcn +bsc/Osmocom_CTRL_Types.ttcn +bsc/Osmocom_Types.ttcn +bsc/Osmocom_VTY_Functions.ttcn +bsc/RLCMAC_CSN1_Types.ttcn +bsc/RSL_Emulation.ttcn +bsc/RSL_Types.ttcn +bsc/RTP_CodecPort.ttcn +bsc/RTP_CodecPort_CtrlFunct.ttcn +bsc/RTP_CodecPort_CtrlFunctDef.cc +bsc/RTP_Emulation.ttcn +bsc/RTP_EncDec.cc +bsc/RTP_Types.ttcn +bsc/SCCP_Emulation.ttcn +bsc/SCCP_Mapping.ttcn +bsc/SCCP_Mapping.ttcnpp +bsc/SCCP_Types.ttcn +bsc/SCCPasp_Types.ttcn +bsc/SCTPasp_PT.cc +bsc/SCTPasp_PT.hh +bsc/SCTPasp_PortType.ttcn +bsc/SCTPasp_Types.ttcn +bsc/SDP_EncDec.cc +bsc/SDP_Types.ttcn +bsc/SDP_parse_.tab.c +bsc/SDP_parse_.tab.h +bsc/SDP_parse_parser.h +bsc/SDP_parser.l +bsc/SDP_parser.y +bsc/Socket_API_Definitions.ttcn +bsc/TCCConversion.cc +bsc/TCCConversion_Functions.ttcn +bsc/TCCInterface.cc +bsc/TCCInterface_Functions.ttcn +bsc/TCCInterface_ip.h +bsc/TELNETasp_PT.cc +bsc/TELNETasp_PT.hh +bsc/TELNETasp_PortType.ttcn +bsc/lex.SDP_parse_.c +bts/GSM_RR_Types.ttcn +bts/GSM_SystemInformation.ttcn +bts/GSM_Types.ttcn +bts/General_Types.ttcn +bts/IPA_CodecPort.ttcn +bts/IPA_CodecPort_CtrlFunct.ttcn +bts/IPA_CodecPort_CtrlFunctDef.cc +bts/IPA_Emulation.ttcnpp +bts/IPA_Types.ttcn +bts/IPL4asp_Functions.ttcn +bts/IPL4asp_PT.cc +bts/IPL4asp_PT.hh +bts/IPL4asp_PortType.ttcn +bts/IPL4asp_Types.ttcn +bts/IPL4asp_discovery.cc +bts/IPL4asp_protocol_L234.hh +bts/L1CTL_PortType.ttcn +bts/L1CTL_PortType_CtrlFunct.ttcn +bts/L1CTL_PortType_CtrlFunctDef.cc +bts/L1CTL_Types.ttcn +bts/L3_Common.ttcn +bts/L3_Templates.ttcn +bts/LAPDm_RAW_PT.ttcn +bts/LAPDm_Types.ttcn
osmo-ttcn3-hacks[master]: .gitignore: aggressively ignore everything
Patch Set 1: Right now I can't seem to reproduce the problem in the first place. If I basically pipe 'git status' to .gitignore, it ignores the files fine. That's with git versions 2.15.1 and 2.11.0. I wonder which setup made me conclude that I could not add the symlinks to .gitignore effectively? -- To view, visit https://gerrit.osmocom.org/7045 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: If18921f245f2026df0a9b44b5f503fed08bb614a Gerrit-PatchSet: 1 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
[PATCH] osmo-msc[master]: msc_vlr_tests: add test_a5_3_not_supported
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7058 to look at the new patch set (#3). msc_vlr_tests: add test_a5_3_not_supported See also change-id I72a1dbb30e0a39dbf4b81c7e378d5607b62e10d3 in osmo-ttcn3-hacks.git, which adds a similar test to the MSC_Tests.ttcn suite. Writing this test helped me fix the issue faster, why not keep it now that it's there. Related: OS#2947 Change-Id: Iba56556207cf6e79e6531b0e7dd3eaec28fb5eaa --- M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err 2 files changed, 152 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/58/7058/3 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 57284a3..d8ea6ba 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -1044,6 +1044,59 @@ comment_end(); } +static void test_a5_3_not_supported() +{ + comment_start(); + + /* implicit: net->authentication_required = true; */ + net->a5_encryption_mask = (1 << 3); /* A5/3 */ + + btw("Location Update request causes a GSUP Send Auth Info request to HLR"); + lu_result_sent = RES_NONE; + gsup_expect_tx("0801080971004026f0"); + ms_sends_msg("05080200816800013008991007006402"); + OSMO_ASSERT(gsup_tx_confirmed); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); + /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ + auth_request_sent = false; + auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; + auth_request_expect_autn = NULL; + gsup_rx("0a" + /* imsi */ + "0108" "0971004026f0" + /* 5 auth vectors... */ + /* TLTL rand */ + "0322" "2010" "585df1ae287f6e273dce07090d61320b" + /* TL sres TL kc */ + "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" + "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" + "2104" "20bde240" "2208" "07fa7502e07e1c00" + "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" + "2104" "a29514ae" "2208" "e2b234f807886400" + "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" + "2104" "5afc8d72" "2208" "2392f14f709ae000" + "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" + "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", + NULL); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + VERBOSE_ASSERT(auth_request_sent, == true, "%d"); + + BTW("MS sends Authen Response, VLR accepts and wants to send Ciphering Mode Command to MS" + " -- alas, no matching cipher can be found, abort and release"); + cipher_mode_cmd_sent = false; + expect_bssap_clear(); + ms_sends_msg("05542d8b2c3e"); + OSMO_ASSERT(!cipher_mode_cmd_sent); + VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); + + EXPECT_CONN_COUNT(0); + clear_vlr(); + comment_end(); +} + + msc_vlr_test_func_t msc_vlr_tests[] = { test_ciph, test_ciph_tmsi, @@ -1051,5 +1104,6 @@ test_ciph_imeisv, test_ciph_tmsi_imei, test_gsm_ciph_in_umts_env, + test_a5_3_not_supported, NULL }; diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index c2bb606..1428c36 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -2184,6 +2184,104 @@ full talloc report on 'msgb' (total 0 bytes in 1 blocks) talloc_total_blocks(tall_bsc_ctx) == 7 += test_a5_3_not_supported +- Location Update request causes a GSUP Send Auth Info request to HLR + MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST + new conn +DREF unknown: MSC conn use + compl_l3 == 1 (0x1) +DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) +DREF unknown: MSC conn use + fsm == 2 (0x5) +DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: Allocated +DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START +DMM Subscr_Conn(90170004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW +DMM LOCATION UPDATING REQUEST: MI(IMSI)=90170004620 type=IMSI ATTACH +DMM LU/new-LAC: 1/23 +DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: Allocated +DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(90170004620) +DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph +DVLR vlr_lu_fsm(90170004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA +DREF VLR subscr unknown usage increases to: 1 +DVLR set IMSI on subscriber; IMSI=90170004620 id=90170004620 +DVLR
osmo-msc[master]: msc_vlr_tests: add test_a5_3_not_supported
Patch Set 2: > if you're testing external protocols, why not use ttcn3? I answered at length in https://gerrit.osmocom.org/7190 -- the short answer here is that I wrote this test to analyse the failure, because it was by far the fastest way for me to find a fix. Now that the test exists, why not add it to the msc_vlr_tests compendium. It takes practically zero time to execute and will get checked with every 'make check' from now on. A ttcn-3 test for this situation also exists, btw, in osmo-ttcn3-hacks.git, change id I72a1dbb30e0a39dbf4b81c7e378d5607b62e10d3 -- To view, visit https://gerrit.osmocom.org/7058 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iba56556207cf6e79e6531b0e7dd3eaec28fb5eaa Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: vlr auth: gracefully reject malformed auth response
Patch Set 4: ok, now we're back to patch set 2, passing a zero res to trigger failure. -- To view, visit https://gerrit.osmocom.org/7188 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899 Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99...
Patch Set 2: Code-Review+2 (resurrect previous +2, lost due to trivial merge conflict resolution) -- To view, visit https://gerrit.osmocom.org/7195 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES
Patch Set 4: Code-Review+2 (resurrect previous +2, lost due to trivial merge conflict resolution) -- To view, visit https://gerrit.osmocom.org/7194 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286 Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES
Patch Set 4: > Similar to other patches before: Why are we doing this here and not > in TTCN-3, particularly if it's about entire new tests? I've asked > the question before, but you didn't answer and instead keep senidng > the patches. Please at least let me know what the reasons are... Hmm, that must have slipped my attention, sorry about that. For me it is helpful that when there are comments to a patch that there is a -1 or a +1 marking, so that I don't just see the +2, merge and forget to read... The titan tests are great, yet these tests here also have their justification, and I like them because: - Running a test like this is super fast: 'make check' (== just one shortcut key in my vim setup to save files and run them), so I will instantly know when I broke something while developing. No external dependencies needed; all done in practically zero execution time. - A test like this also runs during our address-sanitizer builds; also in gerrit before the commit is merged, rather than after it is merged and someone noticed the pass percentage hidden in a jenkins job might be different from last time. - These tests are completely insensitive to timing. All gettime is faked and there is no concurrent interplay between components: the tests are guaranteed to run identically every time. - I can easily analyse with gdb and step through a situation without concurrent things happening in other processes. - These tests nail down log output: when I change something, I can immediately verify all the logging that is affected in various situations, in a neat diff. I just need to make my change, run 'make update-exp' and see the logging differences in git. I find this very helpful and reassuring, and it provides a compendium of logging sequences to look up. (This is impossible to nail down in the titan tests due to subtle timing differences in each run.) - I can adjust these tests along with changes to code in a neat series of commits, so I can clearly show how specific fixes change the MSC's behavior, in the git history for later reference. - Here, I pasted hex streams from pcaps exactly as I saw phones and BTSes sending them in, instead of composing them from the titan protocol definitions -- which are great tools without question, but here is also room for testing raw data. So the disadvantages these tests have compared to the titan tests are also advantages in another sense. I would like to cultivate both ways. That said, I'm not actively planning to do very much here anymore besides revisiting and complementing things that are already here, like the LU/CM-Service/Paging and auth+ciph dances. I'm in the meantime expanding the titan tests coverage as well; so far it is taking me far longer to find my way around there, and running them means a lot more commands typed and more waiting for things to get going. So I hope it's ok to also use this test suite as a tool, and not abandon it just because ttcn3 came up. -- To view, visit https://gerrit.osmocom.org/7190 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8 Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA
Patch Set 4: Code-Review+2 (resurrect previous +2, lost due to trivial merge conflict resolution) -- To view, visit https://gerrit.osmocom.org/7193 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...
Patch Set 4: Code-Review+2 (resurrect previous +2, lost due to trivial merge conflict resolution) -- To view, visit https://gerrit.osmocom.org/7189 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4 Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: No
[PATCH] osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99...
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7195 to look at the new patch set (#2). cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AUTH', not 'R99 AUTH' Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc --- M src/libmsc/gsm_04_08.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 4 files changed, 31 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/95/7195/2 diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 4564f8e..08f1517 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -979,7 +979,7 @@ DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n", vlr_subscr_name(conn->vsub), - is_umts ? "R99" : "GSM", is_umts ? "res" : "sres", + is_umts ? "UMTS" : "GSM", is_umts ? "res" : "sres", osmo_hexdump_nospc(res, res_len)); return vlr_subscr_rx_auth_resp(conn->vsub, classmark_is_r99(>classmark), diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 269cd35..843e0d5 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -50,7 +50,7 @@ MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP DREF IMSI:90170010650: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:90170010650: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) +DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context @@ -217,7 +217,7 @@ MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) +DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context @@ -338,7 +338,7 @@ MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) +DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context @@ -478,7 +478,7 @@ MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP DREF IMSI:90170010650: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:90170010650: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) +DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context @@ -657,7 +657,7 @@ MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) +DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context @@ -788,7 +788,7 @@ MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP DREF MSISDN:42342: MSC conn use + dtap == 2 (0x6) DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) +DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context @@ -938,7 +938,7 @@ MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP DREF IMSI:90170010650: MSC conn use + dtap == 2
[PATCH] osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7189 to look at the new patch set (#4). gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not response size Do not interpret the SRES/RES length returned in the auth response as the R99 capability bit, instead determine it from the actual Classmark information associated with the conn. This fixes the is_r99 flag passed in to vlr_subscr_rx_auth_resp(), which ends up in the struct vlr_auth_resp_par dispatched to the auth_fi and influences the authentication acceptance. Though the effect of a wrongly-set-to-false R99 flag is not harmful in this code path, let's not get this confused. Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4 --- M src/libmsc/gsm_04_08.c 1 file changed, 8 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/89/7189/4 diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index ceef2d8..4564f8e 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -952,7 +952,7 @@ uint8_t res[16]; uint8_t res_len; int rc; - bool is_r99; + bool is_umts; if (!conn->vsub) { LOGP(DMM, LOGL_ERROR, @@ -961,30 +961,28 @@ return -EINVAL; } - if (msgb_l3len(msg) > - sizeof(struct gsm48_hdr) + sizeof(struct gsm48_auth_resp)) { + is_umts = (msgb_l3len(msg) > sizeof(struct gsm48_hdr) + sizeof(struct gsm48_auth_resp)); + + if (is_umts) rc = parse_umts_auth_resp(res, _len, conn, msg); - is_r99 = true; - } else { + else rc = parse_gsm_auth_resp(res, _len, conn, msg); - is_r99 = false; - } if (rc) { LOGP(DMM, LOGL_ERROR, "%s: MM AUTHENTICATION RESPONSE: invalid: parsing %s AKA Auth Response" " failed with rc=%d; dispatching zero length SRES/RES to trigger failure\n", -vlr_subscr_name(conn->vsub), is_r99 ? "UMTS" : "GSM", rc); +vlr_subscr_name(conn->vsub), is_umts ? "UMTS" : "GSM", rc); memset(res, 0, sizeof(res)); res_len = 0; } DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n", vlr_subscr_name(conn->vsub), - is_r99 ? "R99" : "GSM", is_r99 ? "res" : "sres", + is_umts ? "R99" : "GSM", is_umts ? "res" : "sres", osmo_hexdump_nospc(res, res_len)); - return vlr_subscr_rx_auth_resp(conn->vsub, is_r99, + return vlr_subscr_rx_auth_resp(conn->vsub, classmark_is_r99(>classmark), conn->via_ran == RAN_UTRAN_IU, res, res_len); } -- To view, visit https://gerrit.osmocom.org/7189 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4 Gerrit-PatchSet: 4 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[PATCH] osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7193 to look at the new patch set (#4). cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA The code deciding on whether UMTS AKA is used was cascaded and convoluted. By flattening the decisions, they become easier to read and possibly catch more weird corner cases / log information more clearly. - First decide what AKA the RES length reflects. - Then decide whether all prerequisites for UMTS AKA are satisfied. - Finally, on UTRAN, turn down the auth if we don't have UMTS AKA, and neatly log all of the potential causes. One corner case that should never occur is that the UMTS AKA RES length is actually the same length as the GSM AKA SRES. If this nevertheless occurs, log this as an error, though not turning down authentication because of it. (The effect is that we would favor UMTS AKA when it has a res_len == sizeof(sres) and would not succeed to GSM AKA. At least the log will tell us why, now.) Adjust an expected test output, trivial logging difference. Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab --- M src/libvlr/vlr_auth_fsm.c M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 3 files changed, 48 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/93/7193/4 diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c index 51e22c9..0d0df11 100644 --- a/src/libvlr/vlr_auth_fsm.c +++ b/src/libvlr/vlr_auth_fsm.c @@ -136,34 +136,57 @@ struct gsm_auth_tuple *at = vsub->last_tuple; struct osmo_auth_vector *vec = >vec; bool check_umts; + bool res_is_umts_aka; OSMO_ASSERT(at); LOGVSUBP(LOGL_DEBUG, vsub, "received res: %s\n", osmo_hexdump(res, res_len)); /* RES must be present and at least 32bit */ - if (!res || res_len < sizeof(vec->sres)) { - LOGVSUBP(LOGL_NOTICE, vsub, "AUTH RES missing or too short " -"(%u)\n", res_len); + if (!res || !res_len) { + LOGVSUBP(LOGL_NOTICE, vsub, "AUTH SRES/RES missing\n"); goto out_false; } - check_umts = false; - if (is_r99 && (vec->auth_types & OSMO_AUTH_TYPE_UMTS)) { - check_umts = true; - /* We have a R99 capable UE and have a UMTS AKA capable USIM. -* However, the ME may still choose to only perform GSM AKA, as -* long as the bearer is GERAN */ - if (res_len != vec->res_len) { - if (is_utran) { - LOGVSUBP(LOGL_NOTICE, vsub, -"AUTH via UTRAN but " -"res_len(%u) != vec->res_len(%u)\n", -res_len, vec->res_len); - goto out_false; - } - check_umts = false; - } + /* We're deciding the UMTS AKA-ness of the response by the RES size. So let's make sure we can't +* mix them up by size. On UTRAN, we expect full length RES always, no way to mix up there. */ + if (!is_utran && vec->res_len == sizeof(vec->sres)) + LOGVSUBP(LOGL_ERROR, vsub, "Unforeseen situation: UMTS AKA's RES length" +" equals the size of SRES: %u -- this code wants to differentiate" +" the two by their size, which won't work properly now.\n", vec->res_len); + + /* RES must be either vec->res_len (UMTS AKA) or sizeof(sres) (GSM AKA) */ + if (res_len == vec->res_len) + res_is_umts_aka = true; + else if (res_len == sizeof(vec->sres)) + res_is_umts_aka = false; + else { + if (is_utran) + LOGVSUBP(LOGL_NOTICE, vsub, "AUTH RES has invalid length: %u." +" Expected %u (UMTS AKA)\n", +res_len, vec->res_len); + else + LOGVSUBP(LOGL_NOTICE, vsub, "AUTH SRES/RES has invalid length: %u." +" Expected either %zu (GSM AKA) or %u (UMTS AKA)\n", +res_len, sizeof(vec->sres), vec->res_len); + goto out_false; + } + + check_umts = (is_r99 + && (vec->auth_types & OSMO_AUTH_TYPE_UMTS) + && res_is_umts_aka); + + /* Even on an R99 capable MS with a UMTS AKA capable USIM, +* the MS may still choose to only perform GSM AKA, as +* long as the bearer is GERAN -- never on UTRAN: */ + if (is_utran && !check_umts) { + LOGVSUBP(LOGL_ERROR, vsub, +"AUTH via UTRAN, cannot allow GSM AKA" +" (MS is %sR99 capable, vec has %sUMTS
[PATCH] osmo-msc[master]: vlr auth: gracefully reject malformed auth response
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7188 to look at the new patch set (#4). vlr auth: gracefully reject malformed auth response Instead of just closing down the conn hard, actually feed invalid auth response data to vlr_subscr_rc_auth_resp() in order to trigger all the actions we want to see with a failed authentication: - a GSUP signal that the auth failed, - a LU reject. Verify this in new test_wrong_sres_length() in msc_vlr_test_gsm_authen.c. Note that in gsm48_rx_mm_auth_resp(), the is_r99 flag is falsely derived from the RES length, which upcoming commit Ib7f7d89a8b9455d2c022d53d74328fa7488577f4 will fix. Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899 --- M src/libmsc/gsm_04_08.c M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_authen.err 3 files changed, 179 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/88/7188/4 diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index f87a4c6..ceef2d8 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -971,8 +971,12 @@ } if (rc) { - msc_subscr_conn_close(conn, GSM_CAUSE_AUTH_FAILED); - return -EINVAL; + LOGP(DMM, LOGL_ERROR, +"%s: MM AUTHENTICATION RESPONSE: invalid: parsing %s AKA Auth Response" +" failed with rc=%d; dispatching zero length SRES/RES to trigger failure\n", +vlr_subscr_name(conn->vsub), is_r99 ? "UMTS" : "GSM", rc); + memset(res, 0, sizeof(res)); + res_len = 0; } DEBUGP(DMM, "%s: MM %s AUTHENTICATION RESPONSE (%s = %s)\n", diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c index 9c09aa4..b0db12d 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c @@ -914,11 +914,70 @@ comment_end(); } +static void test_wrong_sres_length() +{ + comment_start(); + fake_time_start(); + + net->authentication_required = true; + + btw("Location Update request causes a GSUP Send Auth Info request to HLR"); + lu_result_sent = RES_NONE; + gsup_expect_tx("0801080971004026f0"); + ms_sends_msg("05080200816800013008991007006402"); + OSMO_ASSERT(gsup_tx_confirmed); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); + auth_request_sent = false; + auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; + auth_request_expect_autn = NULL; + /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ + gsup_rx("0a" + /* imsi */ + "0108" "0971004026f0" + /* 5 auth vectors... */ + /* TLTL rand */ + "0322" "2010" "585df1ae287f6e273dce07090d61320b" + /* TL sres TL kc */ + "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" + "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" + "2104" "20bde240" "2208" "07fa7502e07e1c00" + "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" + "2104" "a29514ae" "2208" "e2b234f807886400" + "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" + "2104" "5afc8d72" "2208" "2392f14f709ae000" + "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" + "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", + NULL); + VERBOSE_ASSERT(auth_request_sent, == true, "%d"); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject"); + gsup_rx("0601080971004026f0", NULL); + EXPECT_ACCEPTED(false); + + thwart_rx_non_initial_requests(); + + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("MS sends Authen Response with too short SRES data, auth is thwarted."); + gsup_expect_tx("0b01080971004026f0"); /* OSMO_GSUP_MSGT_AUTH_FAIL_REPORT */ + expect_bssap_clear(); + ms_sends_msg("05542d8b2c"); + VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); + + EXPECT_CONN_COUNT(0); + clear_vlr(); + comment_end(); +} + msc_vlr_test_func_t msc_vlr_tests[] = { test_gsm_authen, test_gsm_authen_tmsi, test_gsm_authen_imei, test_gsm_authen_tmsi_imei, test_gsm_milenage_authen, + test_wrong_sres_length, NULL }; diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index a46a838..a454e2f 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1998,6 +1998,120 @@
[PATCH] osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES
Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7194 to look at the new patch set (#4). cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286 --- M src/libvlr/vlr_auth_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 8 files changed, 70 insertions(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/94/7194/4 diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c index 0d0df11..224bc9f 100644 --- a/src/libvlr/vlr_auth_fsm.c +++ b/src/libvlr/vlr_auth_fsm.c @@ -139,8 +139,10 @@ bool res_is_umts_aka; OSMO_ASSERT(at); - LOGVSUBP(LOGL_DEBUG, vsub, "received res: %s\n", -osmo_hexdump(res, res_len)); + LOGVSUBP(LOGL_DEBUG, vsub, "AUTH on %s received %s: %s (%u bytes)\n", +is_utran ? "UTRAN" : "GERAN", +is_utran ? "RES" : "SRES/RES", +osmo_hexdump_nospc(res, res_len), res_len); /* RES must be present and at least 32bit */ if (!res || !res_len) { diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 843e0d5..df91789 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -52,7 +52,7 @@ DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 +DVLR SUBSCR(IMSI:90170010650) AUTH on GERAN received SRES/RES: e229c19e791f2e41 (8 bytes) DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED @@ -219,7 +219,7 @@ DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 +DVLR SUBSCR(MSISDN:42342) AUTH on GERAN received SRES/RES: e229c19e791f2e41 (8 bytes) DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED @@ -340,7 +340,7 @@ DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 +DVLR SUBSCR(MSISDN:42342) AUTH on GERAN received SRES/RES: 7db47cf7f81e4dc7 (8 bytes) DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED @@ -480,7 +480,7 @@ DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) DMM IMSI:90170010650: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:90170010650) received res: e2 29 c1 9e 79 1f 2e 41 +DVLR SUBSCR(IMSI:90170010650) AUTH on UTRAN received RES: e229c19e791f2e41 (8 bytes) DVLR SUBSCR(IMSI:90170010650) AUTH established UMTS security context DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED @@ -659,7 +659,7 @@ DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) DMM MSISDN:42342: MM UMTS AUTHENTICATION RESPONSE (res = e229c19e791f2e41) DVLR VLR_Authenticate(90170010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: e2 29 c1 9e 79 1f 2e 41 +DVLR SUBSCR(MSISDN:42342) AUTH on UTRAN received RES: e229c19e791f2e41 (8 bytes) DVLR SUBSCR(MSISDN:42342) AUTH established UMTS
[MERGED] osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment
Neels Hofmeyr has submitted this change and it was merged. Change subject: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment .. msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment Even on an R99 capable MS with a UMTS AKA capable USIM, the MS may still choose to only perform GSM AKA, as long as the bearer is GERAN. In that case, we must make sure to send the GSM AKA Kc for ciphering. Add test_gsm_ciph_in_umts_env() to msc_vlr_test_gsm_ciph.c to answer an Auth Request with a GSM AKA response (see the log stating "AUTH established GSM security context" after we sent a UMTS AKA challenge). In the test, show that we currently send the *wrong* Kc, i.e. the UMTS AKA derived Kc for GERAN, instead of the correct Kc for GSM AKA (which was received from the HLR in the auth tuples). Subsequent patch I42ce51ae979f42d173a45ae69273071c426bf97c will fix this and correct the test expectations. Related: OS#2793 Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82 --- M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err 2 files changed, 725 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 1e6bf7c..d8c0441 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -794,11 +794,271 @@ comment_end(); } +static void test_gsm_ciph_in_umts_env() +{ + struct vlr_subscr *vsub; + const char *imsi = "90170010650"; + const char *sms = + "09" /* SMS messages */ + "01" /* CP-DATA */ + "58" /* length */ + "01" /* Network to MS */ + "00" /* reference */ + /* originator (gsm411_send_sms() hardcodes this weird nr) */ + "0791" "447758100650" /* 447785016005 */ + "00" /* dest */ + /* SMS TPDU */ + "4c" /* len */ + "00" /* SMS deliver */ + "05802443f2" /* originating address 42342 */ + "00" /* TP-PID */ + "00" /* GSM default alphabet */ + "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ + "00" /* H-M-S */ + "00" /* GMT+0 */ + "44" /* data length */ + "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" + "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" + "0c7ac3e9e9b7db05"; + + comment_start(); + + /* implicit: net->authentication_required = true; */ + net->a5_encryption_mask = (1 << 1); + rx_from_ran = RAN_GERAN_A; + + btw("Location Update request causes a GSUP Send Auth Info request to HLR"); + lu_result_sent = RES_NONE; + gsup_expect_tx("080108" "0971000156f0"); + ms_sends_msg("0508" /* MM LU */ +"7" /* ciph key seq: no key available */ +"0" /* LU type: normal */ +"ff" "" /* LAI, LAC */ +"57" /* classmark 1: R99, early classmark, no power lvl */ +"08991007106005" /* IMSI */ +"3303575886" /* classmark 2 */ +); + OSMO_ASSERT(gsup_tx_confirmed); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends *UMTS AKA* Auth Req to MS"); + /* based on +* 2G auth: COMP128v1 +* KI=7bcd108be4c3d551ee6c67faaf52bd68 +* 3G auth: MILENAGE +* K=7bcd108be4c3d551ee6c67faaf52bd68 +* OPC=6e23f641ce724679b73d933515a8589d +* IND-bitlen=5 last-SQN=641 +* Note that the SRES will be calculated by COMP128v1, separately from 3G tokens; +* the resulting Kc to use for ciphering returned by the HLR is also calculated from COMP128v1. +*/ + auth_request_sent = false; + auth_request_expect_rand = "4ac8d1cd1a51937597ca1016fe69a0fa"; + auth_request_expect_autn = "2d837d2b0d6f4b282d5acf23428d"; + gsup_rx("0a" + /* imsi */ + "0108" "0971000156f0" + /* 5 auth vectors... */ + /* TLTL rand */ + "0362" "2010" "4ac8d1cd1a51937597ca1016fe69a0fa" + /* TL sres TL kc */ + "2104" "dacc4b26" "2208" "7a75f0ac9b844400" + /* TL 3G IK */ + "2310" "3747da4e31545baa2db59e500bdae047" + /* TL 3G CK */ + "2410" "8544d35b945ccba01a7f1293575291c3" + /* TL AUTN */ + "2510" "2d837d2b0d6f4b282d5acf23428d" + /* TL RES */ + "2708"
[MERGED] osmo-msc[master]: msc_vlr_tests: clearly separate Ciph Mode from Security Mode...
Neels Hofmeyr has submitted this change and it was merged. Change subject: msc_vlr_tests: clearly separate Ciph Mode from Security Mode checking .. msc_vlr_tests: clearly separate Ciph Mode from Security Mode checking Clearly distinguish between Ciphering Mode Command on GERAN and Security Mode Control on UTRAN. Cosmetic: explicitly verify the key strings in the testing code (not only in the expected output). Change-Id: Ica93ed06c4c63dc6768736d25231de8068001114 --- M tests/msc_vlr/msc_vlr_test_authen_reuse.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.c M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_umts_authen.c M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/msc_vlr/msc_vlr_tests.h 9 files changed, 98 insertions(+), 48 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.c b/tests/msc_vlr/msc_vlr_test_authen_reuse.c index e78ab06..6fd1e66 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.c +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.c @@ -105,9 +105,9 @@ } else { /* On UTRAN */ btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; + expect_security_mode_ctrl(NULL, "27497388b6cb044648f396aa155b95ef"); ms_sends_msg("0554" "e229c19e" "2104" "791f2e41"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); + VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d"); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); btw("MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR"); @@ -179,9 +179,9 @@ } else { /* On UTRAN */ btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; + expect_security_mode_ctrl(NULL, "27497388b6cb044648f396aa155b95ef"); ms_sends_msg("0554" "e229c19e" "2104" "791f2e41"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); + VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); btw("MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept"); @@ -253,9 +253,9 @@ } else { /* On UTRAN */ btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; + expect_security_mode_ctrl(NULL, "1159ec926a50e98c034a6b7d7c9f418d"); ms_sends_msg("0554" "7db47cf7" "2104" "f81e4dc7"); /* 2nd vector's res, s.a. */ - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); + VERBOSE_ASSERT(security_mode_ctrl_sent, == true, "%d"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); btw("MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept"); diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index ea3b989..269cd35 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -497,7 +497,7 @@ DVLR vlr_lu_fsm(90170010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH DMM IMSI:90170010650: bump: conn still being established (SUBSCR_CONN_S_NEW) DREF IMSI:90170010650: MSC conn use - dtap == 1 (0x4) - cipher_mode_cmd_sent == 1 + security_mode_ctrl_sent == 1 lu_result_sent == 0 - MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR DMM <- SECURITY MODE COMPLETE IMSI:90170010650 @@ -677,7 +677,7 @@ DVLR Process_Access_Request_VLR(90170010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) DREF MSISDN:42342: MSC conn use - dtap == 1 (0x4) - cipher_mode_cmd_sent == 1 + security_mode_ctrl_sent == 1 cm_service_result_sent == 0 - MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept DMM <- SECURITY MODE COMPLETE MSISDN:42342 @@ -808,7 +808,7 @@ DVLR Process_Access_Request_VLR(90170010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) DREF MSISDN:42342: MSC conn use - dtap == 1 (0x4) -
[MERGED] osmo-msc[master]: vlr: fix GSM AKA in a UMTS AKA capable environment
Neels Hofmeyr has submitted this change and it was merged. Change subject: vlr: fix GSM AKA in a UMTS AKA capable environment .. vlr: fix GSM AKA in a UMTS AKA capable environment Switch by vsub->sec_ctx to use the proper Kc for ciphering. Even on an R99 capable MS with a UMTS AKA capable USIM, the MS may still choose to only perform GSM AKA, as long as the bearer is GERAN. The VLR already stores whether the MS replied with a GSM AKA SRES or a UMTS AKA RES in vsub->sec_ctx. So far, though, we were always using the UMTS AKA Kc just because the USIM and core net are capable of it, ignoring the choice the MS might have made in the Authentication Response. In msc_vlr_test_gsm_ciph, fix the test expectations to the correct GSM AKA Kc keys, showing that all of LU, CM Service Request and Paging Response now support MS choosing GSM AKA in a UMTS capable environment. Related: OS#2793 Change-Id: I42ce51ae979f42d173a45ae69273071c426bf97c --- M src/libvlr/vlr_access_req_fsm.c M src/libvlr/vlr_lu_fsm.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err 4 files changed, 33 insertions(+), 14 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index 556e694..95a618d 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -284,6 +284,7 @@ { struct proc_arq_priv *par = fi->priv; struct vlr_subscr *vsub = par->vsub; + bool umts_aka; LOGPFSM(fi, "%s()\n", __func__); @@ -292,9 +293,22 @@ return; } + switch (vsub->sec_ctx) { + case VLR_SEC_CTX_GSM: + umts_aka = false; + break; + case VLR_SEC_CTX_UMTS: + umts_aka = true; + break; + default: + LOGPFSML(fi, LOGL_ERROR, "Cannot start ciphering, security context is not established\n"); + proc_arq_fsm_done(fi, VLR_PR_ARQ_RES_SYSTEM_FAILURE); + return; + } + if (vlr_set_ciph_mode(vsub->vlr, fi, par->msc_conn_ref, par->ciphering_required, - vlr_use_umts_aka(>last_tuple->vec, par->is_r99), + umts_aka, vsub->vlr->cfg.retrieve_imeisv_ciphered)) { LOGPFSML(fi, LOGL_ERROR, "Failed to send Ciphering Mode Command\n"); diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c index b36e4e3..c6fd080 100644 --- a/src/libvlr/vlr_lu_fsm.c +++ b/src/libvlr/vlr_lu_fsm.c @@ -846,6 +846,7 @@ { struct lu_fsm_priv *lfp = lu_fsm_fi_priv(fi); struct vlr_subscr *vsub = lfp->vsub; + bool umts_aka; LOGPFSM(fi, "%s()\n", __func__); @@ -862,9 +863,22 @@ return; } + switch (vsub->sec_ctx) { + case VLR_SEC_CTX_GSM: + umts_aka = false; + break; + case VLR_SEC_CTX_UMTS: + umts_aka = true; + break; + default: + LOGPFSML(fi, LOGL_ERROR, "Cannot start ciphering, security context is not established\n"); + lu_fsm_failure(fi, GSM48_REJECT_NETWORK_FAILURE); + return; + } + if (vlr_set_ciph_mode(vsub->vlr, fi, lfp->msc_conn_ref, lfp->ciphering_required, - vlr_use_umts_aka(>last_tuple->vec, lfp->is_r99), + umts_aka, vsub->vlr->cfg.retrieve_imeisv_ciphered)) { LOGPFSML(fi, LOGL_ERROR, "Failed to send Ciphering Mode Command\n"); diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index d8c0441..57284a3 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -901,10 +901,7 @@ VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); btw("MS sends *GSM AKA* Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - /* EXPECTING ERROR: should be the GSM AKA kc: expect_cipher_mode_cmd("7a75f0ac9b844400"); -* but instead is the UMTS AKA derived kc: */ - expect_cipher_mode_cmd("85c985d6f980e18e"); ms_sends_msg("0554" "dacc4b26"); OSMO_ASSERT(cipher_mode_cmd_sent); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); @@ -947,10 +944,7 @@ thwart_rx_non_initial_requests(); btw("MS sends *GSM AKA* Authen Response, VLR accepts and requests Ciphering"); - /* EXPECTING ERROR: should be the GSM AKA kc: expect_cipher_mode_cmd("da149b11d473f400"); -* but instead is the UMTS AKA derived kc: */ - expect_cipher_mode_cmd("dec1351054200a58"); ms_sends_msg("0554" "2fb4cfad");
Build failure of network:osmocom:latest/openbsc in Debian_9.0/aarch64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/aarch64 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 743s] make[5]: *** [check-local] Error 1 [ 743s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 743s] Makefile:586: recipe for target 'check-am' failed [ 743s] make[4]: *** [check-am] Error 2 [ 743s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 743s] Makefile:438: recipe for target 'check-recursive' failed [ 743s] make[3]: *** [check-recursive] Error 1 [ 743s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 743s] Makefile:520: recipe for target 'check-recursive' failed [ 743s] make[2]: *** [check-recursive] Error 1 [ 743s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 743s] Makefile:811: recipe for target 'check' failed [ 743s] make[1]: *** [check] Error 2 [ 744s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 744s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2 [ 744s] debian/rules:13: recipe for target 'build' failed [ 744s] make: *** [build] Error 2 [ 744s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 744s] [ 744s] obs-arm-3 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 14:11:25 UTC 2018. [ 744s] [ 744s] ### VM INTERACTION START ### [ 747s] [ 686.721738] sysrq: SysRq : Power Off [ 747s] [ 686.733866] reboot: Power down [ 747s] qemu-system-aarch64: Failed to unlink socket /var/cache/obs/worker/root_10/root.monitor: Permission denied [ 747s] ### VM INTERACTION END ### [ 747s] [ 747s] obs-arm-3 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 14:11:29 UTC 2018. [ 747s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:latest/openbsc in Debian_9.0/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/x86_64 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 163s] Makefile:736: recipe for target 'check-local' failed [ 163s] make[5]: *** [check-local] Error 1 [ 163s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 163s] Makefile:586: recipe for target 'check-am' failed [ 163s] make[4]: *** [check-am] Error 2 [ 163s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 163s] Makefile:438: recipe for target 'check-recursive' failed [ 163s] make[3]: *** [check-recursive] Error 1 [ 163s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 163s] Makefile:520: recipe for target 'check-recursive' failed [ 163s] make[2]: *** [check-recursive] Error 1 [ 163s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 163s] Makefile:811: recipe for target 'check' failed [ 163s] make[1]: *** [check] Error 2 [ 163s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 163s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2 [ 163s] debian/rules:13: recipe for target 'build' failed [ 163s] make: *** [build] Error 2 [ 163s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 163s] [ 163s] lamb20 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:08:19 UTC 2018. [ 163s] [ 163s] ### VM INTERACTION START ### [ 166s] [ 158.509191] reboot: Power down [ 166s] qemu-system-x86_64: Failed to unlink socket /var/cache/obs/worker/root_3/root.monitor: Permission denied [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb20 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:08:23 UTC 2018. [ 166s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:latest/openbsc in Debian_9.0/i586
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/i586 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 159s] Makefile:736: recipe for target 'check-local' failed [ 159s] make[5]: *** [check-local] Error 1 [ 159s] make[5]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 159s] Makefile:586: recipe for target 'check-am' failed [ 159s] make[4]: *** [check-am] Error 2 [ 159s] make[4]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 159s] Makefile:438: recipe for target 'check-recursive' failed [ 159s] make[3]: *** [check-recursive] Error 1 [ 159s] make[3]: Leaving directory '/usr/src/packages/BUILD/openbsc/tests' [ 159s] Makefile:520: recipe for target 'check-recursive' failed [ 159s] make[2]: *** [check-recursive] Error 1 [ 159s] make[2]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 159s] Makefile:811: recipe for target 'check' failed [ 159s] make[1]: *** [check] Error 2 [ 159s] make[1]: Leaving directory '/usr/src/packages/BUILD/openbsc' [ 159s] dh_auto_test: make -j1 check VERBOSE=1 returned exit code 2 [ 159s] debian/rules:13: recipe for target 'build' failed [ 159s] make: *** [build] Error 2 [ 159s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 160s] [ 160s] lamb64 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:05:30 UTC 2018. [ 160s] [ 160s] ### VM INTERACTION START ### [ 163s] [ 155.380281] reboot: Power down [ 163s] qemu-system-x86_64: Failed to unlink socket /var/cache/obs/worker/root_8/root.monitor: Permission denied [ 163s] ### VM INTERACTION END ### [ 163s] [ 163s] lamb64 failed "build openbsc_1.0.0.dsc" at Sat Mar 10 13:05:33 UTC 2018. [ 163s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/)
[MERGED] osmo-bsc[master]: debian: Move abisip-find from osmo-bsc to its own package
Harald Welte has submitted this change and it was merged. Change subject: debian: Move abisip-find from osmo-bsc to its own package .. debian: Move abisip-find from osmo-bsc to its own package In some scenarios osmo-bsc is not required, only abisip-find to do the initial set-up of the BTS, so no need to install osmo-bsc with it. Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986 --- A debian/abisip-find.install M debian/control M debian/osmo-bsc.install 3 files changed, 7 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/abisip-find.install b/debian/abisip-find.install new file mode 100644 index 000..1e19459 --- /dev/null +++ b/debian/abisip-find.install @@ -0,0 +1 @@ +usr/bin/abisip-find diff --git a/debian/control b/debian/control index fae280a..c2627a1 100644 --- a/debian/control +++ b/debian/control @@ -36,6 +36,12 @@ Depends: osmo-bsc (= ${binary:Version}), ${misc:Depends} Description: OsmoBSC: Osmocom's Base Station Controller for 2G circuit-switched mobile networks +Package: abisip-find +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Command line utility to find ip.access compatible BTS + Package: osmo-bsc-ipaccess-utils Architecture: any Multi-Arch: foreign diff --git a/debian/osmo-bsc.install b/debian/osmo-bsc.install index 9a2bc3f..5dc1e0f 100644 --- a/debian/osmo-bsc.install +++ b/debian/osmo-bsc.install @@ -1,4 +1,3 @@ usr/bin/osmo-bsc -usr/bin/abisip-find usr/share/doc/osmo-bsc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg usr/share/doc/osmo-bsc/examples usr/share/doc/osmo-bsc/examples/osmo-bsc/osmo-bsc.cfg usr/share/doc/osmo-bsc/examples -- To view, visit https://gerrit.osmocom.org/7175 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus
osmo-bsc[master]: debian: Move abisip-find from osmo-bsc to its own package
Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/7175/1/debian/control File debian/control: PS1, Line 43: ip.access compatible Abis/IP BTS -- To view, visit https://gerrit.osmocom.org/7175 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: If3d476a1bd67abcb9cff241ab5989db923873986 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-HasComments: Yes
osmo-gsm-tester[master]: WIP: Introduce ip.access nanobts support
Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/7168 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ibaea025b3a503dfe897d36701234445de6d49f82 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-gsm-tester[master]: Create Pcu abstract class and make OsmoPcu inherit from it
Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/7158 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia3fd4551d1f2932362f99f7d44d65f8ae4fd1979 Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-gsm-tester[master]: Introduce PowerSupply interface and PowerSupplySispm
Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/7167 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I981c260eca1a61657147e6d83b4226618088223c Gerrit-PatchSet: 2 Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Owner: Pau Espin PedrolGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[MERGED] osmo-bts[master]: sysmobts: Compatibility with older firmware versions
Harald Welte has submitted this change and it was merged. Change subject: sysmobts: Compatibility with older firmware versions .. sysmobts: Compatibility with older firmware versions When using a firmware version < 3.6, the call to l1if_mute_rf() returned an error, which caused an OML CHG ADM STATE NACK. Let's check if the l1if_mute_rf() call is an un-mute for all timeslots (which apparently we do always at start-up). If it is, then acknowledge it even if muting is not supported by earlier firmwares. I suppose the change causing this problem was introduced in: commit b26b8fc77692e851469f3e27b9aeaeff233ffd2e Author: Holger Hans Peter FreytherDate: Tue Mar 4 15:03:59 2014 +0100 sysmobts: Do a RF mute at initialization when the RC is locked With the current change applied, we can run the BTS with earlier firmware versions than 3.6.0 again. Tested with 3.1 and 2.4 Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 12 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 60eacab..9aa5477 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1322,7 +1322,6 @@ return l1if_req_compl(hdl, msg, activate_rf_compl_cb, NULL); } -#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0) static void mute_handle_ts(struct gsm_bts_trx_ts *ts, int is_muted) { int i; @@ -1350,6 +1349,7 @@ } } +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0) static int mute_rf_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp, void *data) { @@ -1388,8 +1388,11 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { + const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); + struct gsm_bts_trx *trx = hdl->phy_inst->trx; + int i; LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1399,6 +1402,14 @@ #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0) LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); + /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ + if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { + bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); + oml_mo_rf_lock_chg(>mo, mute, 1); + for (i = 0; i < ARRAY_SIZE(mute); ++i) + mute_handle_ts(>ts[i], mute[i]); + return 0; + } return -ENOTSUP; #else sysp->id = SuperFemto_PrimId_MuteRfReq; -- To view, visit https://gerrit.osmocom.org/7197 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3 Gerrit-PatchSet: 4 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-bts[master]: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists
Harald Welte has submitted this change and it was merged. Change subject: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists .. sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists SI1 is only required if frequency hopping is used or if NCH is used. So it's optional. If OsmoBTS has no SI1 configured, it will transmit the empty SI1 buffer at TC=0, and as a result no valid SI will be broadcast at TC=0. Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee Closes: OS#3051 --- M src/common/sysinfo.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index cf86380..6f7a387 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -73,7 +73,9 @@ * present in a cell. If the MS finds another message * when TC = 0, it can assume that System Information * Type 1 is not in use. */ - return GSM_BTS_SI(bts, SYSINFO_TYPE_1); + if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_1)) + return GSM_BTS_SI(bts, SYSINFO_TYPE_1); + return GSM_BTS_SI(bts, SYSINFO_TYPE_2); case 1: /* A SI 2 message will be sent at least every time TC = 1. */ return GSM_BTS_SI(bts, SYSINFO_TYPE_2); -- To view, visit https://gerrit.osmocom.org/7184 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
osmo-bts[master]: sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7184 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I41ab885c00e943199b2e939e98f30e267ecffbee Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: cosmetic: vlr_auth_fsm: clarify decision on UMTS AKA or GSM AKA
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7193 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I43f7f301ea85e518bac91f707391a53182e54fab Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: cosmetic: vlr_auth_fsm: log RAN and size along with SRES/RES
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7194 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib0f9f573ffac2302fbd3ee28f48ccd8fce5fe286 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES
Patch Set 3: Code-Review+1 Similar to other patches before: Why are we doing this here and not in TTCN-3, particularly if it's about entire new tests? I've asked the question before, but you didn't answer and instead keep senidng the patches. Please at least let me know what the reasons are... -- To view, visit https://gerrit.osmocom.org/7190 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: gsm48_rx_mm_auth_resp(): pass is_r99 from classmark, not res...
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7189 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib7f7d89a8b9455d2c022d53d74328fa7488577f4 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_umts_authen: test response with only SRES half ...
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7192 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I0e9099625bd9d3de3db5ee29fbf81b2d8a30071d Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_umts_authen: test response with too short RES
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7190 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia1bc57b3dc1f3c3c654ba2d907b16ba925cd03e8 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_umts_authen: test response with too long RES
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7191 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ie5473f06fc2d04c6a9f343da5764ec95b292a5f9 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: cosmetic: gsm48_rx_mm_auth_resp(): log 'UMTS AKA', not 'R99 ...
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7195 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Iba43c685cbe238d96175267e9cc954b2f2f3e7fc Gerrit-PatchSet: 1 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: vlr auth: gracefully reject malformed auth response
Patch Set 3: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/7188/3/src/libmsc/gsm_04_08.c File src/libmsc/gsm_04_08.c: Line 978: return vlr_subscr_rx_auth_fail(conn->vsub, NULL); > hmm, this is actually meant for the MM Authentication Failure message from I think zero RES in vlr_subscr_rx_auth_resp() is cleaner than vlr_subscr_rx_auth_fail() when we never actually received an AUTH FAIL -- To view, visit https://gerrit.osmocom.org/7188 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4179a290069ac61d0662de4ec7ca3edb76988899 Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-HasComments: Yes
osmo-msc[master]: vlr: fix GSM AKA in a UMTS AKA capable environment
Patch Set 2: Code-Review+2 Verified+1 -- To view, visit https://gerrit.osmocom.org/7187 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I42ce51ae979f42d173a45ae69273071c426bf97c Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment
Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/7186 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_test_gsm_ciph: add test for GSM AKA in UMTS environment
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7186 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I85f12a20dcd701e671188e56811ec7b58d84da82 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_vlr_tests: clearly separate Ciph Mode from Security Mode...
Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7185 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ica93ed06c4c63dc6768736d25231de8068001114 Gerrit-PatchSet: 1 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[MERGED] osmo-msc[master]: silent call: clarify rc and error messages logged on vty
Harald Welte has submitted this change and it was merged. Change subject: silent call: clarify rc and error messages logged on vty .. silent call: clarify rc and error messages logged on vty In gsm_silent_call_{start,stop}(), return meaningful error codes and interpret them on the VTY to clearly indicate the result. Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f --- M src/libmsc/silent_call.c M src/libmsc/vty_interface_layer3.c 2 files changed, 40 insertions(+), 17 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/silent_call.c b/src/libmsc/silent_call.c index f3291d7..1ea2305 100644 --- a/src/libmsc/silent_call.c +++ b/src/libmsc/silent_call.c @@ -30,6 +30,7 @@ #include #include #include +#include /* paging of the requested subscriber has completed */ static int paging_cb_silent(unsigned int hooknum, unsigned int event, @@ -130,7 +131,9 @@ * A-interface. */ req = subscr_request_conn(vsub, paging_cb_silent, data, "establish silent call"); - return req != NULL; + if (!req) + return -ENODEV; + return 0; } /* end a silent call with a given subscriber */ @@ -139,12 +142,18 @@ struct gsm_subscriber_connection *conn; conn = connection_for_subscr(vsub); - if (!conn) - return -EINVAL; + if (!conn) { + LOGP(DMM, LOGL_ERROR, "%s: Cannot stop silent call, no connection for subscriber\n", +vlr_subscr_name(vsub)); + return -ENODEV; + } /* did we actually establish a silent call for this guy? */ - if (!conn->silent_call) - return -EINVAL; + if (!conn->silent_call) { + LOGP(DMM, LOGL_ERROR, "%s: Cannot stop silent call, subscriber has no active silent call\n", +vlr_subscr_name(vsub)); + return -ENOENT; + } #if BEFORE_MSCSPLIT /* Re-enable this log output once we can obtain this information via diff --git a/src/libmsc/vty_interface_layer3.c b/src/libmsc/vty_interface_layer3.c index 06a4267..05f5b63 100644 --- a/src/libmsc/vty_interface_layer3.c +++ b/src/libmsc/vty_interface_layer3.c @@ -524,16 +524,20 @@ type = RSL_CHANNEED_ANY;/* Defaults to ANY */ rc = gsm_silent_call_start(vsub, vty, type); - if (rc <= 0) { - vty_out(vty, "%% Subscriber not attached%s", - VTY_NEWLINE); - vlr_subscr_put(vsub); - return CMD_WARNING; + switch (rc) { + case -ENODEV: + vty_out(vty, "%% Subscriber not attached%s", VTY_NEWLINE); + break; + default: + if (rc) + vty_out(vty, "%% Cannot start silent call (rc=%d)%s", rc, VTY_NEWLINE); + else + vty_out(vty, "%% Silent call initiated%s", VTY_NEWLINE); + break; } vlr_subscr_put(vsub); - - return CMD_SUCCESS; + return rc ? CMD_WARNING : CMD_SUCCESS; } DEFUN(subscriber_silent_call_stop, @@ -553,14 +557,24 @@ } rc = gsm_silent_call_stop(vsub); - if (rc < 0) { - vlr_subscr_put(vsub); - return CMD_WARNING; + switch (rc) { + case -ENODEV: + vty_out(vty, "%% No active connection for subscriber%s", VTY_NEWLINE); + break; + case -ENOENT: + vty_out(vty, "%% Subscriber has no silent call active%s", + VTY_NEWLINE); + break; + default: + if (rc) + vty_out(vty, "%% Cannot stop silent call (rc=%d)%s", rc, VTY_NEWLINE); + else + vty_out(vty, "%% Silent call stopped%s", VTY_NEWLINE); + break; } vlr_subscr_put(vsub); - - return CMD_SUCCESS; + return rc ? CMD_WARNING : CMD_SUCCESS; } DEFUN(subscriber_ussd_notify, -- To view, visit https://gerrit.osmocom.org/7181 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-msc[master]: vty: add 'msisdn' as alias for 'extension'
Harald Welte has submitted this change and it was merged. Change subject: vty: add 'msisdn' as alias for 'extension' .. vty: add 'msisdn' as alias for 'extension' Rationale: in the HLR, it is called 'msisdn' after the database column, so a user going back and forth between osmo-hlr and osmo-msc would appreciate being able to type 'msisdn' in the MSC's vty as well. Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c --- M src/libmsc/vty_interface_layer3.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/vty_interface_layer3.c b/src/libmsc/vty_interface_layer3.c index b0243c3..6def359 100644 --- a/src/libmsc/vty_interface_layer3.c +++ b/src/libmsc/vty_interface_layer3.c @@ -343,9 +343,10 @@ return NULL; } -#define SUBSCR_TYPES "(extension|imsi|tmsi|id)" +#define SUBSCR_TYPES "(msisdn|extension|imsi|tmsi|id)" #define SUBSCR_HELP "Operations on a Subscriber\n" \ - "Identify subscriber by extension (phone number)\n" \ + "Identify subscriber by MSISDN (phone number)\n"\ + "Legacy alias for 'msisdn'\n" \ "Identify subscriber by IMSI\n" \ "Identify subscriber by TMSI\n" \ "Identify subscriber by database ID\n" \ -- To view, visit https://gerrit.osmocom.org/7178 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-msc[master]: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded
Harald Welte has submitted this change and it was merged. Change subject: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded .. fix: clear vlr_subscr->msc_conn_ref when the conn is discarded Before this, it was for example possible to crash the MSC by the vty 'show subscriber' command, which would dereference a potentially stale vsub->msc_conn_ref pointer. Related: OS#3050 Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb --- M src/libmsc/osmo_msc.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 1478c19..f6df0d2 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -228,6 +228,7 @@ DEBUGP(DRLL, "subscr %s: Freeing subscriber connection\n", vlr_subscr_name(conn->vsub)); msc_subscr_cleanup(conn->vsub); + conn->vsub->msc_conn_ref = NULL; vlr_subscr_put(conn->vsub); conn->vsub = NULL; } else -- To view, visit https://gerrit.osmocom.org/7176 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-msc[master]: msc_main: do not say 'osmo-nitb' in the usage
Harald Welte has submitted this change and it was merged. Change subject: msc_main: do not say 'osmo-nitb' in the usage .. msc_main: do not say 'osmo-nitb' in the usage Change-Id: I2090097dc0d7e0251c116b95b802076df3419455 --- M src/osmo-msc/msc_main.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 00f132b..aba74b6 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -112,7 +112,7 @@ static void print_usage() { - printf("Usage: osmo-nitb\n"); + printf("Usage: osmo-msc\n"); } static void print_help() -- To view, visit https://gerrit.osmocom.org/7180 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I2090097dc0d7e0251c116b95b802076df3419455 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-msc[master]: vty: add 'subscriber ... paging' cmd
Harald Welte has submitted this change and it was merged. Change subject: vty: add 'subscriber ... paging' cmd .. vty: add 'subscriber ... paging' cmd Allow issuing an empty paging from the VTY, for debugging purposes. Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4 --- M src/libmsc/vty_interface_layer3.c 1 file changed, 26 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/vty_interface_layer3.c b/src/libmsc/vty_interface_layer3.c index 6def359..06a4267 100644 --- a/src/libmsc/vty_interface_layer3.c +++ b/src/libmsc/vty_interface_layer3.c @@ -608,6 +608,31 @@ return CMD_SUCCESS; } +DEFUN(subscriber_paging, + subscriber_paging_cmd, + "subscriber " SUBSCR_TYPES " ID paging", + SUBSCR_HELP "Issue an empty Paging for the subscriber (for debugging)\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + struct vlr_subscr *vsub = get_vsub_by_argv(gsmnet, argv[0], argv[1]); + struct subscr_request *req; + + if (!vsub) { + vty_out(vty, "%% No subscriber found for %s %s%s", + argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + + req = subscr_request_conn(vsub, NULL, NULL, "manual Paging from VTY"); + if (req) + vty_out(vty, "%% paging subscriber%s", VTY_NEWLINE); + else + vty_out(vty, "%% paging subscriber failed%s", VTY_NEWLINE); + + vlr_subscr_put(vsub); + return req ? CMD_SUCCESS : CMD_WARNING; +} + static int loop_by_char(uint8_t ch) { switch (ch) { @@ -992,6 +1017,7 @@ install_element_ve(_ussd_notify_cmd); install_element_ve(_mstest_close_cmd); install_element_ve(_mstest_open_cmd); + install_element_ve(_paging_cmd); install_element_ve(_stats_cmd); install_element_ve(_smsqueue_cmd); install_element_ve(_fltr_imsi_cmd); -- To view, visit https://gerrit.osmocom.org/7179 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
[MERGED] osmo-msc[master]: vty: drop unused commands
Harald Welte has submitted this change and it was merged. Change subject: vty: drop unused commands .. vty: drop unused commands Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008 --- M src/libmsc/vty_interface_layer3.c 1 file changed, 0 insertions(+), 30 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/vty_interface_layer3.c b/src/libmsc/vty_interface_layer3.c index 6ed2ade..b0243c3 100644 --- a/src/libmsc/vty_interface_layer3.c +++ b/src/libmsc/vty_interface_layer3.c @@ -726,34 +726,6 @@ return CMD_SUCCESS; } -#define A3A8_ALG_TYPES "(none|xor|comp128v1)" -#define A3A8_ALG_HELP \ - "Use No A3A8 algorithm\n" \ - "Use XOR algorithm\n" \ - "Use COMP128v1 algorithm\n" - -DEFUN(ena_subscr_a3a8, - ena_subscr_a3a8_cmd, - "subscriber " SUBSCR_TYPES " ID a3a8 " A3A8_ALG_TYPES " [KI]", - SUBSCR_HELP "Set a3a8 parameters for the subscriber\n" - A3A8_ALG_HELP "Encryption Key Ki\n") -{ - vty_out(vty, "%% 'subscriber a3a8' is no longer supported.%s" - "%% This is now up to osmo-hlr.%s", - VTY_NEWLINE, VTY_NEWLINE); - return CMD_WARNING; -} - -DEFUN(subscriber_update, - subscriber_update_cmd, - "subscriber " SUBSCR_TYPES " ID update", - SUBSCR_HELP "Update the subscriber data from the dabase.\n") -{ - vty_out(vty, "%% 'subscriber update' is no longer supported.%s", - VTY_NEWLINE); - return CMD_WARNING; -} - static int scall_cbfn(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { @@ -1019,13 +991,11 @@ install_element_ve(_ussd_notify_cmd); install_element_ve(_mstest_close_cmd); install_element_ve(_mstest_open_cmd); - install_element_ve(_update_cmd); install_element_ve(_stats_cmd); install_element_ve(_smsqueue_cmd); install_element_ve(_fltr_imsi_cmd); install_element(ENABLE_NODE, _subscr_expire_cmd); - install_element(ENABLE_NODE, _subscr_a3a8_cmd); install_element(ENABLE_NODE, _trigger_cmd); install_element(ENABLE_NODE, _max_cmd); install_element(ENABLE_NODE, _clear_cmd); -- To view, visit https://gerrit.osmocom.org/7177 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder
osmo-msc[master]: silent call: clarify rc and error messages logged on vty
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7181 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id5abb8f2ba901689e03040af8e51483b6c618e7f Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: msc_main: do not say 'osmo-nitb' in the usage
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7180 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I2090097dc0d7e0251c116b95b802076df3419455 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: fix: clear vlr_subscr->msc_conn_ref when the conn is discarded
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7176 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ia4105d9f135ba3216ad3c86157be7658b1d568fb Gerrit-PatchSet: 3 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: vty: add 'subscriber ... paging' cmd
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7179 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I403904cb789ece699f14b4cbd52c336eb02d45e4 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: vty: add 'msisdn' as alias for 'extension'
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7178 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I7b46f9736421e8edd8a95ae89e025ebe486fde4c Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
osmo-msc[master]: vty: drop unused commands
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7177 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I76d6777ebe9105b8abf37993b86c3749a7e18008 Gerrit-PatchSet: 2 Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[ABANDON] osmo-bts[master]: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received
Harald Welte has abandoned this change. Change subject: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received .. Abandoned never intended to push this one -- To view, visit https://gerrit.osmocom.org/7196 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: abandon Gerrit-Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Jenkins Builder
osmo-bts[master]: sysmobts: Compatibility with older firmware versions
Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7197 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3 Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald WelteGerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-HasComments: No
[PATCH] osmo-bts[master]: sysmobts: Compatibility with older firmware versions
Review at https://gerrit.osmocom.org/7197 sysmobts: Compatibility with older firmware versions When using a firmware version < 3.6, the call to l1if_mute_rf() returned an error, which caused an OML CHG ADM STATE NACK. Let's check if the l1if_mute_rf() call is an un-mute for all timeslots (which apparently we do always at start-up). If it is, then acknowledge it even if muting is not supported by earlier firmwares. I suppose the change causing this problem was introduced in: commit b26b8fc77692e851469f3e27b9aeaeff233ffd2e Author: Holger Hans Peter FreytherDate: Tue Mar 4 15:03:59 2014 +0100 sysmobts: Do a RF mute at initialization when the RC is locked With the current change applied, we can run the BTS with earlier firmware versions than 3.6.0 again. Tested with 3.1 and 2.4 Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/97/7197/1 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index b5bb3f8..a556289 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1329,7 +1329,6 @@ return l1if_req_compl(hdl, msg, activate_rf_compl_cb, NULL); } -#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0) static void mute_handle_ts(struct gsm_bts_trx_ts *ts, int is_muted) { int i; @@ -1357,6 +1356,7 @@ } } +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(3,6,0) static int mute_rf_compl_cb(struct gsm_bts_trx *trx, struct msgb *resp, void *data) { @@ -1395,8 +1395,11 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { + const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); + struct gsm_bts_trx *trx = hdl->phy_inst->trx; + int i; LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1406,6 +1409,14 @@ #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0) LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); + /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ + if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { + bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); + oml_mo_rf_lock_chg(>mo, mute, 1); + for (i = 0; i < ARRAY_SIZE(mute); ++i) + mute_handle_ts(>ts[i], mute[i]); + return 0; + } return -ENOTSUP; #else sysp->id = SuperFemto_PrimId_MuteRfReq; -- To view, visit https://gerrit.osmocom.org/7197 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1a29c1031d96e65a0111bc812a90f2dbaf2a5aa3 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald Welte
[PATCH] osmo-bts[master]: [sysmobts] HACK: Log L1C/NOTICE message for every RACH received
Review at https://gerrit.osmocom.org/7196 [sysmobts] HACK: Log L1C/NOTICE message for every RACH received Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7 --- M src/osmo-bts-sysmo/femtobts.c M src/osmo-bts-sysmo/femtobts.h M src/osmo-bts-sysmo/l1_if.c 3 files changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/7196/1 diff --git a/src/osmo-bts-sysmo/femtobts.c b/src/osmo-bts-sysmo/femtobts.c index 480fe06..f8e71de 100644 --- a/src/osmo-bts-sysmo/femtobts.c +++ b/src/osmo-bts-sysmo/femtobts.c @@ -368,3 +368,15 @@ [PDCH_MCS_8]= 142, [PDCH_MCS_9]= 154 }; + +const struct value_string femtobts_bursttype_names[] = { + { GsmL1_BurstType_Sync, "Sync" }, + { GsmL1_BurstType_Normal, "Normal" }, + { GsmL1_BurstType_Dummy, "Dummy" }, + { GsmL1_BurstType_Normal8Psk, "Normal 8PSK" }, + { GsmL1_BurstType_Access_0, "Access (TSC 0)" }, + { GsmL1_BurstType_Access_1, "Access (TSC 1)" }, + { GsmL1_BurstType_Access_2, "Access (TSC 2)" }, + { GsmL1_BurstType_Freq, "Frequency Correction" }, + { 0, NULL } +}; diff --git a/src/osmo-bts-sysmo/femtobts.h b/src/osmo-bts-sysmo/femtobts.h index 9163ebb..bf1bcc1 100644 --- a/src/osmo-bts-sysmo/femtobts.h +++ b/src/osmo-bts-sysmo/femtobts.h @@ -107,4 +107,6 @@ const uint8_t pdch_msu_size[_NUM_PDCH_CS]; +const struct value_string femtobts_bursttype_names[GsmL1_BurstType_NUM+1]; + #endif /* FEMTOBTS_H */ diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 60eacab..b5bb3f8 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -990,6 +990,13 @@ int rc; struct ph_rach_ind_param rach_ind_param; + LOGPFN(DL1C, LOGL_NOTICE, ra_ind->u32Fn, "RACH: Type %s, %f dBm, %d qbits, LQ=%f, BER=%f\n", + get_value_string(femtobts_bursttype_names, ra_ind->burstType), + ra_ind->measParam.fRssi, + ra_ind->measParam.i16BurstTiming, + ra_ind->measParam.fLinkQuality, + ra_ind->measParam.fBer); + /* FIXME: this should be deprecated/obsoleted as it bypasses rach.busy counting */ if (ra_ind->measParam.fLinkQuality < btsb->min_qual_rach) { msgb_free(l1p_msg); -- To view, visit https://gerrit.osmocom.org/7196 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I68d7584c198540c01b83ea8d12e7a61792b01ee7 Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Harald Welte